kaiといろいろ

2016-09-24

超!A&G+に人権を取り戻す madVRによるアップスケーリング

| 18:53

文化放送が運営している超!A&G+というインターネットラジオ及び動画配信サービスがあります.

声優オタク各位は一日中それを見たり,人によっては全番組を記録したりしているわけですが,このサービスには大きな問題があります.

画質が大変に悪いのです.解像度は320*180とガラケーを思い出します,ワンセグです.ビットレートも88kbpsに抑えられています.フレームレートはワンセグ以下の10FPSです.*1

というわけで,今回は超!A&G+をどうにか高画質で楽しむということをやっていきます.

madVR

madshiによって開発されたビデオレンダラです.

導入等に関してはこちらを読むのが早いので割愛します.実際に使う場合はこちらを参考に設定することになると思います.

HTPC高画質化編 其の二、最高画質、最強な動画レンダラーmadVR - アキバエイデン

なおmadVRは大変重いため,場合によってはグラフィックボードを追加・交換することになるかもしれません.私はGTX1060 3GBを買いました.

madVRに搭載されている各種アップスケーリングアルゴリズムは色々な方がテストしているので,適当に調べて試すのがいいと思います.

一応フレーム補間のようなこともできますが,強烈にヌルヌルするというわけではありませんでした.フレーム補間をやりたい方はSVPをアレしましょう.

やる

その前に超!A&G+の番組をどうやって持ってくるのかというと,自分でRTMPDumpとかでよしなにやるとか色々あるんですが,私は以下のソフトウェアを使わせていただいています.

超!A&G+を録音・録画・保存する方法(自力開発編1) | ひろたかのアニメ感想ブログ

これを使って番組を保存しています.


まず今回使用したシーンの元解像度のスクリーンショット(後から気づいて撮ったので位置がずれています)

f:id:kai4562:20160924182941p:image

f:id:kai4562:20160924182942p:image

f:id:kai4562:20160924182943p:image

これをアップスケーリングしていきます.このサイズの画像をFHDまでアップスケーリングしているので,無理があるというのはお分かり頂けると思います.

VLCによる拡大(多分バイリニア)

吊るしの設定のVLCで再生した場合の例です.1920*1080まで拡大したものを縮小及びクロップしています.

f:id:kai4562:20160924155314j:image

f:id:kai4562:20160924160620j:image

f:id:kai4562:20160924155315j:image

f:id:kai4562:20160924160713j:image

f:id:kai4562:20160924155316j:image

f:id:kai4562:20160924160714j:image

MPC-HC+madVR

続いてMPC-HC+madVRで再生した場合の例です.1920*1080まで拡大したものを縮小及びクロップしています.

madVRのスケーリングに関する設定は,

chroma upscaling:NNEDI3 256neurons

image doubling:double luma resolution NNEDI3 128neurons

image upscaling:Lanczos 3taps anti-ringing filter

となっています.

f:id:kai4562:20160924155311j:image

f:id:kai4562:20160924160916j:image

f:id:kai4562:20160924155312j:image

f:id:kai4562:20160924160917j:image

f:id:kai4562:20160924155313j:image

f:id:kai4562:20160924160918j:image

比較

左がVLC,右がMPC-HC+madVRです.

f:id:kai4562:20160924172730p:image

f:id:kai4562:20160924172729p:image

f:id:kai4562:20160924172728p:image

負荷など

上記の設定でGPUへの負荷は10%程度です.所詮320*180 10FPSのソースなので,計算量は大したことないということなのだと思います.

これがVGA程度で30FPSとなると突如爆発し,GPU負荷は50%程度になります.

720Pのソースになると,image doublingはNNEDI3 16neuronsが限界でした.32neuronsは多少ドロップが発生します.

CPUが足を引っ張っている可能性もあるので,その辺は今後研究していきたいところです.

まとめ

ある程度効果はあります.

SD画質しかないアニメとかを見るのにも割といいと思います.

ただどうしようもないことがあって,

超!A&G+ビットレートが低すぎてブロックノイズがやばいからアップスケーリングとかいう問題ではない*2

終わりです.

*1:よく考えてみると,声優コンテンツに画質って重要なのだろうかという気がしてきますね

*2ffdshowとかでなんかいい感じにやれたりするんですかね

2016-09-14

NVEncで溜まったTSファイルをよしなにやる

| 18:00

以前からPT3を使ってテレビ録画をやっているわけなんですが、録画アプリTvRockからEDCBに変更しました。

番組表などがTvRockよりいい感じになり、結果として録画のペースが上がりTSにHDDを食いつぶされ始めているので、いい加減エンコードをやります。

エンコード需要の高まりとmadVRによる高画質再生に手を出した結果、GTX1060 3GBを購入してしまったので、今回はNVEncどんなもんかなというのを紹介します。

NVEnc

GTXなにがし等に付いているハードウェアエンコーダです。GTX900シリーズからHEVCに対応したので、高圧縮高画質な結果が期待できます。

