今回はディスクメディアであるCDとDVDとBDの仕組みについて説明したいと思います。
CDとDVDとBDの仕組みを知るには先ずCDの仕組みを知るのが良いかと思います。基本的にはCDとDVDとBDも同じ仕組みでデータを記録し再生します。
データについてちょっとした基礎知識
パソコン内部でのデータは2進数で表せる為、デジタルデータは結局のところ0か1の集合体になります。つまり何らかの方法で0か1を表現できればデータを表現できることになります。
音楽でもデータでも、CD規格上では結局のところ同じデジタルデータなので0か1で表すことができます。
CD-ROMの構造
CD-ROMは読み取り面から見て
- 基盤 ポリカーボネート等
- 記録層(反射層)アルミニウム
- 保護層(レーベル面) ポリカーボネート等
の3層でできています。大きさは12cmか8cmで厚さは1.2mmです。
データは薄いアルミニウムの層に記録されています。
CD-ROMにはどうやってデータが記録されているか
CD-ROMには先ほど説明した記録層(アルミニウム層)に小さな凹み(読み取り面からみると凸)の列が刻まれています。この列をトラックと言います。そして凹みをピットと呼びます。また凹んでいない部分をランドと呼びます。
トラックは内側から外側に向かって渦巻状の一本の列となっています。CD-ROMではトラックの渦巻きの間隔が1.6μmになっています。
ピットの幅(=トラック幅)は0.5μmで、ピットの長さには種類があります。
一番短いピットで0.83μm。
そこから0.3μm刻みで3.56μmまでの9種類が存在します。またピットから次のピットまでの距離つまり、ランドの長さも同じく9種類あります。
これら9種類の長さのピット/ランドは、短い順から3T、4T、5T、6T、7T、8T、9T、10T、11Tと呼ばれます。
このようにCD-ROMのデータはトラックに刻まれた9種類の長さのピットとランドによって構成されています。
CD-ROMのデータ再生
データを取り出す場合は、トラックをレーザー光でなぞっていき反射光を読み取ることで再生します。
CD-ROMでは光の波長が780nmの赤色レーザー光が使われています。
さらにこのレーザー光をレンズで絞って光スポット(=焦点)として使うことで、しっかりとトラックに絞って光を当てることができ、安定的にデータを再生することができます。
ピットに光スポットが当たると反射が弱くなります。ランドでは光スポットはしっかり反射されます。
つまり「反射が弱い」、「反射が強い」という2つの状態を作り出すことができます。
CD-ROM上ではどのようにデータを表現している?
ピットとランドつまり「反射が弱い」、「反射が強い」がそのまま0と1に対応してくれていれば理解しやすいのですが、実はピットとランドはそのままでは0と1には対応していません。
これはレーザー光でピットまたはランドを読み取るときに、0や1が長く連続すると、トラック位置を見失ってしまう現象が起きてしまうためで、ピットとランドをそのまま0と1として読み取ることができないのです。
つまりCD-ROMではある程度の間隔で0と1(つまりピットとランド)が切り替わらないとデータを読み出すことができなくなってしまうのです。
しかしそんな理由があったからといってピットとランドをむやみに切り替えてしまうとそもそも正しいデータが記録できません。
図では一本のレーザーですが、本当は3本のレーザがトラックに照射されており、それぞれのレーザーのズレを確認しながら読み取りを行っています。
それでも長すぎるピットやランドがあるとトラック位置を見失う場合があります。
CD-ROMのデータ記録方式とは?
そこでCD-ROMではマークエッジ記録方式が採用されています。
これは「変化のあった部分を1、それ以外を0」とする方式です。レーザー光の反射で言えば、「反射に変化があった時に1、変化がない場合は0」と言うことになります。
この方式であればピットとランドがむやみに長くならなくて済みます。
CD-ROMはデータを変調して記録している
この方法でデータを表現するためにEFMという変調が使われています。Eight to Fourteen Modulationの略で、8bitを14bitに拡張する変調のことです。ちょっとむずかしいですね。
例えば00000000という8bitデータはEFMで、01001000100000という14bitデータで表せられます。(変換には変換表が存在しています)
簡単に言うと1と1の間に必ず0が2個以上かつ10個以下(CD-ROMの場合)入るようにbitを操作する変調方式です。
8bitデータでは0が連続(ピットが続く)します。データは連続していますので、次の8bitもすべて0続くという場合もありえるでしょう。そうすると0が16個並ぶことになります。もしかしたら次の8bitも0続きかもしれません。
しかしEFMでは多くても0が10個ごと(CD-ROMの場合)に1が適度に現れる為、0が連続しにくくなっている(ピットが連続しない)のが分かります。
先ほど紹介したピットの長さがどんなbitを表すかを見てみましょう。
3T 001
4T 0001
5T 00001
6T 000001
7T 0000001
8T 00000001
9T 000000001
10T 000000001
11T 0000000001
ピットからランド、ランドからピットに切り替わる時に1になりますので、一番後ろのビットが1になります。
たとえば00000100010001という14bitのデータは
6T 4T 4T
のように表すことが出来ます。(前後のbitの関係で必ずしもこの組み合わせにはならない可能性があります)
例では14bitを抜き出した時にちょうどキリの良いbitデータを例にしましたが、実際のCD-ROM上では14bitを表現するために3bitのマージンが挿入されます。そのため8bitデータは事実上17bitデータになります。
データを取り出す時には、この14bitデータを8bitデータに復調することで再生できます。
エラーに対しての対策
実はCD-ROMや音楽CDはデータを順番に記録しているわけではありません。
CD-ROMのトラックはフレームという小さな単位で管理されています。
データはリードソロモン符号という方法を用いて、記録位置が分散されています。つまりフレーム内はもともとの連続したデータではなくバラバラにデータが入っているということになります。
フレームのデータ部分は24byteで、そこにC1、C2と呼ばれるエラー訂正符号が各4byteずつ付加され、さらにコントロール用の情報(サブコード)1bitを付けた33byteが1フレームとして扱われます。
半角文字24文字分の情報ごとに9byte分の情報が付くといった感じですね。
フレーム単位ではC1がエラー訂正に使われ、2byteまでのエラーを修復することが可能です。ちょっとのエラーであれば修復が可能ということですね。
しかし例えば盤面に大きめ(長め)の傷がついた場合、連続的にエラーが起こることになります。これをバーストエラーと言い致命的なエラーになりえます。
データを分散させるのはこのバーストエラーを防ぐ意味合いがあります。分散させておけば本来の連続データとしては傷のつかない部分が出てくるはずで、データを読み出せる可能性が高まります。
もし傷が大きめな場合は、分散していたフレームを元の連続するデータに戻します。そうすると各フレームに受けていた傷は逆に分散されることになり、C2で修復できる可能性が高まります。
もちろん全面的に傷がついたらどうしようもない場合もありますが、少しでもデータを読み出せる可能性を大きくしているのです。
まとめ
よく使っていたCD-ROMも改めて調べてみると、意外と複雑で精緻な仕組みになっているのですね。
基本的には音楽CDも同じ仕組みで記録されていますし、DVDやBD(ブルーレイディスク)も大まかな仕組みは同じです。
データも単純に記録されているのではなく、変調が行われていることやアンチエラーの仕組みがしっかりと備わっているのが驚きです。
こういうことを知ると、ディスクをぞんざいにあつかってはいけないと反省してしまいます…。