【基本情報】音声・画像・動画のデータ量計算、共通の型は「個数×1個のビット数」|標本化・色深度・圧縮

「標本化周波数44.1kHz、量子化ビット数16ビット、ステレオで…」と、条件が多くて難しく見えやすい分野ですが、基本構造を整理すると「個数を整理して、1個あたりのビット数を掛けて、最後に必要な単位へ換算する」という計算です。

ただし手を動かす前に、確認したいことがあります。音声・画像・動画のどれか、非圧縮か圧縮済みか、答えはビットかバイトか、k・M・Gの定義、圧縮率という言葉が何を指すか。非圧縮か圧縮済みか、また「圧縮率」が何を意味するかによって使用する式が変わるので、後半でじっくりやります。

まず単位の整理

表記 意味
b ビット
B バイト(1B=8b)
Hz 1秒あたりの回数
bps 1秒あたりのビット数
B/s 1秒あたりのバイト数
k / M / G 10^3 / 10^6 / 10^9
Ki / Mi / Gi 2^10 / 2^20 / 2^30

押さえどころは3つ。大文字Bはバイト、小文字bはビット。SI接頭語としては、k・M・Gは10の累乗(k=10³・M=10⁶・G=10⁹)を表し、2の累乗をはっきり表すときはKi=2¹⁰・Mi=2²⁰・Gi=2³⁰を使います。問題文に「1k=1,024とする」などの指定があればそれが最優先です。そして、標本化周波数16kHzは「毎秒16,000測る」という回数の話であって、16,000ビットという意味ではありません。回数×1回分のビット数、と分けて考えます。

音声:非圧縮PCMのデータ量

音声のデジタル化は、「1秒に何回測るか(標本化周波数)× 1回を何ビットで記録するか(量子化ビット数)× チャンネル数」の積み上げです。段階的に書くとこうなります。

標本数 = 標本化周波数 × 録音時間
1秒あたりのビット数 = 標本化周波数 × 量子化ビット数 × チャンネル数
データ量[ビット] = 標本化周波数 × 量子化ビット数 × チャンネル数 × 時間
データ量[バイト] = 上記 ÷ 8

例題:標本化周波数16kHz、量子化ビット数8ビット、モノラルで10秒間録音(非圧縮PCM、1k=1,000とする)。データ量は?

16,000 × 8 × 1 × 10 = 1,280,000ビット
÷8 = 160,000バイト(160kバイト)

2進接頭語で言えば156.25KiBです。÷8するのはバイトで答える場合。答えをビットで聞かれたら、割らずにそのまま出します。求める単位を先に囲んでおきましょう。

ここで大事な前提をひとつ。この公式で出るのは、各チャンネルの1標本を量子化ビット数分(=1標本・1チャンネルあたりのビット数)で記録する非圧縮PCMの標本データ本体です。実際のWAVファイルは、ヘッダーやチャンク情報などの分だけ、計算した標本データ本体とサイズが異なる場合があります。またMP3のような圧縮音声は、この公式だけでは実ファイルサイズを求められません(ビットレートが与えられる計算は後述のビットレート方式で)。

チャンネル数は、基本的な計算ではモノラルを1チャンネル、ステレオを2チャンネルとして扱います。同じ条件ならステレオはモノラルのちょうど2倍で、ステレオの×2を見落として半分の値を選ぶのが代表的なミスです。なお5.1チャンネルは一般に6チャンネル分の音声信号として扱われますが(0.1を「0.1個分」と掛けるわけではありません)、計算問題では問題文に指定されたチャンネル数を優先してください。

量子化ビット数と段階数

bビットの固定長2進数で各量子化段階を表す場合、区別できる段階数は2^b。8ビットなら256段階、16ビットなら65,536段階です。後で出てくる色数と同じ「2の累乗」の関係で、ビット数が増えると1標本あたりのデータ量も比例して増えます。

標本化定理:「最高周波数の2倍以上」

