CABAC (ang.Context-Adaptive Binary Arithmetic Coding) – kodowanie entropijne użyte w kodeku obrazu AVC jako opcjonalne względem CAVLC (Context-Adaptive Variable Length Coding). W wyniku zastosowania CABAC można uzyskać nawet do 20% mniejszy strumień binarny względem kodowania CAVLC.
Jednym z głównych twórców CABAC-a jest Detlev Marpe z Instytutu Fraunhofera z siedzibą w Berlinie.
Algorytm
CABAC opiera się na adaptacyjnym kodowaniu kontekstowym ciągu symboli binarnych. Dane wyjściowe kodera obrazu (dane sterujące, współczynniki transformaty błędu predykcji, wektory ruchu) poddawane są procesowi binaryzacji za pomocą zdefiniowanych w standardzie książek kodowych, zależnie od kontekstu (poprzednich symboli) w jakim wystąpiły. Następnie takie dane binarne podawane są na koder arytmetyczny ze zdefiniowanym progiem renormalizacji oraz modelem prawdopodobieństwa wystąpienia danego symbolu binarnego. Wynikowe symbole kodera arytmetycznego zapisywane są w końcu do strumienia binarnego.
Iain E. G. Richardson: H.264 and MPEG-4 Video Compression: Video Coding for Next-generation Multimedia. John Wiley & Sons Ltd., 2003. Brak numerów stron w książce
D.Marpe,H.Schwarz, T.Weigand: Context-Based Adaptive Binary Arithmatic Coding in H.264/AVC Video Compression Standard. 07-2003. Brak numerów stron w książce