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

下载本文档

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

文档简介

1、多媒体技术基础多媒体技术基础- MPEG-4 AVC/H.264视像视像 2022年5月9日第13章 MPEG-4 AVC/H.264视像2/73第13章 MPEG-4 AVC/H.264视像目录 13.1 MPEG-4 AVC/H.264的由来的由来13.2 提高编码效率的主要技术提高编码效率的主要技术13.3 视像数据的编码结构视像数据的编码结构13.3.1 分层处理的结构13.2.2 视像数据的组织13.3.3 三种类型的视像13.4 编译码器的结构编译码器的结构13.5 帧内预测帧内预测13.5.1 44亮度预测方式13.5.2 1616亮度预测方式13.5.3 88色度预测方式13.

2、6 帧间预测帧间预测13.6.1 移动补偿块的大小13.6.2 子像素移动矢量13.6.3 移动矢量的预测13.7 变换和量化变换和量化13.7.1 变换类型13.7.2 DCT和IDTC变换简化13.7.3 正变换与量化13.7.4 逆变换与逆量化13.7.5 44亮度DC残差系数的变换和量化13.7.6 22色度DC系数的变换和量化13.7.7 变换与量化过程举例13.8 熵编码熵编码13.8.1 指数葛洛姆编码介绍13.8.2 CAVLC编码13.8.3 CABAC编码2022年5月9日第13章 MPEG-4 AVC/H.264视像3/73第第13章章 MPEG-4 AVC/H.264视

3、像视像 n前言前言MPEG-4 AVC / H.26412 34是ITU-T和ISO/IEC联合推荐的视像编码工业标准,在相同质量下,比先前的MPEG-Video的压缩效率提高23倍为降低H.264的计算复杂度和提高压缩效率,ITU的专家组正在酝酿开发H.2652022年5月9日第13章 MPEG-4 AVC/H.264视像4/7313.1 MPEG-4 AVC/H.264的由来的由来nMPEG-4视像标准视像标准从2003年开始,通常认为由两部分组成nMPEG-4 Visual可视对象编码标准ISO/IEC 14496-2 Part 2。版本1(1999年),版本2 (2001年)u主要处理

4、自然对象、合成对象和混合对象的编码nMPEG-4 AVC/ H.264高级视像编码ISO/IEC 14496-10 Part 10:Advanced Video Coding (AVC), 2003年发布u主要处理自然视像的编码2022年5月9日第13章 MPEG-4 AVC/H.264视像5/7313.1 MPEG-4 AVC/H.264的由来的由来(续续1)nMPEG-4 Visual的问题的问题与传统视像编码的最大差别是引入了“对象编码”n设计思想设计思想:将某一确定场景中的不同部分作为视像对象,采用不同的编码技术分别予以编码和传送,在接收端解码之后重新组合还原出原来的场景n在理论上说在

5、理论上说,MPEG-4 Visual的这种设计思想是先进的,功能是强大的,应用是广泛的。许多观察家也曾预言,MPEG-4 Visual将成为因特网上视听对象的主要编码方法,并取代目前正在使用的、享有专利的各种编解码器,但时至今日这种情况还未出现n主要问题主要问题:技术上的困难。目前人工智能技术还不能轻而易举地识别场景中的各种对象。尽管自1999年发布以来已经开发了多个版本,但技术上还没有取得较大的突破,使用的视像压缩技术主要还是20世纪90年代开发的技术2022年5月9日第13章 MPEG-4 AVC/H.264视像6/7313.1 MPEG-4 AVC/H.264的由来的由来(续续2)nH.

6、26L的出现的出现VCEG专家组nVideo Coding Experts Group的缩写, ITU专家组n1995年完成H.263可视电话标准版本1的开发后开始两个新计划u开发H.263版本2的短期(short-term)计划u开发低位速率可视通信新标准的长期(long-term)计划H.26L的出现n执行长期计划的结果是在1999年10月产生了H.26L标准草案,n提供的视像压缩性能明显优于以往的ITU-T标准2022年5月9日第13章 MPEG-4 AVC/H.264视像7/7313.1 MPEG-4 AVC/H.264的由来的由来(续续3)nH.264的出现的出现JVT联合视像组nM

7、PEG专家组认识到H.26L的潜力,在2001年12月与VCEG成立了JVT(Joint Video Team) ,其主要任务就是将H.26L发展为国际标准H.264的出现nJVT专家们努力的结果是在2003年3月产生了两个名称不同而内容一致的标准uISO MPEG-4 Part 10uITU-T H.264常写成:常写成:MPEG-4 AVC/H.264 或或 H.264/ MPEG-4 AVC2022年5月9日第13章 MPEG-4 AVC/H.264视像8/7313.2 提高编码效率的主要技术提高编码效率的主要技术 nMPEG-4 AVC/H.264是视像数据压缩技术取得是视像数据压缩技

