【動画エンコード】HandbrakeでOpenCLを使う方法【GPGPU&APU】 | USBメモリー収集家のブログ

USBメモリー収集家のブログ

PC通販・購入レビュー

テーマ:

 

使用しているのは、Handbrake Nightly Builds svn6218です。
Nightly Builds=β版は毎日のように更新がされていて2014/7/26現在はsvn6239でした。

今のところOpenCLにはスケーリング(拡大縮小)時にしか対応してないようですが、OptionのVideo項目にあるScalingで設定可能です。



ついでにGoogleで説明文を翻訳してみました(個人的解釈あり)
-----------------------------------------------------------
Opencl Scaling is Only available 
modern graphics cards that support OpenCL1.1 or later.It Will fallback to Lanczos software scaling when it is not available for use.Performance gain up to 5%.Minor decrease in quality in some cases.

OpenCLのスケーリングにのみ使用可能で、OpenCL1.1以降をサポートする最新のグラフィックスカードが必要。それを利用できない時にはLanczos(default)に自動で変更されます。 使用することでパフォーマンスが5%アップ。しかし、いくつかのケースでは若干品質が低下した。
-----------------------------------------------------------

最新GPU(内蔵GPU含む)ならOpenCL1.1以上をサポートしているはずです。

品質低下については、そもそもデフォルトのLanczosの方がBicubicよりも断然綺麗に仕上がる(
Bicubicだとシャープすぎてドットの荒が目立つ)ので、そういった意味での品質低下だと思います。試しに1時間のSD画質動画を半分の432×240へ縮小、Avg1000、インタレ解除、2Passでmp4エンコしてみました。使用PCスペックはこちら

Lanczos(default):20分23秒
Bicubic(OpenCL):19分41秒

確かに説明とほぼ同等の約4%高速化しましたが、Lanczos(default)ではソースと遜色がない滑らかな動画なのに対して、Bicubic(OpenCL)ではドットが荒すぎて輪郭がザラザラ波打っているかの様な動画になってしまいました。言葉では言い表しづらいですが、見比べるとハッキリ判別出来ますので時間がある方はぜひお試し下さい

そんな訳で、HandbrakeでOpenCLを選択出来るようにはなっているものの、まだまだ使えるレベルではないなという結果でした。

このHandbrakeβ版ではエンコード時にQSVやH.265を選べたりと新機能が次々に追加されています。今後はAMDが絶賛売り出し中のHSAにも対応する予定だそうなので「APUで1台組みたいなぁ」と思っている自分はとても期待しているのですが、そう簡単には行かないようですね。


ちなみに、QSVはHighProfileでQualityを19~18くらいにすると綺麗に変換出来ますが、速さの代わりに圧縮率が悪いですし、H.264の2倍高画質圧縮が可能なH.265は、今はまだプロファイルが反映されず、雑なエンコードしか出来ないのにソースの10倍の変換時間がかかるようです…。

今後もHandbrakeのGPGPUやH.265エンコード機能が向上した場合はブログを更新していこうと思っています。


 

 

今回、購入した参考資料本