thumb|upright|Demostración de arriba hacia abajo de la compresión JPEG 2000. Los números indican la relación de compresión utilizada. JPEG 2000 es un estándar de compresión y codificación digital de imágenes. Fue creado por el Joint Photographic Experts Group (Grupo Conjunto de Expertos en Fotografía o JPEG), en el año 2000 con la intención de sustituir el formato original creado en 1992. El nuevo formato se basa en la transformada wavelet, en lugar de la transformada de coseno discreta establecida para el estándar original. La extensión de los archivos en formato JPEG 2000 es .jp2.
JPEG 2000 puede trabajar con niveles de compresión mayores que los de JPEG sin incurrir en los principales defectos del formato anterior con altas tasas de compresión: generación de bloques uniformes y aspecto borroso. También se adapta mejor a la carga progresiva de las imágenes. Sus principales desventajas están en que tiende a emborronar más la imagen que JPEG, incluso para un mismo tamaño de archivo (pero sin formar bloques), y que elimina algunos detalles pequeños y texturas, que el formato JPEG normal sí llega a representar.
Una ventaja de JPEG2000 es la posibilidad de poder seleccionar un "área de interés", evitando transmitir detalles de toda la extensión de la imagen. Esto quiere decir que el usuario encuadra la zona que desea visualizar con más detalle, con el consecuente ahorro en el ancho de banda de transmisión, dejando con menos detalles la zona que no interesa. Sin embargo, como consecuencia de esta flexibilidad, JPEG 2000 requiere codificadores / decodificadores más complejos y exigentes computacionalmente.
Parte de JPEG 2000 ha sido publicada como una norma ISO, ISO/IEC 15444-1:2000. Actualmente JPEG 2000 no está ampliamente admitido por los programas de visualización de páginas web. En algunos navegadores, los diseñadores no tienen intención de incluirlo debido a su escaso uso y gran número de patentes que tiene. De todas formas, existen muchas extensiones que dan soporte, que opcionalmente pueden ser instaladas por el usuario. Un navegador con soporte para este formato es Konqueror.
Características thumb|300px|Comparación del JPEG 2000 con el formato JPEG Original
Rendimiento superior de compresión: A altas tasas de bits, JPEG-2000 dispone de una pequeña ventaja de fidelidad sobre JPEG. A tasas de bits más bajas (por ejemplo, menos de 0,25 bits/pixel para imágenes en escala de grises), JPEG 2000 tiene una ventaja mucho más significativa que determinados modos de JPEG. Las ganancias de compresión JPEG se atribuyen al uso de la transformada wavelet discreta y a un sistema más sofisticado de codificación de la entropía.
Representación de resolución múltiple: JPEG 2000 descompone la imagen en una representación de resolución múltiple durante el proceso de compresión. Esta descomposición puede emplearse para otros propósitos más allá de la compresión de la imagen.
Transmisión progresiva de precisión por píxel y resolución, comúnmente llamada decodificación progresiva: JPEG 2000 proporciona organizaciones de flujos de datos eficientes, que son progresivos por precisión de píxel y resolución de imagen (o por tamaño de imagen). De esta manera, el espectador puede ver una versión de menor calidad de la imagen final, aún antes de que el contenido completo del archivo haya sido recibido. Según progresa la descarga del archivo, la calidad visual va mejorando progresivamente. El estándar JPEG 1992 también tiene una característica de transmisión progresiva pero es raramente utilizada.
Compresión sin pérdidas y con pérdidas: Al igual que JPEG 1992, el estándar JPEG 2000 dispone de una única arquitectura de compresión que ofrece ambas alternativas. La compresión sin pérdida en JPEG 2000 se basa en el uso de una transformada wavelet entero-a-entero reversible.
Acceso y procesamiento aleatorio del flujo de código, referido a la región de interés (ROI): Los flujos de código del JPEG 2000 ofrecen diversos mecanismos de acceso espacial aleatorio o a regiones de interés, con varios grados de granularidad. De esta manera es posible almacenar diferentes partes de la misma imagen con diferente calidad.
Capacidad de recuperación de errores: Al igual que JPEG 1992, JPEG 2000 es robusto a errores, debido a la codificación de datos en bloques independientes relativamente pequeños.
Formato de archivo flexible: Los formatos de archivo .jp2 y .jpx permiten manipular la información del espacio de color y los metadatos, además de facilitar la interoperabilidad en aplicaciones de red.
Canal de información espacial adicional: permite almacenar los valores de transparencia o del canal alfa.
JPEG 2000: sistema de codificación de la imagen – Partes +PartePrimera publicaciónÚltima publicaciónÚltima modificaciónEstándar ITU-TTítuloDescripciónISO/IEC 15444-1200020042006T.800Sistema de codificación del núcleoCaracterísticas básicas de la compresión JPEG 2000 (.jp2)ISO/IEC 15444-2200420042006T.801Extensiones.jpx, .mcpISO/IEC 15444-320022007T.802Motion JPEG 2000.mj2ISO/IEC 15444-420022004T.803Pruebas de conformidadISO/IEC 15444-5200320032003T.804Referencia de softwareImplementación (Java y C)ISO/IEC 15444-6200320032007Formato de archivo de imagen compuesta.jpm, por ejemplo, imágenes de documentos para preimpresiónISO/IEC 15444-7 (Abandonado)Orientación de la función de apoyo mínimo de la norma ISO/IEC 15444-1Informe técnico sobre funciones de apoyoISO/IEC 15444-8200720072008T.807Seguridad del JPEG 2000JPSEC (aspectos de seguridad)ISO/IEC 15444-9200520052008T.808Herramientas de interacción, APIs y protocolosJPIP (interacción y protocolos API)ISO/IEC 15444-10200820082008T.809Extensiones de los datos en tres dimensionesJP3D (imágenes volumétricas)ISO/IEC 15444-1120072007T.810WirelessJPWL (aplicaciones wireless)ISO/IEC 15444-1220042008Base del formato de archivo multimedia ISOISO/IEC 15444-1320082008T.812Nivel de entrada de codificador JPEG 2000ISO/IEC 15444-14 (en desarrollo)XML estructurales, representación y referenciaJPXML
Las discusiones técnicas
El objetivo de JPEG 2000 es no sólo mejorar el rendimiento de compresión JPEG, sino también añadir (o mejorar) las características tales como la escalabilidad y la capacidad de edición. Tanto las tasas de compresión muy baja y muy alta son compatibles con JPEG 2000. De hecho, la capacidad del diseño para manejar una gama muy grande de las tasas de bits es uno de los puntos fuertes de JPEG 2000. Por ejemplo, para reducir el número de bits para una imagen debajo de cierta cantidad, lo recomendable que ver con el primer estándar JPEG es reducir la resolución de la imagen de entrada antes de codificarlo. Eso es innecesario cuando se utiliza JPEG 2000, porque ya lo hace automáticamente a través de su estructura de descomposición multirresolución. En las secciones siguientes se describe el algoritmo de JPEG 2000.
Los componentes: Transformación del color
Inicialmente, las imágenes tienen que ser transformadas a partir del RGB del espacio de color a otro espacio de color, dando lugar a tres componentes que se manejan por separado. Hay dos opciones posibles: Transformación de color irreversible (TIC): utiliza el conocido espacio de color YCBCR. Se llama "irreversible" porque tiene que ser aplicado sobre valores en coma flotante y provoca errores de redondeo. Transformación de color reversible (ECA): utiliza una versión modificada del espacio de color YUV que no introduce errores de cuantificación, por lo que es totalmente reversible. La aplicación adecuada de la ECA requiere que los números se redondeen según se especifica. La transformación es:
La crominancia de componentes puede estar por debajo de las escalas de resolución, de hecho, ya que la transformación wavelet ya separa las imágenes en las escalas, la disminución de resolución es más efectiva. Este paso se llama la transformación de múltiples componentes en el lenguaje JPEG 2000 (el cual, desde su uso, no se limita a la modelo de color RGB).
División en bloques (Tiling)
Después de la transformación del color, la imagen se divide en los llamados cuadros, regiones rectangulares de la imagen que se transforman y se codifican por separado. Pueden ser de cualquier tamaño, y también es posible considerar la imagen completa como un solo recuadro. Una vez que se elige un tamaño, todos los recuadros en que se divide la imagen deben tener el mismo tamaño (salvo, opcionalmente, los de las fronteras derecha e inferior). Dividir la imagen en bloques tiene la ventaja de que el decodificador necesitará menos memoria para decodificar la imagen y se puede optar por decodificar sólo cuadros seleccionados para lograr una decodificación parcial de la imagen. La desventaja de este enfoque es que la calidad de la imagen disminuye. El uso de muchos cuadros puede crear un efecto de bloqueo similar al del estándar original JPEG 1992.
Transformada Wavelet
thumb|right|Wavelet CDF 5/3 usada para compresión sin pérdidas. thumb|256px|Ejemplo de la transformada wavelet usado en JPEG 2000.
Luego estos cuadros son transformados a una profundidad arbitraria, a diferencia de JPEG 1992, que utiliza un bloque de tamaño 8 × 8 (transformada discreta del coseno). JPEG 2000 utiliza dos transformaciones wavelet diferentes:
Irreversible: la transformada wavelet CDF 9/7 . Se dice que es "irreversible" porque introduce ruido de cuantificación que depende de la precisión del decodificador. Reversible: una versión redondeada de la transformada wavelet biortogonal CDF 5/3. Utiliza solamente coeficientes enteros, por lo que la salida no requiere redondeo (cuantificación) y no se genera ningún ruido de cuantificación. Se utiliza en la codificación sin pérdidas.
La transformada Wavelet es ejecutada por el régimen de elevación o por convolución.
Cuantificación
Después de la transformada wavelet, los coeficientes son escalares cuantificados para reducir la cantidad de bits para que los represente, a expensas de una pérdida de calidad. El resultado es un conjunto de números enteros que tienen que ser codificados bit a bit. El parámetro que se puede cambiar para establecer la calidad final es el paso de cuantificación: cuanto mayor es el paso, mayor es la compresión y la pérdida de calidad. Con un paso de cuantificación que es igual a 1, no se realiza la cuantización (se utiliza en la compresión sin pérdida).
Codificación
El resultado del proceso anterior es una colección de sub-bandas que representan a diversas escalas de aproximación. Una sub-banda es un conjunto de coeficientes - números reales que representan los aspectos de la imagen asociada a un rango de frecuencias determinadas, así como un ámbito espacial de la imagen.
Las sub-bandas cuantizadas se dividen aún más en precintos, regiones rectangulares en el dominio wavelet. A su vez, los precintos se dividen aún más en los bloques de código. Los bloques de código se encuentran en un subgrupo de una sola banda con tamaños iguales - excepto los situados en los bordes de la imagen. El codificador tiene que codificar los bits de todos los coeficientes cuantizados de un bloque de código, empezando por los bits más significativos y progresando a bits menos significativos en un proceso de régimen de EBCOT (codificación en bloque con truncamiento óptimo). En este proceso de codificación, cada plano de bits del bloque de código se codifican en tres pases de codificación llamado-tan, en primer lugar los bits de codificación (y signos) de los coeficientes insignificantes con los vecinos importantes, entonces se pasa al refinamiento de bits con coeficientes significativos y, por último, sin coeficientes de vecinos importantes. Los tres pasos son llamados propagación Importancia, Magnitud y refinamiento pase de limpieza, respectivamente.