8、术取得重大进展的标志重大进展的标志编码效率明显提高nMPEG-4 AVC/H.264继承了先前开发的视像标准的许多优点,在结构上没有明显改变,只在各个主要功能模块内部做了“小打小闹”和“精雕细刻”n在视像质量相同的前提下,采用MPEG-4 AVC/H.264标准获得的视像数据压缩比是采用MPEG-2视像标准的23倍应用范围得到扩大n可有效降低在有线网络、卫星网络和电信网络上传送高质量影视节目的成本,使应用范围得到进一步扩大。例如,原先使用MPEG-2视像技术的DVD影视和数字电视已经开始转向采用MPEG-4 AVC / H.264技术2022年5月9日第13章 MPEG-4 AVC/H.264

9、视像9/7313.2 提高编码效率的主要技术提高编码效率的主要技术(续续1)n提高编码效率的主要改进技术提高编码效率的主要改进技术56 采用可变图块大小的帧间预测和移动补偿n预测图块大小不再局限于1616像素,可小到44像素,于是提高了预测精度,如将移动矢量精度提高到1/4个像素采用空间的帧内预测n定义了多种预测方式,目的是找到相关性最大的预测采用 “整数变换编码”n从DCT演变来的变换编码,提高了编码的运算速度采用效率更高的熵编码n前后文自适应可变长度编码(context-based adaptive variable length coding, CAVLC)n前后文自适应二元算术编码(C

10、ontext-based Adaptive Binary Arithmetic Coding,CABAC)。采用多参考帧和消除“块状失真”的滤波等技术2022年5月9日第13章 MPEG-4 AVC/H.264视像10/7313.2 提高编码效率的主要技术提高编码效率的主要技术(续续2)2022年5月9日第13章 MPEG-4 AVC/H.264视像11/7313.3 视像数据的编码结构视像数据的编码结构 n13.3.1 分层处理结构分层处理结构AVC/ H.264标准分成两层,见图13-1n视像编码层(Video Coding Layer, VCL),用于有效地表达视像内容n网络抽象层(Ne

11、twork Abstraction Layer,NAL),用于组织VLC数据并提供标题(header)等信息,便于在各种不同的网络上传输 2022年5月9日第13章 MPEG-4 AVC/H.264视像12/7313.3 视像数据的编码结构视像数据的编码结构(续续1)视像编码层(VLC)数据分割网络抽象层(NAL)H.320MP4FF*H.323/IPMPEG-2其他控制数据编码宏块编码像片/数据段*MP4FF:MPEG-4 File FormatIP: Internet Protocol图13-1 MPEG-4 AVC/ H.264的分层结构2022年5月9日第13章 MPEG-4 AVC/

12、H.264视像13/7313.3 视像数据的编码结构视像数据的编码结构(续续2)n13.2.2 视像数据的组织视像数据的组织 1. 画面划分画面划分n一帧画面当作一片像片或分割成若干像片,见图13-2(a)n一片像片包含若干宏块(MB),见图13-2(b)n每个宏块包含u1个1616像素的亮度(luma)样本u2个88像素的色度(chroma)样本n一片或多片像片构成像片组(slice group),见图13-2(c)n在隔行扫描视像中,每一场可单独编码,2场构成的帧也可单独编码,偶数场和奇数场相应的宏块构成宏块对,见图13-2(d)2022年5月9日第13章 MPEG-4 AVC/H.264

13、视像14/7313.3 视像数据的编码结构视像数据的编码结构(续续3)40012宏块 #40(a) 像片像片 #1像片 #2像片 #0(d) 隔行扫描的宏块对像片组 #0像片组 #1像片组 #23637024135宏块对(b) 宏块(c) 像片组图13-2 MPEG-4 AVC_H.264的画面分割2022年5月9日第13章 MPEG-4 AVC/H.264视像15/7313.3 视像数据的编码结构视像数据的编码结构(续续4)2. 宏块与子宏块宏块与子宏块n宏块可划分成宏块区(macroblock partition)和子宏块(sub-macroblock),见图13-3(a)n子宏块(也称子

14、块)可划分成子宏块区(sub-macroblock partition),见图13-3(b)000011123由1616亮度样本和相关色度样本组成1个宏块1个宏块分成2个168亮度样本和相关色度样本的宏块区1个宏块分成4个88亮度样本和相关色度样本的子宏块宏块分割000011123由88亮度样本和相关色度样本组成1个子宏块1个子宏块分成2个84亮度样本和相关色度样本的子宏块区1个子宏块分成44亮度样本块和相关色度样本块的子宏块区子宏块分割1个宏块分成2个816亮度样本和相关色度样本的宏块区1个子宏块分成2个48亮度样本和相关色度样本的子宏块区(a) 宏块分割(b) 子宏块分割图13-3 宏块与

15、子宏块的划分2022年5月9日第13章 MPEG-4 AVC/H.264视像16/7313.3 视像数据的编码结构视像数据的编码结构(续续5)n宏块的结构u图13-4表示1616宏块的树状结构分割法u在编码时有可能使用88、48、84或44像素块的组合 484884844444444488图13-4 树状结构分割法2022年5月9日第13章 MPEG-4 AVC/H.264视像17/7313.3 视像数据的编码结构视像数据的编码结构(续续6)3. 像片的类型像片的类型n5种类型的像片。前3种与MPEG-1,-2的图像I、P和B类似uI像片:由I宏块构成的像片。所有I宏块编码都是使用帧内方式(i

16、ntra mode)的预测编码uP像片:由P宏块构成的像片。 宏块编码包含n使用帧内方式(intra mode)的预测编码n使用帧间方式(inter mode)的预测编码uB像片:由B宏块构成的像片。所有宏块的编码都是使用帧间方式的预测编码2022年5月9日第13章 MPEG-4 AVC/H.264视像18/7313.3 视像数据的编码结构视像数据的编码结构(续续7)uSP像片(switching-P slice):由SP宏块构成的像片。SP宏块的编码是用帧间方式(inter mode)的预测编码uSI像片(switching-I slice):由SI宏块构成的像片。SI宏块的编码是用帧内方式

