Articulo de referencia

Codificación exponencial-Golomb

Un código exponencial-Golomb (o simplemente código Exp-Golomb ) es un tipo de código universal . Para codificar cualquier entero no negativo x usando el código exp-Golomb: Escri...

Un código exponencial-Golomb (o simplemente código Exp-Golomb ) es un tipo de código universal . Para codificar cualquier entero no negativo x usando el código exp-Golomb:

  1. Escribe x + 1 en binario.
  2. Cuenta los bits escritos, réstales uno y escribe esa cantidad de bits cero iniciales antes de la cadena de bits anterior.

Los primeros valores del código son:

0 ⇒ 1 ⇒ 1 1 ⇒ 10 ⇒ 010 2 ⇒ 11 ⇒ 011 3 ⇒ 100 ⇒ 00100 4 ⇒ 101 ⇒ 00101 5 ⇒ 110 ⇒ 00110 6 ⇒ 111 ⇒ 00111 7 ⇒ 1000 ⇒ 0001000 8 ⇒ 1001 ⇒ 0001001 ... [ 1 ]

En los ejemplos anteriores, consideremos el caso 3. Para 3, x+1 = 3 + 1 = 4. 4 en binario es '100'. '100' tiene 3 bits, y 3-1 = 2. Por lo tanto, agregamos 2 ceros antes de '100', lo que da como resultado '00100'.

De forma similar, consideremos el 8. '8 + 1' en binario es '1001'. '1001' tiene 4 bits, y 4-1 es 3. Por lo tanto, agregamos 3 ceros antes de 1001, lo que da como resultado '0001001'.

Esto es idéntico al código gamma de Elias de x +1, lo que le permite codificar 0. [ 2 ]

Extensión a números negativos

La codificación Exp-Golomb se utiliza en los estándares de compresión de vídeo H.264/MPEG-4 AVC y H.265 High Efficiency Video Coding , en los que también existe una variación para la codificación de números con signo asignando el valor 0 a la palabra clave binaria '0' y asignando palabras clave subsiguientes a valores de entrada de magnitud creciente (y signo alterno, si el campo puede contener un número negativo):

0 ⇒ 0 ⇒ 1 ⇒ 1 1 ⇒ 1 ⇒ 10 ⇒ 010 −1 ⇒ 2 ⇒ 11 ⇒ 011 2 ⇒ 3 ⇒ 100 ⇒ 00100 −2 ⇒ 4 ⇒ 101 ⇒ 00101 3 ⇒ 5 ⇒ 110 ⇒ 00110 −3 ⇒ 6 ⇒ 111 ⇒ 00111 4 ⇒ 7 ⇒ 1000 ⇒ 0001000 −4 ⇒ 8 ⇒ 1001 ⇒ 0001001 ... [ 1 ]

En otras palabras, un entero no positivo x ≤0 se asigna a un entero par −2 x , mientras que un entero positivo x > 0 se asigna a un entero impar 2 x −1.

La codificación Exp-Golomb también se utiliza en el códec de vídeo Dirac . [ 3 ]

Generalización al orden k

Para codificar números más grandes en menos bits (a costa de usar más bits para codificar números más pequeños), esto se puede generalizar usando un parámetro entero no negativo k . Para codificar un entero no negativo x en un código exp-Golomb de orden k :  

  1. Codifique ⌊ x /2 k ⌋ usando el código exp-Golomb de orden 0 descrito anteriormente, luego
  2. Codificar x mod 2 k en binario con k bits

Una forma equivalente de expresar esto es:

  1. Codifique x +2 k −1 usando el código exp-Golomb de orden 0 (es decir, codifique x +2 k usando el código gamma de Elias), luego
  2. Elimine k bits cero iniciales del resultado de la codificación.

Véase también

Referencias

  1. 1 2 Richardson, Iain (2010). El estándar avanzado de compresión de vídeo H.264 . Wiley. págs.  208, 221. ISBN 978-0-470-51692-8.
  2. Rupp, Markus (2009). Transmisiones de vídeo y multimedia sobre redes celulares: análisis, modelado y optimización en redes móviles 3G en funcionamiento . Wiley. pág. 149. ISBN  9780470747766.
  3. "Especificación de Dirac" (PDF) . BBC. Archivado del original el 3 de mayo de 2015. Consultado el 9 de marzo de 2011 .
Obtenido de " https://en.wikipedia.org/w/index.php?title=Exponential-Golomb_coding&oldid=1327378178 "