スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

音楽CDの「エラー訂正」を再確認する

11/01/13初稿

 PC-Audioするには、まずは「ビットパーフェクト」なリッピングしたいものです。少なくともパーフェクトに行う方法をひとつは持っていて、パーフェクトだったのか否か認識できるようにはしたいですよね。
 そのためには、まず「そもそもCDのRippingにおける読み取りエラーってナンなのか」について整理しておく必要があるでしょう。
 でも、よく解らないんですよね。新旧の情報が錯綜してて…


■そもそもCD-DA(音楽CD)のエラーとは何か

・訂正と補間と補完と補正と
 まず、用語の意味と用法を整理しておきましょう。

  ・エラー訂正=エラーを認識して正しい値に修正すること。
  ・エラー補間=エラーを訂正しきれなかった時に「たぶんこんなカンジじゃない?」と、“補う”こと。
           正しい値に戻らないことを覚悟した方がいい。

という「訂正」と「補間」がごっちゃになってるように思います。辞書引いてみると、

  ・訂正・・・言葉や文章の誤っている部分を正しく直すこと
  ・補間(法)・・・ある変域内で、いくつかの変数値に対する関数値が知られているとき、
           同じ変域内の他の変数値に対する関数値を推定し、近似値を求める方法
  ・補正・・・足りないところを補い、あやまりを正すこと(補って正すこと。字義の通り)
  ・補完・・・補って完全なものにすること(字義の通り)

ということで、明確な違いがありますので誤用しないよう気を付けたいですね。
 CDの規格としては、「訂正」と「補間」が正しいようです。「補正」「補完」などは意識して使用を避けたいでところです。

・それは「CIRC」という規格
 CD-DAの「エラー訂正」動作は「CIRC(Cross Interleave ReadSolomon Code)」という規格に定められています。
 リッピングに関するCIRCのポイントを2点記します。

・ポイントその1
 CIRCに基づく読み出しはドライブ内のコントローラチップが処理しています。
 PC側ソフトでやってるワケではありません。

 「ドライブ内のコントローラが担っている」ということについては、元DVDドライブ開発者に確認しましたし、SONY製CXR3005R(古い)といったCDドライブコントローラICのdatasheetなど見ても解ると思います。
 まあ、元々PCじゃなくてAudio機器たる「CD Player」のために作った規格ですから当たり前ではありますが。

・ポイントその2
 CIRCでは、パリティを付けたり分散したりしてデータを記録しています。
 “冗長度なくリニアに記録された無加工PCMデータ”に対してエラー訂正をやってるワケではありません。

 CDプレーヤやPCドライブは「CIRC規格に準じて」記録されたデジタルデータに対して「規格に準じたエラー訂正」を行いながら読み出しているのです。記録時点から考慮されているという点において、リッピングソフトでの“いわゆるエラー訂正”とは決定的に違うということです。

・エラーの種類と問題になるエラー
 さて、それではそのエラー(CIRCの動作)について見ていきましょう。訂正と補間の違いは何でしょう?

 そもそも、CD-DAで発生するエラーの訂正には2段階あります。

・C1段階
 盤面からの読み出しにおいて、エラーは必ず発生するもの(*)としてCIRCは想定されており、もともと付加されているパリティ情報によって「訂正」されます。

 C1段階(Correction第1段階)で訂正できなかったエラーをC1エラーと呼ぶのが普通みたいです。

 *:焼いたCD-RよりプレスCDの方がエラー発生は酷いという話もありますね。

・C2段階
 エラーはさらにより多くの情報から「訂正」が試みられます。

 C2段階(Correction第2段階)でも訂正できなかったエラーをC2エラーと呼ぶのが普通みたいです。

 そして、

 「訂正」できなかったエラー=C2エラーは周辺データから類推「補間」されます。

 C2エラーが発生して初めて「補間」が行われるワケですね。

 Ripping中、エラーは発生するものなのです。「音楽CD(CIRC)という規格にとってエラー発生は折り込み済み」なのです(安価なプレスメディアを使えるようにするためです)。
 ですので、Ripping品質においては「“訂正”発生」は問題ではなく、「“補間”発生」こそ問題なのです。
 盤面からの読み出しエラーとC1エラーはいくら発生しても構いませんが(極論ですが)、C2エラーの補間はハズレを覚悟する必要があり、つまり“リッピング時のデータ劣化”となりますので。