17、的预测编码 nSP和SI的作用u用于在同一视像源而位速率不同的视像流之间进行切换、随机访问和快进或快退u为简单起见,假设视像的一帧就是一片像片,使用SP和SI进行视像流切换的应用见图13-5n图中的视像流A是高数据率的播放视像流,视像流B是低数据率的播放视像流,它们之间可通过 “切换流切换图像SP ”进行切换,或用SI图像进行切换 SP2022年5月9日第13章 MPEG-4 AVC/H.264视像19/7313.3 视像数据的编码结构视像数据的编码结构(续续8)BSPBPBBSPSPSPSPSPBSPBPBBSPSISI P: 预测图像 B: 双向预测图像 SP:播放流切换图像 SP : 切

18、换流切换图像 SI: 切换帧内图像视像流A视像流B高数据率播放视像流低数据率播放视像流切换到低数据率播放视像流切换到高数据率播放视像流图13-5 使用SP和SI切换视像流的概念2022年5月9日第13章 MPEG-4 AVC/H.264视像20/7313.3 视像数据的编码结构视像数据的编码结构(续续9)n13.3.3 三种类型的视像三种类型的视像基本型(Baseline Profile)n支持使用I像片和P像片的帧内编码和帧间编码n使用基于前后文自适应可变长度编码(CAVLC)n具有基本的性能和抗错能力n用于要求低延时的电视会议和可视电话等应用主流型(Main Profile)n支持逐行扫描

19、和隔行扫描视像n支持帧内编码和帧间编码n支持使用B像片的帧间编码和使用加权预测的帧间编码n使用基于前后文自适应二元算术编码(CABAC)n用于质量要求比较高的电视广播和DVD等2022年5月9日第13章 MPEG-4 AVC/H.264视像21/7313.3 视像数据的编码结构视像数据的编码结构(续续10)(3) 扩展型(Extended Profile)n不支持隔行扫描视像和CABACn附加SP像片和SI像片的切换功能n使用数据分割改进抗错能力n用于各种网络上的流播(streaming)SP和SI像片数据分割B像片I像片P像片隔行扫描CAVLCCABAC像片组(FMO, ASO)冗余像片加权

20、预测基本类型主流型扩展类型图13-6 MPEG-4 AVC/H.264的三种类型2022年5月9日第13章 MPEG-4 AVC/H.264视像22/7313.4 编解码器的结构编解码器的结构nMPEG-4 AVC/H.264编解码器概要编解码器概要与先前的视像压缩编码标准类似nMPEG-4 AVC/H.264标准没有明确定义编译码器的结构,只定义编码视像位流的语句、语义和解码的方法编码器和解码器包含的功能块见图13-7n除了用于消除重构图像的块状失真的“消块滤波器(Deblocking Filter)”、减少帧内空间冗余的“帧内移动估算(Intra-frame Estimation)”与“帧

21、内预测(Intra-frame Prediction)”外,大多数功能块在以前的标准中都存在,只是其中的细节有较大变化 2022年5月9日第13章 MPEG-4 AVC/H.264视像23/7313.4 编解码器的结构编解码器的结构(续续1)n编码器的结构编码器的结构见图13-7(a),编码器有两个通道n从左到右的编码通道u当前帧(Fn)以宏块为处理单元,可用帧内编码或帧间编码,预测值用P表示u帧内预测,预测值是由当前帧(Fn)中的输入样本与过去帧的重构但未经滤波(uFnunfiltered)的样本生成的u帧间预测,预测值是由当前帧(Fn)中的输入样本与过去重构并经滤波的参考图像(uFn-1)

22、 的样本通过移动补偿预测生成的2022年5月9日第13章 MPEG-4 AVC/H.264视像24/7313.4 编解码器的结构编解码器的结构(续续2)编码过程编码过程u当前帧的输入值和预测值相减后生成预测误差DnuDn经过变换(T)和量化(Q)产生量化变换系数Xu通过重新排序和熵编码得到的系数连同解码时需要的边信息(side information),包括预测方式、量化参数和移动矢量等一起形成压缩数据位流u送到网络抽象层(NAL)用于传输或存储n从右到左的图像重构通道u量化变换系数X通过逆量化(Q-1)和逆变换(T-1)后产生预测误差Dnu与预测值P相加后生成重构图像uFn,u通过消块滤波器

