Context-adaptive binary arithmetic coding ou CABAC que l'on peut traduire par codage arithmétique binaire adaptable au contexte est un type de codeur entropique utilisé dans la norme de compression vidéo H.264/AVC ainsi que dans la norme H.265/HEVC. Il s'agit d'un codeur arithmétique dont la compression est dite sans perte.

Algorithme

modifier

Le CABAC possède de nombreux modes de probabilités pour différents contextes. Tout d'abord, il convertit tous les symboles non-binaires en symboles binaires. Puis, pour chaque bit, le codeur sélectionne le modèle de probabilité le plus adapté et utilise les informations des éléments voisins pour optimiser l'estimation de la probabilité. Le codage arithmétique est ensuite appliqué pour compresser les données résultantes.

Application dans la norme H.264

modifier

Dans la norme H.264, il existe deux codeurs entropiques qui se distinguent des autres normes vidéo : CAVLC ( (en)Context-adaptive variable-length coding) et CABAC ((en) Context-adaptive binary arithmetic coding). Ce dernier n'est pas utilisé dans tous les profils de codage définis par la norme : il est seulement supporté dans le profil Main et des profils supérieurs, c'est-à-dire supérieurs par le débit qu'ils autorisent. La raison est due à la complexité du CABAC qui nécessite une grande quantité de ressources pour traiter et décoder les données, en comparaison avec des algorithmes similaires. En comparaison, le CAVLC est moins exigeant au niveau des ressources, c'est pourquoi il est présent sur tous les profils et les plus petites plateformes (par exemple les mobiles).

Il est également difficile de paralléliser les différents traitements à cause de leur dépendance avec les autres contextes précédemment calculés.

Mais malgré sa complexité, CABAC fournit de meilleurs résultats de compression que la plupart des algorithmes d'encodage utilisés dans l'encodage vidéo ce qui fait de lui l'un des premiers avantages du schéma d'encodage de la norme H.264. En effet, son gain par rapport à CAVLC est d'environ 10 % dans des conditions similaires.

Références

modifier
  • (en) E. G. Richardson, H.264 and MPEG-4 Video Compression : Video Coding for Next-generation Multimedia, Chichester, John Wiley & Sons Ltd., septembre 2003, 281 p. (ISBN 978-0-470-84837-1)
  • (en) Introduction au CABAC

Annexes

modifier

Articles connexes

modifier

Liens externes

modifier

📚 Artikel Terkait di Wikipedia

H.264

adoucie. Plusieurs codeurs entropiques : CABAC ((en) Context-adaptive binary arithmetic coding) : Il s'agit d'un codage arithmétique. C'est une technique

IEEE 754

programmes. Le titre complet de la norme était IEEE Standard for Binary Floating-Point Arithmetic (ANSI/IEEE Std 754-1985) (norme IEEE pour l'arithmétique binaire

Complément à deux

le 16 mars 2024) (en) Irving H. Thomae, Introduction to Binary Numbers and Binary Arithmetic, Université Washington de Saint-Louis, 1965, 24 p. (lire

X264

publiquement disponibles. Il supporte : CABAC (Context-based Adaptive Binary Arithmetic Coding) et CAVLC (Context-based Adaptive Variable Length Coding) MRF

Context-adaptive variable-length coding

entropique mais de type arithmétique CABAC (Context-based adaptive binary arithmetic coding) qui est plus efficace d'un point de compression par rapport

Modulo (opération)

ocaml.org (consulté le 19 février 2022) (en) Perl documentation « PHP: Arithmetic Operators - Manual », sur www.php.net (consulté le 20 novembre 2021) « PHP:

Stanislas Dehaene

consulté le 1er juillet 2024). Lotte Kaliski, « Arithmetic and the brain-injured child », The Arithmetic Teacher, vol. 9, no 5,‎ mai 1962, p. 245–251 (ISSN 0004-136X

Format virgule flottante quadruple précision

Kahan, « Lecture Notes on the Status of IEEE Standard 754 for Binary Floating-Point Arithmetic » [PDF], 1er octobre 1987 (en) Yozo Hida, X. Li et D. H. Bailey