Articulo de referencia

Archivo de gráficos progresivos

504746 h ([[ASCII]] PGF)"},"type":{"wt":"[[wavelet]]-based [[Raster graphics|bitmapped]] [[Graphics file format|image format]]"},"released":{"wt":"{{Start date and age|2000}}"},...

PGF ( Progressive Graphics File ) es un formato de imagen de mapa de bits basado en ondículas que emplea compresión de datos con y sin pérdida . PGF se creó para mejorar y reemplazar el formato JPEG . Se desarrolló al mismo tiempo que JPEG 2000 , pero priorizando la velocidad sobre la relación de compresión .

PGF puede operar con índices de compresión más altos sin requerir más tiempo de codificación/descodificación y sin generar los artefactos característicos "bloqueados y borrosos" del estándar JPEG original basado en DCT . [ 2 ] También permite descargas progresivas más sofisticadas .

Modelos de color

PGF admite una amplia variedad de modelos de color:

Discusión técnica

PGF afirma lograr una calidad de compresión superior a la de JPEG, añadiendo o mejorando características como la escalabilidad. Su rendimiento de compresión es similar al del estándar JPEG original. PGF también admite tasas de compresión muy bajas y muy altas (incluida la compresión sin pérdidas ). Una de las fortalezas de PGF es su capacidad para manejar un amplio rango de tasas de bits efectivas. Por ejemplo, para reducir el número de bits de una imagen por debajo de cierto valor, lo recomendable con el estándar JPEG original es reducir la resolución de la imagen de entrada antes de codificarla; algo que normalmente no es necesario para este propósito con PGF debido a sus propiedades de escalabilidad wavelet.

La cadena de procesos del PGF consta de los siguientes cuatro pasos:

  1. Transformación del espacio de color (en el caso de imágenes en color)
  2. Transformada discreta de ondículas
  3. Cuantización (en caso de compresión de datos con pérdida)
  4. Codificación jerárquica de longitud de ejecución de planos de bits

Transformación de los componentes de color

Inicialmente, las imágenes deben transformarse del espacio de color RGB a otro espacio de color, lo que da como resultado tres componentes que se procesan por separado. PGF utiliza una transformación de color YUV modificada totalmente reversible . Las matrices de transformación son:

[YrUrVr]=[141214110011][RGRAMOB];[RGRAMOB]=[134141141411434][YrUrVr]{\displaystyle {\begin{bmatrix}Y_{r}\\U_{r}\\V_{r}\end{bmatrix}}={\begin{bmatrix}{\frac {1}{4}}&{\frac {1}{2}}&{\frac {1}{4}}\\1&-1&0\\0&-1&1\end{bmatrix}}{\begin{bmatrix}R\\G\\B\end{bmatrix}};\qquad \qquad {\begin{bmatrix}R\\G\\B\end{bmatrix}}={\begin{bmatrix}1&{\frac {3}{4}}&-{\frac {1}{4}}\\1&-{\frac {1}{4}}&-{\frac {1}{4}}\\1&-{\frac {1}{4}}&{\frac {3}{4}}\end{bmatrix}}{\begin{bmatrix}Y_{r}\\U_{r}\\V_{r}\end{bmatrix}}}

Los componentes de crominancia pueden, pero no necesariamente tienen que, reducirse en resolución.

transformada wavelet

Los componentes de color se transforman mediante ondículas a una profundidad arbitraria. A diferencia de JPEG 1992, que utiliza una transformada discreta del coseno con un tamaño de bloque de 8x8 , PGF utiliza una transformada de ondículas reversible: una versión redondeada de la transformada de ondículas CDF 5/3 biorthogonal . Este banco de filtros de ondículas es idéntico al utilizado en JPEG 2000. Solo utiliza coeficientes enteros, por lo que la salida no requiere redondeo (cuantización) y, por lo tanto, no introduce ruido de cuantización.

Cuantización

Tras la transformada wavelet, los coeficientes se cuantifican escalarmente para reducir la cantidad de bits necesarios para representarlos, a costa de una pérdida de calidad. El resultado es un conjunto de números enteros que deben codificarse bit a bit. El parámetro que se puede modificar para ajustar la calidad final es el paso de cuantificación: cuanto mayor sea el paso, mayor será la compresión y la pérdida de calidad. Con un paso de cuantificación igual a 1, no se realiza ninguna cuantificación (se utiliza en la compresión sin pérdidas). A diferencia de JPEG 2000, PGF utiliza únicamente potencias de dos; por lo tanto, el valor del parámetro i representa un paso de cuantificación de 2i . El uso exclusivo de potencias de dos elimina la necesidad de operaciones de multiplicación y división de enteros.

Codificación

El resultado del proceso anterior es un conjunto de subbandas que representan diversas escalas de aproximación. Una subbanda es un conjunto de coeficientes —números enteros— que representan aspectos de la imagen asociados a un determinado rango de frecuencias, así como a un área espacial de la misma.

