ちりとまとチャンネル

チリトマト好きがゲームや動画などについて取り扱っています
トップ → 2011年12月

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ARMORED CORE V ゲーム情報まとめ映像のまとめ









ACVのゲーム情報まとめ映像全4回を繋げてちょっと編集しただけのものです。
OSスタートは大好物なので残しました。
需要があるかわかりませんが、ブログに張るなり誰かに見せるなりして使っていただければいいかなと。

(余談)
マシンガンとショットガンが大好物なので、兆弾システムのバランスがちょっと不安です。
体験会レポと体験版が待ち切れない。
スポンサーサイト

h.264 Bフレーム設定に関する覚書

(追記 2012-10-26)
IvyBridge世代(HD Graphics 4000搭載CPU)
でようやくインテル内臓GPUの再生支援バグが改善されたそうです。
ただこの問題が完全になくなるのは当分先の話になる気がします。





設定の中でも重要度が比較的高いと言われるBフレームの設定についてメモ。


Bフレームは圧縮率に関わる項目です。
そもそもh.264/AVCは、Iフレーム、Pフレーム、Bフレームという三種類のフレームから成り立っています。

Iフレーム(キーフレーム)は完全な1枚絵。画質は一番良いが、サイズも一番大きい。
Iフレームが多いほど高画質、低圧縮率な動画ということになる。
シーク(早送り&巻き戻し)の基準となるフレーム。

Pフレームは直前のIフレームから予測して作られるフレーム。
基準となるIフレームから変化した部分"だけ"をデータとして記録しており、
IにPを重ねることで次のフレームとして表示する。
このためIフレームよりサイズが小さく、組み込むことで動画の圧縮率が上がる。

Bフレームは直前と直後のI、Pフレームを参照して作られるフレーム。
前のフレームと後のフレームの差分だけをデータとして記録している。
必要最低限のデータしか持たず、最もサイズが小さい。


つまり、Bフレームが多いほど圧縮率が上がります。
これがh264の高い圧縮効率に関わる要素の一つということです。



■設定項目

・最大Bフレーム連続数(--bframes)
Bフレームを最大何枚まで連続して挿入して良いかの設定。
初期値3、範囲0~16。0でBフレームを使用しない。

・適応的Bフレーム挿入(--b-adapt)
最大連続数の範囲で、Bフレームに適するフレームか否かを自動で判別する。
Bフレームに適さないものはPフレームとして処理する。
無効(0)にすると常にBフレーム連続数で設定した枚数を連続して使う。
完全(2)は簡易(1)より正確な判定を行うが、Bフレーム連続数が多いほど遅くなる。

残りの項目はデフォルトから変える必要がないので割愛。



■調整した際の影響、推奨値の検討

まず、Bフレームを使うならb-adaptは完全にするのが望ましいです。むしろ必須レベル。
無効にすると、動きの多いシーンでも表現力の低いBフレームが機械的に入れられるため、画質も下がります。
これを無効にするのはbframes0の時だけでいいです。

完全にしてBフレームを増やしていくと、画質面ではプラスに働きます。
変わらない可能性もありますが、それでも画質を維持しつつ圧縮率を上げられると考えて下さい。
適正値から上げても下げても結果的に劣化する、と言われたりしてましたが、
Bフレーム挿入を完全にさえしていれば、どれだけ増やしても劣化はしないはず。
(しても人間では知覚できないレベル)

また、エンコード負荷もbframesの値に応じて1passの時間が増える…という程度なので、
オプション類の中でも費用対効果は高い方です。


デメリットとして、上げれば上げるほど再生側の負荷が増加し、互換性が低下します。

有名な話として、bframesが4以上だと、
IntelのLGA1156ソケット系のGPU再生支援で映像が乱れることがあります。
もっともこれは回避法があるので、3より増やすかどうかは投稿者の判断に委ねられてる状況です。
PS3では3より増やすと問題が発生するらしいですが、未確認。

また、動きの多い動画よりは少ない動画の方が効果が高くなります。
「動きが多い=Bフレーム入れすぎると劣化する→あまり入れるな」
とBフレーム挿入で判断されるので。


