適應性變動長度編碼法(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. 

參見