
2025/12/29 7:35
未処理の写真は、実際にどのような姿になるのでしょうか。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
改良された要約
この記事は、カメラのRAWファイルが鈍く緑色がかった見た目になる理由を説明し、その原因をセンサーのADC出力、カラー・フィルタリング、およびその後の処理ステップに追跡しています。
-
ADC 出力とコントラスト – 14ビット ADC は理論上 0–16382 の値を出力しますが、実際のデータは約 2110–136000 の範囲にしかわかりません。これらの限界(黒レベル ≈ 2110、白点 ≈ 136000)を
[ V_{\text{new}} = \frac{V_{\text{old}} - \text{Black}}{\text{White} - \text{Black}} ] で再マッピングするとコントラストが向上します。 -
カラーキャプチャ – センサーは光の強度を記録し、色ではありません。ベイヤーフィルタグリッドは各ピクセルに単一の RGB コンポーネントを割り当てるため、初期画像にはピクセルあたり真の RGB の 1/3 のみが含まれます。
-
デモザイキングとダイナミックレンジ – デモザイキングは隣接ピクセルを平均化してフルカラー画像を作成しますが、依然として動的範囲が限定されます。線形 RAW データは、環境光や画面ガンマを考慮しないため、典型的なディスプレイ上で非常に暗く見えます。
-
知覚とデータ – 人間の明るさ知覚は非線形です。したがって、線形 ADC 値はガンマ補正や sRGB カーブを適用しない限り、過度に暗く見えることがあります。
-
緑色キャストの起源 – 緑色のチントは、センサーの緑光への高感度、ベイヤーピクセルの 2/3 が緑を捕捉している事実、および単純なデモザイキングから生じます。
-
ホワイトバランスとガンマ – ホワイトバランスのスケーリングは線形データに対してガンマ補正より先に適用する必要があります。各チャネルに別々にガンマカーブを適用すると、ハイライトが減色(例えば星が黄色くなる)する可能性があります。
-
最終画像の現在状態 – 著者の最終画像は未加工であり、カラーキャリブレーションも残留ノイズや完璧なホワイトバランスもありません。これにより、カメラ処理がすでにかなりの数学を行っていることが示されています。
-
写真家とメーカーへの影響 – これらのステップを理解することで、写真家は RAW ファイルをより効果的に処理でき、メーカーはデフォルト設定、デモザイキングアルゴリズム、およびガンマ処理を改善する潜在的な領域を特定できます。
このバージョンは主要なポイントすべてを保持し、不必要な推測を避け、メインメッセージを明確に保ちつつ曖昧な表現を排除しています。
本文
2025年12月27日
(写真)
カメラのセンサーが捉えるクリスマスツリーの画像です:
- センサーデータ – 14ビットADC値を0–255 RGBにマッピング。
黒白ではなくグレーとグレーなのは、ADC出力が理論上0から16 382まで行けるものの、実際にはその全範囲をカバーしていないためです。
生画像のヒストグラム ADC値の実際のレンジは約2 110〜約136 000。 これらを画像内の白と黒に設定しましょう: Vnew = (Vold - Black) / (White - Black)
- 進捗 – かなり改善しましたが、ツリーはまだ記憶よりもモノクロです。
カメラセンサーは実際には色を「見る」わけではなく、各ピクセルにどれだけ光が当たるかを測定します。
交互に配置されたカラー フィルタのカメラセンサーメッシュ
色付きカメラでは、センサーは交互に配置された色フィルタで覆われています:
- 色割り当て – 各ピクセルを通過しているフィルタと同じ色で塗ります。
ベイヤーマトリックスのオーバーレイ
このバージョンはよりカラフルですが、各ピクセルはRGBカラーの3分の1しか持ちません。
これを修正するために、各ピクセルをその隣接ピクセルと平均化しました:
デモザイキング結果 全画像にこのプロセスを適用するとライトに色が付きます:
-
結果 – まだ非常に暗いです。これはモニターが人間の目やカメラセンサーほどダイナミックレンジを持たないためです。
OLEDを使用していても、画面は周囲光を反射し、黒くなる限界があります。
さらに別の要因があります:
真線形グラデーション 明るさへの知覚は非線形です。 明るさ値が量子化されると、多くのADCビンがほぼ同一の白色に使われ、他のトーンは下部に詰め込まれます。 これはメモリ使用効率が悪いため、ほとんどのカラースペースでは暗い色に追加ビンを割り当てています: sRGBグラデーション
その結果、線形データを直接表示すると実際よりもはるかに暗く見えます。
両問題とも各カラー チャネルに非線形曲線を適用して暗い領域を明るくすることで解決できます…が、うまく機能しません:
あぁもう
- 緑色のキャスト – 緑光への感度が高いためこの緑色のキャストは一部カメラセンサー由来ですが、フィルタ行列に緑ピクセルが2倍あることも原因です。
単純なデモザイキングと組み合わせると緑チャネルがさらに増幅されました。
緑を消す
適切なホワイトバランスでチャンネルを均等化して修正しました:
各チャンネルに定数を掛けます。 ただし画像が非線形になったため、これを行う前のステップに戻る必要があります。 以下はすべての値を一時的に拡大した暗い画像です。問題が見えるように: … ここで緑を他のチャネルに合わせて減らしました: 緑を消す … 曲線を再適用後:
-
最終結果 – 良い写真です。
これは最低限の工程:色補正はなく、ホワイトバランスも完璧ではありませんし、ノイズ除去がまだ必要です…また各カラー チャネルに曲線を適用するとハイライトが脱彩化されます。
この効果はフィルムから期待されるような見た目ですが、星の黄色味まで落としてしまいました。明度と曲線を分離し色を保持する方法もあります。単独ではLEDクリスマスライトが過飽和になるかもしれませんが、両方を組み合わせれば良い結果が得られます。
-
比較 – 同じデータからカメラが生成した画像です:
「カメラ内」JPEG 画像。
「未編集」の写真ではありません。人間の目に見えるものを美しく表現するために、膨大な数学的処理が行われています。
編集ソフトでコントラストやホワイトバランスを調整しても、カメラ内部で既に同じような計算がされています。
編集された画像は「偽物」ではなく、元のデータから別のレンダリングに過ぎません。
最終的に人間の知覚を再現することは難しく、表示技術や印刷物の制限によってさらに困難になります。
自動アルゴリズムが誤った判断をしたときに画像を調整しても問題ありません。