NVEncを使うにはTMPGEncを使ったり、Aviutlにプラグインを入れたりと色々あるんですが、今回はFFmpegでやります。

やる

こちらの記事のバッチファイルを少し弄ったものを使わせていただいています。

たまったm2tsファイルをnvencでhevcなmp4に変換するバッチスクリプト – 俺様忘備録

変更しているのはフォルダ名やファイルの拡張子FFmpegオプションで、オプションは以下のようにしています。2016/09/16追記:この設定はたぶんよくない。現在いい感じの設定を模索中。

ffmpeg.exe -i "%%i" -s 1280x720 -preset slow -coder 1 -rc ll_2pass_quality -cmp chroma -threads 0 -vcodec nvenc_hevc -vf yadif=0:-1 "MP4\%%~ni.mp4"

速度など

これぐらい出ます。調子がいいときは3.5倍とかになるんですが、大体2.5から3.0ぐらいです。

ネットワークドライブ越しにエンコードするとよくて2倍、大体1.5倍に速度が落ちることが分かったので、一旦ローカルのSSDにおいてエンコードしています。バカっぽいですが仕方ないですね。

圧縮率としては大体元ファイルの1/8ぐらいになります。

GPUの負荷などはこんな感じです。Video Engine LoadってのがNVEncに使われているハードウェアエンコーダの負荷だと思うのですが、きっちり使い切ってはくれません。

2016/09/17追記:GPU使い切ってくれないのはyadif(デインターレース)の処理がCPUで入っているから。yadifを切れば5倍速ぐらいになりました。

IntelCPUにはいつからかQSVという機能がついていて、それを使えば外部GPUなしにハードウェアエンコードできるのですが、QSVよりかは速いです。

あとQSVのHEVCエンコードは明らかに遅くて使い物にならなかった気がします。

画質

普通に眺める分には問題ないと思います。あまり気にしていません。

なぜかというと、TSをAmazonDriveにバックアップするつもりだからです。

画質を重視するならCPUエンコードするほかないと思います。ただ私のパソコンはCPUPentium G4400というシケた物を使っているので、非現実的です。

あとエンコードのためにわざわざGPUを買う必要もあまりなくて、この手の見れればいいや的需要はIntel QSVで解決すると思います。ただしQSVで現実的にエンコードできるのはH264です。

私の場合はmadVRによるアップスケーリングをやりたいというのもありGPUを載せたため、NVEncを使っています。

結論

対応GPU持ってるならいいと思いますが、無いならQSVでいいです。

もったいないのでゲームとかやろうかな?

2016-09-11

メモリ不足の姑息的療法 The Great Suspender

| 07:02

覚え書きです。


現在我が家のデスクトップマシンにはメモリを8GB積んでいるのですが、最近妙にメモリ不足になります。

基本的にデスクトップマシンでは、インターネットと動画の再生しかしないので、「何もしてないのにメモリが足りない!」となります。

ところがメモリが足りないのはウェブ閲覧の所為ということがわかり、姑息的療法でメモリを空けることに成功したので書いておきます。

なお私はブラウザChromeしか使わないので、これはChromeに関する話です。


The Great Suspender - Chrome Web Store - Google

このアドオンを入れるだけです。一定時間開かれていないタブを自動的にサスペンドして、メモリから開放するという、いたってシンプルな仕組みのアドオンですが、これが露骨に効きます。

たぶん私以外にも居ると思うのですが、タブをある種のブックマーク代わりにして、いつまでも(下手すると数ヶ月)残しておくという使い方をしていると、ガンガンメモリを食いつぶされます。

とりあえずタブには居てほしい、でもあまり見ないというのは私にはありがちなので、このアドオンは大変効果的でした。

開いているタブを全てサスペンドした様子


タブの開きすぎでメモリ不足に陥っている方にはおすすめします。

注意としては、サスペンドされると次回表示時にはリロードを要求されるため、ページの内容が変わってるとか、そういうのはあるかもしれません。

フォームに入力されているとサスペンドしないとか、サスペンドしないページのホワイトリスト機能などはあるので、よしなに調べて使ってください。



メモリ増設(DDR4 8GBkitで4000円程度)するか散々悩んでいたのですが、しなくて正解でした。

2016-06-23

座って聴く会3をやりました

| 04:42

みんなで音楽かけて座って聴く会3というイベントをやりました.

今回の感想と反省みたいなやつを書いておこうと思います.


ちなみにイベントの様子はこちらをどうぞ.

http://togetter.com/li/986762


・お礼

みなさまご来場ありがとうございました.

DJのみなさま,出演を快諾してくださってありがとうございました.

・よかったところ

今までと同様に、だらだらできた。

・今後どうしようかなみたいなところ

DJの持ち時間を30分から45分にしたんですが、やっぱり30分の方がよかったかなあなんて気がします。


次回は8月ぐらいにできたらいいな、みたいな感じなんですが、結構箱のスケジュール埋まってるらしいので、箱次第ですねえといった感じ。