2 poin oleh GN⁺ 2025-12-29 | 1 komentar | Bagikan ke WhatsApp
  • Eksperimen yang menunjukkan langkah demi langkah bagaimana data sensor RAW dari kamera digital direkam
  • Data awal berupa bentuk grayscale dari keluaran ADC 14-bit yang dipetakan secara sederhana ke RGB 0–255, dengan rentang kecerahan nyata yang terbatas
  • Filter Bayer diterapkan untuk mencerminkan informasi filter warna di tiap piksel, lalu dilakukan demosaicing dengan rata-rata piksel tetangga
  • Melalui penyesuaian koreksi gamma dan white balance, perbedaan persepsi kecerahan nonlinier antara penglihatan manusia dan display dikoreksi
  • Pada akhirnya, dengan membandingkannya terhadap pemrosesan JPEG internal kamera, artikel ini menunjukkan bahwa konsep “foto yang belum dikoreksi” pada dasarnya tidak benar-benar ada

Kondisi awal data sensor RAW

  • Data asli yang direkam sensor kamera terdiri dari nilai ADC 14-bit; jika dikonversi secara sederhana ke RGB 0–255, hasilnya berupa gambar grayscale
    • Rentang nilai ADC yang sebenarnya sekitar 2110~13600, dan interval ini dijadikan acuan hitam-putih untuk menyesuaikan ulang kecerahan
  • Pada tahap ini, gambar hampir tidak memiliki informasi warna karena sensor hanya mengukur intensitas cahaya

Proses pemulihan informasi warna

  • Sensor kamera berwarna mendeteksi hanya satu dari merah, hijau, atau biru di setiap piksel melalui susunan filter Bayer
  • Jika warna diterapkan sesuai filter warna tiap piksel, nuansa warna mulai muncul, tetapi setiap piksel hanya memiliki salah satu dari RGB
  • Dengan menghitung rata-rata nilai piksel tetangga untuk melakukan demosaicing, warna dipulihkan ke seluruh gambar

Kecerahan dan koreksi gamma

  • Alasan gambar hasilnya tampak gelap adalah keterbatasan dynamic range monitor dan persepsi kecerahan nonlinier pada penglihatan manusia
  • Jika data linear ditampilkan apa adanya, gambar akan terlihat gelap, sehingga area gelap diterangkan dengan menerapkan kurva gamma nonlinier
  • Namun dalam proses ini muncul fenomena kelebihan kanal hijau, yang disebabkan oleh sensitivitas sensor terhadap hijau dan proporsi hijau dalam susunan Bayer

White balance dan koreksi warna

  • White balance disesuaikan dengan mengatur tiap kanal warna dalam rasio tertentu
  • Kembali ke tahap sebelum transformasi nonlinier, kanal hijau diturunkan lalu kurva gamma diterapkan lagi
  • Melalui proses ini, dihasilkan foto dengan warna yang natural

Perbandingan dengan pemrosesan JPEG kamera

  • Gambar JPEG bawaan yang dihasilkan kamera dari data RAW yang sama sudah merupakan hasil dari berbagai proses koreksi matematis
  • Menyesuaikan kontras atau white balance di software pengeditan pada dasarnya adalah operasi yang sama dengan pemrosesan internal kamera
  • Konsep “foto yang tidak diedit” sebenarnya tidak ada; semua foto adalah hasil pemrosesan matematis
  • Sulit mereproduksi penglihatan manusia secara sempurna, dan karena keterbatasan display, kebutuhan akan penyesuaian manual selalu ada

