数字电视技术第六讲压缩_第1页
数字电视技术第六讲压缩_第2页
数字电视技术第六讲压缩_第3页
数字电视技术第六讲压缩_第4页
数字电视技术第六讲压缩_第5页
已阅读5页,还剩81页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1第六讲、H.264压缩编码标准Communication

University

of

ChinaH.264概述1ITU-T、ISO/IEC;ITU针对可视会议等应用分别制定了H.261、H.262、H.263、H.263+、H.263++;ISO/IEC主要制定了MPEG-1、MPEG-2、MPEG-4等标准;由ITU-T视频编码专家组(VCEG)和ISO/IEC运动图像专家组(MPEG)联合组成的联合视频组(JVT,JointVideoTeam)提出的新一代数字视频压缩标准。H.264概述2H.264/MPEG-4

AVC(Advanced

Video

Coding)MPEG-4第10部分;注重实用,采用成熟的技术,要求更高的编码效率和简洁的表现形式;注重对移动和IP网络的适应,采用分层技术,从形式上将编码和信道隔离开来,实质上是在源编码器算法中更多地考虑到信道的特点;在混合编码器的基本框架下,对其主要关键模块都进行了重大改进;一、H.264编码原理H.264/AVC标准没有明确定义一个编解码器。标准定义的是编码视频比特流的语法结构和对该比特流解码的方法。H.264标准的预测、变换、量化、熵编码等基本功能模块与前几个标准(MPEG-1,MPEG-2,

MPEG-4,

H.261,H.263)并无太大区别。变化主要体现在功能模块的具体细节上。H.264主要特点压缩效率高;容错能力强;网络适应性好;计算复杂度高;1、H.264/AVC编码器2、H.264/AVC解码器3、H.264/AVC与其它编码标准的差异(1)帧内预测在空间域进行帧内预测,提高帧内编码的精确度;(2)运动估计与运动补偿不同尺寸的块和形状,高分辨率的子像素运动估计和选择多个参考帧;(3)DCT变换使用整数的DCT变换;3、H.264/AVC与其它编码标准的差异(4)去块效应滤波为消除块效应,增加了自适应消块滤波器(5)熵编码技术通用变长编码(UVLC,universal

variablelength

coding)、基于上下文的自适应变长码编码

(CAVLC,context-based

adaptive

variable

lengthcoding)或基于上下文的自适应二进制算术编码

(CABAC,context-based

adaptive

binaryarithmetic

coding)。4、H.264的ProfilesBaseline

Profile,BP版本简单、应用广;MainProfile,MP,采用多项提高图像质量和增加压缩比的技术措施,可用于SDTV,HDTV,DVD等。编码效率高,复杂度高。熵编码采用CABAC。ExtendedProfile,EP,可用于网络的视频流传输,编码效率高,实时性不高,流的播放实时性要求较高。去掉了CABAC,增加了流的工具群。H.264型和级基本型:实时视频通信;主型:数字广播电视与视频存储;扩展型:流媒体;级:每一型设置不同的参数如取样速率、图像规格、编码比特率等,成为对应编解码器的级。Slices(片)H.264编码的结构.一个视频图像可以编码成一个或多个片,每片包含整数个宏块;5种类型:I-Slices\P-Slices\B-Slices\SI-Slices\SP-Slices;目的:限制误码的扩散和传播,使编码片与片之间保持独立;Slices

Group(片组).Slices

Group交错散乱前景/背景二、H.264采用的先进技术分层设计;帧内预测编码;帧间预测编码;整数变换;量化处理;去块效应滤波;熵编码1、分层设计在网络传输环境中,其视频编码方案主要由以下两部分组成:视频编码层VCL(videocodinglayer)和支持视频在不同网络之间传输的网络抽象层NAL

