当前位置: 首页 > >

H.264简单总结

发布时间:

(quan整理)


一、视频信息和信号的特点




1.1直观性


?????? 利用人的视觉系统,直接获取视频信息


1.2确定性


?????? 视频信息只管具体,不易与其他内容混淆


1.3高效性


?????? 利用视觉系统,人们可以并行的观察图像的各个象素,因此具有高效性。


1.4广泛性


?????? 视觉系统占外界信息总量的70%


1.5视频信号的高带款性


?????? 视频信息包含大量的变化的信息,信息量极大,传输网络所需要的带宽相对较大。


?


二、视频压缩的要求和可能性


2.1视频压缩编码的目标


???????????????? 由于视频信息量大,传输带宽高,就要求先对视频源压缩,然后传输,以便节约带宽和存储空间。


??????????????? (1)?????? 视频必须压缩在一定的带宽内,要保证足够的压缩比。


??????????????? (2)?????? 视频压缩后,经恢复要保证一定的视频质量


??????????????? (3)?????? 视频编码器的实现方式应力求简单、易实现、低成本、可靠性高。


2.2视频压缩的可能行


????????????????(1)时间相关行


???????????????????? 在一组视频序列中,相邻相邻两帧只有极少的不同之处,这便是时间相关性。


??????????????? (2)空间相关性


???????????????????? 在同一帧中,相邻象素之间有很大的相关性,两象素越*,侧相关性越强。


?


三、
视频编码技术


3.1基本结构


?????? 视频编码方式与采用的信源有关。根据采用的信源的模型,视频编码可以分为两大类:基于波形的编码和基于内容的编码。


3.2 基于波形的编码


?????? 如果采用“一幅图像由许多象素构成”的信源模型,这种信源模型的参数就是象素的亮度和色度的幅度值,对这些参数进行编码的技术即为基于波形编码。


?????? 利用象素空间的相关性和帧间的时间相关性,采用预测编码和变化编码技术,减少视频信号的相关性,从而显著降低视频序列的码率,实现压缩编码的目标。


3.3基于内容的编码


??????? 如果采用一个分量有几个物体构成的信源模型,这种信源模型的参数事各个物体的形状,纹理,运动,对这些参数进行编码的技术就是基于内容的编码。


?


四、
h264
的应用


4.1 H. 264的技术特点可以归纳为三个方面


??????? (1)注重实用;


??????? (2)注重对移动和IP网络的适应;


??????? (3)在混合编码器的基本框架下,对其主要关键部件都做了重大改进,如多模式运动估计、帧内预测、多帧预测、基于内容的变长编码、4X4二维整数变换等。


??????? (4)在关注H. 264的优越性能的同时必然需要衡量其实现难度。从总体上说,H. 264性能的改进是以增加复杂性为代价而获得的。据估计,H. 264 编码的计算复杂度大约相当于H. 263的3倍,解码复杂度大约相当于H. 263的2倍.


4.2? h264应用可分为3个级别:


??????? (1) 基本档次:? (简单版本, 应用面广 , 支持帧内和帧间编码,基于可变程度的熵编码.)


???????????????????????????????? ?应用领域:? 视频会话,会议电视, 无线通信等实时通信.


????????(2) 主要档次:? ( 采用了多项提高图像质量和增加压缩比的技术措施, 支持隔行视频, 支持基于上下文的自适应的算术编码.)


????????????????????????????????? 应用领域:? 数字广播与数字视频存储.


?????? (4)扩展档次: 应用领域: 可用于各种网络的视频流传输,视频点播


?


五、
视频编码原理


5.1基本概念


????????????? (1)视频编码器 能够对一个图像或者一个视频序列进行压缩,产生码流。



?



????????????? 在上图中,编码器输入的帧或场Fn,以宏块为单位被编码器处理。


?????????????
如果采用帧间预测编码:其预测值P,是由已编码的图像做参考,经运动补偿得到的。预测图像P和当前帧Fn相减,得到两图像的残差值Dn,Dn在经过转换T,量化Q,去处空间冗余,得到系数X,将X重排(使数据更加紧凑),熵编码(加入运动矢量。。。一些图像相关得信息),得到nal数据。


????????????? 再编码器中有个重构的过程(解码的过程),量化系数X,反量化,反变换,得到Dn’,Dn’和预测图像P相加,得到uFn’,再滤波得到Fn’,Fn’就是Fn编码再解码后得图像。


?????????????
如果采用帧内预测编码:预测值P,是由当前片中,己编码的宏块预测得到的(亮度4×4或者16×16预测,色度8×8预测)。当前待处理的块,减去预测值P,得残差值Dn,Dn在经过转换T,量化Q,得到系数X,将X重排(使数据更加紧凑),熵编码,得到nal数据。


????????????? 再重构的过程中,量化系数X,反量化,反变换,得到Dn’,Dn’和预测图像P相加得到当前宏块编码解码后得值,该值可以用来做帧内预测的参考宏块。


?????????????
编码器要有重构机制的原因:重构过程,实质上是个解码的过程,解码后的图像和源图肯定有差别,我门利用解码后的图像做参考,就能够和解码器中保值一致,就能够提高图像的预测精度。(再解码器中,是利用己解码的图像做参考,是从解码的图像预测出下一副图像)


?


????????????? (2)视频解码器 能够对一个码流解码,长生和源图或源视频序列相*的图像或视频序列。如果解码出的图像和源图是一样的,这个编解码过程是无损的,否则是有损。



?


???????????????????? 解码器的实现和编码器的重构机制,是一样的。


?


????????????? (3)场 、帧、图像


