多媒体技术基础-MPEG-4 AVC H.264视像_第1页
多媒体技术基础-MPEG-4 AVC H.264视像_第2页
多媒体技术基础-MPEG-4 AVC H.264视像_第3页
多媒体技术基础-MPEG-4 AVC H.264视像_第4页
多媒体技术基础-MPEG-4 AVC H.264视像_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多媒体技术基础-MPEG-4AVC/H.264视像

2023年2月7日第13章MPEG-4AVC/H.264视像2/73第13章MPEG-4AVC/H.264视像目录

13.1MPEG-4AVC/H.264的由来13.2提高编码效率的主要技术13.3视像数据的编码结构13.3.1分层处理的结构13.2.2视像数据的组织13.3.3三种类型的视像13.4编译码器的结构13.5帧内预测13.5.14×4亮度预测方式13.5.216×16亮度预测方式13.5.38×8色度预测方式13.6帧间预测13.6.1移动补偿块的大小13.6.2子像素移动矢量13.6.3移动矢量的预测13.7变换和量化13.7.1变换类型13.7.2DCT和IDTC变换简化13.7.3正变换与量化13.7.4逆变换与逆量化13.7.54×4亮度DC残差系数的变换和量化13.7.62×2色度DC系数的变换和量化13.7.7变换与量化过程举例13.8熵编码13.8.1指数葛洛姆编码介绍13.8.2CAVLC编码13.8.3CABAC编码2023年2月7日第13章MPEG-4AVC/H.264视像3/73第13章MPEG-4AVC/H.264视像前言MPEG-4AVC/H.264[1][2][3][4]是ITU-T和ISO/IEC联合推荐的视像编码工业标准,在相同质量下,比先前的MPEG-Video的压缩效率提高2~3倍为降低H.264的计算复杂度和提高压缩效率,ITU的专家组正在酝酿开发H.2652023年2月7日第13章MPEG-4AVC/H.264视像4/7313.1MPEG-4AVC/H.264的由来MPEG-4视像标准从2003年开始,通常认为由两部分组成MPEG-4Visual—可视对象编码标准

ISO/IEC14496-2Part2。版本1(1999年),版本2(2001年)主要处理自然对象、合成对象和混合对象的编码MPEG-4AVC/H.264—高级视像编码

