似たフィルタにsmartblur
があり、こちらもぼかしたりシャープにできる。RGB の映像は YUV に変換され、輝度だけ、彩度だけ、また両方にフィルタを当てられる。
基本コマンド
ffmpeg -i input -vf unsharp=lx=5:ly=5:la=1:cx=5:cy=5:ca=0:opencl=0 output
ffplay -i input -vf unsharp=5:5:1:5:5:0:0
公式ドキュメント:FFmpeg Filters Documentation : unsharp
オプション
輝度、または彩度のオプションを無効にするにはluma_amount, chroma_amountのオプションを 0 にする。
- luma_msize_x, lx[int]
輝度(Y)の横サイズの指定。lx + lyを26以下にする
既定値:5
範囲:3 から 23 までの奇数 - luma_msize_y, ly[int]
輝度(Y)の縦サイズの指定。lx + lyを26以下にする
既定値:5
範囲:3 から 23 までの奇数 - luma_amount, la[float]
輝度(Y)のフィルタ強度。プラスでシャープに、マイナスでぼかしに効果があり、値の絶対値が大きいほど効果も大きくなる
適正値は -1.5 から 1.5 まで、0 で無効になる
既定値:1
範囲:-2 から 5 まで - chroma_msize_x, cx[int]
彩度(UV)の横サイズの指定。cx + cyを26以下にする
既定値:5
範囲:3 から 23 までの奇数 - chroma_msize_y, cy[int]
彩度(UV)の横サイズの指定。cx + cyを26以下にする
既定値:5
範囲:3 から 23 までの奇数 - chroma_amount, ca[float]
彩度(UV)のフィルタ強度。プラスでシャープに、マイナスでぼかしに効果があり、値の絶対値が大きいほど効果も大きくなる
適正値は -1.5 から 1.5 まで、0 で無効になる
既定値:0
範囲:-2 から 5 まで - opencl[boolean]
configure の--enable-opencl
で有効化していればopencl
が使えるが、効果がないように見えるのでunsharp_openclフィルタを使う
既定値:0(無効)
unsharp_opencl
opencl を使ってunsharp_opencl
フィルタを使う。
opencl が使えれば以下のコマンドを実行すると対応 CPU、または GPU が表示される。
ffmpeg -hide_banner -v verbose -init_hw_device opencl
出力コマンド例。
ポイントは opencl を使うデバイスを上の例では 0.0 から 1.1 から指定する。能力によって処理速度が大きく異なる。オプション指定は通常と同じ。
コマンド例。
ffmpeg -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwupload,unsharp_opencl output
通常のフィルタに切り替えるにはhwdownload,format=yuv420p
フィルタを挟む。
ffmpeg -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwupload,unsharp_opencl,hwdownload,format=yuv420p,lutyuv=val:128:128 output