CAVLC

适应性变动长度编码法(Context-based Adaptive Variable-Length code,CAVLC,又称UVLC)是H.264的算法机制。

CAVLC适用于encode integer DCT(Discrete Cosine Transform)转换后的矩阵系数(matrix coefficient),经过zig-zag顺序扫描之后,在最高层的系数通常为+1/-1(即Trailing one总数);又取得以zig-zag顺序扫描时,连续出现的0(即zero run),或非零系数的总数(Total Coeffs)、最后一个非零系数前零的数目(Total_zeros)等参数,作为查表(table)时的index。CAVLC针对不同的block(4*4, 2*4, 2*2)设计了不同的table,对各种不同的context,使用不同的table进行encode,有效缩短输出bit stream长度。CAVLC改进了传统霍夫曼编码(Huffman Coding)需要大量的乘法运算的问题,而在效能与压缩效率上取得相当大的改善空间。

CAVLC支援所有的H.264 profiles,CABAC则不支援Baseline以及Extended profiles。

参考书目

  • E. G. Richardson, Iain. H.264 and MPEG-4 Video Compression: Video Coding for Next-generation Multimedia. Chichester: John Wiley & Sons Ltd. 2003. 

参见

  • CABAC