なぜ動画ファイルにはエンコードが必要か

2008年11月6日(木)
栗原 寛

エンコードが必要なのか?

 今回は、「なぜ、手間のかかるエンコードが必要なのか?」「そもそもエンコードとは何なのか?」動画ファイルが多数あるがどう違うのか?」「エンコードの設定って複雑?」、そんな初歩的な疑問を解決していきます。

 動画をWebで配信する場合、元の動画データをそのままWeb上で配信しようとするとデータ量が多すぎて、動画を視聴することができません。そこで、「エンコード(encode)」という動画データの圧縮作業が必要になります。

 通常、Webで視聴する動画は1Mbps弱ぐらいのビットレート(データ量)になるのですが、元の動画データのビットレートはどのくらいかというと図1-1のようになります。

 エンコードとは、元の動画データを10分の1から100分の1以下に圧縮して、Web上で視聴しやすい動画データに変換することをいいます。

 また、動画データはネットワークのトラフィックに過大な負荷をかけます。例えば、「ニコニコ動画(http://www.nicovideo.jp/)」では、1日の中でピーク時に日本全国のネットワークトラフィック総量の約10%弱ぐらいを消費します。1つのサイトが、日本全体の約10%を消費するなんて、いかに負荷が大きいか!わかる良い例と言えるでしょう。

 そのような理由で、できるだけ動画のデータ量を減らすために、エンコード作業が必要になるのです。

 次にエンコードをする時、どの「コーデック(CODEC:映像圧縮技術)」を使用するかが問題になります。コーデックは、動画を使用する環境と画質、ファイル形式によって選択肢が違ってきます。

 例えば、GyaOやYahoo!動画は、Windows Mediaコーデックを使ったWMVファイルで動画配信してWindows Media Playerで再生し、YouTubeやMySpaceは、Sorenson SparkまたはOn2 VP6コーデックを使ったFLVファイルで動画配信し、Flash Playerで再生することになります。

 また、図1-2のようにネット上での動画の見せ方について、さまざまなファイル形式とコーデック・プレーヤーが用意されています。

コンテナファイルとは

 「コンテナファイル」とは、物流で品物を入れて輸送するコンテナをイメージするとわかりやすいです。

 コンテナの中にはいろいろな品物が入りますが、コンテナファイルも同様にいろいろなコーデック(品物と思ってください)が入ります。外見は同じコンテナ(avi)でも入っている中身(コーデック)が違うのがコンテナファイルとなります。図1-2のmovファイルやasfファイルもコンテナファイルです。

 コンテナファイルには注意が必要です。同じaviファイルでも、Web上で配信できるaviファイルもあれば、配信できないaviファイルもあるからです。

 例えば、DivXコーデック(1Mbps)のaviファイルはWeb上で配信できますが、Microsoft DV ビデオコーデック(25Mbps)のaviファイルはWeb上で配信すると重くて使い物になりません。でも、外見は同じaviファイルですのでご注意ください。

 逆に、同じaviファイルなのにWindows Media Playerで再生できるaviファイルと再生できないaviファイルがあります。この場合、Windows Media PlayerがインストールされているPCに再生できないaviファイルのコーデックがインストールされていないことが主な原因になります。

 でも、外見が同じaviファイルなのですから、どのコーデックが使われているかわからないと思います。そのような時に、コーデックを調べるフリーソフトがありますので、それを使用して、コーデックを調べます。主に「真空波動研(http://kurohane.net/)」などが知られています。

 なお、movファイルも編集用のmovファイル(Apple Intermediate Codec)と動画配信用のmovファイル(H.264 Codec)などがありますので注意してください。

 次は、エンコードについて説明します。

エンコードすると画質が悪くガッカリです!

 動画データは、なぜデータ量が大きいかというと、1秒間に約24枚とか約30枚という静止画(フレーム)を高速で表示しているからです(1秒間30枚で10分間18,000枚)。

 ここで今までのエンコードの歴史を簡単に説明しましょう。

 データを圧縮するため、まず考えられたのが「フレーム数を減らす」ということです。次に、動画データの「画像サイズを小さくする」です。

 しかし、1秒間30フレームを15フレームにして、画面サイズを縦横半分にしてもデータ量は8分の1しか減りません。100分の1以下にデータ圧縮なんてとても無理です。

 そこで考えられたのが、動画1フレームごとに低画質化することでした。BMPファイルをJPEGやGIFファイルに変換するのと同じような発想です。動画1フレームごとに低画質で一定化し、1秒のデータ量を決める。これがCBR(Constant Bit Rate:固定ビットレート)となります。同じ画質のフレームが次々と表示されるイメージです(図2-1)。

 ところが、ここで問題が発生します。ビットレートが低いと、画質が悪いのです。動画1フレームごとに低画質で一定化したので、画像上に水をこぼしたようにぼやけてしまいます。

 この問題に対処すべく新しい圧縮技術が開発されました。これが、フレーム間圧縮(差分圧縮)というものです。1枚の画像(フレーム)内で圧縮するのでは限界があるので、複数フレーム間で連携して圧縮しようという発想です。

 原理は、元となるキーフレームのデータと、次のフレームは動いた部分だけの小さな(差分)データから動画を構成して、データ量を圧縮しようというものです。キーフレームが普通のデータで、差分データが小さなデータとなるので、1秒間のデータ量が画像の変化に合わせて随時変化します。これがVBR(Variable bitrate:可変ビットレート)となります(図2-2)。

 このVBRの登場により、動画の画質が劇的に向上し、データ量も劇的に圧縮することができるようになりました。

 「CBR」と「VBR」、これが、第1のキーワードです。

 次に可変ビットレートの場合、どのようにビットレートを変化させていくかが問題なります。

 「1パスエンコード(1 pass encode)」と「2パスエンコード(2 pass encode)」、これが、第2のキーワードです。

 1パスエンコードはエンコード作業を1回(パス)で処理し、画像の解析と圧縮処理を同時にするエンコード方法で、2パスエンコードはエンコード作業を2回(パス)で処理し、1パス目で画像の解析を行い、どういう画像かを調べ、2パス目で圧縮処理を行うエンコード方法です。

 1パスエンコードより2パスエンコードの方が、倍の作業が発生するためエンコード処理に約2倍時間がかかります。しかし、2パスエンコードの方が高画質・高圧縮率となります。逆に、1パスエンコードの方がエンコード処理時間が短い分、2パスエンコードに比べて画質や圧縮率が低下します(図2-3)。

エンコード方法とソフトウエア

 それでは、第1・2のキーワードを組み合わせて、エンコード設定します。

 CBRは、ビットレートを一定にしたいライブ配信や、あまり動かない映像(講演会やセミナー映像など)の低ビットレート化に有効ですし、VBRは低ビットレートの環境で、できるだけ画質を向上させたい場合に有効です。

 また、1パスエンコードと2パスエンコードはエンコードの処理時間に違いがあり、画質があまり重要ではない映像で即時性が必要ならば1パスエンコード、画質重視のCM動画配信などは、2パスエンコードとなります。

 例えば、株主総会などのライブ配信は即時性が重要なのと、光回線やADSL等いろいろな回線で視聴できなければならないので、ライブ配信用エンコードPCの負荷と回線の負荷を抑えるために、1パスエンコードのCBRなどを採用します。また、企業サイトで企業CMを配信する場合は、低ビットレートと画質を優先させるため2パスエンコードVBRを採用します(wmvやH.264やOn2VP6など)。

 次に、エンコードソフトウエアですが、ビデオ編集機能とエンコード機能が一緒になっている、プレーヤーにエンコード機能が追加されている、エンコード専用ソフトウエアなど多種多様です。

 主なソフトウエアは、「Windows Media エンコーダ(無料)(http://www.forest.impress.co.jp/lib/pic/video/vdoenc/winmediaenc.html)」「Adobe Flash Video Encoder(有料・Flashにバンドル)」「Adobe Flash Media Live Encoder(無料)(http://www.adobe.com/jp/products/flashmediaserver/flashmediaencoder/)」「Cleaner(有料)(http://www.too.com/digitalmedia/index.html)」「ProCoder(有料)(http://www.canopus.co.jp/catalog/procoder/procoder20_index.php)」「Sorenson Squeeze(有料)(http://www.flashbackj.com/sorenson/index.html)」「QuickTime Pro(有料)(http://www.apple.com/jp/quicktime/pro/)」「TMPGEnc(無料・有料)(http://www.tmpgenc.net/ja/j_main.html)」「AviUtl(無料)(http://spring-fragrance.mints.ne.jp/aviutl/)」「WinFF(無料)(http://code.google.com/p/winff/)」「FFmpeg(無料)(http://www.xucker.jpn.org/keyword/ffmpeg.html)」「ffdshow(無料)(http://sourceforge.net/projects/ffdshow/)」「VirtualDubMod(無料)(http://virtualdubmod.sourceforge.jp/)」「FlasKMPEG(無料)(http://cowscorpion.com/MultimediaTools/FlasKMPEG.html)」「携帯動画変換君(無料)(http://mobilehackerz.jp/contents/3GPConv)」です。

 ソフトウエア選択の目安は、どういうエンコードをしたいかと、オプション機能(エンコード設定や画質調整機能)の使いやすさなどです。

 次は、このオプション機能(画質調整機能)について説明します。

PCのRGBとビデオの色味について

 コーデック圧縮技術の飛躍的向上により、今までの「動画が動いていれば良い」から、「よりきれいに」という画質向上の要望が高まっています。現に、H.264やOn2VP6などは、細かい職人的エンコードセッティングをしなくとも、デフォルトで驚くほどきれいにエンコードしてくれます。

 ところが、ビデオ映像を実際にエンコードしてみるとわかるのですが、ビデオをTVモニターで見るのに比べ、PCモニターの方が「くすんで見える」ような状態になります。特に、CM映像の動画配信では、そのようなクレームがクライアントから寄せられることがあります。

 この原因はコーデックの問題ではなく、実は色味補正の問題なのです。結論からいうと、PCモニターの色味と映像信号の色味とで信号領域が違うからです。その違いとして、映像信号の白はPCモニター上では完全な白ではなく、映像信号の黒はPCモニター上では完全な黒ではないということが挙げられます。

 専門的になりますが、Photoshopなどの設定でわかるように、PCモニターのRGBは0から255の256階調です。ところが、映像信号は16-235の220階調しかないのです(特に現在使われている地上波NTSC映像信号はそうです)。映像信号の黒はちょっとグレーっぽい黒で映像信号の白はちょっとグレーっぽい白なので、くすんで見えるのはそのせいです。

 この問題については、映像信号の220階調をRGBの256階調に伸長してあげることで解決します。(図3-1)グレーっぽい黒を本当の黒に、グレーっぽい白を本当の白にし、そのほかの色も一緒に伸長してあげると本当の色味になります。

 図3-2はcleaner(http://www.too.com/digitalmedia/index.html)というソフトウエアです。左の映像が元のビデオ映像で、右の小さな映像が左右に区切られていますが、区切られた左側が補正前の映像(左の大きい映像と同じ色味)、区切られた右側が補正後の映像です。違いは明らかです。

色味の補正方法

 設定方法は、エンコードソフトによって違うのですが今回はCleanerを使って説明します。

 フィルターセッティングボタンからビデオのタブを選択して、カラーカーブ(図3-3)を調整するだけです。白い方の235を255で出力してあげて、黒い方の16を0で出力してあげます。これで、220階調が256階調に伸長するわけです。

 ほかのエンコードソフトでも同様の設定項目があると思いますので、確認してみてください。特に、CMや映画などの映像制作予算に余裕がある映像は、ビデオ編集時に映像信号をしっかり管理して制作していますので(NTSC映像信号など)、この220階調をRGBの256階調に伸長してあげるだけで、十分画質が取り戻せます。

 次回は、映像素材の受け渡しについて説明します。動画配信を行っていると、えたいの知れない映像データを受け取る場合があります。この対処法についても説明します。

 なお、本稿の執筆にあたって、以下を参考にしました。

「グーグル脅威論なんて、くだらない 特別対談 中島聡×西村博之」『ascii』ASCII(発行年:2007.12)

川上 一郎「デジタルシネマシアターのコントラストと階調再現  川上 一郎」『月刊 フルデジタルイノベーション』株式会社ユニワールド(発行年:2007.10)

株式会社アトミックPV
ビデオ制作会社でビデオエンジニア・ビデオカメラマン・ディレクター・ビデオ企画制作マーケティングに従事した後、フリーとして独立。2001年にWebストリーミングコンテンツ制作業務を開始。2003年有限会社アトミックPV設立。2008年株式会社アトミックPVに移行。動画配信を活用したビデオ制作、ビデオ・ストリーミング動画配信コンサルティング業務などを手がけ、現在では売上高数千万円~連結十兆円規模の企業様まで幅広くビデオ制作・動画配信のお手伝いをしています。http://www.atomic-pv.jp/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています