基于上下文的自适应变长编码(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. 

参见 编辑