. Vulkanのハードウェア支援を受けた汎用フィルタlibplacebo | ニコラボ
Vulkanのハードウェア支援を受けた汎用フィルタlibplacebo | ニコラボ
Vulkanのハードウェア支援を受けた汎用フィルタlibplacebo | ニコラボ

Vulkanのハードウェア支援を受けた汎用フィルタlibplacebo

ハードウェア支援なくデコードしてyuv420p形式にリサイズする。 ffmpeg -init_hw_device vulkan=vk:0 -filter_hw_device vk -i input -vf "hwupload,libplacebo=inputs=1:w=1280:h=720:format=yuv420p,hwdownload,format=yuv420p" -c:v libx264 -c:a copy output

NvidiaのGPUがあればデコード支援に使い、こちらの方が速い。 ffmpeg -hwaccel cuda -hwaccel_output_format cuda -init_hw_device vulkan=vk:0 -filter_hw_device vk -i input -vf "hwupload,libplacebo=inputs=1:w=1280:h=720:format=nv12,hwupload_cuda" -c:v hevc_nvenc -c:a copy output

10ビット深度でリサイズする。 ffmpeg -hwaccel cuda -hwaccel_output_format cuda -init_hw_device vulkan=vk:0 -filter_hw_device vk -i input -vf "hwupload,libplacebo=inputs=1:w=1280:h=720:format=p010le,hwupload_cuda" -c:v hevc_nvenc -pix_tmt p010le -c:a copy output

HDRからSDRにトーンマッピングする。 ffmpeg -hwaccel cuda -hwaccel_output_format cuda -init_hw_device vulkan=vk:0 -filter_hw_device vk -i input -vf "hwupload,libplacebo=format=gbrpf32le:color_trc=linear:tonemapping=mobius,libplacebo=format=nv12:colorspace=bt709:color_primaries=bt709:color_trc=bt709,hwupload_cuda" -c:v hevc_nvenc -c:a copy output

mpvのhook shadersを使う。 glsl形式は読めない。 ffmpeg -hwaccel cuda -hwaccel_output_format cuda -init_hw_device vulkan=vk:0 -filter_hw_device vk -i input -vf "hwupload,libplacebo=custom_shader_path='C\:/Users/owner/AppData/Roaming/mpv.net/shaders/NoChroma.hook',hwupload_cuda" -c:v hevc_nvenc -c:a copy output

  • mpv.io
  • User Scripts · mpv-player/mpv Wiki
  • bShaders/NoChroma.hook at master · butterw/bShaders
  • Video player Shaders guide (MPC-HC, mpv) – Doom9’s Forum

デバンディング。 ffmpeg -hwaccel cuda -hwaccel_output_format cuda -init_hw_device vulkan=vk:0 -filter_hw_device vk -i input -vf "hwupload,libplacebo=format=nv12:deband_iterations=1:deband_threshold=4:deband_radius=16:deband_grain=6:force_dither=1:dithering=0,hwupload_cuda" -c:v hevc_nvenc -c:a copy output

libplacebo フィルタでフィルムグレインを有効にするには、CPUベースのAV1/H.274フィルムグレインの適用を抑制する-export_side_data +film_grainをつける。 ffmpeg -export_side_data +film_grain -hwaccel cuda -hwaccel_output_format cuda -init_hw_device vulkan=vk:0 -filter_hw_device vk -i input -vf hwupload,libplacebo=apply_filmgrain=true -c:v hevc_nvenc -c:a copy output

RGBの映像ソースに色情報がないときは colorspace フィルタで変換してYUVの動画用に直す。未確認だが外部デバイスからRGBを取り込むときに必要かもしれない。 ffmpeg -hwaccel_output_format vulkan -init_hw_device vulkan=vk -filter_hw_device vk -f lavfi -i colorchart=d=1 -vf colorspace=all=bt709:iprimaries=bt709:itrc=srgb:ispace=bt709:fast=1,hwupload,libplacebo=inputs=1:w=1280:h=720:upscaler=lanczos:format=yuv420p10le:range=tv -bsf:v hevc_metadata=colour_primaries=1:transfer_characteristics=1:matrix_coefficients=1 -c:v libx265 -crf 20 -pix_fmt yuv420p10le -color_primaries bt709 -color_trc bt709 -colorspace bt709 -color_range tv output.mp4

  • 色の情報の扱いについて
  • ffmpeg で使える映像のテストソース
  • colorspace – FFmpeg
