本章主要介绍一些有关视频编码的概念

时域模型(Temporal Model)

时域模型的作用是去除帧间冗余。如:将第二帧减去第一帧,得到的剩余信息,其能量会远小于第二帧本身。

基于块的运动估计和补偿

运动估计:针对于当前帧的M*N大小的块,在参考帧中寻找与它最相近的块(找相减后剩余能量最小的)。
运动补偿:当前帧的块减去参考帧中匹配的块,得到一个剩余块。
运动向量:上述两个块之间的位移。

宏块(Macroblock)

在多数视频编码标准中(MPEG-1,MPEG-2,MPEG-4 Visual, H.261,H.263,H.264),单帧中的一个16*16(通常的大小)的像素区域被称之为一个宏块。

宏块的编码方式有如下两种:

  • 帧内(intra)编码:比如场景切换的时候,由于邻近帧的内容与当前帧会有较大的差距,因此如果采用残差+运动补偿的编码方式,压缩效率并不会太高,因此直接采用帧内编码。
  • 帧间(inter)编码:即参考邻近帧的相似宏块进行编码,在两帧内容变化不大的情况下能够有效的压缩数据。

宏块的大小

如书中第35页配图,在没有运动补偿的情况下,相邻两帧相见的剩余帧依然会有比较多的能量,加上运动补偿后,剩余能量显著降低。此时随着宏块的变小,剩余能量也会不断地下降,但是越小的宏块意味着越复杂的算法复杂度(需要搜索更多的宏块区域)以及更多的运动向量,因此两者之间是一个相互平衡的关系。

在例如H.264等视频标准中,可以采用自适应的宏块大小。

子像素(Sub-pixel)

搜索宏块时,如果把搜索的基本单位细化到半像素,甚至四分之一像素,或许可以得到更加精确的结果,但是要表示浮点型的运动向量,则需要更多的数据位数。

因此:更精确的运动补偿需要更多的位数对运动向量进行编码,但由于匹配变得更加精确,因此剩余块的编码所需要的位数会降低;反之,不太精确的运动补偿所需要的位数会减少,但是因为匹配也变得不太精确,所以剩余块的编码所需要的位数会增加。这还是一个在两者之间需要平衡的问题。

基于区域的运动补偿

通常自然界中的很多物体都不会是矩形,对特定区域内的像素进行运动补偿有时候会有更好的效果,在MPEG-4 Visual中有支持这方面特性的工具。

图像的预测编码

有DPCM等。

图像的变换编码

这里列出常见的几种

DCT

对图像做DCT变换,得到的DCT洗漱其实对应了不同基底的系数,常见的二维DCT基底在书中48页给出

小波

思想和DCT其实比较类似。二维小波变换将图像变成四个子图像(LL,HL,LH,HH),其中第一个为低频分量,后面三个都是高频分量。

熵编码

用来压缩数据冗余,例如JPEG中使用的是霍夫曼编码。

