Mengapa perangkat lunak mengoreksi white balance lebih akurat untuk file RAW daripada dengan JPEG?

11

Mengapa pasca-pemrosesan koreksi white balance JPEG tidak seakurat white balance dengan Raw?

Pemahaman saya adalah bahwa ketika memotret jpeg kamera secara internal melakukan langkah-langkah berikut:

  1. Konversi data sensor mentah menggunakan algoritma (demosaicing / debayering).
  2. Konversikan ke ruang Linear

    Sebuah. Menggunakan tabel pencarian nilai mentah untuk ruang linear

    b. Level hitam untuk setiap piksel kemudian dihitung dan dikurangi.

    c. Nilai untuk setiap piksel kemudian diubah kembali menjadi 0,0 hingga 1,0 menggunakan Whitelevel

    d. Nilai yang di-skala ulang diklip menjadi 0,0 hingga 1,0 rentang logis.

  3. Memetakan ruang warna kamera ke ruang CIE XYZ dengan penyesuaian keseimbangan putih

    Sebuah. Konversikan ke XYZ (D50) menggunakan CameraToXYZ_D50 = Chromatic_adapatation_matrix * CameraToXYZ_matrix

  4. Ubah CIE XYZ ke sRGB

    Sebuah. Hitung linear RGB menggunakan CIE XYZ ke Linear RGB matrix

    b. Hitung Rec709 sRGB menggunakan transformasi kurva gamma pada RGB linier

  5. Konversikan sRGB ke 8bit dan kompres menggunakan JPEG

Jika ini benar, saya tidak mengerti mengapa Jpeg tidak bisa memiliki white balance diperbaiki dengan cara yang sama seperti Raw!

Apakah hanya karena kompresi JPEG dan file tiff 32bit yang hilang tidak akan memiliki masalah ini?

masukkan deskripsi gambar di sini

skyde
sumber
1
Apa yang membuat Anda berpikir JPEG WB tidak seakurat mentah? Apa yang Anda maksud dengan akurat ? Apakah maksud Anda kamera tidak biasanya menebak sebaik orang yang terampil menggunakan aplikasi konversi mentah? Atau sesuatu yang lain?
Michael C
Maksud saya, jika saya memberi tahu kamera saya untuk menyimpan salinan mentah dan jpeg dari gambar yang sama dan kemudian membukanya di lightroom dan mencoba melakukan white balance dengan menggunakan color picker dengan mengklik lokasi yang persis sama pada gambar, raw turn out sempurna sementara jpeg masih memiliki warna yang aneh.
skyde
2
Itu pertanyaan yang sangat berbeda. Saya akan mengedit judul untuk mencerminkan apa yang menurut Anda sebenarnya Anda tanyakan ...
Silakan Baca Profil Saya
5
Gambar pertama BUKAN "THE raw file asli". Ini adalah salah satu dari kemungkinan interpretasi tak terbatas dari data mentah yang dihasilkan dan ditampilkan oleh aplikasi konversi mentah Anda di layar dalam 8-bit.
Michael C
2
Mungkin bukan poin yang paling penting, tetapi langkah 2 Anda sebenarnya adalah dua langkah yang berbeda, dan mereka mungkin tidak dilakukan dalam urutan di mana Anda menyajikannya (yang akan menjadi cara tambahan di mana WB "dimasukkan" ke dalam JPEG akhir warna).
junkyardsparkle

Jawaban:

9

Mengapa perangkat lunak mengoreksi white balance lebih akurat untuk file RAW daripada dengan JPEG?

Ada perbedaan mendasar antara bekerja dengan data mentah aktual untuk menghasilkan interpretasi berbeda dari data mentah daripada interpretasi awal 8-bit dari file mentah yang Anda lihat di layar dibandingkan dengan bekerja dengan jpeg 8-bit di mana seluruh informasi dalam file adalah apa yang Anda lihat di layar Anda.

