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)编码过程: