パスワードを忘れた? アカウント作成
13180117 journal
日記

youseeの日記: 最近、動画変換している 2

日記 by yousee

少し前の話なのだが、Radeon RX480を買った。最近、年度末に向けて値崩れしていて、いま値段を見に行ったら買ったときから3kくらい下がっていた。まあ、そのくらいは仕方ないか。
買ったのはHIS製。なぜこれを選んだかというと、ほかのメーカーのやつはファンが大きすぎて、俺のケースに入らないからだ!
ちなみにケースはCooler Master Elite361。こいつは小さな見た目に反してかなり容量があるのだが、高さ方向にはみ出しすぎているカードだけは無理。

で、RX480。
前は250Xを使っていたのだが(俺はAMD派)、ちょっとh265対応のRadeon VCEを試したくて、どうせならそこそこいいやつを、と、ぽちっとしてしまった。
CG性能的には250Xでも全く困っていなかったのだが、つい。
数えてみると、ビデオカードは6年で5枚買ったな。CPUは変えてないのに。ゲームとかほぼやらないのに。
とりあえずFFベンチを動かしてみて、ああ、速いんだなあ、という感じ。しかしそれはどうでもよくて、今回の目当ては動画変換である。
Elite361にはHDDが5台入るのだが、どういうわけか最近容量が厳しくなってきてしまったのだ。

ソースは1080i 29.97fps mpeg2 20~24Mbps
目標は720p 23.976fps h265 1.5Mbps
簡単に言うと、画的にがっかりしない程度にファイルサイズを減らして、なめらか再生したい。

最初はffmpegでトライしていたのだが、実をいうとエンコードに取り掛かる前のフィルタの設定ですでに扱いきれなかった。
bwdif+decimateはにじむし(yadifはさらににじむ)、pullupはジャギが気になる。個人的にはpullupの画の方が好きなのだが、画面下から1/10くらいの位置までに鬼門がある(使ったことのある人ならわかる……かな)。
pullup,pp,noise,scale,fps,fspp,eq,atadenoiseと並べて、がんばってパラメータ調整するとそこそこいい感じにできるのだが、いかんせん、ffmpegは遅すぎる。

そこでRadeonのVCEである。ソフトはA's Video Converterを使わせてもらっている。ありがとうございます。足を向けて寝られません。

エンコーダそのものの画質では、VCEはx264に負けている。同一ビットレートなら、ffmpegの方がきれいだ。VCEはBフレームを作れないし、Iフレームは等間隔になるという弱点もある。
でもデインターレースとリサイズのフィルタについてはVCEの方が性能がいいし、エンコード中もCPUのファンは静かで熱風を吐くこともない。なによりとんでもなく速い。
※)誤解しないでほしいのは、フィルタの性能については、そもそも動画の内容によって得手不得手があるものなので一概には言えない。上のffmpegのフィルタの並びに、ナニコレ!と思う人は少なくないと思う。VCEについてもたまたま今回変換しようとしたソースに合っていたというだけなので、鵜呑みにしてはならない。というか、必要なければフィルタなどかけない方が良い。yadifとbwdifあるいはatadenoiseとowdenoiseで画質の差が感じられないソースなら、ffmpegであっても余計なことはするべきではない。

VCEの問題は逆テレシネで、A's Video Converterでデインターレース→フレームレート変換では、時々うまくいかないケースがある。うまくいかない場合はコマが落ちたりダブったりする。デインターレースには成功するので、ちらついたりはしない。
うまくいかないのが時々である理由は、レート変換に失敗する動画の開始フレームが、平均(!)5フレームごとに現れるからだ。
変換前にそこを避けるように動画をカットしてやらないといけないのだが、この位置を特定してカットする作業が結構面倒。しかもこの位置は動画の途中でたびたび変わるので油断できず、それぞれ別に切り出してやらないといけない。
タイミング変化は目印が特にないのでこの方式でやろうとすると、変換しながら視聴して、失敗したところからやり直し……を繰り返すという悲しい話になる。

そこで逆テレシネにはAviSynthを使うことにした。
……のだが、外部プラグインがさっぱり動作しなくて、decombとかIVT~とか使えなくてがっかり。これらを使おうとすると、A's Video Converterはしばらくだんまりになり、やがてabortしてしまう(が、その後もソース動画へのアクセスは続いている。しくみは知らない)。
AviSynthの内部フィルタにも動くものと動かないものがあって、しかも条件によって動いたり動かなかったりする。例えばStack~系は2段はいけるが3段以上はダメ、などなど。
相性があるのかわからないが、調べるのに挫折して、安定して動くDoubleWeave+Pulldownフィルタでやることにした。
Pulldownは5パターン中3パターンが失敗する(原理はググってくれ)のだが、成功する2パターンを特定するのが簡単だ。デインターレースがVCEではなくなってしまうが、仕上がった画は大差なく、好みの問題の範囲だった。俺はVCEがよいように感じたが、奥さんはAviSynthがよいと言っていた。