標本化周波数がなぜその値なのか、という知識問題も出ます。理想的に帯域制限された信号を対象とする基礎的なモデルでは、

標本化周波数 ≧ 信号に含まれる最高周波数 × 2

例題:最高周波数7kHzの信号を標本化したい。選択肢が8kHz・12kHz・16kHz・20kHzなら?

必要なのは7×2=14kHz以上。条件を満たす最小は16kHz

12kHzは「14kHz以上」という条件を満たしません。実際の機器ではフィルタの都合などでさらに余裕を取ることがありますが、本記事の基礎計算ではこの関係を使用します。

画像:非圧縮画素データを計算する

画像は「画素(ピクセル)の数 × 1画素あたりのビット数」です。

画素数 = 横画素数 × 縦画素数
データ量[ビット] = 横 × 縦 × 1画素あたりビット数
データ量[バイト] = 上記 ÷ 8

例題:横800×縦600画素、1画素24ビットのフルカラー画像(非圧縮、1M=10^6とする)。データ量は?

800 × 600 × 24 = 11,520,000ビット
÷8 = 1,440,000バイト(1.44Mバイト)

2進接頭語なら約1.373MiBです。この式で出るのも非圧縮の画素データ本体で、ヘッダー・メタデータ・パレット・行のパディングは含みません。JPEGやPNGの実ファイルは、圧縮方式と画像の内容次第でサイズが大きく変わるので、「24ビット×画素数」は理論値として扱ってください。

24ビットカラーの中身と、32ビットの注意

24ビットカラーは「赤・緑・青を8ビットずつ」で合計24ビット=3バイト、表現できる色は2^24=16,777,216色。「24ビット=3バイト」は基本的な換算として覚えておくと便利です。ただし32ビット画像では、RGB24ビットに透明度(アルファ値)8ビットを足す場合や格納上の余白を持つ場合があるので、問題文の「1画素あたり◯ビット」を優先してください。

色の数とビット数:2のn乗の関係

nビットで表せる色の数 = 2^n
色数Cに必要な最小ビット数 = 2^n ≧ C を満たす最小のn

256色=2^8なので8ビット、65,536色なら16ビット。ぴったり2の累乗でない場合は切り上げです。

例題:300色を表現するのに必要な最小ビット数は?

2^8=256では足りない。2^9=512なら足りる → 9ビット

数学的にはlog₂の切り上げですが、選択肢問題では、128、256、512、1,024…と2の累乗を順に確認すると判断しやすくなります。なお、色数はビット数に変換してから使うもので、画素数に色数を直接掛けるのは誤り。掛けるのはあくまで「1画素あたりのビット数」です。

動画:1フレーム × フレームレート × 時間

動画は静止画のパラパラ漫画。画像の計算に、フレームレート(1秒あたりの枚数)と時間の掛け算が加わります。

動画データ量[ビット] = 横 × 縦 × 1画素あたりビット数 × フレームレート × 時間
データ量[バイト] = 上記 ÷ 8

例題:640×480画素、24ビットカラー、30フレーム/秒、10秒の映像。各フレームを非圧縮で保存し、フレーム間圧縮は行わない(音声・コンテナの管理情報は含めず、1M=10^6とする)。データ量は何Mバイト?

640 × 480 × 24 × 30 × 10 = 2,211,840,000ビット
÷8 = 276,480,000バイト = 276.48Mバイト

「1枚 → 1秒 → 全時間」の順に積み上げるのがミス防止のコツです。ついでに、1秒分だけ掛ければ映像ビットレートになります:640×480×24×30 = 221.184Mビット/秒。たった10秒・SD画質でこのサイズ——動画はデータ量が大きくなりやすいため、保存や配信で圧縮が広く用いられることが、数値から確認できます。この計算も非圧縮の映像部分だけの理論値で、音声トラックやコンテナの管理情報は含んでいません。

「圧縮率」は問題文の定義を確認する

