Athlon 5350でTSファイルをエンコード

2014/10/03

PC PX-W3PE

t f B! P L

PX-W3PEで録画した地デジやBSの番組は、TS形式のファイルとして保存されます。
TS形式は圧縮率が低く、30分番組で3.5GBもの容量を消費してしまいます。
TSファイルの中身はMPEG2形式の動画とAAC形式の音声ですので、動画変換ソフトを利用することでより高圧縮なH.264/AVC形式のMP4動画に変換することが出来ます。
しかし、この手の変換には膨大なCPUリソースを必要とし、高速なエンコードを行うにはハイスペックなCPUが必要でした。
しかし、最近はそうとも限りません。
IntelやAMDは、CPUに内蔵するグラフィックチップによるハードウェアエンコードを実装し、IntelではQuickSyncVideo(QSV)、AMDではVideo Codec Engine(VCE)などの名称で数年前から提供を開始しています。
これらはいわゆる低価格帯のCPUでも実装されており、Intelでは5000円程度で販売されているローエンドモデルのCeleron G18xxシリーズでも利用可能ですし、AMDもAM1プラットフォームのAthlon/SempronやFM2+プラットフォームのAシリーズAPUでも利用可能になっています。

今回、Athlon 5350でのVCEを用いたハードウェアエンコードによるTSファイルのエンコードを試してみたのでレポートします。
なお、私自身は俗に言う「画質沼」ではないため、
・動画容量が1/10程度になっている
・ブロックノイズなどで破綻しているシーンが少ない
・スクロールで引っかかるようなことはない
といった点のみを重視したエンコードになります。

今回使用したソフトは、
AviUtl(bel edition v0.80)
(Twitterユーザーの@belkyrosさんが独自に設定をされているAviUtlです。)
A's Video Converter(5.11.0)
(最新の5.11.1ではVCE利用が分かりにくいので1つ前を利用)
の2つです。

使用したTSファイルは最上部に貼ったSSと同じ、10月1日(水)26時05分~26時35分にテレビ北海道(TVh)で放送されたソードアート・オンラインⅡの13話です。
30分30秒の動画で容量は3.55GBです。

AviUtlではL-SMASH Worksを利用してTSファイルを読み込みし、NNEDI3フィルタでインターレースを解除、AviUtlのデフォルト機能でフレームレートを30→24に変更した上でCMカットの編集を行っています。
A's Video Converterでは、LAV Splitterを用いたTSファイルの読み込みと、LAV Video DecoderによるGPUデコードを行うように設定しています。また、DXVAプリプロセッサ設定にて、デインターレースとフレームレート変換30→24を適用しています。
どちらも23分40秒程度の動画になっています。

まずはAviUtlで一般的に使われる拡張x264出力を用いたH.264変換です。
プリセット設定の「独自追加設定>保存向け>保存用(アニメ)」をそのまま利用した場合です。

拡張x264出力の設定画面

 エンコードには1時間18分と、実時間の3.4倍もの時間が掛かっています。

 作成された動画は容量が281MBとなり、13分の1程度の容量になっています。
動画ビットレートは1627Kbps程度になります。



エンコードで文字が潰れるようなこともないですし、動きの激しいシーンでもブロックノイズは余り見られませんでした。

次に、AviUtlでの拡張VCE出力です。
モードはCQPでIフレームを24に、Pフレームに26を入れてあります。

拡張VCE出力の設定画面。

 エンコード時間は34分32秒と、拡張x264出力の半分以下の時間で終了しました。
とはいえ、実時間の1.5倍程度の時間が掛かっています。

作成された動画は容量が252MBとなり、こちらも13分の1程度に仕上がっています。
動画ビットレートは1457Kbps程度になります。


x264出力の方と全く同じシーンを切り出してみたのですが、少なくとも動画で見る分には私の目には同じように移りました。
キリトがデスガンを斬っている方のシーンでは、画像を比較するとデスガンの下半身のズボンの筋やキリトの髪の影などがVCE出力では潰れてしまっているのが見えます。
またエンディングのシーンでは、VCE出力のほうが背景がモヤっとしているのが分かります。
が、どちらも静止画で見るから気になるのであって、動画で見たらサッパリ分かりません。

次にA's Video ConverterでのVCE出力です。
変換設定などは上に書いたとおりですが、品質ピークモードに設定し、IフレームとPフレームを拡張VCE出力と同じ値にしてあります。(CABACをオンにし忘れましたが)

 A's Video Converterのトランスコード設定画面。

DXVAプリプロセッサの設定画面。

 エンコード時間はわずか11分12秒。
フレームレート24の動画を50fpsの速度でエンコードしているので、2倍以上の速度が出ています。

作成された動画は容量が243MBとなり、前の2つよりも容量は小さくなっています。
動画ビットレートは1404Kbps程度になります。


こちらは速度なりの品質低下が見られます。
1枚目の画像では、ズボンの筋や髪の陰影は完全に消えてしまっています。
2枚目の画像では、背景のモヤッとした感じは拡張VCE出力と変わりませんが、インターレース解除が甘いため、シノンの体の後ろに前のフレームの残像が残ってしまっています。
また、AviUtlでは可能だった30→24で間引きするフレームの微調整がこちらでは出来ず、スクロールなどが多少引っかかるように感じられるシーンもありました。

以上の検証結果を踏まえると、どれも一長一短であると感じます。
特に、拡張VCE出力は掛かる時間と吐き出される動画の品質のバランスがそれなりに良いかと思われます。
しかし、A's Video Converterではフォルダ監視による自動エンコード機能などもありますし、編集やフレームレート変換を一切行わず、インターレースの解除のみでとりあえず容量を削減する、といった用途で使うには良いのではないでしょうか。


なお、それぞれのエンコードを実行中のCPUとGPUの使用率ですが

拡張VCE出力

 A's Video Converter

のように、拡張VCE出力ではAviUtl側のフィルタ処理などでCPUリソースもかなり必要とされてしまうため、他の作業をしながらのエンコードはほぼ不可能です。
一方で、A's Video ConverterのようにDXVAプリプロセッサを利用したハードウェアエンコードであればCPU使用率はほとんど変化しないため他の作業をしながらのエンコードも可能です。
言い方を変えれば、ストレージの性能さえ間に合えば、裏で別番組を録画しながら、前番組のエンコード作業を行うことすら可能です。
プリプロセッサによる動画リサイズもハードウェアで行えるので、地デジ番組を次々と録画していき、640x360や854x480といったSDサイズまで圧縮した小容量の動画へ次々と変換していき、変換の終わったファイルを次々削除していくという「全番組録画もどき」のようなものも作れてしまうかもしれませんね。
(容量で言うならワンセグを録画すればエンコードすら必要ないですが画質面でこちらのほうが優れるはずです)

AMD Athlon 5350 Kabini コア AD5350JAHMBOX
AMD (2014-04-10)
売り上げランキング: 6,315

このブログを検索

プロフィール

自分の写真
ネットワーク屋さんのサーバエンジニア。 ソフトウェア制作は趣味。 VTuberのおたく5年目。 インプ(GT型)乗り。 音ゲーとFPS。

Twitterでフォロー

Twitterをやっています。
フォローして頂けると喜びます。
絡むときはお気軽にどうぞ。

Amazonアフィリエイト

QooQ