Me gustaría comprimir agresivamente algunos archivos de imágenes científicas en escala de grises de 16 bits, pero sin reducir el rango dinámico. ¿Es posible tal cosa?
Entiendo que el formato JPEG utiliza compresión con pérdida y, por lo tanto, bastante agresiva, pero solo admite 8 bits por canal de color.
El formato PNG admite imágenes en escala de grises de 16 bits, pero solo admite compresión sin pérdidas, lo que limita la relación de compresión del archivo.
El formato TIFF también admite imágenes en escala de grises de 16 bits, pero que yo sepa, no admite compresión con pérdida estándar de imágenes de 16 bits.
jpeg
hdr
black-and-white
file-format
image-compression
Christopher Bruns
fuente
fuente
Respuestas:
Parece que lo que estás buscando es JPEG2000. Tiene una gama de opciones que incluyen una compresión con pérdida de 16 bits y mejores relaciones de compresión que JPEG. No ha sido tan ampliamente adoptado como se esperaba (por una serie de razones) y puede tener algunos problemas de patentes que podrían dificultar su uso en ciertas situaciones, pero de lo contrario se ajustan a sus necesidades.
Personalmente, si estuviera en su posición, diría que el almacenamiento es barato y uso PNG, que es un estándar definido y gratuito.
fuente
JPEG2000, y es posible que también desee ver OpenEXR porque es compatible con hardware de video.
fuente
El rango dinámico máximo de una codificación lineal de 8 bits es de solo 8 paradas, sin embargo, el rango dinámico que puede almacenar con una codificación no lineal es ilimitado.
Por lo tanto, sugeriría que aplique una curva de tono fuerte a las imágenes y luego puede usar JPEG estándar sin perder el rango dinámico. Cuando desee utilizar las imágenes originales, conviértalas a 16 bits y aplique la curva de tono inversa.
Eso es, por supuesto, si el rango dinámico es su única preocupación. Si también necesita preservar el rango tonal, entonces puede que tenga que rodar su propia compresión con pérdida ...
fuente