ニコ動まとめwikiでのbframesの推奨値は3~5。
互換性や効果から考えるとbframesは3が最も無難ではあるかもしれません。
アップロード前提の場合、そこまで動きが激しくなければ有効値は6くらいまででしょうか。
SD解像度の30fpsだと、6より増やしても効果は期待できません。

…が、これが60fpsとかそれ以上のフレームレートだと、bframesの伸び代は若干増えます。
60fpsでIntelのGPU支援バグとかを気にしないなら、個人的に6以上をオススメしたい。
場合によっては12も有効かもしれません。13以上はさすがに趣味の領域という感じ。



結論。
アップロード&PC視聴が目的で面倒が嫌なら、やはりBフレーム連続数は3が安定。
ニコ動の標準解像度で30fps以内なら、上げるとしても6まで。
60fps以上の動画とかなら6以上も視野に入れる。その場合も有効値はせいぜい12くらいまで。

ちなみにbframesは3の倍数が望ましいという話があったのでそうしてます(参考


ゲーム動画とか、そこまで高画質が要求されないジャンルなら3推奨。
上げるとしたらまず3→6ですが、
それによるメリットとデメリットが釣り合ってるかどうかは…ソースにもよりますがなんとも。
9以上はガチで高画質を狙うためのもの、12から先は実験目的用…という感覚です。


ここまでこだわりたい人は、出力ログとかでBフレームの挿入結果をチェックしてみて下さい。
consecutive B-frames とか。

ARMORED CORE 4 OPムービー(ぬるぬる動く高画質)

■HD解像度



■ニコニコ動画プレイヤー標準解像度

ARMORED CORE V PV (E3 Trailer ver) ぬるぬる動くフルHD(高負荷注意)





フルHDの60fpsという時点でビットレートが圧倒的に不足だし、
どうせなら…と思って自重しない設定でやりました。
具体的にはマクロブロックタイプ全指定、最大Bフレーム連続数12など。
この関係で再生負荷はものすごいことになってるはずです。
少なくとも自分の環境だとマトモに見ることができません。かなり再生環境を選びます。


エンコード設定の詳細はこちら→x264出力ログ(txt)

この設定で3分くらいの動画のエンコードに約4時間かかりました。
いやPCが一世代前の非力なノートなんで主張するのはアレですけど…。

連続Bフレーム数ですが、3→4の伸びが特にいいですね。
6でもよかったかもしれませんが、7~12でも4.5%使っているので好影響があったと思われます。
BPPは0.1を切ってますが、おかげでSSIMも0.99に乗りました。



理論上はもう少しだけ画質を上げられますが、
その最高設定でやろうとしたらPCが制御不能に陥りかけたので恐くなってやめました。
(1passで処理速度が2fps以下)

具体的にはレート制御先行検査フレーム数(rc-lookahead)を40より増やし、動き予測をumh→tesaへ。
もっともこれ、現在のi7とかですら音を上げかねないKichigai設定の領域ですが。


しかしこんなことしてたらPCの寿命がマッハですね。PC買いたいお…。

あたしとアムニス AS Ep6

【MHP3】 あたしとアムニスがこんなに弱いはずがないAS Ep6 (Special) を投稿しました。




MHP3一周年&MH3G発売記念ということで、スペシャルっぽく(?)してみました。


自分でも言いたいことがうまくまとめられずに不安でしたが、
再生数が久しぶりに凄く伸びてびっくりです。ありがたいです。


(次回)
おそらく来年になります。
もしかしたらギリギリ年末に投稿出来るかもしれませんが、あまり期待せずに待ってて下さい。

あたしとアムニス AS Ep5

あたしとアムニスがこんなに弱いはずがないAS Ep5を投稿しました。


AviUtl使用フィルタ紹介(リサイズ系)

リサイズ。文字通り動画のフレームサイズ(解像度)を変更するフィルタです。



■AviUtl標準(クリッピング&リサイズ)
リサイズ精度はそこそこで処理が速い。
拡大時はボケやすい。SD解像度までならそこまで気にならないが、HD以上は厳しい。
その代わりとしてファイルサイズは縮みやすい。
使い勝手も少々悪く、基本的に使う価値はありません。



■Lanczos 3-lobed 拡大縮小
Lanczosの読み方はランチョス、あるいはランツォシュとか。
ちょっと前までは多くのサイトでオススメされていたリサイズフィルタです。
拡大時のシャープ化効果が数あるアルゴリズムの中でも特に強めで、
くっきり綺麗にアップスケーリング出来ることから、特にアニメエンコードにおいて紹介されました。
デメリットはサイズが膨らむ、リンギングが大きい、の二点。
ほぼ同精度でより高速なLanczos方式を使えるフィルタ(後述)の登場によりオワコン化。



■リサイズフィルタ(配布場所
resize.png
現在の主流と思われるリサイズフィルタです。
特にSpline36というアルゴリズムがよく推奨されています。
Lanczos3との違いは、ほんのちょっとだけシャープ効果弱めで、
リンギングが小さくサイズが若干縮むことなどです。
バランスが良く、アニメやアップロード用動画のリサイズ方式として優れているとされます。

またLanczos3も(窓関数を3にすれば)使えます。
開発者様曰く、"Lanczos 3-lobed 拡大縮小"のLanczosとは、リサイズ結果が厳密には異なるそうです。
…が、どうせ普通の人にはわからないレベルの違いです。
さらに、同じアルゴリズムのLanczos 3-lobed 拡大縮小に比べて処理が速いというメリットつき。

処理速度に関しては、
 標準>リサイズフィルタSpline36>リサイズフィルタLanczos3>>Lanczos 3-lobed

となっているので、Lanczosが好きでこの方式を使うにしてもリサイズフィルタを推奨します。
(参考:ここここ

リサイズフィルタでどのアルゴリズムを使うかについてですが、
LanczosBicubicBlackmanSincSpline16&36のいずれかを選びましょう。

あとはシャープ感や滑らかさ、他のフィルタとの兼ね合いによる調整のしやすさ等を考慮して、
自分に合った方式を選びましょう。

窓関数について。
・Lanczos(半径)
増やすとシャープネス効果が強くなり、減らすと逆。
半径3がSpline36に近い画質。
実写でファイルサイズを考慮しない場合は、splineよりいいかもしれない。
ぱっと見て違いを見つけるのは難しいが。2か3を推奨。

・Bicubic(シャープ)
3~4くらいでだいたいSpline36と同じ。0だとボケボケ。

・BlackmanSinc(半径)
低いとギザギザになってしまう。4程度を推奨。

アニメや低ビットレートのエンコードでノイズを抑えたい場合はsplineで。
Spline16と36の違いも、ぱっと見わかりやすいのはやはりシャープ感です。
よさそうな方を選びましょう。

よくわからない、一つで済ませたいという人にはやはり万能選手のSpline36がオススメです。
これらの方式は窓関数の効き目が同じくらいなら、
ぶっちゃけほとんど違いがわからないレベルなので…。
輪郭なら別のフィルタでも調整出来るので、そういう意味でも癖の少ないsplineは使いやすいです。



■超解像(テスト)(配布場所
superres.png
あまり有名ではありませんが、個人的に面白いと思うのがこちら。
東芝のホームページにあった『超解像度技術』を参考にしているそうです→詳しくはこちら

凄くややこしそうですが、説明すると
・Source
"Clip Enable"にチェックでクリッピングが出来る

・Destination
解像度の指定。サイドパネル・レターボックスとはいわゆる黒帯を付けるかどうかの設定。

・Algorithm
アルゴリズムの選択。Lanczos2か3を推奨。

・Super Resolution(test)
このプラグインの目玉、超解像度モードの設定。チェックで有効。

超解像モードの仕組みは、

まず選択したアルゴリズムで拡大

拡大前のサイズに縮小して、元画像と比較。これより差分を得る

差分を目標サイズと同じ大きさに再び拡大

拡大した差分データに係数を掛けて、最初に拡大した画像へ合成する

…まあわからなくても大丈夫か。


重要なのは、k*100という部分、差分データに掛ける係数の設定です。
100~150が適正値だそうです。大抵はデフォルトの100で大丈夫です。
50でも効果ははっきりわかります。他の拡大と比べるとボケ感がだいぶ少ないです。
微妙に違う縦横比へのリサイズにも有効です。
(元々狂っていた等やむを得ない場合であり、出来るだけ黒縁追加などで同じ縦横比を維持したほうがいい)
デメリットとして係数を増やすほどジャギやノイズが強調され、強烈なシュートが発生し、
非常にキツイ見た目の映像が出来上がります。
多少は好みの問題ですが、どんなフィルタもやりすぎはよくありません…ということで。

また"detect coefficient automatically"にチェックを入れると、
現在のフレームで最適となる数値を自動的に計算してくれます。

この状態でシークバーを動かすと、右下の数値が変化します。
あちこちに動かして数値を見たら、チェックを外して、出た数値の平均あたりか、
それより10~20くらい下げて値を入力しましょう。

超解像は良くも悪くも元の画質に忠実にリサイズを行うので、
元がそんなに綺麗じゃないor汚いと、あまり綺麗にアップスケーリングしてくれない
(下手すると汚さを際立たせる)ことになります。
ノイズ除去フィルタを前に置くなどの工夫が必要。
リサイズフィルタより重く、プラグインとしては不安定なので万人向けではありません。



■その他

・SharpenResize
要GPU。
リサイズやノイズ除去、輪郭補正など一通りの工程をCPUからグラボに分散させることで高速化を図る。
低周波成分保護オプションまでついてくる。
色々やらせるのでローエンド製品では厳しいかもしれない(readmeにも書いてある)
そんなにいっぱいフィルタはいらない、パラメータもそこまで慎重に弄らない、
という人にとってはコレ一発で済ませられるのでおすすめできそう。
リサイズのみと比べると、とりあえず初期値のままでも「おおっ」ってなるくらいには違いがある。

・Upsample
エッジ部とそれ以外で違うアルゴリズムを使う…という発想は面白いですが、
個人的にはそれほど有用性を感じませんでした。
ぼけ低減オプションも私の嫌いな油絵っぽさが出ていてダメでした。

・nnedi3フィルタ
インターレース解除と拡大機能を持つ不思議なフィルタ。
重いが精度はとてもよい。ただ、元のサイズの整数倍にしか拡大できないので、
ごく限られた使い方しか出来ない。

AviUtl使用フィルタ紹介(ノイズ除去系)

ノイズ除去系(NRとも)フィルタの役目はだいたい以下の感じです。

1.元々ノイズが乗っている映像を綺麗にする
2.ファイルサイズを縮める

1.はソースが昔のもので、映像が汚い場合は特に有効です。
またノイズが少ない最近のソースでも、アップロード前提でサイズを少しでも削りたい場合などは、
違いがわからない程度に閾値などを下げて弱めにかけるのが、視覚的品質の面でもベターです。

またノイズ除去は、強度を上げるほど映像がボケていきますが、
エンコードの際には映像がボケているほどファイルサイズが縮むという理由もあります。
(ディティールが曖昧になることで再現に必要なビットレートが減る)

ノイズが多いとビットレートの消費量が増えるので(ノイズを再現しようとするため)、
ファイルサイズが大きくなる傾向にあります。
ビットレート指定の場合だと、ビットレートがノイズに回されるため全体的な画質が低下します。

ノイズ除去は強度を上げた場合、
煙や地面、肌などの質感が次第にのっぺりしていき、上げすぎると映像がぼやけて見えます。
そのため、こまめに見ながらパラメータを調整するといいです。



■AviUtl標準(ノイズ除去&時間軸ノイズ除去)
それなりの性能で軽めの処理が特徴。
ソースのノイズが少ない場合はこの二つでも十分かもしれません。
ただし除去性能のもっと高いフィルタが存在するので、
画質にこだわるならもっと上位のフィルタを導入したいところです。

容量節約のために使うなら、閾値を10くらいにして様子を見ながら上げていきます。
私はもし使うとしたら、両方とも初期値から閾値を10~16くらいです。
ゲームや実写だと、20以降からボケ始めるように感じるので。

時間軸の方のみ、ソースによってはもう少し高めの閾値にしたりします。
(ぼかしてでも綺麗に見せたいくらい元の画質の悪い場合とかですが)
ちなみに時間軸ノイズ除去は、極端に強くするとボケるだけでなく再生時に残像が発生します。
…といってもそこまで極端な設定はまずあり得ないですが。
これは一応、時間軸系ノイズ除去フィルタの傾向です。



■NL-Means系
アニメ向きで今メジャーなノイズ除去。
詳しくはまとめページで(こちら



■Wavelet系
輪郭の潰れにくさと除去能力のバランスが優れている。
準備とエンコードにかかる手間を惜しまないのであれば、
実写~3Dゲームにおいては最強のデノイズフィルタではないかと思う。
(紹介ページは作成中)



■色差ノイズ除去(配布場所
chnr.png
AviUtl標準のノイズ除去相当のフィルタを色差成分のみに適用するフィルタです。
先述した通り、NL-Means Lightでは扱わない色差ノイズをカバーする時などに使います。
基本的にはこのフィルタ単体でのサイズ縮小率は、輝度ノイズを除去した際の縮小率に及びません。
ほぼ見た目を変えることなくサイズを少し削れるので、
余裕があれば使わないよりは使った方がいいフィルタです。



■PMD_MT(配布場所
pmdmt.png
AviUtl標準やNL-Meansに比べてインパルスノイズに効果を発揮するフィルタです。
上記のフィルタでは(ボケ過ぎるくらいに強度を上げないと)消せないような、
ポツポツとした粒状のノイズ(インパルスノイズ、ゴマ塩ノイズ)を消すのに便利です。
また比較的輪郭が潰れにくいフィルタです。ただし輪郭ではないと判定された部分はのっぺりしやすいですが。
性質上、アニメにも向いている?

ソースを見て必要そうであればこのフィルタを追加します。
閾値は、よほど状態が悪くない限り実写やゲームだと80以下が望ましいと思います。
初期値の100以降だと顕著にボケます。
useExpはオンにすると閾値の計算方法が変わり、輪郭を強調するようになるらしい。お好みで。
回数はノイズ除去をかける回数。
強度と閾値を抑えて回数を増やすほうがたぶん綺麗にフィルタがかかる…
と思われますが時間もかかります。



■メディアンフィルタ差分保護(配布場所
mda.png
開発者様曰く「とにかく高速なノイズ除去を目標にした」そうです。
こちらもゴマ塩ノイズに強いフィルタです。

初期値のままだと実写系や3Dゲームでは強すぎになります。
画質面ではあまり安定しない印象があるので、ノイズ除去のメインとしては使いません。
私の場合はMSEを出来るだけ低くして(30程度、ソース次第)、
PMDでも消し切れなかったノイズを少しなりとも減らしたい場合に使用しています。
この用途だと速度的なデメリットも少ないので使いやすいかな。回数についてはPMDと同様。





■その他
他によく目にするものだとウェーブレット3DNR、FHT|DCT2Dとかありますが、
前者は解像度720x480まで(現時点のα版では1920x1080まで対応できるそうです)、
後者は画像サイズ8の倍数(ただし一般的なサイズには大抵対応できます)
という前提があったりして使いにくく、
今のところは上で紹介したものが揃っていれば十分かな~と思ってます。

IIR-3DNRは3D型のノイズ除去(前後のフレームを比較して除去するタイプ)で、
標準の時間軸ノイズ除去と同じタイプのフィルタです。
個人的に、3D型NRは標準のもので十分な気がしているので試してからは使ってません。

あとは昔のアナログでかなり質の悪いソースを扱う場合に限って、ドット妨害除去等?
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。