23、(Deblocking Filter)后生成作为帧间预测时用的重构参考图像Fn2022年5月9日第13章 MPEG-4 AVC/H.264视像25/7313.4 编解码器的结构编解码器的结构(续续3)图13-7 MPEG-4 AVC/H.264编解码器结构72022年5月9日第13章 MPEG-4 AVC/H.264视像26/7313.4 编解码器的结构编解码器的结构(续续4)n解码器的结构解码器的结构见图13-7(b),与图13-7(a)中的图像重构过程类似 图13-7 MPEG-4 AVC/H.264编解码器结构72022年5月9日第13章 MPEG-4 AVC/H.264视像27/731

24、3.5 帧内预测帧内预测n帧内预测帧内预测在以前的视像标准中,I图像只利用宏块内部的空间相关性,而没有利用宏块之间的空间相关性。AVC/ H.264引入了帧内预测(intra prediction)技术帧内预测:在同一像片中从过去编码后重构的相邻图块对当前图块进行预测n编码时用实际的样本值与预测值相减得到预测误差n对预测误差进行变换和编码。预测块大小:亮度(luma)样本可在44(用于带细节的图像区域)、88或1616 (用于过渡较平缓的图像区域)之间选择预测方式n亮度块:88和44有9种,1616有4种n两个色度(chroma)块:88和44,有4种 2022年5月9日第13章 MPEG-4

25、 AVC/H.264视像28/7313.5 帧内预测帧内预测(续续1)n 44亮度预测方式亮度预测方式44亮度样本的标记亮度样本的标记n见图13-8。位于a,b,p上面和左边的样本是已编码和重构的样本,标记为AM(共13个)n亮度块的预测块可根据AM样本计算。注意u在当前像片中不一定都有AM样本可用,为保持像片解码的独立性,只使用当前像片中的样本进行预测u如果E,F,G和H样本不存在,则可用D取代。使用帧内预测编码时有两个问题需要解决(1) 如何计算预测块(2) 如何选择预测块 2022年5月9日第13章 MPEG-4 AVC/H.264视像29/7313.5 帧内预测帧内预测(续续2)预测块

26、的计算预测块的计算n每个样本的预测值可按指定预测方式下的预测方法计算n9种预测方式见图13-9,箭头表示预测方向M A B C D E F G HIabcdJefghKijklL m nop图13-8 44亮度块预测样本的标记2022年5月9日第13章 MPEG-4 AVC/H.264视像30/7313.5 帧内预测帧内预测(续续3)n方式02:例如u在预测方式0下,a,e,i和m的样本预测值用A样本值,d,h,l和p的样本预测值用D样本值u在预测方式2下,ap的样本预测值都用的平均值:(A+B+C+D+I+J+K+L)/8 n方式38:预测值为AM的加权平均。例如u在预测方式4下,a的样本预

27、测值可用round(I/4 + M/2 + A/4)计算,d的样本预测值可用round (B/4 + C/2 + D/4)计算u在预测方式8下,a的样本预测值可用round(I/2 + J/2)计算,d的样本预测值可用round(J/4 + K/2 + L/4)计算其中的round表示四舍五入2022年5月9日第13章 MPEG-4 AVC/H.264视像31/7313.5 帧内预测帧内预测(续续4)图13-9 44亮度块帧内预测方式2022年5月9日第13章 MPEG-4 AVC/H.264视像32/7313.5 帧内预测帧内预测(续续5)预测块的选择法预测块的选择法n全搜索法(full s

28、earching)是其中之一,过程如下u步骤步骤1:分别计算9种方式下的44样本预测块u步骤步骤2:分别计算9种方式下的44原始样本块与样本预测块之间的差值,然后计算绝对误差的和 通常用SAD (sum of absolute difference)或SAE (sum of absolute errors)表示,或计算均方误差MSE (mean square error)u步骤步骤3:比较9种方式下的SAD或MSE。通常认为误差最小的就是预测精度最高的样本预测块n选择最佳样本预测块需要大量的计算,许多学者在减少计算量方面做了许多卓有成效的研究 2022年5月9日第13章 MPEG-4 AVC/

29、H.264视像33/7313.5 帧内预测帧内预测(续续6)n1616亮度预测方式亮度预测方式 4种预测方式见图13-10nMode 0: 垂直外插预测,每列的所有样本预测值与顶部(H)的样本值相同nMode 1: 水平外插预测,每行的所有样本预测值与左边(V)的样本值相同nMode 2: 平均插值预测,每个样本预测值均为相应的顶部和左边样本值之和的平均值nMode 3: “平面(plane)”预测,用顶部和左边的样本采用空间插值法得到样本预测值n88色度预测方式色度预测方式88和44色度块都指定了相同的4种预测方式nmode 0 (DC), mode 1 (水平), mode 2 (垂直)和

30、mode 3 (平面)n预测方式与1616亮度的含义相同,只是编号不同n2个88或2个44的色度块要使用相同的预测方式 2022年5月9日第13章 MPEG-4 AVC/H.264视像34/7313.5 帧内预测帧内预测(续续7)图13-10 1616亮度块帧内预测方式2022年5月9日第13章 MPEG-4 AVC/H.264视像35/7313.6 帧间预测帧间预测n帧间预测帧间预测(inter prediction)帧间预测(inter prediction)概念n从过去编码后重构的相邻帧的样本预测当前待编码帧的样本的过程编码以块为基础n编码时用实际的样本值与预测值相减得到预测误差n对预测