(networkabstraction

layer)。NAL头RBSPNAL头RBSP2、帧内预测编码H.264并不直接对图像块进行处理,而是根据邻近块的值来预测当前宏块的值,然后再对预测值和原始值的差值进行变换、量化和编码。H.264支持帧内编码模式:亮度块4×4与16×16编码模式;色度块8×8编码模式;(1)、4×4帧内预测模式QABCDEFGHIabcdJefghKijklLmnopMNOP4×4预测块SAE:绝对误差和(2)16×16帧内预测模式对于图像中的平坦区域,以16×16为单位进行预测更有助于加快处理速度和降低码率。

H.264提供了垂直预测、水平预测、直流预测和平面预测四种16×16的预测模式。16×16预测块(3)色度块的帧内预测及编码每个帧内编码宏块的8×8色度分量由已编码左上方色度像素的预测而得,两种色度分量常用一种预测模式。4种预测模式类似于帧内16×16的4种预测模式,只是模式编号不同,其中DC为模式0,水平为模式1,垂直为模式2,平面为模式3。(4)帧内预测模式的编码方式传输3、帧间预测编码H.264编解码器采用基于块的运动补偿。除了保留以前编码标准的主要特性外,同时还采用了一些新的特性来提高编码效率。其主要方法包括:(1)在运动搜索时使用不同大小和形状的块进行搜索;(2)使用1/4像素精度搜索,即使用高精度的运动矢量来表示图像块的运动方向和位移;(3)使用多个预测帧进行帧间预测;(4)引入SP帧和SI帧;(1)、树状结构运动补偿(TreeStructured

Motion

Compensation)区域划分举例(2)、1/4像素精度运动矢量H.264算法由于采用1/4像素精度来表示运动矢量的大小,因此能够更准确的得到预测块相对于原始块的位移,从而提高了预测精度,以达到压缩码率的效果,它能够节省20%的比特开销。(3)、多个参考帧进行帧间预测H.264标准中,在帧间编码过程中不只使用一个参考帧进行预测。编码器可以在多个参考帧中进行运动搜索,选择一个效果最好,与编码帧最相似的一帧作为参考帧。可以得到更好的主观图像质量及编码效率。增加处理延时而且编解码器需要更多的内存来储存参考帧。MVP运动矢量预测由于每个帧间的分割区域需要相应的运动矢量。MV可由邻近已编码的分割区域的

MV预测得到。BCAFBAFC(4)、引入SP帧和SI帧适应带宽自适应性和抗误码的要求定义:SP帧和SI帧;SP帧可以参考不同的参考帧重构图像。应用:流切换、拼接、随机进入、快进快退、错误恢复。编码效率低于P帧,高于I帧,改善网络亲和性,支持流媒体服务,具备强抗误码性能,适应干扰大、丢包率高的无线信道。(4)、引入SP帧和SI帧H.264除了支持I帧、P帧和B帧外,还支持新的码流间可转换帧—SP帧和SI帧。A0PA1PA2PA3PA4PB0PB1PB2IB3PB4P码流A码流BSP帧切换码流A0PA1PA2PSPA3PA4PB0PB1PB2PSPB3PB4P码流A码流BAB2SSP注:码流A和B是不同参数编码的同一内容节目。SP

AB2的编码解码过程T-QVLETMCSP

AB2帧B2帧A1T-1+Q-1VLDTMC帧B2SP

AB2帧A1++++SI帧拼接和随机进入A0PA1PA2PSPA3PA4PB0PB1PB2PSPB3PB4P码流A码流BAB2SI注:码流A和B是不同内容节目。4、整数变换对每个宏块的预测误差都将进行变换,量化和编码。H.264的“baseline”型(profile)根据所压缩的数据类型不同而采用三种不同的变换方式。适用于帧内预测宏块4×4亮度DC系数块的变换;适用于任何宏块色度2×2

DC系数块的变换;适用于其他4×4残差数据块的变换;如果需要,还可以选择与运动补偿块大小(4×8、8×4、8×8、16×8)相对应的变换。宏块扫描和传输顺序(1)4×4残差变换变换适用于运动补偿或帧内预测后的4×4残差数据块(0~15和18~25)。虽然该变换的基础是DCT变换但二者之间有根本的差别:1)该变换是一种整数变换,所有的运算都是整数运算并且没有精度损失。2)H.264标准中对该变换的反变换有详细的说明,如果完全按照说明正确执行,编解码器之间不会出现误匹配。3)该变换的核心部分不需要乘法,仅仅需要加法和移位运算。N=4的DCT变换核函数展开88888888888821212121cos

