YUV、RGB それぞれのチャンネルにどれくらいのノイズが含まれているか、0 から 1 までの範囲で調べられるbitplanenoiseフィルタの使い方。ノイズ計数は 1 に近いほどノイズが多い。ログの表示にmetadata、drawtextフィルタを使っている。

基本コマンド

最初のチャンネルのノイズを3チャンネルに分解して noise.txt に出力する。
ffmpeg -i input -vf bitplanenoise=bitplane=1,metadata=mode=print:file=noise.txt -an -f null -

出力例。bitplanenoise.チャンネル番号.該当チャンネル番号の順になる。

frame:0    pts:0       pts_time:0
lavfi.bitplanenoise.0.1=0.827908
lavfi.bitplanenoise.1.1=0.791910
lavfi.bitplanenoise.2.1=0.736319

bitplane=7で調べるほうがチャンネルに応じた表示になるからログが読みやすい。
ffmpeg -i input -vf bitplanenoise=bitplane=7,metadata=mode=print:file=noise.txt -an -f null -

テキストファイルではなくコンソールに出力する。
ffmpeg -i input -vf bitplanenoise=bitplane=7,metadata=mode=print:file=- -an -f null -

ノイズをわかりやすくして再生する。
ffplay -i input -vf bitplanenoise=bitplane=7:filter=1

各チャンネルのノイズをvstackフィルタを使って縦に3つ並べる。順番は上から下にYUV。
ffplay -i input -vf format=yuv444p,bitplanenoise=bitplane=7:filter=1,extractplanes=y+u+v,vstack=3

YUV420Pの映像の場合。
ffplay -i input -vf bitplanenoise=bitplane=1:filter=1,extractplanes=y+u+v[y][u][v];[u][v]vstack=2,[y]hstack=2

drawtextフィルタを使って映像上にノイズ係数を描写する。
ffplay -i input -vf bitplanenoise=7,drawtext=y=20:fontfile=C\\://WINDOWS/Fonts/arial.ttf:fontsize=20:fontcolor=white:box=1:boxcolor=black@0.4:text='"noise 0.7 "%{metadata\:lavfi.bitplanenoise.0.7}',drawtext=y=40:fontfile=C\\://WINDOWS/Fonts/arial.ttf:fontsize=20:fontcolor=white:box=1:boxcolor=black@0.4:text='"noise 1.7 "%{metadata\:lavfi.bitplanenoise.1.7}',drawtext=y=60:fontfile=C\\://WINDOWS/Fonts/arial.ttf:fontsize=20:fontcolor=white:box=1:boxcolor=black@0.4:text='"noise 2.7 "%{metadata\:lavfi.bitplanenoise.2.7}'

左にbilateralフィルタを当ててノイズ係数を比較してる。
ffplay -i input -vf split[2],bilateral=planes=7,bitplanenoise=7,crop=iw/2:ih:0:0,drawtext=y=20:fontfile=C\\://WINDOWS/Fonts/arial.ttf:fontsize=20:fontcolor=white:box=1:boxcolor=black@0.4:line_spacing=2:textfile=bitplanenoise_drawtext.txt[l];[2]bitplanenoise=7,crop=iw/2:ih:0:0,drawtext=y=20:fontfile=C\\://WINDOWS/Fonts/arial.ttf:fontsize=20:fontcolor=white:box=1:boxcolor=black@0.4:line_spacing=2:textfile=bitplanenoise_drawtext.txt[r];[l][r]hstack

公式ドキュメント:FFmpeg Filters Documentation : bitplanenoise

オプション

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)