H.264/AVC中CAVLC编码方法简介

 

H.264/AVC中CAVLC编码方法简介

 

一 名词

       TotalCoeffs:全部非零系数个数。(0~16)

       TotalZeros:最后一个非零系数前的零的个数。

       TrailingOnes:拖尾系数(即1)的个数。(0~3)

       NC:当前块值。除色度的直流系数外(常数-1),其它系数类型NC值是根据当前左边4x4块的非零系数数目(NA)和当前块上面4x4的非零系数的数目(NB求得的。

       计算NC的值

上面的块(NB)

左达的块(NA)

NC

X

X

(NA+NB)/2

X

 

NA

 

X

NB

 

 

0

       选择非零系数个数和拖尾系数个数的编码表格(表格见毕书附录):

NC

表格

0<=NC<2

变长表格1

2<=NC<4

变长表格2

5<=NC<8

变长表格3

NC=-1

变长表格4

NC>=8

定长表格

 

 

二 编码过程

       1. 对TotalCoeffs和TrailingOnes进行组合编码,称为Coeff_token。

       2. 对拖尾系数的符号进行编码,+为1,-为0,从右向左。

       3. 对非零系数(不包括拖尾系数,拖尾系数已经编码)进行编码,从右向左。

       4. 对TotalZeros进行编码。

       5. 对非零系数前的零的个数进行编码,从右向左,最后一个(从左边数第一个)非零系数前的零的个数不需要编码(剩下的零都是这个位置的)。

以下4x4块为例(毕书P123,原例有误):

0  0  -1  0

5  2  0  0

3  0  0  0

1  0  0  0

Z扫描完成后: 0,0,5,3,2,-1,0,0,0,1…

No

元素

数值

编码

说明

1

Coeff_token

TotalCoeffs=5,TrailingOnes=2

0000101

TotalCoeffs ,和TrailingOnes的组合进行编码

2-1

TrailingOnes_sign_flag

+

1

拖尾系数的符号,从右向左

2-2

TrailingOnes_sign_flag

0

 

3-1

Level(2)

1(suffixLength=0)

1

 

3-2

Level(1)

3(suffixLength=1)

0010

 

3-3

Level(0)

5(suffixLength=1)

000010

 

4

Total_zeros

5

101

 

5-1

Run_before(4)

ZeroLeft=5, run_before=3

010

 

5-2

Run_before(3)

ZeroLeft=2, run_before=0

1

 

5-3

Run_before(2)

ZeroLeft=2, run_before=0

1

 

5-4

Run_before(1)

ZeroLeft=2, run_before=0

1

 

5-5

Run_before(0)

ZeroLeft=2, run_before=2

 

最后一个不需要编码

 

编码输出:00001011010010000010101010111

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值