织梦CMS - 轻松建站从此开始!

罗索实验室

H.264-AVC视频编码原理及实现(二)

落鹤生 发布于 2013-01-11 10:08 点击:次 
目录 (?) [-] 二视频编码基本原理 原理图 运动估计 DCT 量化 Z-Scan 熵编码 重构 二视频编码基本原理 2.1 原理图 目前常用的视频编码算法基本上都是以运动估计和以块为单位的时-频变换为基
TAG:

二视频编码基本原理

2.1 原理图

 

 

 

 

 

目前常用的视频编码算法基本上都是以运动估计和以块为单位的时-频变换为基础。

运动估计,处理了相邻视频帧中的相同部分。

时-频变换,使得数据块的能量更加集中地分布。常用的时-频变换是DCT变换。

2.2 运动估计

运动估计(Motion Estimation),相邻视频帧之间的内容存在一定的相关性。把图像分成若干块,通过一定的搜索算法,在邻近帧中找到和该块最相似的块,这个过程称为运动估计,二者之间的相对偏移量称为运动矢量。

在编码的过程中,对运动矢量和预测的参差进行编码。通过运动估计减少了帧间的时间冗余。

 

常用的运动估计的匹配算法有:

常用运动估计的搜索算法有:

1 全匹配法

光栅方式扫描所有像素,找到最匹配的块位置。

2 二维对数法

又称五点搜索,边缘点以原步长继续搜索,中心点或边界点步长减半。

 

3 三步搜索

又称8点搜索,每次确定下一步的搜索点,并将步长减半。

4 领域搜索

根据邻近已编码MB的位置,确定中心的,如果原点最匹配,停止搜索,如果最匹配点是搜索框边缘,继续以该点为中心进行搜索。

 

5 其它

菱形搜索

钻石搜索

2.3 DCT

对数据块进行空域到时域的变换,能量更加集中。

转换公式:

 

对于一个8x8的数据块(表1)经过DCT后转换成表2:

在DCT的转换过程中,当u=0,v=0时,F(0,0)代表了整个8*8图像块的均值,F(0,0)称为直流系数(DC),其余变换后的63个数,称为交流系数(AC)。交流系数距离直流系数越远,交流系数的频率越高。

2.4 量化

量化:目的是使保存数据的比特数降低,手段是把一批输入值对应到一个输出级上,结果降低了数据的精度。

 

量化示例:

结论:经过量化后的数据,在进行解码还原时势必导致图像的失真。量化的精度,决定了图像还原时的失真程度,精度越高,失真越小,反映在码率上,就是量化精度越高,码率越大。

 

帧内编码和帧间编码采用的不同量化方式

编码时对量化值进行编码传输。

 

量化公式:

 

2.5 Z-Scan

DCT加量化后的数据,能量都集中在左上角,在进行数据保存时采用Z扫描的顺序进行保存。

经过Z扫描后,直流系数和交流系数的低频部分,会排在新数组的前面,而交流系数的高频部分排到后面,而高频中大部分数的值大多都是0,这样我们就把可以得到一长串的“0”的序列,为下一步的编码做好准备。

 

2.6 熵编码

原理:信息冗余

常用的熵编码有:

RLE:行程长度编码,是针对交流系数进行编码的,它的编码原理是,使用一个字节的高4位表示连续的0的个数,使用它的低4位表示编码下一个非0系数所需要的位数,跟在后面的是非0系数的值。

 

Huffman:在变长编码中,对出现概率大的符号赋予短码字,对出现概率小的符号赋予长码字。

 

其它:CAVLC,CABAC

2.7 重构

模拟解码器对已经编码的数据进行解码,解码后的视频数据作为其后编码的视频的参考帧数据。

(wutong_login)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www1.rosoo.net/a/201301/16456.html]
本文出处:CSDN博客 作者:wutong_login 原文
顶一下
(5)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容