《h.264演示文稿.ppt.ppt》由会员分享,可在线阅读,更多相关《h.264演示文稿.ppt.ppt(58页珍藏版)》请在三一办公上搜索。
1、H.264 视频编码标准,提纲,1 视频压缩编码技术2 编码基本原理3 H.26x视频编码标准4 H.264/AVC,1,1、视频压缩编码技术,根据采用的信源模型分:基于波形的编码把预测编码、变换编码组合起来的基于块的混合编码方法ITU-T发布的第一个数字视频标准H.261、H.263、H.264,及MPEG-1、MPEG-2、MPEG4基于内容的编码先把视频帧分成对应于不同物体的区域,然后分别对其进行编码。MPEG-4,2,2、编码基本原理,1、预测编码:取像素预测值与实际值之差。(同一幅图像的邻近像素之间有着相关性,发生突变的概率很小,且同帧图像中邻近行之间对应位置的像素之间也有较强相关性
2、)帧内预测编码帧间预测编码2、变换编码DCT变换3、熵编码变长编码(哈夫曼编码)、算术编码,3,3、H.26x视频编码标准,1、H.2612、H.263,4,3.1、H.261,H.261是ITU-T为在综合业务数字网(ISDN)上开展双向声像业务(可视电话、视频会议)而制定的,速率为64kb/s的整数倍。H.261只对CIF(公共中间层)和QCIF两种图像格式进行处理:发送方先把彩电制式转换成CIF格式,经H.261编码后,再由CIF格式转换到接收方彩电制式。CIF:352x288,progressive,4:2:0;QCIF:176x144,progressive,4:2:0每帧图像分成图
3、像层、宏块组(GOB)层、宏块(MB)层、块(Block)层来处理。,5,详细制定了视频编码的各个部分:运动补偿的帧间预测、DCT变换、量化、熵编码,以及与固定速率的信道相适配的速率控制等。,6,3.2、H.263,H.263是最早用于低码率视频编码的ITU-T标准。H.263是ITU-T为低于64kb/s的窄带通信信道制定的视频编码标准。它是在H.261基础上发展起来的,其标准输入图像格式可以是S-QCIF、QCIF、CIF、4CIF或者16CIF的彩色420亚取样图像。H.263与H.261相比采用了半象素的运动补偿,并增加了4种有效的压缩编码模式。,7,4、H.264/AVC,简介编解码
4、名词解释编码格式编码基本原理应用,8,4.1 简介,H.264是ITU-T的视频编码专家组(VCEG)和ISO/IEC的活动图像编码专家组(MPEG)的联合视频组(JVT:jointvideoteam)开发的一个新的数字视频编码标准,它既是ITU-T的H.264,又是ISO/IEC的MPEG-4的第10部分。,9,H.264用大运算量来换取高压缩率、高画质超高压缩率,其压缩率为MPEG-2的2倍以上,MPEG-4的1.5至2倍。H.264才标准化,运算顺序还有改善的空间。,10,4.2 编解码,规定了一个编了码的视频比特流的句法,和该比特流的解码方法。编解码器和基于以前标准的编解码器主要不同在
5、于功能细节。视频内容的变化,有时空间细节很多,有时大面积平坦,采用自适应技术。信道在环境恶劣下多变,要求采取相应自适应方法来对抗。,11,4.2.1 编码器,功能块组成并没有什么区别,12,采用变换与预测的混合编码方法,输入的帧或场Fn以宏块为单位处理按帧内或帧间预测方法处理如果采用帧内预测编码,其预测值由当前片中已编码的参考图象经运动补偿(MC)后得出。,13,1、预测值PRED和当前块相减后,产生一个残差块Dn,经块变换、量化后产生一组量化后的变换系数X,再经熵编码,与解码所需的一些边信息一起组成一个压缩后的码流,经NAL供传输和使用。2、实现重建图像功能。使残差图像经反量化、反变换后得到
6、的Dn与预测P相加,得到uFn。再经环路滤波器去除编码解码环节中产生的噪声。滤波后输出Fn即为重建图像(可用作参考图像)。,14,4.2.2 解码器,15,帧间预测解码步骤由编码器NAL输出的压缩后比特流,经熵解码得到量化后的一组变换系数X,再经反量化、反变换得到残差Dn。Fn-1经MC后得到PRED(与编码器中的相同)Dn与PRED相加产生uFu,再经滤波得到重建图像。,16,4.3 名词解释,片一个视频图像可编码成一个或多个片,每片包含整数个宏块(MB)。设片的目的是为了限制误码的扩散与传输,故相互间应保持独立。片组:是一个编码图像若干个MB的一个子集,可包含一个或若干个片。一个片组中,每
7、片的MB按光栅扫描次序进行编码。还有一种片组,叫灵活的宏块排序(FMO)。是指将一幅图像中的宏块分成几个组,分别独立编码,通过设置宏块次序映射表(MBAmap)来任意地指配宏块到不同的片组。,17,档次和级,基本档次利用I片和P片支持帧内和帧间编码,支持利用基于上下文的自适应的变长编码进行的熵编码(CAVLC)。主要用于可视电话、会议电视、无线通信等实时视频通信。主要档次支持隔行视频,采用B片的帧间编码和采用加权预测的帧内编码;支持利用基于上下文的自适应的算术编码(CABAC)。主要用于数字广播电视与数字视频存储。扩展档次支持码流之间有效的切换(SP和SI片)、改进误码性能(数据分割),但不支
8、持隔行视频和CABAC,主要应用于流媒体中。,18,19,扩展档次,基本档次,主要档次,冗余片方法 前边提到了当使用无反馈的系统时,就不能使用参考帧选择的方法来进行错误恢复,应该在编码时增加冗余的片来增强抗误码性能。,20,数据分割DP组成片的编码数据存放在3个独立的DP中。分割A:片头和片中每个宏块头的数据分割B:帧内和SI片宏块的编码残差数据分割C:帧间宏块的编码残差数据,21,4.4编码格式,视频编码层(VCL)负责高效的视频内容表示VCL数据即编码处理后的输出,它表示被压缩编码后的视频数据序列网络提取层(NAL)在VCL数据传输或存储之前,这些编码的VCL数据先被映射或封装进NAL单元
9、中。,22,23,4.4.1 网络提取层(NAL),NAL以NALU为单元来支持编码数据在基于分组交换技术网络中的传输。网络层和传输层的RTP封装只针对基于NAL单元本地NAL接口。分组网络中:每个NAL单元以独立的分组传输,在解码之前重新排序。电路交换环境中:传输之前须在每个NAL单元之前加上起始前缀码,使解码器能够找出NAL单元的起始位置。,24,NAL头:NALU 类型,用bit代表NALU 中32种不同类型特征。:用于重构过程中标记一个NAL单元的重要性,如为时表示此NALU 没有用于预测;高于,表示用于无漂移重构,且值越高,丢失此NALU 的影响越大。(bit):用于适应不同种类的网
10、络环境。默认为,当网络识别到单元中存在比特错误时置为。(bit),25,RBSP序列SPS:序列参数集,针对一连续视频序列的参数。SEI:序列增强信息。PPS:图像参数集,对应一个序列中某幅或几幅图像图像定界符:视频图像的边界。POC:图像序列号,标识图像的播放顺序。,26,4.5 特征,帧内预测帧间预测整数变换熵编码SP/SI片,27,28,4.5.1 帧内预测,帧内预测编码就是用周围邻近的象素值来预测当前的象素值,然后对预测误差进行编码。对I帧的编码是利用空间相关性而非时间相关性而实现的。预测块是基于已编码重建块和当前块形成的。编码模式对于亮度分量,块的大小可以在1616和44之间选择,1
11、616块有4种预测模式,44块有9种预测模式。对于色度分量,预测是对整个88块进行的,有4种预测模式,类似于1616 亮度块预测模式。,29,I_PCM编码模式,编码器直接传输图像像素值,而不经过预测和变换。允许编码器精确地表示像素值提供表示不规则图像内容的准确值,而不引起重大的数据量增加。严格限制宏块解码比特数,但不损害编码效率参考预测块左上方或上方的已编码块的邻近像素点,被引入空间域。,30,44亮度预测模式,31,九种模式:,32,33,帧内预测模式信号化帧内预测以绝对误差和(SAE)为标准选取最佳预测模式。传送预测模式给解码器。,34,4.5.2 帧间预测,仍旧使用运动估计和运动补偿消
12、除时间冗余。预测时所用块的大小可变(从1616到)由于基于块的运动模型假设块内的所有象素都做了相同的平移,在运动比较剧烈时或者在运动物体的边缘处,这一假设会与实际出入较大,从而导致较大的预测误差,这时减小块的大小可以使假设在小的块中依然成立。小的块所造成的块效应相对也小,一般来说小的块可以提高预测的效果。,35,36,H.264一共采用了7种方式对一个宏块进行分割。每种方式下块的大小和形状都不相同,这就使编码器可以根据图像的内容选择最好的预测模式。,37,与仅使用1616块进行预测相比,可以使码率降低15以上。大的分割尺寸适合于平坦区域,小尺寸适合于多细节区域。,亚像素运动矢量的使用(更精细的
13、预测精度)运动矢量由于活动图像邻近帧中景物存在一定的相关性,可将其分成若干块或宏块,并设法搜索出每个块或宏块在邻近帧图像中的位置,得出两者的空间位置相对偏移量。,38,在H.264中,亮度分量的运动矢量使用1/4像素精度,色度分量为1/8像素精度。亚像素位置的亮度和色度像素并不存在于参考图像中,需利用邻近已编码点进行内插而得。如此精细的预测精度,较之整数精度可以使码率降低20以上。,39,40,多参考帧 H.264 编码标准与以往标准的最大不同:在运动估计中采用多参考预测帧来提高预测精度。H.264支持多参考帧预测(最多5个)。这适用于视频序列中含有周期性运动的情况。较之只使用一个参考帧,使用
14、5个参考帧可以使码率降低510。,41,42,去块效应滤波器 其作用是消除经反量化和反变换后重建图像中由于预测误差产生的块效应,即块边缘处的象素值跳变。基于块的帧内和帧间预测残差的DCT变换的系数量化过程相对粗糙,因而反量化过程恢复的变换系数带有误差。运动补偿预测中的运动补偿块可能是从不同帧的不同位置上的内插点数据复制而来,运动补偿块的匹配不可能是绝对准确的。,43,分类后置滤波器只处理编码环路外显示缓冲区的数据。环路滤波器处理编码环路中的数据,经过滤波后的图像将根据需要放在缓存中用于帧间预测。注意:对于帧内预测,使用的是未经过滤波的重建图像。H.264中的去块效应滤波器能够根据图像内容做出判
15、断,只对由于块效应产生的象素值跳变进行平滑,而对图像中物体边缘处的象素值不连续给予保留,以免造成边缘模糊。,44,4.5.3 整数变换,H.264对帧内或帧间预测的残差进行离散余弦变换DCT编码,并改变为近似的整数变换。如把DCT正交变换时用的系数1,0.414变成2,1;cos(/8),cos(/8)2变成1/(5)1/2,1/5。,45,优势使原来必须用浮点运算进行的余弦函数运算,可用整数运算进行。还削减了系数的种类,使运算量减少。变换的单位是 44块,而不是以往常用 88块,有助于减小块效应。,46,4.5.4 熵编码,对于片层以上的数据,H.264采用Exp-Golomb码,而对于片层
16、(含)以下的数据,如果是残差,H.264有两种熵编码方式:基于上下文的自适应变长码(CAVLC)和基于上下文的自适应二进制算术编码(CABAC);如果不是残差,H.264采用Exp-Golomb码或CABAC编码,视编码器的设置而定。,47,CAVLC,在CAVLC中,H.264采用若干VLC码表,不同的码表对应不同的概率模型。编码器能够根据上下文,如周围块的非零系数或系数的绝对值大小,在这些码表中自动地选择,尽可能地与当前数据的概率模型匹配,从而实现上下文自适应的功能。,48,CABAC,算术编码是一种高效的熵编码方案,其每个符号所对应的码长被认为是分数。在CABAC中,每编码一个二进制符号
17、,编码器就会自动调整对信源概率模型(一个“状态”)的估计,随后的二进制符号就在这个新的概率模型基础上进行编码。与CAVLC编码中预先设定好若干概率模型的方法相比,码率降低大约10%。,49,4.5.5 SP/SI 帧,SP编码原理和P类似,仍是基于帧间预测的运动补偿预测编码与P的差异在于SP帧能够参照不同参考帧重构出相同的图像帧。SISI则是基于帧内预测的编码技术,其重构图像的方法和SP完全相同。,50,应用,1、流间切换视频服务器应该可根据网络条件调整编码码率,实现带宽的自适应性。SP 片的主要目的便是用于不同码流的切换问题:设切换前传输码流中最后一帧为P1,n-1,切换后的目标码流第一帧为
18、P2,n+1(假设是P帧),由于P2,n+1的参考帧不存在,直接切换显然会导致严重失真,而且这种失真会向后传递。一种简单的解决方法就是传输帧内编码的P2,但是一般I帧的数据量很大,这种方法会造成传输码率陡然增大。,51,52,视频流明确的切换点处放置主SP帧,在切换时发送与其相对应的辅SP帧。,2、拼接与随机接入当各码流来自不同的信源,帧间缺乏相关性时,切换点处采用帧内预测的SI帧。,53,3、错误恢复采用不同的参考帧预测,可以获得同一帧的多个SP帧,利用这种特性可以增强错误恢复能力。,54,4.6 H.264的应用场合,应用场合1、对话应用,如视频电话和视频会议有严格的时延限制(端到端时延小于1s,最好小于100ms)。编解码器的参数能实时调整,错误恢复机制要根据实际网络变化而改变。编解码的复杂度不能很高,比如双向预测的模式就不能被采用。,55,2、下载服务可使用可靠的传输协议如FTP和HTTP将数据全部传输。由于这种应用的非实时性,编码器可以通过优化进行高效编码,而且对时延和错误恢复机制没有要求。,56,3、流媒体服务应用对时延要求介于上面两者之间,初始化时延是10s以内。编码器可以进行优化实现高效编码(比如双向预测)。然而通常流媒体服务使用不可靠的传输协议,所以编码时要进行差错控制并进行信道纠错编码。,57,