JPEG ( / ˈ dʒ eɪ p ɛ ɡ / JAY -peg , abreviatura de Joint Photographic Experts Group y a veces denominado retroactivamente JPEG 1 ) [ 2 ] [ 3 ] es un método comúnmente utilizado de compresión con pérdida para imágenes digitales , particularmente para aquellas producidas por fotografía digital . El grado de compresión se puede ajustar, lo que permite un equilibrio seleccionable entre el tamaño de almacenamiento y la calidad de la imagen . JPEG generalmente logra una compresión de 10:1 con una pérdida en la calidad de la imagen que, si bien es perceptible, es ampliamente aceptada como aceptable. [ 4 ] Desde su introducción en 1992, JPEG ha sido el estándar de compresión de imágenes más utilizado en el mundo, [ 5 ] [ 6 ] y el formato de imagen digital más utilizado , con varios miles de millones de imágenes JPEG producidas cada día a partir de 2015. [ 7 ]
El Grupo Conjunto de Expertos en Fotografía creó el estándar en 1992, [ 8 ] basado en el algoritmo de la transformada discreta del coseno (DCT). [ 9 ] [ 10 ] JPEG fue en gran parte responsable de la proliferación de imágenes y fotos digitales en Internet y posteriormente en las redes sociales . [ 11 ] La compresión JPEG se utiliza en varios formatos de archivo de imagen . JPEG/ Exif es el formato de imagen más común utilizado por las cámaras digitales y otros dispositivos de captura de imágenes fotográficas; junto con JPEG/ JFIF , es el formato más común para almacenar y transmitir imágenes fotográficas en la World Wide Web . [ 12 ] Estas variaciones de formato a menudo no se distinguen y simplemente se denominan JPEG.
El tipo de medio MIME para JPEG es "image/jpeg", excepto en versiones antiguas de Internet Explorer , que proporcionan un tipo MIME de "image/pjpeg" al cargar imágenes JPEG. [ 13 ] Los archivos JPEG suelen tener una extensión de archivo "jpg" o "jpeg". JPEG/JFIF admite un tamaño máximo de imagen de 65.535 × 65.535 píxeles, [ 14 ] por lo tanto, hasta 4 gigapíxeles para una relación de aspecto de 1:1. En 2000, el grupo JPEG introdujo un formato destinado a ser un sucesor, JPEG 2000 , pero no pudo reemplazar al JPEG original como el estándar de imagen dominante. [ 15 ]
Historia
Fondo
La especificación JPEG original publicada en 1992 implementa procesos de varios artículos de investigación y patentes anteriores citados por el CCITT (ahora ITU-T ) y el Grupo Conjunto de Expertos en Fotografía. [ 1 ]
La base del algoritmo de compresión con pérdida de JPEG es la transformada discreta del coseno (DCT), [ 9 ] [ 10 ] que fue propuesta por primera vez por Nasir Ahmed como una técnica de compresión de imágenes en 1972. [ 16 ] [ 10 ] Ahmed publicó el algoritmo DCT con T. Natarajan y KR Rao en un artículo de 1974, [ 17 ] que se cita en la especificación JPEG. [ 9 ]
La especificación JPEG cita patentes de varias empresas. Las siguientes patentes proporcionaron la base para su algoritmo de codificación aritmética . [ 1 ]
- IBM
- Patente estadounidense 4.652.856 – 4 de febrero de 1986 – Kottappuram MA Mohiuddin y Jorma J. Rissanen – Código aritmético de varios alfabetos sin multiplicación
- Patente estadounidense 4,905,297 – 27 de febrero de 1990 – G. Langdon, JL Mitchell , WB Pennebaker y Jorma J. Rissanen – Sistema codificador y decodificador de codificación aritmética
- Patente estadounidense 4,935,882 – 19 de junio de 1990 – WB Pennebaker y JL Mitchell – Adaptación de probabilidad para codificadores aritméticos
- Mitsubishi Electric
- JP H02202267 ( 1021672 ) – 21 de enero de 1989 – Toshihiro Kimura, Shigenori Kino, Fumitaka Ono, Masayuki Yoshida – Sistema de codificación
- JP H03247123 ( 2-46275 ) – 26 de febrero de 1990 – Tomohiro Kimura, Shigenori Kino, Fumitaka Ono y Masayuki Yoshida – Aparato de codificación y método de codificación
La especificación JPEG también cita otras tres patentes de IBM. Otras compañías citadas como titulares de patentes incluyen AT&T (dos patentes) y Canon Inc. [ 1 ] No figura en la lista la patente estadounidense 4,698,672 , presentada por Wen-Hsiung Chen y Daniel J. Klenke de Compression Labs en octubre de 1986. La patente describe un algoritmo de compresión de imágenes basado en DCT y posteriormente sería motivo de controversia en 2002 (véase Controversia de patentes más adelante). [ 18 ] Sin embargo, la especificación JPEG sí citó dos trabajos de investigación anteriores de Wen-Hsiung Chen, publicados en 1977 y 1984. [ 1 ]
Estándar JPEG
«JPEG» son las siglas de Joint Photographic Experts Group (Grupo Conjunto de Expertos en Fotografía) , el nombre del comité que creó el estándar JPEG y otros estándares de codificación de imágenes fijas. El término «Joint» se refería a ISO TC97 WG8 y CCITT SGVIII. Fundado en 1986, el grupo desarrolló el estándar JPEG a finales de la década de 1980. El grupo publicó el estándar JPEG en 1992. [ 5 ]
En 1987, ISO TC 97 se convirtió en ISO/IEC JTC 1 y, en 1992, CCITT se convirtió en ITU-T. Actualmente, en el lado de JTC1, JPEG es uno de los dos subgrupos del Comité Técnico Conjunto 1 de ISO / IEC , Subcomité 29, Grupo de Trabajo 1 ( ISO/IEC JTC 1/SC 29 /WG 1) , titulado Codificación de imágenes fijas . [ 19 ] [ 20 ] [ 21 ] En el lado de ITU-T, ITU-T SG16 es el organismo correspondiente. El Grupo JPEG original se organizó en 1986, [ 22 ] emitiendo el primer estándar JPEG en 1992, que fue aprobado en septiembre de 1992 como Recomendación ITU-T T.81 [ 23 ] y, en 1994, como ISO / IEC 10918-1 .
El estándar JPEG especifica el códec , que define cómo se comprime una imagen en una secuencia de bytes y se descomprime de nuevo en una imagen, pero no el formato de archivo utilizado para contener esa secuencia. [ 24 ] Los estándares Exif y JFIF definen los formatos de archivo comúnmente utilizados para el intercambio de imágenes comprimidas con JPEG.
Los estándares JPEG se denominan formalmente Tecnología de la información : compresión y codificación digital de imágenes fijas de tono continuo . La norma ISO/IEC 10918 consta de las siguientes partes:
La norma internacional Ecma TR /98 especifica el formato de intercambio de archivos JPEG (JFIF); la primera edición se publicó en junio de 2009. [ 28 ]
Controversia sobre patentes
En 2002, Forgent Networks afirmó que poseía y haría valer los derechos de patente sobre la tecnología JPEG, derivados de una patente que se había presentado el 27 de octubre de 1986 y se había concedido el 6 de octubre de 1987: la patente estadounidense 4,698,672 de Wen-Hsiung Chen y Daniel J. Klenke de Compression Labs . [ 18 ] [ 29 ] Si bien Forgent no era propietaria de Compression Labs en ese momento, Chen posteriormente vendió Compression Labs a Forgent, antes de pasar a trabajar para Cisco . Esto llevó a que Forgent adquiriera la propiedad de la patente. [ 18 ] El anuncio de Forgent en 2002 creó un furor que recordaba los intentos de Unisys de hacer valer sus derechos sobre el estándar de compresión de imágenes GIF.
El comité JPEG investigó las reivindicaciones de patente en 2002 y opinó que estaban invalidadas por el estado de la técnica anterior , [ 30 ] una opinión compartida por varios expertos. [ 18 ] [ 31 ]
Entre 2002 y 2004, Forgent logró obtener aproximadamente 105 millones de dólares estadounidenses mediante la concesión de licencias de su patente a unas 30 empresas. En abril de 2004, Forgent demandó a otras 31 empresas para exigir el pago de licencias adicionales. En julio del mismo año, un consorcio de 21 grandes empresas informáticas presentó una contrademanda con el objetivo de invalidar la patente. Además, Microsoft inició una demanda independiente contra Forgent en abril de 2005. [ 32 ] En febrero de 2006, la Oficina de Patentes y Marcas de los Estados Unidos ( USPTO ) accedió a reexaminar la patente JPEG de Forgent a petición de la Public Patent Foundation. [ 33 ] El 26 de mayo de 2006, la USPTO declaró la patente inválida por existencia de estado de la técnica. La USPTO también determinó que Forgent conocía la existencia de dicho estado de la técnica, pero evitó intencionadamente informar a la Oficina de Patentes. Esto hizo que cualquier apelación para restablecer la patente fuera altamente improbable. [ 34 ]
Forgent también posee una patente similar otorgada por la Oficina Europea de Patentes en 1994, aunque no está claro hasta qué punto es ejecutable. [ 35 ]
Al 27 de octubre de 2006, el plazo de 20 años de la patente estadounidense parece haber expirado, y en noviembre de 2006, Forgent acordó abandonar la aplicación de las reclamaciones de patente contra el uso del estándar JPEG. [ 36 ]
El comité JPEG tiene como uno de sus objetivos explícitos que sus estándares (en particular sus métodos básicos) puedan implementarse sin el pago de tarifas de licencia, y han obtenido los derechos de licencia adecuados para su estándar JPEG 2000 de más de 20 grandes organizaciones.
A partir de agosto de 2007, otra empresa, Global Patent Holdings, LLC, alegó que su patente ( patente estadounidense 5,253,341 ), emitida en 1993, se infringía al descargar imágenes JPEG desde un sitio web o por correo electrónico. De no ser invalidada, esta patente podría aplicarse a cualquier sitio web que mostrara imágenes JPEG. La Oficina de Patentes y Marcas de los Estados Unidos reexaminó la patente entre 2000 y 2007; en julio de 2007, la Oficina de Patentes revocó todas las reivindicaciones originales de la patente, pero determinó que una reivindicación adicional propuesta por Global Patent Holdings (reivindicación 17) era válida. [ 37 ] Posteriormente, Global Patent Holdings presentó varias demandas basadas en la reivindicación 17 de su patente.
En sus dos primeras demandas tras la reexaminación, ambas presentadas en Chicago, Illinois, Global Patent Holdings demandó a los Green Bay Packers , CDW , Motorola , Apple , Orbitz , OfficeMax , Caterpillar , Kraft y Peapod como demandados. Una tercera demanda se presentó el 5 de diciembre de 2007 en el sur de Florida contra ADT Security Services , AutoNation , Florida Crystals Corp., HearUSA , MovieTickets.com , Ocwen Financial Corp. y Tire Kingdom , y una cuarta demanda el 8 de enero de 2008, también en el sur de Florida, contra el Boca Raton Resort & Club . Una quinta demanda se presentó contra Global Patent Holdings en Nevada. Dicha demanda fue presentada por Zappos.com , Inc., que supuestamente fue amenazada por Global Patent Holdings, y solicitó una declaración judicial de que la patente '341 es inválida y no ha sido infringida.
Global Patent Holdings también había utilizado la patente '341 para demandar o amenazar a críticos declarados de las patentes de software amplias, incluidos Gregory Aharonian [ 38 ] y el operador anónimo de un blog conocido como " Patent Troll Tracker ". [ 39 ] El 21 de diciembre de 2007, el abogado de patentes Vernon Francissen de Chicago solicitó a la Oficina de Patentes y Marcas de los Estados Unidos que reexaminara la única reivindicación restante de la patente '341 sobre la base de nuevo estado de la técnica. [ 40 ]
El 5 de marzo de 2008, la Oficina de Patentes y Marcas de los Estados Unidos acordó reexaminar la patente '341, encontrando que el nuevo estado de la técnica planteaba nuevas cuestiones sustanciales con respecto a la validez de la patente. [ 41 ] A la luz del reexamen, los presuntos infractores en cuatro de las cinco demandas pendientes han presentado mociones para suspender (suspender) sus casos hasta que la Oficina de Patentes y Marcas de los Estados Unidos complete la revisión de la patente '341. El 23 de abril de 2008, un juez que presidía las dos demandas en Chicago, Illinois, concedió las mociones en esos casos. [ 42 ] El 22 de julio de 2008, la Oficina de Patentes emitió la primera "Acción de Oficina" del segundo reexamen, declarando la reivindicación inválida con base en diecinueve motivos distintos. [ 43 ] El 24 de noviembre de 2009, se emitió un Certificado de Reexamen que cancelaba todas las reivindicaciones.
A partir de 2011 y hasta principios de 2013, una entidad conocida como Princeton Digital Image Corporation, [ 44 ] con sede en el este de Texas, comenzó a demandar a un gran número de empresas por presunta infracción de la patente estadounidense 4,813,056 . Princeton afirma que el estándar de compresión de imágenes JPEG infringe la patente '056 y ha demandado a un gran número de sitios web, minoristas, fabricantes y revendedores de cámaras y dispositivos. La patente era propiedad original de General Electric y le fue asignada. La patente expiró en diciembre de 2007, pero Princeton ha demandado a un gran número de empresas por "infracción pasada" de esta patente. (Según las leyes de patentes de EE. UU., el titular de una patente puede demandar por "infracción pasada" hasta seis años antes de la presentación de una demanda, por lo que Princeton teóricamente podría haber continuado demandando a empresas hasta diciembre de 2013). En marzo de 2013, Princeton tenía demandas pendientes en Nueva York y Delaware contra más de 55 empresas. Se desconoce la participación de General Electric en la demanda, aunque los registros judiciales indican que cedió la patente a Princeton en 2009 y conserva ciertos derechos sobre la misma. [ 45 ]
Uso típico
El algoritmo de compresión JPEG ofrece su mejor rendimiento en fotografías y pinturas de escenas realistas con suaves variaciones de tono y color. Para su uso en la web, donde reducir la cantidad de datos utilizados en una imagen es importante para una presentación adaptable, las ventajas de compresión de JPEG lo convierten en un formato popular. JPEG/ Exif es también el formato más común que guardan las cámaras digitales.
Sin embargo, JPEG no es adecuado para dibujos lineales y otros gráficos textuales o icónicos, donde los fuertes contrastes entre píxeles adyacentes pueden causar artefactos perceptibles. [ 46 ] Es mejor guardar estas imágenes en un formato gráfico sin pérdida , como TIFF , GIF , PNG o un formato de imagen sin procesar . El estándar JPEG incluye un modo de codificación sin pérdida, pero este modo no es compatible con la mayoría de los productos.
Dado que el uso típico de JPEG es un método de compresión con pérdida , que reduce la fidelidad de la imagen, no es apropiado para la reproducción exacta de datos de imagen (como algunas aplicaciones de imágenes científicas y médicas y ciertos trabajos de procesamiento técnico de imágenes ). [ 46 ]
El formato JPEG tampoco es adecuado para archivos que se someterán a múltiples ediciones, ya que se pierde calidad de imagen cada vez que se recomprime, especialmente si se recorta o desplaza, o si se modifican los parámetros de codificación (consulte la sección sobre pérdida de generación digital para obtener más detalles). Para evitar la pérdida de información de la imagen durante la edición secuencial y repetitiva, la primera edición se puede guardar en un formato sin pérdida, editarla posteriormente en ese formato y, finalmente, publicarla como JPEG para su distribución.
compresión JPEG
JPEG utiliza una forma de compresión con pérdida basada en la transformada discreta del coseno (DCT). Esta operación matemática convierte cada fotograma/campo de la fuente de vídeo del dominio espacial (2D) al dominio de la frecuencia (también conocido como dominio de la transformada). Un modelo perceptivo basado libremente en cómo el sistema psicovisual humano descarta la información de alta frecuencia, es decir, las transiciones bruscas de intensidad y tono de color. En el dominio de la transformada, el proceso de reducción de información se denomina cuantización. En términos más sencillos, la cuantización es un método para reducir de forma óptima una escala numérica grande (con diferentes ocurrencias de cada número) a una más pequeña, y el dominio de la transformada es una representación conveniente de la imagen porque los coeficientes de alta frecuencia, que contribuyen menos a la imagen general que otros coeficientes, son característicamente valores pequeños con alta compresibilidad. Los coeficientes cuantizados se secuencian y se empaquetan sin pérdida en el flujo de bits de salida. Casi todas las implementaciones de software de JPEG permiten al usuario controlar la relación de compresión (así como otros parámetros opcionales), lo que permite al usuario intercambiar calidad de imagen por un menor tamaño de archivo. En las aplicaciones integradas (como miniDV, que utiliza un esquema de compresión DCT similar), los parámetros se seleccionan previamente y se fijan para la aplicación.
El método de compresión suele ser con pérdida , lo que significa que se pierde información de la imagen original que no se puede recuperar, lo que puede afectar la calidad de la imagen. Existe un modo sin pérdida opcional definido en el estándar JPEG. Sin embargo, este modo no es compatible con la mayoría de los productos.
También existe un formato JPEG progresivo entrelazado , en el que los datos se comprimen en múltiples pasadas con un nivel de detalle progresivamente mayor. Esto es ideal para imágenes grandes que se mostrarán mientras se descargan a través de una conexión lenta, lo que permite una vista previa razonable después de recibir solo una parte de los datos. Sin embargo, la compatibilidad con JPEG progresivo no es universal. Cuando los programas que no lo admiten reciben imágenes JPEG progresivas (como las versiones de Internet Explorer anteriores a Windows 7 ) [ 47 ], el software muestra la imagen solo después de que se haya descargado por completo.
También existen numerosas aplicaciones de imágenes médicas, tráfico y cámaras que crean y procesan imágenes JPEG de 12 bits, tanto en escala de grises como en color. El formato JPEG de 12 bits está incluido en una parte extendida de la especificación JPEG. El códec libjpeg admite JPEG de 12 bits e incluso existe una versión de alto rendimiento. [ 48 ]
Edición sin pérdidas
Se pueden realizar varias modificaciones a una imagen JPEG sin pérdida de calidad (es decir, sin recompresión ni la consiguiente pérdida de calidad) siempre que el tamaño de la imagen sea un múltiplo de 1 bloque MCU (Unidad Mínima Codificada) (normalmente 16 píxeles en ambas direcciones, para el submuestreo de croma 4:2:0 ). Algunas utilidades que implementan esto son:
- jpegtran y su interfaz gráfica de usuario, Jpegcrop.
- IrfanView utiliza "JPG Lossless Crop (PlugIn)" y "JPG Lossless Rotation (PlugIn)", que requieren la instalación del complemento JPG_TRANSFORM.
- Visor de imágenes FastStone utilizando "Recorte sin pérdidas a archivo" y "Rotación JPEG sin pérdidas".
- XnViewMP utiliza "transformaciones JPEG sin pérdidas".
- ACDSee admite la rotación sin pérdida de calidad (pero no el recorte sin pérdida de calidad) mediante su opción "Forzar operaciones JPEG sin pérdida de calidad".
Los bloques se pueden rotar en incrementos de 90 grados, voltear en los ejes horizontal, vertical y diagonal, y mover dentro de la imagen. No es necesario utilizar todos los bloques de la imagen original en la modificada.
Los bordes superior e izquierdo de una imagen JPEG deben coincidir con un límite de bloque de 8 × 8 píxeles (o de 16 × 16 píxeles para tamaños de MCU mayores), pero los bordes inferior y derecho no tienen por qué hacerlo. Esto limita las posibles operaciones de recorte sin pérdida y evita voltear o rotar una imagen cuyo borde inferior o derecho no coincida con un límite de bloque para todos los canales (ya que el borde quedaría arriba o a la izquierda, donde , como se mencionó anteriormente , un límite de bloque es obligatorio).
Las rotaciones en las que la imagen no es múltiplo de 8 o 16, valor que depende del submuestreo de croma, no son sin pérdida. Rotar una imagen de este tipo provoca que los bloques se recalculen, lo que resulta en una pérdida de calidad. [ 49 ]
Al utilizar el recorte sin pérdida, si el borde inferior o derecho de la región recortada no coincide con el límite de un bloque, el resto de los datos de los bloques parcialmente utilizados permanecerán en el archivo recortado y podrán recuperarse. También es posible transformar entre formatos base y progresivos sin pérdida de calidad, ya que la única diferencia radica en el orden en que se colocan los coeficientes en el archivo.
Además, se pueden unir varias imágenes JPEG sin pérdida de calidad, siempre que se hayan guardado con la misma calidad y los bordes coincidan con los límites de los bloques.
archivos JPEG
El formato de archivo conocido como "JPEG Interchange Format" (JIF) se especifica en el Anexo B del estándar. Sin embargo, este formato de archivo "puro" se usa raramente, principalmente debido a la dificultad de programar codificadores y decodificadores que implementen completamente todos los aspectos del estándar y debido a ciertas deficiencias del mismo:
- definición del espacio de color
- Registro de submuestreo de componentes
- Definición de la relación de aspecto de los píxeles.
Para abordar estos problemas, se han desarrollado varios estándares adicionales. El primero de ellos, publicado en 1992, fue el formato de intercambio de archivos JPEG (JFIF), seguido en los últimos años por el formato de archivo de imagen intercambiable (Exif) y los perfiles de color ICC . Ambos formatos utilizan la estructura de bytes JIF, que consta de diferentes marcadores , pero además, emplean uno de los puntos de extensión del estándar JIF, concretamente los marcadores de aplicación : JFIF utiliza APP0, mientras que Exif utiliza APP1. Dentro de estos segmentos del archivo, reservados para uso futuro en el estándar JIF y que no son leídos por este, estos estándares añaden metadatos específicos.
Así, en cierto modo, JFIF es una versión reducida del estándar JIF, ya que especifica ciertas restricciones (como no permitir todos los modos de codificación diferentes), mientras que en otros aspectos, es una extensión de JIF debido a los metadatos añadidos. La documentación del estándar JFIF original indica: [ 50 ]
El formato de intercambio de archivos JPEG es un formato mínimo que permite el intercambio de secuencias de bits JPEG entre una amplia variedad de plataformas y aplicaciones. Este formato mínimo no incluye ninguna de las funciones avanzadas presentes en la especificación TIFF JPEG ni en ningún formato de archivo específico de la aplicación. Y no debería incluirlas, ya que el único propósito de este formato simplificado es permitir el intercambio de imágenes JPEG comprimidas.
Los archivos de imagen que utilizan compresión JPEG se denominan comúnmente "archivos JPEG" y se almacenan en variantes del formato de imagen JIF. La mayoría de los dispositivos de captura de imágenes (como las cámaras digitales) que generan JPEG en realidad crean archivos en formato Exif , el formato estandarizado por la industria fotográfica para el intercambio de metadatos. Por otro lado, dado que el estándar Exif no permite perfiles de color, la mayoría del software de edición de imágenes almacena JPEG en formato JFIF e incluye el segmento APP1 del archivo Exif para incorporar los metadatos de forma casi compatible; el estándar JFIF se interpreta con cierta flexibilidad. [ 51 ]
En rigor, los estándares JFIF y Exif son incompatibles, ya que cada uno especifica que su segmento marcador (APP0 o APP1, respectivamente) debe aparecer primero. En la práctica, la mayoría de los archivos JPEG contienen un segmento marcador JFIF que precede al encabezado Exif. Esto permite que los lectores antiguos procesen correctamente el segmento JFIF del formato anterior, mientras que los lectores más recientes también decodifican el segmento Exif que le sigue, siendo menos estrictos en cuanto a que deba aparecer primero.
extensiones de nombres de archivo JPEG
Las extensiones de archivo más comunes para archivos que emplean compresión JPEG son .jpgy .jpeg, aunque también se utilizan .jpe, .jfify . [ 52 ] También es posible que los datos JPEG se incrusten en otros tipos de archivos : los archivos codificados en TIFF a menudo incrustan una imagen JPEG como una miniatura de la imagen principal; y los archivos MP3 pueden contener una imagen JPEG de la carátula en la etiqueta ID3v2 ..jif
Perfil de color
Muchos archivos JPEG incorporan un perfil de color ICC ( espacio de color ). Los perfiles de color más comunes son sRGB y Adobe RGB . Debido a que estos espacios de color utilizan una transformación no lineal, el rango dinámico de un archivo JPEG de 8 bits es de aproximadamente 11 pasos ; véase la curva gamma .
Si la imagen no especifica información de perfil de color ( sin etiquetar ), se asume que el espacio de color es sRGB para fines de visualización en páginas web. [ 53 ] [ 54 ]
Sintaxis y estructura
Una imagen JPEG consta de una secuencia de segmentos , cada uno de los cuales comienza con un marcador , cada uno de los cuales comienza con un byte 0xFF, seguido de un byte que indica qué tipo de marcador es. Algunos marcadores constan solo de esos dos bytes; otros van seguidos de dos bytes (uno alto y luego uno bajo), que indican la longitud de los datos de carga útil específicos del marcador que siguen. (La longitud incluye los dos bytes de longitud, pero no los dos bytes del marcador). Algunos marcadores van seguidos de datos codificados por entropía ; la longitud de dicho marcador no incluye los datos codificados por entropía. Tenga en cuenta que los bytes 0xFF consecutivos se utilizan como bytes de relleno para fines de relleno , aunque este relleno de bytes de relleno solo debe tener lugar para marcadores que siguen inmediatamente a datos de escaneo codificados por entropía (consulte las secciones B.1.1.2 y E.1.2 de la especificación JPEG para obtener más detalles; específicamente "En todos los casos en que los marcadores se agregan después de los datos comprimidos, los bytes de relleno 0xFF opcionales pueden preceder al marcador").
Dentro de los datos codificados por entropía, después de cada byte 0xFF, el codificador inserta un byte 0x00 antes del siguiente, de modo que no aparezca un marcador donde no debería haberlo, evitando así errores de trama. Los decodificadores deben omitir este byte 0x00. Esta técnica, denominada relleno de bytes (véase la sección F.1.2.3 de la especificación JPEG), se aplica únicamente a los datos codificados por entropía, no a los datos de carga útil de los marcadores. Cabe destacar que los datos codificados por entropía tienen algunos marcadores propios; concretamente, los marcadores de reinicio (0xD0 a 0xD7), que se utilizan para aislar fragmentos independientes de datos codificados por entropía y permitir la decodificación en paralelo. Los codificadores pueden insertar estos marcadores de reinicio a intervalos regulares (aunque no todos lo hacen).
Existen otros marcadores de inicio de fotograma que introducen otros tipos de codificaciones JPEG.
Dado que varios proveedores pueden usar el mismo tipo de marcador APP n , los marcadores específicos de la aplicación a menudo comienzan con un nombre estándar o del proveedor (por ejemplo, "Exif" o "Adobe") u otra cadena de identificación.
En un marcador de reinicio, las variables predictoras entre bloques se restablecen y el flujo de bits se sincroniza con un límite de byte. Los marcadores de reinicio permiten la recuperación tras un error en el flujo de bits, como la transmisión a través de una red poco fiable o la corrupción de archivos. Dado que las secuencias de macrobloques entre marcadores de reinicio pueden decodificarse de forma independiente, estas secuencias pueden decodificarse en paralelo.
Ejemplo de códec JPEG
Aunque un archivo JPEG se puede codificar de diversas maneras, lo más común es hacerlo mediante la codificación JFIF. El proceso de codificación consta de varios pasos:
- La representación de los colores en la imagen se convierte de RGB a Y′C B C R , que consta de un componente de luminancia (Y'), que representa el brillo, y dos componentes de croma (C B y C R ), que representan el color. Este paso a veces se omite.
- La resolución de los datos cromáticos se reduce, generalmente en un factor de 2 o 3. Esto refleja el hecho de que el ojo es menos sensible a los detalles sutiles de color que a los detalles sutiles de brillo.
- La imagen se divide en bloques de 8×8 píxeles, y para cada bloque, cada uno de los datos Y, C B y C R se somete a la transformada discreta del coseno (DCT). Una DCT es similar a una transformada de Fourier en el sentido de que produce una especie de espectro de frecuencia espacial.
- Las amplitudes de los componentes de frecuencia se cuantifican . La visión humana es mucho más sensible a pequeñas variaciones de color o brillo en áreas extensas que a la intensidad de las variaciones de brillo de alta frecuencia. Por lo tanto, las magnitudes de los componentes de alta frecuencia se almacenan con menor precisión que las de los componentes de baja frecuencia. El ajuste de calidad del codificador (por ejemplo, 50 o 95 en una escala de 0 a 100 en la biblioteca del Independent JPEG Group [ 56 ] ) afecta el grado de reducción de la resolución de cada componente de frecuencia. Si se utiliza un ajuste de calidad excesivamente bajo, los componentes de alta frecuencia se descartan por completo.
- Los datos resultantes para todos los bloques de 8×8 se comprimen aún más con un algoritmo sin pérdidas, una variante de la codificación Huffman .
El proceso de decodificación invierte estos pasos, excepto la cuantización , ya que es irreversible. En el resto de esta sección, se describen con mayor detalle los procesos de codificación y decodificación.
Codificación
Muchas de las opciones del estándar JPEG no se utilizan habitualmente y, como se mencionó anteriormente, la mayoría de los programas de edición de imágenes utilizan el formato JFIF, más sencillo, para crear archivos JPEG, el cual, entre otras cosas, especifica el método de codificación. A continuación, se describe brevemente uno de los métodos de codificación más comunes aplicado a una entrada de 24 bits por píxel (ocho para cada color: rojo, verde y azul ). Esta opción en particular es un método de compresión de datos con pérdida . Se representan en las matrices que se muestran a continuación.
transformación del espacio de color
Primero, la imagen debe convertirse de RGB (por defecto sRGB, [ 53 ] [ 54 ] pero son posibles otros espacios de color ) a un espacio de color diferente llamado Y′C B C R (o, informalmente, YCbCr). Tiene tres componentes Y', C B y C R : el componente Y' representa el brillo de un píxel, y los componentes C B y C R representan la crominancia (dividida en componentes azul y rojo). Este es básicamente el mismo espacio de color que utiliza la televisión digital en color, así como el vídeo digital, incluidos los DVD de vídeo . La conversión al espacio de color Y′C B C R permite una mayor compresión sin un efecto significativo en la calidad perceptual de la imagen (o una mayor calidad perceptual de la imagen para la misma compresión). La compresión es más eficiente porque la información de brillo, que es más importante para la calidad perceptual final de la imagen, se limita a un solo canal. Esto se corresponde más estrechamente con la percepción del color en el sistema visual humano. La transformación de color también mejora la compresión mediante decorrelación estadística .
El estándar JFIF especifica una conversión a Y′C B C R que debe realizarse para que el archivo JPEG resultante tenga la máxima compatibilidad. Sin embargo, algunas implementaciones de JPEG en modo de "máxima calidad" no aplican este paso y, en su lugar, conservan la información de color en el modelo RGB, donde la imagen se almacena en canales separados para los componentes de brillo rojo, verde y azul. Esto resulta en una compresión menos eficiente y probablemente no se utilice cuando el tamaño del archivo es especialmente importante.
Submuestreo
Debido a la densidad de receptores sensibles al color y al brillo en el ojo humano, podemos percibir muchos más detalles en el brillo de una imagen (el componente Y') que en el tono y la saturación del color (los componentes Cb y Cr). Gracias a este conocimiento, se pueden diseñar codificadores para comprimir imágenes de forma más eficiente.
La transformación al modelo de color Y′C B C R permite el siguiente paso habitual, que consiste en reducir la resolución espacial de los componentes Cb y Cr (denominado " submuestreo " o " reducción de croma "). Las proporciones en las que se suele realizar el submuestreo para imágenes JPEG son 4:4:4 (sin submuestreo), 4:2:2 (reducción por un factor de 2 en la dirección horizontal) o (lo más común) 4:2:0 (reducción por un factor de 2 tanto en la dirección horizontal como en la vertical). Para el resto del proceso de compresión, Y', Cb y Cr se procesan por separado y de forma muy similar.
división de bloques
Tras el submuestreo , cada canal debe dividirse en bloques de 8×8. Dependiendo del submuestreo de croma, esto produce bloques de Unidad Codificada Mínima (MCU) de tamaño 8×8 (4:4:4 – sin submuestreo), 16×8 (4:2:2) o, más comúnmente, 16×16 (4:2:0). En compresión de vídeo, las MCU se denominan macrobloques .
Si los datos de un canal no representan un número entero de bloques, el codificador debe rellenar el área restante de los bloques incompletos con algún tipo de datos ficticios. Rellenar los bordes con un color fijo (por ejemplo, negro) puede generar artefactos de anillo a lo largo de la parte visible del borde; repetir los píxeles del borde es una técnica común que reduce (aunque no necesariamente elimina) dichos artefactos, y también se pueden aplicar técnicas de relleno de bordes más sofisticadas.
Transformada discreta del coseno

A continuación, cada bloque de 8×8 de cada componente (Y, Cb, Cr) se convierte a una representación en el dominio de la frecuencia , utilizando una transformada discreta del coseno (DCT) bidimensional normalizada de tipo II (véase la cita 1 en la transformada discreta del coseno). La DCT a veces se denomina "DCT de tipo II" en el contexto de una familia de transformadas como en la transformada discreta del coseno , y la inversa correspondiente (IDCT) se denomina "DCT de tipo III".
Como ejemplo, una subimagen de 8×8 de 8 bits podría ser:
Antes de calcular la DCT del bloque de 8×8, sus valores se desplazan de un rango positivo a uno centrado en cero. Para una imagen de 8 bits, cada entrada del bloque original cae en el rango. El punto medio del rango (en este caso, el valor 128) se resta de cada entrada para producir un rango de datos centrado en cero, de modo que el rango modificado seaEste paso reduce los requisitos de rango dinámico en la etapa de procesamiento DCT que sigue.
Este paso da como resultado los siguientes valores:

El siguiente paso es tomar la DCT bidimensional, que viene dada por:
dónde
- es la frecuencia espacial horizontal , para los enteros.
- es la frecuencia espacial vertical, para los números enteros.
- yestán normalizando los factores de escala para hacer que la transformación sea ortonormal con
- es el valor del píxel en las coordenadas
- es el coeficiente DCT en las coordenadas
Si realizamos esta transformación en nuestra matriz anterior, obtenemos lo siguiente (redondeado a los dos dígitos decimales más cercanos):
Nótese la entrada de la esquina superior izquierda con una magnitud bastante grande. Este es el coeficiente de CC (también llamado componente constante), que define el tono básico para todo el bloque. Los 63 coeficientes restantes son los coeficientes de CA (también llamados componentes alternas). [ 57 ] La ventaja de la DCT es su tendencia a agrupar la mayor parte de la señal en una esquina del resultado, como puede verse arriba. El paso de cuantización que sigue acentúa este efecto al tiempo que reduce el tamaño general de los coeficientes de la DCT, lo que da como resultado una señal que es fácil de comprimir eficientemente en la etapa de entropía.
La DCT aumenta temporalmente la profundidad de bits de los datos, ya que los coeficientes DCT de una imagen de 8 bits/componente requieren hasta 11 bits o más (dependiendo de la fidelidad del cálculo de la DCT) para su almacenamiento. Esto puede obligar al códec a usar temporalmente números de 16 bits para almacenar estos coeficientes, duplicando el tamaño de la representación de la imagen en este punto; estos valores se reducen normalmente a valores de 8 bits mediante el paso de cuantificación. El aumento temporal de tamaño en esta etapa no supone un problema de rendimiento para la mayoría de las implementaciones JPEG, ya que normalmente solo una pequeña parte de la imagen se almacena en formato DCT completo en cualquier momento durante el proceso de codificación o decodificación de la imagen.
Cuantización
El ojo humano es bueno para percibir pequeñas diferencias de brillo en un área relativamente grande, pero no tanto para distinguir la intensidad exacta de una variación de brillo de alta frecuencia. Esto permite reducir considerablemente la cantidad de información en los componentes de alta frecuencia. Esto se logra dividiendo cada componente en el dominio de la frecuencia por una constante para dicho componente y redondeando al entero más cercano. Esta operación de redondeo es la única operación con pérdida en todo el proceso (aparte del submuestreo de croma) si el cálculo de la DCT se realiza con suficiente precisión. Como resultado, normalmente muchos de los componentes de alta frecuencia se redondean a cero, y muchos de los restantes se convierten en números pequeños positivos o negativos, que requieren muchos menos bits para su representación.
Los elementos de la matriz de cuantificación controlan la relación de compresión, de modo que valores mayores producen una mayor compresión. Una matriz de cuantificación típica (para una calidad del 50%, tal como se especifica en el estándar JPEG original) es la siguiente:
Los coeficientes DCT cuantificados se calculan con
dóndeson los coeficientes DCT no cuantificados;es la matriz de cuantización anterior; yson los coeficientes DCT cuantificados.
Al utilizar esta matriz de cuantización con la matriz de coeficientes DCT anterior, se obtiene:

Por ejemplo, usando −415 (el coeficiente de CC) y redondeando al entero más cercano.
Obsérvese que la mayoría de los elementos de mayor frecuencia del subbloque (es decir, aquellos con una frecuencia espacial x o y mayor que 4) se cuantifican a valores cero.
Codificación de entropía

La codificación entrópica es una forma especial de compresión de datos sin pérdidas . Consiste en organizar los componentes de la imagen en un orden en zigzag empleando el algoritmo de codificación de longitud de ejecución (RLE), que agrupa frecuencias similares, insertando ceros de codificación de longitud y, a continuación, aplicando la codificación Huffman a lo que queda.
El estándar JPEG también permite, aunque no exige, que los decodificadores admitan el uso de la codificación aritmética , que es matemáticamente superior a la codificación Huffman. Sin embargo, esta función se ha utilizado raramente, ya que históricamente estaba protegida por patentes que requerían licencias con pago de regalías, y porque su codificación y decodificación son más lentas que las de la codificación Huffman. La codificación aritmética suele reducir el tamaño de los archivos entre un 5 % y un 7 %. [ 58 ]
El coeficiente de CC cuantificado anterior se utiliza para predecir el coeficiente de CC cuantificado actual. La diferencia entre ambos se codifica en lugar del valor real. La codificación de los 63 coeficientes de CA cuantificados no utiliza este método de diferenciación predictiva.
La secuencia en zigzag de los coeficientes cuantificados mencionados anteriormente se muestra a continuación. (El formato mostrado es solo para facilitar la comprensión y la visualización).
Si el i -ésimo bloque está representado pory las posiciones dentro de cada bloque están representadas pordóndey, entonces cualquier coeficiente en la imagen DCT se puede representar como. Por lo tanto, en el esquema anterior, el orden de codificación de píxeles (para el i -ésimo bloque) es,,,,,,,etcétera.

Este modo de codificación se denomina codificación secuencial de base. JPEG de base también admite la codificación progresiva . Mientras que la codificación secuencial codifica los coeficientes de un solo bloque a la vez (de forma zigzag), la codificación progresiva codifica lotes de coeficientes de todos los bloques con posiciones similares de una sola vez (denominado escaneo ), seguidos del siguiente lote de coeficientes de todos los bloques, y así sucesivamente. Por ejemplo, si la imagen se divide en N bloques de 8×8, luego una codificación progresiva de 3 escaneos codifica el componente DC,para todos los bloques, es decir, para todos, en el primer escaneo. A esto le sigue el segundo escaneo que codifica algunos componentes más (suponiendo cuatro componentes más, sona, todavía de forma zigzag) coeficientes de todos los bloques (de modo que la secuencia es:), seguido de todos los coeficientes restantes de todos los bloques en el último escaneo.
Una vez codificados todos los coeficientes con posiciones similares, la siguiente posición a codificar es la que aparece a continuación en el recorrido en zigzag, como se indica en la figura anterior. Se ha comprobado que la codificación JPEG progresiva básica suele ofrecer una mejor compresión en comparación con la codificación JPEG secuencial básica , debido a la posibilidad de utilizar diferentes tablas de Huffman (véase más abajo) adaptadas a distintas frecuencias en cada "escaneo" o "paso" (que incluye coeficientes con posiciones similares), aunque la diferencia no es muy grande.
En el resto del artículo, se asume que el patrón de coeficientes generado se debe al modo secuencial.
Para codificar el patrón de coeficientes generado anteriormente, JPEG utiliza la codificación Huffman. El estándar JPEG proporciona tablas Huffman de propósito general; los codificadores también pueden optar por generar tablas Huffman optimizadas para las distribuciones de frecuencia reales en las imágenes que se están codificando.
El proceso de codificación de los datos cuantificados en zigzag comienza con una codificación de longitud de ejecución que se explica a continuación, donde:
- x es el coeficiente de CA cuantificado y distinto de cero.
- RUNLENGTH es el número de ceros que precedieron a este coeficiente CA distinto de cero.
- SIZE es el número de bits necesarios para representar x .
- AMPLITUDE es la representación en bits de x .
La codificación de longitud de ejecución funciona examinando cada coeficiente AC distinto de cero x y determinando cuántos ceros precedieron al coeficiente AC anterior. Con esta información, se crean dos símbolos:
Tanto RUNLENGTH como SIZE se basan en el mismo byte, lo que significa que cada uno contiene solo cuatro bits de información. Los bits superiores se refieren al número de ceros, mientras que los bits inferiores indican el número de bits necesarios para codificar el valor de x .
Esto implica inmediatamente que el Símbolo 1 solo puede almacenar información sobre los primeros 15 ceros que preceden al coeficiente AC distinto de cero. Sin embargo, JPEG define dos palabras clave Huffman especiales. Una sirve para finalizar la secuencia prematuramente cuando los coeficientes restantes son cero (denominada "Fin de Bloque" o "EOB"), y la otra cuando la secuencia de ceros supera los 15 antes de alcanzar un coeficiente AC distinto de cero. En tal caso, cuando se encuentran 16 ceros antes de un coeficiente AC distinto de cero, el Símbolo 1 se codifica de forma "especial" como: (15, 0)(0).
El proceso general continúa hasta que se alcanza "EOB" – denotado por (0, 0) – .
Teniendo esto en cuenta, la secuencia anterior queda así:
- (0, 2)(-3);(1, 2)(-3);(0, 2)(-2);(0, 3)(-6);(0, 2)(2);(0, 3)(-4);(0, 1)(1);(0, 2)(-3);(0, 1)(1);(0, 1)(1);
- (0, 3)(5);(0, 1)(1);(0, 2)(2);(0, 1)(-1);(0, 1)(1);(0, 1)(-1);(0, 2)(2);(5, 1)(-1);(0, 1)(-1);(0, 0);
(El primer valor de la matriz, −26, es el coeficiente de CC; no está codificado de la misma manera. Véase más arriba).
A partir de aquí, se realizan cálculos de frecuencia basados en las ocurrencias de los coeficientes. En nuestro ejemplo, la mayoría de los coeficientes cuantificados son números pequeños que no van precedidos inmediatamente por un coeficiente cero. Estos casos más frecuentes se representarán con palabras clave más cortas.
Relación de compresión y artefactos



La relación de compresión resultante puede variar según las necesidades, ajustando la intensidad de los divisores utilizados en la fase de cuantificación. Una compresión de 10 a 1 suele dar como resultado una imagen prácticamente indistinguible de la original. Si bien una relación de compresión de 100:1 suele ser posible, la imagen presentará artefactos notables en comparación con la original. El nivel de compresión adecuado depende del uso que se le vaya a dar a la imagen.
Quienes utilizan la World Wide Web pueden estar familiarizados con las irregularidades conocidas como artefactos de compresión que aparecen en las imágenes JPEG, las cuales pueden manifestarse como ruido alrededor de los bordes contrastantes (especialmente curvas y esquinas) o imágenes pixeladas. Estas irregularidades se deben al paso de cuantización del algoritmo JPEG. Son particularmente notorias alrededor de las esquinas pronunciadas entre colores contrastantes (el texto es un buen ejemplo, ya que contiene muchas de estas esquinas). Los artefactos análogos en el video MPEG se denominan ruido de mosquito , ya que la "actividad de los bordes" resultante y los puntos espurios, que cambian con el tiempo, se asemejan a un enjambre de mosquitos alrededor del objeto. [ 59 ] [ 60 ]
Estos artefactos pueden reducirse eligiendo un nivel de compresión más bajo ; incluso pueden evitarse por completo guardando la imagen en un formato de archivo sin pérdida, aunque esto resultará en un archivo de mayor tamaño. Las imágenes creadas con programas de trazado de rayos presentan formas pixeladas perceptibles en el terreno. Ciertos artefactos de compresión de baja intensidad pueden ser aceptables al visualizar las imágenes, pero pueden acentuarse si la imagen se procesa posteriormente, lo que suele resultar en una calidad inaceptable. Considere el siguiente ejemplo, que demuestra el efecto de la compresión con pérdida en un paso de procesamiento de detección de bordes .
Algunos programas permiten al usuario variar el grado de compresión de cada bloque. Se aplica una mayor compresión a las áreas de la imagen que presentan menos artefactos. De esta forma, es posible reducir manualmente el tamaño de los archivos JPEG con una menor pérdida de calidad.
Dado que la etapa de cuantificación siempre conlleva una pérdida de información, el estándar JPEG es siempre un códec de compresión con pérdida. (Se pierde información tanto en la cuantificación como en el redondeo de los números de coma flotante). Incluso si la matriz de cuantificación es una matriz de unos , se seguirá perdiendo información en el paso de redondeo.
Descodificación
La decodificación para mostrar la imagen consiste en realizar todos los pasos anteriores a la inversa.
Tomando la matriz de coeficientes DCT (después de sumar la diferencia del coeficiente DC)
y tomando el producto entrada por entrada con la matriz de cuantificación de arriba se obtiene
que se asemeja mucho a la matriz de coeficientes DCT original para la parte superior izquierda.
El siguiente paso es tomar la DCT inversa bidimensional (una DCT de tipo III 2D), que viene dada por:
dónde
- es la fila de píxeles, para los números enteros.
- es la columna de píxeles, para los números enteros.
- es el factor de escala de normalización definido anteriormente, para los números enteros.
- es el coeficiente DCT aproximado en las coordenadas
- es el valor de píxel reconstruido en las coordenadas
Redondear la salida a valores enteros (ya que el original tenía valores enteros) da como resultado una imagen con valores (todavía desplazados hacia abajo por 128)
y sumando 128 a cada entrada.
Esta es la subimagen descomprimida. En general, el proceso de descompresión puede producir valores fuera del rango de entrada original.Si esto ocurre, el decodificador debe recortar los valores de salida para mantenerlos dentro de ese rango y evitar el desbordamiento al almacenar la imagen descomprimida con la profundidad de bits original.
La subimagen descomprimida se puede comparar con la subimagen original (véanse también las imágenes de la derecha) calculando la diferencia (original − sin comprimir), lo que da como resultado los siguientes valores de error:
con un error absoluto promedio de aproximadamente 5 valores por píxel (es decir,).
El error se aprecia mejor en la esquina inferior izquierda, donde el píxel inferior izquierdo se vuelve más oscuro que el píxel situado inmediatamente a su derecha.
Precisión requerida
La precisión de implementación requerida de un códec JPEG se define implícitamente a través de los requisitos formulados para el cumplimiento del estándar JPEG. Estos requisitos se especifican en la Recomendación T.83 de la UIT | ISO/IEC 10918-2. [ 61 ] A diferencia de los estándares MPEG y muchos estándares JPEG posteriores, el documento anterior define las precisiones de implementación requeridas para el proceso de codificación y decodificación de un códec JPEG mediante un error máximo tolerable de la DCT directa e inversa en el dominio DCT, según lo determinado por flujos de prueba de referencia. Por ejemplo, la salida de una implementación de decodificador no debe exceder un error de una unidad de cuantificación en el dominio DCT cuando se aplica a los flujos de código de prueba de referencia proporcionados como parte del estándar anterior. Si bien es inusual, y a diferencia de muchos otros estándares más modernos, la Recomendación T.83 de la UIT | ISO/IEC 10918-2 no formula límites de error en el dominio de la imagen.
Efectos de la compresión JPEG
Los artefactos de compresión JPEG se integran bien en fotografías con texturas detalladas y no uniformes, lo que permite mayores índices de compresión. Observe cómo un índice de compresión más alto afecta primero a las texturas de alta frecuencia en la esquina superior izquierda de la imagen, y cómo las líneas contrastantes se vuelven más borrosas. Un índice de compresión muy alto afecta gravemente la calidad de la imagen, aunque los colores y la forma general de la imagen aún son reconocibles. Sin embargo, la precisión de los colores se ve menos afectada (para el ojo humano) que la precisión de los contornos (basada en la luminancia). Esto justifica que las imágenes deban transformarse primero en un modelo de color que separe la luminancia de la información cromática, antes de submuestrear los planos cromáticos (lo que también puede utilizar una cuantización de menor calidad) para preservar la precisión del plano de luminancia con más bits de información.
Fotografías de muestra

Para su información, la imagen de mapa de bits RGB de 24 bits sin comprimir que se muestra a continuación (73.242 píxeles) requeriría 219.726 bytes (excluyendo todos los demás encabezados de información). Los tamaños de archivo que se indican a continuación incluyen los encabezados de información JPEG internos y algunos metadatos . Para imágenes de máxima calidad (Q=100), se requieren aproximadamente 8,25 bits por píxel de color. En imágenes en escala de grises, un mínimo de 6,5 bits por píxel es suficiente (una información de color de calidad comparable Q=100 requiere aproximadamente un 25 % más de bits codificados). La imagen de máxima calidad que se muestra a continuación (Q=100) está codificada a nueve bits por píxel de color, la imagen de calidad media (Q=25) utiliza un bit por píxel de color. Para la mayoría de las aplicaciones, el factor de calidad no debería ser inferior a 0,75 bits por píxel (Q=12,5), como se demuestra con la imagen de baja calidad. La imagen de menor calidad utiliza solo 0,13 bits por píxel y muestra colores muy pobres. Esto es útil cuando la imagen se mostrará en un tamaño significativamente reducido. En Minguillón y Pujol (2001) se describe un método para crear mejores matrices de cuantificación para una calidad de imagen dada utilizando PSNR en lugar del factor Q. [ 62 ]
La fotografía de calidad media utiliza solo el 4,3 % del espacio de almacenamiento requerido para la imagen sin comprimir, pero presenta poca pérdida de detalle o artefactos visibles. Sin embargo, una vez superado cierto umbral de compresión, las imágenes comprimidas muestran defectos cada vez más visibles. Consulte el artículo sobre la teoría de la tasa de distorsión para obtener una explicación matemática de este efecto umbral. Una limitación particular de JPEG en este sentido es su estructura de transformación de bloques de 8×8 sin superposición. Diseños más modernos, como JPEG 2000 y JPEG XR, muestran una degradación de la calidad más gradual a medida que disminuye el uso de bits , mediante el uso de transformaciones con una mayor extensión espacial para los coeficientes de baja frecuencia y el uso de funciones base de transformación superpuestas.
Compresión adicional sin pérdidas
Entre 2004 y 2008, surgieron nuevas investigaciones sobre cómo comprimir aún más los datos contenidos en imágenes JPEG sin modificar la imagen representada. [ 63 ] [ 64 ] [ 65 ] [ 66 ] Esto tiene aplicaciones en escenarios donde la imagen original solo está disponible en formato JPEG y su tamaño necesita reducirse para archivarla o transmitirla. Las herramientas de compresión estándar de propósito general no pueden comprimir significativamente los archivos JPEG.
Por lo general, estos esquemas aprovechan las mejoras del esquema ingenuo para codificar los coeficientes DCT, que no tiene en cuenta:
- Correlaciones entre magnitudes de coeficientes adyacentes en el mismo bloque;
- Correlaciones entre magnitudes del mismo coeficiente en bloques adyacentes;
- Correlaciones entre magnitudes del mismo coeficiente/bloque en diferentes canales;
- Los coeficientes de CC, en conjunto, se asemejan a una versión reducida de la imagen original multiplicada por un factor de escala. Se pueden aplicar esquemas conocidos para la codificación sin pérdidas de imágenes de tono continuo, logrando una compresión algo mejor que la del DPCM codificado por Huffman utilizado en JPEG.
En JPEG ya existen algunas opciones estándar, aunque poco utilizadas, para mejorar la eficiencia de la codificación de los coeficientes DCT: la opción de codificación aritmética y la opción de codificación progresiva (que produce tasas de bits más bajas porque los valores de cada coeficiente se codifican de forma independiente y cada coeficiente tiene una distribución significativamente diferente). Los métodos modernos han mejorado estas técnicas reordenando los coeficientes para agrupar los de mayor magnitud; [ 63 ] utilizando coeficientes y bloques adyacentes para predecir nuevos valores de coeficientes; [ 65 ] dividiendo bloques o coeficientes entre un pequeño número de modelos codificados de forma independiente en función de sus estadísticas y valores adyacentes; [ 64 ] [ 65 ] y, más recientemente, decodificando bloques, prediciendo bloques subsiguientes en el dominio espacial y luego codificándolos para generar predicciones de los coeficientes DCT. [ 66 ]
Por lo general, estos métodos pueden comprimir los archivos JPEG existentes entre un 15 y un 25 por ciento, y para los JPEG comprimidos con ajustes de baja calidad, pueden producir mejoras de hasta un 65 %. [ 65 ] [ 66 ]
Existen varios programas para la recompresión sin pérdida de calidad de archivos JPEG. Los archivos generados por estos programas no son compatibles con el estándar JPEG y requieren software especial para su decodificación.
- StuffIt Deluxe 9, un compresor propietario para Mac y Windows , lanzado en 2005, puede transcodificar archivos JPEG al formato de imagen StuffIt , con una reducción del tamaño del archivo de hasta un 28 %. [ 67 ]
- PackJPG es una herramienta de libre acceso basada en el artículo de 2007 «Improved Redundancy Reduction for JPEG Files». A partir de la versión 2.5k de 2016, informa una reducción típica del 20 % mediante transcodificación. [ 68 ]
- Lepton, desarrollado por Dropbox y utilizado en su servicio de almacenamiento de archivos desde 2016, reemplaza la codificación Huffman con codificación aritmética y un modelo estadístico personalizado, para una reducción del tamaño del archivo del 22 %. [ 69 ] [ 70 ] Puede reconstruir una copia bit a bit del archivo JPEG original. La implementación original, escrita en C++ y distribuida bajo la licencia Apache , ya no recibe mantenimiento activo. Dropbox sugiere a los usuarios que cambien a una reimplementación en Rust de Microsoft . [ 71 ] [ 72 ]
- Brunsli fue desarrollado por Google en 2017 y lanzado como herramienta independiente en 2019 bajo la licencia MIT . Afirma reducir el tamaño de los archivos en un 22 % y puede reconstruir una copia bit a bit del archivo JPEG original. [ 73 ] Desde entonces, Brunsli se ha integrado en JPEG XL.
- JPEG XL es un formato de imagen de propósito general que puede recomprimir la mayoría de los archivos JPEG y reconstruir una copia bit a bit del archivo JPEG original. La reducción del tamaño del archivo es de alrededor del 20 % para imágenes de alta calidad con submuestreo de croma 4:4:4 producidas por libjpeg y libjpeg-turbo . [ 74 ] JPEG XL es un estándar ISO/IEC y existen varias implementaciones con licencia libre.
Formatos derivados para 3D estereoscópico
JPEG estereoscópico

JPS es una imagen JPEG estereoscópica que se utiliza para crear efectos 3D a partir de imágenes 2D. Contiene dos imágenes estáticas, una para el ojo izquierdo y otra para el ojo derecho; codificadas como dos imágenes una al lado de la otra en un único archivo JPEG. JPEG Stereoscopic (JPS, extensión .jps) es un formato basado en JPEG para imágenes estereoscópicas . [ 75 ] [ 76 ] Tiene un rango de configuraciones almacenadas en el campo de marcador JPEG APP3, pero generalmente contiene una imagen de doble ancho, que representa dos imágenes de tamaño idéntico en una disposición cruzada (es decir, el marco izquierdo en la mitad derecha de la imagen y viceversa) una al lado de la otra. Este formato de archivo se puede ver como un JPEG sin ningún software especial, o se puede procesar para renderizar en otros modos.
Formato de imágenes múltiples JPEG
El formato JPEG Multi-Picture Format (MPO, extensión .mpo) es un formato basado en JPEG para almacenar múltiples imágenes en un solo archivo. Contiene dos o más archivos JPEG concatenados. [ 78 ] [ 79 ] También define un segmento de marcador JPEG APP2 para la descripción de la imagen. Varios dispositivos lo utilizan para almacenar imágenes 3D, como Fujifilm FinePix Real 3D W1 , HTC Evo 3D , videocámara JVC GY-HMZ1U AVCHD/MVC, Nintendo 3DS , Panasonic Lumix DMC-TZ20 , DMC-TZ30 , DMC-TZ60 , DMC-TS4 (FT4) y Sony DSC-HX7V. Otros dispositivos lo utilizan para almacenar "imágenes de vista previa" que se pueden mostrar en un televisor.
En los últimos años, debido al creciente uso de imágenes estereoscópicas, la comunidad científica ha dedicado mucho esfuerzo al desarrollo de algoritmos para la compresión de imágenes estereoscópicas. [ 80 ] [ 81 ]
Implementaciones
Una implementación muy importante de un códec JPEG es la biblioteca de programación libre libjpeg del Independent JPEG Group. Se publicó por primera vez en 1991 y fue clave para el éxito del estándar. Esta biblioteca se utilizó en innumerables aplicaciones. [ 3 ] El desarrollo se detuvo en 1998; cuando libjpeg resurgió con la versión 7 de 2009, rompió la compatibilidad ABI con versiones anteriores. La versión 8 de 2010 introdujo extensiones no estándar, una decisión criticada por el líder original del IJG, Tom Lane. [ 82 ]
libjpeg-turbo , bifurcado de libjpeg 6b de 1998, mejora libjpeg con optimizaciones SIMD . Originalmente considerado como una bifurcación mantenida de libjpeg, se ha vuelto más popular después de los cambios incompatibles de 2009. [ 83 ] [ 84 ] En 2019, se convirtió en la implementación de referencia ITU|ISO/IEC como ISO/IEC 10918-7 e ITU-T T.873. [ 85 ]
El Grupo Conjunto de Expertos en Fotografía ISO/IEC mantiene la otra implementación de software de referencia bajo el encabezado JPEG XT . Puede codificar tanto JPEG base (ISO/IEC 10918-1 y 18477-1) como extensiones JPEG XT (ISO/IEC 18477 Partes 2 y 6-9), así como JPEG-LS (ISO/IEC 14495). [ 86 ] En 2016, se introdujo "JPEG con esteroides" como una opción para la implementación de referencia ISO JPEG XT. [ 87 ]
Existe un interés constante en codificar JPEG de maneras no convencionales que maximicen la calidad de la imagen para un tamaño de archivo determinado. En 2014, Mozilla creó MozJPEG a partir de libjpeg-turbo, un codificador más lento pero de mayor calidad destinado a imágenes web. [ 88 ] En marzo de 2017, Google lanzó el proyecto de código abierto Guetzli , que sacrifica un tiempo de codificación mucho mayor a cambio de un tamaño de archivo menor (similar a lo que hace Zopfli para PNG y otros formatos de datos sin pérdida). [ 89 ]
En abril de 2024, Google presentó Jpegli , una nueva biblioteca de codificación JPEG que ofrece capacidades mejoradas y una mejora del 35 % en la relación de compresión con configuraciones de compresión de alta calidad, mientras que la velocidad de codificación es comparable a la de MozJPEG. [ 90 ]
Sucesores
El Grupo Conjunto de Expertos en Fotografía ha desarrollado varios estándares más recientes destinados a complementar o reemplazar la funcionalidad del formato JPEG original.
JPEG LS
JPEG LS, creado en 1993 y publicado como ISO-14495-1/ITU-T.87, ofrece un formato de archivo sin pérdida de baja complejidad, más eficiente que la implementación original sin pérdida de JPEG. También incluye un modo con pérdida similar al modo sin pérdida. Su funcionalidad se limita en gran medida a este modo y comparte, en otros aspectos, las mismas limitaciones que el JPEG original.
JPEG 2000
JPEG 2000 se publicó como ISO/IEC 15444 en diciembre de 2000. Se basa en una transformada discreta de ondículas (DWT) y fue diseñado para reemplazar por completo el estándar JPEG original y superarlo en todos los aspectos. Permite hasta 38 bits por canal de color y 16384 canales, más que cualquier otro formato, con una multitud de espacios de color y, por lo tanto, un alto rango dinámico (HDR). Además, admite codificación de transparencia alfa, imágenes de miles de millones de píxeles, también más que cualquier otro formato, y compresión sin pérdidas. Tiene una relación de compresión con pérdidas significativamente mejorada con artefactos visibles significativamente menores en niveles de compresión altos. [ 91 ]
JPEG XT
JPEG XT (ISO/IEC 18477) se publicó en junio de 2015; extiende el formato JPEG base con soporte para profundidades de bits enteros más altas (hasta 16 bits), imágenes de alto rango dinámico y codificación de punto flotante, codificación sin pérdidas y codificación de canal alfa. Las extensiones son retrocompatibles con el formato de archivo base JPEG/JFIF y la imagen comprimida con pérdidas de 8 bits. JPEG XT utiliza un formato de archivo extensible basado en JFIF. Las capas de extensión se utilizan para modificar la capa base JPEG de 8 bits y restaurar la imagen de alta resolución. El software existente es compatible con versiones posteriores y puede leer el flujo binario JPEG XT, aunque solo decodificaría la capa base de 8 bits. [ 92 ]
JPEG XL
JPEG XL (ISO/IEC 18181) se publicó en 2021-2022. Reemplaza el formato JPEG con un nuevo formato libre de regalías basado en DCT y permite una transcodificación eficiente como opción de almacenamiento para imágenes JPEG tradicionales. [ 93 ] El nuevo formato está diseñado para superar el rendimiento de compresión de imágenes fijas mostrado por HEIF HM, Daala y WebP . Admite imágenes de miles de millones de píxeles, hasta 32 bits por componente de alto rango dinámico con las funciones de transferencia apropiadas ( PQ y HLG ), codificación de parches de imágenes sintéticas como fuentes de mapa de bits y degradados, imágenes animadas, codificación de canal alfa y una selección de codificación de color RGB/YCbCr/ ICtCp . [ 94 ] [ 95 ] [ 96 ] [ 97 ]
Véase también
- AVIF
- Better Portable Graphics , un formato basado en la codificación intra-fotograma de HEVC.
- C-Cube , uno de los primeros en implementar JPEG en formato de chip.
- Comparación de formatos de archivos gráficos
- Filtro de eliminación de artefactos (vídeo) , se podrían aplicar métodos de eliminación de artefactos similares a JPEG
- Regla de diseño para el sistema de archivos de la cámara (DCF)
- FELICS , un códec de imagen sin pérdidas
- extensiones de archivo
- programa de edición de gráficos
- Formato de archivo de imagen de alta eficiencia , formato contenedor de imágenes para HEVC y otros formatos de codificación de imágenes.
- Lenna (imagen de prueba) , la imagen estándar tradicional utilizada para probar algoritmos de procesamiento de imágenes.
- Motion JPEG
- Ultra HDR añade compatibilidad con alto rango dinámico (HDR) a JPEG con retrocompatibilidad.
- WebP
Referencias
- 1 2 3 4 5 "T.81 – COMPRESIÓN DIGITAL Y CODIFICACIÓN DE IMÁGENES FIJAS DE TONO CONTINUO – REQUISITOS Y DIRECTRICES" (PDF) . CCITT . Septiembre de 1992. Archivado (PDF) del original el 30 de diciembre de 2019. Recuperado el 12 de julio de 2019 .
- ↑ "Definición de "JPEG"" . Diccionario inglés Collins . Archivado del original el 21 de septiembre de 2013 . Consultado el 23 de mayo de 2013 .
- 1 2 "Descripción general de JPEG 1" . Grupo Conjunto de Expertos en Fotografía . Archivado del original el 30 de enero de 2025. Recuperado el 5 de febrero de 2025 .
- ↑ Haines, Richard F.; Chuang, Sherry L. (1 de julio de 1992). Los efectos de la compresión de video en la aceptabilidad de imágenes para el monitoreo de experimentos de ciencias de la vida (Informe técnico). NASA . NASA-TP-3239, A-92040, NAS 1.60:3239 . Recuperado el 13 de marzo de 2016.
Los niveles de compresión de imágenes fijas JPEG, incluso con el amplio rango de 5:1 a 120:1 en este estudio, produjeron niveles igualmente altos de aceptabilidad.
- ^ Hudson , Graham; Léger, Alain; Niss, Birger; Sebestyén, István; Vaaben, Jørgen (31 de agosto de 2018). "Estándar JPEG-1 25 años: razones pasadas, presentes y futuras de un éxito" . Revista de imágenes electrónicas . 27 (4): 1. doi : 10.1117/1.JEI.27.4.040901 . S2CID 52164892 .
- ↑ Svetlik, Joe (31 de mayo de 2018). "Explicación del formato de imagen JPEG" . BT.com . Grupo BT . Archivado del original el 5 de agosto de 2019. Recuperado el 5 de agosto de 2019 .
- ↑ Baraniuk, Chris (15 de octubre de 2015). "Las protecciones de copia podrían llegar a los JPEG" . BBC News . BBC . Archivado del original el 9 de octubre de 2019. Recuperado el 13 de septiembre de 2019 .
- ^ Trinkwalder, Andrea (7 de octubre de 2016). «JPEG: 25 Jahre und kein bisschen alt» [ JPEG: 25 años (antiguo) y nada viejo ] . de: Heise en línea (en alemán). Archivado desde el original el 5 de septiembre de 2019 . Consultado el 5 de septiembre de 2019 .
- 1 2 3 "T.81 – COMPRESIÓN Y CODIFICACIÓN DIGITAL DE IMÁGENES FIJAS DE TONO CONTINUO – REQUISITOS Y DIRECTRICES" (PDF) . CCITT . Septiembre de 1992. Recuperado el 12 de julio de 2019 .
- ^ "JPEG: 25 Jahre und kein bisschen alt " . Heise en línea (en alemán). Octubre de 2016 . Consultado el 5 de septiembre de 2019 .
- ↑ Caplan, Paul (24 de septiembre de 2013). "¿Qué es un JPEG? El objeto invisible que ves todos los días" . The Atlantic . Archivado del original el 9 de octubre de 2019. Recuperado el 13 de septiembre de 2019 .
- ↑ "Archivo HTTP – Estadísticas interesantes" . httparchive.org . Consultado el 6 de abril de 2016 .
- ↑ "Detección de tipo MIME en Internet Explorer" . Microsoft. 13 de julio de 2016. Archivado del original el 30 de octubre de 2022. Consultado el 2 de noviembre de 2022 .
- ↑ "Formato de intercambio de archivos JPEG" (PDF) . 3 de septiembre de 2014. Archivado del original el 3 de septiembre de 2014. Consultado el 16 de octubre de 2017 .
{{cite web}}: CS1 maint: bot: estado de la URL original desconocido ( enlace ) - ↑ "Por qué JPEG 2000 nunca despegó" . Instituto Nacional Estadounidense de Estándares . 10 de julio de 2018. Archivado del original el 16 de diciembre de 2018. Consultado el 13 de septiembre de 2019 .
- ↑ Ahmed, Nasir (enero de 1991). "Cómo desarrollé la transformada discreta del coseno" . Procesamiento de señales digitales . 1 (1): 4– 5. Bibcode : 1991DSP.....1....4A . doi : 10.1016/1051-2004(91)90086-Z .
- ↑ Ahmed, Nasir ; Natarajan, T.; Rao, KR (enero de 1974), "Transformada discreta del coseno", IEEE Transactions on Computers , C-23 (1): 90–93 , Bibcode : 1974ITCmp.100...90A , doi : 10.1109/TC.1974.223784 , S2CID 149806273
- 1 2 3 4 Lemos, Robert (23 de julio de 2002). "Encontrando la verdad de la patente en la reivindicación JPEG" . CNET . Archivado del original el 13 de julio de 2019. Recuperado el 13 de julio de 2019 .
- ↑ ISO/IEC JTC 1/SC 29 (7 de mayo de 2009). "ISO/IEC JTC 1/SC 29/WG 1 – Codificación de imágenes fijas (SC 29/WG 1 Structure)" . Archivado del original el 31 de diciembre de 2013. Recuperado el 11 de noviembre de 2009 .
{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace ) - 1 2 ISO/IEC JTC 1/SC 29. "Programa de trabajo, (asignado a SC 29/WG 1)" . Archivado del original el 31 de diciembre de 2013. Recuperado el 7 de noviembre de 2009 .
{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace ) - ↑ ISO. "JTC 1/SC 29 – Codificación de información de audio, imagen, multimedia e hipermedia" . Archivado del original el 3 de julio de 2010. Recuperado el 11 de noviembre de 2009 .
- 1 2 JPEG. "Joint Photographic Experts Group, JPEG Homepage" . Archivado del original el 27 de septiembre de 2009. Recuperado el 8 de noviembre de 2009 .
- ↑ "T.81: Tecnología de la información – Compresión y codificación digital de imágenes fijas de tono continuo – Requisitos y directrices" . Itu.int . Archivado del original el 6 de noviembre de 2012. Recuperado el 7 de noviembre de 2009 .
- ↑ William B. Pennebaker; Joan L. Mitchell (1993). Estándar de compresión de datos de imágenes fijas JPEG (3.ª ed.). Springer. pág. 291. ISBN 978-0-442-01272-4.
- ↑ ISO. "JTC 1/SC 29 – Codificación de información de audio, imagen, multimedia e hipermedia" . Archivado del original el 3 de julio de 2010. Recuperado el 7 de noviembre de 2009 .
- ↑ "SPIFF, formato de archivo de intercambio de imágenes fijas" . Biblioteca del Congreso . 30 de enero de 2012. Archivado del original el 31 de julio de 2018. Consultado el 31 de julio de 2018 .
- ↑ Louis Sharpe (24 de abril de 2009). "JPEG XR entra en la categoría FDIS. El formato de intercambio de archivos JPEG (JFIF) se estandarizará como JPEG Parte 5" (Comunicado de prensa). Archivado del original el 8 de octubre de 2009. Consultado el 9 de noviembre de 2009 .
- ↑ "Formato de intercambio de archivos JPEG (JFIF)" . ECMA TR/98 1.ª ed . Ecma International . 2009. Archivado del original el 14 de enero de 2021. Consultado el 1 de agosto de 2011 .
- ↑ "Patente JPEG de Forgent" . SourceForge . 2002. Archivado del original el 13 de mayo de 2019. Consultado el 13 de julio de 2019 .
- ↑ "Sobre las recientes reivindicaciones de patentes" . Jpeg.org . 19 de julio de 2002. Archivado del original el 14 de julio de 2007. Consultado el 29 de mayo de 2011 .
- ↑ "JPEG y JPEG2000 : entre la disputa de patentes y el cambio tecnológico" . Archivado del original el 17 de agosto de 2004. Consultado el 16 de abril de 2017 .
{{cite web}}: CS1 maint: bot: estado de la URL original desconocido ( enlace ) - ↑ Kawamoto, Dawn (22 de abril de 2005). "La demanda por patentes gráficas contraataca a Microsoft" . Noticias de CNET . Archivado del original el 20 de enero de 2023. Recuperado el 20 de enero de 2023 .
- ↑ "La Oficina de Marcas reexamina la patente JPEG de Forgent" . Publish.com . 3 de febrero de 2006. Archivado del original el 15 de mayo de 2016. Consultado el 28 de enero de 2009 .
- ↑ "USPTO: La alegación más amplia que Forgent presenta contra el estándar JPEG es inválida" . Groklaw.net . 26 de mayo de 2006. Archivado del original el 16 de mayo de 2019. Consultado el 21 de julio de 2007 .
- ↑ "Sistema de codificación para reducir la redundancia" . Gauss.ffii.org . Archivado del original el 12 de junio de 2011. Consultado el 29 de mayo de 2011 .
- ↑ "Renuncia a la reclamación de patente JPEG" . Public Patent Foundation. 2 de noviembre de 2006. Archivado del original el 2 de enero de 2007. Consultado el 3 de noviembre de 2006 .
- ↑ "Certificado de reexaminación ex parte para la patente estadounidense n.° 5,253,341" . Archivado del original el 2 de junio de 2008.
- ↑ Grupo de trabajo. "Rozmanith: Uso de patentes de software para silenciar a los críticos" . Eupat.ffii.org . Archivado del original el 16 de julio de 2011. Consultado el 29 de mayo de 2011 .
- ↑ "Recompensa de 5000 dólares por revelar la identidad del responsable de los trolls: Ray Niro quiere saber quién está diciendo todas esas cosas desagradables sobre él" . Law.com . Archivado del original el 21 de noviembre de 2010. Consultado el 29 de mayo de 2011 .
- ↑ Reimer, Jeremy (5 de febrero de 2008). "Caza de trolls: se le pide a la USPTO que reexamine una patente de imagen amplia" . Arstechnica.com . Archivado del original el 8 de diciembre de 2008. Recuperado el 29 de mayo de 2011 .
- ↑ Oficina de Patentes de EE. UU. – Concesión de reexamen para la patente 5,253,341 C1
- ↑ "Juez suspende patente JPEG" . Techdirt.com . 30 de abril de 2008. Archivado del original el 14 de noviembre de 2011. Consultado el 29 de mayo de 2011 .
- ↑ "Rechazada la única reivindicación de la patente JPEG (y desestimada por si acaso)" . Techdirt.com . 1 de agosto de 2008. Archivado del original el 28 de noviembre de 2019. Consultado el 29 de mayo de 2011 .
- ↑ Grupo de trabajo. "Página principal de Princeton Digital Image Corporation" . Consultado el 1 de mayo de 2013 .
- ↑ Grupo de trabajo (3 de abril de 2013). «Artículo sobre el fallo del Tribunal de Princeton relativo al acuerdo de licencia de GE» . Archivado del original el 9 de marzo de 2016. Consultado el 1 de mayo de 2013 .
- 1 2 Kaur, Rajandeep (mayo de 2016). "Una revisión de las técnicas de compresión de imágenes" . Revista internacional de aplicaciones informáticas . 142 (1): 8– 11. doi : 10.5120/ijca2016909658 .
- ↑ "Descripción general de la decodificación progresiva" . Microsoft Developer Network . Microsoft. Archivado del original el 19 de noviembre de 2012. Consultado el 23 de marzo de 2012 .
- ↑ Fastvideo (mayo de 2019). "Codificador JPEG de 12 bits en GPU" . Archivado del original el 6 de mayo de 2019. Recuperado el 6 de mayo de 2019 .
- ↑ "Por qué siempre debes rotar las fotos JPEG originales sin pérdida de calidad" . Petapixel.com . 14 de agosto de 2012. Archivado del original el 17 de octubre de 2017. Consultado el 16 de octubre de 2017 .
- ↑ "Formato de archivo JFIF como PDF" (PDF) . Archivado (PDF) del original el 13 de enero de 2021. Recuperado el 19 de junio de 2006 .
- ↑ Tom Lane (29 de marzo de 1999). "Preguntas frecuentes sobre compresión de imágenes JPEG" . Archivado del original el 10 de noviembre de 2010. Recuperado el 11 de septiembre de 2007 .(P. 14: "¿Por qué tanta discusión sobre los formatos de archivo?")
- ↑ "Todo lo que necesitas saber sobre los archivos JPEG | Adobe" . www.adobe.com . Consultado el 18 de agosto de 2023 .
- 1 2 "Un espacio de color estándar predeterminado para Internet - sRGB" . www.w3.org . Archivado del original el 18 de febrero de 2022. Recuperado el 18 de febrero de 2022 .
- 1 2 "IEC 61966-2-1:1999/AMD1:2003 | Tienda web de la IEC" . webstore.iec.ch . Archivado del original el 18 de febrero de 2022. Consultado el 18 de febrero de 2022 .
- ↑ "ISO/IEC 10918-1: 1993(E) p.36" . Archivado del original el 1 de agosto de 2011. Recuperado el 30 de noviembre de 2007 .
- ↑ Thomas G. Lane. "Funciones avanzadas: selección de parámetros de compresión" . Uso de la biblioteca JPEG de IJG . Archivado del original el 26 de noviembre de 2001. Consultado el 8 de octubre de 2008 .
- ↑ "Preguntas sobre frecuencia CC/CA - Foro de Doom9" . forum.doom9.org . Archivado del original el 17 de octubre de 2017. Consultado el 16 de octubre de 2017 .
- ↑ Maini, Raman; Mehra, Suruchi (diciembre de 2010). "Una revisión sobre la compresión de imágenes JPEG2000" . Revista Internacional de Aplicaciones Informáticas . 11 (9): 43– 47. doi : 10.5120/1607-2159 – vía CiteSeerX.
- 1 2 Phuc-Tue Le Dinh y Jacques Patry. Artefactos de compresión de vídeo y reducción de ruido MPEG. Archivado el 14 de marzo de 2006 en Wayback Machine . Video Imaging DesignLine. 24 de febrero de 2006. Consultado el 28 de mayo de 2009.
- ↑ " 3.9 Ruido de mosquito: Forma de distorsión por movimiento de bordes a veces asociada con el movimiento, caracterizada por artefactos en movimiento y/o patrones de ruido irregulares superpuestos sobre los objetos (que se asemejan a un mosquito volando alrededor de la cabeza y los hombros de una persona)." Recomendación ITU-T P.930 (08/96) Principios de un sistema de referencia de deterioro para vídeo. Archivado el 16/02/2010 en Wayback Machine.
- ↑ Recomendación T.83 de la UIT | ISO/IEC 10918-2
- ↑ Julià Minguillón, Jaume Pujol (abril de 2001). "Modelado de errores de cuantificación uniforme estándar JPEG con aplicaciones a modos de operación secuenciales y progresivos" ( PDF) . Electronic Imaging . 10 (2): 475– 485. Bibcode : 2001JEI....10..475M . doi : 10.1117/1.1344592 . hdl : 10609/6263 . S2CID 16629522. Archivado (PDF) del original el 3 de agosto de 2020. Recuperado el 23 de septiembre de 2019 .
- 1 2 I. Bauermann y E. Steinbach. Compresión sin pérdidas adicional de imágenes JPEG. Actas del Simposio de Codificación de Imágenes (PCS 2004), San Francisco, EE. UU., 15-17 de diciembre de 2004.
- 1 2 N. Ponomarenko, K. Egiazarian, V. Lukin y J. Astola. Compresión adicional sin pérdidas de imágenes JPEG, Proc. del 4to Internacional. Simposio sobre procesamiento y análisis de imágenes y señales (ISPA 2005), Zagreb, Croacia, págs. 117–120, 15–17 de septiembre de 2005.
- 1 2 3 4 M. Stirner y G. Seelmann. Reducción mejorada de la redundancia para archivos JPEG. Actas del Simposio de Codificación de Imágenes (PCS 2007), Lisboa, Portugal, 7-9 de noviembre de 2007.
- 1 2 3 Ichiro Matsuda, Yukio Nomoto, Kei Wakabayashi y Susumu Itoh. Recodificación sin pérdidas de imágenes JPEG mediante predicción intra adaptativa por bloques. Actas de la 16.ª Conferencia Europea de Procesamiento de Señales (EUSIPCO 2008).
- ↑ Knight, Will (12 de enero de 2005). "Se afirma que se ha mejorado la tecnología de reducción de imágenes" . New Scientist . Archivado del original el 17 de enero de 2005.
- ↑ Stirner, Matthias (19 de febrero de 2023). "packjpg/packJPG" . GitHub . Archivado del original el 2 de marzo de 2023. Recuperado el 2 de marzo de 2023 .
- ↑ Reiter Horn, Daniel; Elkabany, Ken; Lesniewski-Lass, Chris; Winstein, Keith (marzo de 2017). Diseño, implementación y despliegue de un sistema para comprimir de forma transparente cientos de petabytes de archivos de imagen para un servicio de almacenamiento de archivos . 14.º Simposio USENIX sobre diseño e implementación de sistemas en red. Asociación USENIX . págs. 1-15 . ISBN 978-1-931971-37-9.
- ↑ Reiter Horn, Daniel (14 de julio de 2016). "Compresión de imágenes Lepton: ahorro del 22 % sin pérdidas en imágenes a 15 MB/s" . Dropbox . Archivado del original el 24 de diciembre de 2025.
- ↑ "Lepton" . GitHub . Archivado del original el 23 de febrero de 2026.
- ↑ lepton jpeg rust en GitHub
- ↑ brunsli en GitHub
- ^ Sneyers, Jon; Alakuijala, Jyrki; Versari, Luca; Szabadka, Zoltán; Boukortt, Sami; Cohen-Tidhar, Amnón; Firsching, Moritz; Kliuchnikov, Evgenii; Lev-Ami, Tal; Portis, Eric; Richter, Thomas; Watanabe, Osamu (13 de junio de 2025). "El sistema de codificación de imágenes JPEG XL: historia, características, herramientas de codificación, fundamentos del diseño y futuro". arXiv : 2506.05987 [ cs.MM ].
- ↑ J. Siragusa; DC Swift (1997). "Descriptor de datos estereoscópicos de propósito general" (PDF) . VRex, Inc., Elmsford, Nueva York, EE. UU . Archivado del original (PDF) el 30 de octubre de 2011.
- ↑ Tim Kemp, archivos de JPS archivados el 18 de enero de 2009 en Wayback Machine
- ↑ "CGImageSource.SupportedTypes" . Complemento Claris FileMaker MBS . MonkeyBread Software. Archivado del original el 30 de diciembre de 2020. Consultado el 21 de mayo de 2023 .
- ↑ "Formato de imágenes múltiples" (PDF) . 2009. Archivado del original (PDF) el 5 de abril de 2016. Recuperado el 30 de diciembre de 2015 .
- ↑ "MPO2Stereo: Convierte archivos MPO de Fujifilm a pares estéreo JPEG" , Mtbs3d.com , archivado del original el 31 de mayo de 2010 , consultado el 12 de enero de 2010.
- ↑ Alessandro Ortis; Sebastiano Battiato (2015), Sitnik, Robert; Puech, William (eds.), "Un nuevo método de coincidencia rápida para la compresión adaptativa de imágenes estereoscópicas" , Procesamiento de imágenes tridimensionales , Procesamiento de imágenes tridimensionales, medición (3DIPM) y aplicaciones 2015, 9393 , SPIE - Procesamiento de imágenes tridimensionales, medición (3DIPM) y aplicaciones 2015: 93930K, Bibcode : 2015SPIE.9393E..0KO , doi : 10.1117/12.2086372 , S2CID 18879942 , archivado del original el 3 de marzo de 2016 , recuperado el 30 de abril de 2015
- ↑ Alessandro Ortis; Francesco Rundo; Giuseppe Di Giore; Sebastiano Battiato, Compresión adaptativa de imágenes estereoscópicas , Conferencia Internacional sobre Análisis y Procesamiento de Imágenes (ICIAP) 2013, archivado del original el 3 de marzo de 2016 , recuperado el 30 de abril de 2015.
- ↑ Tom Lane, 16 de enero de 2013: jpeg-9, compatibilidad API/ABI y el futuro papel de este proyecto. Archivado el 4 de diciembre de 2018 en Wayback Machine.
- ↑ Software que utiliza o proporciona libjpeg-turbo Archivado el 18 de marzo de 2017 en Wayback Machine . 9 de febrero de 2012.
- ↑ Problema 48789 – chromium – Usar libjpeg-turbo en lugar de libjpeg Archivado el 1 de agosto de 2015 en Wayback Machine . 14 de abril de 2011.
- ↑ "ISO/IEC 10918-7: 2023 Tecnología de la información — Compresión y codificación digital de imágenes fijas de tono continuo — Parte 7: Software de referencia" . ISO . Consultado el 24 de junio de 2025 ."T.873 (05/19): Tecnología de la información - Compresión y codificación digital de imágenes fijas de tono continuo: Software de referencia" . www.itu.int . Archivado del original el 2 de junio de 2022. Consultado el 1 de marzo de 2023 .
- ↑ "JPEG - JPEG XT" . jpeg.org . Archivado del original el 4 de marzo de 2018. Consultado el 3 de marzo de 2018 .
- ↑ Richter, Thomas (septiembre de 2016). "JPEG con esteroides: técnicas comunes de optimización para la compresión de imágenes JPEG". 2016 IEEE International Conference on Image Processing (ICIP) . págs. 61–65 . doi : 10.1109/ICIP.2016.7532319 . ISBN 978-1-4673-9961-6. S2CID 14922251 .
- ↑ "Presentación del proyecto 'mozjpeg'" . Mozilla Research . 5 de marzo de 2014. Archivado del original el 1 de marzo de 2023. Consultado el 1 de marzo de 2023 .
- ↑ "Presentamos Guetzli: un nuevo codificador JPEG de código abierto" . Research.googleblog.com . 16 de marzo de 2017. Archivado del original el 6 de octubre de 2017. Consultado el 16 de octubre de 2017 .
- ↑ "Presentamos Jpegli: una nueva biblioteca de codificación JPEG" . Blog de código abierto de Google. 3 de abril de 2024. Archivado del original el 3 de abril de 2024. Consultado el 4 de abril de 2024 .
- ↑ Sneyers, Jon (22 de febrero de 2021). "Ya es hora de reemplazar JPEG con un códec de imagen de próxima generación" . Cloudinary . Consultado el 14 de noviembre de 2023 .
- ↑ "JPEG - JPEG XT" . jpeg.org . Archivado del original el 4 de marzo de 2018. Consultado el 3 de marzo de 2018 .
- ↑ Alakuijala, Jyrki; van Asseldonk, Ruud; Boukortt, Sami; Bruse, Martín; Comșa, Iulia-Maria; Firsching, Moritz; Fischbacher, Thomas; Kliuchnikov, Evgenii; Gómez, Sebastián; Obryk, Robert; Potempa, Krzysztof; Rhatushnyak, Alejandro; Sneyers, Jon; Szabadka, Zoltan; Vandervenne, Lode; Versari, Luca; Wassenberg, enero (6 de septiembre de 2019). "Herramientas de codificación y arquitectura de compresión de imágenes de próxima generación JPEG XL" . En Tescher, Andrew G; Ebrahimi, Touradj (eds.). Aplicaciones del Procesamiento Digital de Imágenes XLII . vol. 11137. pág. 20. Código Bib : 2019SPIE11137E..0KA . doi : 10.1117/12.2529237 . ISBN 978-1-5106-2967-7. S2CID 202785129 . Archivado del original el 26 de diciembre de 2021 . Recuperado el 26 de diciembre de 2021 .
- ^ Rhatushnyak, Alejandro; Wassenberg, enero; Sneyers, Jon; Alakuijala, Jyrki; Vandevenne, Lode; Versari, Luca; Obryk, Robert; Szabadka, Zoltan; Kliuchnikov, Evgenii; Comsa, Iulia-Maria; Potempa, Krzysztof; Bruse, Martín; Firsching, Moritz; Khasanova, Renata; Ruud van Asseldonk; Boukortt, Sami; Gómez, Sebastián; Fischbacher, Thomas (2019). "Borrador del comité del sistema de codificación de imágenes JPEG XL". arXiv : 1908.03565 [ eess.IV ].
- ↑ "N79010 Convocatoria final de propuestas para un estándar de codificación de imágenes de próxima generación (JPEG XL)" (PDF) . ISO/IEC JTC 1/SC 29/WG 1 (ITU-T SG16) . Archivado (PDF) del original el 31 de octubre de 2022. Consultado el 29 de mayo de 2018 .
- ↑ ISO/IEC 18181-1:2022 Tecnología de la información — Sistema de codificación de imágenes JPEG XL — Parte 1: Sistema de codificación central .
- ↑ ISO/IEC 18181-2:2021 Tecnología de la información — Sistema de codificación de imágenes JPEG XL — Parte 2: Formato de archivo .
Enlaces externos
- Sitio web oficial

- Estándar JPEG (JPEG ISO/IEC 10918-1 Recomendación ITU-T T.81) en W3.org
- Formato de intercambio de archivos JPEG (JFIF), versión 1.02, septiembre de 1992 en W3.org
- Descripción del formato de la familia de codificación de imágenes JPEG de la Biblioteca del Congreso.
- Imágenes de ejemplo que abarcan todo el rango de niveles de cuantización, desde 1 hasta 100, en visengi.com.
- JPEG
- Introducciones relacionadas con la informática en 1992
- Controversias sobre descubrimientos e invenciones
- Normas IEC
- Compresión de imágenes
- normas ISO
- Recomendaciones de la UIT-T
- Algoritmos de compresión con pérdida
- Formatos abiertos
- Formatos de archivo de gráficos rasterizados
