フレームレート
あくまでも、「平均ビットレートの目標値を決めてから圧縮する」というのが基本だと考えているが、まあ、スポーツということで、たまにはフレーム数から入るのも悪くはないだろう。
普通のコンテンツであれば、私は「15FPSでも十分」と主張しているが、スポーツに関しては、「最低でも15FPS」と言いたい。実際、野球を15FPSで見ていると、これ以下にはできないなーと思う。
ビットレートと画面サイズ
これは「用途に合わせてください」としか言いようがない。再生側のCPUなどが追いつくビットレートと画面サイズで、ということである。フレームレートを第一に考えれば、ビットレートを犠牲にせざるを得ない。ビットレートが低いのに画像をデカくすれば、当然、汚いムービーができる。いや、DivXの場合、設定が無視されてビットレートが高くなるのだ。最大ビットレートは平均ビットレートの10倍くらいで良いのではないだろうか。
画面サイズのほうは、再生パフォーマンスにも影響してくる。例えば、フレームを30FPSまで出したいのであれば、いろいろな環境を考慮に入れてせいぜい320×240ピクセルに抑え、640×480ピクセルの「デカい」のがいいという場合は、やはり15FPSくらいに抑えたほうが良いと思う。
色
DivXで色をいじることはできない。なので、その手前のフィルター処理ということになるが、動きを優先するために色を落としてしまうというのも有効な方法である。色がクッキリハッキリしていると圧縮しにくいのだ。
ということを踏まえた上で、細かな設定をどうするか、というお話に移りたい。
いろいろなパラメータがあるが、最も「効く」のは、やはり「パフォーマンス/圧縮効率」である。これは絶対に「最も速い」にはしない。そうするとフレーム間圧縮が行われなくなってしまうのだ。そして、左に行けば行くほどクオリティが上がる。下手に他のオプションをいじるよりも、ここをいじるのが「効く」。ただ、「最も遅い」にすると、圧縮速度は相当遅くなる……。
プロファイルウィザードに出てくるMPEG-4ツールだが、これはどう使ったら良いか?
まず「Bフレーム」は、データレートがなかなか落ちてくれない場合に効果的。「場面転換のしきい値」を大きくすることで、キーフレームを少なめに設定すると、ビットレートも落ちてくれる。
GMCは、難しい。画面全体が一定の動きをしていれば効果はあるハズなのだが、あまりそういう映像はない。チェックしなくてもいいだろう。私は明確な差を見いだせなかった。
クォーターピクセルはやめたほうがいいだろう。もともと、動きが遅い映像にしか適していない。さらに、どうも再生が重くなってしまうようなのだ。
これもテストしてみたところ、「明らかな違い」は生まれなかった。これがどのような映像に向いているのか、今後、ちょっと試してみたい。
決められた容量内に絶対に収める! ということであれば、まずはマルチパスを使ってみるべきだろう。一度全体をなめてから計算できるからである。ただ、当然、圧縮に時間がかかってしまう。
理想は「マルチパス」で「パフォーマンス/圧縮効率」が「最も遅い」ではある。
設定したビットレートまで落ちないというのは、よくあることだ。「あるレベル以下には圧縮できない」というのは、どんな圧縮方式にもあることだ。そこで、「パフォーマンス/圧縮効率」が標準の時であれば、「場面変更のしきい値」の値を大きくするというのも手である。そうすると、容量の大きいキーフレームが出現する回数が減り、前後のフレームの差分だけで成り立つフレームが多くなるのだ。これでビットレートは落ちる。ただし、全体の画質も落ちることにはなる。
結局、いい結果を求めようとすれば、それなりの手間がかかるというお話なのである。それでも何とか短時間で圧縮する手順をまとめると
……と、これだけ段階を踏むのであれば、初めからマルチパスを試したほうが良いというウワサもある……。いずれにしても、上記はあくまでも参考程度にして、あくまでも用途に沿ったエンコーディングを実現させてみていただきたい。また、静止画をところどころ掲載したが、流れで見ると、意外に気づかない、ということもある。
結局のところ、やはり試行錯誤しかないと思う今日この頃なのである。
Copyright © ITmedia, Inc. All Rights Reserved.