Относно Sony A900 и компресиран raw

Тук трябваше да тествам коректността на LibRaw (с пресни редакции) с всякакви Sony. Най-лесният начин да направите това е да отворите файла в RawDigger.

В процеса беше разкрито забавно нещо специално за Sony A900, който има два режима за запазване на RAW: некомпресиран и компресиран (същото като NEX / A7 и свежия Axxx)

1.В режим "без загуби, некомпресиран RAW", A900 със самите RAW данни е добре, но в EXIF ​​​​това е глупост:

  • Налице е същата крива на тоновете, както в компресиран RAW режим (но не се използва при декомпресиране).
  • Етикетите за ниво на черно казват 512 (подобно на компресиран RAW), докато правилната стойност е 128.
Повече или по-малко е ясно защо dcraw разделя нивото на черното (и сигнала за компресиран Sony RAW) на 4 - така че в случая на A900 и двете RAW опции са поставени в един и същи диапазон ("всъщност не": реалният максимум в случай на компресиран RAW не е 16383, а дори 16628, но повече за това по-късно).

2.При компресиран RAW нещата са много по-лоши.

  • Целият сигнал е разтегнат в диапазона 0..16628 (тоест, хм, умножено по 4 с малка опашка? Не знам каква конкретна механика).
  • След това се наслагва тонална крива, обратна на тази: компресираме светлините, оставяме средните тонове и сенките такива, каквито са.
  • Освен това се записва в 11/7-битов формат на Sony
Дори в средни тонове и сенки, този методе гарантиранза загуба на един (с малка опашка) бит от данни: форматът на запис предполага не повече от 2 11 нива, но 256 от тях отиват "под черно", оставяйки малко по-малко от 1800.

Всъщност положението е още по-лошо. Нека вземем стандартно изображение със захарница от Imaging-Resource и погледнем хистограмата в сенките (ISO100):

относно
Какво виждаме там:
  • Дупки. Всяка втора стойност просто я няма. Товакакто се очаква, данните са 11-битови и преди да се приложи тоналната крива, тя се умножава по две, получават се само четни стойности (и кривата в тази част от диапазона е просто права линия с наклон 1).
  • Още по-лошо. Във всеки шест нива виждаме три дупки (вижте по-горе), една висока пръчка, една средна и една ниска. След това този ритъм се повтаря.
И ако всичко е ясно с дупки, тогава тройният ритъм е невероятен:
  • Ако 12-битовите линейни стойности бяха просто умножени по 4 и след това обработени с горната крива, тогава ще има 3 в линейната част на кривата от 6 стойности, приблизително еднаква височина.
  • Ако умножим "по 4 с малко", ще имаме малък брой допълнителни дупки (както виждаме в Nikon в червените / сините канали поради предварителната подготовка на WB
  • Ето нещо странно и неразбираемо.
Решението обаче изглежда е тук (открих го случайно):

Нека вземем малък квадрат в долния десен ъгъл на равномерен сив фон и неговата хистограма:

относно
Пръчките преминават „през 6, понякога през 4“ (ако битът не беше отрязан, те щяха да бъдат „през 3, понякога през 2“, повече или по-малко типично цифрово поведение след умножаване по целочислена константа.

Напълно подобна снимка в долния ляв ъгъл, само позициите на пръчките са различни.

Но ако поставите пробния квадрат почти в центъра (по ширина), така че да кара малко в лявата половина, и

80% от него ще бъде отдясно, след което хистограмата започва да изглежда така:

относно
Тоест се оказва, че за дясната / лявата половина на картината - малко по-различна последваща обработка. Може би нещо се компенсира (е, има два ADC, техните печалби са малко по-различни).

Ако приемем, че A900 има същите степерни белези като Nikon D3 (да, знам, че A900 има сензор, приблизително подобен наD3X, трябва да се провери), дори е ясно какво точно се опитват да компенсират.

В пълния 12-битов режим има и странен гребен на пълната рамка:

компресиран
Няма такъв гребен, ако вземете проба по дясната (или лявата) половина на рамката (напротив, има редки дупки, очевидни следи от ръчно умножение с малка константа). Следователно източникът на гребена е подравняването на половините на сензора.

  1. RAW данните на Sony A900 са ясно обработени. Както в некомпресиран RAW, така и в компресиран.
  2. За мен е мистерия как е възможно нивото на черното да е общо за целия сензор.
  3. В компресиран режим се губят много повече нива от очакваното. Очакваше се гребен "в едно", а тя беше "в шест". Тези.

Губят се 1,5 допълнителни бита, сенките съответстват на 9,5-битова камера (не съм изучавал светлината, битовата дълбочина е достатъчна там).

  • Няма причина да използвате компресиран RAW.
  • Такава последица от общия план: обхватът на данните (по-голям от 2 14 в този случай) по никакъв начин не е свързан с битовата дълбочина на ADC (12 бита в този случай).