ドリキンさん紹介の高速エンコーダー「Cinegy H.264」を使ってみたよ

Cinegy H.264

IT業界のドリフトキングでサンフランシスコ在住のソフトウェア・エンジニア、ドリキンさんのYouTube動画をよく見るのよ。ほぼ毎日 新しい動画がアップされるから飽きないし、内容も面白いし、映像がきれい。

たくさんアップロードされる動画の中でも、サブチャンネルの「ドリ散歩」シリーズがとっても好き。通勤しながらお喋りしてる、そんな様子をPOV撮影した動画がドリ散歩なのよ。

ドリキンさんは画質・音質にこだわって動画を作っていて、仕事で(たまぁ~にだけど)動画を作ることのある私にもとても参考になるのよね。

それで… 最近アップロードされたドリ散歩で「Cinegy H.264」なるエンコーダー(Adobe CCプラグイン)が紹介されました。

NVIDIAのGPUを使った高速エンコーダーということなので、試しに使ってみました。試用だけではつまらないので、ついでに他のエンコーダーとの比較もしてみましたよ。
 
 

比較条件

まず比較条件ですね。

  • 動画素材:4K30p, 10分間
    • XAVC S, 60Mbps; LPCM 48KHz, 16bit, Stereo, 1536Kbps
  • エンコードのターゲット:8種類
    • H.264の.mp4ファイル 4K30p: 40/20/12/4Mbps; 2K30p: 10/5/3/1Mbps
  • エンコーダーの種類:4種類
    • Premiere Pro: H.264/Cinegy H.264
    • TMPGEnc Video Mastering Works 6: NVEnc/x264
  • PC環境:自組Windows PC
    • Intel Core i5-4570(Haswell, Z87 Chipset), 16GB メモリ
    • NVIDIA GeForce GTX 750Ti 2GB
    • System: Intel SSD, Work: Samsung SSD, Output: HDD(すべてSATA接続)
    • Windows 10 Home(バージョン1703, ビルド15063.674)

編集する元の動画は、会議室でのセミナーの様子を4K30pで撮影したものです(暗転前後5分間、計10分間)。ほとんど動きのない動画で、動きらしい動きがあるのは講師とプロジェクターで映し出されるスライドくらいです。

これを色補正等の処理は一切せずに、素のままで4K30pあるいは2K30pにエンコードします。ビットレートはそれぞれ4種類で計8種類になります。
エンコーダーの種類は、Adobe Premiere Pro内蔵のH.264とプラグインのCinegy H.264、そしてペガシス社の動画編集ソフトTMPGEnc Video Mastering Works 6上のNVEncとx264、計4種類です。

PCは数世代前の自組Windows PCでパーツもコスパ重視で選んでますから、イマドキのPCと比べればかなり見劣りします。自分的には現役バリバリなのですが ^^;

PC環境
 
 

エンコード時間の比較

エンコード時間(秒表示)の比較結果です。素材動画の長さは10分間(600秒)です。

ターゲットが4K30pの場合と2K30pの場合とでグラフを分けてあります。
グラフの縦軸はエンコード時間で、横軸にはターゲットのビットレートごとにエンコーダーの種類を色分けして並べてあります。Premiere Pro内蔵H.264(青)、同プラグインCinegy H.264(緑)、TMPGEnc NVEnc(オレンジ)、同x264(黄)の順です。

グラフ4Kグラフ2K

まず、編集ソフトの違いはあるものの、エンコードにGPUを積極的に使用するか/しないかで大別します。

Premiere Pro内蔵H.264(青)は恐らくCPU使用度が高く、TMPGEnc x264(黄)はCPUのみを使用(GPUを一切使わないように設定)してエンコードします。この2つを「CPUエンコーダー」とします。
一方、Premiere ProプラグインCinegy H.264(緑)とTMPGEnc NVEnc(オレンジ)は積極的にGPUを使います。どちらもNVIDIA GPUがCUDAコアとは別に持っているエンコーダーNVEncを使っているようです。こちらは「GPUエンコーダー」とします。

では比較です。

4K30p(左図)と2K30p(右図)とでは縦軸のスケールが違いますね。すなわち、

  • ターゲットが高解像度であるほど エンコード時間は長くなる

ことが分かります。
また、4K30p(左図)では棒グラフの凸凹が目立ちますが、それに比べれば 2K30p(右図)はフラットです。つまり、

  • ターゲットが高解像度であるほど エンコーダーの違いがエンコード時間に及ぼす影響が大きい

ということです。
もう少し細かく見ると、

  • CPUエンコーダー(青・黄)の場合はターゲットのビットレートが高いほどエンコード時間も長くなる
  • GPUエンコーダー(緑・オレンジ)の場合はターゲットのビットレートによらず エンコード時間にほとんど違いがない

ことも分かります。
それと、動画編集ソフトが同じなら、

  • CPUエンコーダー(青・黄)よりもGPUエンコーダー(緑・オレンジ)の方が高速

ですね。そもそも、最も重要かつ知りたかったことですが、比較したエンコーダーの中では

  • Premiere ProプラグインCinegy H.264(緑)が最速のエンコーダー

でした。元素材の2/3から3/4程度の時間でエンコードできています。
ただ 意外な結果として、

  • 2K30p(右図)の場合は、GPUエンコーダーのTMPGEnc NVEnc(オレンジ)よりも
    CPUエンコーダーのPremiere Pro内蔵H.264(青)の方が高速

ということです。Premiere Pro内蔵H.264(青)がとても優秀なのでしょうか。どのようにCPUやGPUを使ってエンコードしているのか興味がわきますね。

他にもいろいろ分かることがあると思いますが、ほとんど当然と言えば当然の結果なんでしょうか ^^;
 
 

画質を考慮すると…

ここでは画質を無視してエンコード時間だけに着目しましたが、実際にはx264が出力する動画の画質は非常に優秀(だそう)です。
ただ、私が対象としているのは動きの少ないセミナー動画ですから、4K・高ビットレートである必要はありません。実際に2K・3Mbpsでエンコードしています。これは、エンコード時間には 比較的差が出にくい条件なんですね。

とは言え、最も高速なエンコーダーはPremiere ProプラグインCinegy H.264(緑)ですから、これを利用できるうちは使っていこうと思います。

ちなみに、実際に納品のために編集したものをPremiere ProプラグインCinegy H.264(緑)でエンコードし、これまで使っていたPremiere Pro内蔵H.264(青)とエンコード時間を比較してみました。

    • 動画素材:4K30p, 1時間20分(上記と同じフォーマット)
    • 編集:縮小, 回転, トリミング, 色補正, キャプション挿入
    • ターゲット:H.264 .mp4ファイル; 2K30p, 3Mbps; AAC 48KHz, Monaural, 128Kbps
    • エンコーダー:Premiere Pro内蔵H.264, プラグインCinegy H.264

結果は…

  • Premiere Pro内蔵H.264の場合が 1時間45分程度、
    Premiere ProプラグインCinegy H.264の場合が 1時間35分程度

でした。ほとんど変わらないのね (T_T)

縮小、回転、トリミング、色補正といった編集を加えると、そのせいでCPUをたくさん使ったりGPU処理の効率を低下させたりするのでしょうか。
 
 

お詫び

見にくくて・分かりにくくて申し訳ありません。
以上です m(._.)m

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中