Las subbandas cuantificadas se dividen a su vez en bloques , regiones rectangulares en el dominio de la ondícula. Por lo general, se seleccionan de manera que los coeficientes dentro de ellas a lo largo de las subbandas formen aproximadamente bloques espaciales en el dominio de la imagen (reconstruida) y se recopilan en un macrobloque de tamaño fijo .

El codificador debe codificar los bits de todos los coeficientes cuantificados de un macrobloque, comenzando por los bits más significativos y avanzando hacia los menos significativos. En este proceso de codificación, cada plano de bits del macrobloque se codifica en dos pasadas , primero codificando los bits de los coeficientes significativos y luego refinando los bits de dichos coeficientes. Evidentemente, en modo sin pérdidas, todos los planos de bits deben codificarse y no se puede omitir ninguno.

Solo los coeficientes significativos se comprimen con un codificador adaptativo de longitud de ejecución/Rice (RLR), porque contienen largas secuencias de ceros. El codificador RLR con parámetro k (longitud logarítmica de una secuencia de ceros) también se conoce como el código de Golomb elemental de orden 2k .

Comparación con otros formatos de archivo

  • JPEG 2000 es ligeramente más eficiente en cuanto al uso de espacio al manejar imágenes naturales. El PSNR para la misma relación de compresión es, en promedio, un 3 % mejor que el PSNR de PGF. Tiene una pequeña ventaja en la relación de compresión, pero requiere tiempos de codificación y decodificación más largos. [ 2 ]
  • PNG (Portable Network Graphics) es más eficiente en cuanto al uso de espacio al manejar imágenes con muchos píxeles del mismo color.

Existen varias ventajas autoproclamadas de PGF sobre el estándar JPEG ordinario: [ 2 ]

  • Rendimiento de compresión superior : La calidad de imagen (medida en PSNR ) para la misma relación de compresión es, en promedio, un 3 % mejor que el PSNR de JPEG. A tasas de bits más bajas (por ejemplo, menos de 0,25 bits/píxel para imágenes en escala de grises), PGF tiene una ventaja mucho más significativa sobre ciertos modos de JPEG: los artefactos son menos visibles y prácticamente no hay bloqueo. Las ganancias de compresión con respecto a JPEG se atribuyen al uso de DWT .
  • Representación de resolución múltiple : PGF proporciona una compresión perfecta de múltiples componentes de imagen, con cada componente transportando de 1 a 31 bits por muestra. Con esta función, no es necesario almacenar imágenes de vista previa ( miniaturas ) por separado.
  • Transmisión progresiva según la precisión de la resolución, comúnmente conocida como decodificación progresiva: PGF proporciona una organización eficiente del flujo de código que aumenta progresivamente según la resolución. De esta manera, una vez recibida una pequeña parte del archivo completo, es posible observar una menor calidad en la imagen final, la cual puede mejorarse progresivamente al obtener más datos de la fuente.
  • Compresión sin pérdidas y con pérdidas : PGF ofrece compresión sin pérdidas y con pérdidas en una única arquitectura de compresión. Ambas se logran mediante el uso de una transformada wavelet reversible (entera).
  • Información espacial de canal lateral : la transparencia y los planos alfa son totalmente compatibles.
  • Extracción de ROI : Desde la versión 5, PGF admite la extracción de regiones de interés ( ROI ) sin decodificar la imagen completa.

Software disponible

El autor publicó libPGF a través de SourceForge , bajo la Licencia Pública General Reducida de GNU versión 2.0. [ 1 ] Xeraina ofrece un codificador y decodificador de consola de Windows gratuito , y visores PGF basados ​​en WIC para plataformas Windows de 32 y 64 bits. Otras aplicaciones WIC, incluido el Explorador de archivos, pueden mostrar imágenes PGF después de instalar este visor. [ 3 ]

Digikam es un popular software de edición y catalogación de imágenes de código abierto que utiliza libPGF para sus miniaturas. Aprovecha la función de decodificación progresiva de las imágenes PGF para almacenar una única versión de cada miniatura, que luego se puede decodificar a diferentes resoluciones sin pérdida de calidad, lo que permite a los usuarios cambiar dinámicamente el tamaño de las miniaturas sin tener que recalcularlas.

Véase también

Extensión de archivo

La extensión de archivo .pgfy el archivo TLA PGF también se utilizan para fines no relacionados:

Referencias

  1. 1 2 Christoph Stamm (2015). "PGF libPGF.org" . Proyecto SourceForge . Recuperado el 14 de septiembre de 2015 .
  2. 1 2 3 Stamm, Christoph (2002). "PGF : un nuevo formato de archivo progresivo para compresión de imágenes con y sin pérdidas" (PDF) . Archivado (PDF) del original el 7 de marzo de 2007. Recuperado el 12 de abril de 2023 .
  3. "Descarga de PGF" . xeraina. 2013. Consultado el 12 de abril de 2023 .