ffmpeg: コントラストを適応的に伸ばす

ffmpeg: コントラストを適応的に伸ばす

劣悪な条件下で録画された (カラー) ビデオを考えてみましょう。フレームの最も明るいピクセルは純白よりはるかに低く、最も暗いピクセルは純黒よりはるかに高くなっています。オーディオ コンプレッサー/リミッターのように、各フレームのコントラストを最大輝度範囲に近づけることはできますか? これは、ffmpeg の多数のフィルターのいくつかを使用して実行できますか?

もちろん、各フレームの最も明るい値を白に、最も暗い値を黒にするだけでは、露出が1910年に撮影されたようなカクカクした感じになります。それぞれフレームのコントラストは、最も明るい値と最も暗い値に依存する必要があります。周囲のフレーム、おそらく +-10 秒。

すべてのフレームを抽出し、imagemagick を使用して各フレームの白点と黒点を取得し、それらを配列に格納し、配列を平滑化し、imagemagick を使用して各フレームのコントラストを再度引き伸ばし、ビデオを再構築することもできます。しかし、それは明らかに中世的なようです。

答え1

ヒステク希望するものに近づきます。ただし、さまざまな種類の LUT フィルターや lut3d も検討できます。

LUT フィルターは、実際にフレームを見て、使用する値を決定できるという点で、よりカスタマイズ可能です。さらに、入力マテリアルの輝度レベルに大きなばらつきがある場合、「フレームごと」の補正を適用すると、出力が乱れる可能性があります。すべてのフレームに均一な強度の補正を適用すると、よりスムーズな結果が得られます。

関連情報