リッパーの「エラー訂正」とは何か(iTunesがエラー訂正しているのか)

11/01/01初稿

 CDから正確にWAVファイルをリッピング(Ripping)するにはそれができるソフト(いわゆるセキュアリッパー)を使うべきであると言うハナシがあります。「Exact Audio Copy(以下EAC)」や「PlexTools Professional」あたりが代表的なところでしょうか。
 それらでは「C2エラー発生」をトリガにしていろいろ動いているようです。
 しかし、C2エラーは「訂正不可能」なエラーのハズなので、それが発生しちゃった状態で「リッピングソフトのできること」はかなり限られていると思うのですが、実際、どんな機能でどんな動きをしているのでしょうか。「セキュアリッパー」を使わないと「ビットパーフェクト」なWAVファイルを得ることはできないのでしょうか。

 その観点で、上記ふたつのソフトを見ていきたいと思います。


■前書き

 両ソフトとも、いわゆるCUエラー(Uncorrectable Error)ではなくC2エラー発生をトリガにしていると説明しています。
 訂正可能なものは訂正すればいいですから、それをトリガにしてリカバリ動作するのは無意味です。ので、やはりドライブが出す「C2エラー情報」とは訂正不可能なもの(*)なのではないかと思います。

*:CUエラーと呼ばれることもあるが、本BlogはC2エラー=訂正不可エラー=補間対象派です。

 なお、当Blogで特記なく「エラー訂正」「補間」と記した場合、“CIRCによる”C1/C2エラー訂正および補間のことを指すことにしています。
 「訂正」は正しい値に戻る動作ですが、「補間」はその保証はない動作として記述しています。また、「CIRC」はドライブ側の機能であってPC側ソフト(Ripper)の機能ではありません。
 詳しくはそもそも音楽CDのエラー訂正とは何かを考えた記事をご参照ください。

 ちなみに、「エラー訂正」にはビットエラー以外にフレームズレ問題も絡むと思いますが、本稿ではC1/C2エラーに関する考察に限定します。前者がいわゆる「Read Error」、後者がいわゆる「Sync Error」かなぁとは思ってますが…


■PlexTools Professionalの場合

 まず、ソフト本体には「DAEエラーリカバリーの設定について」というタイトルのヘルプがあり、以下のような機能説明になっています。

DAEヘルプ

 次に、Plextorさんのwebサイト(*)にある説明文(11/01/01現在)を以下抜粋します。

*:http://www.skcj.co.jp/discon/plextool/ptp_06.html

音楽CDからオーディオデータを読み取る場合、ディスクの傷により、エラーが発生する場合ばあります。その対処方法として4つのモードを用意しました。

Report Errors only (no recovery action)
エラーの報告だけを行い、エラーの訂正は行いません。

Reduce the speed upon error
エラーが確認され場合は読み取り速度を落として読み込みます。

Read again upon error
エラーが確認された場合は リトライで指定された回数だけ読み込みを繰り返します。速度ダウンを許可が有効になっている場合、さらに低速で再読み込みを行います。

Recover the best sector (least errors)
最もエラーの少ないセクタを選択する。エラーが確認された場合は指定回数だけ読み込み の少なかったセクタを繰り返し、それでもエラーが残る場合は最もエラーを選択して読み込みます。速度ダウンを許可が有効になっている場合、さらに低速で再読み込みを行います。

注:日本語ヘンですね(笑)。ヘルプの文章から“エラー訂正(補間かな?)”してみます。
「最もエラーの少ないセクタを選択する。エラーが確認された場合は指定回数だけ読み込みを繰り返し、それでもエラーが残る場合は最もエラーの少なかったセクタを選択して読み込みます。速度ダウンを許可が有効になっている場合、さらに低速で再読み込みを行います」

