近頃出回りはじめたハイビジョン映像。フル規格だと1980×1080ピクセルと並みの液晶パネルじゃ表示できないぐらいの大きさだ。その中にあるピクセルの数は、2,138,400(200万)画素! しかもテレビはRGBの3原色を使っているので、データとしては3倍の6,415,200(600万)画素を1秒の間に30回も描画し直しているのだ!
標準放送なら720×480ピクセルなので、345,600画素。データに直すと1,036,800画素である。720(704)×480ピクセルの映像ならスムーズに再生できるパソコンでも、さすがに6倍データ量を扱うハイビジョンの再生となると、CPUがオーバーロードするのは当然だ。
前回は、画質を落としてスムーズに再生するようにしていたが、今回はサイズそのものを小さくして、軽くてコンパクト!そしてスムーズに再生できるムービーを作ってみよう!
リサイズするには必ず16の倍数でサイズを指定
色々なムービーを見慣れている人であれば、352×240、640×400、704×480などという画面サイズをよく見かけるだろう。また最近は16:9の映像が多いので1024×576、1280×720という画面サイズの映像も多く見かける。
さて一見なんの規則性もないこれらの画面サイズだが、縦・横のサイズがピッタリ16で割り切れるのをご存知だろうか?
352÷16=22、702÷16=44、576÷16=36という具合にすべての数字が16でピッタリ割り切れるのだ。
実はこれにはワケがある。
現在コーデックの主流になっているのは、MPEG-1/2やDivX、WindowsMediaVideoにH.264といったものだ。H.264はMPEG-4規格であり、エンコードの仕組みはMPEG-1や2を発展させたもの。DivXやWindowsMediaVideoは、名前や細かなチューニングこそ違えど、実はMPEG-4ベースの映像圧縮方法を使っている。つまり現在主流になっているコーデックは、MPEG映像圧縮の基礎が利用されているといっても過言じゃない。
さてその基礎となるMPEGの圧縮方法は、画面を8×8ピクセルの「セル」と呼ばれるブロックに分解して圧縮を行なっている。
さらに第1回で説明した、画面中を動くものがどこに移動したか?という処理を16×16ピクセルのブロック単位で行なっているのだ。
これこそ映像サイズがすべて16で割り切れるという、からくりの種明かしである。とかく中途半場な数字が登場するパソコンだが、16で割り切れる数は、非常に処理がやりやすく、誤差も少なくなるのだ。
したがってハイビジョン映像を小さくリサイズするには、横×縦のピクセル比が16:9となり、かつどちらも16で割り切れる数値で指定するのがベスト。この条件を満たす、組み合わせってのはかなり限られており、6パターンしかない。
横 | 縦 | コメント |
---|---|---|
512 | 288 | ここまで小さければかなり古いパソコンでも再生OK。でもVHSの画質以下になっちゃう |
768 | 432 | オススメの解像度。このぐらいならWindowsXPの当初のパソコンでもまず再生OK |
1024 | 576 | ここらへんになるとPentium4以上じゃないと再生は辛いかも? |
1280 | 720 | こりゃもうハイビジョンの領域 |
1536 | 864 | 高速なCore2Duoなら再生できるかも |
1792 | 1008 | コーデックによってはCore2Duoでも厳しい再生環境だ |
2048 | 1152 | 組み合わせ的にありだが、ハイビジョンスペック以上だし、拡大表示になる |
でも待てよ!704×396って16:9のムービーもたくさんあるぞ!
16:9のムービーの中では、704×396ピクセルというサイズが使われているものが多くある。でもコレ、396って16で割り切れないのだ。余りは12。しかも基本のセルとなる8で割っても余りがでる始末(笑)。
じゃあなぜ、あまりが出るサイズなのに704×396の16:9のムービーがたくさんあるんだろうか? その答えは標準(SD)放送のキャプチャは、ほとんどが720×480でキャプチャされるためだ。
映像の両端には、若干のノイズが入るので左右8ピクセルを切り取って、横のサイズを704ピクセルにする。
ここから16:9のピクセル比にあわせて縦を上下42ピクセル切り取って(ちょうど黒い帯の部分)396ピクセルにしている。
こうするメリットは、映像の拡大・縮小をせずにエンコードできるから。本来であれば、768×432に拡大するか、512×288に縮小するべきところだが、こうすると拡大・縮小が行なわれ映像が劣化する。
一方ほとんどのエンコーダは、縦横のピクセルが16で割り切れなくても画像サイズとして受け付けてくれる。端数は端数としてキッチリ内部で処理してくれるからだ。
そこで画面全体が拡大・縮小で劣化するぐらいなら、エンコーダの内部で端数の処理が行なわれようとも縦396ピクセルでいいじゃん!という発想なのだ。しかも拡大・縮小の処理もされないから、エンコード時間も速いのだ。高画質で即アップ!(え?何のことですかねぇ?) これが704×396ピクセル映像なのだ!
(次ページへ続く)
この連載の記事
-
第6回
ゲーム・ホビー
縞シマノイズを完全消去!【インターレース解除編】 -
第5回
ゲーム・ホビー
マルチパスエンコード(VBR)を極める!【可変ビットレート編】 -
第4回
ゲーム・ホビー
ビットレートで画質を調整! CBRの秘密!【固定ビットレート編】 -
第2回
ゲーム・ホビー
重すぎるムービーをシェイプアップ【画質レベル編】 -
第1回
ゲーム・ホビー
まずは動画の構造について教えるぜ!【コーデック編】 -
ゲーム・ホビー
エンコードテクニック虎の巻 - この連載の一覧へ