JPEG 2000 ( JP2 ) es un estándar de compresión y sistema de codificación de imágenes. Fue desarrollado entre 1997 y 2000 por un comité del Grupo Conjunto de Expertos en Fotografía presidido por Touradj Ebrahimi (más tarde presidente de JPEG), [1] con la intención de reemplazar su estándar JPEG original (creado en 1992), que se basa en un coseno discreto. transformada (DCT), con un método basado en wavelets de nuevo diseño . La extensión de nombre de archivo estandarizada es .jp2 para archivos conformes a ISO / IEC 15444-1 y .jpx para las especificaciones extendidas de la parte 2, publicadas como ISO/IEC 15444-2. Los tipos MIME registrados se definen en RFC 3745. Para ISO/IEC 15444-1 es image/jp2 .
El proyecto JPEG 2000 fue motivado por la presentación por Ricoh en 1995 del algoritmo CREW ( Compresión con ondas integradas reversibles ) [2] [3] al esfuerzo de estandarización de JPEG-LS . Al final, se seleccionó el algoritmo LOCO-I como base para JPEG-LS , pero muchas de las características de CREW terminaron en el estándar JPEG 2000. [4]
Los trenes codificados JPEG 2000 son regiones de interés que ofrecen varios mecanismos para soportar el acceso aleatorio espacial o el acceso a regiones de interés con distintos grados de granularidad. Es posible almacenar diferentes partes de la misma imagen con diferente calidad.
JPEG 2000 es un estándar de compresión basado en una transformada wavelet discreta (DWT). El estándar podría adaptarse para la compresión de vídeo de imágenes en movimiento con la extensión Motion JPEG 2000 . La tecnología JPEG 2000 se seleccionó como estándar de codificación de video para cine digital en 2004. [5] Sin embargo, JPEG 2000 todavía no es ampliamente compatible con navegadores web (aparte de Safari ) a partir de 2022 [actualizar]y, por lo tanto, generalmente no se usa en todo el mundo. Web .
Si bien hay un modesto aumento en el rendimiento de compresión de JPEG 2000 en comparación con JPEG, la principal ventaja que ofrece JPEG 2000 es la importante flexibilidad del tren codificado. El tren codificado obtenido después de la compresión de una imagen con JPEG 2000 es de naturaleza escalable, lo que significa que puede decodificarse de varias maneras; por ejemplo, truncando el flujo codificado en cualquier punto, se puede obtener una representación de la imagen con una resolución o relación señal-ruido más baja (véase compresión escalable ). Al ordenar el tren codificado de diversas maneras, las aplicaciones pueden lograr aumentos significativos del rendimiento. Sin embargo, como consecuencia de esta flexibilidad, JPEG 2000 requiere códecs que son complejos y exigentes desde el punto de vista computacional. Otra diferencia, en comparación con JPEG, está en términos de artefactos visuales : JPEG 2000 sólo produce artefactos de timbre , que se manifiestan como desenfoque y anillos cerca de los bordes de la imagen, mientras que JPEG produce artefactos de timbre y artefactos de "bloqueo", debido a su resolución 8×. 8 cuadras .
JPEG 2000 se ha publicado como estándar ISO , ISO/IEC 15444. El costo de obtener todos los documentos para el estándar se ha estimado en 2718 CHF ( 2720 dólares estadounidenses en 2015). [6]
Los mercados y aplicaciones notables destinados a ser cubiertos por el estándar incluyen:
JPEG 2000 descompone la imagen en una representación de resolución múltiple durante el proceso de compresión. Esta representación piramidal se puede utilizar para otros fines de presentación de imágenes más allá de la compresión.
Estas características se conocen más comúnmente como decodificación progresiva y escalabilidad de relación señal-ruido (SNR) . JPEG 2000 proporciona organizaciones eficientes de trenes codificados que son progresivos según la precisión de los píxeles y la resolución de la imagen (o el tamaño de la imagen). De esta manera, después de recibir una parte más pequeña del archivo completo, el espectador puede ver una versión de menor calidad de la imagen final. Luego, la calidad mejora progresivamente mediante la descarga de más bits de datos de la fuente.
Al igual que el estándar Lossless JPEG , [8] el estándar JPEG 2000 proporciona compresión sin y con pérdida en una única arquitectura de compresión. La compresión sin pérdidas se proporciona mediante el uso de una transformada wavelet entera reversible en JPEG 2000.
Al igual que JPEG 1992, JPEG 2000 es resistente a los errores de bits introducidos por canales de comunicación ruidosos, debido a la codificación de datos en bloques independientes relativamente pequeños.
Los formatos de archivo JP2 y JPX permiten el manejo de información del espacio de color, metadatos y la interactividad en aplicaciones en red según lo desarrollado en el protocolo JPIP JPEG Parte 9.
JPEG 2000 admite profundidades de bits de 1 a 38 bits por componente. Los espacios de color admitidos incluyen monocromo, 3 tipos de YCbCr, sRGB, PhotoYCC , CMY(K), YCCK y CIELab. Posteriormente también agregó soporte para CIEJab ( CIECAM02 ), e-sRGB, ROMM, YPbPr y otros. [9]
Soporte completo para transparencia y planos alfa. [ cita necesaria ]
El sistema de codificación de imágenes JPEG 2000 (ISO/IEC 15444) consta de las siguientes partes:
El objetivo de JPEG 2000 no es sólo mejorar el rendimiento de compresión sobre JPEG sino también agregar (o mejorar) características como escalabilidad y editabilidad. La mejora de JPEG 2000 en el rendimiento de compresión en relación con el estándar JPEG original es en realidad bastante modesta y normalmente no debería ser la consideración principal para evaluar el diseño. JPEG 2000 admite velocidades de compresión muy bajas y muy altas. La capacidad del diseño para manejar una gama muy amplia de velocidades de bits efectivas es uno de los puntos fuertes de JPEG 2000. Por ejemplo, para reducir el número de bits de una imagen a continuación En cierta medida, lo recomendable con el primer estándar JPEG es reducir la resolución de la imagen de entrada antes de codificarla. Esto es innecesario cuando se utiliza JPEG 2000, porque JPEG 2000 ya lo hace automáticamente a través de su estructura de descomposición de múltiples resoluciones. Las siguientes secciones describen el algoritmo de JPEG 2000.
Según la Biblioteca Real de los Países Bajos , "la especificación actual del formato JP2 deja espacio para múltiples interpretaciones cuando se trata del soporte de perfiles ICC y el manejo de información de resolución de red". [29]
Inicialmente, las imágenes deben transformarse del espacio de color RGB a otro espacio de color, lo que lleva a tres componentes que se manejan por separado. Hay dos opciones posibles:
Si R, G y B están normalizados con la misma precisión, entonces la precisión numérica de C B y CR es un bit mayor que la precisión de los componentes originales. Este aumento de precisión es necesario para garantizar la reversibilidad. Los componentes de crominancia pueden reducirse en resolución, aunque no necesariamente tienen que reducirse; de hecho, dado que la transformación wavelet ya separa las imágenes en escalas, la reducción de resolución se maneja de manera más efectiva eliminando la escala wavelet más fina. Este paso se denomina transformación de múltiples componentes en el lenguaje JPEG 2000 ya que su uso no se limita al modelo de color RGB . [30]
Después de la transformación del color, la imagen se divide en los llamados mosaicos , regiones rectangulares de la imagen que se transforman y codifican por separado. Los mosaicos pueden ser de cualquier tamaño y también es posible considerar la imagen completa como un solo mosaico. Una vez elegido el tamaño, todos los mosaicos tendrán el mismo tamaño (excepto opcionalmente los de los bordes derecho e inferior). Dividir la imagen en mosaicos es ventajoso porque el decodificador necesitará menos memoria para decodificar la imagen y puede optar por decodificar sólo mosaicos seleccionados para lograr una decodificación parcial de la imagen. La desventaja de este enfoque es que la calidad de la imagen disminuye debido a una relación señal-ruido máxima más baja . El uso de muchos mosaicos puede crear un efecto de bloqueo similar al antiguo estándar JPEG 1992.
Luego, estos mosaicos se transforman en ondas a una profundidad arbitraria, en contraste con JPEG 1992, que utiliza una transformación de coseno discreta de tamaño de bloque de 8 × 8 . JPEG 2000 utiliza dos transformaciones wavelet diferentes :
Las transformadas wavelet se implementan mediante el esquema de elevación o mediante convolución .
Después de la transformada wavelet, los coeficientes se cuantifican escalarmente para reducir el número de bits para representarlos, a expensas de la calidad. La salida es un conjunto de números enteros que deben codificarse bit a bit. El parámetro que se puede cambiar para fijar la calidad final es el paso de cuantización: cuanto mayor es el paso, mayor es la compresión y la pérdida de calidad. Con un paso de cuantización igual a 1, no se realiza ninguna cuantización (se utiliza en compresión sin pérdidas).
El resultado del proceso anterior es una colección de subbandas que representan varias escalas de aproximación. Una subbanda es un conjunto de coeficientes : números reales que representan aspectos de la imagen asociados con un determinado rango de frecuencia, así como un área espacial de la imagen.
Las subbandas cuantificadas se dividen en recintos , regiones rectangulares en el dominio wavelet. Por lo general, tienen un tamaño que proporciona una forma eficiente de acceder solo a una parte de la imagen (reconstruida), aunque esto no es un requisito.
Los recintos se dividen aún más en bloques de código . Los bloques de código están en una única subbanda y tienen tamaños iguales, excepto los ubicados en los bordes de la imagen. El codificador tiene que codificar los bits de todos los coeficientes cuantificados de un bloque de código, comenzando con los bits más significativos y avanzando hacia los bits menos significativos mediante un proceso llamado esquema EBCOT . EBCOT aquí significa codificación de bloques integrada con truncamiento óptimo . En este proceso de codificación, cada plano de bits del bloque de código se codifica en tres pases de codificación , primero codificando bits (y signos) de coeficientes insignificantes con vecinos significativos (es decir, con bits 1 en planos de bits superiores), luego se refina. bits de coeficientes significativos y finalmente coeficientes sin vecinos significativos. Los tres pases se denominan paso de propagación de importancia , refinamiento de magnitud y limpieza , respectivamente.
En el modo sin pérdidas, todos los planos de bits deben estar codificados por el EBCOT y no se puede descartar ningún plano de bits.
Los bits seleccionados mediante estos pases de codificación luego se codifican mediante un codificador aritmético binario basado en el contexto , es decir, el codificador binario MQ (como también lo emplea JBIG2 ). El contexto de un coeficiente está formado por el estado de sus ocho vecinos en el bloque de código.
El resultado es un flujo de bits que se divide en paquetes donde un paquete agrupa pases seleccionados de todos los bloques de código de un recinto en una unidad indivisible. Los paquetes son la clave para la escalabilidad de la calidad (es decir, los paquetes que contienen bits menos significativos pueden descartarse para lograr velocidades de bits más bajas y una mayor distorsión).
A continuación, los paquetes de todas las subbandas se agrupan en las denominadas capas . La forma en que se construyen los paquetes a partir de las pasadas de codificación de bloques de código y, por lo tanto, qué paquetes contendrá una capa, no está definida en el estándar JPEG 2000, pero en general un códec intentará construir capas de tal manera que la imagen la calidad aumentará monótonamente con cada capa y la distorsión de la imagen se reducirá de una capa a otra. Así, las capas definen la progresión por calidad de imagen dentro del tren codificado.
El problema ahora es encontrar la longitud de paquete óptima para todos los bloques de código que minimice la distorsión general de manera que la tasa de bits objetivo generada sea igual a la tasa de bits demandada.
Si bien el estándar no define un procedimiento sobre cómo realizar esta forma de optimización de la tasa de distorsión , el esquema general se proporciona en uno de sus muchos apéndices: Por cada bit codificado por el codificador EBCOT, la mejora en la calidad de la imagen, definida como error cuadrático medio, se mide; esto se puede implementar mediante un sencillo algoritmo de búsqueda de tablas. Además, se mide la longitud del tren codificado resultante. Esto forma para cada bloque de código un gráfico en el plano de distorsión de velocidad, lo que brinda calidad de imagen a lo largo de la longitud del flujo de bits. La selección óptima para los puntos de truncamiento, y por lo tanto para los puntos de acumulación de paquetes, se obtiene definiendo las pendientes críticas de estas curvas y seleccionando todos aquellos pasos de codificación cuya curva en el gráfico de velocidad-distorsión sea más pronunciada que la pendiente crítica dada. Este método puede verse como una aplicación especial del método del multiplicador de Lagrange que se utiliza para problemas de optimización bajo restricciones. El multiplicador de Lagrange , normalmente denotado por λ, resulta ser la pendiente crítica, la restricción es la tasa de bits objetivo demandada y el valor a optimizar es la distorsión general.
Los paquetes se pueden reordenar casi arbitrariamente en el flujo de bits JPEG 2000; esto proporciona al codificador y a los servidores de imágenes un alto grado de libertad.
Las imágenes ya codificadas se pueden enviar a través de redes con velocidades de bits arbitrarias mediante el uso de un orden de codificación progresivo de capas. Por otro lado, los componentes de color pueden retroceder en el flujo de bits; Las resoluciones más bajas (correspondientes a subbandas de baja frecuencia) podrían enviarse primero para la vista previa de la imagen. Finalmente, la navegación espacial de imágenes grandes es posible mediante la selección adecuada de mosaicos o particiones. Todas estas operaciones no requieren ninguna recodificación, sino solo operaciones de copia por bytes. [ cita necesaria ]
En comparación con el estándar JPEG anterior, JPEG 2000 ofrece una ganancia de compresión típica del orden del 20%, dependiendo de las características de la imagen. Las imágenes de mayor resolución tienden a beneficiarse más, donde la predicción de redundancia espacial de JPEG 2000 puede contribuir más al proceso de compresión. En aplicaciones de muy baja tasa de bits, los estudios han demostrado que JPEG 2000 es superado [35] por el modo de codificación intracuadro de H.264.
JPEG 2000 es mucho más complicado en términos de complejidad computacional en comparación con el estándar JPEG. El mosaico, la transformación de componentes de color, la transformación de ondas discretas y la cuantificación se pueden realizar con bastante rapidez, aunque el códec de entropía requiere mucho tiempo y es bastante complicado. El modelado de contexto EBCOT y el codificador aritmético MQ toman la mayor parte del tiempo del códec JPEG 2000.
En la CPU, la idea principal de obtener codificación y decodificación JPEG 2000 rápida está estrechamente relacionada con AVX/SSE y subprocesos múltiples para procesar cada mosaico en un subproceso separado. Las soluciones JPEG 2000 más rápidas utilizan potencia de CPU y GPU para obtener puntos de referencia de alto rendimiento. [36] [37]
Al igual que JPEG-1, JPEG 2000 define tanto un formato de archivo como un flujo codificado. Mientras que JPEG 2000 describe completamente las muestras de imágenes, JPEG-1 incluye metainformación adicional, como la resolución de la imagen o el espacio de color que se ha utilizado para codificar la imagen. Las imágenes JPEG 2000, si se almacenan como archivos, deben estar empaquetadas en el formato de archivo JPEG 2000, donde obtienen la extensión .jp2 . La extensión parte 2 de JPEG 2000 (ISO/IEC 15444-2) enriquece el formato de archivo al incluir mecanismos para la animación o composición de varios flujos codificados en una sola imagen. Este formato de archivo extendido se llama JPX y debe usar la extensión de archivo .jpf , [38] aunque también se usa .jpx . [39]
No existe una extensión estandarizada para los datos del tren codificado porque, en primer lugar, no se debe considerar que los datos del tren codificado estén almacenados en archivos, aunque cuando se hacen con fines de prueba, se usa comúnmente la extensión .jpc , .j2k o .j2c .
Para JPEG tradicional, los metadatos adicionales , por ejemplo, condiciones de iluminación y exposición, se guardan en un marcador de aplicación en el formato Exif especificado por JEITA. JPEG 2000 elige una ruta diferente, codificando los mismos metadatos en formato XML . La referencia entre las etiquetas Exif y los elementos XML está estandarizada por el comité ISO TC42 en la norma 12234-1.4.
La plataforma de metadatos extensible también se puede incrustar en JPEG 2000.
ISO 15444 está cubierta por patentes y la especificación enumera 17 titulares de patentes, pero las empresas y organizaciones contribuyentes acordaron que las licencias para su primera parte (el sistema de codificación central) se pueden obtener de todos los contribuyentes de forma gratuita. Pero esta no es una garantía formal. [40] [41] Es posible que se requieran licencias y regalías para utilizar algunas extensiones. [42] [43]
El comité JPEG ha declarado:
Siempre ha sido un objetivo firme del comité JPEG que sus estándares sean implementables en su forma básica sin el pago de regalías ni derechos de licencia... El prometedor estándar JPEG 2000 se ha preparado siguiendo estos lineamientos y se ha llegado a un acuerdo con más de 20 grandes organizaciones que poseen muchas patentes en esta área permiten el uso de su propiedad intelectual en relación con el estándar sin pagar derechos de licencia o regalías. [44]
Sin embargo, el comité JPEG reconoció en 2004 que las patentes submarinas no declaradas pueden presentar un peligro: [ ¿ importancia? ]
Por supuesto, todavía es posible que otras organizaciones o individuos puedan reclamar derechos de propiedad intelectual que afecten la implementación de la norma, y se insta a los implementadores a llevar a cabo sus propias búsquedas e investigaciones en esta área. [45]
En ISO/IEC 15444-1:2016, el comité JPEG declaró en el "Anexo L: Declaración de patente":
La Organización Internacional de Normalización (ISO) y la Comisión Electrotécnica Internacional (IEC) llaman la atención sobre el hecho de que se afirma que el cumplimiento de esta Recomendación | Norma Internacional puede implicar el uso de patentes.
La lista completa de declaraciones de derechos de propiedad intelectual se puede obtener en las bases de datos de declaraciones de patentes de ITU-T e ISO (disponibles en https://www.iso.org/iso-standards-and-patents.html)
ISO e IEC no adoptan ninguna posición respecto de la evidencia, la validez y el alcance de estos derechos de patente.
Se llama la atención sobre la posibilidad de que algunos de los elementos de esta Recomendación | Norma Internacional puede ser objeto de derechos de patente distintos de los identificados en las bases de datos antes mencionadas. ISO e IEC no serán responsables de identificar cualquiera o todos estos derechos de patente.
Existen varias partes adicionales del estándar JPEG 2000; entre ellos se encuentran ISO/IEC 15444-2:2000, extensiones JPEG 2000 que definen el formato de archivo .jpx , presentando, por ejemplo , cuantificación Trellis , un formato de archivo extendido y espacios de color adicionales , [46] ISO/IEC 15444-4:2000, la pruebas de referencia e ISO/IEC 15444-6:2000, el formato de archivo de imagen compuesto ( .jpm ), que permite la compresión de texto compuesto/gráficos de imagen. [47]
Extensiones para transferencia segura de imágenes, JPSEC (ISO/IEC 15444-8), esquemas mejorados de corrección de errores para aplicaciones inalámbricas, JPWL (ISO/IEC 15444-11) y extensiones para codificación de imágenes volumétricas, JP3D (ISO/IEC 15444-10 ) también están disponibles en la ISO.
En 2005, se publicó como ISO/IEC 15444-9 un protocolo de exploración de imágenes basado en JPEG 2000, llamado JPIP . [48] En este marco, sólo se deben transmitir regiones seleccionadas de imágenes potencialmente enormes desde un servidor de imágenes a petición de un cliente, reduciendo así el ancho de banda requerido.
Los datos JPEG 2000 también se pueden transmitir utilizando los protocolos ECWP y ECWPS que se encuentran en ERDAS ECW /JP2 SDK.
Motion JPEG 2000 (MJ2), definido originalmente en la Parte 3 de la norma ISO para JPEG2000 (ISO/IEC 15444-3:2002) como un documento independiente, ahora ha sido expresado por ISO/IEC 15444-3:2002/Amd. 2:2003 en términos del formato ISO Base, ISO/IEC 15444-12 y en la Recomendación UIT-T T.802. [49] Especifica el uso del formato JPEG 2000 para secuencias cronometradas de imágenes (secuencias en movimiento), posiblemente combinadas con audio, y compuestas en una presentación global. [50] [51] También define un formato de archivo, [52] basado en el formato de archivo multimedia base ISO (ISO 15444-12). Las extensiones de nombre de archivo para archivos de vídeo Motion JPEG 2000 son .mj2 y .mjp2 según RFC 3745.
Es un estándar ISO abierto y una actualización avanzada de MJPEG (o MJ), que se basó en el formato JPEG heredado . A diferencia de los formatos de vídeo comunes, como MPEG-4 Part 2 , WMV y H.264 , MJ2 no emplea compresión temporal o entre cuadros. En cambio, cada cuadro es una entidad independiente codificada mediante una variante con o sin pérdidas de JPEG 2000. Su estructura física no depende del orden temporal, pero emplea un perfil separado para complementar los datos. Para audio, admite codificación LPCM , así como varias variantes de MPEG-4, como datos "sin procesar" o complementarios. [53]
Motion JPEG 2000 (a menudo denominado MJ2 o MJP2) es considerado un formato de archivo digital [54] por la Biblioteca del Congreso, aunque el LOC Packard Campus para audiovisuales prefiere MXF_OP1a_JP2_LL (JPEG 2000 sin pérdidas envuelto en el patrón operativo MXF 1a). Conservación.
ISO/IEC 15444-12 es idéntico a ISO/IEC 14496-12 (MPEG-4 Parte 12) y define el formato de archivo multimedia base ISO . Por ejemplo, el formato de archivo Motion JPEG 2000, el formato de archivo MP4 o el formato de archivo 3GP también se basan en este formato de archivo multimedia base ISO. [55] [56] [57] [58] [59]
El Open Geospatial Consortium (OGC) ha definido un estándar de metadatos para georreferenciar imágenes JPEG 2000 con XML incrustado utilizando el formato Geography Markup Language (GML): GML in JPEG 2000 for Geographic Imagery Encoding (GMLJP2) , versión 1.0.0, con fecha 2006- 01-18. [60] La versión 2.0, titulada GML en JPEG 2000 (GMLJP2) Estándar de codificación Parte 1: Núcleo fue aprobada el 30 de junio de 2014. [60]
Los archivos JP2 y JPX que contienen marcado GMLJP2 se pueden ubicar y mostrar en la posición correcta en la superficie de la Tierra mediante un Sistema de Información Geográfica (SIG) adecuado, de manera similar a las imágenes GeoTIFF y GTG.
{{cite web}}
: Mantenimiento CS1: nombres numéricos: lista de autores ( enlace ){{cite journal}}
: Citar diario requiere |journal=
( ayuda ){{cite journal}}
: Citar diario requiere |journal=
( ayuda )