Prepárese para una publicación inmensa: sí, esto se salió de control ...
Obligatorio xkcd:
Desafortunadamente, no existe un formato "mejor" simple. Algunos son muy compatibles, algunos ofrecen una versatilidad extrema, algunos ofrecen compresión sin pérdidas, ...
La primera parte de esta respuesta ("Características" y "Breve resumen de los formatos") hablará sobre tecnicismos, mientras que la segunda parte ("(Otras) Cosas a considerar") está más dirigida a los aspectos prácticos de la elección del formato. .
caracteristicas:
Tenga en cuenta que es casi imposible incluir cada truco en cada formato; por ejemplo, los GIF se pueden guardar sin compresión ignorando la tabla LZW. ¿Por qué no menciono esto a continuación? Debido a que el 99% de todos los GIF que he encontrado usaban LZW, porque LZW hoy es una obviedad en potencia de cálculo, y porque esta publicación trata de aclarar la situación para situaciones populares, no para el departamento de I + D de ILM. Los fotógrafos usarán sus archivos para archivar, publicar e imprimir, así que estas son las cosas que considero aquí.
Información verificada entre los respectivos artículos de Wikipedia, especificaciones, comparación de Wiki y la lista de soporte de metadatos de exiftool .
| Bits per | | Supported by
Codec | Lossy | Channel | Metadata | Channels | Programs | Good for (IMHO)
-------------------------------------------------------------------------------------------------
BMP | n | <= 8 | - | RGBA | Most propr. & free | Archival
BPG | y | <= 14 | EXIF+XMP | RGBA | |
EXR | o | <= 32 | y(?) | RGBAD | | VFX workflow
FLIF | o* | <= 16 | EXIF+XMP | RGBA | | To be seen
GIF | n | <= 8* | XMP | RGB | Most propr. & free | GIFs ;-)
HEIF | o* | <= 16 | EXIF+XMP | RGB(A/D) | | To be seen
JPEG | y* | <= 8 | EXIF+IPTC+XMP | RGB | ~ all propr. & free | Online; Easy access
JP2K | o | <= 32 | EXIF+IPTC+XMP | RGBA | |
JXR | o | <= 32 | EXIF+IPTC+XMP | RGBA | |
PNG | n | <= 16 | EXIF+IPTC+XMP*| RGBA | Most propr. & free | CAD-drawings; Online
TGA | n | <= 8 | y(?) | RGBA | |
TIFF | o | <= 32 | EXIF+XMP | RGBA | Most propr. & free | Archival; Editing
WebP | o | <= 8 | EXIF+XMP | RGBA | |
Leyenda : o
... Opcional; n
... no disponible; y
... disponible; D
... profundidad; *
... Mira a continuación el texto correspondiente.
Breve resumen de los formatos:
BMP
Feature |
-----------------------------------------------------------------
Introduced | 1990
Open + Free | Both per Microsoft's Open Specification Promise
Colorspace | R:G:B[:A] (4:4:4[:4])
b/c/p | 1:0:0[:0], 5:6:5, 8:8:8[:8]
Compression | None [RLE in 5:6:4] (so: lossless)
Maximum Size | 4 GiB
Metadata | [ICC]
OS support | Virtually all OSs with a graphical interface
Leyenda : b/c/p
... bits por canal (por ejemplo, R, G, B) por píxel. las cosas en [ ]
son opcionales; ?
... adivinado educado / sin pista.
Los archivos de 'mapa de bits' están codificados en líneas y, por lo general, no están comprimidos, por lo que un solo giro de un bit solo destruirá una línea de la imagen siempre que no voltee el encabezado, lo que dificultará la decodificación: pruébelo usted mismo con un HEX ¡editor! . Como no ofrece compresión (buena), los tamaños de archivo son enormes, ya que tiene que guardar la información completa para cada píxel. Debido a su rigidez, puede ser bueno para el archivo a largo plazo.
BPG
Feature |
---------------------------------------------------------------------
Introduced | 2014
Open + Free | Yes (but HEVC patents might be problematic)
Colorspace | R:G:B[:A] (4:4:4[:4]); Y:Cb:CR[:A] (4:2:0[:4] - 4:4:4[:4]);
| Y:Cg:Co[:A] (4:2:0[:4] - 4:4:4[:4]); C:M:Y:K (4:4:4:4)
b/c/p | 8 - 14
Compression | HEVC (lossy / lossless)
Maximum Size | ?
Metadata | [EXIF]; [ICC]; [XMP]
OS support | Linux, Mac, Windows (at least through browser decoding)
Leyenda : b/c/p
... bits por canal (por ejemplo, R, G, B) por píxel. las cosas en [ ]
son opcionales; ?
... adivinado educado / sin pista.
'Better Portable Graphics' (BPG) utiliza HEVC, que puede conocer del códec de video h.265 . Estaba destinado a ser el sucesor de JPEG, pero nunca se hizo lo suficientemente popular. Con el aumento de HEIF, que es bastante similar en algunos aspectos pero más popular, es plausible que se prefiera HEIF. HEVC es muy superior en términos de compresión en comparación con DCT de JPEG; sin embargo, no se compara bien en todos, excepto en las tasas de bits más bajas, ya que tiende a ser borroso.
EXR
Feature |
---------------------------------------------------------------------
Introduced | 1999
Open + Free | Yes
Colorspace | R:G:B[:A][:D] (4:4:4[:4][:4])
b/c/p | <= 32
Compression | [RLE]; [ZIP]; [PIZ]; ... [lossless (usual) / lossy]
Maximum Size | > 4 GiB
Metadata | [Yes (XMP-style)]
OS support | Linux, Mac, Windows (through library)
Leyenda : b/c/p
... bits por canal (por ejemplo, R, G, B) por píxel. las cosas en [ ]
son opcionales; ?
... adivinado educado / sin pista.
OpenEXR fue diseñado por Industrial Lights and Magic (ILM) como un formato intermedio para flujos de trabajo de efectos visuales. Puede contener múltiples canales a profundidades de bits muy altas, múltiples imágenes y metadatos en un solo archivo. Ofrece diferentes algoritmos de compresión, o ninguna compresión. EXR se puede comparar con TIFF: EXR ofrece más opciones, mientras que TIFF es mucho más popular.
FLIF
Feature |
---------------------------------------------------------------------
Introduced | 2015
Open + Free | Yes
Colorspace | R:G:B[:A] (4:4:4[:4]) (CMYK and YCbCr in ToDo-List)
b/c/p | <= 16
Compression | MANIAC (variant of CABAC, used in AVC/HEVC) (lossless / lossy (1st generation))
Maximum Size | > 4 GiB
Metadata | [EXIF]; [ICC]; [XMP]
OS support | Linux, Mac, Windows (through provided viewer)
Leyenda : b/c/p
... bits por canal (por ejemplo, R, G, B) por píxel. las cosas en [ ]
son opcionales; ?
... adivinado educado / sin pista.
El 'Formato de imagen sin pérdida libre' (FLIF) utiliza un derivado de la compresión HEVC que no tiene pérdida. FLIF afirma tener relaciones de compresión extremas en comparación con todos los demás formatos de la época, mientras que mis propias pruebas me llevaron a creer esto, realmente necesita poder de cómputo para ser utilizable (Varios minutos de tiempo de codificación para una sola imagen de 24 MP con una imagen hipertrabada El hexacore de 4,3 GHz no es tan bueno: D) . Sin embargo, como es un códec joven, pueden surgir mejoras. Ofrece soporte para animaciones, canales alfa, decodificación progresiva e incluso codificación con pérdida (sin más pérdidas de generación después de la primera codificación). Solo el tiempo mostrará si tendrá éxito, y para ser honesto, espero que sí, ya que parece ofrecer una solución única para múltiples problemas.
GIF
Feature |
---------------------------------------------------------------------
Introduced | 1987
Open + Free | Yes
Colorspace | R:G:B[:A] (4:4:4[:4])
b/c/p | 2 (palette of 256 colors in total)
Compression | LZW (lossless)
Maximum Size | < 4 GiB
Metadata | [XMP]
OS support | Virtually all OSs with a graphical interface
Leyenda : b/c/p
... bits por canal (por ejemplo, R, G, B) por píxel. las cosas en [ ]
son opcionales; ?
... adivinado educado / sin pista.
Si bien el 'Formato de intercambio de gráficos' (GIF) ofrece 8 bits por canal por píxel, los reducirá a una paleta de colores de 256 colores (que puede incluir un "color de fondo"). Se usa principalmente para animaciones, lo único que PNG no puede hacer mejor, ya que PNG en sí mismo no ofrece soporte de animación.
HEIF
Feature |
----------------------------------------------------------------------
Introduced | 2015
Open + Free | No (patents)
Colorspace | ? Y:Cb:Cr[:A/:D] (4:2:0[:4]) ?
b/c/p | <= 16
Compression | HEVC (lossy)
Maximum Size | < 4 GiB
Metadata | [EXIF]; [XMP]
OS support | Linux, Mac, Windows
Leyenda : b/c/p
... bits por canal (por ejemplo, R, G, B) por píxel. las cosas en [ ]
son opcionales; ?
... adivinado educado / sin pista.
El 'Formato de imagen de alta eficiencia' (HEIF) también usa HEVC para la compresión. Además de los canales de color, también puede contener un canal alfa o un mapa de profundidad (utilizado para efectos posteriores de profundidad de campo del software ). Además, la edición rudimentaria puede ocurrir sin pérdidas. Según las especificaciones, también tiene un modo de compresión sin pérdidas. Dado que todos los principales sistemas operativos lo admiten, parece ser el contendiente más probable para una sucesión de JPEG (si alguna vez hay uno).
JPEG
Feature |
----------------------------------------------------------------------
Introduced | 1991
Open + Free | Sort of (free library, but patent might apply)
Colorspace | Y:Cb:Cr (4:2:0 (typical) - 4:4:4)
b/c/p | 8
Compression | DCT (lossy)
Maximum Size | < 2 GiB
Metadata | [EXIF]; [ICC]; [IPTC]; [XMP]
OS support | Virtually all OSs with a graphical interface
Leyenda : b/c/p
... bits por canal (por ejemplo, R, G, B) por píxel. las cosas en [ ]
son opcionales; ?
... adivinado educado / sin pista.
'Joint Photographic Experts Group' (JPEG) es posiblemente el formato de imagen más utilizado en la actualidad. Utiliza la transformación discreta del coseno (DCT), que es del tipo con pérdida. Hay una especificación sin pérdidas, pero no se usa con demasiada frecuencia. Ciertos programas pueden realizar ciertas acciones rudimentarias (por ejemplo, rotación) sin pérdidas, aunque esto también requiere que el ancho y la altura de la imagen sean divisibles por 8 (el tamaño de bloque de JPEG); por ejemplo, 800x640 funcionará, 804x643 no. JPEG no tiene ninguna opción para guardar imágenes en RGB: transforma la imagen en el espacio de color YCbCr y a menudo reduce la información de píxeles de 4: 4: 4 (cada píxel tiene todos los canales) a 4: 2: 0 (cada canal tiene luminancia, pero solo cada 4º píxel obtiene un valor Cb / Cr). Como con la mayoría de las conversiones de espacio de color, esto puede conducir a diferencias perceptibles, especialmente en colores extremos. JPEG es rápido de codificar y no está mal en configuraciones de alta calidad, pero para mí, las cosas mencionadas anteriormente no me harían llorar si alguna vez desapareciera, nos sirvió bien, pero los formatos de imagen utilizados podrían ser un poco más ... reciente. Después de todo, las computadoras evolucionaron bien desde 1991.
JP2k
Feature |
----------------------------------------------------------------------
Introduced | 2000 (duh...)
Open + Free | No (patents)
Colorspace | ? Y:Cb:Cr[:A] (4:4:4[:4]) ?
b/c/p | 8 - 32
Compression | Wavelet (lossy / lossless)
Maximum Size | ?
Metadata | [EXIF]; [ICC]; [IPTC]; [XMP]
OS support | Linux, Mac, Windows (at least through viewer programs)
Leyenda : b/c/p
... bits por canal (por ejemplo, R, G, B) por píxel. las cosas en [ ]
son opcionales; ?
... adivinado educado / sin pista.
'JPEG 2000' (JP2k o JP2) es el sucesor oficial de JPEG. Utiliza wavelets en lugar de DCT, que ofrecen menos artefactos en bloque y, en general, es más versátil que JPEG. A pesar de todo esto, nunca alcanzó a JPEG.
JXR
Feature |
----------------------------------------------------------------------
Introduced | 2009
Open + Free | Yes (Microsoft Open Specification Promise)
Colorspace | Y:Cb:Cr[:A] (4:2:0[:4] - 4:4:4[:4]); Y:Cg:Co[:A] (? 4:2:0[:4] - 4:4:4[:4] ?);
| C:M:Y:K [4:4:4:4]
b/c/p | 8 - 32 (16 for CMYK)
Compression | DCT (lossy / lossless)
Maximum Size | ?
Metadata | [EXIF]; [ICC]; [IPTC]; [XMP]
OS support | Linux, Mac, Windows (at least through viewer programs)
Leyenda : b/c/p
... bits por canal (por ejemplo, R, G, B) por píxel. las cosas en [ ]
son opcionales; ?
... adivinado educado / sin pista.
El 'rango extendido JPEG' (JPEG XR, JXR) es otro intento de tener éxito JPEG. Su espacio de color YCgCo es superior a YCbCr porque es completamente reversible. Si bien algunos programas lo admiten, tampoco se acercó a la fama de otros formatos.
PNG
Feature |
----------------------------------------------------------------------
Introduced | 1996
Open + Free | Yes
Colorspace | R:G:B[:A] (4:4:4[:4])
b/c/p | 8 - 16
Compression | DEFLATE (lossless)
Maximum Size | ?
Metadata | [EXIF]; [ICC]; [IPTC]; [XMP]
OS support | Virtually all OSs with a graphical interface
Leyenda : b/c/p
... bits por canal (por ejemplo, R, G, B) por píxel. las cosas en [ ]
son opcionales; ?
... adivinado educado / sin pista.
'Portable Network Graphics' (PNG) se introdujo como sucesor de GIF. Si bien no tiene pérdidas de diseño, los archivos PNG se pueden optimizar con varias herramientas, algunas de las cuales comprimirán el archivo de forma con pérdida. PNG utiliza la compresión DEFLATE, por lo que es bastante eficiente para gráficos (como dibujos CAD, capturas de pantalla, ...), pero menos eficiente para fotografías. Si bien ofrece soporte para metadatos, algunos programas tienen problemas para leerlos. Gracias por el aviso , @mattdm !
TGA
Feature |
----------------------------------------------------------------------
Introduced | 1984
Open + Free | ? Yes
Colorspace | R:G:B[:A] (4:4:4[:4])
b/c/p | <= 8
Compression | RLE (lossless)
Maximum Size | ? < 2 GiB
Metadata | Rudimentary
OS support | ? Virtually all OSs with a graphical interface
Leyenda : b/c/p
... bits por canal (por ejemplo, R, G, B) por píxel. las cosas en [ ]
son opcionales; ?
... adivinado educado / sin pista.
'Truevision TGA' / 'TARGA' (TGA) es un formato fie que solo incluí porque todo el mundo parece saberlo. Fue introducido en 1984. Es compatible con la compresión sin pérdida (RLE), que funcionará bien para gráficos, pero no tan bien para fotografías.
PELEA
Feature |
----------------------------------------------------------------------
Introduced | 1986
Open + Free | ? Yes
Colorspace | R:G:B[:A] (4:4:4[:4]); Y:Cb:Cr[:A] (? 4:2:0[:4] - 4:4:4[:4] ?);
| C:M:Y:K (? 4:4:4:4 ?); L:a:b[:A] (? 4:4:4:[A] ?)
b/c/p | 8 - 32
Compression | [LZW (lossless)]; [ZIP (lossless)]; [JPEG (lossy)]
Maximum Size | ?
Metadata | [EXIF]; [ICC]; [XMP]
OS support | Virtually all OSs with a GUI support >= 1 of the compression types
Leyenda : b/c/p
... bits por canal (por ejemplo, R, G, B) por píxel. las cosas en [ ]
son opcionales; ?
... adivinado educado / sin pista.
El 'Formato de archivo de imagen etiquetada' (TIF o TIF) también ha existido durante mucho tiempo. Ofrece soporte de capa (es decir, múltiples imágenes RGBA apiladas). Los TIFF a menudo se usan como archivos intermedios porque son ampliamente compatibles y bastante flexibles en términos de sus capacidades.
WebP
Feature |
----------------------------------------------------------------------
Introduced | 2010
Open + Free | Yes
Colorspace | R:G:B:A (4:4:4[:4]) lossless; Y:Cb:Cr[:A] (4:2:0[:4]) lossy
b/c/p | 8
Compression | VP8 (lossless / lossy)
Maximum Size | ?
Metadata | [EXIF]; [ICC]; [XMP]
OS support | Linux, Mac, Windows (at least through browser decoding)
Leyenda : b/c/p
... bits por canal (por ejemplo, R, G, B) por píxel. las cosas en [ ]
son opcionales; ?
... adivinado educado / sin pista.
'WebP' usa VP8 (un formato rival de código abierto para AVC). Al igual que con BPG, nunca dio el salto a los dispositivos de consumo, aunque parece que muchos servicios de Internet lo utilizan.
(Otros) Cosas a considerar:
Recodificación (pérdida de generación)
Volver a codificar un archivo sin pérdida no alterará nada; volver a codificar un archivo con pérdida casi con certeza dará lugar a artefactos. JPEG puede manejar esto bastante bien si guarda el archivo en la misma configuración de calidad que se guardó anteriormente.
Este video muestra la pérdida de generación bastante bien : el primer fotograma muestra el archivo original, mientras que todos los demás muestran la compresión de nuevo en diferentes configuraciones de calidad. (Tenga en cuenta que FLIF está en modo con pérdida, por lo que el primer fotograma se verá diferente).
Los artefactos no serán necesariamente una sentencia de muerte; por ejemplo, para una publicación rápida en la web o una vista previa en dispositivos móviles, puede que no sea tan malo.
Longevidad de códec
Al escribir esta respuesta, estaba pensando "¿quién usaría TARGA hoy en día de todos modos?" y me hizo pensar: nunca dudaría en conducir un automóvil fabricado en los años 80. No dudaría en mirar fotos tomadas en los años 80. Usaría cualquier cámara hecha en ese momento. Pero no usaría un códec tan viejo. ¿Por qué?
Al final, no hay una forma segura de decir si un códec u otro sobrevivirán un cierto período de tiempo. Si HEIF reemplazara JPEG en todos los dispositivos de consumo mañana, ¿cuánto tiempo tomaría que los programas dejaran de ser compatibles con JPEG? ¿Cuántas generaciones de computadoras, y más importante aún: sistemas operativos, habrá antes de que ya no pueda abrirlas?
Por otro lado, los códecs relativamente simples como TARGA solo exigen programas relativamente simples para leerlos, mientras que los códecs modernos y sus decodificadores tienen múltiples dependencias. Entonces, si bien la simplicidad es mala para la compresión, podría ser buena para el archivo en un escenario apocalíptico. ¡Gracias @lijat por señalar esto!
En mi opinión, esto necesita varios ángulos para considerar: ¿Qué códec es lo suficientemente popular como para que el soporte no caiga de inmediato? ¿Qué códec es compatible con la comunidad de código abierto (porque nadie mantendrá formatos propietarios de una empresa en quiebra)? Además, parece que al menos cada década más o menos, uno debería ver si es necesario saltar a un códec nuevo y mejor compatible (consulte "Recodificación (pérdida de generación)") ; por ejemplo, no querría su colección TARGA será ilegible mañana, ¿verdad?
Eso, por cierto, es especialmente preocupante cuando se piensa en archivos RAW .
Programa de apoyo (Longevity # 2)
El códec más popular y mejor no será lo suficientemente bueno si no puede usarlo. Y aunque no usaría códecs inferiores solo porque un programa en particular no lo admite, podría ser malo usar un códec que solo un programa admita correctamente.
¿Qué características necesito?
Personalmente, sigo codificando la mayoría de mis archivos en JPEG: puedo leerlos en cualquier dispositivo y apenas puedo ver (si es que lo veo) los artefactos. 8 bits es lo suficientemente bueno para la mayoría de los dispositivos y los canales alfa no son realmente necesarios cuando solo se ven imágenes.
Para todos los archivos que no tienen el estilo de "editar una vez", mantengo mis RAW o al menos TIFF de 16 bits para que puedan seguir utilizándose en el futuro.
PSD? DNG?
"Photoshop Document" (PSD) es el formato de estilo TIFF de Photoshop. Técnicamente, es bastante similar a TIF. También hay PSB, que es lo mismo solo para tamaños de archivo superiores a 4 GiB. No hay nada de malo en usarlo, pero personalmente, prefiero TIFF en la medida de lo posible.
"Digital Negative" (DNG) es un intento de crear un estándar RAW abierto. Si bien me encanta la idea y funciona bastante bien, tenga en cuenta que algunos editores RAW tienen problemas con ellos, por ejemplo, Capture One generalmente olvida el balance de blancos de la cámara, configurando así el control deslizante en 5000K, sin importar cuál sea el valor real. Otros programas en el pasado los han mostrado como imágenes en blanco o rosa o les dan un tono magenta. Si el tamaño del archivo no le preocupa, puede incluir el RAW original en su DNG; si alguna vez lo necesita nuevamente, simplemente puede extraerlo nuevamente. ¿Mis 2 centavos? Pruébelo con su software favorito, y si funciona bien, úselo.
Otros formatos
Como esto ya se salió de control, no quería abordar aún más formatos de imagen. Sin embargo, esto no significa que no valga la pena considerar a los que no figuran en la lista.