31、误差进行变换和编码,以消除时间方向上的冗余性。比较MPEG-1和-2nH.264可支持大小可变的移动补偿块n移动矢量可精确到1/4像素n支持多参考帧的预测 2022年5月9日第13章 MPEG-4 AVC/H.264视像36/7313.6 帧间预测帧间预测(续续1)n13.6.1移动补偿块的大小移动补偿块的大小见如图13-3n1616的帧间编码宏块可以分割成168,816 或88个样本的宏块区n88的子宏块可分分割成84,48或44个样本的子宏块区n两个色度块(Cb和Cr)的大小都是亮度块的1/2,移动矢量也是亮度块的移动矢量的1/2 n编码宏块的分区移动补偿方法称为树型结构移动补偿(tree

32、-structured motion compensation)法2022年5月9日第13章 MPEG-4 AVC/H.264视像37/7313.6 帧间预测帧间预测(续续2)n13.6.2子像素移动矢量子像素移动矢量 子像素的概念n在计算移动矢量和移动补偿量时需参考帧的样本,因采样的样本数有限,在无样本的位置可用该位置附近的样本值通过插值得到插值样本,这个像素称为子像素(sub-pixel)n图13-11(a)中的符号u实际样本位置:用表示u半像素位置:两个样本中间的插值位置,用表示u1/4像素位置:两个样本之间1/4的插值位置,用表示子像素移动补偿是什么n通过搜索插值样本为当前图块寻找比较

33、准确的移动矢量和移动补偿量的方法 2022年5月9日第13章 MPEG-4 AVC/H.264视像38/7313.6 帧间预测帧间预测(续续3)整像素搜索位置最佳整像素匹配半像素搜索位置最佳半像素匹配1/4像素搜索位置最佳1/4像素匹配(a) 像素位置(b) 移动估算示意图图13-11 子像素移动估算概念2022年5月9日第13章 MPEG-4 AVC/H.264视像39/7313.6 帧间预测帧间预测(续续4)子像素移动估算子像素移动估算 n在图13-11(b)中的符号u实心圆()表示整像素搜索得到的最佳匹配u实心方块()表示半像素搜索得到的最佳匹配u实心三角形()表示1/4搜索得到的最佳匹

34、配像素n移动估算举例u开始用整像素搜索得到最佳匹配()u然后用半像素搜索得到的最佳结果()与整像素搜索得到的最佳匹配相比,看看匹配是否有改善,如果需要还可用1/4像素搜索u最后将当前图块的样本值减去最终匹配图块的样本值,就得到当前图块的移动补偿量,通常用绝对误差之和(SAE)表示。SAE值越低,表示移动补偿效果越好2022年5月9日第13章 MPEG-4 AVC/H.264视像40/7313.6 帧间预测帧间预测(续续5)子像素移动矢量子像素移动矢量n图13-12(a)表示在当前帧中要预测的44亮度块n图13-12(b)表示整像素移动矢量,当前块在过去编码后重构的参考帧中找到的最佳匹配块n图1

35、3-12(c)表示1/2像素移动矢量,当前块在过去编码后重构的参考帧中找到的最佳匹配块(c) 参考块:1/2像素移动矢量(b) 参考块:整像素移动矢量(a) 当前帧的44块图13-12 整像素和子像素移动矢量举例2022年5月9日第13章 MPEG-4 AVC/H.264视像41/7313.6 帧间预测帧间预测(续续6)n13.6.3移动矢量预测移动矢量预测必要性n每个分量的移动矢量都要编码和传送,这将降低视像数据的压缩比,选择小的移动补偿块时将更严重预测方法n通过已编码的相邻分区的移动矢量进行预测,然后对实际的移动矢量和预测的移动矢量之差进行编码和传送预测方法n见13-13,该方法与移动补偿

36、块的大小和相邻块的移动矢量是否可用有关n在图13-13(a)中,当前块E的预测矢量用块大小相同(如1616)的相邻块A、B和C进行预测n在图13-13(b)中,当前块E的预测矢量用块大小不同的A、B和C进行预测2022年5月9日第13章 MPEG-4 AVC/H.264视像42/7313.6 帧间预测帧间预测(续续7)n当前块E的预测矢量基本上取左(A)、上(B)和右上(C)宏块的移动矢量的中值(median value),通常写成A(84)E(1616)B(48)C(168)(a) 块大小相同的当前块和相邻块(b) 块大小不同的当前块和相邻块ABCE图13-13 预测矢量的预测方法,pABC

37、MVMedian MVMVMV AMV BMV CMV 其中,是3个相邻的移动矢量 2022年5月9日第13章 MPEG-4 AVC/H.264视像43/7313.7 变换和量化变换和量化n13.7.1 变换类型变换类型预测误差块也称为残差块(residual block),每个残差块中的数据(称为残差数据)都要进行变换、量化和编码在MPEG-4 AVC/H.264中,根据残差数据的类型采用不同的变换。在1616预测方式下,使用3种类型的变换n44亮度和色度阵列使用近似的DCT变换n44亮度阵列的DC(直流分量)残差系数使用哈达玛变换(Hadamard transform)n22色度阵列的DC