21pcos

15pcos

9pcos

3pcos

14pcos

10pcos

6pcos

2pcos

7pcos

5pcos

3pcos

px

=0,1,

N

-1核函数

a(u,x)

=C(u)cos(2x

+1)up21k

=1,2,... ,

N

-1N2Nk

=

0NC(u)

=

21N=4的DCT变换核函数展开88884444888821212121cos

pcos

3pcos

pcos

pcos

3pcos

p-

cos

3p-

cos

p-

cos

p-

cos

p-

cos

p-

cos

3p2Nx

=0,1,

N

-1核函数

a(u,x)

=C(u)cos(2x

+1)up21N=4的DCT变换核函数展开8888212221888821212121cos

pcos

3pcos

3pcos

p-

cos

3p-

cos

p-

1-

1-

cos

p-

cos

3p2Nx

=0,1,

N

-1核函数

a(u,x)

=C(u)cos(2x

+1)up21N=4的DCT变换核函数展开aaaabc-

c-

ba-

a-

aac-

bb-

c2Nx

=0,1,

N

-1核函数

a(u,x)

=C(u)cos(2x

+1)up82

22

8令a

=

1

,b

=

1

cosp,c

=

1

cos3p,A=DCT变换:

W=A·X·ATN=4的DCT变换核函数展开a

a

a

ab

c

-

c

-

ba

-

a

-

a

ac

-

b

b

-

c2Nx

=0,1,

N

-1核函数

a(u,x)

=C(u)cos(2x

+1)upc1

1

1

1b

1

-1

-

bc1

-1

-1

11

-

b

c

b

c

-1a

0

0

00

c

0

00

0

a

00

0

0

c=82

22

8令a

=

1

,b

=

1

cosp,c

=

1

cos3p,N=4的DCT变换核函数展开a

a

a

ab

c

-

c

-

ba

-

a

-

a

ac

-

b

b

-

c2Nx

=0,1,

N

-1核函数

a(u,x)

=C(u)cos(2x

+1)up1

1

1

121-1-

21-1-111-

22-1a

0

0

00

c

0

00

0

a

00

0

0

c=8

82

2b/

c

=

1

cos3p

/

1

cosp

=2.41N=4的DCT变换核函数展开a00011110c0021-1-

200a01-1-11000c1-

22-11

b

/

c

1

11

1

-1

-

b

/

c-1

-1

b

/

c1

-

b

/

c

1

-1a

b

a

ca

c -

a

-

ba

-

c

-

a

ba

-

b

a

-

c=

1C

=CT

=a

0

0

00

c

0

00

0

a

00

0

0

cN=4的DCT变换核函数展开abac1211a000CT

=aac-

c-

a-

a-

bb=111-1-1-1-

2200c00a00a-

ba-

c1-

21-1000c1

1

1

12

1

-1

-

21

-1

-1

11

-

2

2

-1a

0

0

00

c

0

00

0

a

00

0

0

c1

2

1

11

1

-1

-

21

-1

-1

21

-

2

1

-1a

0

0

00

c

0

00

0

a

00

0

0

cXN=4的DCT变换核函数展开0

2

1

-1

-

2

1

1

-1

-

2

00

1

-1

-1

1

X

1

-1

-1

2

0c

1

-

2

2

-1

1

-

2

1

-1

01

1

2

1

1

a

0

0

0

a1

-

2

1

1

-1

-

2

0

c

0

0

01

1

X

1

-1

-1

2

˜

0

0

a

0

0-1

1

-

2

1

-1

0

0

0

c

0无法显示该图片。a0001111

1

2

1

1

a0000c0c0000a0a000000c111000211-1--[1]c00a001-

2200cN=4的DCT变换核函数展开111121-1-

21-1-111-

22-1a

0

0

00

c

0

00

0

a

00

0

0

