基于上下文自适应的可变长编码(CAVLC)

本文深入探讨了AVC VLC编码中非零系数和拖尾系数的编码原理,解释了如何通过变长表和定长表进行编码,并详细说明了编码过程中的关键步骤,包括数据重排序、非零系数和拖尾系数的计数,以及编码过程的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >




1、TotalCoeffs(非零系数的数目)、TrailingOnes(拖尾系数的数目)


非零系数的数目范围从0到16,拖尾系数数目的范围从0到3,如果±1的个数大于3,只有最后3个被视为拖尾系数,其余被视为普通的非零系数。对非零系数数目和拖尾系数数目的编码通过查表得到,共有4个变长表格和1个定长表格可供选择。

定长表格的码字是6bit,高4bit表示非零系数个数(TotalCoeffs),最低两位表示拖尾系数的个数(TrailingOnes)。

表格的选择根据变量NC(Number Current,当前快值)的值来选择,除了色度的直流系数外,其他系数类型的NC值是根据当前块左边 4*4 块的非零系数数目(NA)和当前块上面 4*4 块的非零系数数目(NB)求得的。当输入的系数是色度的直流系数时,NC = -1。求NC的过程为:X 表示与当前块同属于一个片并可用。

非零系数数目和拖尾系数数目的编码表格为:







CAVLC编码过程:


(1)4x4块数据:


(2)部分系数初始化:

数据重排序:0 0 5 32 -1 0 0 01 .......

非零系数的数目(TotalCoeffs)= 5          (5,3,2,-1,1)

拖尾系数的数目(TrailingOnes)= 2        (1,-1)

非零系数前的数目(Total_zeros)= 5        (3+2=5)

变量系数NC = 3


(3)编码过程:






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值