Ketika Anda menggunakan clicker putih pada file "mentah", Anda tidak mengoreksi gambar yang ditampilkan di layar Anda (yang merupakan rendering 8-bit seperti jpeg yang merupakan salah satu dari banyak interpretasi yang mungkin dari data dalam file gambar mentah ). Anda memberi tahu aplikasi konversi mentah untuk kembali dan mengubah data dalam file mentah menjadi gambar yang dapat ditampilkan menggunakan serangkaian pengganda saluran warna yang berbeda.

Anda sedang membuat gambar lain dari data mentah yang sama yang digunakan untuk membuat versi pertama yang Anda lihat di layar Anda. Tetapi aplikasi akan kembali ke awal dan menggunakan semua data dalam file mentah untuk membuat interpretasi data mentah kedua yang berbeda berdasarkan pada instruksi Anda yang berbeda mengenai bagaimana data tersebut harus diproses. Itu tidak dimulai dengan informasi terbatas yang ditampilkan di layar Anda dan memperbaikinya. Jika berhasil, Anda akan mendapatkan hasil yang sama seperti saat bekerja dengan jpeg. ¹

File mentah berisi lebih banyak informasi daripada yang ditampilkan pada monitor Anda ketika Anda 'membuka' file mentah. File gambar mentah berisi data yang cukup untuk membuat interpretasi berbeda dari data tersebut dalam jumlah tak terbatas yang hampir tak terbatas dalam file jpeg 8-bit.²