ここが特に定義を確認したい部分です。「圧縮率」という言葉は、資料や問題文によって意味が違うことがあります

  • 圧縮後が元のr倍:圧縮後サイズ = 元 × r。「圧縮後が元の20%」なら 100Mバイト × 0.2 = 20Mバイト
  • d%削減:圧縮後サイズ = 元 ×(1−d)。「80%削減」なら 100 ×(1−0.8)= 20Mバイト
  • 圧縮比R:1:「元データ量:圧縮後データ量=R:1」と定義されている場合、圧縮後サイズ = 元 ÷ R。「圧縮比5:1」なら 100 ÷ 5 = 20Mバイト。ただし「圧縮比」の向きも資料によって異なることがあるので、どちらが分子かを定義で確認します

この3つの例はどれも結果20Mバイトになるように揃えましたが、同じ「20%」でも「圧縮後が20%」と「20%削減(=80%残る)」では答えが逆転します。「圧縮率」という単語だけで式を決めず、「何%残るのか」「何%削るのか」「何対何なのか」を問題文で確認する。定義を文章で確認してから式を立てましょう。

可逆圧縮と非可逆圧縮

シラバス用語としてセットで押さえておくと、可逆圧縮は伸長すると元のデータへ完全に戻せる方式(代表例:ZIP、PNG、GIF)、非可逆圧縮は一部の情報を削減するため一般に完全には戻らない方式(代表例:JPEG、MP3、MPEG系の映像圧縮)。なおGIFは、画像データの圧縮自体は可逆ですが、元画像をGIFの色数(最大256色)へ変換する段階で情報が失われる場合があります。計算問題では、形式名からサイズを推測するのではなく、問題文で与えられた圧縮後割合・削減率・圧縮比・ビットレートを使います

ビットレートが与えられたら「ビットレート×時間」

圧縮済みの音声や動画では、標本や画素を掛ける代わりに、ビットレートが与えられるパターンがあります。

データ量[ビット] = ビットレート[ビット/秒] × 時間[秒](バイトならさらに÷8)

例題:128kビット/秒の音声を5分保存する(1k=1,000)。データ量は何Mバイト?

5分 = 300秒
128,000 × 300 = 38,400,000ビット
÷8 = 4,800,000バイト = 4.8Mバイト

データの種類を問わず、ビットレートが直接与えられている場合はビットレート×時間で求められます。圧縮音声や圧縮動画では、この形で条件が与えられることが多く、非圧縮PCMのように構成要素(標本化周波数×量子化ビット…)から積み上げる計算とは別ルートです。問題がどちらの情報をくれているかで使い分けてください。

容量から保存個数・保存時間を逆算する

