Czy istnieje stratny skompresowany format pliku dla 16-bitowych obrazów zakresu dynamicznego?

14

Chciałbym agresywnie kompresować niektóre naukowe 16-bitowe pliki obrazów w skali szarości, ale bez zmniejszania zakresu dynamicznego. Czy coś takiego jest możliwe?

Rozumiem, że format JPEG wykorzystuje kompresję stratną, a zatem dostrajająco agresywną, ale obsługuje tylko 8 bitów na kanał koloru.

Format PNG obsługuje 16-bitowe obrazy w skali szarości, ale obsługuje tylko kompresję bezstratną, co ogranicza współczynnik kompresji plików.

Format TIFF obsługuje również 16-bitowe obrazy w skali szarości, ale o ile mi wiadomo, nie obsługuje standardowej kompresji stratnej obrazów 16-bitowych.

Christopher Bruns
źródło
2
JPEG obsługuje obrazy 12-bitowe! Niewiele osób wie o tym, a wiele programów tego nie obsługuje. Ale wsparcie jest dostępne.
Dietrich Epp,
1
Myślę, że openEXR jest tym, czego chcesz. Możesz być bardziej elastyczny dzięki podpróbkowaniu kolorów niż JPEG i lepiej dostroić go do potrzeb danych naukowych. Jak pamiętam, jest to opracowane dla / przez Pixar.
JDługosz
2
BPG obsługuje tp 14 bitów.
Vi0,
Przepraszam, jeśli jestem całkowicie poza linią, ale co jest nie tak z dobrym starym ZIPem?
Ilia Frenkel
1
@Ilia Frenkel ZIP nie jest stratna. (Nie specjalizuje się w obrazach)
Christopher Bruns

Odpowiedzi:

18

Wygląda na to, że szukasz JPEG2000. Ma szereg opcji, w tym 16-bitową kompresję stratną i lepsze współczynniki kompresji niż JPEG. Nie został tak powszechnie przyjęty, jak się spodziewano (z wielu powodów) i może mieć pewne problemy patentowe, które mogą utrudnić jego użycie w pewnych sytuacjach, ale w przeciwnym razie pasuje do twoich potrzeb.

Osobiście gdybym był na twoim miejscu, powiedziałbym, że przechowywanie jest tanie i używam PNG, który jest odpowiednio zdefiniowanym i bezpłatnym standardem.

James Snell
źródło
2
JPEG2000 wydaje się właśnie takie. Narzędzia ImageMagick współpracują z jpeg2000; co jest wystarczającym wsparciem dla kontynuowania dochodzenia.
Christopher Bruns,
8

JPEG2000, możesz też spojrzeć na OpenEXR, ponieważ jest on obsługiwany przez sprzęt wideo.

Iliah Borg
źródło
3

Maksymalny zakres dynamiczny liniowego kodowania 8-bitowego wynosi tylko 8 przystanków, jednak zakres dynamiczny, który można zapisać za pomocą kodowania nieliniowego, jest nieograniczony.

Dlatego sugerowałbym zastosowanie silnej krzywej tonalnej do zdjęć, a następnie można użyć standardowego JPEG bez utraty zakresu dynamicznego. Jeśli chcesz użyć oryginalnych obrazów, przekonwertuj je na 16-bitowe i zastosuj odwrotną krzywą tonalną.

Jest tak oczywiście, jeśli Twoim jedynym zmartwieniem jest zakres dynamiczny. Jeśli musisz także zachować zakres tonalny , być może będziesz musiał zastosować własną kompresję stratną ...

Matt Grum
źródło
1
Podobnie, możesz wstępnie przetwarzać obrazy w sposób, który odrzuca informacje, o których wiesz, że Cię nie obchodzi, przed zapisaniem jako bezstratnie skompresowany 16-bitowy plik PNG lub TIFF.
junkyardsparkle
To właśnie robią kamery wideo z profilem obrazu dziennika, ale z doświadczenia mogę powiedzieć, że jest to bardzo zły zły pomysł, ponieważ redukcja informacji jest naprawiona zamiast używania zmiennej stratności. Użycie stratnej kompresji openEXR dałoby znacznie lepszy wynik.
skyde