W jaki sposób aparat generuje mniejsze pliki podczas fotografowania w formacie mRAW lub sRAW?

20

Większość średniej i wyższej klasy DLSR oferuje dwa lub trzy rozmiary do przechwytywania RAW. Kiedy aparat generuje pliki RAW średniej lub małej wielkości, w jaki sposób je zmniejszają? Czy przechwytuje mniej informacji do czujnika? Czy przechwytuje pełną ilość informacji, a następnie stosuje jakąś kompresję w aparacie? Czy robi coś innego, czego nie opisuję?

ahockley
źródło
6
Czy mówisz o niewielkich różnicach w surowych rozmiarach plików lub o różnych wymiarach surowego obrazu?
Matt Grum

Odpowiedzi:

12

Douglas Kerr przedstawia mistrzowskie i w dużej mierze niematematyczne podsumowanie w formatach wyjściowych Canon sRaw i mRaw . Sytuacja jest skomplikowana i nie do końca zrozumiana, ale wiele zostało wydedukowanych przez inżynierię odwrotną. Najwyraźniej sRaw jest agregacją 2 x 2, ale z pewnym podpróbkowaniem chrominancji; mRaw jest prawdopodobnie bona fide resampling (z udziałem lokalnych interpolacja) z cięższym chrominancji podpróbek. Można rzeczywiście scharakteryzować każdą z nich jako formę „kompresji w aparacie” wykonywaną w wyrafinowany sposób, aby zoptymalizować wygląd szczegółów dla ludzkiego oka dla danego rozmiaru pliku wyjściowego.

whuber
źródło
17

W skrócie: mniejsze „nieprzetworzone” pliki agregują wartości czujników w blokach pikseli .

Na przykład format RAW firmy Canon przekazuje informacje o poszczególnych „senselach”. Każdy sensel (lub „strona zdjęciowa”) reaguje na ograniczony zakres częstotliwości (określany jako czerwony, zielony i niebieski). Każdy z nich, gdy później zostanie „rozwinięty”, zostanie umieszczony w miejscu jednego piksela na ostatecznym obrazie.

Jednak format sRAW firmy Canon zawiera informacje podsumowujące na temat 2 x 2 bloków sensels. Podaje dane jasności (luminancji) dla każdego bloku, ale „dziesiątkuje” (przeskakuje w zwykły sposób) niektóre informacje o kolorze. W związku z tym dzieje się kilka ważnych rzeczy:

  • Poszczególne dane sensel nie są już dostępne. (Dane sRAW są rzeczywiście „przetwarzane”).

  • Rozdzielczość obrazu jest zmniejszona (jest zmniejszona o połowę, co oznacza, że ​​jest o ćwierć tyle pikseli).

  • Rozmiar pliku danych jest zmniejszony o około dwie trzecie.

  • Dane sRAW nie są „podzbiorem” danych RAW. Są to inne kodowania surowych danych, z mniejszą ilością informacji . Żadne sensle nie są „ignorowane”.

(Zwykle zmniejszenie rozdzielczości obrazu dwa razy zmniejszy jego rozmiar na dysku do jednej czwartej oryginału. Tutaj jednak oryginalne matryce dostarczają około 14 bitów informacji, co daje 56 bitów w każdym bloku 2 x 2 w formacie RAW. W sRAW każdy blok 2 x 2 jest kodowany jako trzy 8-bitowe fragmenty lub 24 bity. Otrzymany strumień danych ma zatem tylko 24/56 = około 1/2 rozmiaru oryginału i jest zmniejszony o kolejne 1/3 po zdziesiątkowaniu danych chrominancji, dla zmniejszenia netto o 2/3. W sRAW stosuje się kompresję bezstratną, więc stosunek może się nieznacznie różnić).

Informacje te zostały uzyskane dzięki obszernej inżynierii odwrotnej zgłoszonej w zeszłym roku przez Douglasa Kerra, którego raport streściłem tutaj bardzo krótko (mam nadzieję, że nie zniekształci zbyt wiele).

whuber
źródło
0

Po prostu zmień rozmiar zdjęcia w aparacie, aby w pliku sRaw było mniej pikseli, przez co rozmiar pliku jest mniejszy. Na przykład Canon 50D sRaw1 ma 7,1 megapiksela w porównaniu z pełnymi 15,1 megapikselami czujnika.

Wydaje mi się, że dzieje się tak po interpolacji kolorów z tablicy Bayera, więc wykorzystywane są pełne dane czujnika, a także plik sRaw zawiera informacje o pełnych kolorach dla każdego piksela. Stosowana jest również kompresja bezstratna w celu dalszego zmniejszenia rozmiaru.

Niektórzy producenci oferują stratną kompresję RAW przy użyciu pełnej rozdzielczości obrazu, jednak w większości przypadków pliki te nie będą tak małe, jak pliki RAW o zmniejszonej rozdzielczości. Kompresja bezstratna jest również stosowana w przypadku plików RAW o pełnej rozdzielczości, co nie ma wpływu na jakość obrazu, jednak ich odczyt / zapis zajmuje więcej czasu (ze względu na konieczność kompresji / dekompresji), więc czasami nie jest używany.

Matt Grum
źródło
Nie jestem pewien co do bezstratnej kompresji. Byłoby to prawdopodobnie bardzo specyficzne dla marki i modelu i prawdopodobnie nie jest to funkcja używana przez każdy model aparatu. Większość plików RAW to naprawdę surowe, nieskażone dane z czujnika, bez jakiejkolwiek kompresji.
jrista
2
@jrista: FYI - Kompresja bezstratna RAW zaczyna być stosowana w nowoczesnych aparatach. Na przykład Nikon D7000 obsługuje 14-bitowe bezstratne kompresje w plikach NEF ( nikonusa.com/Find-Your-Nikon/Product/Digital-SLR/25468/... )
Reed Copsey
4
Myślę, że główni producenci od jakiegoś czasu stosują jakąś formę bezstratnej surowej kompresji - patrząc wstecz na moje surowe pliki Canon z mojego starego 30D, wszystkie mają całkiem różne rozmiary plików, gdyby były to surowe, nieskażone dane, wszystkie byłyby ten sam rozmiar!
Matt Grum,
2
@jrista Najmniejszy rozmiar pliku z mojego 30D wynosił 5,6 MB, a największy 9,6 MB, który jest zbyt duży, aby był miniaturą JPEG. Widząc, że małe rawy mają duże obszary czystej bieli, jestem prawie pewien, że Canon używa kodowania długości przebiegu, aby zapewnić bezstratną kompresję raw.
Matt Grum,
3
Matt ma rację; na przykład w przypadku Canona, nie jest tajemnicą, że surowe produkty Canon używają bezstratnej kompresji. Googling dla „Canon raw bezstratny” prowadzi prosto do tego na przykład: cpn.canon-europe.com/content/education/infobank/…
Conor Boyd
-1

Jeśli masz na myśli niewielkie różnice w rozmiarze pliku RAW podczas fotografowania plików RAW w pełnej rozdzielczości, wyjaśnieniem jest kompresja bezstratna. Zobacz: http://cpn.canon-europe.com/content/education/infobank/image_compression/lossless_and_lossy_compression.do

Prawdą jest, że nieprzetworzone pliki zawierają wszystkie dane przechwycone przez czujnik, ale nadal mogą występować nadmiarowości w danych, które pozwalają kamerze zaoszczędzić miejsce bez utraty oryginalnych informacji!

Matt Grum
źródło