保存可能個数 = 記憶容量 ÷ 1個あたりのデータ量(小数点以下切り捨て
保存可能時間 = 記憶容量[ビット] ÷ ビットレート[ビット/秒]
(記憶容量がバイトで与えられたら、8倍してビットに直すか、ビットレートをバイト/秒に直して単位をそろえる)
(非圧縮音声なら:記憶容量[ビット] ÷(標本化周波数×量子化ビット数×チャンネル数))

保存個数の切り捨ては理由込みで覚えてください。計算結果が9.7個になったとき、四捨五入して10個とすると、10個目が容量からはみ出します。完全に保存できるのは9個。なおこれらは、ファイルシステムの管理領域やクラスタ単位の割当などを無視した単純モデルです。

転送時間との複合問題(記事03との接続)

「計算したデータを回線で送ると何秒?」という複合問題の手順はこうです。

  1. 音声・画像・動画の元データ量を求める
  2. 圧縮条件があればデータ量に反映する
  3. 転送速度と同じ単位(ふつうビット)にそろえる
  4. 伝送効率があれば速度に反映して実効速度を作る
  5. データ量 ÷ 実効速度 = 転送時間

大事なのは役割分担です。圧縮は「送る量」を変え、伝送効率は「実効速度」を変える(実効速度=回線速度×伝送効率、転送時間=圧縮等を反映した送信データ量÷実効速度)。圧縮後のデータ量を求めたあとに同じ圧縮率を実効速度へも掛けたり、伝送効率をデータ量側へ重ねて適用したりしないでください。

解く前の判定フロー

  1. 音声・画像・動画のどれか
  2. 非圧縮データの構成要素から積み上げるのか、ビットレートが直接与えられているのか
  3. 音声なら:標本化周波数・量子化ビット数・チャンネル数・時間を確認
  4. 画像なら:横画素数・縦画素数・1画素あたりビット数を確認
  5. 動画なら:画像の条件に加えて、フレームレート・時間・音声の有無を確認
  6. 圧縮条件があれば:圧縮後割合・削減率・圧縮比の定義を確認
  7. 答えはビットかバイトか(÷8するかが決まる)
  8. k・M・G・Ki・Mi・Giの定義を確認
  9. 保存個数・時間・転送時間など、最終的に求める量と丸め方を確認(保存個数は切り捨て)

代表的なミスまとめ

ミス 出てくる誤答 対策
÷8を忘れる 正解の8倍の値 ビット→バイト換算を確認
答えがビットなのに8で割る 正解の1/8の値 求める単位を先に囲む
既にバイトなのにまた8で割る 正解の1/8の値 1要素あたりの単位を確認
ステレオの×2を忘れる 正解の半分の値 チャンネル数を式に書く
24ビットを24バイトで計算 8倍大きい値 24ビット=3バイト
画素数に色数を直接掛ける 必要以上に大きい値 色数は必要ビット数へ変換
300色を8ビットで表す 色数不足 2^n≧色数の最小n(切り上げ)
動画でフレームレートか秒数を落とす フレーム数か時間の分だけ小さい値 1枚→1秒→全時間の順に積む
非圧縮公式をJPEGやMP3に使う 実ファイルと大きく乖離 非圧縮か圧縮済みかを確認
圧縮後割合と削減率の混同 残る割合が逆の値 「何%残るか」を書き出す
圧縮と伝送効率の混同 量か速度がズレる 圧縮は量、効率は速度
kの定義を確認しない 接頭語の定義に応じて異なる値 問題文の1k定義を最優先
保存個数を四捨五入 容量オーバー 完全に保存できる数=切り捨て
途中で丸める 選択肢と微妙にズレる 丸めは最後の1回

仕上げに演習10問どうぞ

演習では音声(モノラル・ステレオ)、画像、動画、色数とビット数、保存できる枚数、圧縮率、さらに「計算したデータ量を回線で送ると何秒?」という転送時間との複合問題まで用意してあります。記事03とセットで解くと、複合問題にも対応しやすくなります。


今日のまとめ

  • 音声(非圧縮PCM)は「周波数×量子化ビット×チャンネル×秒」、画像(非圧縮)は「横×縦×1画素ビット」、動画(非圧縮)は「1フレーム×フレームレート×時間」。この3つの公式が出すのは非圧縮の理論値
  • ÷8するのは「バイトで答える」場合だけ。求める単位とk・M・Gの定義を先に確認
  • nビットで2^n通り。必要ビット数は2^n≧色数の最小n(300色なら9ビット)
  • 実ファイルはヘッダー・メタデータ・圧縮でサイズが変わる。圧縮済みは「ビットレート×時間」で求めることもある
  • 「圧縮率」は圧縮後割合・削減率・圧縮比のどれかを問題文で確認。「何%残るか」を書き出す
  • 保存個数は「容量÷1個分」を切り捨て。複合問題では圧縮は量に、伝送効率は速度に効かせる

次回は「計算量」。データ件数の増加と、処理時間の増え方を比較していきます。

参考資料

  • IPA「基本情報技術者試験(レベル2)シラバス Ver.9.2」
  • BIPM「The International System of Units (SI)」
  • IEC 80000-13「Quantities and units-Part 13: Information science and technology」

本記事の例題は、基本情報技術者試験の出題範囲及び標準的な音声・画像・動画のデータ表現を参考に、当サイトで独自に作成したものです。

関連する問題


コメント

タイトルとURLをコピーしました