Pulldownの成功パターンも時々変化するのだが、そのタイミングはちょうど、動画中の欲しい部分といらない部分との境目だったりするのでわかりやすい。欲しい部分の開始フレーム位置を固定したまま成功パターンを調べられるので、手作業になる割には手間はあまりかからない。

そんな感じでh264への変換をやってみると、けっこういい感じである。h264の2.2Mbpsあたりで画質は及第点(個人の感想です)。
変換速度は、
  250X :100fps程度
  480RX:125fps程度
だった。つまり1時間の動画も十数分でイケる。
ちなみにAviSynthの逆テレシネ処理は、6コア3.2GHzのCPUを30%くらい使っていた。
参考までに、AviSynthを使わずにデインターレースとレート変換をVCEにやらせた場合でも、変換速度は変わらないです。CPU使用率が落ちるだけ。

250Xをいくらで買ったのかとんと思い出せないのだが(たしかモニタを変えてDisplayPortがほしくなった時で、DisplayPortがついたカードの中で当時最も安かったものを選んだような記憶がある)、価格差ほど速くはなっていない。VCEの速度アップが目的だったら、値段の張るビデオカードを買う意味はなさそうだ。今回買った480RXはソース動画1時間分をまるっと読み込めるくらいのメモリが積んであるのだけど、使っているとも思えないしね。

ところで、250Xと480RXではVCEのバージョンが違うせいか、画質に若干の差があるように感じる。h264で、RX480のビットレート2.5Mbpsと250Xの2.8Mbpsが大体同じくらいに見える……のだが、差があるかもと思い当たったのは、取り外した後だった。
今度チェックしてみる……が、HDDの整理がついてからな。
VCEは薄いグラデのある広い平面部分にブロックが乗りやすいという弱点があるのだが、これも480RXの方が違和感が少ないような気がした。が、やはり気のせいかもしれない。値段の張るビデオカードのプラセボだろう。ま、いずれ検証するということで。

さて本題。VCEのh265である。
巷の評判ではh264の半分のビットレートで同等画質になるらしいのだが、とりあえず同じビットレートならより良い画質になるだろう、などと思いながら変換してみて絶望した。
うーん。汚い。h264の結果に比べて圧倒的に汚い。
セロテープのノリをつけてこすったような感じのノイズが、平坦面に現れている。モスキートノイズもかなり出ている。Iフレームがすでに汚いのだが、Pフレームはますますイケてない。h265でQP_I=0,GOP=1にすると、h264のQP_I=8,QP_P=26と同じくらいの画質になる。それってつまりアレですよ。
あと見るからにやばい現象として、あるオブジェクトが移動していくとき、背景にある別のオブジェクトを四角く切り取って引きずって行ってしまうことがある。流れるテロップが背景を持って行った時にはさすがに笑った。
そんなかんじでしばらくパラメータをいじってみたのだけど、と言ってもそんなにいじれる場所はないのだけど、どういじっても結局きれいにできなかった。思い切り低ビットレートでやる場合はいいのかもしれないけど、今回の用途には合わない。
x265はx264に比べて圧倒的にきれいだっただけに、VCEのこの結果は残念だ。

というわけで、h264の2.2Mbpsでやることにした。あとは変換するだけだ。

ところで、この480RXのカードで1つだけ残念だったこと。
原因がノイズなのか電源なのかはわからないが、弱いようなのだ。
同じ室内でスピーカーの電源をON/OFFすると、結構な確率で死んでしまう。PCの電源をONにしている間はもちろん、スリープにしている時にでも、うっかりスピーカーをON/OFFすると、そのままPCが目覚めなくなってしまう。
今まで使ってきたカードでは全く問題なかったのだが。
死に方が面白くて、モニタがブラックアウトしてUSBとか電源ボタンとか一切効かなくなってしまう。マザーボードが引きずられるんだな、と思うが、しかしCPUは動き続けていて、iTunesとか動かしていると音楽の再生が続いていたりする。次の曲に行こうとすると黙ってしまうので、SATAとかもお亡くなりなのだろうか。リセットボタン以外効かないので、電源を安全に切る方法がないのが悲しい。
個体の問題なのかもしれないなあ、と思いつつ、あまり追及はしていない。スピーカーの電源は入れっぱなしにしている。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2017年03月07日 14時06分 (#3171882)

    画的にがっかりしない程度にファイルサイズを減らして、なめらか再生したいなどと言いながら、何故そこでVCEなのか……
    VCEは、ともかく高速にエンコしたい時に使うものであって、品質的にもサイズ的にもがっかりじゃん

    保管用なので、画質的にもサイズ的にも微塵の妥協もしたくない、ならソフトエンコ一択だし
    量が多いので、高速にエンコしたいが品質もサイズもそこそこのものが欲しい、ならQSV一択だろ
    CPUもAMDとか、IntelだがIvy以前とかなら御愁傷様としか言えんが…

typodupeerror

吾輩はリファレンスである。名前はまだ無い -- perlの中の人

読み込み中...