QSVEnc 5.01

QSVEncは2月ぐらいからかなりいじくりまわしていて、内部のコードを大きく変えて

・メインループのわかりにくいコードを削除し、コードをシンプルに書き直す
・フィルタの実装方法を変更し、OpenCLフィルタを実装可能とする
 ・これにより従来の不安定なカスタムフィルタを置き換える
 ・OpenCLフィルタは基本的にVCEEncと共通のコードにする

あたりを目指してきた。

結構時間がかかってしまったけど、ひととおりでやりたかったことは実装でき、従来のYUV420に関しては問題なく動作できていそう。

あとは5.00で壊してしまった(というか後回しにした)Linuxビルドも修正して、問題なくビルドできるようになった。


【 更新内容 】



[ 5.00beta1/2の問題点修正 ]

・5.00 beta1から動かなかったLinuxビルドを修正。

・OpenCLフィルタを使用時、またはAV1デコード時は、d3d11モードを優先するように。
d3d9では動作しない場合があるので、自動的にd3d11に切り替えるように。

・5.00betaで-c rawを指定してもraw出力されないのを修正。



[ OpenCLフィルタの追加 ]

・下記OpenCLによるvppフィルタを追加。
- --vpp-afs
- --vpp-colorspace
- --vpp-deband
- --vpp-decimate
- --vpp-edgelevel
- --vpp-mpdecimate
- --vpp-nnedi
- --vpp-pad
- --vpp-pmd
- --vpp-smooth
- --vpp-tweak
- --vpp-unsharp
- --vpp-warpsharp

これまでVCEEncで実装してきたフィルタの移植に加え、いくつかNVEncからフィルタを実装。OpenCLフィルタをQSVでも使用できるようにするのは先にも書いたように5.xxでの目標の一つで、これがやっと実現できた。

問題はまあ予想通りではあるけど、OpenCLフィルタを使うと速度が結構下がってしまうこと。最適化するとどうにかなるものなのだろうか? あるいは将来のiGPUでEU数が増えていけば少しは改善されるだろうか?



[ TVRemotePlus関連の機能拡張 ]

・avsw/avhwでのファイル読み込み時にファイル解析サイズの上限を設定するオプションを追加。(--input-probesize)
・--input-analyzeを小数点で指定可能なよう拡張。
・読み込んだパケットの情報を出力するオプションを追加。( --log-packets )
・data streamに限り、タイムスタンプの得られていないパケットをそのまま転送するようにする。
・オプションを記載したファイルを読み込む機能を追加。( --option-file )
・動画情報を取得できない場合のエラーメッセージを追加。
・コピーするtrackをコーデック名で選択可能に。

NVEncでも実施したTVRemotePlus関連でいただいた要望の反映。チャンネル切り替えの高速化、arib-subtitle-timedmetadaterによる字幕処理への対応など。



[ その他いろいろな問題点の修正 ]

・字幕の変換が必要な場合の処理が有効化されていなかったのを修正。
・--vpp-subburnでサイズが0の字幕がくると異常終了が発生したのを修正。
・--videoformatに関しては入力から容易に取得できないので、"auto"を削除。
・--audio-source/--sub-sourceを複数指定した場合の挙動を改善。
・字幕のmetadataが二重に出力されてしまっていた問題を修正。
・--sub-metadata, --audio-metadataを指定した場合にも入力ファイルからのmetadataをコピーするように。

このあたりはNVEncでも実施した修正項目。



[ その他機能拡張 ]

・yuv444→nv12/p010/ayuv/y410変換のAVX2/SSE2版を追加。



[ 注意点・既知の問題 ]

・YUV422/YUV444では、現状まだ動作しないvppフィルタが多いです。
ちょっとまだYUV422/YUV444あたりは、フィルタを使うとエラー終了してしまったりしている。どこまでがMediaSDKの仕様で、どこからが実装の不具合ののか、今後チェックしてみないといけなさそう。



QSVEnc ダウンロード>>
ダウンロード (ミラー) >>
OneDriveの調子がいまいちの時はミラー(GDrive)からどうぞ。同じものです。

QSVEncBenchmark.zipはベンチマーク用です。(重いので注意)。run_benchmark.batをダブルクリックで実行です。

QSVEncCのオプションについてはこちら。
QSVEncCオプション一覧>

ソースはこちら


