NVEnc 1.00 (HEVC対応)
まだ変なところがあるかもしれないけど、ひととおりチェックを済ませたので、NVEnc 1.00として公開。
1.00での変更点
・NVEnc API v5.0に対応し、HEVCハードウェアエンコードに対応。
動作には347.09以降のドライバが必要。
これがいちばんやりたかったこと。これに伴い、内部的には大部分のコードを作りなおした。
ただ残念ながら現時点ではBフレームが全く使えない状態でのエンコードになってしまう。なので圧縮率としてはかなり厳しい物になるんじゃないかなと思う。
これがわたしの書いたコードが悪いのか、ドライバの問題なのか、あるいはハードウェアの限界なのかはわからない。
・デフォルトパラメータを高品質よりに調整。
・プリセットを更新。HEVC用のプリセットを追加。
・コマンドライン版NVEncCを追加。
- raw, y4m … YV12読み込み
- avs …YV12/YUY2読み込み
QSVEncに対するQSVEncC.exeのNVEnc版を作った。需要あるかはわからないけど。
ただ、現時点ではQSVEncCにあるような多くの機能はなく、とてもシンプルになっている。もしなにか欲しい機能があったら言ってください。
・x264guiEx 2.24までの更新を反映。
- qaacについて、edtsにより音声ディレイのカットをする機能を追加
- 音声エンコーダにfdkaacを追加
- muxerのコマンドに--file-formatを追加。
- flacの圧縮率を変更できるように
- 音声やmuxerのログも出力できるように
- 0秒時点にチャプターがないときは、ダミーのチャプターを追加するように。Apple形式のチャプター埋め込み時に最初のチャプターが時間指定を無視して0秒時点に振られてしまうのを回避。
- ログにmuxer/音声エンコーダのバージョンを表示するように。
- ログが文字化けすることがあるのを改善。
- 音声エンコーダにopusencを追加。
- nero形式のチャプターをUTF-8に変換すると、秒単位に切り捨てられてしまう問題を修正。
- CPU使用率を表示。
1.00べーた からの修正点
[共通]
・HEVCの参照距離が適切に設定されないのを修正。
[NVEncC]
・colormatrix, colorprim, transferが正しく設定されないのを修正。
・短縮オプションの一部がヘルプにないのを修正。
・AVSリーダーでYUY2読み込みが正常に行われていなかったのを修正。
HEVCエンコの謎
さっき書いたように、わたしのGTX970と、あと情報提供いただいたGTX980では、NVEncのAPIから使える機能を表示するとHEVCエンコのMax Bframesが0になってしまう(=Bフレームが全く使えない)。
GTX970の例
わたしのプログラムの問題、ドライバの問題、ハードウェアの問題(限界)、どれなのか…
もしGTX960をお持ちの方がいらっしゃれば、この情報を教えていただけると幸いです。
(2015.01.25) GTX960についても情報頂きました。やはりMax B Frames = 0とのことです。情報頂きありがとうございました。
GTX980について教えてくださった方も、ありがとうございました。
NVEncCフォルダ内のNVEncC_test.batをダブルクリックしていただけると、nvenc_features.txtというファイルができるので、その内容を教えていただければと思います。
ダウンロード>>
ダウンロード (ミラー) >>
OneDriveの調子がいまいちの時はミラー(dropbox)からどうぞ。同じものです。
1.00での変更点
・NVEnc API v5.0に対応し、HEVCハードウェアエンコードに対応。
動作には347.09以降のドライバが必要。
これがいちばんやりたかったこと。これに伴い、内部的には大部分のコードを作りなおした。
ただ残念ながら現時点ではBフレームが全く使えない状態でのエンコードになってしまう。なので圧縮率としてはかなり厳しい物になるんじゃないかなと思う。
これがわたしの書いたコードが悪いのか、ドライバの問題なのか、あるいはハードウェアの限界なのかはわからない。
・デフォルトパラメータを高品質よりに調整。
・プリセットを更新。HEVC用のプリセットを追加。
・コマンドライン版NVEncCを追加。
- raw, y4m … YV12読み込み
- avs …YV12/YUY2読み込み
QSVEncに対するQSVEncC.exeのNVEnc版を作った。需要あるかはわからないけど。
ただ、現時点ではQSVEncCにあるような多くの機能はなく、とてもシンプルになっている。もしなにか欲しい機能があったら言ってください。
・x264guiEx 2.24までの更新を反映。
- qaacについて、edtsにより音声ディレイのカットをする機能を追加
- 音声エンコーダにfdkaacを追加
- muxerのコマンドに--file-formatを追加。
- flacの圧縮率を変更できるように
- 音声やmuxerのログも出力できるように
- 0秒時点にチャプターがないときは、ダミーのチャプターを追加するように。Apple形式のチャプター埋め込み時に最初のチャプターが時間指定を無視して0秒時点に振られてしまうのを回避。
- ログにmuxer/音声エンコーダのバージョンを表示するように。
- ログが文字化けすることがあるのを改善。
- 音声エンコーダにopusencを追加。
- nero形式のチャプターをUTF-8に変換すると、秒単位に切り捨てられてしまう問題を修正。
- CPU使用率を表示。
1.00べーた からの修正点
[共通]
・HEVCの参照距離が適切に設定されないのを修正。
[NVEncC]
・colormatrix, colorprim, transferが正しく設定されないのを修正。
・短縮オプションの一部がヘルプにないのを修正。
・AVSリーダーでYUY2読み込みが正常に行われていなかったのを修正。
HEVCエンコの謎
さっき書いたように、わたしのGTX970と、あと情報提供いただいたGTX980では、NVEncのAPIから使える機能を表示するとHEVCエンコのMax Bframesが0になってしまう(=Bフレームが全く使えない)。
GTX970の例
NVEncC.exe --check-features > S:\nvenc_features.txt
Environment Info
OS : Windows 8.1 (x64)
CPU: Intel Core i7-5960X @ 3.00GHz [TB: 4.40GHz] (8C/16T)
GPU: GeForce GTX 970 (13 EU) @ 1253 MHz (347.25)
RAM: Total 32670 MB / Used 20774 MB
使用可能な各機能の情報を表示します。
コーデック: H.264/AVC
Max Bframes 4
RC Modes 63
Field Encoding 1
MonoChrome 0
FMO 0
Quater-Pel MV 1
B Direct Mode 1
CABAC 1
Adaptive Transform 1
Max Temporal Layers 0
Hierarchial P Frames 0
Hierarchial B Frames 0
Max Level 51
Min Level 1
4:4:4 0
Max Width 4096
Max Height 4096
Dynamic Resolution Change 1
Dynamic Bitrate Change 1
Forced constant QP 0
Dynamic RC Mode Change 0
Subframe Readback 0
Constrained Encoding 0
Intra Refresh 1
Custom VBV Bufsize 1
Dynamic Slice Mode 1
Ref Pic Invalidiation 1
PreProcess 0
Async Encoding 1
Max MBs 65536
MAX MB per sec 983040
Lossless 1
コーデック: H.265/HEVC
Max Bframes 0
RC Modes 63
Field Encoding 0
MonoChrome 0
FMO 1
Quater-Pel MV 1
B Direct Mode 0
CABAC 1
Adaptive Transform 0
Max Temporal Layers 0
Hierarchial P Frames 0
Hierarchial B Frames 0
Max Level 62
Min Level 1
4:4:4 0
Max Width 4096
Max Height 4096
Dynamic Resolution Change 1
Dynamic Bitrate Change 1
Forced constant QP 0
Dynamic RC Mode Change 0
Subframe Readback 0
Constrained Encoding 1
Intra Refresh 1
Custom VBV Bufsize 1
Dynamic Slice Mode 1
Ref Pic Invalidiation 1
PreProcess 0
Async Encoding 0
Max MBs 65536
MAX MB per sec 983040
Lossless 0
わたしのプログラムの問題、ドライバの問題、ハードウェアの問題(限界)、どれなのか…
(2015.01.25) GTX960についても情報頂きました。やはりMax B Frames = 0とのことです。情報頂きありがとうございました。
GTX980について教えてくださった方も、ありがとうございました。
NVEncCフォルダ内のNVEncC_test.batをダブルクリックしていただけると、nvenc_features.txtというファイルができるので、その内容を教えていただければと思います。
ダウンロード>>
ダウンロード (ミラー) >>
OneDriveの調子がいまいちの時はミラー(dropbox)からどうぞ。同じものです。
スポンサーサイト