38、残差系数使用哈达玛变换数据的编号n宏块中的数据按照图13-14所示的扫描顺序进行编号n“-1”包含44亮度阵列的DC残差系数,015包含44亮度阵列的残差系数;16和17包含22色度阵列的DC残差系数,1825包含44色度阵列的残差系数 2022年5月9日第13章 MPEG-4 AVC/H.264视像44/7313.7 变换和量化变换和量化(续续1)012345678910111213141516171819202122232425-1(用于1616帧内方式)亮度(Luma)色度(Cb)色度(Cr)图13-14 宏块中的残差块扫描顺序2022年5月9日第13章 MPEG-4 AVC/H.264

39、视像45/7313.7 变换和量化变换和量化(续续2)n13.7.2 DCT和和IDTC变换简化变换简化1. DCT变换变换n若输入的44阵列为X,经过DCT变换后的输出Y可按下式计算其中,A是正交变换矩阵,矩阵中的常数是11121314212223243132333441424344-TxxxxaaaaabacxxxxbccbacabYAXAxxxxaaaaacabxxxxcbbcabac()()1 2, 1 2 cos8 , 1 2 cos 38abcpp=2022年5月9日第13章 MPEG-4 AVC/H.264视像46/7313.7 变换和量化变换和量化(续续3)n矩阵A可用蝶形分解

40、为两个矩阵相乘A=BC,因此DCT变换可写成Y=BCXCTB n经过推导,44阵列X经DCT变换后的输出Y可按下式计算2200010203221011121322202122232230313233111111111111111111111111TYCXCEaabaabxxxxdxxxxdddabbabbxxxxdaabaabxxxxdddabbabb 其中,CXCT是二维变换“核”,E是由缩放因子组成的矩阵,符号 表示矩阵中的每个元素与矩阵中相同位置的元素相乘n由于E矩阵中的元素是常数,因此可与编码器中的量化和解码器中的逆量化进行组合,这样可简化DCT变换的计算 1/101/2 2/5 1/

41、2 abdc,而2022年5月9日第13章 MPEG-4 AVC/H.264视像47/7313.7 变换和量化变换和量化(续续4)2. IDTC 变换变换nDCT变换为Y=AXAT, IDTC变换为X=ATYA。由于矩阵A是正交变换矩阵,按照DCT变换的简化方法,可从DCT变换得到简化的IDCT变换 2200010203221011121322202122232230313233()111111111111111111111111TXCYE Caabaabyyyydyyyydabbabbddyyyydaabaabyyyydddabbabb 1/101/2 2/5 1/2 abdc,而2022年

42、5月9日第13章 MPEG-4 AVC/H.264视像48/7313.7 变换和量化变换和量化(续续5)n13.7.3 正变换与量化正变换与量化 1. 正变换正变换n使用d=1/2时,经推导,正变换具有如下形式 222222000102031011121324242220212223223031323311111211211211121111111212211211TffffabababbabbabababYC XCEWEaaxxxxxxxxxxxxaaxxxx222424babb1/2 2/5 ab其中,2022年5月9日第13章 MPEG-4 AVC/H.264视像49/7313.7 变换

43、和量化变换和量化(续续6)n缩放和量化缩放和量化数据输入块X经过 变换后的每个系数Wij使用标量量化器进行量化。n设计标量量化器和逆量化器的主要原则u避免除法和浮点运算u要与后缩放矩阵进行合并量化运算按下式进行 TffWC XC其中,Zij是量化后的系数 Yij是使用DCT正变换后的系数 Qstep是量化阶 (/)ijijZround YQstep2022年5月9日第13章 MPEG-4 AVC/H.264视像50/7313.7 变换和量化变换和量化(续续7)变换说明n这个正变换是近似的DCT变换,因为对d和b的取值做了改动,因此变换的输出与44的DCT变换不一致n输入块X的变换转化为计算 ,

44、 然后对每个系数Wij进行缩放和量化,其中的(i, j)表示系数的位置n缩放运算( )可归并到量化计算过程中,因此Ef矩阵称为后缩放矩阵(post-scaling matrice)n计算 不需要做实际的乘法,因为变换矩阵中的元素均为1或2 ,只要做加、减和左移运算即可TffWC XCfETffWC XCQTZXTffWC XCW()ijijPFZround WQstep图13-15 正向DCT变换和量化框图2022年5月9日第13章 MPEG-4 AVC/H.264视像51/7313.7 变换和量化变换和量化(续续8)n13.7.4 逆变换与逆量化逆变换与逆量化逆变换逆变换n使用d=1/2时,

45、逆变换(inverse transform)按下式计算 22100010203222111101112132221222021222321122303132332211111111111111111111111TiiiXCYE Caabaabyyyyyyyyabbabbyyyyaabaabyyyyabbabb 121TiiCC和 中的因子是+1/2或-1/2,因此可用右移操作实现除2运算。由于Y可预先通过前缩放矩阵(pre-scaling matrice)Ei和使用恰当的缩放因子进行缩放,因此除2运算引入的误差可得到补偿,运算结果无明显的精度丢失 2022年5月9日第13章 MPEG-4 AV

