Como funciona la compresion HEIC: guia tecnica
Entiende la tecnologia de compresion HEIC, incluyendo la codificacion intra-frame de HEVC, bloques de transformacion, cuantificacion y por que logra archivos un 50% mas pequenos que JPEG.
La compresion HEIC usa codificacion intra-frame HEVC para lograr archivos un 50% mas pequenos que JPEG a calidad visual equivalente. El proceso de compresion procesa imagenes a traves de unidades de arbol de codificacion, prediccion, codificacion por transformada, cuantificacion y codificacion de entropia. Cada etapa es mas avanzada que su equivalente en JPEG.
Esta guia desglosa cada etapa del proceso de compresion HEIC. Explica los mecanismos tecnicos especificos que hacen que HEIC sea el doble de eficiente que JPEG, un formato disenado hace mas de 30 anos.
HEVC: el codec detras de HEIC
HEIC es un formato contenedor definido por el estandar HEIF (High Efficiency Image Format). El trabajo de compresion real lo realiza HEVC, tambien conocido como H.265. HEVC fue desarrollado conjuntamente por ITU-T e ISO/IEC y finalizado en 2013. Originalmente fue disenado para compresion de video, donde reemplazo a H.264/AVC.
Para imagenes fijas, HEVC usa unicamente su modo de codificacion intra-frame. Los codecs de video comprimen secuencias explotando similitudes entre fotogramas consecutivos (prediccion inter-frame). Las imagenes fijas no tienen fotogramas vecinos. El modo intra-frame de HEVC comprime cada imagen de forma independiente, usando solo la redundancia espacial dentro del unico fotograma.
Apple adopto la codificacion intra-frame de HEVC para las fotos del iPhone a partir de iOS 11 en 2017. El chip A11 Bionic y todos los procesadores Apple posteriores incluyen hardware dedicado para la codificacion y decodificacion HEVC. Esta aceleracion por hardware hace que la compresion HEIC sea lo suficientemente rapida como para capturar fotos en rafaga sin retraso.
Unidades de arbol de codificacion: la base
JPEG divide las imagenes en bloques fijos de 8x8 pixeles llamados macrobloques. HEVC reemplaza esta estructura rigida con unidades de arbol de codificacion (CTU) que van de 8x8 a 64x64 pixeles. Esta particion flexible de bloques es el mayor contribuyente individual a la ventaja de compresion de HEIC.
Como funcionan las CTU
El codificador comienza dividiendo la imagen en una cuadricula de CTU. Cada CTU tiene un tamano maximo de 64x64 pixeles. Luego, el codificador subdivide recursivamente cada CTU en unidades de codificacion (CU) mas pequenas usando una estructura de arbol cuaternario. Una CTU de 64x64 se divide en cuatro CU de 32x32. Cada CU de 32x32 se divide en cuatro CU de 16x16. La subdivision continua hasta un minimo de 8x8 pixeles.
El codificador elige la profundidad de subdivision segun el contenido de la imagen. Las areas planas y uniformes como cielos despejados usan bloques grandes de 64x64 porque hay poco detalle que codificar. Las areas de alto detalle como follaje o texto usan bloques mas pequenos de 8x8 o 16x16 para capturar la estructura fina con precision.
Por que importan los bloques mas grandes
Los bloques mas grandes reducen la sobrecarga. Cada limite de bloque requiere bits de cabecera para el modo de prediccion, vectores de movimiento y coeficientes de transformada. Un solo bloque de 64x64 tiene un conjunto de datos de cabecera que cubre 4.096 pixeles. El area equivalente en JPEG requiere 64 bloques separados de 8x8, cada uno con su propia cabecera. Son 64 conjuntos de datos de sobrecarga para la misma area de pixeles. En regiones uniformes, el ahorro en sobrecarga por si solo representa una reduccion significativa del tamano del archivo.
Macrobloques JPEG en comparacion
JPEG usa una estructura fija de dos niveles. La imagen se divide en macrobloques de 16x16. Cada macrobloque contiene cuatro bloques DCT de 8x8 para luminancia y dos bloques de 8x8 para crominancia (bajo submuestreo 4:2:0). No hay subdivision adaptativa. Un parche de cielo azul recibe el mismo tratamiento de bloques de 8x8 que un parche de textura compleja. Esta rigidez desperdicia bits en regiones simples y limita la precision en las complejas.
Modos de prediccion
Antes de la codificacion por transformada, el codificador predice los valores de pixel de cada bloque usando pixeles vecinos que ya han sido codificados. El codificador almacena solo el residual, la diferencia entre la prediccion y los pixeles reales. Mejores predicciones producen residuales mas pequenos, que se comprimen en menos bits.
HEVC: 35 modos de prediccion intra
HEVC ofrece 35 modos de prediccion intra distintos para cada unidad de codificacion:
- Modo planar (modo 0): genera una superficie suave ajustada a los pixeles del borde superior e izquierdo del bloque. Destaca en gradientes graduales, como fondos desenfocados y regiones de cielo.
- Modo DC (modo 1): rellena todo el bloque con un unico valor: el promedio de los pixeles del borde superior e izquierdo. Maneja areas planas y uniformes con un residual minimo.
- 33 modos angulares (modos 2-34): proyectan pixeles del borde en angulos especificos hacia el interior del bloque. Los 33 angulos abarcan desde casi horizontal hasta casi vertical en intervalos de aproximadamente 5,6 grados. Un modo angular que coincida con un borde diagonal, como la linea de un tejado a 45 grados, produce residuales cercanos a cero a lo largo de ese borde.
El codificador prueba cada uno de los 35 modos y selecciona el que produce el residual mas pequeno. Para un bloque que contiene un borde diagonal fuerte, se elige un modo angular alineado con ese borde. Para un gradiente suave, gana el modo planar. Para una region solida, se selecciona el modo DC.
JPEG: 9 opciones de prediccion
La especificacion base de JPEG no tiene prediccion espacial en absoluto. La DCT opera directamente sobre los valores de pixel sin procesar. El modo sin perdida de JPEG define un esquema de prediccion simple con solo 7 predictores basados en pixeles adyacentes. Incluso JPEG 2000, la variante de JPEG mas avanzada, ofrece solo 9 modos de prediccion. La diferencia entre 9 y 35 es grande. Mas opciones de prediccion significan mejores coincidencias con el contenido real de la imagen, lo que significa residuales mas pequenos y archivos mas pequenos.
Codificacion por transformada
Despues de la prediccion, el codificador transforma los datos residuales del dominio espacial al dominio de frecuencia. Este paso concentra la energia de la imagen en un pequeno numero de coeficientes, haciendo que la cuantificacion y la codificacion de entropia sean mas eficientes.
Bloques de transformada HEVC
HEVC usa la Transformada Discreta del Coseno (DCT) y la Transformada Discreta del Seno (DST) en unidades de transformada (TU) que van de 4x4 a 32x32 pixeles. La DST de 4x4 se usa especificamente para bloques de luminancia con prediccion intra, donde proporciona mejor compactacion de energia que la DCT. Los bloques mas grandes usan DCT.
El tamano de la transformada se elige independientemente del tamano de la unidad de codificacion. Una CU de 32x32 puede usar una sola transformada de 32x32 o dividirse en cuatro transformadas de 16x16. Esta flexibilidad permite al codificador ajustar el tamano de la transformada al contenido de frecuencia local. Las regiones de baja frecuencia usan transformadas grandes para mejor compactacion de energia. Las regiones de alta frecuencia usan transformadas mas pequenas para evitar artefactos de ringing.
Bloques de transformada JPEG
JPEG usa una DCT fija de 8x8 para cada bloque sin excepcion. No hay opcion de DST, no hay flexibilidad de tamano y no hay adaptacion al contenido local. El tamano de 8x8 es un compromiso: demasiado pequeno para una compactacion de energia optima en areas suaves, adecuado pero no ideal para areas con textura. Este enfoque unico para todo es una limitacion fundamental del estandar JPEG.
Cuantificacion
La cuantificacion es el paso con perdida. El codificador divide cada coeficiente de transformada por un parametro de cuantificacion (QP), redondeando el resultado a un entero. Divisores mas grandes producen enteros mas pequenos (mas compresion, mas perdida de calidad). Divisores mas pequenos preservan mas precision (menos compresion, menos perdida de calidad).
Cuantificacion HEVC
HEVC usa un rango de QP de 0 a 51. El tamano del paso de cuantificacion se duplica por cada incremento de 6 en QP. Con QP 0, la cuantificacion es despreciable. Con QP 51, la cuantificacion es agresiva. La codificacion HEIC por defecto de Apple para fotos de iPhone usa un valor de QP en el rango de 22 a 28, dependiendo de la complejidad de la escena. Este rango logra aproximadamente un 50% de reduccion de tamano comparado con JPEG a calidad visualmente equivalente.
HEVC tambien admite cuantificacion adaptativa dentro de un solo fotograma. El codificador asigna diferentes valores de QP a diferentes CTU segun la importancia visual. Las regiones con alta sensibilidad perceptual, como los rostros, reciben valores de QP mas bajos (mayor calidad). Los fondos planos reciben valores de QP mas altos (mas compresion). Esta adaptacion espacial asigna bits donde el ojo humano nota mas.
Cuantificacion JPEG
JPEG usa una matriz de cuantificacion fija de 8x8. El estandar JPEG incluye dos matrices por defecto: una para luminancia y otra para crominancia. El control deslizante de calidad en los editores de imagen escala estas matrices de forma uniforme. Un ajuste de calidad del 75% multiplica cada entrada en la matriz por el mismo factor. No hay adaptacion por bloque, no hay asignacion de bits basada en el contenido y no hay variacion espacial dentro de una sola imagen.
Codificacion de entropia: CABAC vs Huffman
La etapa final de compresion convierte los coeficientes cuantificados en un flujo de bits compacto. Esto es sin perdida: no se pierde informacion durante la codificacion de entropia. La eficiencia del codificador de entropia determina lo compactamente que se empaquetan los datos.
HEVC usa CABAC
HEVC usa codificacion aritmetica binaria adaptativa al contexto (CABAC). CABAC convierte cada elemento sintactico en una secuencia de decisiones binarias. Cada decision binaria se codifica usando un codificador aritmetico que adapta su modelo de probabilidad basandose en el contexto: los valores de elementos vecinos previamente codificados.
CABAC logra una compresion cercana al optimo teorico. Adapta sus estimaciones de probabilidad continuamente, de modo que los simbolos que son localmente frecuentes usan menos bits. Para contenido fotografico tipico, CABAC produce un flujo de bits que es un 5-15% mas pequeno que la codificacion Huffman sobre los mismos datos cuantificados.
JPEG usa codificacion Huffman
La version base de JPEG usa codificacion Huffman, un metodo de codificacion de entropia mas simple definido en 1952. La codificacion Huffman asigna palabras de codigo de longitud fija basadas en frecuencias globales de simbolos en toda la imagen. No se adapta a patrones locales. Un simbolo que es raro globalmente pero comun en una region sigue recibiendo una palabra de codigo larga. JPEG admite codificacion aritmetica como opcion, pero practicamente ningun software la habilita debido a preocupaciones de patentes y soporte limitado de decodificadores.
HEIC vs JPEG: comparacion de caracteristicas de compresion
| Caracteristica | HEIC (HEVC) | JPEG | | --- | --- | --- | | Rango de tamano de bloque | 8x8 a 64x64 (adaptativo) | Fijo 8x8 | | Particion de bloques | Arbol cuaternario recursivo | Cuadricula fija | | Modos de prediccion intra | 35 (planar + DC + 33 angulares) | Ninguno (base) o 9 (sin perdida) | | Tipos de transformada | DCT + DST | Solo DCT | | Tamanos de transformada | 4x4, 8x8, 16x16, 32x32 | Fijo 8x8 | | Cuantificacion | Adaptativa por CTU, QP 0-51 | Matriz fija, escalado uniforme | | Codificacion de entropia | CABAC (aritmetica adaptativa) | Huffman (palabras de codigo fijas) | | Profundidad de color | Hasta 16 bits por canal | 8 bits por canal | | Modo con perdida | Si | Si | | Modo sin perdida | Si | Limitado (raramente usado) | | Foto tipica de 12 MP | ~1,8 MB | ~3,5 MB | | Ventaja de ratio de compresion | Referencia | ~50% mas grande a misma calidad |
Por que HEIC logra archivos un 50% mas pequenos
La ventaja del 50% en tamano no proviene de una sola caracteristica. Es el resultado acumulativo de mejoras en cada etapa del proceso. Cada mejora contribuye con una porcion medible:
- Los bloques adaptativos mas grandes ahorran un 10-15% en sobrecarga. Codificar una region de cielo uniforme como un solo bloque de 64x64 en lugar de sesenta y cuatro bloques de 8x8 elimina 63 conjuntos de datos de cabecera de bloque.
- Los 35 modos de prediccion ahorran un 15-20% en energia residual. La prediccion angular alineada con los bordes, combinada con modos planar y DC para areas planas, produce predicciones mas ajustadas que el enfoque DCT directo de JPEG.
- Los tamanos de transformada flexibles ahorran un 5-10%. Ajustar el tamano de la transformada al contenido local mejora la compactacion de energia. Las transformadas grandes empaquetan eficientemente el contenido de baja frecuencia. Las transformadas pequenas manejan bordes de alta frecuencia sin ringing.
- La cuantificacion adaptativa ahorra un 5-10%. Asignar mas bits a regiones perceptualmente importantes y menos bits a los fondos produce mejor calidad subjetiva a la misma tasa de bits total.
- CABAC ahorra un 5-15% respecto a Huffman. La codificacion aritmetica adaptativa al contexto comprime el flujo de bits final mas compactamente que las tablas Huffman fijas.
Combinadas, estas ganancias se acumulan. Un ahorro del 15% en la etapa de prediccion significa que menos bits residuales entran en la etapa de transformada, lo que significa que menos coeficientes sobreviven a la cuantificacion, lo que significa que CABAC tiene menos datos que codificar. Los efectos del proceso se multiplican.
Compresion HEIC con y sin perdida
HEIC admite tanto modos de compresion con perdida como sin perdida. La diferencia radica en el paso de cuantificacion.
Modo con perdida
La compresion con perdida establece el QP por encima de 0, introduciendo error de cuantificacion. Este es el modo por defecto para todas las fotos de iPhone. El codificador de Apple equilibra la calidad con el tamano del archivo, apuntando a un rango de QP que produce archivos aproximadamente un 50% mas pequenos que el JPEG equivalente. Con este ajuste, el error de cuantificacion esta por debajo del umbral de percepcion visual humana en condiciones de visualizacion estandar.
Modo sin perdida
La compresion sin perdida establece el QP en 0 y usa una ruta de codificacion especial que preserva cada valor de muestra exactamente. Las etapas de prediccion, transformada y codificacion de entropia siguen operando, pero la cuantificacion introduce cero error. Los archivos HEIC sin perdida son mas grandes que los con perdida, tipicamente 2-3 veces el tamano del HEIC con perdida, pero aun asi un 20-30% mas pequenos que el PNG sin perdida para contenido fotografico. El ahorro proviene de la prediccion y codificacion de entropia superiores de HEVC.
Apple no usa el modo sin perdida para las fotos estandar de iPhone. Las imagenes ProRAW en los modelos iPhone Pro usan un proceso diferente (formato DNG). El HEIC sin perdida se usa principalmente en flujos de trabajo de imagen profesional donde se requiere la preservacion exacta de las muestras.
Decodificacion: como se muestran las imagenes HEIC
La decodificacion invierte el proceso de compresion. El decodificador lee el flujo de bits codificado con CABAC, reconstruye los coeficientes cuantificados, aplica la transformada inversa, suma la prediccion y produce los valores de pixel. Los dispositivos Apple modernos realizan esto por hardware. El chip A11 y posteriores incluyen un decodificador HEVC dedicado que procesa una imagen de 12 MP en menos de 50 milisegundos.
La decodificacion por software es mas lenta pero ampliamente disponible. Librerias como libheif y libde265 decodifican HEIC en cualquier plataforma. HEICify usa libheif-js para decodificar archivos HEIC directamente en el navegador a traves de WebAssembly, sin necesidad de procesamiento del lado del servidor. Los pixeles decodificados se recodifican luego en JPEG o PNG para compatibilidad universal.
Implicaciones practicas
Entender la compresion HEIC explica varios comportamientos practicos.
La calidad HEIC se degrada de forma gradual. Dado que HEVC adapta los tamanos de bloque y la cuantificacion al contenido local, aumentar la compresion afecta primero a los fondos planos y preserva los bordes y texturas por mas tiempo. JPEG se degrada uniformemente, produciendo artefactos de bloques visibles en toda la imagen a ajustes de calidad mas bajos.
Recodificar HEIC a JPEG pierde eficiencia. Convertir una foto HEIC de 1,8 MB a JPEG a calidad visual equivalente produce un archivo de 3,5 MB. El codificador JPEG no puede replicar la estructura de bloques adaptativa de HEVC, la prediccion superior ni la eficiencia de CABAC. La misma informacion visual simplemente requiere mas bytes bajo el algoritmo mas antiguo de JPEG.
Los ciclos sin perdida dentro de HEIC preservan la calidad perfectamente. Decodificar y recodificar un archivo HEIC sin perdida produce una salida identica bit a bit. Esto no es cierto para JPEG, donde cada ciclo de codificacion-decodificacion introduce error de cuantificacion adicional.
Para convertir archivos HEIC a formatos ampliamente compatibles, el conversor de HEIC a JPG de HEICify y el conversor de HEIC a PNG procesan todo localmente en tu navegador. La conversion decodifica los datos comprimidos con HEVC y los recodifica en el formato de salida elegido con control total de calidad.
Preguntas frecuentes
¿Que algoritmo de compresion usa HEIC?
HEIC usa compresion intra-frame HEVC (H.265) con unidades de arbol de codificacion, codificacion por transformada y codificacion aritmetica binaria adaptativa al contexto (CABAC). HEVC fue finalizado en 2013 por ITU-T e ISO/IEC. Aplica solo el subconjunto de codificacion intra-frame para imagenes fijas, usando prediccion espacial dentro de un solo fotograma en lugar de prediccion temporal entre fotogramas de video.
¿Por que los archivos HEIC son mas pequenos que los JPEG?
HEIC logra archivos un 50% mas pequenos gracias a mejoras en cada etapa de compresion. Los bloques de codificacion mas grandes (64x64 vs 8x8) reducen la sobrecarga. Mas modos de prediccion (35 vs 0 en JPEG base) producen residuales mas pequenos. Tamanos de transformada flexibles (4x4 a 32x32 vs fijo 8x8) mejoran la compactacion de energia. La cuantificacion adaptativa asigna bits segun la importancia visual. La codificacion de entropia CABAC comprime el flujo de bits un 5-15% mas que la codificacion Huffman.
¿La compresion HEIC es con perdida o sin perdida?
HEIC admite tanto compresion con perdida como sin perdida. Apple usa compresion con perdida por defecto para las fotos de iPhone, logrando aproximadamente un 50% de reduccion de tamano comparado con JPEG. El modo sin perdida preserva cada valor de pixel exactamente, pero produce archivos 2-3 veces mas grandes que el HEIC con perdida. El HEIC sin perdida sigue siendo un 20-30% mas pequeno que el PNG sin perdida para fotografias gracias a la prediccion y codificacion de entropia superiores de HEVC.
¿La compresion HEIC afecta la calidad de imagen?
A tamanos de archivo equivalentes, HEIC produce una calidad visiblemente mejor que JPEG. Los 35 modos de prediccion intra generan predicciones mas precisas, dejando residuales mas pequenos. La cuantificacion adaptativa preserva la calidad en regiones perceptualmente importantes. El resultado son bordes mas limpios, gradientes mas suaves y menos artefactos de bloques comparado con JPEG a la misma tasa de bits. Con los ajustes de calidad por defecto de Apple, los artefactos de compresion HEIC estan por debajo del umbral de percepcion humana para visualizacion estandar.
Para una vision general mas amplia del formato HEIC, lee ¿Que es el formato HEIC?. Para entender como se relaciona HEIC con su estandar padre, consulta HEIF vs HEIC. Para una comparacion practica de las caracteristicas de HEIC y JPEG, revisa HEIC vs JPG.
Frequently Asked Questions
¿Que algoritmo de compresion usa HEIC?
¿Por que los archivos HEIC son mas pequenos que los JPEG?
¿La compresion HEIC es con perdida o sin perdida?
¿La compresion HEIC afecta la calidad de imagen?
Related Guides
Convertir HEIC a JPG pierde calidad?
Entiende exactamente cuanta calidad se pierde al convertir HEIC a JPG, que causa la perdida, como minimizarla y cuando realmente importa para tus fotos.
HEIC 10 bits vs 8 bits: que significa para las fotos
Aprende la diferencia entre la profundidad de color de 10 bits y 8 bits en archivos HEIC, como afecta la calidad de las fotos y que sucede al convertir a formatos de 8 bits como JPEG.
HEIC vs JPG: Cual formato deberias usar?
Una comparacion detallada de los formatos de imagen HEIC y JPG que abarca compresion, calidad, tamano de archivo, compatibilidad y funciones para ayudarte a elegir el formato adecuado.
HEIF vs HEIC: Cual es la diferencia?
Entiende la relacion entre los formatos de archivo HEIF y HEIC: que significa cada abreviatura, como se relacionan tecnicamente y por que la distincion importa.
Que es el formato HEIC? Todo lo que necesitas saber
Descubre que es HEIC, por que Apple lo utiliza, como se compara con JPG y las formas mas sencillas de abrir o convertir archivos HEIC en cualquier dispositivo.
Ready to Convert Your Images?
Try our free, browser-based converter tools. No uploads required -- your files never leave your device.