ユビキタスリードソロモンコード

バリーA.シプラの「ユビキタスリードソロモンコード」SIAMニュース、ファイル26-1、1993年1月からの翻訳。

*****



いわゆる情報化時代では、データの保存、検索、送信には速度だけでなく、障害がないことが重要であることを誰にも思い出させる必要はありません。 この場合、「発生するものが発生する」という原則が常に機能するとは限りません。 機械は間違いを犯し、人のせいではなく発生した計算ミスは、完璧に書かれたプログラムを役に立たない危険なゴミにさえ変える可能性があります。 建築家が地震の後でさえ崩壊しない建物を設計するように、彼らのコンピューターの同僚は、デジタルの世界におけるマーフィーの法則の現れを打ち消すことができる洗練された技術を思いつきました。



しかし、現代のテクノロジーを使用している多くの人々は、1960年に産業応用数学会誌に掲載された5ページの記事の重要性を認識していないかもしれません。 この記事では マサチューセッツ工科大学リンカーン研究所の将来の従業員であるアーウィンリードとグスタフソロモンは、「特定の有限フィールド上の多項式コード」と題して、コンピューターのハードドライブからコンパクトディスクプレーヤーまで、さまざまな機器で使用される最新のエラー訂正方法の根底にあるアイデアを提示しましたディスク。 リードソロモンコード(そしてもちろん、高度なエンジニアリングスキル)により、太陽系の外側の惑星の写真をボイジャー2宇宙船から地球に送信することが可能になりました。 それらは、傷のあるCDから音楽を楽しむ機会を与えます。 そして、それほど遠くない将来に、彼らは飽くなきケーブルテレビの人々が彼らのシステムに500以上のチャンネルを押し込めるようにするでしょう。



クイックリファレンス

リード-ソロモンコードは、データブロックのエラーを修正できる非バイナリサイクリックコードです。 コードベクトルの要素はビットではなく、ビットのグループ(ブロック)です。 リード-バイト(オクテット)で動作するソロモンコードは非常に一般的です。



リードソロモンコードは、BCHコードの特殊なケースです。



現在、CDからのデータ回復システムで広く使用されており、損傷が発生した場合の回復のための情報を含むアーカイブを作成する際、ノイズ耐性のあるコーディングで使用されています。

詳細- リードコード-ソロモン





「CDプレーヤーやデジタルオーディオテープ、さらにデジタルテレビや他の多くの高度なデジタル画像システムについて話している場合、システムの不可欠な部分としてリードソロモンコードを使用する必要があります」と専門家のRobert McAleese氏は言います。カリフォルニア工科大学電気工学科のコーディング理論について。



なんで? 定義により仮想的なデジタル情報は、「ビット」の配列-0(ゼロ)と1(単位)-および物理デバイスで構成されているためです。 また、物理デバイスは、どれだけうまく作られていても、混乱を招く可能性があります。 たとえば、Voyager 2の送信機の出力は非常に低く、数千万キロメートルのデータがほとんどささやかれて送信されました。 ディスクドライブは非常に緊密にデータを圧縮するため、1ビットの終了位置と次のユニット(またはゼロ)の開始位置がわからない場合、読み取り/書き込みヘッドを(実際に)理解できます。 慎重に設計すると、エラーの頻度は非常に低くなりますが、これは無視できます。ハードドライブの業界標準は10〜100億です。しかし、今日の情報処理量を考えると、これは「重要ではない」このレベルはその後、毎日の事故を引き起こす可能性があります。 エラー修正コードは一種のセーフティネットです。不完全な物質世界の変遷に対する数学的保険です。



エラー修正の鍵は冗長性です。 実際、最も単純なエラー修正コードは、ほんの数回の単純な繰り返しです。 たとえば、転送中にエラーが1つしかないと予想される場合、各ビットを3回繰り返し、受信側で「多数決」を行うと、メッセージが正しく聞こえることが保証されます(たとえば、111 000 011 111は1011として正しく聞こえます)。 一般的な場合、n個のエラーは、2n + 1回繰り返して補正できます。



しかし、このようなエラーの「正面からの」修正は、高速で高密度の情報処理の目標を妨げます。 元のメッセージにほんの数ビットを追加するアプローチを好むかもしれません。 もちろん、「Mick Jagger氏は回想します」と思ったものを常に入手できるとは限りませんが、実際に試してみると、実際には必要なものを見つけることができます。 リードソロモンコードの成功はこれを裏付けています。



1960年までに、エラー訂正コードの理論は約10年しか続きませんでした。 信頼できるデジタル通信の基本理論は、1940年代後半にクロードシャノンによって策定されました。 同時に、Richard Hammingは、シングルエラーを修正し、ダブルエラーを検出するためのエレガントなアプローチを導入しました。 1950年代に、多数の研究者がさまざまなエラー修正コードの実験を開始しました。 しかし、McElisによれば、ReidとSolomonは、SIAMマガジンの記事で「大当たり」しました。



