映像を表示するデバイス各種コンバータ

FourTwoTwoCompany <http://www.ftt.co.jp>
尾上泰夫 <onoe@ftt.co.jp>

「エンコーダ」

エンコーダはデジタルメディアの中にビデオ信号を扱える信号に変換する機能だ。
アナログ信号を非圧縮で記録すると、映像の情報量は通信帯域を圧迫する大きな存在だ。とくに決められたサイズの入れ物に入れる場合、例えばDVDなどの決まったサイズのディスクへ録画する場合や、転送帯域が指定された通信メディアで映像を送る場合など、適切なサイズへ圧縮する必要がでてくる。ここの圧縮作業を行うものがエンコーダで、圧縮された情報を解いて再現するのがデコーダとなる。
同じデジタルメディアを搬送する映像信号の中でも、さまざまな種類があることを覚えておこう。
圧縮と再現の仕組みのフォーマットでは、汎用的なMPEGでも、初期のパソコンやVCD向きにMPEG-1、映像の品質を向上させDVDなどで利用されるMPEG-2、通信などでの利用と、よりコンピュータで利用しやすいレイヤー構造のオブジェクトを持つMPEG-4などがある。
またコンピュータ業界では、各企業の提案するWindowsMedia、QuickTime、RealVideoなどの圧縮コーデックを利用する事が多い。
ビデオ信号に比べて、コンピュータが扱うことのできる信号には色々な種類があるが、映像として1つのファイルのかたちとしてまとめていくと時に、単純に全ての画像を足していくと、そこに蓄積されるデータは画面要素と、それに対する情報が中に含まれるわけだから実際に一枚一枚の絵を、フレーム数分全部持つ非圧縮のデータはとても大きいものになってしまうが、それを要領よく小さなデータにしようとするのが、画像圧縮の技術。
言い換えれば、同じような映像を小さなデータ量で扱うことができれば同じ入れ物にもたくさんの時間が入るし送る回線の容量が小さくても高品質の映像を流すことができるようになる。画像圧縮は大変重要な技術として注目されているのである。
圧縮がエンコーダ、元に戻すのデコーダとなり、エンコーダもデコーダもソフトウエァだけでやる場合もあるし、ハードウエァの力を借りてやる場合もある。
エンコードの流れを理解するために、実際のエンコーダを設定する工程を紹介しよう。
初めに素材によって作業が変わってくる。
2 パスエンコーディングでは、ビデオのエンコードプロセスを2回実施し、1 回目では場面の性質によって、ビットレート、フレームレート、バッファサイズの最適な組み合わせを探し、2 回目で実際のエンコードをする。このため通常の2倍の時間がかかるが、品質の向上に役立つ。
VBR (可変ビットレート) エンコードは、画質に合わせて使用するビットレートを変動させることができ、ファイル総量を節約し、結果的に高画質となる。しかし、帯域が可変するような特性のため、ストリーミングサービスには向かないので、ローカル再生を目的としたディスクコンテンツの制作時に利用することが有効だ。
キャプチャ方式の指定
キャプチャカードの設定で、ピクセルフォーマットを確認する。
RGB は、ファイルは大きくなり、バスの負荷もあがる。 YUV は、多くのバリエーションがあり、YUY2 は最高品質を実現する。リアルタイムエンコードの時は、デフォルトにするか、YUV ベースのフォーマットにする。
ソース設定
より高品質なエンコードをするには、まずソースのタイプに応じたキャプチャ手順を考慮する必要がある。ソースファイルの形式によって、最適なフレームレート、画面サイズ、処理手順が変わってくるからだ。
NTSC の場合は、ソースが 30 fps でかつ インターレース化されている。そこで、まずプログレッシブ化 ( ノンインターレース化 ) をし、30 fps か 60 fps で出力する。帯域幅に制限がある場合は、30 の半分の 15fps にする。重要なのはプリプロセッサーの機能と、ソフトエンコーダーの機能をダブルで使用しないように注意することだ。きちんとプリプロセス出来ている素材なら、まったくフィルターの必要なくエンコードを行える。
ノンインターレース化とは、NTSC 向けにインターレース化されたコンテンツをプログレッシブ化する処理だ。
インターレース化されたコンテンツは、奇数フィールドのみのフレームと偶数フィールドのみのフレームのセットを表示し、2フレームで1セットの画像を完成させるようになっている。
これにより、ちらつきが解消し、早い移動物などの表示が有利になる。また圧縮にも有利だ。
PAL の場合は ソースと同じ 25 fps にする。この時フレームレートは、25 を基数として計算しよう。この場合もプリプロセッサーの機能と、ソフトエンコーダーの機能をダブルで使用しないように注意することだ。
ビデオのトリミング 映画コンテンツの場合には、画面サイズを調整する必要がある。
ここで、上下の切り詰めるべき空間を設定するが、その際、必ず8 ピクセルの倍数となるように設定する。また、通常の4:3素材の場合でも、上下左右の端にノイズがのっている場合があるので、その場合も必要量をトリミングする。
また、60 フィールドのデータをリサンプリング化することで、 60 fps のコンテンツに変換することもできる。60 fps にする場合、300 Kbps 以上の帯域幅が必要だ。
マルチビットレートでは、10 までの複数の帯域を選択しての指定にすることができる。
これを Windows Media Server から配信することで インテリジェントストリーミングが可能だが、 CPU 負荷 及び ファイルの容量は大きくなる。
キーフレームの間隔 の設定では、Encoder はその間隔中にかならず1つキーフレームを挿入する。
ただ、キーフレームが途中で必要になった場合にも自動的に挿入されるので、間隔が大きくて問題となるようなことはない。
この間隔を小さくすると、早送り、巻き戻しがきれいになるが、当然より多くの帯域が必要となる。

「コラム」
Film コンテンツの場合は、ソースは 24 fps から 30 fps に変更されており(テレシネ)、また画面サイズは PC ディスプレイと同一ではない。逆テレシネ 処理をし、上下の黒い部分を省くようクロップ設定する。そのままにしておくと、上下の黒い部分も帯域幅を消費するからだ。こちらのフレームレートは、24 を基数として計算する。テレシネとは、映画用フィルムコンテンツを TV (NTSC) 向けにコンバートする処理のことだ。
24 fps を 30 fps に変更し、インターレース化している。
ということは、元がフィルムのコンテンツは、みな 30 fps に増幅され、インターレス処理されているということだ。そこで、逆テレシネ (Inverse Telecine) という機能を利用する。
このプロセスでは、テレシネ処理で水増しされたデータを除去し、ノンインターレース化する。
これにより、より圧縮に適した形になり、インターレースの問題も除去される。ただし、テレシネ処理後に編集されていると、正しく逆テレシネできないことがある。またこの処理をおこなうと、CPU使用率が10 - 25 % 上がる。この処理をハードウェアでおこなう今回のシステムは、CPUの負荷は軽減され、高品質だが、システム価格はそれなりになる。これをソフトウェアだけで処理すると、安価なシステムを実現できるが、時間と品質が損なわれる。