ISO/IEC14496-10Part10:AdvancedVideoCoding(AVC),2003年发布主要处理自然视像的编码2023年2月7日第13章MPEG-4AVC/H.264视像5/7313.1MPEG-4AVC/H.264的由来(续1)MPEG-4Visual的问题与传统视像编码的最大差别是引入了“对象编码”设计思想:将某一确定场景中的不同部分作为视像对象,采用不同的编码技术分别予以编码和传送,在接收端解码之后重新组合还原出原来的场景在理论上说,MPEG-4Visual的这种设计思想是先进的,功能是强大的,应用是广泛的。许多观察家也曾预言,MPEG-4Visual将成为因特网上视听对象的主要编码方法,并取代目前正在使用的、享有专利的各种编解码器,但时至今日这种情况还未出现主要问题:技术上的困难。目前人工智能技术还不能轻而易举地识别场景中的各种对象。尽管自1999年发布以来已经开发了多个版本,但技术上还没有取得较大的突破,使用的视像压缩技术主要还是20世纪90年代开发的技术2023年2月7日第13章MPEG-4AVC/H.264视像6/7313.1MPEG-4AVC/H.264的由来(续2)H.26L的出现VCEG专家组VideoCodingExpertsGroup的缩写,ITU专家组1995年完成H.263可视电话标准版本1的开发后开始两个新计划开发H.263版本2的短期(short-term)计划开发低位速率可视通信新标准的长期(long-term)计划H.26L的出现执行长期计划的结果是在1999年10月产生了H.26L标准草案,提供的视像压缩性能明显优于以往的ITU-T标准2023年2月7日第13章MPEG-4AVC/H.264视像7/7313.1MPEG-4AVC/H.264的由来(续3)H.264的出现JVT联合视像组MPEG专家组认识到H.26L的潜力,在2001年12月与VCEG成立了JVT(JointVideoTeam),其主要任务就是将H.26L发展为国际标准H.264的出现JVT专家们努力的结果是在2003年3月产生了两个名称不同而内容一致的标准ISOMPEG-4Part10ITU-TH.264常写成:MPEG-4AVC/H.264或H.264/MPEG-4AVC2023年2月7日第13章MPEG-4AVC/H.264视像8/7313.2提高编码效率的主要技术MPEG-4AVC/H.264是视像数据压缩技术取得重大进展的标志编码效率明显提高MPEG-4AVC/H.264继承了先前开发的视像标准的许多优点,在结构上没有明显改变,只在各个主要功能模块内部做了“小打小闹”和“精雕细刻”在视像质量相同的前提下,采用MPEG-4AVC/H.264标准获得的视像数据压缩比是采用MPEG-2视像标准的2~3倍应用范围得到扩大可有效降低在有线网络、卫星网络和电信网络上传送高质量影视节目的成本,使应用范围得到进一步扩大。例如,原先使用MPEG-2视像技术的DVD影视和数字电视已经开始转向采用MPEG-4AVC/H.264技术2023年2月7日第13章MPEG-4AVC/H.264视像9/7313.2提高编码效率的主要技术(续1)提高编码效率的主要改进技术[5][6]采用可变图块大小的帧间预测和移动补偿预测图块大小不再局限于16×16像素,可小到4×4像素,于是提高了预测精度,如将移动矢量精度提高到1/4个像素采用空间的帧内预测定义了多种预测方式,目的是找到相关性最大的预测采用“整数变换编码”从DCT演变来的变换编码,提高了编码的运算速度采用效率更高的熵编码前后文自适应可变长度编码(context-basedadaptivevariablelengthcoding,CAVLC)前后文自适应二元算术编码(Context-basedAdaptiveBinaryArithmeticCoding,CABAC)。采用多参考帧和消除“块状失真”的滤波等技术2023年2月7日第13章MPEG-4AVC/H.264视像10/7313.2提高编码效率的主要技术(续2)2023年2月7日第13章MPEG-4AVC/H.264视像11/7313.3视像数据的编码结构13.3.1分层处理结构AVC/H.264标准分成两层,见图13-1视像编码层(VideoCodingLayer,VCL),用于有效地表达视像内容网络抽象层(NetworkAbstractionLayer,NAL),用于组织VLC数据并提供标题(header)等信息,便于在各种不同的网络上传输2023年2月7日第13章MPEG-4AVC/H.264视像12/7313.3视像数据的编码结构(续1)图13-1MPEG-4AVC/H.264的分层结构2023年2月7日第13章MPEG-4AVC/H.264视像13/7313.3视像数据的编码结构(续2)13.2.2视像数据的组织1.画面划分一帧画面当作一片像片或分割成若干像片,见图13-2(a)一片像片包含若干宏块(MB),见图13-2(b)每个宏块包含1个16×16像素的亮度(luma)样本2个8×8像素的色度(chroma)样本一片或多片像片构成像片组(slicegroup),见图13-2(c)在隔行扫描视像中,每一场可单独编码,2场构成的帧也可单独编码,偶数场和奇数场相应的宏块构成宏块对,见图13-2(d)2023年2月7日第13章MPEG-4AVC/H.264视像14/7313.3视像数据的编码结构(续3)图13-2MPEG-4AVC_H.264的画面分割2023年2月7日第13章MPEG-4AVC/H.264视像15/7313.3视像数据的编码结构(续4)2.宏块与子宏块宏块可划分成宏块区(macroblockpartition)和子宏块(sub-macroblock),见图13-3(a)子宏块(也称子块)可划分成子宏块区(sub-macroblockpartition),见图13-3(b)图13-3宏块与子宏块的划分2023年2月7日第13章MPEG-4AVC/H.264视像16/7313.3视像数据的编码结构(续5)宏块的结构图13-4表示16×16宏块的树状结构分割法在编码时有可能使用8×8、4×8、8×4或4×4像素块的组合图13-4树状结构分割法2023年2月7日第13章MPEG-4AVC/H.264视像17/7313.3视像数据的编码结构(续6)3.像片的类型5种类型的像片。前3种与MPEG-1,-2的图像I、P和B类似I像片:由I宏块构成的像片。所有I宏块编码都是使用帧内方式(intramode)的预测编码P像片:由P宏块构成的像片。宏块编码包含使用帧内方式(intramode)的预测编码使用帧间方式(intermode)的预测编码B像片:由B宏块构成的像片。所有宏块的编码都是使用帧间方式的预测编码2023年2月7日第13章MPEG-4AVC/H.264视像18/7313.3视像数据的编码结构(续7)SP像片(switching-Pslice):由SP宏块构成的像片。SP宏块的编码是用帧间方式(intermode)的预测编码SI像片(switching-Islice):由SI宏块构成的像片。SI宏块的编码是用帧内方式的预测编码