???????????????????? 场:隔行扫描的图像,偶数行成为顶场行。奇数行成为底场行。所有顶场行称为顶场。所有底场行称为底场。


???????????????????? 帧:逐行扫描的图像。


???????????????????? 图像:场和帧都可认为是图像。


????????????? (4)宏块、片:


???????????????????? 宏块:一个宏块由一个16×16亮度块、一个8×8Cb和一个8×8Cr组成。


???????????????????? 片:一个图像可以划分成一个或多个片,一个片由一个或多个宏块组成。


5.2编码数据格式


????????????? 5
.2.1? h264支持4:2:0的连续或隔行视频编码解码。


????????????? 5.2.2? h264的编码格式


??????????????????????????? 制定h264的主要目标有两个:


??????????????????????????? (1)得到高的视频压缩比


??????????????????????????? (2)具有良好的网络亲和性,即可适应于各种传输网络。


??????????????????????????? 为此,h264的功能分为两层,视频编码层(VCL)和网络提取层(NAL)


??????????????????????????? VCL数据即被压缩编码后的视频数据序列。在VCL数据要封装到NAL单元中之后,才可以用来传输或存储。NAL单元格式如下图:
???


Nal头


Rbsp


Nal头


Rbsp


Nal头


Rbsp


?????????????5.2.3????????
h264码流结构


5.3参考图像


?????????? H264为提高精度,H264最多可从15个图像总进行选择,选出最佳的匹配图


???????????优点:? 大大提高预测精度


?????????? 缺点:??? 复杂度大为增加


?????????? 参考图像由参考列表(list0,list1)管理,


??????????P帧有一个参考列表 list0


????????? B帧有两个参考列表 list0 和 list 1


?


5.4帧内预测


????????? 预测块P是基于已编码重建块和当前块形成的.


????????? 对于亮度的预测:4×4亮度预测,16×16亮度预测


??????????对于色度象素预测:?? 8×8色度预测


???????? 5.4.1? 4×4亮度预测


????????????????????????? 4×4亮度预测 有9种预测模式


???????????????????????????


?????? ????????? (a)利用上面和左面的象素,对a~q进行帧内4×4预测


?


?????????????????(b)帧内4×4预测的8个方向


??????


??????


??????


??????



模式


描述


模式 0 (垂直)


由上边象素垂直推出相应象素值


模式 1 (水*)


由左边象素水*推出相应象素值


模式 2 (DC)


由上边及左边*均值推出所有象素值


模式 3 (下左对角)


由45度方向象素内插得出相应象素值


模式 4 (下右对角线)


由45度方向象素内插得出相应象素值


模式 5 (右垂直)


由26.6度方向象素值内插得出相应象素值


模式 6 (下水*)


由26.6度方向象素值内插得出相应象素值


模式 7 (左垂直)


由26.6度方向象素值内插得出相应象素值


模式 8 (上水*)


由26.6度方向象素值内插得出相应象素值


??????


?


9种预测模式计算产生的相应的预测块(SAE 定义了每种预测的预测误差),其中 SAE 最小的预测块与当前块最匹配


??????


??????????5.4.2? 16×16亮度预测模式———共有4种预测模式


??????


??????


??????



模式


描述


模式 0 (垂直)


由上边象素推出相应象素值


模式 1 (水*)


由左边象素推出相应象素值


模式 2 (DC)


由上边和左边象*骄低瞥鱿嘤ο笏刂


模式 3 (*面)


利用线性"plane"函数推出相应象素值,适用于亮度变化*缓区域


?


??????????5.4.3? 8×8色度块预测模式


?????????????????? 4种预测模式,类似帧内16*16预测,只是编号不同


?????????????????? DC 为模式 0, 水*为模式 1, 垂直为模式2, *面为模式 3


?


5.5 帧间预测


??????????H264帧间预测是利用已编码的帧或场和基于块的运动补偿。在h264中,块的尺寸更加灵活(16×16到4×4)。


???????? 5.5.1? 基本概念


????????????????????? 活动图像临*帧中的景物存在一定的相关性,因此将图像分成若干块或宏块,并设法搜索出每个块或宏块在邻*帧图像中的位置,并得出两者之间的空间位置的便宜量.得到的相对偏移量就是通常所指的运动矢量(MV).


到运动矢量的过程称为运动估计(ME).


?


??????? 5.5.2树状运动补偿


?????????????? 每个宏块(16×16)的亮度,可以按4种方式分割:1个16×16,2个16×8,2个8×16,4个8×8。8×8模式的子块可以继续划分:1个8×8,2个4×8,2个8×4,4个4×4。这种分割的运动补偿,称为树状运动补偿。??????????????????????????????????????


?????? 树状运动补偿,灵活和细致的划分,大提高了运动估计的精确程度


?????? 块的大小可变。在运动估计时,可以灵活地选择块的大小。在宏块(MB)划分上,H.264采用了16×6,16×8,8×16,8×8四种模式;当划分为8×8模式时,又可进一步采用8×4,4×8,4×4三种子宏块划分模式进一步划分,这样做既可以使运动物体的划分更加精确,减小运动物体边缘的衔接误差,又可以减小变换过程中的计算量。当对较大的*滑区域采用Intra_16×16的帧间预测方式时,为减小小尺寸变换带来的块间灰度差异,H.264采用了对亮度数据的16个4×4块的DC系数进行第二次4×4变换,对色度数据的4个4×4块的DC系数进行2×2变换的方式。



相关文档:《
H.264码流结构》

下一篇:《
H.264/AVC技术进展及其务实发展策略思考》



友情链接: