動画ファイル エンコードテクニック
撮影した動画は、ファイルとして取り込む必要があります。
現在は、デジタルデータとして、そのままパソコンに取り込むことができますが、配信用に適した画質にするためには様々な調整が必要です。
その調整をするためのノウハウをお伝えします。
> 第一の扉 基礎知識
> 第二の扉 エンコーディングの流れ
> 第三の扉 エンコーディングの秘術
第一の扉 基礎知識
NTSCとPC
一般的に広く普及している映像といえば、テレビモニターというものを通して視聴するテレビ放送、ビデオ、DVD等があげられます。これらはそれぞれの国によって方式が厳しく決められていて、日本やアメリカではNTSCという方式が採用されています。簡単に言ってしまえばデータとしての方式がキチンと定められているので、それらを表示するテレビモニターは若干の機能や性能の違いはあっても、その定められたデータをキチンと再生させることを前提として作られているので、使用する際に特別な知識とかテクニックは必要ありませんでした。
これに対して、ここ10年ほどで目覚ましく進化したパソコンというハードウェア上で、従来からあるビデオを再生したいというニーズから、従来テレビモニターで表示していたデータをパソコンディスプレイ上で表示できるように変換する必要が出てきたわけです。しかしながら、パソコンというハードウェアはその性能が機種(CPU等)によって大きく異なってくる為、より多くの機種環境でスムーズに再生する為には、その変換方法にそれらもとりまく様々な知識やテクニックが必要になってくるワケです。
この2つの相違点が、パソコン上でビデオを扱う為に知っておかなければいけない、もっとも基本的なことです。ここを理解しておけば、ネットワーク経由のパソコン上でビデオを扱うことがストリーミングエンコーディングに深く影響していることもお判り頂けるかと思います。
パソコンでのビデオ表示
まず一般的にビデオと呼ばれているものが、パソコン上ではどのようなデータに相当するかを知っておく必要があります。日本やアメリカで採用されているNTSCという方式は、パソコン上では以下のようなデータに相当します。
画角サイズ: 640x480
フレームレート: 1秒あたり30コマ(正確には29.97)
画像解像度: 72dpi
* 実際にはインターレースという方式で、1コマあたりを640x480の縦方向だけ奇数行ピクセルと偶数ピクセル行の2つ(2フィールド)に分けて表示させているので、見かけ上は1秒間60コマのように見える。このデータをそのまま(非圧縮)の状態で、パソコン上で再生することは、一部の高性能な機種でしか実現していません。そこでこれらのデータを効率よく圧縮して、広く一般的な機種でも再生できるように考えられたのが圧縮という技術です。パソコン上で快適に再生するということは、データとして軽いものであるということは、なんとなくお判り頂けると思います。
第二の扉 エンコーディングの流れ
エンコーディング仕様の打合せ
(サイズ、ビットレート、フレームレート、クロップ、コーデック及びそのバージョン等を用途に応じて決定する)
素材テープ(ファイル)の受け取り
素材のチェック(レベル、色、音声等)
パソコンへの取り込み(キャプチャ)
(素材のクオリティを落とさないように設定する)
キャプチャした動画をパソコンディスプレイ上での再生に適するように調整を行う
(レベル、コントラスト、ガンマ、ダイナミックレンジ(音))
プリエンコードファイルを作る
圧縮の設定値を少しずつ変化させたバッチファイルを作り、エンコーディングを行う
エンコード終了後チェックを行い、仕上がりの良いモノを選別し、サーバーにアップする。
第三の扉 エンコーディングの秘術
高画質なエンコーディング作業をするためには以下のように作業をすすめます。
視聴ターゲットを決める
これはどんな人に見せるか?というより、どんな環境でコンピュータを使っている人をターゲットにするか?ということです。最初に思いつくのはインターネットに接続している形態です。モデムなのかISDNなのか?ADSLなのか光ファイバーなのか?それぞれの接続形態においても理論値としての回線速度と実効速度というものに開きがあることは変わりありませんので、その点をよく考慮する必要があります。またユーザーがどんな能力のコンピュータを使っているのかも重要です。特にブロードバンド系に多用される高いビットレートのデコードには、高ければ高いほどCPU負荷が高くなります。つまりブロードバンド系のコンテンツには早い回線速度に加えて、高速なCPUも必要になるワケです。また、同じエンコード方式でも、OSによってデコードの得意、不得意があることも重要なポイントです。
モニタの調整
ビデオの世界では、カラーバーと呼ばれる調整信号があって、それを使って画面を調整することが、コンシューマのレベルにおいても、ある程度は理解されています。しかしパソコンディスプレイをある一定の基準に従って調整するようなことは、一部のプロフェッショナルな世界では頻繁に行われていますが、やはりコンシューマのレベルにおいては一般的ではありません。しかもパソコンのディスプレイは、利用しているグラフィックボードの性能や種類によって、表示する画像が大きく違ってきます。またOSなどによっても元々の設定方法が違います。以上のようなことからパソコンのディスプレイというものは、機種とか使っている人ごとにかなり違うということになります。 だからこそ、ビデオ等をパソコン上で扱う際には、ある程度標準的なディスプレイ状態に調整したうえで、作業することが大切です。
キャプチャ
可能な限り、高画質な方法でパソコンへの取り込み(キャプチャ)を行います。一般によく利用されるデジタルビデオ等は、ビデオに録画した時点で既に圧縮されてしまっているので、特に扱いを注意する必要があります。理想を言えば、非圧縮での取り込みが理想ですが、コストパフォーマンスを考えると2分の1圧縮程度でも可能です。たとえばせっかく高画質なβカムなどで素材が納品されているのに、取り込みの為にDVテープにダビングなどをしてしまうと良い結果を得られないことになるので、高画質なテープで素材が納品された場合は特に注意したいものです。またアナログ系のビデオの場合は、レベルや色を冒頭のカラーバーで調整することも忘れてはいけないポイントです。
*結局のところ圧縮という作業はデータを間引くというプロセスなので、圧縮前の素材の情報量が多ければ多いほど、高品位な結果が得られるということになります。
データの確認
取り込んだビデオに絵と音のズレがないか確認します。特に安価なシステムやキャプチャに適さないハードディスクで、長尺の取り込み作業を行った場合は、注意が必要になります。またパソコンのファイルは作業を行っているOSや取り込み時の方法によっては、2GBを越えるとトラブルが多くなるので、これも注意が必要です。
調整
取り込んだビデオをパソコン上での見栄えをよくするため、コントラスト、レベル、ガンマ等を調整すると同時に、音に関してはレベルやバランスを確認し、必要に応じてダイナミックレンジの調整を行います。また、取り込んだファイルは通常のテレビモニターでは映らない部分まで表示されているので、通常はそれをテレビに映った時と同じ程度までクロップさせることも必要です。
これらの作業を圧縮と同時に行えるエンコードソフトを使う場合は必要無いですが、調整があまり細かくできないエンコードソフトを使う場合は、圧縮に入る前のこの段階で、できるだけ画質を落とさない方法でプリエンコーディングファイルを作って作業を進めると良い結果が得られます。又、エンコードソフトによって機能が違うので、その点を考慮して作業を進めます。
デインターレス
先に述べたようにNTSC方式のビデオの場合、1フレームは見かけ上は640x480の画角サイズですが、実際は縦方向に関しては半分しかないフィールド2枚で構成してテレビモニターに表示しているので、パソコン上で1フレームを細かく見ると横方向に櫛形のジャギーが出てしまいます。特に動きの早いシーンでは顕著に現れます。これを除去するためフィールドをブレンドする、またはどちらか片方だけに取り出すプロセスがデインターレスです。
この事から判るように、NTSC方式のビデオをパソコン上で表示する場合、デインターレスにすることを前提とすれば、縦方向に関しては240ピクセルの解像度しかないので、画角サイズは320x240より大きくしても、補間によって大きくしているだけになります。
ガンマ値の補正
モニタの調整と近い問題ですが、パソコン用のディスプレイとビデオを用のモニタでは、ガンマ値と言われる黒から白にかけてのグレーの特性が違っているのです。ビデオの場合は1.0です。パソコンの場合は、Macが1.8で、Winが2.2です。ですからパソコンに取り込んだビデオは、そのままの状態だとチョット白黒の締まりの無い映像になってしまうのです。これを解決するためにガンマ値を補正します。
プリエンコードファイルの制作
エンコーディングというプロセスは、大きく2つに分けられます。1つは圧縮コーデックに従って、ファイルのデータを間引くプロセス。もう1つはパソコンディスプレイ上での再生に適するように様々な調整を施すフィルター処理です。この2つのプロセスを経て圧縮が完成するワケですが、これらの処理はパラメータを複数用意して最適なエンコード結果を得ようとしている前提であれば、前者はエンコードごとに違った処理を行うのに対して、後者はどのエンコードにおいても同じ処理を繰り返すことになります。この2つのプロセスは同じくらいか、場合によっては後者のほうがやや大きく、CPUへの負荷がかかるので、エンコードを終了するまでに多くの時間を要します。そこで、この2つのプロセスのうちの後者の処理だけを行ったファイルを用意することで、コーデックに従ったデータ圧縮のみを繰り返すだけで、エンコード処理を完了できるようにするのが、プリエンコードファイルを作る大きな利点です。
*プリエンコードファイルを作る利点
複数のパラメータでエンコードを行う場合に効率化が図れる。
リテイクが発生した場合も迅速に対応できる
プリエンコードファイルを制作する際に、多少の空間圧縮は行っても、時間圧縮を行わないような設定を使うことにより容易に編集作業が行えるので、別バージョン等を作る場合にも時間的にかなり短縮できる。
*プリエンコードファイルを作る際の注意
プロセスが1回増えてしまうことによって、画質が低下しないように使用するコーデックに細心の注意が必要。 ファイルサイズが大きくなるので、OSやアプリケーションによっては扱いが難しくなる。
圧縮方法の選択
圧縮率を固定するのか(CBR)、シーンによって動的に圧縮率を変化させるのか(VBR)を選択します。
*当然VBRのほうが画質は良くなりますがCPUへの負荷が高いので、ストリーミングには一般的にCBRが用いられます
音声の圧縮率 :どのような音質にするかによって、大きくデータ全体の圧縮率に影響します。
*ソースの質や用途によって最適な圧縮方法を選びます。
圧縮におけるデータ軽減要素
以下が圧縮というプロセスにおいて、データを軽くするために行う基本的な要素です。
画角サイズ: どのくらいの大きさで表示するかですが、比率は崩すことはできません。
フレームレート: 1秒間あたりのコマ数を減らします。(少なくすればカクカクした動きになります)
空間圧縮: 1画面内において近似色を統合したり、平均化したりします。
時間圧縮:
前後のフレームにおいて、データ的変化していない部分は再利用する。コマ内で変化している部分だけを次のフレームのデータとして判断させる。
どのような圧縮方法であっても、上記の4点がその基本となる要素です。このことを理解しておくことが高品質な圧縮を行う鍵になります。空間圧縮と時間圧縮に関しては、圧縮するソフトが自動的に判断してプロセスを行ってくれるのですが、その事を理解しておくことによって、圧縮前の映像に事前に処理を加えたり、撮影する際のカメラワークなどを考えたりすることを思いつくと思います。 また、フレームレートや画角サイズに関しては、どのような用途に使うのかを考えれば、判断がつくと思います。例えば、電話回線でもスムーズに再生する為のデータを圧縮するのに、フレームレートや画角サイズを大きくするのは、高画質な結果は得られないという事です。
トライアル&エラー
以上のようなことを留意しつつ、総合的なクオリティを判断しながら圧縮作業を行いますが、一番大切なことは、動画というものは静止画が動的に変化していく集合体であることを考えると、どんな動画圧縮にも適合する、いわゆる『ハイクオリティの法則』のようなものは存在しないのです。100種類の動画があれば、100通りの方法が存在すると言っても過言ではありません。クオリティの高い動画圧縮を行うには、最低でもその都度10種類くらいの設定値でトライ&エラーを繰り返すことが必要であると言えます。
圧縮の作業は、1回でベストな結果がでることは非常にまれであるので、できるならばエンコードソフトのバッチ機能などを利用して、最低でも10種類位の設定値を同時に走らせて、その中からベストなものを選ぶことの方が良いかもしれません。特に低いビットレートの場合は見たカンジの印象が重要だったりすることが多いので、そういった場合には有効な方法です。
まとめ
動画の圧縮という作業は、その内容と用途、もっと言ってしまえば視聴者のニーズを考えて、作業を行うのが理想です。結局のところデータを間引くワケですから、ターゲットとする帯域が狭ければ狭い程、どこで妥協するかということになります。ですから、どんな 用途であるかが、エンコーディングという作業には重要なのです。但し、そう言ったネガティブな部分だけでなく、圧縮という作業は、単にドラッグ&ドロップでやったようなモノであれば、どんなに高いビットレートを使っても高品位な結果は得られないのです。逆に言ってしまえば、上手に圧縮すれば同程度のクオリティを半分のビットレートで実現できるのです。言い換えれば、同じ帯域を利用し2倍のユーザーに動画を提供できるワケです。これは経済的な効果はかなり大きいはずです。
一般のホームページ(ウェブサイト)が、データの軽さとユーザーの使いやすさをトレードオフにしないように、動画に関しても画質とデータのトレードオフにしない事が重要だと思います。