Recover the best bytes (least errors) per sector
セクタ毎バイト単位でエラー訂正を行います。エラー訂正が確認された場合は指定された回数だけ読み込みを繰り返し、それでもエラーが残る場合は最もエラーの少なかったバイトを選択して読み込みます。速度ダウンを許可が有効になっている場合、さらに低速で再読み込みを行います。



 実際のソフトの説明とwebサイトの説明は文章が異なりますが、概ね同じことを言っているようです。

 まず最初に、「C2 Error Flag」が発生したら訂正はできないって宣言してるように読めます(やっぱりC2エラーは訂正不可=補間対象のようです)。
 効能として「エラーが無い」じゃなくて「最もエラーの少ない」とも仰ってることからも、訂正できないと理解してよさそうです。

 最後のふたつはつまり「何回か読んだ結果一番よさげなセクターまたはバイトを選択する」ということですよね。つまりエラーは発生したままであり「訂正」できるという意味には取れません。

 さて、Plextools Professionalは欧州Plextorが開発したソフトらしいですね。とすると、上記の各モードの名称は原文のままの可能性が高いかと思います(本文はなんとも「和訳」っぽいし(苦笑))。
 モード名には「Correction=訂正」は使われていません。「Recover」ですね。それを踏まえて先入観なく説明を読んでみると、「エラー訂正している」とは読めないと思います。「Recover」を「訂正」としたヘルプの訳はちょっとマズイような気がします。

 以上より、C2エラーが発生したことを検出した時のリカバリ方法(エラー発生なく読めないか何回かトライするとか)がいくつか選択できるのがこのツールの機能ではないでしょうか。ヘルプの最初に書いてある通りですね(苦笑)。


■EACの場合

 非常に多機能なソフトですが、CD焼きなどは考えず、PCで再生することを目的にWAVファイルをRippingすることに関しては、公式サイト(*)を読みますと、以下の機能を持つ「セキュアモード」が特長になると思います。

*:http://www.exactaudiocopy.de/en/index.php/overview/basic-technology/extraction-technology/

・基本的に2度読み

・拡張エラー情報に基づき、エラー検出したら最大82回読み直し(16回リトライを最大5セットで80回、デフォルトで2回読んでるのを加えて82回だと推定)

 つまり、何度も何度も粘り強く読む(ことをドライブに指令できる・読み方を設定できる)のがミソだと思います。

 さらに、解説に次のような一文があります。

One really fast mode (nearly burst mode speed) is for drives with C2 error pointer support, accurate stream and are non-caching.

 ざっくり訳しますと、

 そのひとつは、「C2エラーポインタサポート」「正確なストリーム(Accurate Stream)」と「非キャッシュ」のドライブによって得られるマジ速いモード(ほぼバーストモードと同等の速度)である。

 つまり、みっつの条件を備えたドライブなら繰り返し読みはしない(エラー発生してないことが判るので)ってことでしょう。逆に言うと、エラー発生が判らない(または信用しない)場合は、2度読みによってエラー発生の有無を確認しているということです。
 「非キャッシュ」という条件は、リトライリードする際にキャッシュから読んでいたのでは無意味ですので、「リードキャッシュがないこと」という意味だと思います。キャッシュをフラッシュするためにダミーリードとかしてたら遅くなっちゃいますし。

 また、FAQの方には次のような記事が。

What is C2?
On all CD-ROM media are at least two levels of error correction, called C1 and C2. If both fail, the output is probably not correct anymore. Most drives are not able to report if audio reads failed or not, so each block had to be read twice and be compared to make sure that everything is fine. But some newer drives are able to report if C1/C2 failed on specific samples on a read, making it possible to read only once and see if a read error occured. But there is still a problem, as some drives do not report these errors correctly, so you should test it thoroughly before trusting the results.


 「C1とC2というエラー訂正レベルがあるけど、両方やって訂正できなかった場合はもうダメ」と書かれています。Plextorと同じですね。さらに「ほとんどのドライブはエラー発生をレポートしてくんない」「だから2回読んで比較することで正確さを期していた」「しかし新しいドライブではC1/C2エラーをレポートしてくれるようになったので1度読みが可能になった」「まだ問題あるけどさ」という内容かと思います。
 エラー情報が取得できれば速度はバーストモードとほぼ同等、という先の記述とも一致しますね。

 ちなみに、EACの優秀な機能の中で、公式webサイトを中心に調べて「単純に楽曲データとしてビットエラーのないWAVファイル得る」ことを目的とするならあまり関係ないだろうと判断した機能は以下の通りです。