46、C/H.264视像52/7313.7 变换和量化变换和量化(续续9)逆量化逆量化n假设仍用Zij表示量化后的系数,Yij是经过逆量化后的系数,Qstep表示量化阶,逆量化可按下式计算ijijYZ QstepTiiiXCYE C因逆变换为 ,在逆变换之前可用前缩放矩阵Ei (根据位置(i, j)选取a2, ab或b2)对Yij进行缩放 为避免在计算过程中引入的舍入误差,在做逆变换之前的输入用一个常数因子64相乘(左移操作),在逆变换之后的输出通过右移操作去掉常数因子642022年5月9日第13章 MPEG-4 AVC/H.264视像53/7313.7 变换和量化变换和量化(续续10)-1Q-1T

47、X()/64TiiXC WCW64ijijWZ Qstep PFZ44块的逆量化和IDCT变换过程可用图13-16表示 图13-16 逆量化和逆变换框图 64ijijWZQstep PF 将逆量化、前缩放和乘常数因子的运算归并在一起进行计算时,用于逆变换的系数Wij就可按下式计算2022年5月9日第13章 MPEG-4 AVC/H.264视像54/7313.7 变换和量化变换和量化(续续11)n13.7.5 44亮度亮度DC残差系数的变换和量化残差系数的变换和量化变换变换n在1616亮度块的帧内预测方式下,每个44阵列的残差数据使用 变换,变换后的16个DC残差系数组成44阵列,然后用哈达玛变

48、换,或称Walsh-Hadamard transform, Walsh transform,Walsh-Fourier transform,是傅立叶变换的一种类型 n44亮度DC残差系数块使用如下形式的哈达玛变换 TffC XC000102031011121320212223303132331111111111111111111111111211111111TDDYHW Hwwwwwwwwwwwwwwww=骣轾轾轾犏犏犏犏犏犏-犏犏犏犏犏犏-犏犏犏犏犏犏 -犏犏桫犏臌臌臌2022年5月9日第13章 MPEG-4 AVC/H.264视像55/7313.7 变换和量化变换和量化(续续12)逆变换逆

49、变换n44亮度DC残差系数块的逆哈达玛变换使用如下算式 0001020310111213202122233031323311111111111111111111111111111111TQDDWH Z Hzzzzzzzzzzzzzzzz=骣轾轾轾犏犏犏犏犏犏-犏犏犏犏犏犏-犏犏犏犏犏犏 -犏犏桫犏臌臌臌量化和逆量化量化和逆量化n量化和逆量化也有一套具体的计算方法,相见教材2022年5月9日第13章 MPEG-4 AVC/H.264视像56/7313.7 变换和量化变换和量化(续续13)n13.7.6 22色度色度DC系数的变换和量化系数的变换和量化变换变换n22色度DC残差系数块使用如下形式的

50、哈达玛变换,0001101111111111TDDwwYHW Hww骣 轾轾犏犏= 犏犏-桫臌臌逆变换逆变换n22亮度DC系数块的逆哈达玛变换使用如下算式 0001101111111111TQDDzzWHZ Hzz骣 轾轾犏犏=犏犏-桫臌臌量化和逆量化量化和逆量化n量化和逆量化也有一套具体的计算方法,相见教材2022年5月9日第13章 MPEG-4 AVC/H.264视像57/7313.8 熵编码熵编码nMPEG-4 AVC/H.264的熵编码的熵编码在以往的视像压缩标准中,熵编码(entropy coding)通常都采用霍夫曼编码。为充分利用视像数据的相关性,MPEG-4 AVC/H.264

51、采用了压缩效率更高的熵编码技术,推荐使用的3种熵编码技术是n指数葛洛姆码(Exp-Golomb code)n前后文自适应可变长度编码技术(CAVLC)n前后文自适应二元算术编码技术(CABAC)CAVLC比CABACnCAVLC比CABAC的计算复杂度较低,编码效率也较低nCABAC比CAVLC的编码效率较高,计算复杂度也较高n有些文献指出,在相同视像质量条件下,CABAC可比CAVLC减少914%的位速率,甚至更高nCAVLC编码用于所有视像类型,而CABAC只用于主流型(main profile)视像2022年5月9日第13章 MPEG-4 AVC/H.264视像58/7313.8 熵编码

52、熵编码(续续1)n13.8.1 指数葛洛姆编码介绍指数葛洛姆编码介绍指数葛洛姆码指数葛洛姆码nExp-Golomb code或Exponential-Golomb code的译名n霍夫曼(Huffman)变长码的一种类型n结构规则、码字只与指数的阶有关以及不需用专门码表n指数葛洛姆码的前11个码字见表13-6,其中的码号实际上就是行程长度编码(RLC)中的行程长度n指数葛洛姆码的构造方法见表13-7,可用下面的形式表示 M zeros1INFO 或或 Prefix(前缀前缀)1Suffix(后缀后缀) 其中,M zeros或Prefix是其值为“0”的M位前导域 INFO或Suffix是M位信

53、息域。例如,在表13-6 中,在k=0时,码号(code_num)0的码字没有前导 “0”,也没有后缀,码号(code_num)1和2的码字的 前缀和后缀都只有1位,码号(code_num)36的码字 的前缀和后缀各有2位,依此类推2022年5月9日第13章 MPEG-4 AVC/H.264视像59/7313.8 熵编码熵编码(续续2)2022年5月9日第13章 MPEG-4 AVC/H.264视像60/7313.8 熵编码熵编码(续续3)2022年5月9日第13章 MPEG-4 AVC/H.264视像61/7313.8 熵编码熵编码(续续4)MPEG-4 AVC/H.264使用的编码使用的编

