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 。