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
オプション
- bitplane[int]
どのチャンネルを調べるか
詳しくは ffmpeg について | チャンネルの順番と注意点を参照
既定値:1
範囲:1 から 16 まで - filter[boolean]
ノイズピクセルの表示
既定値:0