・リッパーは何をしているのか
 「補間によるハズレの可能性」はどうしようもないハズなのですが、「リッパーにおけるエラー訂正」は、それをどうにかしようとしているように見えます。
 といってもCIRCは原則としてドライブハードの処理であり、かつCIRCを外部から制御する概念は原則ありません。ので、できるかぎりエラーなくRippinngするために“ソフト側にできること”はかなり限られているハズです。何をしているのでしょう?

 ざっくり言うと、「ドライブ内での補間発生を検出し、検出したら補間が発生しないまで“読み直し”する」ものです。あくまでも読み直すだけです。独自の信号処理的エラー訂正などは行っていません。
 詳細はリッパーのエラー訂正記事で考察してみましたのでよろしければどうぞ。
 なお、PioneerのPureReadはPC側ソフト処理ではありません。といってCIRC規格以外のことをやっているワケではありません。ドライブのファームウェアがピックアップや光源制御なども行うリトライリードするものです。

・「脆弱」なんて言うな
 ところで、「CD-DAのエラー訂正機能は脆弱なので~」といった記述などを見かけることがありますが、違和感あるんですよね。
 「脆弱」という理解の元を辿ると、音楽CD(CD-DA)の後に策定されたCD-ROMフォーマットのエラー訂正性能がCD-DAよりも高いことから、逆にCD-DAは性能が低い=「脆弱」という認識に変化していったのではないかと思われます。

 CD-ROMとCD-DAでエラー訂正性能が異なるのは当たり前です。CD-ROMでは1bitたりともミスは許されませんが(CD-ROMから営業Excelファイルを読み込む時に売価がひと桁違ったりしたら大変でしょ?)、CD-DAはストリーミングデータ再生の中でちょっとくらいエラーしても実害はないのですから。
 エラー訂正能力も異なりますが、それでもエラーが残った場合の扱いが異なる点もポイントです。CD-DA(音楽CD)ではエラーを類推補間して済ませますが、CD-ROM(データCD)ではエラーはエラーとして扱います(フツウは読み出し停止)。

 といっても、CIRCのエラー訂正能力も音楽CDを読み出すには必要十分に強力なので、「脆弱」というのは不正確(というか規格策定に携わった技術者に失礼)だと思っています。
 実際、よほど酷いディスクじゃない限り補間発生しませんから、傷ついてもいないのにエラー多発する場合は「偏心」「プレス不良」「材料や工程自体が粗悪」といった“規格外の不良品”である可能性が高いのでは。エラーがあるCD-ROMは不良品として扱われますが、CD-DAは本来CDプレーヤで再生するものでエラーがあっても再生可能にしてあるため、そういうディスクも流通してしまっているのでしょう。
 そういうディスクでエラー発生するからと言ってCIRCが脆弱と言うのは、リッピングありきで考えている故、1980年代初頭の技術であることを忘れた故の間違いです。CD-DA規格策定当時Rippingの精度なんて考慮していませんし、高度な信号処理できる安価なシリコンチップなんてなかったのですから。


 なお、あまりweb上に情報のないCDのフレーム(CD-ROMだとブロック)構造ですが、以下リンク、オレンジブックの規格推進団体フォーラムの「CDファミリーの系譜(*)」が参考になると思います。

*:http://www.cds21solutions.org/osj/j/family/index.html

 CD-ROMにはCD-DAにはない「EDC/ECC」が追加されており、
   ・EDC・・・Error Detection Code
   ・ECC・・・Error Correction Code
このふたつの合体技で強力なエラー訂正を行っているそうです。
 もちろんCD-DAの読み取りではEDC/ECCは無関係です。だってそのためのデータが入ってないんですから(笑)。


■参考リンク:藤本健のDigital Audio Labolatory

・第1回:迷信だらけのデジタルオーディオ 【CDにまつわる噂を徹底的に解体!】
 ~ 第1回 そもそもオーディオCDって何だ? ~
 http://av.watch.impress.co.jp/docs/20010312/dal01.htm

・第2回:迷信だらけのデジタルオーディオ
 ~ 音楽CDリッピングが100%正確でない理由 ~
 http://av.watch.impress.co.jp/docs/20010319/dal02.htm

・第4回:迷信だらけのデジタルオーディオ
 ~ CDプレーヤーの読み込みの仕組み ~
 http://av.watch.impress.co.jp/docs/20010402/dal04.htm




 さて、基本的には以上でよいと思っていますが、C1やC2の意味に関する混乱もあるようですので、以下、それについてERIなりに考察しておこうと思います。