54、码n0阶葛洛姆码,每个码字的长度为(2M+1)位,M的长度和INFO的值可用下式分别计算,M=floor(log2(code_num+1), floor(x) 表示向下取整到表示向下取整到xINFO= code_num+1-2Mn解码可按下面的步骤进行u步骤步骤1:读前导域M zerosu步骤步骤2:在信息域INFO中读M位u步骤步骤3:code_num=2M+INFO-1,(对码号0,INFO和M均为0)u例如,0001001,code_num = +1-1 = 8编码参数的映射编码参数的映射nue(v):无符号参数直接映射,code_num = v,用于宏块类型、参考帧索引等2022年5月

55、9日第13章 MPEG-4 AVC/H.264视像62/7313.8 熵编码熵编码(续续5)nme(V):映射指数(Mapped Exponential),按标准规定的映射表将参数v映射到code_num,用于码块模式(coded_block_pattern)参数。码块模式表示宏块中哪块包含非零系数u表13-9列出了用于帧间预测的一小部分宏块模式2|v| for v0 nse(v) :带符号参数映射,用于移动矢量差(MVD),量化器参数QP等。映射关系见表13-82022年5月9日第13章 MPEG-4 AVC/H.264视像63/7313.8 熵编码熵编码(续续6)2022年5月9日第13章

56、 MPEG-4 AVC/H.264视像64/7313.8 熵编码熵编码(续续7)n13.8.2 CAVLC编码编码利用经量化和Z字形排列后的变换系数的如下特性n数据中包含很多0,可用行程长度编码技术表达0字符串n在非零系数中出现最多的是+/-1序列,可用+/-1的拖曳1(“TrailingOnes”或“T1s”)数目表示n在相邻块中的非零系数的数目是相关的,可用查找表(look-up table)对非零系数的数目进行编码n在DC系数附近的非零系数值比较大,在高频端附近的非零系数值比较小,可用查找表对非零系数值进行编码CAVLC编码的核心技术是制定码表n可变长度编码(VLC)码表是根据具体数据的

57、特点制定的n不仅码表的数目多而且编码也比较繁琐CAVLC的计算方法还在不断改进n建议建议:对不需要具体设计编解码器的读者不一定要追究每个细节,只要求了解编解码的思想就可以,教材中的例子也可跳过 2022年5月9日第13章 MPEG-4 AVC/H.264视像65/7313.8 熵编码熵编码(续续8)n13.8.3 CABAC编码编码核心技术核心技术n确定前后文模型u在2005年发布的H.264标准中,为各种语句元素定义的前后文模型合计有459个之多nCABAC的计算方法还在不断改进BAC编码编码nbinary arithmetic coding的缩写,二元算术编码n只用“0”和“1”两个符号的

58、算术编码技术 注意:算术编码(arithmetic coding)是对概率已知的数值 进行编码的技术n编码效率都可获得接近于熵的平均码长n缺点是其他符号必须转换成用0和1构成的位串2022年5月9日第13章 MPEG-4 AVC/H.264视像66/7313.8 熵编码熵编码(续续9)n举例:AABAA是由两个符号构成的消息u霍夫曼编码技术:不管它们出现的概率是多少,每个符号都需要1位,因此表示这个消息总共需要5位u理论值n由于A的概率为0.8,编码A需要0.32位;B的概率为0.2,编码B需要2.32位n表示这个消息的位数:40.3212.323.6位u二元算术编码技术:AABAA可用0.5

59、12和0.594之间的一个数表示。二进制数0.1001 (0.5625)就落在这个数值范围里,而且只需4位u对比较长而且两个符号的概率偏差比较大的消息,可以获得更高的压缩效率2022年5月9日第13章 MPEG-4 AVC/H.264视像67/7313.8 熵编码熵编码(续续10)CABAC编码编码n获得较高编码效率的技术u按照每个语句元素的内容选择概率u根据局部的统计以适应概率估算u使用二元算术编码 n编码器框图13见图13-19。CABAC经历的阶段u阶段阶段1:二元化:二元化(binarization)对非二元值语句元素或符号(如变换系数,移动矢量),首先将其转换成称为“位串(bin s

60、tring)”的二元序列,其中的bin是位(bit)的意思;对二元值语句元素,则直接将它送到二元算术编码器进行编码,如图13-19的下半部所示。二元化后的每一位都经历阶段阶段2 阶段阶段4的编码阶段 2022年5月9日第13章 MPEG-4 AVC/H.264视像68/7313.8 熵编码熵编码(续续11)u阶段阶段2:前后文模型选择:前后文模型选择(context model selection) 二元化元素的一位或多位的概率模型,是根据最近编码的元素进行统计得到的模型,模型存储的是每位的位值(bin value)为“1”或“0”的概率。图中的“前后文模型器”根据输入的位来选择前后文模型,然后将位值

温馨提示

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

评论

0/150

提交评论