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

时域模型(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. ShadowBroker释放的NSA工具中Esteemaudit漏洞复现过程

    没有时间测试呢,朋友们都成功复现,放上网盘地址:https://github.com/x0rz/EQGRP 近日臭名昭著的方程式组织工具包再次被公开,TheShadowBrokers在steemit. ...

  2. Java读写Excel之POI超入门

    转自:http://rensanning.iteye.com/blog/1538591 Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给J ...

  3. Js判断是否是直接进入本页面的

    今天带来一个Js的小示例,用来判断当前页面的链接来路.很多人应该可以用到,这个虽然非常简单,但是用到的地方却还是挺多的 首先新建一个index.html,代码如下 <!DOCTYPE html& ...

  4. linux中搭建java开发环境

    JDK安装 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载对应jdk版本, ...

  5. C/C++遍历目录下的所有文件(Windows/Linux篇,超详细)

    本文可转载,转载请注明出处:http://www.cnblogs.com/collectionne/p/6815924.html. 前面的一篇文章我们讲了用Windows API遍历一个目录下的所有文 ...

  6. 使用python遍历指定城市的一周气温

    处于兴趣,写了一个遍历指定城市五天内的天气预报,并转为华氏度显示.把城市名字写到一个列表里这样可以方便的添加城市.并附有详细注释 1 import requests import json#定义一个函 ...

  7. html表格表单标签的结合

    今天我尝试将表格表单基本标签结合起来放在网页中,发现再没用表单元素中<form></form>时各类标签功能都可显示,只是不能提交网页,所有与提交网页的标签都不能使用提交功能, ...

  8. jQuery杂项方法

    前面的话 杂项方法其实也是工具类方法,但由于其不是定义在jQuery构造函数上的方法,所以不能称为工具方法.本文将详细介绍jQuery中的杂项方法 数据操作 [data()] 该方法用于在匹配元素上存 ...

  9. 简化布隆过滤器——BitMap

    简化布隆过滤器--BitMap 前言 前段开发项目试就发现,一部分的代码实现存在着一些性能上的隐患.但当时忙于赶进度和由于卡发中的不稳定因素,想了许多解决方案也没有机会实施.最近,正好趁个机会进行一系 ...

  10. Python之道1-环境搭建与pycharm的配置django安装及MySQL数据库配置

    近期做那个python的开发,今天就来简单的写一下开发路线的安装及配置, 开发路线 Python3.6.1+Pycharm5.0.6+Django1.11+MySQL5.7.18 1-安装Python ...