■エラーの定義が2種類になったのは何故か

 実はC1エラーとかC2エラーとかCUエラーって「俗称」みたいです。明確な定義がないためにその理解には2種類あるようですね。
 本稿上記の定義より1段階前にズラして、

  ・C1エラー・・・C1段階に入力されるエラー
  ・C2エラー・・・C2段階に入力されるエラー
  ・CUエラー・・・C2段階から出力される(つまり最後まで訂正できなかった)エラー

とする説明も見かけますが、どうも少数派のようです。
 便宜的に、訂正不可能なエラーの名称を象徴として、こちらを「CU説」、本稿前半で説明したものを「C2説」と呼称することにします。
 「エラー」をC1やC2のInputと見るかOutputと見るか、というのが原則的違いでしょうか。

 上述の通りC1やC2のCは“Correction(訂正)”のイニシャルと推定していますので、C1エラーとは「Correction1 Error(訂正第一段階におけるエラー)」という意味に取るのが一番スッキリしていると思っています。
 ですが、そのC2説ではC1段階にInputされるエラーの名称は“ない”ことになります。それもキモチワルイから(?)でしょうか、さらに「C1エラー=C1段階へのInput、C2エラー=C2段階からのOutput」という理解も存在するようですね。今度はC1段階のOutput=C2段階へのInputの名称がなくなっちゃいますが(苦笑)。
 全体を一段前にズラしてC1段階へのInputの名称は得たものの、逆にC2段階からのOutputの名称がなくなってしまうので「CUエラー」という名称を追加したのがCU説、ということすね。
 しかし、「Correction処理して初めてエラーしてることが判る」のではないかと思いますので、「C1段階へのInput=盤面から読み取った時点のデータにはエラーの概念はない」でいいのではないかと。

 ということで、C2説でいいと思っていますが、どうしてCU説ができたのでしょう。C2説でいいのかの確認のためにも、ひとつERI的仮説を考えてみたいと思います。
 キーワードは「セキュアリッパー」として知られる(?)Plextor製「PlexTools Professional」じゃないかと推察しています。

 PlexToolsの情報に中にもC1エラー/C2エラー/CUエラーの説明は複数ありますので、それらをチェックしてみます。
 念のためですが、あくまでも「音楽CDの読み取りにおけるエラー名称の説明」としてどうかを見るものです。

・Rippinng機能「DAE」ヘルプの記述
 まず、同ソフトのリッピング機能のヘルプを見てみます。

DAEヘルプ

 「C2 Error Flag」に関する記述から推察される「C2エラー」の意味からして、C2説と思います。「C2段階でエラーしたのがC2エラー=不良セクタは訂正できない」と読めますので。「CUエラー」という用語も出てきていませんし。

  判定:DAEヘルプはC2説

・Q-Check機能マニュアルの記述
 次に、Q-Check機能につき、以下URLのマニュアルP.79~にある「C1/C2/CU」に関する記述を見てみましょう。
http://plextor.jp/pc/download/software/plextool_doc.pdf
 以下抜粋。
Q-Check01.gif
Q-Check02.gif
Q-Check03.gif

 なお、Q-Check画面表示は以下の通り「C1」「C2」「CU」であって「C1 Error」といった記述にはなっていません。

C1C2CU.gif

 「Q-Check機能で用いられる“C1”という単語」と「“C1エラー”という単語」は同義ではない、という点にまず注意が必要でしょう。データCDの場合について言及していることからも、「C1エラー/C2エラー」ではなく、「当ソフトのC1/C2 Testの結果」を示しているような気がします。そもそも、Q-Check機能は「ディスク品質」チェックを目的としているため、訂正成功失敗に関わらず“エラー発生数”自体に注目しているとお見受けしますので。

 さて、それはそうと、同じマニュアルなのに前半と後半で「C2」の意味の説明が矛盾するんですけど…
 前半には「Q-Check C1/C2 Testではそれらのエラー訂正を行った合計を表示し」とありますので、

  ・C1・・・C1でエラー訂正を行った合計を表示
  ・C2・・・C2でエラー訂正を行った合計を表示

