アマレココでのキャプチャにちょっと突っ込んだ話

ここのが詳しい。 画質について、かいつまんで説明してみる。

AMV3 コーデック

AMV3 コーデックもずいぶん綺麗になった。 以前なら、アマレココ使うならまず UtVideo 落としてきて・・・って感じだったのが、 殆どの用途ならアマレココのデフォルトである AMV3 のままでいい。

以前、UtVideo がいいよーって俺に言われて UtVideo にしてる人は AMV3 に切り替えてみてもいいかも。 UtVideo だと結構 CPU 食うからね。

ただ一部の用途では、画質が気になるのでその辺の説明をしてみる。

色の扱い方

世の中には色んなコーデックがあって、それぞれ色の扱い方が違う。

エンコードするときは、できるだけサイズを小さくしたいから、 「ここをごまかせばわかんないんじゃね?ここは、省略しても人間にはわかんねーだろww」 って感じで、あちこちごまかしてサイズを小さくするわけ。

人間って明るさより色には鈍いから、まず最初に色がはしょられる。 はしょり方に色んな規格があって、それによって画質が変わってくる。

AMV3 は、どのモードでも YV12 という色のはしょり方をする。 YV12 ってのは、2px * 2px ごとにしか色情報がない。 よーするに色の解像度は、本来の解像度の 1/2 になるってこと。

実写だと殆ど気にならないから YV12 でも全く問題ないんだけど、 ゲームだと細かい文字やキャラと背景の境目なんかでぼやけるのがわかる。 赤い文字が特にわかりやすいかな。ログの文字の色味がなくなったりするのもこのせい。

YV12 (AMV3)

yv12 でのぼやけ

赤い色が、ぼやけてはみ出してるのがわかると思う。 下の MP のゲージもちょっとぼけて細くなっちゃってる。

YUV422 (UtVideo YUV422)

yuv422 でのぼやけ

YUV422 は、1px * 2px ごとに色情報を持ってるから、縦横二倍してぼやける YV12 と違って、縦方向にはぼけない。 横にはちょっとぼけるけど、 YV12 にくらべたらくっきり。

RGB (UtVideo RGB)

RGB

RGB は一切色を省略しないから、とうぜんぼけもない。

YV12 でも問題ないケース

拡大縮小、クリッピングやエフェクト等の処理をせずに、そのまま原寸で h264 等にエンコードする場合は YV12 でも全く問題ない。

なんでかっていうと、 h264 自体が YV12 なので、それ以上の画質があっても意味がないのだ。 エンコードする直前に YV12 に変換されてしまうからね。

差が出てくるケース

何らかの形で弄ってからエンコードする場合。 特に拡大縮小をかける場合、元の動画が YV12 だとぼやけてるものを拡大縮小することになるので出来上がりのシャープさに差が出てくる。 ログの文字などで顕著。

別のケースとしては、動画ではなくスクリーンショットを切り出すために動画を使用している場合。 静止画だとやはり差が目立つので、単純に色情報が失われないコーデックで録画したほうが良い。

どういう時に、 AMV3 以外の高画質コーデックを使うべきか

画質が落ちるのが分っていても、 高圧縮と低負荷が有用なケースでは AMV3 を使う。 例えば、 War での戦闘シーン録画や長時間のプレイ動画や、定点カメラとか。 (定点カメラのような殆ど動かない動画は AMV では非常に小さくなる。)

逆に、パフォーマンスを犠牲にしてでも、高画質が欲しい時は高画質コーデックを使う。

ただし、高画質コーデックの種類によっては 60fps ではコマ落ちすることがあるので、 60fps での素材撮影が必要な場合は画質を犠牲にして AMV3 を選択するのもあり。

高画質コーデックの種類

AMV2 系と UtVideo があれば十分。

AMV2 はお金払ってレジストしないとロゴが消えない。

UtVideo はフリーで使えて、 RGB と YUV422 が選択できる。差は上の SS 見てね。 YUV422 でも YV12 に比べたら十分綺麗だけど、スクリーンショット代わりに使うなら RGB がいいかも。

UtVideo は動画編集中の中間ファイルを書き出すのにも向いてる。