・ギャップ技術・・・トラック間無音部を抽出して前後どちらのトラックにくっつけるか無視するか選べる。

・トラック同期技術・・・「Accurate Stream」機能を持たないドライブではトラック間に無音部分がない場合に
            問題が起こる可能性があるのでそれを同期させる(同期の意味はよく判りません…)。
             Accurate Stream対応ドライブなら無関係と判断(Accurate Streamの意味は
            よく判りません…)。

・オフセット技術・・・CDメディアとドライブの問題…セルCDと完全同一なCD-Rを作る時の課題であって、
            ファイル抽出とは基本的には関係ないと判断。
            17/04/18追記:上記はメイン機能じゃないですね。
            セキュアリッピングで比較に用いるCRC値生成のためにはオフセット値統一が必要です。

 13/12/17追記:ギャップやオフセットに関してはよろしければこちらの記事をどうぞ。


■セキュアリッパーの本質

 両者とも、C1やC2エラーに関する「CIRC規格で行う訂正」自体をソフトウェアで強化しているワケではありません(ドライブ側の役目なので当たり前ですが)。
 上記で見てきた通り、開発者さんの説明を読み込むと、セキュアであることの本質はC2エラー発生が判ったらいろんなやり方で何回もリトライリードすることでエラー発生なく(補間発生なく)読もうとする機能だと理解できます。複数回読んだうち一番多く得られた値を採用する、なんてこともしているようです。

 ミソは「C2エラー発生をどうやって知るか」だったんです。

 どうもC2エラーレポートはドライブによって実装が不確からしく、汎用リッパーでは「C2エラーレポートを信頼するモード」以外に、「信用せず、2度読みコンペアすることでエラー発生の有無を確認するモード」の2種があるようです。C2エラーが発生していたら繰り返し読んだ結果(=補間結果)はおそらく異なるだろうという理屈に基づくものですが、補間結果が同じになる可能性もあるので、パーフェクトとは言えません(*)。
 だからこそ、EACではC2エラー発生が判るなら(ドライブの情報を信用できるなら)2度読みしないし、発生しなければリトライもないので速度はバーストモードとほぼ同等、と言っているのだと思います。

*:16/07/20追記:どうも補間は「前後の平均」のようです。ですので、連続的なランダムエラーにならないと平均値は必ず一致してしまいます。実際、エラー補間値は平均値になっていること&連続していない場合はEACに認識されないことを確認しました。
 ですので、セキュアリッパーにとって補間有無を知る本命は「CRC値照合」ということでしょうけれど、データベースにないタイトルでは機能しないと言う点でこれも盤石ではありません。

 一方、特定ドライブ専用リッパーではC2レポートを信用して動けます。例えばPlexToolsはそもそもそのドライブ専用ツールですから、エラー情報の取得や制御など、ソフトとハードの連携は確実ですのでさらに高精度に実行可能になっていると言うことでしょう。

 ちなみに、Mac用リッパーXLDには「C2エラーの情報を利用する(機能するドライブは限られます)」というチェックボックスがあるようです(*)。

*:http://www.phileweb.com/review/article/201206/29/536_2.html


 さて、次に「セキュアとは言われていないリッパー」の方も見てみます。


■iTunes9の場合

 セキュアと言われてないリッパーにも「エラー訂正」ってありますよね。しかし、いくら調べても何をやっているのか全くと言っていいほど判りません。
 そこで、iTunesの「エラー訂正」について実験してみました。iTunes9.0.1.8にて。

 まず、チェックを入れるとリッピング時間は本当に遅くなるのか確認します。
 対象は以下の2トラックとしました。

   ・CCCDの、あるトラック
   ・PureReadのパーフェクトモードが停止することでC2エラー入りであることを確認した、あるトラック

 ドライブは以下の通り。S05JのPureReadはもちろん標準モードにて。

   ・Pioneer製BDライタ:BDR-S05J(2010年製)
   ・Pioneer製DVDライタ:DVR-105(2002年製)
   ・Panasonic製BDライタ:SW-5582(2006年製)
   ・LITEON製BD-ROM/DVDライタ:iHES208(2009年製)
   ・LITEON製BD-ROM:iHOS104(2009年製)
   ・Plextor製DVDライタ:PX-716A(2004年製)
   ・日立LG製BD-ROM/DVDライタ:GGC-H20N(2007年製)
   ・Panasonic製BDライタ:SW-5583(2008年製)  *13/05/15追加調達 iTunes11で確認

 …どのドライブを使っても両トラックともONとOFFで明確なタイム差は認められませんでした。最外周トラックではドライブの最大倍速に近い速度が出ています。少なくとも50%以上の速度は出ていますので、ONでもOFFでも1度読みだと推定します。
 また、iHES208とiHOS104にて、同じディスクの「エラーなしトラック」→「エラーありトラック」連続リップしてみたところ、トラックが変わっても回転音は変わりませんでした。つまりシフトダウンなどはしていないようです。これもONとOFFで同じです。

 これでは何も判らないので、ドライブを追加で調達してきました。なるべく古め、安そうなヤツを。

   ・MITSUMI製CD-ROM:FX48B0M(2005年製)
   ・東芝サムスン製DVDライタ:TS-H653
   ・Plextor製CD-RW:PX-W8432T(2000年製) *13/05/08追加調達 iTunes11で確認
   ・TEAC製SlimDVD-ROM:DV-28S-Y  *13/05/12追加調達 iTunes11で確認
   ・RICOH製DVD+RW:MP5240A(2003年製)  *13/05/13追加調達 iTunes11で確認

 この5機ではONとOFFで差が! 古い(安い?)ドライブには差が出る要因がある?
 以下、具体的数字はFX48のものです。

・エラーなしトラック
 ONにすると、OFF時と回転音は変わらないのに倍速表示が半分以下になり、実際に時間も約2.5倍(11:27が28:89)になりました。半分以下どころじゃない遅さになるみたいです。
 「回転音が変わらずリップ時間が長くなった」ということは、複数回読みをやってるっぽいです。
 トラックのデータ量とドライブの倍速仕様から計算すると、OFF時は2度読みはできない速度が出ているので1度読みだと思います。ON時は、時間は3倍にはなっていないことから2度読みと推察します。