スポンサーサイト



コメントの投稿

非公開コメント

リサイズについて

チェック入れてもエンコードパラメータに反映されないのはおま環でしょうか?
4.13だと反映されます

OS : Windows 10 x64 (19042) [UTF-8]
CPU: Intel Core i7-7700K @ 4.20GHz [TB: 4.48GHz] (4C/8T)
RAM: Used 4417 MB, Total 64466 MB
GPU: Intel HD Graphics 630 (24EU) 1150MHz (27.20.100.9466)

AviUtil 1.10

No title

いつも利用させていただいています。ありがとうございます。

Ivy,Haswell,SkylakeのWindows10が用意できたので
新しいvppフィルタを中心に試してみたところ、
気になる点があったため報告します。

1. > OpenCLフィルタを使用時、またはAV1デコード時は、d3d11モードを優先するように。
 とありますが、H264またはMPEG2の動画をフィルタなしでH264に変換してみたところ
 d3d11モードが優先されましたが、これは正しい動作ですか?

2. --vpp-afs --vpp-decimate --vpp-mpdecimateパラメータなしで試した場合
・d3d11モード
 以下のエラーが出て終了しました
 RGYCLFrameInterop::acquire: Failed to acquire object: unknown error.!
 OPENCL: Failed to acquire OpenCL interop [out]: unknown error..

・--d3d9をつけて使用した場合
 (Skylake)問題なく動作しました
 (Ivy, Haswell)d3d11モードと同じエラーが出て終了しました

3. --vpp-nnediについて
 Ivybridgeでは以下のエラーが出て終了しました。
 nnedi: --vpp-nnedi requires OpenCL subgroup support!
 ※OpenCL1.2以降が必要なため、Ivybridge非対応のようです

4. -c rawに加えて以下のオプションを使用した場合
・--vpp-deinterlace(QSVフィルタのみ使用した場合)
 問題なく動作しました

・--vpp-pmd(OpenCLフィルタのみ使用した場合)
 以下のエラーが出て終了しました
 AllocFrames: invalid pipeline: cannot get request from either t0 or t1!
 ※--d3d9を指定しても同じエラーが出ました

・--vpp-pmd + --output-res(OpenCLフィルタの後にQSVフィルタを入れた場合)
 以下のエラーが出て終了しました。
 OPENCL: Failed to get OpenCL interop [in].
 ※--d3d9を指定したところ問題なく動作しました

5. --vpp-padについて
 余白を追加するオプションだと思ったのですが、
 使用するとパラメータの数値の分だけ小さく動画がリサイズされました
 これは正しい動作ですか?

6. --cropについて
 クロッピング後に入力動画と同じ解像度に拡大されます
 ver4.13では拡大されませんでした

7.「--vpp-decimate --output-res 480x272 --d3d9」を指定した場合
 動画が拡大縮小ではなくクロッピングされました

以上、ログが必要であれば貼ります

No title

>> リサイズについて

すみません、5.01の不具合のようです。次回修正します。

>> ToT 様
問題点ご指摘いただきありがとうございます。

> 1. d3d11モードが優先されましたが、これは正しい動作ですか?
動作上問題ないとは思いますが、速度が落ちる場合があるので、次回元に戻す予定です。

> 3. --vpp-nnediについて
ハードウェアが対応していないので、正常な動作です。

> 5. --vpp-padについて
> 6. --cropについて
> 7.「--vpp-decimate --output-res 480x272 --d3d9」を指定した場合
ご指摘ありがとうございます。手元では修正しましたので次回修正予定です。


> 2. --vpp-decimate --vpp-mpdecimateのRGYCLFrameInterop::acquireのエラー
いまのところ原因が謎ですが、調査して修正します。

> 4. -c rawのエラー
次々回以降修正のため調査します。

No title

QSVEnc 5.01の不具合について、詳細に教えていただき、ありがとうございました。

>> リサイズについて
QSVEnc 5.02で修正を試みました。

>>ToT様
1, 2, 4 - 7についてQSVEnc 5.02で修正を行いました。

https://rigaya34589.blog.fc2.com/blog-entry-1345.html

プロフィール

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単体はこちら>

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


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

clfilters 
- OpenCLベースの複数のGPUフィルタ集
- 対応フィルタの一覧等はこちら

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

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

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

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

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

○その他
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