c1

2

1

11

1

-1

-

21

-1

-1

21

-

2

1

-11

1

1

11

1

1

11

1

1

11

1

1

1X˜a0000c0000a0000ca

a

a

a

a

0

0

0c

c

c

c

0

c

0

0a

a

a

a

0

0

a

0c

c

c

c

0

0

0

c=acc2acc2a2aca2acacc2acc2a2aca2acN=4的DCT变换核函数展开111121-1-

21-1-111-

22-1121111-1-

21-1-121-

21-1X˜acc2acc2a2aca2acacc2acc2a2aca2ac111121-1-

21-1-111-

22-1121111-1-

21-1-121-

21-1X˜b/c=2,c=b/242422b

22b

24ab2a

2ab4ab2a

2abababa

2

a

2

2

2ab b

2

ab b

2整数变换矩阵-11

11

1

1

1

2

1

-1

-

2-1

-11

-

2

2c

=

=

22

11

2

1

1

1

1

-1

-

2-1

-11

-

2

1TCW

=

CXCT-1(2)Hadamard变换4×4,针对亮度块的直流DC系数;2×2,针对色度块的直流DC系数;1

11

1

11

-1

-

2

-1

-1

1

-

2

2

-112c

=

-11

11

1

1 1

1

1

-1

-1-1

-11

-1

1h

=

-11 1

h'

=

15、H.264量化

通过量化,在不降低图像视觉效果的前提下,减少图像编码长度。Qstep

Ysample

FQ

=

round

H264量化步长特点H.264标准支持52个量化步长,对应于不同的量化参数(QP)如表所示,QP值每增加6,Qstep值增加一倍。量化步长取值范围很广,这就为编码中兼顾比特率和编码质量提供了足够多的灵活度和准确度。ijij

QstepPF

)Z

=

round

(WstepQPF2qbitsMF

=)2qbitsMFQPa2b2/4ab/20131075243806611191646607490210082419465543………444

ab

2b

24

ab

2b

22b

22b

2aba

2

ab

2a

2

ab

2aba

2

ab

2a

2

ab

2PF=Zij

=

round