・同じディスクのエラーなしトラックとエラーありトラック
 ふたつを連続リップすると、ONでもOFFでも「エラーありトラック」に移った途端に急ブレーキがかかって減速します。この時の「エラーありトラック」リップ時間は、OFFが52:50、ONだと2:54:20。3倍以上になっています。

 …どうも、「iTunesエラー訂正」ONとOFFで、訂正挙動の変わるドライブと変わらないドライブがあるのは間違いないようです。一体何が違うのでしょう?
 そこで、これらドライブの機能をEACで調べてみます。Ver1.0 beta1 from 15.Novenver 2010にて。「エラーありトラック」のあるディスクを入れて。

         Cache AcuStrm C2info
 変化しない軍団
    SW-5582  Yes  Yes  Yes
    SW-5583  Yes  Yes  Yes (Ver1.0 beta3 from 29.Augst 2011にて)
    PX-716A  Yes  Yes  Yes 
    iHES208   Yes  Yes  Yes
    iHOS104   Yes  Yes  No
    BDR-S05J  Yes  Yes  No
    DVR-105   Yes  Yes  No
    GGC-H20N  No   Yes  Yes
 変化する軍団
    FX48      No   Yes  Yes
    TS-H653   No   Yes  Yes
    PX-W8432T No   Yes  Yes (Ver1.0 beta3 from 29.Augst 2011にて)
    DV-28S    No   Yes  Yes (Ver1.0 beta3 from 29.Augst 2011にて)
    MP5240A    No   Yes  Yes (Ver1.0 beta3 from 29.Augst 2011にて)

 これを見ると、「iTunesエラー訂正」ONとOFFでの挙動の変化は「Cache」機能の有無と関係していそうに見えます。が、H20NはNoでも挙動変化しません。
 Panasonic製スリムドライブのUJ-852ではYesになる場合とNoになる場合があったことや、そもそもどんなCache仕様だと影響を受けるかEACとiTunesで同じとは限らない点などを鑑み、ここではH20Nは例外として「Cache機能がNoだと挙動が変化する」と仮定して話を進めたいと思います。

 一方、「C2 Error Info」機能の有無は「iTunesエラー訂正」のONとOFFでの挙動に変化を与えないようです。
 変化するドライブは「iTunesエラー訂正」がONでもOFFでもC2エラーありトラックでシフトダウンしますので、「C2 Error Info」情報を常に利用していると思われます(変化するドライブはすべて「C2 Error Info」がYes=機能あり)。変化しないドライブには「C2 Error Info」機能がYesのものもNoのものもありますので、iTunesはこの情報を使っていないようです。

 なお、変化しないドライブは「デフォルトで最高速読み(1度読み)しており“遅くするトリガがないから変わらない”」と判断しています。「デフォルトで複数回読みしており“速くする(複数回読みしなくていい)トリガがないから変わらない”」とは思えません。
 前述の通り、変化しないドライブではONでもOFFでも1度読みの速度が出ていますが、変化するドライブでは最高速の半分以下の速度しか出なくなりますから、変化しないドライブのデフォが複数回読みとは思えないためです。
 ちなみに、「CD-DAのCIRC」と「CD-ROMのEDC/ECC」は全く別のエラー訂正システムと理解すべきです。ゲームソフトなどのCD-ROMコピープロテクトを回避する機能として「EDC/ECCのエラーレポートを無視する」というものがあるようですが、言うまでもなく音楽CDのリッピングとは無関係です。だって音楽CDにはEDC/ECCなんて元々入ってないのですから(苦笑)。

 これらを総合すると、「iTunesエラー訂正」とは、

・リードキャッシュ機能がないドライブの場合
 ON/OFFに関係なく、「C2 Error Info」を受けたらシフトダウンする。
⇒OFF時は“1度読み”しており「リッパーの読み方だけでは補間発生やフレームズレを認識することはできない」ハズだが、それでもシフトダウンするということは「C2 Error Info」以外にそのトリガはないとの推定から。

 ON時は2度読みを行っていると推察する。
⇒FX48の例では、OFF時の2倍以上3倍以下の読み取り時間になることから。

 加えて、ON時のリップ時間の増加率がエラーなしよりもエラーありトラックの方が大きい(同じくFX48の例)ことから、ON時はOFF時より多くの回数読んで補間値を選定している可能性がある。ただし、シフトダウンしているので何らかの誤差かも知れない。

・リードキャッシュ機能があるドライブの場合
 キャッシュがあるとフラッシュしないと複数読みする意味がない。が、フラッシュ動作はえらく大変かつ副作用も大きい(?)ので、フラッシュしない。つまりONでも2度読みをやらない。
 「C2 Error Info」も活用せずONでもOFFでもシフトダウンしない。活用するためにはやっぱりキャッシュをフラッシュする必要があるため。
 つまり、リードキャッシュがあるドライブだと判断したら、エラー訂正をONにしても“なにもしない”(潔く諦めてる?)。なのでRipping速度が変わらない。

