System and process for decoding a chain reaction coding by inactive of

申请号 JP2004512297 申请日 2003-06-10 公开(公告)号 JP2006512790A 公开(公告)日 2006-04-13
申请人 デジタル ファウンテン, インコーポレイテッド; 发明人 リチャード カープ,; エム. アミン ショクロラヒ,; ソーレン ラッセン,;
摘要 連鎖反応符号を処理するための方法は、まず、等級2以上の出 力 シンボル(例えば、自身が2つ以上の入力シンボルに関連している出力シンボル)に関連しているソースシンボルを選択し、例えば一次方程式のシステムを解くことによってこのシンボルの値を回復し、その後、選択されたソースシンボルをデアクティブ化して、等級1の出力シンボルを生成することを含む。 このイナクティブ化処理は、等級1の出力シンボルが識別されるまで連続して、および/または復号化処理が等級1の出力シンボルを見つけることができない場合にはいつでも、繰り返して行うことができる。
权利要求
  • 複数の出力シンボルおよび複数のソースシンボルを有する連鎖反応符号において、各出力シンボルは1つ以上のソースシンボルに関連しており、1つ以上のソースシンボルに関連している出力シンボルは、等級1以上の出力シンボルと称され、少なくとも1つの出力シンボルは、少なくとも2つのソースシンボルに関連しており、2つ以上のソースシンボルに関連している出力シンボルは、等級2以上の出力シンボルと称され、少なくとも1つのソースシンボルはアクティブであるとして示され、連鎖反応符号を処理するための方法であって、
    (i)等級2以上の出力シンボルに関連しているアクティブなソースシンボルの1つを選択することと、
    (ii)等級2以上の出力シンボルに関連している選択されたソースシンボルをデアクティブ化することとを含む、方法。
  • (ii)選択されたソースシンボルをデアクティブ化することにより、デアクティブ化されたソースシンボルおよび1つ以上の回復可能なソースシンボルが生じ、各回復可能なソースシンボルは、等級1の出力シンボルに関連している、請求項1に記載の方法。
  • 等級2以上の出力シンボルに関連しているソースシンボルが連鎖反応符号に残存している場合、(i)〜(ii)を繰り返すことをさらに含む、請求項2に記載の方法。
  • (i)〜(ii)を1回以上繰り返して、1つ以上のデアクティブ化されたソースシンボルおよび1つ以上の回復可能なソースシンボルを生じさせることをさらに含む、請求項2に記載の方法。
  • アクティブなソースシンボルの1つを選択することは、出力シンボルの最大数に関連しているアクティブなソースシンボルを選択することを含む、請求項1に記載の方法。
  • アクティブなソースシンボルの1つを選択することは、等級2以上の出力シンボルにそれぞれ関連しているアクティブなソースシンボルの群からアクティブなソースシンボルをランダムに選択することを含む、請求項1に記載の方法。
  • (i)アクティブなソースシンボルの1つを選択することは、
    (a)アクティブなソースシンボルを識別することと、
    (b)識別されたアクティブなソースシンボルがデアクティブ化される場合に潜在的に回復可能なアクティブなソースシンボルの数を決定することと、
    (c)潜在的に回復可能なソースシンボルの数が所定数を超えない場合、(a)および(b)を他のアクティブなソースシンボルについて繰り返すこととを含む、請求項1に記載の方法。
  • 潜在的に回復可能なソースシンボルの数が所定数を超えない場合、デアクティブ化されたソースシンボルを再アクティブ化することと、
    他のアクティブなソースシンボルを選択することとをさらに含む、請求項3に記載の方法。
  • (i)等級2以上の出力シンボルに関連しているアクティブなソースシンボルの1つを選択することは、
    アクティブなソースシンボルの所定数にそれ自身が関連している出力シンボルに関連しているソースシンボルを識別することを含み、
    選択されたソースシンボルをデアクティブ化することは、識別された出力シンボルに関連しているアクティブなソースシンボルのうちの1つ以外はすべてデアクティブ化することを含み、残りのアクティブなソースシンボルは、デアクティブ化されていないソースシンボルを含む、請求項1に記載の方法。
  • デアクティブ化されていないソースシンボルは、出力シンボルの最小の数に関連している、請求項9に記載の方法。
  • (i)アクティブなソースシンボルの1つを選択することは、第1の出力シンボルに関連しているアクティブなソースシンボルを選択することを含み、第1の出力シンボルは、2つのアクティブなソースシンボルの第1の組に関連している、請求項1に記載の方法。
  • 少なくとも1つの第1の組の2つのソースシンボルが、第2の出力シンボルに関連しており、第2の出力シンボルは、2つのアクティブなソースシンボルの第2の組に関連している、請求項11に記載の方法。
  • 少なくとも1つの第2の組の2つのソースシンボルが、第3の出力シンボルに関連しており、第3の出力シンボルは、2つのアクティブなソースシンボルの第3の組に関連している、請求項12に記載の方法。
  • (iii)1つのアクティブなソースシンボルだけに関連している少なくとも1つの出力シンボルを識別することと、
    (iv)識別された出力シンボルに関連しているアクティブなソースシンボルを回復することと、
    (v)1つのアクティブなソースシンボルだけに関連している出力シンボルが残存していないと決定することとをさらに含む、請求項1に記載の方法。
  • 1つのソースシンボルだけに関連している各識別された出力シンボルについて、(iv)〜(v)を繰り返すことをさらに含む、請求項14に記載の方法。
  • (iii)1つ以上のデアクティブ化されたソースシンボルの値を回復することと、
    (iv)1つ以上のデアクティブ化されたソースシンボルの回復された値に基づき、1つ以上の回復可能なソースシンボルの値を決定することとをさらに含む、請求項2に記載の方法。
  • (i)〜(iv)を1回以上繰り返すことをさらに含む、請求項16に記載の方法。
  • (iii)1つ以上のデアクティブ化されたソースシンボルの値を回復することは、デアクティブ化されたソースシンボルのすべての値を回復することを含む、請求項16に記載の方法。
  • (iv)1つ以上のソースシンボルの値を決定することは、ソースシンボルのすべての値を決定することを含む、請求項16に記載の方法。
  • (i)〜(iv)を1回以上繰り返すことは、アクティブなソースシンボルが残存しなくなるまで(i)〜(iv)を繰り返すことを含む、請求項17に記載の方法。
  • 所定数のソースシンボルをアクティブであるとして示すことをさらに含む、請求項17に記載の方法。
  • 所定数のソースシンボルをアクティブであるとして示すことは、すべてのソースシンボルをアクティブであるとして示すことを含む、請求項21に記載の方法。
  • 所定数のソースシンボルをアクティブであるとして示すことは、少なくとも1つのソースシンボルをアクティブであるとして示すことを含む、請求項21に記載の方法。
  • 複数の出力シンボルおよび複数のソースシンボルを有する連鎖反応符号において、各出力シンボルは1つ以上のソースシンボルに関連しており、1つ以上のソースシンボルに関連している出力シンボルは、等級1以上の出力シンボルと称され、少なくとも1つの出力シンボルは、少なくとも2つのソースシンボルに関連しており、2つ以上のソースシンボルに関連している出力シンボルは、等級2以上の出力シンボルと称され、少なくとも1つのソースシンボルはアクティブであるとして示され、連鎖反応符号を処理するための方法であって、
    (i)連鎖反応符号内の出力シンボルは、1つだけのソースシンボルに関連しているものはないと決定することと、
    (ii)等級2以上の出力シンボルに関連しているアクティブなソースシンボルの1つを選択することと、
    (iii)等級2以上の出力シンボルに関連している選択されたソースシンボルをデアクティブ化することとを含む、方法。
  • (iii)選択されたソースシンボルをデアクティブ化することにより、デアクティブ化されたソースシンボルおよび1つ以上の回復可能なソースシンボルが生じ、各回復可能なソースシンボルは、等級1の出力シンボルに関連している、請求項24に記載の方法。
  • (i)〜(iii)を繰り返すことをさらに含む、請求項25に記載の方法。
  • 複数の多段出力シンボルおよび複数のソースシンボルを有する連鎖反応符号において、各多段出力シンボルは出力シンボルまたはチェックシンボルを備え、
    各多段出力シンボルは1つ以上のソースシンボルに関連しており、1つ以上のソースシンボルに関連している多段出力シンボルは、等級1以上の多段出力シンボルと称され、少なくとも1つの多段出力シンボルは、少なくとも2つのソースシンボルに関連しており、2つ以上のソースシンボルに関連している多段出力シンボルは、等級2以上の多段出力シンボルと称され、少なくとも1つのソースシンボルはアクティブであるとして示され、連鎖反応符号を処理するための方法であって、
    (i)等級2以上の多段出力シンボルに関連しているアクティブなソースシンボルの1つを選択することと、
    (ii)等級2以上の多段出力シンボルに関連している選択されたソースシンボルをデアクティブ化することとを含む、方法。
  • (ii)選択されたソースシンボルをデアクティブ化することにより、デアクティブ化されたソースシンボルおよび1つ以上の回復可能なソースシンボルが生じ、各回復可能なソースシンボルは、等級1の出力シンボルまたは等級1のチェックシンボルに関連している、請求項27に記載の方法。
  • 等級2以上の多段出力シンボルに関連しているソースシンボルが連鎖反応符号に残存している場合、(i)〜(ii)を繰り返すことをさらに含む、請求項28に記載の方法。
  • (i)〜(ii)を1回以上繰り返して、1つ以上のデアクティブ化されたソースシンボルおよび1つ以上の回復可能なソースシンボルを生じさせることをさらに含む、請求項28に記載の方法。
  • 多段出力シンボルの少なくとも1つは出力シンボルを含み、多段出力シンボルの少なくとも1つはチェックシンボルを含む、請求項27に記載の方法。
  • (i)アクティブなソースシンボルの1つを選択することは、2つ以上のチェックシンボルを含む等級2以上の多段出力シンボルに関連しているアクティブなソースシンボルの1つを選択することを含む、請求項27に記載の方法。
  • (i)アクティブなソースシンボルの1つを選択することは、多段出力シンボルの最大数に関連しているアクティブなソースシンボルの1つを選択することを含む、請求項27に記載の方法。
  • (i)アクティブなソースシンボルの1つを選択することは、等級2以上の多段出力シンボルにそれぞれ関連しているアクティブなソースシンボルの群からアクティブなソースシンボルをランダムに選択することを含む、請求項27に記載の方法。
  • (i)アクティブなソースシンボルの1つを選択することは、
    (a)アクティブなソースシンボルを識別することと、
    (b)識別されたアクティブなソースシンボルがデアクティブ化される場合に潜在的に回復可能なアクティブなソースシンボルの数を決定することと、
    (c)潜在的に回復可能なソースシンボルの数が所定数を超えない場合、(a)および(b)を他のアクティブなソースシンボルについて繰り返すこととを含む、請求項27に記載の方法。
  • 潜在的に回復可能なソースシンボルの数が所定数を超えない場合、デアクティブ化されたソースシンボルを再アクティブ化することと、
    他のアクティブなソースシンボルを選択することとをさらに含む、請求項30に記載の方法。
  • (i)アクティブなソースシンボルの1つを選択することは、
    アクティブなソースシンボルの所定数にそれ自身が関連している多段出力シンボルに関連しているソースシンボルを識別することを含み、
    選択されたソースシンボルをデアクティブ化することは、識別された多段出力シンボルに関連しているアクティブなソースシンボルのうちの1つ以外はすべてデアクティブ化することを含み、残りのアクティブなソースシンボルは、デアクティブ化されていないソースシンボルを含む、請求項27に記載の方法。
  • 選択されたソースシンボルは、多段出力シンボルの最小の数に関連している、請求項37に記載の方法。
  • (i)アクティブなソースシンボルの1つを選択することは、第1の多段出力シンボルに関連しているアクティブなソースシンボルを選択することを含み、第1の多段出力シンボルは、2つのアクティブなソースシンボルの第1の組に関連している、請求項27に記載の方法。
  • 少なくとも1つの第1の組の2つのソースシンボルが、第2の多段出力シンボルに関連しており、第2の多段出力シンボルは、2つのアクティブなソースシンボルの第2の組に関連している、請求項39に記載の方法。
  • 少なくとも1つの第2の組の2つのソースシンボルが、第3の多段出力シンボルに関連しており、第3の多段出力シンボルは、2つのアクティブなソースシンボルの第3の組に関連している、請求項40に記載の方法。
  • (iii)1つのアクティブなソースシンボルだけに関連している少なくとも1つの多段出力シンボルを識別することと、
    (iv)識別された多段出力シンボルに関連しているアクティブなソースシンボルを回復することと、
    (v)1つのアクティブなソースシンボルだけに関連している多段出力シンボルが残存していないと決定することとをさらに含む、請求項27に記載の方法。
  • (iii)1つ以上のデアクティブ化されたソースシンボルの値を回復することと、
    (iv)1つ以上のデアクティブ化されたソースシンボルの回復された値に基づき、1つ以上の回復可能なソースシンボルの値を決定することとをさらに含む、請求項28に記載の方法。
  • (i)〜(v)を1回以上繰り返すことをさらに含む、請求項43に記載の方法。
  • (iii)1つ以上のデアクティブ化されたソースシンボルの値を回復することは、デアクティブ化されたソースシンボルのすべての値を回復することを含む、請求項43に記載の方法。
  • (iv)1つ以上のソースシンボルの値を決定することは、ソースシンボルのすべての値を決定することを含む、請求項43に記載の方法。
  • 多段出力シンボルの少なくとも1つは、(i)〜(v)についての出力シンボルと、後続の(i)〜(v)の繰り返しについてのチェックシンボルとを備える、請求項44に記載の方法。
  • 多段出力シンボルの少なくとも1つは、(i)〜(v)についてのチェックシンボルと、後続の(i)〜(v)の繰り返しについての出力シンボルとを備える、請求項44に記載の方法。
  • 多段出力シンボルの少なくとも1つは、アクティブなソースシンボルが残存しなくなるまでの(i)〜(v)についての出力シンボルを備え、当該少なくとも1つの多段出力シンボルは、チェックシンボルを備える、請求項44に記載の方法。
  • 多段出力シンボルの少なくとも1つは、アクティブなソースシンボルが残存しなくなるまでの(i)〜(v)についてのチェックシンボルを備え、当該少なくとも1つの多段出力シンボルは、出力シンボルを備える、請求項44に記載の方法。
  • 複数の出力シンボルおよび複数のソースシンボルを有する連鎖反応符号を処理するように構成されたシステムであって、各出力シンボルは1つ以上のソースシンボルに関連しており、1つ以上のソースシンボルに関連している出力シンボルは、等級1以上の出力シンボルと称され、少なくとも1つの出力シンボルは、少なくとも2つのソースシンボルに関連しており、2つ以上のソースシンボルに関連している出力シンボルは、等級2以上の出力シンボルと称され、少なくとも1つのソースシンボルはアクティブであるとして示され、システムは、
    (i)等級2以上の出力シンボルに関連しているアクティブなソースシンボルの1つを選択するための手段と、
    (ii)等級2以上の出力シンボルに関連している選択されたソースシンボルをデアクティブ化するための手段とを備える。
  • (ii)選択されたソースシンボルをデアクティブ化するための手段は、デアクティブ化されたソースシンボルおよび1つ以上の回復可能なソースシンボルを生じさせ、各回復可能なソースシンボルは、等級1の出力シンボルに関連している、請求項51に記載のシステム。
  • (iii)1つのアクティブなソースシンボルだけに関連している少なくとも1つの出力シンボルを識別するための手段と、
    (iv)識別された出力シンボルに関連しているアクティブなソースシンボルを回復するための手段と、
    (v)1つのアクティブなソースシンボルだけに関連している出力シンボルが残存していないと決定するための手段とをさらに備える、請求項51に記載のシステム。
  • (iii)1つ以上のデアクティブ化されたソースシンボルの値を回復するための手段と、
    (iv)デアクティブ化されたソースシンボルの回復された値に基づき、1つ以上の回復可能なソースシンボルの値を決定する手段とをさらに備える、請求項52に記載のシステム。
  • (i)〜(iv)はコンピュータプロセッサに含まれる、請求項54に記載のシステム。
  • コンピュータが読み取り可能な記憶媒体上にあって、複数の出力シンボルおよび複数のソースシンボルを有する連鎖反応符号を処理するためのコンピュータプログラム生産物であって、各出力シンボルは1つ以上のソースシンボルに関連しており、1つ以上のソースシンボルに関連している出力シンボルは、等級1以上の出力シンボルと称され、少なくとも1つの出力シンボルは、少なくとも2つのソースシンボルに関連しており、2つ以上のソースシンボルに関連している出力シンボルは、等級2以上の出力シンボルと称され、少なくとも1つのソースシンボルはアクティブであるとして示され、コンピュータプログラム生産物は、
    (i)等級2以上の出力シンボルに関連しているアクティブなソースシンボルの1つを選択する命令符号と、
    (ii)等級2以上の出力シンボルに関連している選択されたソースシンボルをデアクティブ化する命令符号とを備える。
  • (ii)選択されたソースシンボルをデアクティブ化するための命令符号は、デアクティブ化されたソースシンボルおよび1つ以上の回復可能なソースシンボルを生じさせ、各回復可能なソースシンボルは、等級1の出力シンボルに関連している、請求項56に記載のシステム。
  • (iii)1つのアクティブなソースシンボルだけに関連している少なくとも1つの出力シンボルを識別する命令符号と、
    (iv)識別された出力シンボルに関連しているアクティブなソースシンボルを回復する命令符号と、
    (v)1つのアクティブなソースシンボルだけに関連している出力シンボルが残存していないと決定する命令符号とをさらに備える、請求項57に記載のコンピュータプログラム生産物。
  • (iii)1つ以上のデアクティブ化されたソースシンボルの値を回復する命令符号と、
    (iv)デアクティブ化されたソースシンボルの回復された値に基づき、1つ以上の回復可能なソースシンボルの値を決定する命令符号とをさらに備える、請求項58に記載のコンピュータプログラム生産物。
  • 说明书全文

    関連出願の相互参照
    本発明は、2002年6月11日出願の米国仮出願第60/388,129「イナクティブ化による連鎖反応符号の復号化」の利益を主張するものであり、その内容全体を、あらゆる目的のために参照により本明細書に引用したものとする。

    発明の背景
    本発明は、データの復号化のためのシステムおよび方法に関し、より特定的には、情報付加符号および多段情報付加符号を復号化するためのシステムおよび方法であり、これらの符号は、以下総称して「連鎖反応符号」と称する。

    連鎖反応符号は、米国特許第6,307,487号「通信システム用の情報付加符号生成器および復号器」(以下、「ルビーI(Luby I)」と称する)および米国特許出願公開第10/032,156号「通信システム用の多段符号生成器および復号器」(以下、「ラプター(Raptor)」と称する)などの本願譲受人の特許において、過去に説明されている。 そこで説明したように、連鎖反応復号化は、特定のデータパケットを受信することなく、所定のサイズの受信データセットからデータの再構築が可能である、前方誤り訂正の特有の形式である。 連鎖反応符号を利用する通信システムは、ルビーIまたはラプターにおいて説明されているような、データカルーセルを介して送信された従来のFEC符号、または肯定応答を基本としたプロトコルと比べて、格段に効率的に情報通信を行うことが可能である。

    図1は、連鎖反応符号を用いてデータを符号化する処理例を示し、そこでは、出シンボル170が数個の入力シンボルから生成される。 入力シンボルは、110(a)〜110(f)で示す。 実施形態によっては、ラプターに説明されているように、符号化処理の第1のステップは静的符号化である。 このステップは、ソースシンボルを発生させてもよく、120(a)〜120(f)および160(a)〜160(c)で示されている。 実施形態によっては、静的符号化は、ソースシンボル120(a)〜120(f)の値が110(a)〜110(f)の値と同一になるように、体系化されていてもよい。 実施形態によっては、静的符号化がなくてもよく、この場合には、入力シンボルは、ソースシンボルと一致する。

    ソースシンボルが作成されると、ソースシンボルから出力シンボルが生成される。 以下、入力シンボルの値を用いて出力シンボルの値を得る場合には、出力シンボルおよび入力シンボルは「関連している(associated)」として説明する。 この関連性を規定する数学的演算は、どのような特定の演算であってもよく、一実施形態においては、出力シンボルの値は、いくつかのソースシンボルの値の排他的論理和である。 各出力シンボルについて、鍵生成器140が鍵を生成し、その鍵から、出力シンボルの重みが、重みテーブル150から決定される。 重みWが決定されると、Wのランダムまたは擬似ランダムソースシンボルが選択され、出力シンボルの値がこれらのソースシンボルの値の排他的論理和として計算される。 例えば、図1において、出力シンボル170の重みは3と等しく、その値は、ソースシンボル120(a),120(d),および160(b)の排他的論理和として決定される。 対応して、出力シンボル170は、ソースシンボル120(a),120(d),および160(b)に関連している。 以下、「等級(degree)」という用語は、「重み(weight)」と同義として用いられる。

    図2Aは、連鎖反応符号の復号化において用いられる復号化グラフを示す。 この復号化グラフは、ソースシンボル220(a)〜(i)および出力シンボル230(a)〜(i)という、2つのシンボルの組からなる。 上述のようにソースおよび出力シンボルが「関連している」場合には、出力シンボルはソースシンボルに結合される。

    図2Bは、復号化処理に有用な図2Aの復号化グラフに対応する復号化行列を示す。 復号化行列200は、出力シンボルと同数の行と、ソースシンボルと同数の列とを有し、入力「0」および「1」が代入されている。 j番目のソースシンボルがk番目の出力シンボルに関連している場合には、復号化行列の位置(k,j)に「1」が入力される。

    典型的な連鎖反応復号化処理において、単一の出力シンボルに関連している出力シンボルO を識別することによって、復号化は開始する。 「等級1の出力シンボル(output symbol of degree one)」という用語は、1つの出力シンボルのみに関連している上記出力シンボルのことを指す。 同様に、2つのソースシンボルに関連している出力シンボルは、「等級2(degree two)」の出力シンボルと称する。 ソースシンボルは、各ソースシンボルが関連している出力シンボルの数に対応して、同様に称される。

    等級1の出力シンボルO が識別されると、O の関連しているソースシンボルが回復され、復号化グラフから削除される。 処理は、等級1の他の出力シンボルO を識別することによって継続する。 例えば、図2に示す状況では、は230(a)で示す出力シンボルである場合がある。 その関連シンボル220(b)が復号化グラフから削除されると、等級1の出力シンボルは、230(c),230(d),および230(k)の3つとなる。

    処理は、すべてのソースシンボルが回復されるまで、または、等級1の出力シンボルが存在しなくなるまで継続される。 例えば、図2の状況では、出力シンボルの以下のシーケンスが選択されて、対応するソースシンボルが回復される。

    この場合、復号化は正常に行われる。

    上述の連鎖反応復号化処理は、等級1の出力シンボルが見つからない場合には、問題が生じる。 場合によっては、復号化処理が永久に停止し、復号器がエラーのフラグを立てることもある。 代わりに、可能であれば、復号器は、ガウス消去法のような他のより精密なアルゴリズムを用いて、復号化を完了させてもよい。 しかしながら、ガウス消去法の動作時間は、高速の復号化が望ましいアプリケーションにとっては極端に長いことがあり、等級1の出力シンボルがもはや見つからない時の回復されていない入力シンボルの数が多い場合には特にそうである。 このことにより、復号アルゴリズムが、連鎖反応復号器よりも計算オーバヘッドがかなり大きいものとなり、アプリケーションによっては、望ましくないものとなりうる。

    このような理由により、連鎖反応符号化システムは、復号器が永久に停止しないことを保証するように設計される。 この要請は、より複雑な復号器を用いてなされるよりも、連鎖反応符号の設計に対して厳格な条件を課することになろう。 例えば、出力シンボルの平均等級を他の場合よりも高くすることで、符号器および復号器の性能が低下することになることもある。 より一般的には、この復号化手順により、上記復号化アルゴリズムが高い確率で成功することを保証するような重みテーブルを設計することになり、よって、実現可能な重みテーブルの組を制約することになる場合もある。

    したがって、必要なのは、連鎖反応復号器におけるのと同様の計算上の利点を提供し、かつ、復号化におけるあるステージにおいて等級1の出力シンボルが見つからない場合でも復号化を継続可能な、新規の復号化アルゴリズムである。

    概要
    本発明は、等級1の出力シンボルが符号内に見つからない場合でも連鎖反応符号を復号化するためのシステムおよび処理を提供する。 これは、ある実施形態において、等級2以上の出力シンボル(すなわち、それ自身が2つ以上の入力シンボルに関連している出力シンボル)に関連しているソースシンボルを選択することによって達成される。 その後、等級1の出力シンボルを発生させるために、等級2以上の出力シンボルは、デアクティブ化される。 イナクティブ化処理は、等級1の出力シンボルが識別されるまで連続して、および/または復号化処理が等級1の出力シンボルを見つけることができない場合にはいつでも、繰り返して行うことができる。 当該処理およびシステムの様々な実施形態が、本明細書に提示される。

    明確性および便宜を図るため、先の図面において識別された特徴および構成要素は、後の図面においてもその参照符号を保持する。

    いくつかの実施形態の詳細な説明
    以下の用語は、本出願を通して用いられ、指示された意味を有するものとする。

    「アクティブ(active)」という用語は、ソースシンボルが取りうる状態を指す。 ソースシンボルのアクティブ状態は、永久ではなく、ソースシンボルのアクティブ状態は、以下に規定される「イナクティブ(inactive)」状態、「回復可能状態(recoverable state)、または「回復された(recovered)」状態のいずれかに変化しうる。

    「デアクティブ化された(deactivated)」または「イナクティブ(inactive)」という用語は、ソースシンボルの別の状態を指す。 デアクティブ化されたソースシンボルの状態は、必ずしも永久ではなく、イナクティブなソースシンボルは、本発明の下での処理において再アクティブ化されうる。

    「回復可能な(recoverable)」という用語は、ソースシンボルのまた別の状態を指し、他のソースシンボルの値が回復されれば当該ソースシンボルの値は回復可能であることを示す。 本発明の特定の実施形態において、ソースシンボルは、1つ以上のソースシンボルのイナクティブ化を通じて「回復可能(recoverable)」となってもよい。

    「回復されたソースシンボル(recovered source symbol)」という用語は、値が決定されたソースシンボルを指す。 ソースシンボルの値は、例えば、唯一関連している出力シンボルの値から直接的に、または、例えば、デアクティブ化されたソースシンボルの値から間接的に、決定されてもよい。

    図3は、本発明の一実施形態に係る、連鎖反応符号を復号化するために用いられる処理の概観を示す。 例示の復号化ルーチン300に含まれる処理は、起動処理310、ソースシンボル選択およびデアクティブ化処理320、およびソースシンボル値回復処理330を含む。

    図4Aは、図3に示す起動処理310の第1の実施形態を示す。 最初に、311において、等級1の出力シンボルがあるかどうかについて決定がなされる。 もしそうであれば、当該出力シンボルに関連しているソースシンボルが、312で回復される。 その後、処理は311に戻って、そこでは、等級1の他の出力シンボルが符号内に残存しているかどうかについての次の決定がなされる。 もし311において等級1の出力シンボルが残存していなければ、処理は、以下に説明するソースシンボル選択およびデアクティブ化処理320に進む。

    図4Bは、図3に示す起動処理310の第2の実施形態を示す。 本実施形態において、等級1の出力シンボルを315において識別する。 その後、316において、識別された出力シンボルに関連しているソースシンボルが回復される。 次の317において、等級1の他の出力シンボルが残存しているかどうかについて決定がなされる。 もしそうであれば、処理は316に戻り、関連しているソースシンボルが回復される。 もしそうでなければ、処理は、以下に説明するソースシンボル選択およびデアクティブ化処理へ進む。

    本発明の一実施形態において、310において説明したソースシンボルの回復は、320において言及したデアクティブ化されかつ回復可能なソースシンボルの回復の時間的に以前に生じる。 しかしながら、本発明はこれに限らず、本発明の代替実施形態において、310において説明したソースシンボルの回復は、処理330におけるデアクティブ化されかつ回復可能なソースシンボルの回復と実質的に同時に生じてもよい。

    図5は、図3に示すソースシンボル選択およびデアクティブ化処理320の第1の実施形態を示す。 最初に、321において、等級以上の出力シンボル(すなわち、2つ以上のソースシンボルに関連する出力シンボル)に関連するアクティブなソースシンボルが選択される。 多数の類似のソースシンボルから特定のソースシンボルが選択される手法は、後に詳述する。 次に、322において、選択された特定のソースシンボルがデアクティブ化される。 その後、323において、復号化する等級1の出力シンボルが存在するかどうかについて決定する。 ある実施形態では、直前のデアクティブ化によって、等級1の出力シンボルが1つ以上生じることもある。 他の実施形態では、直前のデアクティブ化によって、等級1の出力シンボルが生じないこともある。 後者の場合、処理は、上述したような処理321〜323を繰り返す。

    322のデアクティブ化処理によって、1つ以上の等級1の出力シンボルが生じた場合、処理は継続して、324において、等級1の出力シンボルに関連するソースシンボルが回復可能であると宣言される。 その後、処理は323に戻って、等級1の出力シンボルがさらに残存しているかどうかについて決定される。 323および324の処理は、直前のデアクティブ化処理によって生じた等級1の出力シンボルすべてが回復可能であると宣言されるまで、繰り返して行われる。

    322における選択されたソースシンボルのデアクティブ化によって、等級1の出力シンボルが生じない場合、または、324において等級1の出力シンボルに関連しているソースシンボルすべてが回復可能であると宣言されると、処理は323から325へ継続し、等級2以上の出力シンボルに関連しているソースシンボルが残存しているかどうかについて決定される。 もしそうなら、処理は321へ戻り、等級2以上の出力シンボルに関連している他のアクティブなソースシンボルが選択され、等級1の出力シンボルの存在がチェックされる。 処理は、1回以上繰り返してもよく、例えば、等級2以上の出力シンボルに関連している第1のソースシンボルのデアクティブ化によって等級1の出力シンボルは生じないが、等級2(またはそれ以上)の出力シンボルに関連しているさらなるソースシンボルが残存している場合である。 この場合、等級2(またはそれ以上)の出力シンボルに関連している他のソースシンボルのデアクティブ化によって、等級1の出力シンボルが1つ以上生じる場合がある。 すべてのソースシンボルが(起動処理310を介して)回復されるか、(322を介して)デアクティブ化されるか、または(325を介して)回復可能であると宣言されるまで、繰り返して行われ、325において、処理はソースシンボル値回復処理330へ進む。

    図6は、図3に示すソースシンボル回復処理330の一実施形態を示す。 最初に、332において、322においてデアクティブ化された1つ以上のソースシンボルの値が回復される。 特定の実施形態においては、例えばガウス消去法が復号化処理において用いられる場合には、デアクティブ化されたソースシンボルのすべての値が、この処理において回復される。 その後、334において、325において回復可能であると宣言された1つ以上のソースシンボルの値が、デアクティブ化されたソースシンボルの回復された値を用いて決定される。 ガウス消去法が用いられる上述のような一実施においては、回復可能なソースシンボルすべての値が、この処理において決定される。 332および334の代替実施形態においては、1つ以上だがすべてよりも少ない数の回復可能なソースシンボルの値が決定される。 これは、必要性、都合、費用などの理由から、連鎖反応符号の完全な復号化が必要でなかったり可能でない場合に利点となるであろう。 332および336の処理は、下記の特定の実施形態においてさらに説明する。

    図7Aは、ソースシンボル選択処理321の第2の実施形態を示しており、これにより、少なくとも等級の出力シンボルに関連しているアクティブなソースシンボルが選択されてデアクティブ化される。 最初に、702において、等級2以上の出力シンボルに関連しているアクティブなソースシンボルが識別される。 次に、704において、潜在的に回復可能なソースシンボル(すなわち、ソースシンボルをさらにイナクティブ化しなくても回復可能であろうソースシンボル)の数についての決定がなされる。 次に、706において、潜在的に回復可能なソースシンボルの数と所定数との比較がなされ、これにより、潜在的に回復可能なソースシンボルの数が所定数を超える場合は、識別されたソースシンボルが選択されて322においてデアクティブ化される。 潜在的に回復可能なソースシンボルの数が所定数と一致しないまたはこれを超えない場合は、処理は702に戻って、等級2以上の出力シンボルに関連している他のソースシンボルが識別される。

    最大数の等級1の出力シンボルを得るために、他の選択基準を用いてソースシンボルを選択してもよいことは、当業者に理解されるであろう。 例えば、一処理においては、最大数の出力シンボルに関連しているソースシンボルが、デアクティブ化のために選択される。 他の実施形態においては、ソースシンボルは、2つ以上の出力シンボルに関連しているソースシンボル群からランダムに選択される。 さらに他の実施形態においては、出力シンボルは、所定の数、例えば最小の数のソースシンボルに関連していると識別される。 その後、ソースシンボルのうちの1つ以外はすべて、デアクティブ化のために選択される。

    ソースシンボル選択処理の他の実施形態においては、一連のソースシンボルが回復されてもよい。 この処理において、等級2の出力シンボルは以下のように識別される。 すなわち、その関連しているソースシンボルのうちの1つが、それ自身、等級2の第2の出力シンボルに関連しており、かつ、その関連しているソースシンボルのうちの1つが、それ自身、等級2の第3の出力シンボルに関連しており、というように識別される。 以下、そのような出力シンボルの連鎖を等級2の連鎖と称する。

    図7Bは、本発明の一実施形態に係る、等級2の連鎖の復号化グラフを示す。 想定しうる等級2の連鎖に関係する出力シンボルは、720(a),720(c),720(d),720(e),および720(h)である。 例えば、ソースシンボル710(a)をデアクティブ化すると、出力シンボル720(c)の等級が1に減少し、これにより、ソースシンボル710(f)が回復可能となり、その結果、出力シンボル720(e)の等級が1に減少する。 これにより、ソースシンボル710(b)は回復可能となり、これにより、720(a)および720(d)の等級が1に減少し、710(g)および710(e)が回復可能となる。 わかるように、このような連鎖における出力シンボル数がkであるとし、このような連鎖におけるいずれかの出力シンボルに関連するソースシンボルのいずれかがデアクティブ化される場合に、等級1の出力シンボルの存在は、イナクティブ化復号化のk個の連続するステップによって保証される。 この処理は、等級2の連鎖が最大長となるように等級2の出力シンボルを識別することと、識別された出力シンボルに関連しているソースシンボルをデアクティブ化することをさらに含んでもよい。

    いずれかのソースシンボル選択処理は、「後戻り処理(back−tracking process)」をさらに含んでもよく、これによって、デアクティブ化されたソースシンボルが再アクティブ化されて、他のソースシンボルが、本明細書に提示された方法に従ったデアクティブ化のために選択される。 本発明は、ソースシンボルをデアクティブ化のために選択するという処理例に限定されるものではなく、本発明においては、2つ以上の出力シンボルに関連しているソースシンボルを選択するあらゆる方法を用いることができる。

    図2Bを参照して上述したように、復号化行列は連鎖反応符号の復号化に有用である。 イナクティブ化を用いる復号化処理に特に関連して、図2Bの復号化行列200を修正して、イナクティブなソースシンボルを含めるように対応することができる。 具体的には、復号化処理中のイナクティブなソースシンボルの指数のシーケンスをシーケンスi ,i ,. . . ,i とし、ソースシンボルの数をkとすると、イナクティブ化復号化は、置換行列PおよびQを生成し、Qは、列i およびK−n+1、列i およびK−n+2. . . ,ならびにi およびKを交換し、P・M・Qは、図8Bに示す形状を有する。 図8Aに示す修正された復号化行列は、下三行列Lと、部分行列A,B,およびCからなる。 部分行列Aの列は、イナクティブなソースシンボルに対応する。 復号器の任務は、
    P・M・Q・(Q −1・x)=P・b
    によって与えられるKの未知数x ,. . . ,x におけるK'個の一次方程式のシステムを解くことにある。 式中、xは列ベクトル(x ,...x )であり、bはK'個の受信した出力シンボルの値からなるベクトルである。 実際には、行列PおよびQは、完全な行列として格納されなくてもよく、イナクティブ化復号化の処理を辿ることによって計算された置換として格納されてもよい。 通常、この形式で要求されるメモリは、完全な行列を格納するよりもはるかに少ない。 当業者に理解されるように、回復処理は、図示の復号化行列の列の特定の置換に依存するものではなく、代わりの実施形態では、本発明において、他の列置換を用いてもよい。

    上記の式のシステムの解xを計算するために考えられうる多くの方法のうち、以下の1つの可能なものについて説明する。 これは、説明の目的を満足させるだけのものであり、本発明の範囲を限定する意図はない。

    アルゴリズムの核心を説明するために、ベクトルQ −1・xをyで表し、かつ、復号化のタスクをベクトルyを計算するタスクとして再規定することは利点がある。 Yが計算されると、xはQによって記述されたyの置換として効率的に計算されるであろう。 さらに、P・M・QをNで表し、ベクトルP・bをcで表し、すなわち、cはPによって記述されるbの置換であり、これもまた、計算するのに効率的である。 その後、タスクは、N・y=cを満足するベクトルyを計算することである。 式中、Nは図8Aの形状を有する。

    このシステムを解くために、ガウス消去法を行列Nに適用してもよい。 部分行列Bの行は、下三角行列Lの行によって消去される。 同じ変換がベクトルcに適用される。 この行為により、行列Bはゼロからなる行列に変換され、行列Cは、同じ消去ステップを行列AおよびCに適用することによって得られる異なる行列Dに変換される。 この変換を図8Bに示す。 n個のソースシンボルがデアクティブ化されており、K個のソースシンボルとK'個の出力シンボルとがあると仮定すると、部分行列Lは、(K−n)個の行および(K−n)個の列を有し、行列Aは、(K−n)個の行およびn個の列を有し、行列Dは、(K'−K+n)個の行およびn個の列を有する。 変換された行列内の部分行列LおよびAは、行列N内の対応部分行列と同じである。 ベクトルbも、2つの成分を有する他のベクトルfに変換される。 2つの成分とは、第1のK−n個のfの成分からなる870で与えられるベクトルdと、残りのfの成分からなる875におけるベクトルeである。 対応して、820における未知のベクトルyが2つの副ベクトルに再分割される。 ベクトルuは、第1のK−n個のyの入力からなり、ベクトルzは、残りのn個の入力からなる。

    この消去により、元の式システムは、D・z=eで与えられるシステムと、L・u+A・z=dというシステムとの2つの別個のシステムに変換される。 未知のベクトルzの値は、イナクティブ化されたソースシンボルに対応するソースシンボルの値に対応する。 これらの値が1組の式D・z=eから見つかると、uによって与えられる残りの値は、様々な方法によって見つけることができる。 本発明のある実施形態においては、行列Aをzで乗算し、結果生じたベクトルをdで排他的論理和演算してベクトルgを得、式L・u=gのシステムを解くことによって、これらの値を見つけることができる。 ある実施形態においては、後者のシステムは、連鎖反応復号器を用いて解いてもよい。 さらに別の実施形態においては、イナクティブなソースシンボルに対応する各ソースシンボルの値を、前記ソースシンボルに関連している近隣の出力シンボルに対応する出力シンボルの値で排他的論理和演算し、イナクティブなソースシンボルを対応の復号化グラフ(図示せず)から削除する。 これにより、すべてのイナクティブなソースシンボルが削除された、新たに限定された復号化グラフが生じる。 そして、通常の連鎖反応復号化を復号化グラフに適用して、他のソースシンボルを回復してもよい。

    式D・z=eのシステムは、様々な方法によって解くことができる。 ある実施形態においては、このシステムは、ガウス消去法アルゴリズムを用いて解かれてもよい。 他の実施形態においては、イナクティブ化復号化を帰納的に適用して、イナクティブなソースシンボルの未知の値を取得してもよい。 また、1次方程式のシステムを解く他の方法を用いてもよい。

    イナクティブ化復号器のある実施形態においては、復号化処理は、全ての出力シンボルが復号化グラフに入力される前に開始されてもよい。 これらの実施形態において、復号化グラフが等級1の出力シンボルをもはや有せず、少なくとも1つのアクティブなソースシンボルを有する場合はいつでも、上述の方策を用いて、ソースシンボルをイナクティブ化するか、または他の出力シンボルがもしあれば、それを復号化グラフに入力するかを決定してもよい。 復号化処理がすべての出力シンボルが収集される前に開始する場合、復号化行列の作成および復号化行列用の消去処理は、受信処理と実質的に同時に生じてもよく、その場合、消去処理の1つ以上のステップが各新規の出力シンボルの受信と共に行われる。 代わりに、1つ以上の出力シンボルが一度に収集できてもよく、復号化は、前記出力シンボルの全てが処理されるまで進められてもよい。 ソースシンボルがこの時点ですべて回復されない場合、全てのソースシンボルが回復されるまで、出力シンボルの他の組が要求および処理されてもよい。

    図9Aおよび9Bは、本発明の一実施形態に係る、上述の復号化グラフおよび行列を用いるイナクティブ化復号化の例を示す。 図9Aの元の復号化グラフは、910(a)〜910(f)で表される6つのソースシンボルと、920(a)〜920(g)で表される7つの出力シンボルとを含む。 わかるように、従来の連鎖反応復号化はこのグラフ上で開始することさえできない。 なぜならば、等級1の出力シンボルがないからである。 ソースシンボル910(f)をデアクティブ化することによって、連鎖反応復号化は開始可能となり、各段階において、等級1の出力シンボルを見つける。

    図9Bは、イナクティブ化処理の結果、復号化行列内で生じる置換を示す。 シンボル910(f)をデアクティブ化すると、行列の最後の列をデアクティブ化することになる。 そして、残りの列は、下三角形状に変換することができる。 丸印および矢印のシーケンスは、行および列が置換されるべき順序を示しており、k番目の矢印が示す位置は、新規の下三角行列の位置(k,k)に置換される必要がある。 例えば、位置(2,4)は位置(1,1)に、位置(1,1)は位置(2,2)に、位置(3,5)は位置(3,3)に、などとなるようにするために、置換は行われなければならない。

    図10Aは、ラプターにおいて説明したような、多段連鎖反応符号を復号化する際に有用な、修正された復号化グラフ1000を示す。 グラフ1000は、複数のソースシンボル1020(a)〜(f)と、上述の1052(a)〜(g)をまとめて含む多段出力シンボル1050と、チェックシンボル1055(a)〜(d)とを含む。 出力シンボル1052は、既に説明したとおりであり、それぞれは、1つ以上のソースシンボルに関連している。 各チェックシンボル1055も、1つ以上のソースシンボルに関連しており、2つ以上のソースシンボルの数学的関係を記述する。 例えば、シンボル830(a)は、ソースシンボル810(a),810(b),810(e),および810(f)に対応するソースシンボルの値の排他的論理和はゼロであることを意味する。 ソースシンボル間の相関性は、低密度パリティチェック符号などの静的符号化処理によって与えられてもよい。

    特定の例として、低密度パリティチェック符号を用いて静的符号化処理を行う場合、本符号内のチェックシンボルの数と等しい数であって、その値の集合は0である多段出力シンボルが、復号化グラフに追加されてもよく、復号化グラフは、ソースシンボルおよびチェックシンボル間の低密度パリティチェック符号のグラフによって増強されてもよく、復号化グラフは、新しいグラフに置換されてもよい。 低密度パリティチェック符号を選択することは、本願では必須ではない。 一般的に、静的符号化のあらゆる種類に関して、対応のパリティチェック行列によって、復号化グラフが増強されるであろう2分割グラフが規定される。

    図10Bは、修正された復号化グラフ10Aに対応する修正された復号化行列1070を示す。 修正された復号化行列1070は、ゼロおよび1が代入されており、ソースシンボルと同数の行と、主力シンボルおよびチェックシンボルの総数と同数の列とを有する。 対応して、修正された復号化行列1070は、2組の行からなり、1つは出力シンボルに対応し、1つはチェックシンボル対応する。 K'個の出力シンボル、C個のチェックシンボル、およびK個のソースシンボルの場合、修正された復号化行列は、K'個の行とK個の列からなる部分行列M と、C個の行とK個の列からなる行列M とに分解されてもよい。 x ,. . . ,x がソースシンボルの未知の値を表し、b ,. . . ,b が受信した出力シンボルの既知の値を示す場合、復号器のタスクは、M ・x=bおよびM ・x=0によって与えられる式のシステムを解くことにある。 組み合わせた式のシステムは、図10Bに示すとおりとなろう。

    本発明のある実施形態においては、イナクティブ化復号化は、図9Aの復号化グラフを図10Aの修正された復号化グラフに置き換え、8Bの復号化行列を図10Bの修正された復号化行列に置き換えて、上述のように進んでもよい。 他の実施形態においては、修正された復号化グラフ1000の異なるシンボルに対して、異なる優先度を異なる復号化段階において与えてもよい。 例えば、出力シンボルのみを処理し、等級1の出力シンボルが残存していなければ、等級1のチェックシンボルのみを復元することによって、復号化を開始してもよい。 これにより、ある応用においては、チェックシンボルは修正された復号化グラフに必要に応じて導入されるので、メモリおよび計算資源が少なくて済む。

    本明細書において説明した各方法は、多数の異なる方法(すなわち、ソフトウェア、ハードウェア、または両方の組み合わせ)および様々なシステムにおいて実施されてもよい。 ある実施形態においては、説明した方法は、コンピュータが読み取り可能なディスク上、メモリ(揮発性または不揮発性)内に格納された、またはプロセッサ(コンピュータ、埋め込みプロセッサなど)内に常駐する命令符号として実施されてもよい。 さらに、本明細書において説明した、イナクティブ化技術を用いて連鎖反応符号を復号化するシステムは、本明細書において説明した処理に対応する命令符号を格納および/または実行するように動作可能なメモリを有するプログラム可能なコンピュータまたはその他の装置を備えてもよい。

    図11Aは、上述の方法の処理に対応する命令符号を実行するように動作可能なコンピュータシステムの例を示す。 コンピュータシステム1110は、モニタ1114、画面1112、筐体1118、およびキーボード1134を含む。 マウス(図示せず)、ライトペン、または仮想現実インターフェイスなどの他の入出力インターフェイスをも含んで、入出力コマンドを提供してもよい。 筐体1118は、CDまたはDVDなどの着脱可能な媒体用のドライブ1116と、ハードドライブ(図示せず)とを収容する。 コンピュータシステム1110は、データ、命令符号、または本発明の方法を実行するのに必要な他の情報を記録または読み出すように動作可能なドライブおよび/またはドライブインターフェイスを含んでもよい。 筐体718は、プロセッサ、メモリなどのありふれたコンピュータ構成要素(図示せず)も収容する。

    図11Bは、上述の方法に対応する命令符号を実行するために用いられるコンピュータシステム1110の例の簡易システムブロック図を示す。 図11Aに示すように、コンピュータシステム1110は、入出力制御器1124と必要に応じて対話するモニタ1114を含む。 コンピュータシステム1110は、システムメモリ1126、中央プロセッサ1128、スピーカ1130、着脱可能ディスク1136、キーボード1134、固定ディスク1137、およびネットワークインターフェイス1138のようなサブシステムをさらに含む。 上述の方法と共に用いるのに適切な他のコンピュータシステムは、より多くのまたはより少ないサブシステムを含んでもよい。 例えば、他のコンピュータシステムは、さらなるプロセッサを含むことができる。 1140のような矢印は、コンピュータシステム1110のシステムバスアーキテクチャを表す。 しかしながら、これらの矢印1140は、サブシステム同士を連結する役目を果たすあらゆる相互接続手法を例証するものである。 例えば、ローカルバスを用いて、中央プロセッサ1128をシステムメモリ1126に接続することもできる。 図11Bに示すコンピュータシステム1110は、本発明と共に用いるのに適したコンピュータシステムの一例に過ぎない。 本発明と共に用いるのに適したサブシステムの他の構成は、当業者にとって容易に明らかであろう。

    したがって、本発明のある実施形態においては、元の内容を全てを復元する必要がある場合に、イナクティブ化復号化機構を用いて、連鎖反応符号化の受信オーバヘッドを低減する。

    本発明の他の実施例においては、イナクティブ化復号器を用いて、出力シンボルの平均等級を減少させ、これにより、出力シンボルを作成するために用いられる計算資源を減少させる。

    イナクティブ化復号器を用いる連鎖反応符号化システムの他の特性は、等級1の出力真ぶるが内容に重みテーブルを設計できる点である。 これは、そのような符号化システムの出力シンボルが、入力シンボルの値を含まないことを意味する。 ある実施形態においては、この特性を用いて、出力シンボルの平均等級を減少させ、これにより、符号器に対する計算負荷を減少させることができる。 さらに、ある応用においては、この特性を用いて、元データへの不正アクセスに対する軽度の安全確保を送信に与えてもよい。

    イナクティブ化復号化の例
    ラプターに開示されたような連鎖反応符号化システムの一実施形態を、Nで表されたデータシンボル、R個の静的符号化シンボルを生成する静的符号化、および重みテーブルによって説明される動的符号器によって説明する。 ある実施形態においては、復号器がうまく働く確率を高く保証する受信オーバヘッドも指定してもよい。 他の実施形態においては、完全な復号化が完了するまで、出力シンボルが収集されてもよく、受信オーバヘッドを指定する必要はない。

    以下のテーブルは、イナクティブ化復号器の例のための様々なパラメータを記述しており、第1の列は値Nの範囲を与え、第2の列は静的符号化シンボルの生成に関する情報を与え、第3の列は動的符号化シンボルの生成のための重みテーブルを与え、最後の第4の列は計算された静的符号化シンボルの数を与える。

    例えば、テーブルの9行目は、Nが5000〜8100の場合、静的符号化シンボルの数Rは0.05 N+100より大きいかまたは等しい最小の整数であることを意味している。 すべての場合において、静的符号器の第1の段階は、まず、ラプターに記載したように、ハミング符号を用いて元のシンボルを符号化してもよい。 第2の段階は、低密度パリティチェック符号を用いてもよい。 本例では、9行目において、この符号のパリティチェック行列は、2つの部分行列からなる。 第1の部分行列は、

    個の行およびN+R個の列を有し、式中、

    は、aより小さいか等しい最大の整数を表す。 第2の部分行列は、

    個の行およびN+R個の列を有する。 各部分行列は、第1の行列において各列がゼロでない入力を1つ有し、第2の行列において各列がゼロでない入力ちょうど7つ有するという条件の下、ランダムに選ばれる。

    S0,S1,およびS2に対応する重みテーブルは、以下で与えられる。

    S1およびS2の平均重みは、それぞれ4.254および4.154である。

    受信オーバヘッドが5%または50のどちらか大きいほうで固定されていれば、イナクティブ化復号化の失敗する確率は、10 −13より小さいことが、数学的に証明できる。 ここに示した具体例は、例証のためだけに過ぎない。 様々な実際の数値により、本発明の範囲内の設計がなされる。

    図12A〜12Bは、入力シンボル数Nの様々な値について、イナクティブ化復号器の数千のコンピュータシミュレーションを説明する図を示す。 横軸はNを表し、縦軸は修正された復号化グラフにおけるイナクティブなソースシンボル数を表す。 各点は、1回のシミュレーションを表す。 図10(a)は、1から140,000までのNの範囲についての結果を示す。 図10(b)は、1から16,000までのNの範囲についての図10(a)の拡大図である。

    わかるように、実行のうちのいくつかでは、イナクティブなソースシンボル数はゼロであり、通常の連鎖反応復号器では復号化が完了してしまうということを意味している。 しかしながら、Nが1および10,000の間では、多くの場合、イナクティブなソースシンボル数は1よりも大きい。 このような場合、通常の連鎖反応復号器は働かない。 ソースシンボルの数Nが20,000より大きい場合は、イナクティブ化されたソースシンボル数がゼロになりやすい。 このような場合、復号器は、復号化がうまくいく確率を非常に高度に保証するしつつ、特に高速である。

    以上の説明は、例証および説明の目的のために提示された。 これは網羅的なものでも、本発明を開示された厳密な形式に限定するものでもなく、上述の教示の観点から、多くの修正または変形が可能であることは明らかである。 説明した実施形態は、本発明の原理およびその実際の応用を最もよく説明するために選ばれたものであり、それにより、当業者が、様々な実施形態における本発明を、想定された特定の利用に適切なように様々に修正して利用できる。 本発明の範囲は、添付の請求項によって規定されることが意図されている。

    本明細書に引用される参考文献
    以下の参考文献は、その内容全体を、あらゆる目的のために参照により本明細書に引用したものとする。

    米国特許第6,307,487号「通信システム用の情報付加符号生成器および復号器」
    米国特許出願公開第10/032,156号「通信システム用の多段符号生成器および復号器」

    図1は、連鎖反応符号を用いてデータを符号化する処理例を示す。

    図2Aは、連鎖反応符号化された出力シンボルを復号化するための処理例を示す。

    図2Bは、図2Aの復号化グラフに対応する復号化行列を示す。

    図3は、本発明の一実施形態に係る、連鎖反応符号を復号化するために用いられる処理の概観を示す。

    図4Aは、図3に示す起動処理の第1の実施形態を示す。

    図4Bは、図3に示す起動処理310の第2の実施形態を示す。

    図5は、図3に示すソースシンボル選択およびデアクティブ化処理の第1の実施形態を示す。

    図6は、図3に示すソースシンボル回復処理の一実施形態を示す。

    図7Aは、図3に示すソースシンボル選択処理の第2の実施形態を示す。

    図7Bは、本発明の一実施形態に係る、等級2の連鎖の復号化グラフを示す。

    図8Aは、本発明に係る、修正された復号化行列を示す。

    図8Bは、本発明の一実施形態に係る、ガウス消去法を復号化行列に適用する処理を示す。

    図9Aおよび図9Bは、本発明の一実施形態に係る、復号化グラフおよび行列を用いたイナクティブ化復号化の例を示す。

    図10Aは、本発明の一実施形態に係る、多段連鎖反応符号の復号化に有用な、修正された復号化グラフを示す。

    図10Bは、修正された復号化グラフ10Aに対応した修正された復号化行列を示す。

    図11Aは、本発明に係る上述の方法の処理に対応する命令符号を実行するように動作可能なコンピュータシステム例を示す。

    図11Bは、本発明に係る上述の方法に対応する命令符号を実行するために用いられるコンピュータシステム例のシステムブロック略図を示す。

    図12A〜Bは、入力シンボル数Nの様々な値のためのイナクティブ化デコーダの数千のコンピュータシミュレーションを説明する図を示す。

    QQ群二维码
    意见反馈