『動画のサイズの計算』

はじめに

動画の生成となると、10Mbpsや720×480ピクセルや29.97frame/sなどの数字が出てきます。これらの値によって最終的にできるファイルの容量がきまるのですが、その計算方法とそこから圧縮のすばらしいという結論にもっていきます(笑)。

ビットレートと容量の関係

ビットレートとは単純に一秒間あたりのビット=一秒間に消費する容量(単位がビット)という意味です。1バイトは8ビットですから、音声のビットレートと映像のビットレートの和をバイトに変換するために8で割れば一秒間に消費されるバイト数が分かります。
一秒間に消費する容量(単位はバイト) = (音声のビットレート × 映像のビットレート) ÷ 8

たとえば120分の映画を音声を128Kbpsで映像を10Mbpsで録画すると、
120 × 60 × (128Kbps + 10Mbps) ÷8 ≒9GB
ということになります。(計算が間違っていなかったらたぶん)

DVDが二層式でだいたい8.5GB程度なので10Mbps程度だと2時間程度が入りきる限度で、市販の高画質DVDといえどもせいぜいこの程度のビットレートということになります。

画像サイズとフレームレートから未圧縮の容量を求める

まぁビットレートからの計算程度なら「知っている」という方も多くて面白くないでしょう。そこで、画像サイズとフレームレートから容量を求めてみます。

たとえばDVDの画像サイズは一般に720×480です。つまり一つの画像に720×480のドットがあることになります。
720×480 = 345600 ≒ 35万
ちなみにドットが画像の構成要素になるので画素とよばれ、よくデジカメなどで**万画素といわれるのはこの数です。つまり、30万画素のデジカメで撮れる画像は720×480程度のものということになります。

さて、パソコンでは色をRGBの三原色で管理していてWindowsでは各256段階で色を表します。
256×256×256=16777216≒1677万
これが現行のWindowsであらわすことのできる色の数です。したがって1677色=フルカラーとよばれるのはこのためです。

デジタルの世界に目を向けてみると、ビットは0か1を表すことができる単位なので1ビットで2通り種類が表現できます。ですから1バイト = 8ビットでは2の8乗通りの種類を表すことができるのです。2の8乗は256なので256まで数を数えることができるともいえます。

一つのドットがフルカラーを表すためにはRGB各256段階を表す必要があります。上の通り1バイトで256段階を表すことができるなら、3バイトでフルカラーを表すことがでいることになります。

よって、例えば720×480の画像をフルカラーで表現するならば画素数に3をかけたものがその画像の容量となります。
720 × 480 × 3 = 1036800 ≒ 1MB
ためしにMSペイントあたりでビットマップ画像を作って未圧縮で保存してみるとこの程度の容量になっているハズです(ヘッダーなどが入るので少し大きくなるハズ)。

さて、日本ではNTSCとよばれる方式で放送されています。この方式は一秒間に29.97枚のフレームが表示されます。なぜ29.97枚という中途半端な値かというと、毎秒30枚で30秒に一回29枚になるので平均すると29.966...≒29.97枚となるのです。

さて、1MBの画像を毎秒29.97枚表示するとなると、一秒間に必要な容量は29.97≒30として30MBとなります。とすると、2時間の映画に必要な容量はとんでもないことになってしまうのです。
30 × 60 × 60 × 2 + 二時間分の音声 ≒ 200GB + 二時間分の音声

これが未圧縮状態で映像を保存した場合に必要な容量です。どうです?圧縮技術ってすばらしいですよね?

ちなみに、すでに200GBのHDDも登場していることですし、未圧縮の動画を保存できないことはないです。ただし、実は容量以外にも制限があります。上の例でいくと一秒間に30MB消費するので転送率が最低でも30MB/sでなければなりません。もちろん最近のHDDは軒並みUltra100ATAに対応して実質転送速度も50を超えてきていますが、最低でも30MB/sを常に維持するというのはなかなか大変なことだと思います。