AviutlのGPUフィルタでHDR2SDR

この前公開したclfiltersは、基本的にはこれまでNVEncやQSVEncなどに実装してきたGPUフィルタをAviutlでも使えるようにしたもの。

対応フィルタの中にはvpp-colorspace(色空間変換)があって、この中でhdr2sdrを使うことができる。

使い方が少しややこしいので、使い方の説明をしてみる。




HDR



HDRは、High Dynamic Rangeの略で、これまでよりもレンジの広い範囲の輝度を扱うための仕組み。それに対して、従来の取り扱い方をSDRという。

基本的にはHDRに対応する処理系が必要で、対応していない処理系では、本来の効果を発揮しない。(まあ私自身はHDR対応モニタを持ってないのでそもそもよくわからんが…)



AviutlでのHDR



AviutlでHDR素材を入力してHDR非対応モニタで見ると、そのままだと暗くくすんだ色に表示されてしまうことが多い。

今回の入力サンプルはこちらからお借りした。

clfilters_20220517_hdr2sdr_original

HDRは基本的にはHDRのまま取り扱うのがよさそうだが、一方でSDRに変換したい場合には、clfiltersのhdr2sdr機能を活用できる。



clfiltersのhdr2sdr機能の使い方



まず、入力色空間を把握する必要があるので、MediaInfoで分析する。

MediaInfoでの分析結果はこちらの通り。

clfilters_20220517_source_mediainfo.png

これを入力側の情報として設定していく。(このあたりが入力映像に合っていないとうまくいかない)

今回の例だと、

- colorprim bt2020 (color primariesより)
- transfer smpte2084 (transfer characteristicsより)
- matrix bt2020nc (matrix coefficientより)

とすればよいことがわかる。

なお、transferは"PQ"ならsmpte2084、"HLG"の場合はarib-std-b67を選択するとよいようだ。

clfilters_20220517_hdr2sdr_param.png

出力側はSDRなのでbt709と設定した上で、matrix, colorprim, transferのチェックを入れる。

さらにhdr2sdrをnoneから使用したいものに変更して、入力ピーク(輝度)と目標輝度を適当に調整していく感じ。これはいろいろ試してみてお好みのものにしてみてほしい。(クリックで拡大)

目標輝度=100の場合で4つのオプションを試してみるとこんな感じ。(クリックで拡大)

clfilters_20220517_hdr2sdr_hable

clfilters_20220517_hdr2sdr_mobius

clfilters_20220517_hdr2sdr_reinhard

clfilters_20220517_hdr2sdr_bt2390

こんな感じで、どうしても白く飛んじゃってるところはあるけど、ある程度それらしいSDR映像に変換できる。

まあ、本来はHDR映像はちゃんとHDR対応モニタで表示するか、あるいは再生中にmadVR等でSDR変換するのがいいと思うけど、AviutlでSDR映像に変換したい場合はこんな方法もあるよ、ということで。



今回紹介したhdr2sdrの実装は、もともとはgithubで要望があって、mpv等の実装を参考としてNVEncCのCUDA版vppフィルタに実装し、さらにそれをOpenCLに移植したもの。

clfiltersを作ったことで、このあたりを実際に切り替えてすぐチェックできるようになったのは良かったと思う。
スポンサーサイト



コメントの投稿

非公開コメント

No title

同じようにしてもプレビューでまったく色が変化しません・・・
ソース映像も同じもの使ってるのですがなぜでしょう
グラボはRTX3080です。

Re: No title

おそらくGPUで処理するための仕組み(OpenCL)が正常に動作していないものと思われます。

下記リンク先のように、使用したいGPU名が適切に表示されているかまずご確認ください。
https://github.com/rigaya/Aviutl-clfilters#%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95

表示されていない場合は、GPUドライバの再インストール等をお試しください。
プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先: rigaya34589@live.jp
github twitter

最新記事
最新コメント
カテゴリ
月別アーカイブ
カウンター
検索フォーム
いろいろ
公開中のAviutlプラグインとかのダウンロード

○Aviutl 出力プラグイン
x264guiEx 3.xx
- x264を使用したH264出力
- x264guiExの導入紹介動画>
- x264guiExの導入
- x264guiExのエラーと対処方法>
- x264.exeはこちら>

x265guiEx
- x265を使用したH.265/HEVC出力
- x265guiExの導入>
- x265.exeはこちら>

QSVEnc + QSVEncC
- QuickSyncVideoによるHWエンコード
- QSVEnc 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC
- NVIDIAのNVEncによるHWエンコード
- NVEnc 導入/使用方法>
- NVEncCオプション一覧>

VCEEnc + VCEEncC
- AMDのVCE/VCNによるHWエンコード
- VCEEnc 導入/使用方法>
- VCEEncCオプション一覧>

svtAV1guiEx
- SVT-AV1によるAV1出力
- svtAV1guiExの導入>
- SVT-AV1単体はこちら>

VVenCguiEx
- VVenCによるVVC出力
- VVenCguiExの導入>

ffmpegOut
- ffmpegを使用した出力
- ffmpegOutの導入>


○Aviutl フィルタプラグイン
自動フィールドシフト (ミラー)
- SSE2~AVX512による高速化版
- オリジナル: aji様

clcufilters 
- OpenCL/CUDAのGPUフィルタ集
- 対応フィルタの一覧等はこちら

エッジレベル調整MT (ミラー)
- エッジレベル調整の並列化/高速化
- SSE2~AVX512対応
- オリジナル: まじぽか太郎様

バンディング低減MT (ミラー)
- SSE2~AVX512による高速化版
- オリジナル: まじぽか太郎様

PMD_MT
- SSE2~AVX512による高速化版
- オリジナル: スレ48≫989氏

透過性ロゴ (ミラー)
- SSE2~FMA3によるSIMD版
- オリジナル: MakKi氏

AviutlColor (ミラー)
- BT.2020nc向け色変換プラグイン
- BT.709/BT.601向けも同梱

○その他
Amatsukaze改造版
- AmatsukazeのAV1対応版

tsreplace
- tsの映像のみを置き換えて圧縮

rkmppenc
- Rockchip系SoCのhwエンコーダ

fawutil
- FAW(FakeAACWave)⇔aac変換
- 二重音声の取り扱いにも対応

x264afs (ミラー)
- x264のafs対応版

aui_indexer (ミラー使い方>)
- lsmashinput.aui/m2v.auiの
 インデックス事前・一括生成

auc_export (ミラー使い方>)
- Aviutl Controlの
 エクスポートプラグイン版
 エクスポートをコマンドから

aup_reseter (ミラー)
- aupプロジェクトファイルの
 終了フラグを一括リセット

CheckBitrate (ミラー, 使い方, ソース)
- ビットレート分布の分析(HEVC対応)

チャプター変換 (使い方>)
- nero/appleチャプター形式変換

エッジレベル調整 (avisynth)
- Avisynth用エッジレベル調整

メモリ・キャッシュ速度測定
- スレッド数を変えて測定
- これまでの測定結果はこちら

○ビルドしたものとか
L-SMASH (ミラー)
x264 (ミラー)
x265 (ミラー)
SVT-AV1 (ミラー)

○その他
サンプル動画
その他

○読みもの (ミラー)
Aviutl/x264guiExの色変換
動画関連ダウンロードリンク集
簡易インストーラの概要

○更新停止・公開終了
改造版x264gui
x264guiEx 0.xx
RSSリンクの表示
リンク
QRコード
QR