オプション

ffmpeg -h filter=libplacebo で見られるパラメータ一覧。

  • upscaler[string]
  • downscaler[string]
    • bilinear, triangle
    • nearest
    • oversample
    • bicubic
    • lanczos
    • ewa_lanczos
    • ewa_lanczossharp
    • ewa_lanczos4sharpest
    • gaussian
    • spline16
    • spline36
    • spline64
    • mitchell
    • sinc
    • ginseng
    • ewa_jinc
    • ewa_ginseng
    • ewa_hann, ewa_hanning
    • catmull_rom
    • robidoux
    • robidouxsharp
    • ewa_robidoux
    • ewa_robidouxsharp
    glsl形式のshadersを読み込んでアップスケールする
    • bloc97/Anime4K: A High-Quality Real Time Upscaler for Anime Video
      • Home · bloc97/Anime4K Wiki
      • Avisynth AiUpscale v1.2.0 – Doom9’s Forum
      • Mathematically Evaluating mpv’s Upscaling Algorithms – Doom9’s Forum
      • アルゴリズムの強さ:S < M < L < VL < UL < UUL
      • Deblurはオーバーシュートやリンギングを防ぎ細部をシャープに
      • Restoreはジャギー低減
      • Anime4K_Darkenは線が濃くなり、コントラストが強くなる。Thinと併用する
      • Anime4K_Thinは線が薄くなる。Darkenと併用する。1080pや4Kに有用
      • DTDはDarken-Thin-Deblurの略語
      • AutoDownscalePreはディスプレイ解像度を超える過剰増幅を防ぎ、ダウンスケール処理の追加ステップを回避する
      • Clampは画像のハイライトをクランプ(固定)し、リンギングを防ぎ、オーバーシュートを減らすために使用される
      • GANは一般的にCNNよりも高品質
      • Anime4Kはクロマアップスケールのアルゴリズムを持っていない
      • AiUpscaleはAviSynthのAIアップスケール
      • x2などは等倍率リサイズ向け
      • KrigBilateralはクロマアップスケールに使われ4:2:0、または4:4:4のみに対応
      • 推奨順:Clamp→Restore→Upscale→AutoDownscalePre→Upscale
      • 4Kモニタを使っているならmpvとAnime4Kでビデオを再生しよう
      • 最高峰アニメAIアプコン「2x_AnimeJaNai」のV2バージョン遂に登場!! : HD DVDでゴーゴー
      • Mathematically Evaluating mpv’s Resampling Algorithms
      • 第三方用户着色器 – mpv_CFanStation

      2倍にリサイズする例。10ビット深度にしたほうがきれいに仕上がる。映像に色の情報がついてないときは入力オプションに情報を明示する。.glslファイルはカレントディレクトリに置く。 ffmpeg -hwaccel_output_format vulkan -init_hw_device vulkan=vk -filter_hw_device vk -color_primaries bt709 -color_trc bt709 -colorspace bt709 -color_range tv -i input -vf "hwupload,libplacebo=w=-2:h=2*ih:custom_shader_path=Anime4K_Upscale_CNN_x2_VL.glsl:format=yuv420p10le" -bsf:v hevc_metadata=colour_primaries=1:transfer_characteristics=1:matrix_coefficients=1 -c:v libx265 -c:a copy -crf 20 -pix_fmt yuv420p10le -color_primaries bt709 -color_trc bt709 -colorspace bt709 -color_range tv output.mp4

      適宜.glslファイルを指定した libplacebo フィルタを複数回指定して求める結果を探す。

      コメントを残す コメントをキャンセル

      カテゴリー

      最近の投稿

      • FFmpeg 8.1リリース 2026年3月18日
      • SSIMULACRA2, Butteraugli, CVVDPを調べるFFVship 2025年9月22日
      • Vulkanエンコーダのまとめ 2025年9月19日
      • FFmpeg 8.0リリース 2025年8月23日
      • 彩度を考慮してグレースケールにするmonochromeフィルタの使い方 2025年5月2日
      • 任意に時間や、効果を変えられるsendcmd、asendcmdフィルタの使い方 2025年4月8日
      • FFmpeg 7.1リリース 2024年10月1日
      • 視覚評価に重きを置いたxpsnr 2024年9月9日
      • ブロックノイズを数値化するblockdetect 2024年6月15日
      • FFmpeg 7.0リリース 2024年4月12日