と想像します。ネット上では「フレームズレ対応」っていう情報もあるようですが、どうもそれじゃないような。あ、でも、2度読みしてるとすれば結果的には対応していることになるのかな?


 キャッシュ機能がないドライブ(古い・安いドライブ?)なら、結構“セキュア”なリッピングしてるような気がしますね(笑)。
 「iTunesは新しい(高い?)ドライブほど“セキュア”なリッピングしない」ということになり、それは感覚的には逆のイメージなことが解りにくい要因のひとつかも知れません。

 どうも、キャッシュ機能がないドライブを前提にしているような気がします。
 その上で、「エラー訂正を使用する」のチェックに関係なく「C2 Error Info」が上がってくることをを前提にちょっとセキュアなリッピングしてるようです。
 じゃあ「エラー訂正を使用する」をチェックするのはどういう意味かと言うと、具体的には「C2 Error Info」が上がることを信頼しないで自分で2度読みして確認するということでしょう。
 ということで、機能名と実動作の関連性が薄くて解りにくいですね。もともと“Mac用ソフト(Macのハード事情に合わせて開発された)”だからかも知れません。


■ということは

 「エラー訂正」について、「CIRC(ハードウェア)のC1/C2エラー訂正」と「ソフトウェア側でがんばる機能」がごっちゃに語られる場合が多々あることに気を付ける必要がありそうです。ソフトウェアの機能表記が、正しい値に戻る保証がないのに「エラー訂正」となってるのがそもそもヨロシクナイのではと思いますけど…

 さて、ソフト側では「CIRCエラー訂正」はしていないのですから、Ripping品質の「要(かなめ)はやっぱりドライブ性能」なのです。ドライブの読み取り性能が低ければソフト側が何度読んでもダメなものはダメでしょう。C1やC2のエラー訂正動作はCIRCによる規定なので差は無いため、要は光学的な性能になると思います。
 そして、最近では“ソフトウェアに言われなくても”自分でリトライ試みたりするドライブが登場しています。
 その代表格がPioneerの「PureReadシリーズ」と考えていいと思います。
 要するに

・セキュアリッパー:特定ドライブ専用・・・代表例「PlexTools Professional」
   勝手知ったるドライブと一心同体でやってるので動作は保証されるが特定ドライブでしか使えない。

・セキュアリッパー:汎用ドライブ用・・・代表例「EAC」
   がんばってソフトウェアでやってるから特定ドライブ以外でも機能するが保証の限りではない。
   例えば、ドライブのファームにどんなバグがあるか判ったもんじゃない。

・セキュアとは言われてないリッパー:汎用ドライブ用・・・代表例:「iTunes」
   いわゆる「エラー訂正」をONにするとちょっとがんばるけど、セキュアリッパーほどはがんばらない
   (一般的利用での利便性を優先していると思われる)。
   また、リードキャッシュ機能があるドライブだと諦めちゃう。

・リッピング精度向上機能付きドライブ・・・代表例「PureReadシリーズ搭載ドライブ」
   ドライブのファームウェアで処置。それを専用ユーティリティで制御できる。
   ファームレベルなのでPC側とI/F規定していないような情報も使った多様なリトライできる。
   また、「パーフェクトモード」なら最終的な補間発生を確実に認識できる。
   メーカが動作保証しているもの以外のリッピングソフトは相性が若干懸念されるが
   (ドライブが勝手にやってるリトライ動作で誤動作しないか)、選択の余地あり。
   また、セキュアリッパーである必要なし…というか逆にリッパーは「どシンプル」な方がよいような気が。

というまとめでどうでしょう。

 CD面とのレーザービームのやりとり関連はドライブにお任せするのが一番。「読み取りは盤面で起こってるんだ!」ってなカンジですかね。
 ということで、現時点では「PureReadシリーズ+お好みのリッピングソフト(*)」が、便利さとBitPerfectなRippingの両立が可能なナイス・コンビネーションじゃないかと思います。

*:もちろん動作保証がない場合は充分な事前動作確認が必要です。また、セキュア的な機能は何もしない設定がいいと思います。リトライ的な動作がPureReadとソフトでバッティングしちゃうとヘンなことになる可能性ありますので。

 PureReadの効能と、PureRead2の進化についてはそれぞれ別エントリーに記載していますのでよろしければご確認ください。

 12/08/04追記:EACとiTunesの動作について新旧ドライブで確認してみました。


メインメニューへ

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

ERIへようこそ

らかせ

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

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

最新記事
カテゴリ
検索フォーム
FC2カウンター