SP和SI的作用用于在同一视像源而位速率不同的视像流之间进行切换、随机访问和快进或快退为简单起见,假设视像的一帧就是一片像片,使用SP和SI进行视像流切换的应用见图13-5图中的视像流A是高数据率的播放视像流,视像流B是低数据率的播放视像流,它们之间可通过“切换流切换图像SP”进行切换,或用SI图像进行切换

SP2023年2月7日第13章MPEG-4AVC/H.264视像19/7313.3视像数据的编码结构(续8)图13-5使用SP和SI切换视像流的概念2023年2月7日第13章MPEG-4AVC/H.264视像20/7313.3视像数据的编码结构(续9)13.3.3三种类型的视像基本型(BaselineProfile)支持使用I像片和P像片的帧内编码和帧间编码使用基于前后文自适应可变长度编码(CAVLC)具有基本的性能和抗错能力用于要求低延时的电视会议和可视电话等应用主流型(MainProfile)支持逐行扫描和隔行扫描视像支持帧内编码和帧间编码支持使用B像片的帧间编码和使用加权预测的帧间编码使用基于前后文自适应二元算术编码(CABAC)用于质量要求比较高的电视广播和DVD等2023年2月7日第13章MPEG-4AVC/H.264视像21/7313.3视像数据的编码结构(续10)(3)扩展型(ExtendedProfile)不支持隔行扫描视像和CABAC附加SP像片和SI像片的切换功能使用数据分割改进抗错能力用于各种网络上的流播(streaming)图13-6MPEG-4AVC/H.264的三种类型2023年2月7日第13章MPEG-4AVC/H.264视像22/7313.4编解码器的结构MPEG-4AVC/H.264编解码器概要与先前的视像压缩编码标准类似MPEG-4AVC/H.264标准没有明确定义编译码器的结构,只定义编码视像位流的语句、语义和解码的方法编码器和解码器包含的功能块见图13-7除了用于消除重构图像的块状失真的“消块滤波器(DeblockingFilter)”、减少帧内空间冗余的“帧内移动估算(Intra-frameEstimation)”与“帧内预测(Intra-framePrediction)”外,大多数功能块在以前的标准中都存在,只是其中的细节有较大变化2023年2月7日第13章MPEG-4AVC/H.264视像23/7313.4编解码器的结构(续1)编码器的结构见图13-7(a),编码器有两个通道从左到右的编码通道当前帧(Fn)以宏块为处理单元,可用帧内编码或帧间编码,预测值用P表示帧内预测,预测值是由当前帧(Fn)中的输入样本与过去帧的重构但未经滤波(uF'n—unfiltered)的样本生成的帧间预测,预测值是由当前帧(Fn)中的输入样本与过去重构并经滤波的参考图像(uF‘n-1)的样本通过移动补偿预测生成的2023年2月7日第13章MPEG-4AVC/H.264视像24/7313.4编解码器的结构(续2)编码过程当前帧的输入值和预测值相减后生成预测误差DnDn经过变换(T)和量化(Q)产生量化变换系数X通过重新排序和熵编码得到的系数连同解码时需要的边信息(sideinformation),包括预测方式、量化参数和移动矢量等一起形成压缩数据位流送到网络抽象层(NAL)用于传输或存储从右到左的图像重构通道量化变换系数X通过逆量化(Q-1)和逆变换(T-1)后产生预测误差D'n与预测值P相加后生成重构图像uF'n,通过消块滤波器(DeblockingFilter)后生成作为帧间预测时用的重构参考图像F'n2023年2月7日第13章MPEG-4AVC/H.264视像25/7313.4编解码器的结构(续3)图13-7MPEG-4AVC/H.264编解码器结构[7]2023年2月7日第13章MPEG-4AVC/H.264视像26/7313.4编解码器的结构(续4)解码器的结构见图13-7(b),与图13-7(a)中的图像重构过程类似

图13-7MPEG-4AVC/H.264编解码器结构[7]2023年2月7日第13章MPEG-4AVC/H.264视像27/7313.5帧内预测帧内预测在以前的视像标准中,I图像只利用宏块内部的空间相关性,而没有利用宏块之间的空间相关性。AVC/H.264引入了帧内预测(intraprediction)技术帧内预测:在同一像片中从过去编码后重构的相邻图块对当前图块进行预测编码时用实际的样本值与预测值相减得到预测误差对预测误差进行变换和编码。预测块大小:亮度(luma)样本可在4×4(用于带细节的图像区域)、8×8或16×16(用于过渡较平缓的图像区域)之间选择预测方式亮度块:8×8和4×4有9种,16×16有4种两个色度(chroma)块:8×8和4×4,有4种2023年2月7日第13章MPEG-4AVC/H.264视像28/7313.5帧内预测(续1)4×4亮度预测方式4×4亮度样本的标记见图13-8。位于a,b,…,p上面和左边的样本是已编码和重构的样本,标记为A~M(共13个)亮度块的预测块可根据A~M样本计算。注意在当前像片中不一定都有A~M样本可用,为保持像片解码的独立性,只使用当前像片中的样本进行预测如果E,F,G和H样本不存在,则可用D取代。使用帧内预测编码时有两个问题需要解决(1)如何计算预测块(2)如何选择预测块2023年2月7日第13章MPEG-4AVC/H.264视像29/7313.5帧内预测(续2)预测块的计算每个样本的预测值可按指定预测方式下的预测方法计算9种预测方式见图13-9,箭头表示预测方向MABCDEFGHIabcdJefghKijklLmnop图13-84×4亮度块预测样本的标记2023年2月7日第13章MPEG-4AVC/H.264视像30/7313.5帧内预测(续3)方式0~2:例如在预测方式0下,a,e,i和m的样本预测值用A样本值,…,d,h,l和p的样本预测值用D样本值在预测方式2下,a~p的样本预测值都用的平均值:

(A+B+C+D+I+J+K+L)/8方式3~8:预测值为A~M的加权平均。例如在预测方式4下,a的样本预测值可用round(I/4+M/2+A/4)计算,d的样本预测值可用round(B/4+C/2+D/4)计算在预测方式8下,a的样本预测值可用round(I/2+J/2)计算,d的样本预测值可用round(J/4+K/2+L/4)计算其中的round表示四舍五入2023年2月7日第13章MPEG-4AVC/H.264视像31/7313.5帧内预测(续4)图13-94×4亮度块帧内预测方式2023年2月7日第13章MPEG-4AVC/H.264视像32/7313.5帧内预测(续5)预测块的选择法全搜索法(fullsearching)是其中之一,过程如下步骤1:分别计算9种方式下的4×4样本预测块步骤2:分别计算9种方式下的4×4原始样本块与样本预测块之间的差值,然后计算绝对误差的和

通常用SAD(sumofabsolutedifference)或SAE(sumofabsoluteerrors)表示,或计算均方误差MSE(meansquareerror)步骤3:比较9种方式下的SAD或MSE。通常认为误差最小的就是预测精度最高的样本预测块选择最佳样本预测块需要大量的计算,许多学者在减少计算量方面做了许多卓有成效的研究

2023年2月7日第13章MPEG-4AVC/H.264视像33/7313.5帧内预测(续6)16×16亮度预测方式4种预测方式见图13-10Mode0:垂直外插预测,每列的所有样本预测值与顶部(H)的样本值相同Mode1:水平外插预测,每行的所有样本预测值与左边(V)的样本值相同Mode2:平均插值预测,每个样本预测值均为相应的顶部和左边样本值之和的平均值Mode3:“平面(plane)”预测,用顶部和左边的样本采用空间插值法得到样本预测值8×8色度预测方式8×8和4×4色度块都指定了相同的4种预测方式mode0(DC),mode1(水平),mode2(垂直)和mode3(平面)预测方式与16×16亮度的含义相同,只是编号不同2个8×8或2个4×4的色度块要使用相同的预测方式2023年2月7日第13章MPEG-4AVC/H.264视像34/7313.5帧内预测(续7)图13-1016×16亮度块帧内预测方式2023年2月7日第13章MPEG-4AVC/H.264视像35/7313.6帧间预测帧间预测(interprediction)帧间预测(interprediction)概念从过去编码后重构的相邻帧的样本预测当前待编码帧的样本的过程编码以块为基础编码时用实际的样本值与预测值相减得到预测误差对预测误差进行变换和编码,以消除时间方向上的冗余性。比较MPEG-1和-2H.264可支持大小可变的移动补偿块移动矢量可精确到1/4像素支持多参考帧的预测2023年2月7日第13章MPEG-4AVC/H.264视像36/7313.6帧间预测(续1)13.6.1移动补偿块的大小见如图13-316×16的帧间编码宏块可以分割成16×8,8×16或8×8个样本的宏块区8×8的子宏块可分分割成8×4,4×8或4×4个样本的子宏块区两个色度块(Cb和Cr)的大小都是亮度块的1/2,移动矢量也是亮度块的移动矢量的1/2编码宏块的分区移动补偿方法称为树型结构移动补偿(tree-structuredmotioncompensation)法2023年2月7日第13章MPEG-4AVC/H.264视像37/7313.6帧间预测(续2)13.6.2子像素移动矢量子像素的概念在计算移动矢量和移动补偿量时需参考帧的样本,因采样的样本数有限,在无样本的位置可用该位置附近的样本值通过插值得到插值样本,这个像素称为子像素(sub-pixel)图13-11(a)中的符号实际样本位置:用○表示半像素位置:两个样本中间的插值位置,用□表示1/4像素位置:两个样本之间1/4的插值位置,用△表示子像素移动补偿是什么通过搜索插值样本为当前图块寻找比较准确的移动矢量和移动补偿量的方法2023年2月7日第13章MPEG-4AVC/H.264视像38/7313.6帧间预测(续3)图13-11子像素移动估算概念2023年2月7日第13章MPEG-4AVC/H.264视像39/7313.6帧间预测(续4)子像素移动估算

在图13-11(b)中的符号实心圆(●)表示整像素搜索得到的最佳匹配实心方块(■)表示半像素搜索得到的最佳匹配实心三角形(▲)表示1/4搜索得到的最佳匹配像素移动估算举例开始用整像素搜索得到最佳匹配(●)然后用半像素搜索得到的最佳结果(■)与整像素搜索得到的最佳匹配相比,看看匹配是否有改善,如果需要还可用1/4像素搜索最后将当前图块的样本值减去最终匹配图块的样本值,就得到当前图块的移动补偿量,通常用绝对误差之和(SAE)表示。SAE值越低,表示移动补偿效果越好2023年2月7日第13章MPEG-4AVC/H.264视像40/7313.6帧间预测(续5)子像素移动矢量图13-12(a)表示在当前帧中要预测的4×4亮度块图13-12(b)表示整像素移动矢量,当前块在过去编码后重构的参考帧中找到的最佳匹配块图13-12(c)表示1/2像素移动矢量,当前块在过去编码后重构的参考帧中找到的最佳匹配块图13-12整像素和子像素移动矢量举例2023年2月7日第13章MPEG-4AVC/H.264视像41/7313.6帧间预测(续6)13.6.3移动矢量预测必要性每个分量的移动矢量都要编码和传送,这将降低视像数据的压缩比,选择小的移动补偿块时将更严重预测方法通过已编码的相邻分区的移动矢量进行预测,然后对实际的移动矢量和预测的移动矢量之差进行编码和传送预测方法见13-13,该方法与移动补偿块的大小和相邻块的移动矢量是否可用有关在图13-13(a)中,当前块E的预测矢量用块大小相同(如16×16)的相邻块A、B和C进行预测在图13-13(b)中,当前块E的预测矢量用块大小不同的A、B和C进行预测2023年2月7日第13章MPEG-4AVC/H.264视像42/7313.6帧间预测(续7)当前块E的预测矢量基本上取左(A)、上(B)和右上(C)宏块的移动矢量的中值(medianvalue),通常写成图13-13预测矢量的预测方法其中,是3个相邻的移动矢量2023年2月7日第13章MPEG-4AVC/H.264视像43/7313.7变换和量化13.7.1变换类型预测误差块也称为残差块(residualblock),每个残差块中的数据(称为残差数据)都要进行变换、量化和编码在MPEG-4AVC/H.264中,根据残差数据的类型采用不同的变换。在16×16预测方式下,使用3种类型的变换4×4亮度和色度阵列使用近似的DCT变换4×4亮度阵列的DC(直流分量)残差系数使用哈达玛变换(Hadamardtransform)2×2色度阵列的DC残差系数使用哈达玛变换数据的编号宏块中的数据按照图13-14所示的扫描顺序进行编号“-1”包含4×4亮度阵列的DC残差系数,0~15包含4×4亮度阵列的残差系数;16和17包含2×2色度阵列的DC残差系数,18~25包含4×4色度阵列的残差系数2023年2月7日第13章MPEG-4AVC/H.264视像44/7313.7变换和量化(续1)图13-14宏块中的残差块扫描顺序2023年2月7日第13章MPEG-4AVC/H.264视像45/7313.7变换和量化(续2)13.7.2DCT和IDTC变换简化1.DCT变换若输入的4×4阵列为X,经过DCT变换后的输出Y可按下式计算其中,A是正交变换矩阵,矩阵中的常数是2023年2月7日第13章MPEG-4AVC/H.264视像46/7313.7变换和量化(续3)矩阵A可用蝶形分解为两个矩阵相乘A=BC,因此DCT变换可写成Y=BCXCTB

经过推导,4×4阵列X经DCT变换后的输出Y可按下式计算

其中,CXCT是二维变换“核”,E是由缩放因子组成的矩阵,符号表示矩阵中的每个元素与矩阵中相同位置的元素相乘由于E矩阵中的元素是常数,因此可与编码器中的量化和解码器中的逆量化进行组合,这样可简化DCT变换的计算2023年2月7日第13章MPEG-4AVC/H.264视像47/7313.7变换和量化(续4)2.IDTC

变换DCT变换为Y=AXAT,IDTC变换为X=ATYA。由于矩阵A是正交变换矩阵,按照DCT变换的简化方法,可从DCT变换得到简化的IDCT变换2023年2月7日第13章MPEG-4AVC/H.264视像48/7313.7变换和量化(续5)13.7.3正变换与量化1.正变换使用d=1/2时,经推导,正变换具有如下形式2023年2月7日第13章MPEG-4AVC/H.264视像49/7313.7变换和量化(续6)缩放和量化数据输入块X经过变换后的每个系数Wij使用标量量化器进行量化。设计标量量化器和逆量化器的主要原则避免除法和浮点运算要与后缩放矩阵进行合并量化运算按下式进行其中,Zij是量化后的系数

Yij是使用DCT正变换后的系数

Qstep是量化阶2023年2月7日第13章MPEG-4AVC/H.264视像50/7313.7变换和量化(续7)变换说明这个正变换是近似的DCT变换,因为对d和b的取值做了改动,因此变换的输出与4×4的DCT变换不一致输入块X的变换转化为计算,然后对每个系数Wij进行缩放和量化,其中的(i,j)表示系数的位置缩放运算()可归并到量化计算过程中,因此Ef矩阵称为后缩放矩阵(post-scalingmatrice)计算不需要做实际的乘法,因为变换矩阵中的元素均为±1或±2,只要做加、减和左移运算即可图13-15正向DCT变换和量化框图2023年2月7日第13章MPEG-4AVC/H.264视像51/7313.7变换和量化(续8)13.7.4逆变换与逆量化逆变换使用d=1/2时,逆变换(inversetransform)按下式计算

中的因子是+1/2或-1/2,因此可用右移操作实现除2运算。由于Y可预先通过前缩放矩阵(pre-scalingmatrice)Ei和使用恰当的缩放因子进行缩放,因此除2运算引入的误差可得到补偿,运算结果无明显的精度丢失2023年2月7日第13章MPEG-4AVC/H.264视像52/7313.7变换和量化(续9)逆量化假设仍用Zij表示量化后的系数,Y'ij是经过逆量化后的系数,Qstep表示量化阶,逆量化可按下式计算

,在逆变换之前可用前缩放矩阵Ei(根据位置(i,j)选取a2,ab或b2)对Y'ij进行缩放为避免在计算过程中引入的舍入误差,在做逆变换之前的输入用一个常数因子64相乘(左移操作),在逆变换之后的输出通过右移操作去掉常数因子642023年2月7日第13章MPEG-4AVC/H.264视像53/7313.7变换和量化(续10)4×4块的逆量化和IDCT变换过程可用图13-16表示图13-16逆量化和逆变换框图

将逆量化、前缩放和乘常数因子的运算归并在一起进行计算时,用于逆变换的系数Wij就可按下式计算2023年2月7日第13章MPEG-4AVC/H.264视像54/7313.7变换和量化(续11)13.7.54×4亮度DC残差系数的变换和量化变换在16×16亮度块的帧内预测方式下,每个4×4阵列的残差数据使用变换,变换后的16个DC残差系数组成4×4阵列,然后用哈达玛变换,或称Walsh-Hadamardtransform,Walshtransform,Walsh-Fouriertransform,是傅立叶变换的一种类型4×4亮度DC残差系数块使用如下形式的哈达玛变换2023年2月7日第13章MPEG-4AVC/H.264视像55/7313.7变换和量化(续12)逆变换4×4亮度DC残差系数块的逆哈达玛变换使用如下算式量化和逆量化量化和逆量化也有一套具体的计算方法,相见教材2023年2月7日第13章MPEG-4AVC/H.264视像56/7313.7变换和量化(续13)13.7.62×2色度DC系数的变换和量化变换2×2色度DC残差系数块使用如下形式的哈达玛变换,逆变换2×2亮度DC系数块的逆哈达玛变换使用如下算式

量化和逆量化量化和逆量化也有一套具体的计算方法,相见教材2023年2月7日第13章MPEG-4AVC/H.264视像57/7313.8熵编码MPEG-4AVC/H.264的熵编码在以往的视像压缩标准中,熵编码(entropycoding)通常都采用霍夫曼编码。为充分利用视像数据的相关性,MPEG-4AVC/H.264采用了压缩效率更高的熵编码技术,推荐使用的3种熵编码技术是指数葛洛姆码(Exp-Golombcode)前后文自适应可变长度编码技术(CAVLC)前后文自适应二元算术编码技术(CABAC)CAVLC比CABACCAVLC比CABAC的计算复杂度较低,编码效率也较低CABAC比CAVLC的编码效率较高,计算复杂度也较高有些文献指出,在相同视像质量条件下,CABAC可比CAVLC减少9~14%的位速率,甚至更高CAVLC编码用于所有视像类型,而CABAC只用于主流型(mainprofile)视像2023年2月7日第13章MPEG-4AVC/H.264视像58/7313.8熵编码(续1)13.8.1指数葛洛姆编码介绍指数葛洛姆码Exp-Golombcode或Exponential-Golombcode的译名霍夫曼(Huffman)变长码的一种类型结构规则、码字只与指数的阶有关以及不需用专门码表指数葛洛姆码的前11个码字见表13-6,其中的码号实际上就是行程长度编码(RLC)中的行程长度指数葛洛姆码的构造方法见表13-7,可用下面的形式表示

[Mzeros][1][INFO]或[Prefix(前缀)][1][Suffix(后缀)]

其中,[Mzeros]或[Prefix]是其值为“0”的M位前导域

[INFO]或[Suffix]是M位信息域。例如,在表13-6

中,在k=0时,码号(code_num)0的码字没有前导

“0”,也没有后缀,码号(code_num)1和2的码字的

前缀和后缀都只有1位,码号(code_num)3~6的码字

的前缀和后缀各有2位,依此类推2023年2月7日第13章MPEG-4AVC/H.264视像59/7313.8熵编码(续2)2023年2月7日第13章MPEG-4AVC/H.264视像60/7313.8熵编码(续3)2023年2月7日第13章MPEG-4AVC/H.264视像61/7313.8熵编码(续4)MPEG-4AVC/H.264使用的编码0阶葛洛姆码,每个码字的长度为(2M+1)位,M的长度和INFO的值可用下式分别计算,M=floor(log2(code_num+1)),floor(x)表示向下取整到≤xINFO=code_num+1-2M解码可按下面的步骤进行步骤1:读前导域[Mzeros]步骤2:在信息域[INFO]中读M位步骤3:code_num=2M+INFO-1,(对码号0,INFO和M均为0)例如,0001001,code_num=+1-1=8编码参数的映射ue(v):无符号参数直接映射,code_num=v,用于宏块类型、参考帧索引等2023年2月7日第13章MPEG-4AVC/H.264视像62/7313.8熵编码(续5)me(V):映射指数(MappedExponential),按标准规定的映射表将参数v映射到code_num,用于码块模式(coded_block_pattern)参数。码块模式表示宏块中哪块包含非零系数表13-9列出了用于帧间预测的一小部分宏块模式se(v)

:带符号参数映射,用于移动矢量差(MVD),量化器参数△QP等。映射关系见表13-82023年2月7日第13章MPEG-4AVC/H.264视像63/7313.8熵编码(续6)2023年2月7日第13章MPEG-4AVC/H.264视像64/7313.8熵编码(续7)13.8.2CAVLC编码利用经量化和Z字形排列后的变换系数的如下特性数据中包含很多0,可用行程长度编码技术表达0字符串在非零系数中出现最多的是+/-1序列,可用+/-1的拖曳1(“TrailingOnes”或“T1s”)数目表示在相邻块中的非零系数的数目是相关的,可用查找表(look-uptable)对非零系数的数目进行编码在DC系数附近的非零系数值比较大,在高频端附近的非零系数值比较小,可用查找表对非零系数值进行编码CAVLC编码的核心技术是制定码表可变长度编码(VLC)码表是根据具体数据的特点制定的不仅码表的数目多而且编码也比较繁琐CAVLC的计算方法还在不断改进建议:对不需要具体设计编解码器的读者不一定要追究每个细节,只要求了解编解码的思想就可以,教材中的例子也可跳过

2023年2月7日第13章MPEG-4AVC/H.264视像65/7313.8熵编码(续8)13.8.3CABAC编码核心技术确定前后文模型在2005年发布的H.264标准中,为各种语句元素定义的前后文模型合计有459个之多CABAC的计算方法还在不断改进BAC编码binaryarithmeticcoding的缩写,二元算术编码只用“0”和“1”两个符号的算术编码技术

注意:算术编码(arithmeticcoding)是对概率已知的数值

进行编码的技术编码效率都可获得接近于熵的平均码长缺点是其他符号必须转换成用0和1构成的位串2023年2月7日第13章MPEG-4AVC/H.264视像66/7313.8熵编码(续9)举例:AABAA是由两个符号构成的消息霍夫曼编码技术:不管它们出现的概率是多少,每个符号都需要1位,因此表示这个消息总共需要5位理论值由于A的概率为0.8,编码A需要0.32位;B的概率为0.2,编码B需要2.32位表示这个消息的位数:4×0.32+1×2.32=3.6位二元算术编码技术:AABAA可用0.512和0.594之间的一个数表示。二进制数0.1001(0.5625)就落在这个数值范围里,而且只需4位对比较长而且两个符号的概率偏差比较大的消息,可以获得更高的压缩效率2023年2月7日第13章MPEG-4AVC/H.264视像67/7313.8熵编码(续10)CABAC编码获得较高编码效率的技术按照每个语句元素的内容选择概率根据局部的统计以适应概率估算使用二元算术编码编码器框图[13]见图13-19。CABAC经历的阶段阶段1:二元化(binarization)

对非二元值语句元素或符号(如变换系数,移动矢量),首先将其转换成称为“位串(binstring)”的二元序列,其中的bin是位(bit)的意思;对二元值语句元素,则直接将它送到二元算术编码器进行编码,如图13-19的下半部所示。二元化后的每一位都经历阶段2~

阶段4的编码阶段2023年2月7日第13章MPEG-4AVC/H.264视像68/7313.8熵编码(续11)阶段2:前后文模型选择(contextmodelselection)

二元化元素的一位或多位的概率模型,是根据最近编码的元素进行统计得到的模型,模型存储的是每位的位值(binvalue)为“1”或“0”的概率。图中的“前后文模型器”根据输入的位来选择前后文模型,然后将位值和前后文模型送到二元算术编码器。阶段3:二元算术编码(binaryarithmeticcoding)

在二元算术编码器中,根据“前后文模型器”选择的概率模型和位值,称为“常规编码引擎”的编码器对每位(“1”或“0”)进行二元算术编码。阶段4:修改前后文模型(contextmodelupdating)

根据实际的编码值来修改所选择的前后文模型,也就是修改概率。例如,如果位值为“1”,“1”的频率计数就加1。2023年2月7日第13章MPEG-4AVC/H.264视像69/7313.8熵编码(续12)图13-19CABAC编码器方框图2023年2月7日第13章MPEG-4AVC/H.264视像70/73第13章MPEG-4AVC/H.264视像(参考文献)参考文献TheMPEGHomePage,/mpeg/MPEGIndustryForum,/tutorials.phpISO/IEC14496-10,Informationtechnology—Codingofaudio-visualobjects—Part10:AdvancedVideoCoding,Secondedition,2005-12-15ITU-TRecommendationH.264,AdvancedVideoCodingforGenericAudiovisualServices,03/2005T.Wiegand,G.J.Sullivan,G.Bjntegaard,andA.Luthra,OverviewoftheH.264/AVCvideo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论