CDは無圧縮の音声データが、そのまま記録されているわけではありません。1回のトレースで可能な限り正確なデータを読むための工夫がされています。
■ CDのデータ構成
オーディオCDのデータ構造は以下のようになっています。

■ リードイン、リードアウト
CDは内側から渦巻き状に読まれていきます。リードインという部分からスタートします。ここにはCDの目次となる情報が記録されています。各曲の時間情報やトータルの再生時間などです。その後には曲データの記録領域です。全曲再生すると、リードアウトというエリアに入って再生を終了します。リードアウトには90秒の無音が記録されているだけで、特別な情報が記録されているわけではありません。
渦巻き状のトラックの長さは、線速度一定なので計算で簡単に求められます。線速度を1.25m/secとした場合、最大で74分収録できるので、この場合5550mとなります。直径120mmの円盤に5km以上のトラックがあるわけです。
曲のデータの前後にはギャップという情報があり、これは無音の時間となります。ギャップ時間が0とあれば音が途切れることなく次の曲が始まります。曲間を無くしたいライブアルバムなどでは重宝する機能です。
曲データはセクターという単位で管理されています。セクターは1/75秒分のデータなので、1秒間再生するには75個のセクターが必要になります。セクターの中には98個のEFMフレームがあります。
■ EFM(Eight to Fourteen Modulation)
EFMフレームの内部は複雑です。同期信号の24ビットは常にフレームの先頭にあり、続いてサブコードがあり、CD-DAではP、Qチャンネルが使われます。トラック番号、時間等の情報が入っています。その後に音声データが誤り訂正用データとセットで入っています。また、それぞれのデータの間には3ビット分のマージビットが入っています。これは1が連続したり、0が孤立しないための仕掛けです。

下図のようにCDのピット長さはT3~T11の9種類が決められています。0が続くのは2~10個までと制限されていて、1が連続することは許されません。このルールを実現するためにEFMがあります。名前の通り8ビットを14ビットに変換する仕組みです。CDの音声信号は16ビットですが、半分の8ビットに分け、その8ビットを14ビットに変換しているわけです。

変換は下の表によって変換されています。8ビットなので0から255までの変換リストとなっています。EFMフレームは全体として588ビットの大きさを持っていますが、音声信号としては、6サンプルx2=12サンプル分しかありません。
10進 | 2進(8ビット) | EFM(14ビット) |
0 | 00000000 | 01001000100000 |
1 | 00000001 | 10000100000000 |
2 | 00000010 | 10010000100000 |
3 | 00000011 | 10001000100000 |
4 | 00000100 | 01000100000000 |
5 | 00000101 | 00000100010000 |
6 | 00000110 | 00010000100000 |
7 | 00000111 | 00100100000000 |
8 | 00001000 | 01001001000000 |
・ | ・ | ・ |
・ | ・ | ・ |
255 | 11111111 | 00100000010010 |
■ マージビット
仮に「255」と「1」をEFMで14ビットに変換すると「00100000010010」と「10000100000000」になります。これをそのまま接続すると
00100000010010 10000100000000
となり、つなぎ目の0が1個だけ孤立するので、4種類のマージビットのどれかを使って0が孤立しないようにします。ここで使えるマージビットは「000」となります。
0010000001001 000 010000100000000
マージビットにはデータとしての意味はありませんが、ルールを実現するためには必要不可欠な存在です。
■ 誤り訂正 CIRS (Cross-Interleaved Reed Solomon)
誤り訂正とは、不正確に読んだビットを修復して、本来の信号に復元する仕組みです。実際光学的な1回のトレースだけで、正確にデータを読むことは難しく、1秒間に10数ビットのエラーが起きるため、誤り訂正は必須でした。CDに採用されているCIRSは、クロスインターリーブとリードソロモンという2つの誤り訂正方式を組み合わせたものとなります。とても信頼性の高い誤り訂正で、これによりCD1枚において、エラーは1ビット程度まで下げられます。ディスクの状態がよければ、エラーは、ほぼ無くなると考えてもよいかと思います。
■ クロスインターリーブ
クロスインターリーブは、長いエラーに対して効果的な手法となります。クロスインターリーブはデータを分散配置することによって、汚れや傷などによる長いエラーを回避しています。つまりデータは時間軸で並んでいるわけではなく、分散してCDに記録されています。読取後に本来の時間軸に再構成することで音信号に復元しています。
■ リードソロモン
リードソロモンは、高頻度に発生する短いエラーに対して有効な手法となります。光学的な読取において頻繁に発生するエラーです。読取できない消失データ、もしくは読み間違えたデータを周辺データと組み合わせることで、復元する複数の仕組みを持っています。ひとつはデータの総和を求めておけば、データの一部が失われても総和から算出することができます。他には連立式を扱うことで、強力に復元することができます。簡単に言ってしまえば読み取ったデータの答え合わせのような仕組みです。
■ CDの音データの割合
以上が、CDに記録されたデータ構造の概要となります。CDの音データをフレームだけ見ると、総ビット数588ビット中、12サンプル分しかありません。最終的に変換されたデータは16ビットx12サンプル=192ビットとなります。この値で比較してしまうと音データはフレーム全体の33%程度しかないことになります。もしくはEFMで14ビットとして計算すると57%が音データとなります。さらにマージビットも入れると、70%ほどが音データになります。残りの30%は主に復元するためのデータとなります。こう見ると音データ以外の要素が意外と多く、容量の無駄づかいのようにも見えますが、正確なデータに復元するには必要不可欠な要素なのです。
コラム「sound&person」は、皆様からの投稿によって成り立っています。
投稿についての詳細はこちら