陈晓培H264技术报告Word格式.docx
- 文档编号:7775938
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:31
- 大小:238.60KB
陈晓培H264技术报告Word格式.docx
《陈晓培H264技术报告Word格式.docx》由会员分享,可在线阅读,更多相关《陈晓培H264技术报告Word格式.docx(31页珍藏版)》请在冰点文库上搜索。
编码器的核心:
被设计用于编码低比特率系数。
H.264档次和级:
(1)基本档次:
利用I片和P片支持帧内和帧间编码,支持利用基于上下文的自适应的变长编码进行的熵编码(CAVLC)。
主要可用于可视电话,会议电视,无线通信等实时视频通信。
(2)主要档次:
支持隔行视频,采用B片的帧间编码和采用加权预测的帧间编码;
支持利用基于上下文的自适应的算术边按摩(CABAC)。
主要用于数字广播电视与数字视频存储。
(3)扩展档次:
支持码流之间有效的切换(SP和SI片),改进误码性能(数据分割),但不支持隔行视频和CABAC。
H.264主要目标:
(1)得到高的视频压缩比,与H.263,MPEG-4相比,视频压缩比提高一倍。
(2)具有良好的网络亲和性,即适用于各种传输网络。
2.整体框架
取样(原始图像)—预测(预处理,帧间或者帧内)—变换编码(DCT)—量化—编码比特流—NAL(网络自适应层)—网络传送(节省带宽和存储空间)—熵解码—重排序—反量化—(IDCT)—运动补偿,可延迟帧存储器—环路滤波器—图像输出(参考图像)
注释:
取样到熵编码(编码)是在A/D变换器中进行,反量化到图像输出(解码)是在D/A变换器中进行。
预测编码和变换编码是在视频信源编码器中进行的,熵编码是在视频复合编码器中进行,熵编码后的码流在经过传输缓冲器和码率控制器以及传输编码器。
传输缓冲器和码率控制器用于保证输出码流尽可能稳定,而传输编码器是用于视频数据的误码检检测和纠正。
视频数据(摄像机,在视频编码器中进行),音频数据(话筒,音频编码器)—ES(基本比特流)—打包器,一种作为节目流复用—硬盘,CO-ROM,一种作为传送流复用—卫星,地面,以及有线电视。
④编码器与解码器:
视频压缩的两个完整的系统。
编码器转化原数据为便于传输与存储的缩减的数据形式,其主要包括三个功能单位:
时域编码模型,空间域编码模型与熵化编码器。
解码器转化压缩的数据格式为原始视频数据。
两者经常并称为“CODEC”。
源信号—源编码器—信道编码器—信道—信道解码器—源解码器—解码信号
(原始信息(未压缩信息)被编码(压缩),这被称为信源编码。
被编码的源信号在信道传输之前进一步编码以增加纠错功能,称为信道编码。
在接收端,信道解码器检测或纠正传输中的错误,接着由信源解码器检测或纠正传输中的错误,接着由信源解码器解压缩出原信号。
解压缩的信号可能和原信号是一致的(无损压缩),或者在某种程度上失真和退化(有损压缩))。
大多数的视频未编码压缩的方式都是通过去除时域与空间域上的冗余来达到压缩效果,这是由于视频在时域与空间域上的(帧间与帧内)的像素信息有很大的相关性。
故根据此原理主要有帧间与帧内编码,如分别基于块与区域的运动估计与补偿的编码(帧间),变换编码(离散小波变换与离散余弦变换)(帧内)。
还有统计方法的编码方式:
量化编码,与熵化编码。
⑤视频编码几大冗余:
空间冗余:
在一幅图像或一帧视频中相邻的样本点(像素)一般具有很高的相关性。
时域冗余:
连续帧中的相邻区域也往往具有很高的相关性。
主观冗余:
利用人眼视觉系统对图像和视频的不同特点的敏感程度的不同,例如人眼视觉模型HVS对低频的信号比对高频的喜好敏感,因此可以通过去除一定的高频分量来压缩图像。
统计冗余:
熵编码的统计冗余。
视频质量的判别客观标准:
利用峰值信躁比PSNP=
,信躁比越大,视频质量越高。
(MSE为原始和编码后图像之间的均方误差,
为图像中最大可能的信号值平方,n为每个像素的比特数)。
3.各个流程解剖
(1)取样
自然视觉场景取样:
视频图像是三维场景在二维平面上的投影。
视觉场景的主要特点是自然而平滑连续,故为了捕获自然视频场景,数字视频采用空间域上(方网格取样)的取样与时间上等间隔的画面取样,并转化为图像像素信息的数字化存储。
景物—镜头—捕获—处理/存储/传输—显示
采集视频场景的数字化分为两个阶段,捕获(转换场景的投影到电子信号,比如通过CCD阵列)与数字化(对投影时空采样并且将样本转换为一组数字)。
数字化过程可以通过一个独立设备或者电路板完成(例如PC上的视频捕捉卡),而现在的趋势是数字化过程整合到摄影机中,使得摄影机输出已经是数字化表示了。
空间的取样:
通常CCD阵列在网格的交叉点处进行取样,视频的清晰与否取决于视频的分辨率,即在一个画面取样的单位像素的量决定。
(最常见的采样图像格式是采样点以正方形点阵分布的矩形,通常宽度大于高度),更多的采样点(更高的采样分辨率)能提高更好的图像,然而,更多的采样点需要更多的存储空间。
典型视频图像分辨率:
图像分辨率
采样点个数
等价于模拟视频
352*288
101376
VHS视频
704*576
405504
广播电视
1440*1152
1313280
高清电视
时域的取样:
对自然场景等间隔的取样,而实际上的视频则根据需要选择取样的时间间隔,如25次/s-30次/s是标准的数字图像取样速率,低于此速率的虽然比特率小但图像的平滑与平稳性都不佳,高于此比特率的视频质量高但比特率大。
且取样的方式并不仅有对整个图像一次取样的帧取样,还有将一帧图像分为两场的场取样:
顶场与底场。
顶场由奇数行构成,底场由偶数行构成。
这种取样方法的好处是在同样的带宽下,是视频接收端的播放更流畅。
通过实验证明,视频运动量大的地方可采用场取样,运动量小时可选取帧取样。
使用隔行扫面视频能提高时间采样的视频序列的视频效果。
例如工作帧率为25HZ(即一秒钟视频包括25个完整帧),然而为了提高视觉表示而不增加数据率,视频序列被组织成50HZ的场(每秒50场)。
每场包括完整帧一半的信息。
显示:
显示二维视频信号需要在二维显示设备上重建每一幅视频帧。
最常见的显示设备是阴极射线管(CRT),图像被扫描成为调制的电子束射到荧光屏上。
液晶显示器(LCD)正在逐渐取代CRT显示器。
色彩空间的取样格式:
如果一个样本用n个二进制位表示,那么0就表示黑色,而(
)表示白色,中间值用来表示灰度。
色彩空间表示色彩与其亮度的方式,有RGB与YCBCr两种颜色空间,RGB为三原色红绿蓝表示一个像素信息,它十分适合图像的捕捉与展示,通常摄像设备是过滤其他颜色来收集各单色的信息。
但是RGB色彩空间的颜色数据往往较大,而且统计研究表明,将图像中的亮度信息从彩色信息中分离出来,并使之具有更高的清晰度。
即将RGB转化为YCbCr(Y表示亮度,CbCr表示蓝色和红色色度)色彩空间来进行存储于传输。
彩色信息的清晰度降低,可显著压缩带宽,实现视频压缩的一部分。
但是,人眼对画面的感觉没有不同。
(YCbCr相对RGB而言一个重大的优点,就是我们可以用比Y更低的分辨率来存储CbCr,因为人类视觉系统(HVS)对色度的敏感程度低于亮度,这样可以减小大量数据的同时对视觉质量没有明显的影响)
RGB与YCbCr转化公式为:
Y=KrR+KgG+KbB(Kr+Kg+Kb=1);
Cb=B-Y;
Cr=R-Y;
(Cb,Cr,Cg之和为常数)
Cg=G-Y;
取样格式:
Y:
Cb:
Cr=4:
4:
44:
24:
0(Y:
亮度,Cb,Cr为色度)一般选取4:
0的取样格式。
4:
是Y,Cb,Cr在图像水平方向上的取样速率一样,即每个像素点都对YcbCr进行取样。
这种取样格式的视频质量最高,但是其需要更多的存储空间与码率。
2:
Cb,Cr在水平方向上的取样速度是Y的1/2。
垂直方向上是Y,Cb,Cr在图像水平方向上的取样速率一样,这种取样格式的视频质量一很高,一般作为高质量的色彩重构。
0:
Cb,Cr在水平面上与垂直方向上的取样速度都是Y的1/2。
其是一种非常流行的取样格式,虽然其视频质量一般,但其存储空间与码率的要求仅为4:
4的一半。
故在视频会议,数字电视与DVD存储上被广泛使用。
0采样有时也被称为“12比特像素”。
如果使用4:
4采样有12个采样点,Y,Cb,Cr各有四个,一共需要12*8=96比特,平均每个像素96/4=24比特。
而使用4:
0采样,只有6个采样点,Y四个,Cb,Cr各一个,一共需要6*8=48比特,每个像素48/4=12比特。
(其中三个数字分别代表的是Y,Cb,Cr在图像水平方向上的取样速率,4:
4取样模型中Y,Cb,Cr对于每单位是24bits,而4:
0是12bits,比前者少一半。
)
取样频率:
(
为模拟信号的上限频率),保证无失真的由取样后的离散信号恢复出原来的模拟信号。
视频的格式:
以上是色彩空间的的取样格式。
但对于一帧图像,取样的一帧图像中得到像素点信息的数量(即分辨率)则决定了图像的清晰与否。
故根据用户的需要,视频帧的取样又分为4种格式,根据具体的需要选择格式,分别为:
Sub—QCIF(128*96的亮度分辨率)在4:
0的色彩空间取样格式每秒需147456bits,最低。
QuarterCIF(QCIF)(175*144的亮度分辨率)在4:
0的色彩空间取样格式每秒需304128bits。
CIF(352*288的亮度分辨率)在4:
0的色彩空间取样格式每秒需1216512bits。
4CIF(704*576的亮度分辨率)在4:
0的色彩空间取样格式每秒需4866048bits,最高。
4CIF用于标准电视与DVD视频,CIF与QCIF一般用于作视频会议,而QCIF语SQCIF由于其需要的比特率很小,很适合像移动设备这种屏幕分辨率与比特率有限的设备。
而且对于视频一秒内取样的帧的数量决定视频播放的流畅性,根据ITU-RBT.601-5的参数:
可分为30HZ(forNTSC信号)与25HZ(forPAL/SECAM信号)的取样频率。
(2)预测
预处理:
在对图像进行编码前,需要对图像进行预处理。
包括获取图像,如何获取图像并进行相应的处理呢?
首先,进行色彩插值,获取三基色R,G,B。
接着进行色彩校正,消除图像与真实场景之间的差异。
伽马校正,使显示的图像效果和实际相符。
图像增强,消除相关性和高频噪声,有利于图像的压缩和处理。
其中平滑滤波是在保持图像细节的同时,消除噪声;
图像锐化是使图像边缘变得鲜明,直方图均衡描述了一幅图像的灰度级内容。
白平衡,是对白色物体的还原,不同温度下拍摄的物体导致色彩上的差异,所以要进行白平衡处理。
片分割:
将图像分割成不重叠的矩形块,这些片可以单独进行压缩编码。
DC电平平移:
将图像中所有无符号分量的样本值进行直流电平平移,即减去一个相同的
(p是分量的比特数),使离散小波变换系数动态范围不会太大,有利于后续编码。
④分量间变换:
去掉分量间的相关性,达到提高压缩编码效率的作用。
帧间编码与帧内编码的选择判定:
利用帧间相关性判定,相关性大采用帧间编码,否则采用帧内编码。
帧内:
一个待编码的像素可以通过相邻像素构建预测值,并计算与原像素之间的残差,解码则反过来。
利用像素间的相关性进行压缩编码(传送残差,残差为当前像素与参考像素的差值),像素间的相关性采用m个像素的加权作为预测,相关性大,则
变小,压缩效率提高。
其中帧内预测包括一维预测,二维预测,以及编码增益,对于编码增益,如果是高斯信原,则GDPCM=
(即原始信号方差与预测误差方差之比)
一个帧分为两场(顶场和底场),帧的空间相关性强,适用于运动量不大的图像,而场的时间相关性强,适用于运动量大的图像。
总结:
频域模型的输入是残差图像,它利用相邻像素点的相似性,消除残差图像的频域冗余,编码器对残差图像进行频域变换,再量化,得到相应的系数。
变换系数经过量化后,保留了少量的残差系数,它们构成了残差图像的压缩性描述,并作为频域模型的最好输出。
帧间:
对于帧间的编码可利用相邻图像来构建当前预测图像,并计算出其与当前图像的残差值。
残差值越小,则压缩效率越高。
而对于解码器而言,只要通过已解码的先前图像构建出当前预测图像,再加上残差即可还原原来的图像。
所以只要存储和发送残差值便可达到显著压缩的目的。
帧间预测编码可采取基于帧的分割,也可以采取基于场的分割。
它分为单向预测和双向预测,单向预测(运动补偿),一种是传送帧差和每个像素的运动矢量(预测图像利用上一帧的图像得到其运动矢量),另外一种是基于块(1/4像素精度,像素位置内插,提高了编码效率)过去帧与当前帧的宏块匹配时,求出改亮度宏块的运动矢量Vx和Vy,分别表示过去帧的最佳匹配块比当前帧的宏块右移Vx和Vy个像素,构成当前帧的亮度预测帧,色度块则作Vx/2和Vy/2位移,组成当前色度预测帧,接着将相应的当前帧块和预测帧块相减得到帧误差信号(残差信号),再对此帧差信号进行DCT变换,量化后传送到复合编码器。
当前帧块与前一帧块的位移
,匹配准则(均方误差最小,绝对误差最小)。
在残差帧中,中等灰度区域的数据都是0,浅色和黑色区域分别表示正的和负的残差数据。
很明显,大部分的残差数据都是零。
④帧间预测存在的问题:
对第一帧,编码器和解码器没有用预测,从第二帧开始出现困难:
编码器用原始帧1作为一个预测兵器编码残差结果,但是解码器只拥有解码除的帧1来形成预测。
因为编码过程是有损的,解码除的帧1和原始帧1存在区别,这导致在解码端对帧2的预测有一个小的误差,这个误差会随着每一个连续帧逐渐增加,然后编码器和解码器的预测会很快的“漂移”开来,导致解码质量的严重下降。
解决方案:
用编码器解码(或重建)帧1来形成对帧2的预测。
编码器和解码器采用相同的预测,漂移就可以减小或消除。
如图所示:
为了重建它的预测帧,它包含了一个解码的“环”,重建帧(或参考帧)在编码器和解码器中被存储,用于形成下一编码帧的预测。
⑤预测值PRED和当前块相减后,产生一个残差块Dn,经过变换,量化后产生一组量化后的变换系数X,再经熵解码,与解码所需的一些头信息(如预测模式量化参数,运动矢量等)一起组成一个压缩后的码流,经NAL(网络自适应层)供传输和存储用。
熵解码得到量化后的一组变换系数X,再经反量化,反变换得到残差Dn’,利用从改比特流中解码出的头信息,解码器就产生一个预测块PRED,它和编码器中的原始PRED是相同的,当该解码器产生的PRED与残差Dn’相加后就产生uFn’,再经滤波后最后就得到滤波后的Fn’,这个Fn’就是最胡的解码输出图像。
如下编码器和解码器图所示:
预测漂移:
编码器输入
编码器预测
编码器输出/解码器输入
解码器预测
解码器输出
源帧1
压缩帧1
零
解码帧1
源帧2
压缩残留帧2
解码帧2
源帧3
解码帧3
利用当前帧与前一帧所创建的预测帧相减得到残差,进入图像编码器得到编码的帧,接着进入图像解码器,所解码的帧又作为下一帧的预测帧。
总结:
上述可以归结为时域模型。
时域模型建立预测帧来降低时域冗余,预测器采用当前帧之前或之后的一帧或多帧图像作为参考,采用运动补偿技术来降低预测帧与当前帧之间的差别。
时域模型输出是当前帧与预测帧相减的结果(残差图像)和各个模型参数,如描述运动补偿的各个运动矢量等。
几种帧(I帧,P帧,B帧):
一个编码图像通常划分为若干块组成,一个宏块由一个16*16亮度像素和附加的一个8*8Cb和一个8*8Cr彩色像素块组成。
每个图像中,若干宏块被排列成片的形式。
I片只包含I宏块,P片可包含P和I宏块,而B片可包含B和I宏块。
I帧是帧内编码,不需要运动补偿预测,I帧图像作为进一步预测图像的参考。
P帧图像是从参考图像中使用运动补偿预测的帧间编码图(P帧或I帧来预测P帧),因此P帧采用前向预测方法,P帧本身可以作为将来预测的参考图像(P帧或B帧)。
B帧是帧间编码图,使用两个参考图像进行运动补偿和预测:
在当前B帧前面或后面的P帧和/或I帧。
前向预测的问题:
1.在参考帧和预测帧之间有明显的时间差别(这意味着图像变换很大)
2.当发生一个场景变化或者场景切换时,性能会较差。
3.当一个运动的物体出现在图像中原来被遮盖的部分(例如门打开了),这个遮盖的区域在参考帧中不存在,所欲不能有效的进行预测。
后向预测:
场景切换之后的第一帧或者一个刚刚显出的物体利用将来帧可以得到更好的预测。
双向预测:
一个基于原来的参考帧(一个I图像或者P图像)和一个基于将来的参考帧,编码器根据先前参考帧和将来参考帧找到最佳匹配(就是最小SAE)的运动矢量。
第三个SAE值是von个当前块中减去两个匹配区域(先前的和将来的)的平均。
B帧的压缩效率提高了50%。
处理单元:
子单元现在是4*4块,一个宏块总共包含26个块,即亮度块有16块(每个4*4),每个色度分量有4个4*4块,再由8个色度块的DC系统组成了2个2*2的子块。
Y:
4*4U4*4V
1
4
5
2
3
6
7
8
9
12
13
10
11
14
15
18
19
20
21
22
23
24
25
16
17
2*2
块匹配:
例如如图为3*3个像素,当前块与参考帧中同样位置(0,0)块的均方误差(MSE)计算如下:
{(1-4)^2+(3-2)^2+(2-3)^2+(6-4)^2+(4-2)^2+(3-2)^2+(5-4)^2+(4-3)^2+(3-3)^2}/9=2.44
参考区域
当前块
块匹配例子的MSE值
位置(x,y)
(-1,-1)
(0,-1)
(1,-1)
(-1,0)
(0,0)
(1,0)
(-1,1)
(0,1)
(1,1)
MSE
4.67
2.89
2.78
3.22
2.44
3.33
0.22
2.56
5.33
由图可知,当前块的组号模型(就是最好的预测)是以位置(-1,1)为中心的3*3区域。
匹配准则的几种方法:
最小均方差函数,最小平均绝对值函数,阙值差别计数。
匹配误差函数可以用个各种优化方法进行最小化:
运动搜索算法如穷尽搜索法(把当前帧的给定块与参考帧所有候选块比较,找具有最小匹配误差的一个,这两个块之间的位移为MV),快速搜索法(二维对数搜索法和三步搜索法)
全搜索法运动估计,五帧:
可变窗尺寸
搜索窗口
总的SAE(没有补偿)
总的SAE(经过补偿)
比较操作的数量
正负1
1326783
1278610
1.0*10^6
正负3
1173060
5.2*10^6
正负7
898581
23.4*10^6
正负15
897163
99.1*10^6
结论:
当搜索窗增大到15个像素的时候,SAE只有少量改善,但代价却是计算量增长了4倍。
运动估计计算法比较,五帧:
搜索窗为正负15个像素大小
算法
全搜法
三步搜索法
914753
3.6*10^6
三步搜索法大大减小了操作的数量,但经过运动补偿的残差块相对于全搜法得到的最佳匹配包含更多的能量。
分数精度搜索法:
搜索相应块的步长不一定是整数,为了实现1/k像素步长,对参考帧进行了k倍内插。
其中基于块的选择:
块尺寸大(适用于图像细节比较少,比较平坦),块尺寸小(适用于细节比较多)
解码端:
运动矢量经过运动匹配后得到的预测误差。
参考帧图像中找到相应的块或宏块+预测误差=解码的块或宏块在当前帧中的位置。
运动估计与运动补偿:
上述编码压缩方式有一定的局限性(当图像有剧烈变化时信息量依旧很大),所以可采用图像的运动估计与补偿方式来进一步提高压缩的精确度,进一步提高压缩效率。
对于一个物体的运动估计,我们需要得出其与其匹配块的矢量。
而对于一个物体的运动补偿,我们有需要比较其间的变化并得出变化的量作为补偿。
结合运动的矢量与补偿才可使视频的播放更自然与流程。
图像的运动估计与补偿主要由两种:
基于块(宏块)的图像估计与补偿以及基于区域的图像估计与补偿。
前者的方法是将图像分割成N*N的块来进行运动估计,再通过搜索算法(较优越的三步搜索法)找到匹配快,计算两者之间运动矢量与补偿值。
同时,块(宏块)的大小亦是影响运动估计精确度的原因,块越小可使估计的程度越精细。
但是块越小,则处理会变得更加复杂,同时需要传输的运动矢量亦会大幅增加。
所以适当选择块的大小是及其重要的(一般是8*8)。
在一些情况下(如物体旋转或是形状发生变化),基于块匹配方式就不够高效,故此时可采用基于区域的运动估计,以物体的轮框移动进行运动估计,但缺点是物体的轮廓容易被混淆而出现误辨认。
分像素运动补偿:
为了使运动补偿的量更加精确,可采用分像素运动补偿法。
以三步法一次搜索整像素匹配点,半像素匹配点,1/4像素
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 陈晓培 H264 技术 报告