ととれますけど、後半は

  ・C1・・・BLER=E11+E21+E31(つまりC1でエラー訂正を行った数:訂正成功も失敗も合計)
  ・C2・・・E22(C2でエラー訂正を行ったうち成功したものの“一部”) だってE12がありませんから…
       エラー訂正を行った合計とすると、E32もないし。
  ・CU・・・E32(C2で訂正できなかったもの)

 どっちでしょ? Q-Check機能の意図からすると、それぞれの訂正段階へのInput数を示すという前半の方が納得力ありますが… だんだんこんがらかって来ました(苦笑)。
 ただ、本稿の目的からするとここの詳細を考えてもあまり意味はありません。「C2」として記されていますので、「CIRCにおけるC2エラーのことではなくQ-Check機能としてのC2」の説明と理解し、ここでは無視することにします。

 後半の説明でそのまんま「C2でもエラー訂正できない場合はCUエラーとなってしまいます」と記されているので、

  判定:Q-Checkマニュアルの記述はCU説

でよろしいかと思います。

・Q-Check機能ヘルプの記述
 「C1/C2/CU」の意味として次のように解説されています。マニュアルからの抜粋版みたいですね。
Q-Check.gif

 しかし、抜粋版ゆえに「C1エラー」「C2エラー」「CUエラー」といった用語が唐突に使われており、「C1/C2/CU」との関係がちょっと紛らわしくなっています。
 いずれにしても、マニュアルと同じく

  判定:Q-Check機能ヘルプはCU説

でいいでしょう。こちらにオリジナリティはないと思われます。

・PlexToolsサイトのFAQの記述
 「C1/C2/CUエラー」について次のように解説されています。

C1/C2/CUエラーとは?
CDのエラー訂正は2段階で行なわれ、第1段階(C1デコーダ)で訂正された、または訂正できなかったフレーム数がC1エラーとして報告されます。(ほとんどのランダムエラーは、この時点で訂正されます)
このC1デコーダで訂正ができなかった場合、第2段階であるC2デコーダで訂正され、その訂正されたフレーム数がC2エラーとして報告されます。このC2デコーダでも訂正できなかった場合にはCU(Uncorrectable Error)となります。

出典:http://plextor.jp/pc/support/faq_soft_ptp.html

 箇条書きにすると

・C1エラー・・・C1デコーダで訂正されたフレーム数 または できなかったフレーム数
・C2エラー・・・C2デコーダで訂正されたフレーム数
・CUエラー・・・最後まで訂正できなかった分(おそらくフレーム数)

として報告される(表示される)ということですね?

 つまりC1エラー数は「C1デコーダで処理した数」なのでC1デコーダに入力されたエラー数ってことですね。C1“デコードエラー”ではない、と(“または”の意味がちょっとアヤシイですけれど)。
 一方、C2エラーの方はなんと「C2デコーダで訂正された数」であって「C2デコーダで訂正できなかった=“エラー”の数」とは真逆の値ってことですね。

 う~む… こうなるとワケ判りませんね(*)。だってC2エラーの意味を明確に「C2で訂正された数」と言ってるワケですから、C2で処理した(入力された)総数でもないしC2でエラーした数でもないってことですよね。
 Q-Checkマニュアルに「C2=E22(2バイトのC2エラーを訂正した合計/秒)」という“似た記述”がありますが、上述の通りそれは「C2」についてであって「C2エラー」の意味説明ではないと思います。よって、当FAQの記述はCU説とも区別しておきたいです。
 CX説とでも呼びましょうか(苦笑)。

*:繰り返しますが、あくまでも「音楽CD読み取りエラー名称の説明」の観点で、です。

  判定:FAQはCX説(新説)

・ああ勘違い?
 本項17/01/21改訂:主旨説明を見直しました(コメントありがとうございました)。

 以上より、PlexToolsのQ-Check機能のマニュアル(ヘルプ)がCU説の出所ではないかと思われます。

 「CU説誕生考察」の結論はそれでいいと思いますが、一応、CX説誕生理由も考えてみます。

 以上を見てみますと、次のPlexTools関連情報にある用語説明は基本的に同等であることが解ります(「Ripping機能DAEのヘルプ」はC2説なので異なる)。

 1.Q-Check機能のマニュアルおよびヘルプ画面による「C1/C2/CU」 ・・・ソフト画面の用語と推定される
 2.webFAQによる「C1エラー/C2エラー/CUエラー」 ・・・“エラー”が付いてるのでCIRCエラーの意味と取れる

 つまり、ここで当のPlextorさん自身が勘違いしちゃってるのではないでしょうか。
 「Q-Check機能マニュアル」を抜粋した「ヘルプ」の紛らわしい記述に自分で翻弄され、1.にあるQ-Check画面表示の「C1/C2/CU(CIRCではなくQ-Checkとして)の意味」の記述を、「C1エラー/C2エラー/CUエラー(CIRCとして)の意味」として2.に転用しちゃった(混用しちゃった)ように見えます。
 CX説はこのように誕生したのではないかと推察します。
 なので、CX説は気にしないでいいでしょう。