(WijMF值:6、去块效应滤波H.264/AVC定义了一个自适应循环滤波器,滤波的强度通过几个语法元素控制。滤波的基本思想是:如果块边沿的绝对差值相对比较大,出现块人工瑕疵的可能性就很大,因此需要进行相应处理。Filter7、熵编码H.264标准提供的熵编码方案有:通用变长码编码(UVLC);基于上下文的自适应变长码编码(CAVLC);(Exponential

Golomb

Codes)基于上下文的自适应二进制算术编码(CABAC)。(1)、Exp-Golomb编码对所有的句法元素,除了量化系数外,

使用单一无限扩展

的码字表。是有规则结构的可变长编码。码字序号码字011010201130010040010150011060011170001000……(2)、CAVLC编码遵循变长编码的思路,即根据概率统计分布制定码表,通过信源符号与码字相对应实现编码。通过根据已编码句法元素的情况,动态调整

编码中使用的码表,从而取得极高的压缩比。(2)、CAVLC编码用于亮度和色度残差块变换系数的编码。利用了4×4块的一些特性:预测变换量化后的块一般是稀疏的。之字形扫描后的最高非零系数是+1/-1的序列。相邻块的非零系数是相关的。非零系数的幅度在重排数组的开始处比较高,在高频系数比较低。Example1重排后数据是:-2,4,3,-3,0,0,-1,0,…对非零系数的数目和绝对值为“1”的数目进行编码;对各个T1的符号进行编码。T1的符号用1个比特编码0表示+,1表示-。从最高频率的T1开始反向编码。按逆向扫描的次序对余下的数值进行编码。

对最后一个系数之前的零的总数进行编码。对零的游程进行编码,说明零是如何分布的。-240-13000-30000000Example1nA=2,

nB=1,

nC

=

(nA

+

nB)>>1=

1Example1Table–

coeff_token

mapping

to

TotalCoeff(

coeff_token

)

and

TrailingOnes(

coeff_token

)TrailingOnes(

coeff_token)TotalCoeff(

coeff_token)0

<=

nC

<

22

<=

nC

<

44

<=

nC

<

88

<=

nCnC

=

=

-10011111110000

1101010001

010010

110011

110000

000001

1111011011100000

011020000

01110001

110010

110001

000001

00120001

000011

10111

10001

010001

102200101111010001

10001030000

0011

10000

1110010

000010

000000

11130000

01100010

100110

00010

010000

011230000

1010010

010111

00010

100000

010330001

1010111000010

110001

01040000

0001

110000

01110001

1110011

000000

10140000

0011

00001

100101

00011

010000

0011240000

01010001

010101

10011

100000

0010340000

11010010110011

110000

000050000

0000

1110000

01000001

0110100

00-150000

0001

100000

1100100

00100

01-250000

0010

10000

1010100

10100

10-350000

1000011

010100100

11-060000

0000

0111

10000

0011

10001

0010101

00-160000

0000

1100000

01100011

100101

01-260000

0001

010000

01010011

010101

10-360000

01000010

0010010101

11-Table

9-6

Codeword

table

for

level_prefixlevel_prefix

bit

string0110120013000140000

150000

0160000

00170000000180000

0000

190000

0000

01100000

0000

001110000

00000001120000

0000

0000

1130000

0000

0000

01140000

0000

0000

001150000

0000

00000001Table

–total_zeros

tables

for

4x4

blocks

with

TotalCoeff(

coeff_token

)1

to

7Table–

Tables

for

run_beforetotal_zerosTotalCoeff(

coeff_token

)12345670111101010001

101010000

010000

01101111011111101000000

10000

120101011100101001111110130011100101010011111010040010011010011011010101150001

1010100111011011001160001

0010010010010001101070000

1100110110011011010000180000

10001000100110010000100190000

0110001

10001

100100000

10010000

00100000

0100001

00001

00001

000010000

00110000

00110000

110000

010000

10000

0120000

00100000

100000

10000

0130000

0001

10000

010000

00140000

0001

00000

00150000

0000

1run_beforezerosLeft123456>60111111111111110011010100001102-0001010110011013--000010100111004---0000010100115----0001010106-----1000017------00018-----000019------00000110------000000111------0000000112------00000000113------14------Example2Example2Example2(3)、CABAC

编码算术编码是把整个信源表示为实数中0~1之间的一个区间,起长度等于该序列的概率;在区间内选择一个代表性的小数,转化为二进制作为实际的编码输出;算术编码的平均编码长度为小数;第六讲(Part2)

AVS编码标准中国数字音视频编解码技术标准工作组(简称中国AVS工作组)开发了数字音视频编解码标准(AVS)2003年12月,AVS工作组针对高清和高质量数字广播、数字存储媒体及其他相关应用制定的首个AVS视频标准问世。一、AVS编码器框架由于采用的模块相同,AVS与H.264/AVC编码器的架构看起来比较类似.二、实现AVS视频标准的主要技术1、熵编码AVS

采用了–序列Exp-Golomb编码表

(k=0,1,2,3)、CBP、宏块编码模式和运动矢量,并通过–序列Exp-Golomb

编码表进行解码。AVS定义的19个映射表占用不到2k字节的空间,却能很好地适应不同的分配,并具有很高的编码能力。2、转换和量化与H.264/AVC

和MPEG-2不同,AVS采用8×8整数转换。为了减少解量化和逆转换中的取整误差,AVS还专门设置了一种特殊程序,并且各种操作均可在16

位内完成。3、帧内预测AVS

视频标准采用了帧内预测技术,改进了帧内编码的宏块性能。与AVC/H.264相比,

AVS

定义了5种用于8×8亮度块的模式和4种

用于8×8

色度块的模式。4、参考帧以往的视频编码标准(如MPEG-2)中,双向预测编码帧(B帧)通常以前一个帧和/或后一个帧为基准。虽然预测编码帧(P帧)只用前一个帧来预测当前帧

温馨提示

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

评论

0/150

提交评论