報酬は、個々のゼロと1ではなく、バイトなどのビットのグループに基づいたコーディングシステムでした。 この機能により、リードソロモンコードは、グループエラーに対抗するのに特に役立ちます。たとえば、6つの連続したビットエラーは、最大2バイトに影響します。 そのため、リードソロモンコードのダブルエラーバージョンでも、十分な安全マージンを提供できます。 (CDテクノロジでのリードソロモンコーディングの現在の実装により、最大4000連続ビット長のグループエラーを克服できます。)



数学的には、リードソロモンコードは有限体の算術に基づいています。 実際、1960年の記事は「有限体K上の次元mのベクトル空間を同じ体上の高次元のベクトル空間にマッピングする」というコードを定義することから始まります。元の「メッセージ」(a_0、a_1、...、a_ { m-1})、各a_kはフィールドKの要素であり、リードソロモンエンコーディングは(P(0)、P(g)、P(g ^ 2)、...、P(g ^ {N-1}ここで、NはKの要素数、gはKの循環非空グループの生成元、P(x)は多項式a_0 + a_1 * x + ... + a_ {m-1} x ^ {m-1}です。 Nがmより大きい場合、Pの値は多項式によって再定義され、有限のプロパティは それは係数が、元のメッセージは、任意の値mによって回収することができることを確実にします。



概念的には、リードソロモンコードは多数の点を描くことにより多項式を定義します。 また、明確な放物線のいくつかの「悪い」点を目で認識して修正できるように、リードソロモンコードは誤ったP値を検出し、元のメッセージを復元できます。 少しの組み合わせの推論(および少しの線形代数)は、m(メッセージ長)が厳密にN-2s未満である限り、このアプローチが最大s個のエラーを修正できることを確立します。



たとえば、今日のバイトサイズの世界では、Kを次数8のフィールドとしてZ_2で定義するのが理にかなっています。したがって、Kの各要素は1バイトに対応します(コンピューター用語では、ニブルに4ビット、バイトに2ニブルがあります)。 この場合、N = 2 ^ 8 = 256であるため、値P(0)、P(g)、...、P(g ^ { 255})。 これは、5回話す方法で必要な1255バイトよりもはるかに優れています。



その利点にもかかわらず、リードソロモンコードはすぐには使用されませんでした。ハードウェアテクノロジーがより高度になる瞬間を待っていました。 「1960年には、高速デジタルエレクトロニクスのようなものはありませんでした」と、いずれにしても、今日と同じレベルではありませんでした、とMcAleeseは言います。 Reed-Solomonの研究では、「いくつかの興味深いデータ処理方法が提案されましたが、これが実現可能かどうかは誰も知りませんでした。1960年には、おそらく実現不可能でした。」



しかし、技術は改善され、多くの研究者がコードの実装に取り​​組み始めました。 主要人物の1人は、カリフォルニア大学バークレー校の電気工学教授であり、効率的なリードソロモンコードデコードアルゴリズムを発明したAlvin Burlekampでした。 Voyager 2ではBerlekampアルゴリズムが使用され、それに基づいてCDプレーヤーでのデコードが構築されました。 他のすべてに、多数の「ねじれ」が追加されました(一部には根本的な理論的意義があります)。 たとえば、CDは、CIRCと呼ばれる、クロスローテーションのあるリードソロモンコードのバージョンを使用します。



現在、南カリフォルニア大学の電気工学の教授であるリードは、まだコーディング理論の問題に取り組んでいます。 ヒューズエアクラフトカンパニーを最近退職したソロモンは、ジェット推進研究所に助言します。 リードは、エラー訂正コードの基礎として抽象代数を最初に見た人の1人です。



「振り返ってみると、これは明らかです」と彼はSIAMニュースに語った。 ただし、「この記事を公開したとき、コーディング理論は議論の対象ではありませんでした」と付け加えました。 両方の著者は、良い結果が達成されたことを理解しましたが、彼らの記事がどのような影響を与えるかについては知りませんでした。 30年後、彼に会います。 既存および計画中の膨大な数のアプリケーションが、リードソロモンコードの実用性と重要性の問題を解決しました。 「今では誰もが使用しているため、それらが実用的であることは明らかです」とBerlekampは言います。 数十億ドルの現代技術は、リードとソロモンのオリジナル作品に基づいたアイデアに依存しています。 一言で言えば、「重要な記事でした」とMcElis氏は言います。



-翻訳:©Wio、intnzy、aidsfrag。



All Articles