■C2説再確認

 本項17/01/21追記。

・Plextor技術者の見解

藤本:ということは、音がいいという評判のプレクスターさんも、これまで書き込みという点においては、音に対して特別な基準とか規定を作っていたわけではないんですね?

浅野:社内の製造における段階では、ジッターとかオーディオキャプチャについては非常に厳しい規定を設けてきました。他社がどうしているかはわかりませんが、オレンジブックの基準内に入るというだけでなく、それ超える厳しいものとなっています。それが結果として音がいいということになったんじゃないかなと思っています。

藤本:とはいえ、各社さんともエラーが起こらないドライブを作るというのは大前提になっていますよね。では、最初にもおしゃっていたように、データは変わらないのに音が変わってしまうとういのはなぜなんでしょう?

浅野:C1エラー、C2エラーというけど、CDにおいてはエラーは出て当たり前です。いずれの場合もC1エラー訂正、C2エラー訂正が行われてデータ的には正しいものになるのです。もしC2エラー訂正でだめだったら、はじめてCUという形でデータエラーとなります。

植松:まあ、C1ですべて訂正できるべきだというのが、一般的な考え方になっています。でもC2エラーが出たらいけないかというと決してそうではない。C2ポインタで修正できれば基本的にOKであり、データ上問題はないんです。

出典:http://av.watch.impress.co.jp/docs/20010611/dal14.htm

 明確には言い切れませんが、「もしC2エラー訂正でだめだったら、はじめてCUという形でデータエラー」と仰っているので、CU説と言っていいでしょう。

・まとめ
 「Rippingにおけるエラーの意味として本当にC2説でいいか」確認のため、CU説の信憑性を(Plextorさんが唱えたと仮定して)改めて考えてみます。

・世の中のCU説はどうもPlexToolsの「Q-Check機能のマニュアル(ヘルプ)」から発生したような気がします。

・実際、Plextorの設計者さんは「音楽CDの読み出し時における説明」としてCU説に立っているようです(「オレンジブック」とか「音がいい」という文言がありますので)。

・が、同ソフトの中でも「DAE機能のヘルプ」はC2説です。本稿の主旨「音楽CDのエラーの説明として」CU説の信憑性はどうか考えると、ひとつのソフトの説明の中にC2説もあることがポイントになります。

・また、「Q-Check機能のマニュアルやヘルプ」のC1/C2/CUは音楽CD読み取りエラー(C1エラー/C2エラー/CUエラー)のことを説明していないのではないかと思いますが、webFAQでは混用されているようです。
 ちなみに、もしかするとCU説やCX説は、“それ単独”で“RippingにおけるC1エラー/C2エラー(/CUエラー)の説明としてではない(例えばディスク品質としての説明)”なら筋が通るように解釈できるかもしれませんが、本稿はあくまでも「RippingにおけるC1エラー/C2エラー(/CUエラー)の意味」について考えているので、そうであってもあまり意味は持ちません。

PlexToolsは欧州Plextorが開発したものらしいですから、マニュアルやへルプは英文から和訳したものではないかと思われます。ローカライズ過程における“変質”もあるかもしれません。Recoverを訂正と訳してる実例もありますし。

・CDの開発に携わったという中島平太郎氏著「図解コンパクトディスク読本」のCIRC説明ページには「CU」なんて出てきません。




 これら状況を見ると、「音楽CD読み出しエラーの説明としてのCU説」はちょっと説得力ないですね(苦笑)。あくまでも個人的には、ですが。
 ということで、本BlogではC2説に基づくことにしています。


メインメニューへ

テーマ : オーディオ
ジャンル : 趣味・実用

ERIへようこそ

Author:らかせ
 「最新記事」または「メインメニュー」からどうぞ

・ファイルへの直接リンク以外はリンクフリー(連絡不要)です
・一応、拍手にコメント(非公開)付けられるようにしてあります
・DB的に利用しており、過去記事もガシガシ書き換えています。特に「最新記事」は初稿から一週間くらいは直してることが多く、大幅に変わっちゃうことも。ご了承ください
・ということもありますし、記すまでもないですが無断転載(ファイル含む)はご遠慮ください
・引用の考え方については「007:諸事」をご参照ください
・アフィリエイトはAmazonのみです
・ハイパーリンクは当Blog記事のみです(054:節電記事のみ例外)

最新記事
カテゴリ
検索フォーム
FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。