●エンコードする際に知っておきたい動画の基本
一般的に動画にはフレームレート、解像度、コーデックといった要素から成り立っています。エンコードする際、これらのことを理解することは非常に重要になってきます。
【フレームレート】フレームレートは1秒間に表示させる静止画(フレーム)の枚数です。単位はfpsで表現されます。日本で使用されているTVはNTSC規格で30fps、ヨーロッパ等で使用されているPAL規格で25fpsでそれぞれ1秒間に30フレーム、25フレームとなります。ちなみに映画は24fpsです。 単純にフレーム数が多ければ滑らかな再生になりますがデータ量が増えるためPC上ではフレーム数を間引きします。逆に少なくすると動きがぎこちなく見えますが、データサイズは小さくなります。ストリーミング配信をする際は、視聴者のネットワーク環境(使用可能帯域)に合わせたフレームレートの設定が大事になります。
▼推奨するビットレートとフレームレート
配信ビットレート |
フレームレート |
画面サイズ |
45Kbps |
5~8fps |
160*120 |
300Kbps |
15fps |
320*240 |
500Kbps |
15~20fps |
320*240 |
1Mbps |
20~30fps |
480*360 |
【インターレース/プログレッシブ】
現行のTVでは(NTSC)走査線525本となっています。しかし実際はこの525本を同時に表示することはありません。この525本を上から一本おきに半分である262.5本を最初に描写し続いて残りの半分を描写します。これをインターレース(飛び越し走査)と言いPCで扱う場合非常に厄介な問題になります。映像の激しい動きの部分にシャギーがかかっているように交互のラインに分離して表示されることがあります。エンコード時にはこのインターレースを除去する設定がありますので、利用しましょう!
【解像度】
NTSC走査線525本とは言ってもTV画面に表示されない部分を含んでいる為実際は水平解像度は450本ほどとなります。これに4:3というアスペクト比をPCに置き換えると640x480のVGAサイズとほぼ同様になります。このためPC上では同じアスペクト比で使えるVGAサイズをフルサイズとしています。またVHS等では水平解像度300程度ということもありMPEGのようにVGAの半分である320x240というハーフサイズも使用されています。
ちなみに家電製品のDVでは720x480というサイズが採用されておりPCでアスペクト比を考慮しないと歪んだ画像となってしまいます。
【色情報】
コンピュータのディスプレイは色情報を光の三原則であるRGBで表示します。(R(赤)、Green(緑)、Blue(青))。一方NTSCは、輝度(Y)、色相(U)、彩度(V)からなるYUVで表示されます。
これはTVでもPCのモニターでも一緒なんですがTVでは途中の伝送で輝度信号とふたつの色信号にエンコードしたものを使用します。このエンコード方法は様々な種類がありYUVとかYCCとYIQなど多数のものが存在します。これらはみな輝度と色差で表します。色情報は4:X:Xというような表示がされますがこれは輝度4に対して色差がどれくらいあるかを表します。TVの場合は4:2:2、家庭用DVでは4:1:1が使われています。
このYUVをRGBに直すと16ビットになり、この16ビットの色を24ビットのRGBに当てはめると白は明るい灰色、黒は暗い灰色になってしまいます。
PC上で再生させるストリーミングコンテンツは、ホワイトレベルを上げ、ブラックレベルを下げるように設定すると良いでしょう。
【コーデック】
動画データは解像度×表示色×フレームレートという計算になり、これをフルサイズ、フルフレームで扱う場合640×480×3×30=27,648,000となり毎秒26MBという大きなデータ量となります。これだけの速度でHDDからデータを取り出すことは今現在不可能ですのでデータを圧縮する必要性があります。これを行うのがコーデックと呼ばれるものです。
コーデック(CODEC:compression/decompressionの略)はその名の通りデータを圧縮、復元するプログラムでavi、movそれぞれに多数のものが用意されています。
圧縮の方法もコーデックの種類だけあるのですが基本的には空間圧縮のみか空間圧縮+時間圧縮かです。空間圧縮とは映像を1コマずつ圧縮する方法で、時間圧縮は映像を前後のコマとの関連を見ながら圧縮する方法です。
※コーデックは圧縮したときに使用したコーデックが再生側のPCにインストールされていない限り視聴することは出来ません。特にソフトウェアコーデックは常に新しいものが開発されるため注意が必要です。また再生コーデックは無償でもエンコード用のコーデックは有償というものもありますのでよく確認してください。
【キーフレーム】
映像の中でキーとなる重要なコマ(フレーム)です。キー フレームは通常、シーン変更が生じた場合に挿入されます。また、シークを向上させるため、定期的にも挿入されます。キーフレーム設定は、エンコーダによってキーフレームが挿入されるポイント間の最小時間です (キーフレームは必要に応じて、より頻繁に自動挿入されることもあります)。キーフレーム間の時間を小さくするとビデオの品質が向上しますが、全体のファイル サイズも大幅に増えます。エンコードする場合、編集品質を向上させるため、キーフレーム間の時間を小さくすることをお勧めします。ファイル サイズをできるだけ小さくする場合は、キーフレーム間の値を大きく取ってください (20 秒など)。キーフレーム間の時間を大きく取ると、必要に応じて、予備のキーフレームが挿入されます (シーンの変更時など)。ただし、キーフレーム間の時間を大きく取ると、ビデオのシーク機能と、マルチキャスト シナリオでのユーザーの待ち時間の両方に影響を与えるという点に留意してください。
【最適な映像サイズ】
映像サイズが大きくなればその分、表示する為に必要となる帯域も高くなります。したがって低帯域のコンテンツのサイズを大きくしてしまうと映像品質が悪くなります。また、コンピュータに取り込む映像サイズよりエンコードするサイズを大きくしてしまうと、絵が引き伸ばされ映像品質が悪化します。映像をPCに取り込むサイズは、エンコードサイズよりも大きなサイズで取り込みましょう!
【音声ボリューム】
音声ボリュームが適切でないと、ノイズが発生したり、音が割れたりします。音声取り込みの際に動画編集ソフトで調節をするか、音声取り込みの間にミキサーをはさんで音声入力調整を行いましょう。
【クロップ】
NTSCで表示される画面とPCで表示される画面が異なるので、NTSCをそのままエンコードすると、黒い縁で囲まれていることがあります。これをオーバースキャンといいますが、この黒い縁もエンコードされるということは余分なデータも圧縮データとして加算されてしまい、画質が低下する原因になることがあります。これを回避する為にもあらかじめ大きなサイズで取り込んでおき、後で黒い縁をカットするようにします。これをクロップといいます。