Kontextadaptiv binär aritmetisk kodning (CADAK; CABAC från engelska. Kontextadaptiv binär aritmetisk kodning ) är en form av entropi (statistisk) kodning som används i H.264/MPEG-4 AVC- videokodekar . En förlustfri komprimeringsteknik används för att uppnå ett högre kompressionsförhållande än de flesta algoritmer som är tillgängliga i videokodning.
Det är en av de största fördelarna med H.264/AVC-codec. CABAC stöds endast i Main och högre codec-profiler, och kräver också ett ganska stort antal processorcykler i en ren mjukvaruimplementation, både vad gäller cykler och när det gäller systemkraft för att avkoda (visa) video kodad med denna teknik. Det är också svårt att vektorisera och parallellisera . Det är värt att notera att det finns kontextadaptiv kodning med variabel längd ( CAVLC ) , ett entropikodningsschema med lägre effektivitet som används för att förbättra prestandan på svagare avkodningssystem.
CADAC har flera prediktionslägen för olika sammanhang. Först konverteras alla icke-binära tecken till binära; vidare, för varje bit, väljer codec vilken prediktionsmodell som ska användas; efter det använder den informationen från de närmaste elementen för att optimera graden av förutsägbarhet. Aritmetisk kodning är det sista steget i datakomprimering.