Chapter 3. Video Coding Concepts的更多相关文章

  1. Overview of the High Efficiency Video Coding (HEVC) Standard阅读笔记

    1.INTRODUCTION High Efficiency Video Coding(HEVC) <-> H.265 MPEG-4 Advanced Video Coding(AVC) ...

  2. Deep Learning-Based Video Coding: A Review and A Case Study

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 1.Abstract: 本文主要介绍的是2015年以来关于深度图像/视频编码的代表性工作,主要可以分为两类:深度编码方案以及基于传统编码方 ...

  3. Chapter 2. Video Formats and Quality

    本章节主要介绍一些视频格式相关的基础知识. 交织(Interlace) 即每一个采样帧采样时隔行采样,奇数行和偶数行交替. YCbCr 人眼视觉系统(Human Visual System, HVS) ...

  4. DeepCoder: A Deep Neural Network Based Video Compression

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Abstract: 在深度学习的最新进展的启发下,我们提出了一种基于卷积神经网络(CNN)的视频压缩框架DeepCoder.我们分别对预测 ...

  5. Chapter 1. Introduce

    前言 本书全名是<H.264 and MPEG-4 Video Compression, Video Coding For Next-generation Multimedia>,作者为 ...

  6. video codec 学习笔记

    一. H.264 (http://www.baike.com/wiki/H264)  三大标准: AVC(Advanced Video Coding,AVC) H.264,同时也是MPEG-4第十部分 ...

  7. 【HEVC帧间预测论文】P1.2 An Efficient Inter Mode Decision Approach for H.264 Video Codin

    参考:An Efficient Inter Mode Decision Approach for H.264 Video Coding <HEVC标准介绍.HEVC帧间预测论文笔记>系列博 ...

  8. Video processing systems and methods

    BACKGROUND The present invention relates to video processing systems. Advances in imaging technology ...

  9. RTP Payload Format for H264 Video

    基础传输结构 rtp中对于h264数据的存储分为两层,分别是 VCL: video coding layer 视频编码层 这是h264中block, macro block 以及 slice级别的定义 ...

随机推荐

  1. 使用maven根据JSON文件自动生成Java POJO类(Java Bean)源文件

    根据JSON文件自动生成Java POJO类(Java Bean)源文件 本文介绍使用程序jsonschema2pojo来自动生成Java的POJO类源文件,本文主要使用maven,其他构建工具请参考 ...

  2. C#中对于变量的声明和初始化

    C#变量初始化是C#强调安全性的另一个例子.简单地说,C#编译器需要用某个初始值对变量进行初始化,之后才能在操作中引用该变量.大多数现代编译器把没有初始化标记为警告,但C#编译器把它当作错误来看待. ...

  3. (转载)sizeof

    [C++专题]C++ sizeof 使用规则及陷阱分析   摘要:鉴于sizeof为各大软件公司笔试.面试必考题,现收集sizeof的各种用法,尽量做到全面理解,其中例子希望能举一反三.提示:下文例子 ...

  4. jQuery之筛选操作

    jQuery之筛选操作 筛选操作分三大类:过滤,查找,串联 eq(),first(),last(),hasClass(),filter(),is() html代码 jQuery代码 效果如下: map ...

  5. 如何选择版本控制系统之二---Git的研发应用场

    之前写了一篇<如何选择版本控制系统 ---为什么选择Git版本控制系统>,地址是:http://www.cnblogs.com/goldenfish/p/6876864.html,有兴趣的 ...

  6. SpringMVC 3.2集成Spring Security 3.2

    参考:http://www.cnblogs.com/Beyond-bit/p/springmvc_and_springsecurity.html SpringMVC 3.2集成Spring Secur ...

  7. 前端小课堂 js:函数的创建方式及区别

    js 函数的创建大体有这几种方式: -1-函数表达式(函数字面量): 说白了就是把一个函数赋值给了一个变量. var fun1 = function(index){ alert(index); } f ...

  8. 2017年最好的6个WEB前端开发手册下载

    php中文网为你推荐6个web前端开发相关手册下载,适合web开发人员和php web开发人员进行下载参考学习! 一. html5中文手册 通过制定如何处理所有 HTML 元素以及如何从错误中恢复的精 ...

  9. vue组件之间的通信以及如何在父组件中调用子组件的方法和属性

    在Vue中组件实例之间的作用域是孤立的,以为不能直接在子组件上引用父组件的数据,同时父组件也不能直接使用子组件的数据 一.父组件利用props往子组件传输数据 父组件: <div> < ...

  10. Spark踩坑记——从RDD看集群调度

    [TOC] 前言 在Spark的使用中,性能的调优配置过程中,查阅了很多资料,之前自己总结过两篇小博文Spark踩坑记--初试和Spark踩坑记--数据库(Hbase+Mysql),第一篇概况的归纳了 ...