Setiap kali Anda membuka file mentah dan melihatnya di layar Anda, Anda tidak melihat "THE raw file." ³ Anda melihat satu di antara sejumlah kemungkinan interpretasi data dalam file mentah. Data mentah itu sendiri berisi ukuran nilai kecerahan (monokrom) tunggal oleh setiap piksel dengan baik. Dengan sensor kamera bertopeng Bayer (sebagian besar kamera digital berwarna menggunakan filter Bayer) setiap piksel memiliki filter warna di depannya yaitu 'merah', 'hijau', atau 'biru' ('warna' sebenarnya dari filter di sebagian besar Masker Bayer ada di mana saja dari hijau agak kekuningan ke oranye-kuning untuk 'merah ", sedikit hijau kebiruan untuk' hijau 'dan sedikit ungu kebiruan untuk' biru '-warna-warna ini kurang lebih sesuai dengan pusat sensitivitas untuk tiga jenis kerucut di retina kami ). Untuk diskusi yang lebih lengkap tentang bagaimana kita mendapatkan informasi warna dari nilai kecerahan tunggal yang diukur pada setiap pixel dengan baik, silakan lihat file RAW menyimpan 3 warna per pixel, atau hanya satu?

Ketika Anda mengubah white balance dari file mentah Anda tidak membuat perubahan pada interpretasi 8-bit dari file mentah yang Anda lihat di layar Anda, Anda membuat perubahan pada cara data mentah monokromatik 14-bit linier ditafsirkan dan kemudian ditampilkan di layar Anda dengan white balance yang diperbarui.Artinya, Anda menggunakan keuntungan penuh dari 16.384 langkah linear monokromatik diskrit yang berisi file mentah untuk setiap piksel, bukan 256 langkah gamma diskrit yang dikoreksi dalam tiga saluran warna untuk setiap piksel yang Anda lihat di layar 8-bit sebagai representasi dari file mentah itu. Anda juga memanfaatkan semua informasi lain yang terkandung dalam data gambar mentah, termasuk hal-hal seperti piksel bertopeng dan informasi lain yang dibuang ketika file dikonversi ke format 8-bit untuk ditampilkan di layar Anda.

Bagaimana gambar yang Anda lihat pada monitor Anda ketika Anda membuka file mentah akan terlihat ditentukan oleh bagaimana aplikasi yang Anda gunakan untuk membuka file menafsirkan data mentah dalam file untuk menghasilkan gambar yang dapat dilihat. Tapi itu bukan satu-satunya cara untuk menampilkan "THE raw file asli." Hanya saja cara aplikasi Anda - atau kamera yang menghasilkan pratinjau jpeg yang dilampirkan ke file mentah - telah memproses informasi dalam file mentah untuk menampilkannya di layar Anda.

Setiap aplikasi memiliki set parameter default sendiri yang menentukan bagaimana data mentah diproses. Salah satu parameter paling signifikan adalah bagaimana white balance yang digunakan untuk mengkonversi data mentah dipilih. Sebagian besar aplikasi memiliki banyak set parameter yang berbeda yang dapat dipilih oleh pengguna, yang kemudian bebas untuk mengubah pengaturan individual dalam set instruksi yang digunakan untuk awalnya menginterpretasikan data dalam file mentah. Banyak aplikasi akan menggunakan pengganda white balance / color channel yang diperkirakan oleh kamera (saat menggunakan AWB dalam kamera) atau dimasukkan oleh pengguna (saat menggunakan koreksi CT + WB dalam kamera) pada saat foto diambil. Tapi itu bukan satu - satunya white balance yang sah yang dapat digunakan untuk menafsirkan data mentah.

Dengan file mentah 14-bit, ada 16.384 nilai terpisah antara 0 (hitam murni) dan 1 (putih murni). Itu memungkinkan langkah yang sangat kecil antara setiap nilai. Tapi ini adalah nilai luminance monokrom . Ketika data didemosisis, kurva gamma diterapkan, dan konversi ke ruang warna tertentu dilakukan, pengganda konversi WB biasanya diterapkan pada nilai 14-bit ini. Langkah terakhir dalam proses ini adalah untuk memetakan kembali nilai yang dihasilkan ke 8-bit sebelum melakukan kompresi file lossy. 8-bit hanya memungkinkan 256 nilai diskrit antara 0 (hitam murni) dan 1 (putih murni). Jadi setiap langkah antara nilai adalah 64X lebih besar daripada dengan 14-bit.

Jika kami kemudian mencoba mengubah WB dengan gradasi courser yang banyak ini, area yang kami coba perluas mendorong setiap langkah dalam data yang kami gunakan lebih jauh dari satu langkah dalam file yang dihasilkan. Jadi gradasi di area itu menjadi lebih kasar. Area yang kami susutkan mendorong setiap langkah tersebut ke ruang yang lebih kecil daripada satu langkah di file yang dihasilkan. Tapi kemudian langkah-langkah itu semua ditata ulang agar sesuai dengan gradasi 256 langkah antara '0' dan '1'. Ini sering menghasilkan garis banding atau posterisasi alih-alih transisi yang mulus.

¹ Agar lebih cepat dan kurang intensif sumber daya, beberapa aplikasi pemrosesan mentah akan memiliki mode "cepat" yang benar-benar mengubah representasi 8-bit yang ada di layar Anda ketika Anda memindahkan slider pengaturan. Hal ini sering menghasilkan garis melintang atau artefak yang tidak diinginkan lainnya, seperti warna ungu yang Anda lihat di jpeg yang berubah warna dalam pertanyaan. Ini hanya berlaku untuk pratinjau yang Anda lihat. Ketika file dikonversi dan disimpan (diekspor), instruksi yang sama sebenarnya diterapkan pada data mentah saat diproses kembali dan banding atau artefak lainnya tidak terlihat (atau tidak separah).

² Tentu, Anda bisa mengambil gambar yang mengandung satu warna murni dalam seluruh bidang tampilan. tetapi sebagian besar foto berisi variasi rona, rona, dan tingkat kecerahan yang luas.

³ Silakan lihat: Mengapa gambar RAW saya sudah berwarna jika debayering belum dilakukan?

Ini akan menjelaskan garis melintang atau posterisasi dalam gambar yang disebabkan oleh presisi yang berkurang tetapi masih mungkin untuk memindahkan titik putih di posisi yang benar bukan?

Anda dapat mengubah warna jpeg ke derajat, tetapi sebagian besar informasi yang diperlukan untuk menghasilkan semua warna yang dapat Anda hasilkan dengan data mentah sudah tidak ada lagi. Itu dibuang selama konversi ke RGB dan reduksi menjadi 8-bit sebelum kompresi. Satu-satunya hal yang tersisa untuk Anda kerjakan adalah nilai setiap piksel dalam tiga saluran warna tersebut. Kurva respons untuk masing-masing saluran tersebut dapat digambar ulang, tetapi semua yang dilakukan adalah menaikkan atau menurunkan nilai untuk saluran warna di masing-masing piksel gambar. Itu tidak kembali dan mengulang demosaicing berdasarkan pengganda saluran baru, karena informasi itu tidak disimpan dalam JPEG.

Sangat penting untuk memahami bahwa dalam contoh gambar ditambahkan ke pertanyaan, gambar kedua tidak berasal dari gambar pertama. Kedua gambar pertama dan kedua adalah dua interpretasi berbeda dari data mentah yang persis sama.Tidak ada yang lebih asli dari yang lain. Tidak ada yang lebih "benar" daripada yang lain dalam hal representasi yang valid dari data yang terkandung dalam file mentah. Keduanya merupakan cara yang sah untuk menggunakan data dalam file mentah untuk menghasilkan gambar 8-bit. Yang pertama adalah cara aplikasi konversi mentah Anda dan / atau pratinjau jpeg yang dihasilkan di kamera Anda memilih untuk menginterpretasikan data. Yang kedua adalah cara aplikasi konversi mentah Anda menafsirkan data setelah Anda memberi tahu nilai sensor mentah apa yang ingin Anda terjemahkan sebagai abu-abu / putih. Ketika Anda mengklik pada bagian yang sama dari gambar jpeg, banyak informasi warna yang diperlukan untuk memperbaiki gambar agar terlihat seperti versi kedua file mentah sudah tidak ada lagi dan dengan demikian tidak dapat digunakan.

Apakah hanya karena kompresi JPEG dan file tiff 32bit yang hilang tidak akan memiliki masalah ini?

Tidak, meskipun kompresi lossy sebagian besar. Begitu juga reduksi menjadi 8-bit, yang membuat setiap langkah antara '0' (hitam murni) dan '1' (saturasi penuh) 64X sama besarnya dengan file mentah 14-bit. Tapi itu melampaui kompresi jpeg.

Beberapa paragraf dari jawaban ini untuk RAW ke TIFF atau PSD 16bit kehilangan kedalaman warna :

Setelah data dalam file mentah telah diubah menjadi file TIFF yang dikosongkan dengan gamma, prosesnya tidak dapat dipulihkan.

File TIFF memiliki semua langkah pemrosesan yang "dipanggang" untuk informasi yang dikandungnya. Meskipun file TIFF 16-bit yang tidak terkompresi jauh lebih besar daripada file mentah biasa dari mana file itu berasal karena cara masing-masing menyimpan data, itu tidak mengandung semua informasi yang diperlukan untuk membalikkan transformasi dan mereproduksi data yang sama persis terkandung dalam file mentah. Ada sejumlah nilai berbeda yang hampir tak terbatas dalam data tingkat piksel dari file mentah yang bisa digunakan untuk menghasilkan TIFF tertentu. Demikian juga, ada jumlah file TIFF yang hampir tak terbatas yang dapat dihasilkan dari data dalam file gambar mentah, tergantung pada keputusan yang dibuat tentang bagaimana data mentah diproses untuk menghasilkan TIFF.

Keuntungan dari TIFF 16-bit versus 8-bit TIFF adalah jumlah langkah antara nilai paling gelap dan paling terang untuk setiap saluran warna pada gambar. Langkah-langkah yang lebih baik ini memungkinkan manipulasi tambahan sebelum akhirnya mengkonversi ke format 8-bit tanpa membuat artefak seperti pita di bidang gradasi nada.

Tetapi hanya karena TIFF 16-bit memiliki lebih banyak langkah antara "0" dan "65.535" daripada file mentah 12-bit (0-4095) atau 14-bit (0-16383), bukan berarti file TIFF menunjukkan kisaran kecerahan yang sama atau lebih besar. Ketika data dalam file mentah 14-bit ditransformasikan ke file TIFF, titik hitam bisa dipilih pada nilai seperti 2048. Setiap piksel dalam file mentah dengan nilai lebih rendah dari 2048 akan diberi nilai 0 di TIFF. Demikian juga, jika titik putih ditetapkan pada, katakanlah, 8.191 maka setiap nilai dalam file mentah lebih tinggi dari 8191 akan ditetapkan pada 65.535 dan penghentian cahaya paling terang dalam file mentah akan hilang tanpa dapat ditarik kembali. Semuanya lebih cerah di file mentah daripada titik putih yang dipilih memiliki nilai yang sama di TIFF, jadi tidak ada detail yang dipertahankan.

Ada sejumlah besar pertanyaan yang ada di sini yang mencakup banyak hal yang sama. Berikut adalah beberapa di antaranya yang mungkin bermanfaat bagi Anda:

File RAW menyimpan 3 warna per piksel, atau hanya satu?
RAW ke TIFF atau PSD 16bit kehilangan kedalaman warna
Bagaimana cara memulai dengan pengaturan JPEG dalam kamera di Lightroom?
Mengapa tampilan file RAW berubah ketika beralih dari "lighttable" ke "darkroom" di Darktable?
nikon d810 manual WB tidak sama dengan "As Shot" di Lightroom.
Mengapa gambar RAW terlihat lebih buruk daripada JPEG dalam program pengeditan?
Mencocokkan warna di Lightroom ke alat editing lainnya
Sementara menembak di RAW, Anda harus pasca-proses untuk membuat gambar terlihat baik?

Mengapa ada penurunan kualitas dari kamera ke layar komputer
Mengapa foto saya terlihat berbeda di Photoshop / Lightroom vs Canon EOS utilitas / di kamera?
Mengapa gambar saya terlihat berbeda di kamera saya daripada ketika diimpor ke laptop saya?
Bagaimana cara meniru pemrosesan dalam kamera di Lightroom?
Konversi Nikon-kamera vs lightroom jpg
Mengapa pratinjau Lightroom / Photoshop saya berubah setelah memuat?

Michael C
sumber
2
Ini akan menjelaskan garis melintang atau posterisasi dalam gambar yang disebabkan oleh presisi yang berkurang tetapi masih mungkin untuk memindahkan titik putih di posisi yang benar bukan?
skyde
2
Ya ini masuk akal ini mengatakan itu mungkin untuk warna dari mentah untuk dipotong ketika dikonversi ke gamut warna TIFF. Dan karena ini, kami masih kehilangan informasi yang mungkin diperlukan untuk koreksi keseimbangan warna.
skyde
1
Saya dengan skyde: Hanya ada langkah-langkah kurang jelas dalam resolusi warna tidak berarti bahwa white balance menghasilkan hasil yang berbeda terlihat baik. Apalagi jika versi jpeg memiliki nada ungu yang berat. Teori yang lebih cocok adalah bahwa nilai koreksi internal yang mungkin dijepit ke kisaran yang lebih sempit di jpeg daripada mentah, yang datang di atas fakta bahwa mentah ditafsirkan dari data sensor mentah dan jpeg adalah nilai warna diskrit.
Horitsu
1
Saya bergabung dengan skyde di sini juga. Ini hanya cerita panjang dan tidak relevan tentang perbedaan antara format mentah dan jpeg. Tidak ada apa pun di sini, yang sebenarnya menjawab pertanyaan awal.
jarnbjo
1
@jarnbjo Sebagian besar jawaban dihabiskan untuk menjelaskan perbedaan antara data mentah aktual dalam file gambar dan apa yang dilihat seseorang di layar mereka ketika seseorang "melihat" satu di antara banyak kemungkinan interpretasi data mentah. Sudah pengalaman saya bahwa sebagian besar jenis pertanyaan muncul karena kurangnya pemahaman mendasar bahwa apa yang dilihat seseorang di layar seseorang tidak pernah "THE" file mentah. Juga pengalaman saya bahwa menyatakannya dalam beberapa cara yang berbeda meningkatkan peluang bola lampu akhirnya akan menyala untuk si penanya. YMMV.
Michael C
3

Jawaban sederhana adalah karena kamera Anda dan prosesor RAW Anda (LR, Darktable, untuk beberapa nama) menggunakan algoritma yang berbeda untuk memproses file RAW. Alasannya banyak, dan kami tidak dapat mengevaluasi algoritma tersebut karena banyak yang merupakan rahasia dagang. Misalnya, suhu warna siang hari Canon (EOS 700D) sekitar 5200K, sedangkan Lightroom adalah 5500K. Dalam beberapa situasi ini membuat perbedaan.

Lebih tepatnya, file RAW tidak memiliki suhu warna yang ditentukan sebelumnya. Ini dimasukkan sebagai informasi meta. Prosesor RAW menerapkan WB tertentu ketika mereka melakukan operasi yang Anda gambarkan.

Sunting: dan berdasarkan komentar Anda: Anda tidak dapat mengubah suhu warna banyak pada file JPEG karena sudah "dimasak". Temperatur warna sudah diterapkan, dan Anda tidak memiliki kedalaman warna yang cukup untuk "menggeser" warna.

Romeo Ninov
sumber
Algoritma Darktable bukan rahasia dagang.
Silakan Baca Profil Saya
@mattdm, benar. Tapi yang dari LR, ON1, CaptureOne, prosesor RAW non-sumber daya lainnya adalah ...
Romeo Ninov
Tetapi apakah semua itu benar-benar relevan dengan pertanyaan? Dasar-dasar koreksi white balance dikenal luas dan diimplementasikan dalam perangkat lunak terbuka.
Silakan Baca Profil Saya
Dasar-dasarnya ya. Tetapi implementasi bisa berbeda. Dan detail-detail itu biasanya dirahasiakan (untuk perangkat lunak non-sumber daya)
Romeo Ninov
1

Hal ini dimungkinkan untuk JPEG white balance, tapi alat editing yang digunakan untuk beroperasi pada RAW vs gambar lain cenderung berperilaku berbeda (algoritma yang berbeda). Lebih lanjut:

  • Alat dropper tidak tepat, yang membuatnya sulit untuk mereplikasi hasil.

  • The bit mendalam dari JPEG membatasi berapa banyak warna bisa digeser vs RAW.

  • The gamma kurva messes semuanya.

  • Perhitungan pada data linier vs data logaritmik berperilaku berbeda.

Ini bukan cara kerjanya, tetapi untuk menggambarkan:

  • Misalkan Anda ingin mengalikan beberapa data (1, 4, 8) dengan 2. Hasilnya adalah (2, 8, 16). Dengan data linier, hasil maksimal, 16, adalah empat kali hasil minimum, 2.

  • Tetapi dengan representasi logaritmik, kesenjangan antara nilai-nilai yang berdekatan, seperti 2 5 dan 2 6 , jauh lebih besar daripada perbedaan antara nilai-nilai linier, 5 dan 6. Selanjutnya, hasil maksimal, 2 16 , tidak hanya 32768 kali lebih besar dari hasil min, 2 2 , itu juga 256 kali nilai aslinya, 2 8 .

xiota
sumber