
ラズパイ用カメラといえばHQカメラモジュールが定番だが、SonyのCMOSセンサーをそのまま接続できるボードを個人が作って販売しているのをご存じだろうか。YouTuberの「Beard」氏が、そのうちの一つ「IMX585」でHDR動画を撮るまでの格闘を、自作ツールのGitHub公開とともに動画で公開した。
IMX585はSonyが設計した1/1.2型CMOSセンサーで、ボードはWill Whang氏やSOHO Enterprisesといった個人・小規模メーカーが製造しているサードパーティ品だ。ラズパイのCSIコネクターにリボンケーブルで繋がり、5V電源(新バージョンはリボンケーブルから給電可能)だけで動作する。Cマウントにはソフトウェアで制御できるIRカットフィルターが内蔵されており、外付けフィルター不要だ。
このセンサーの目玉がClearHDRモードだ。同じ露光を2回読み出し、それぞれに異なるゲインをかけて1フレーム内でHDRを合成する。通常の2フレーム合成HDRと違い、被写体の動きによるゴーストが原理的に発生しない。ラズパイのカメラAPIが生成できる2露光HDRより優れた仕組みだ。
しかし問題が一つある。IMX585はHDRモードで16ビットのビッグエンディアンデータを出力するが、バイト順が通常と逆に入れ替わっている。ラズパイのISP(画像処理プロセッサ)はこのフォーマットをハードウェアレベルでサポートしておらず、ラズパイ5でも「対応予定なし」という状態だ。ISPがデータを正しく解釈できないため、HDRモードでは自動露出も自動ホワイトバランスも機能せず、プレビュー画像は完全に壊れた状態で表示される。
Beard氏はこれを回避するため、PCからSSH経由でラズパイに接続するPython製のGUIツールを自作した。まず12ビット通常モードで撮影して自動露出・ホワイトバランスのパラメーターを取得し、それを16ビットHDRモードに引き継ぐという手順でプレビューなしの「勘撮り」を回避している。取得した生データはDNG変換スクリプトとProRes変換スクリプトの2種類で後処理できるようにした。DNG変換はDaVinci Resolveでそのまま読み込めるようにEXIFメタデータを操作し、タングステン光とD50光の2種類のカラーマトリクスを埋め込んでいる。ProRes変換はFFmpegにフレームを直接パイプで渡すことで一時ファイルを作らずに並列処理する。
「このセンサーはHDRなしの12ビットモードでも十分優秀」とBeard氏は強調する。HDRモードはリードアウト時間が増加するトレードオフもある。それでも「ClearHDRがどこまで使えるか確かめたかった」という探求心でここまで掘り下げた一連のツールと知見はGitHubで公開されている。