1 komentar

 
GN⁺ 2025-12-29
Komentar Hacker News
  • Saya jadi berpikir apakah menerapkan transfer function yang sama ke setiap piksel seharusnya dianggap sebagai ‘pemrosesan’
    Pada era film, jika film hitam-putih ISO 400 dipush ke 1600, akan muncul grain kasar, tetapi itu adalah ‘noise’ yang seragam di seluruh foto
    Sekarang noise reduction sudah berkembang luar biasa, tetapi dalam prosesnya gambar itu sendiri bisa berubah
    Misalnya, kamera IP saya kadang membuat sebagian roda sepeda hilang saat saya masuk sambil bersepeda. Algoritmenya salah mengira tekstur aspal sebagai noise lalu menghapusnya
    Smartphone atau kamera digital juga membuat wajah terlihat ‘seperti lukisan’ saat dizoom atau dalam cahaya rendah
    Saya lebih memilih noise yang jujur, atau algoritme noise reduction yang bisa diatur dari ‘tidak ada’ sampai default saat ini

  • Saya suka tulisan yang mengupas lapisan abstraksi dari sebuah ‘gambar’. Pada akhirnya, fotografi modern hanyalah pemrosesan sinyal yang ditambah pemasaran
    Alasan Bayer pattern berbentuk RGGB (50% hijau) bukan hanya keseimbangan warna, tetapi juga resolusi spasial
    Mata manusia paling sensitif terhadap cahaya hijau, jadi kanal hijau menangani sebagian besar luminance (detail)
    Algoritme demosaicing tingkat lanjut membuat peta luminance beresolusi tinggi dari kanal hijau, lalu menginterpolasi merah dan biru sebagai layer chroma difference
    Prinsip inilah yang juga memungkinkan kompresi video seperti chroma subsampling 4:2:0
    Jika ingin mendalaminya, saya sarankan melihat source code dcraw atau libraw. Ada sangat banyak pengecualian untuk menafsirkan ‘tegangan raw’ pada tiap produsen sensor

    • Jika melihat rumus kuantisasi dari ppmtopgm, yang dipakai saat mengonversi format klasik PPM ke PGM, porsi hijau hampir 60%
      g = .299r + .587g + .114b
      Rasio ini menentukan kecerahan gambar grayscale
      Dan kutipan bait puisi di sana terasa mengesankan — saat menggambarkan dunia yang kehilangan warna, ia menyindir bahwa apa yang akhirnya kita anggap ‘benar’ hanyalah kesalahan kuantisasi
    • Saat bekerja di tim iklan Amazon Kindle, pernah ada gambar iklan yang kacau tampil selama 6 bulan karena RGB diubah ke grayscale dengan rata-rata sederhana
      Itu sebenarnya bisa diselesaikan hanya dengan menambahkan satu flag konversi RGB→luminance pada pemanggilan FFmpeg
    • Sebenarnya fotografi film juga merupakan pemrosesan sinyal dalam bentuk lain. Tidak ada yang namanya ‘data yang belum diproses’ yang bisa kita kenali
    • Agak terasa tidak adil bahwa Bayer pattern memberikan area dua kali lebih besar pada hijau
      Tentu alasannya karena mata manusia sensitif terhadap hijau, tetapi tetap saja terasa agak tidak masuk akal (⩺_⩹)
    • Saya tidak suka ketika orang bertanya apakah foto itu “diedit atau asli”
      JPEG yang dihasilkan kamera itu sendiri sudah merupakan hasil yang diproses secara kuat
      Membuat JPEG lain dengan menerapkan kurva, mapping, dan nilai koreksi yang berbeda bukanlah ‘manipulasi’, melainkan hanya interpretasi yang berbeda
  • Saya bekerja di bidang sensor kamera, dan menurut saya tulisan ini sangat bagus untuk materi orientasi karyawan baru
    Jika dimulai dari data RAW lalu diperlihatkan proses menuju output yang familiar, pemahamannya jadi cepat

  • Ini hanya koreksi typo kecil: seharusnya memakai “than”, bukan “then”

  • Saat kuliah S1 saya belajar penginderaan jauh (remote sensing), dan dari situ saya benar-benar memahami sensor dan pemrosesan sinyal
    Yang saya lihat bukanlah ‘kebenaran’, melainkan sebuah view parsial dari data
    Mata manusia, mata kucing, dan kamera masing-masing mengumpulkan dan merepresentasikan subset data yang berbeda
    Akan lebih menarik lagi jika ruang dan waktu dipandang sebagai dimensi tambahan dari sinyal
    Pada akhirnya saya merasa kita semua hanyalah sistem sensor yang mengamati sebagian dari alam semesta

  • Dalam fotografi digital, kompresi dynamic range dan debayering memang esensial,
    tetapi berbeda halnya dengan AI yang mengenali objek lalu merekonstruksi gambar secara halusinatif seolah-olah ‘beginilah seharusnya’
    Produsen mendorong ke arah ini, dan itu menimbulkan masalah seperti keandalan foto sebagai bukti

    • Saya rasa tidak ada ‘asli’ dan ‘palsu’ dalam foto
      Semua gambar adalah interpretasi data dan hasil dari banyak pilihan
      Kalau benar-benar ingin dibedakan, mungkin bisa dibagi menjadi edit global dan edit lokal, dan edit lokal bisa dianggap lebih dekat ke ‘palsu’
      Tetapi pada akhirnya yang utama adalah niat (intent)
      Jika ada niat untuk menipu, bahkan foto yang langsung keluar dari kamera pun bisa menjadi ‘palsu’
      Kebanyakan orang menganggap penerapan filter sebagai sesuatu yang ‘palsu’, padahal sebenarnya semua foto memakai filter
      Menyebut proses itu sendiri sebagai ‘palsu’ tidak ada artinya
  • Saya teringat kutipan dari film Tim’s Vermeer
    Seperti pernyataan bahwa “gagasan modern bahwa seni dan teknologi harus dipisahkan itu keliru”,
    perpaduan seni dan teknologi justru merupakan ciri khas masa keemasan
    Saya juga merekomendasikan The Science of Photography karya John Lind dan
    penjelasan sensor oleh Bob Atkins.
    Bagian yang menjelaskan mengapa ukuran pixel well penting terasa sangat berkesan

  • Saya pikir alasan data linear terlihat gelap saat ditampilkan apa adanya adalah karena keterbatasan monitor
    Jika bit depth cukup besar, bukankah linear light bisa ditampilkan tanpa gamma correction?

    • Tidak, masalahnya adalah bentuk kurvanya
      Persepsi luminance manusia tidak linear, jadi non-linearization dibutuhkan di tahap mana pun
      Perhitungan idealnya dilakukan di linear color space 16-bit atau lebih, lalu gamma diterapkan tepat sebelum ditampilkan
      Dulu blending sering dilakukan di RGB non-linear sehingga muncul banding gelap
    • Gamma correction bukan hanya karena monitor, tetapi juga untuk mengalokasikan lebih banyak bit ke highlight dan shadow
      CRT memakai gamma untuk mengoreksi respons non-linear electron gun, dan film maupun sensor CMOS juga memiliki sensitivitas berbentuk logaritmik terhadap cahaya sehingga memerlukan perlakuan serupa
    • Jika sunset ditampilkan secara linear, bagian mataharinya akan tampak seterang menyakitkan mata. Itu tidak realistis
  • ‘Foto yang belum diproses’ pada praktiknya tidak ada
    RAW hanyalah sekumpulan nilai piksel RGGB, dan untuk menyesuaikannya dengan dynamic range sempit layar, data harus dibuang secara strategis
    serta titik abu-abu tengah harus didefinisikan, dan proses itulah wilayah interpretasi kreatif

  • Ada sedikit kekecewaan karena contoh di tulisan terasa terlalu artifisial dan pencahayaannya terlalu berwarna-warni, sehingga sulit memahami apa yang menjadi ‘ground truth’

    • Tetapi justru itulah intinya. Tujuan tulisan ini adalah mendorong kita untuk memikirkan ulang secara kritis konsep ‘ground truth’ itu sendiri
      Cukup bandingkan dua gambar terakhir dan nilai sendiri ‘hasilnya’ sesuai preferensi masing-masing