// Exponential-Golomb: código de longitud variable estándar en compresión de vídeo
Usado en los códecs H.264/AVC y H.265/HEVC.
Diferentes valores de k para distintas distribuciones.
Mapeo integrado para enteros con signo.
Los códigos Exp-Golomb de orden k codifican un entero no negativo n así: 1) Suma 1 a n para obtener codeNum, 2) Divide por 2^k para obtener el cociente q y el resto r, 3) Escribe q ceros, luego 1 y después r en k bits. Para k=0 es equivalente a Elias Gamma. Para enteros con signo, el mapeo es: n>0 → 2n-1, n≤0 → -2n.
Orden k=0 (estándar): 0 → 1 1 → 010 2 → 011 3 → 00100 Orden k=1: 0 → 10 1 → 11 2 → 010 3 → 011 Modo con signo (k=0): 0 → 1 (mapea a 0) 1 → 010 (mapea a 1) -1 → 011 (mapea a 2) 2 → 00100 (mapea a 3)
La codificación Exponential-Golomb es un código universal de longitud variable usado ampliamente en estándares de compresión de vídeo como H.264 y H.265. Generaliza la codificación Elias Gamma con un parámetro k que permite adaptarse a diferentes distribuciones de datos.
k=0 (Exp-Golomb estándar) funciona bien para enteros pequeños con distribución aproximadamente exponencial. Valores de k más altos son mejores para enteros grandes o distribuciones más uniformes. Los códecs de vídeo usan a menudo k=0 para elementos de sintaxis y k adaptable para los residuales.
Exp-Golomb es ideal para vídeo porque: 1) Es sencillo de implementar en hardware, 2) No necesita tablas de búsqueda, 3) Se ajusta bien a la distribución estadística de los datos de vídeo, 4) Proporciona buena compresión para vectores de movimiento y coeficientes de transformada.
Comparado con Huffman: es más simple, sin tablas, pero menos óptimo. Comparado con la codificación aritmética: mucho más simple, pero con menor compresión. Exp-Golomb equilibra simplicidad y eficiencia, perfecto para codificación de vídeo en tiempo real.