Existe um formato de arquivo compactado com perdas para imagens de faixa dinâmica de 16 bits?

14

Gostaria de compactar agressivamente alguns arquivos científicos de imagem em escala de cinza de 16 bits, mas sem reduzir o alcance dinâmico. É possível uma coisa dessas?

Entendo que o formato JPEG usa compactação com perdas e, portanto, agressivamente sintonizável, mas suporta apenas 8 bits por canal de cor.

O formato PNG suporta imagens em escala de cinza de 16 bits, mas apenas compactação sem perdas, o que limita a taxa de compactação do arquivo.

O formato TIFF também suporta imagens em escala de cinza de 16 bits, mas, até onde eu saiba, não suporta compactação com perdas padrão de imagens de 16 bits.

Christopher Bruns
fonte
2
JPEG realmente suporta imagens de 12 bits! Muitas pessoas não sabem disso, e muitos programas não o suportam. Mas, o apoio está lá.
Dietrich Epp
1
Eu acho que o openEXR é o que você deseja. Você pode ser mais flexível com a subamostragem de cores do que o JPEG e ajustá-lo melhor para suas necessidades de dados científicos. Pelo que me lembro, isso é desenvolvido para / pela Pixar.
JDługosz
2
O BPG suporta até 14 bits tp.
Vi0
Sinto muito se estou completamente fora de linha aqui, mas o que há de errado com o bom e velho ZIP?
Ilia Frenkel 22/07
1
@Ilia Frenkel ZIP não tem perdas. (Nem especializado em imagens)
Christopher Bruns

Respostas:

18

Parece que o que você está procurando é JPEG2000. Ele tem uma variedade de opções, incluindo uma compactação com perda de 16 bits e melhores taxas de compactação que o JPEG. Não foi tão amplamente adotado quanto se esperava (por várias razões) e pode ter alguns problemas de patentes que podem dificultar o uso em determinadas situações, mas, caso contrário, atendem às suas necessidades.

Pessoalmente, se eu estivesse na sua posição, diria que o armazenamento é barato e use PNG, que é um padrão livre e definido adequadamente.

James Snell
fonte
2
JPEG2000 parece exatamente a coisa. As ferramentas ImageMagick funcionam com jpeg2000; que é suporte suficiente para eu prosseguir com minha investigação.
Christopher Bruns
8

JPEG2000 e você também pode querer olhar para o OpenEXR, pois ele é suportado pelo hardware de vídeo.

Iliah Borg
fonte
3

O alcance dinâmico máximo de uma codificação linear de 8 bits é de apenas 8 pontos, no entanto, o alcance dinâmico que você pode armazenar com uma codificação não linear é ilimitado.

Portanto, sugiro que você aplique uma curva de tom forte nas imagens e, em seguida, use o JPEG padrão sem perder a faixa dinâmica. Quando quiser usar as imagens originais, converta-as em 16 bits e aplique a curva inversa de tons.

É claro que se a faixa dinâmica é sua única preocupação. Se você também precisar preservar o intervalo de tons , poderá ter que rolar sua própria compactação com perdas ...

Matt Grum
fonte
1
Da mesma forma, você pode pré-processar as imagens de maneira a descartar as informações que você não gosta, antes de salvar como PNG ou TIFF de 16 bits compactado sem perdas.
junkyardsparkle
É o que a câmera de vídeo está fazendo com o perfil da imagem de log, mas por experiência própria, posso dizer que é uma péssima idéia, porque a redução das informações é fixa, em vez de se usar perdas variáveis. Usar a compactação com perda openEXR daria resultados muito melhores.
skyde