(57)【特許請求の範囲】
【請求項１】
行列交換方法を用いる誤り訂正符号方法であって、
送信側に、
誤り訂正符号器、検査行列生成器A、検査行列が蓄積されている検査行列プールA、送信器を有し、
前記誤り訂正符号器は、
伝送データに基づいて符号長、符号化率を前記検査行列生成器Aに送信し、該検査行列生成器Aから受信した生成行列情報に基づいて誤り訂正符号処理を行い、前記送信器を用いて２元消失通信路に送出する手段を有し、
受信側に、
誤り訂正復号器、検査行列生成器B、前記送信側の検査行列プールAと検査行列を行列交換パケットにより共有している検査行列プールB、受信器を有するシステムにおいて、
前記検査行列生成器Bが、
前記検査行列生成器Aから前記行列交換パケットを受け取り、前記送信側で生成された前記生成行列情報に含まれる行列種別に対応する検査行列を生成し、前記誤り訂正復号器に通知し、
前記誤り訂正復号器が、
前記検査行列と、前記受信器で受信した伝送データを用いて該伝送データに含まれる消失パケットの回復処理を行い、
前記検査行列生成器Bが、
前記行列交換パケットを受信し、該行列交換パケットに含まれる行列種別に基づいて、
検査行列ファイルを読み込み、検査行列のパンクチャ処理を行う；
検査行列のアルゴリズムを生成し、検査行列のパンクチャ処理を行う；
検査行列のアルゴリズムを生成する；
のいずれかを行い、検査行列データを前記誤り訂正復号器に通知する
ことを特徴とする誤り訂正符号方法。
【請求項２】
行列交換方法を用いる誤り訂正符号システムであって、
送信側に、
誤り訂正符号器、検査行列生成器A、検査行列が蓄積されている検査行列プールA、送信器を有し、
前記誤り訂正符号器は、
伝送データに基づいて符号長、符号化率を前記検査行列生成器Aに送信し、該検査行列生成器Aから受信した生成行列情報に基づいて誤り訂正符号処理を行い、前記送信器を用いて２元消失通信路に送出する手段を有し、
受信側に、
誤り訂正復号器、検査行列生成器B、前記送信側の検査行列プールAと検査行列を行列交換パケットにより共有している検査行列プールB、受信器を有し、
前記検査行列生成器Bは、
前記検査行列生成器Aから前記行列交換パケットを受け取り、前記送信側で生成された前記生成行列情報に含まれる行列種別に対応する検査行列を生成し、前記誤り訂正復号器に通知する手段を有し、
前記誤り訂正復号器は、
前記検査行列と、前記受信器で受信した伝送データを用いて該伝送データに含まれる消失パケットの回復処理を行う手段を有し、
前記検査行列生成器Bは、
前記行列交換パケットを受信し、該行列交換パケットに含まれる行列種別に基づいて、
検査行列ファイルを読み込み、検査行列のパンクチャ処理を行う；
検査行列のアルゴリズムを生成し、検査行列のパンクチャ処理を行う；
検査行列のアルゴリズムを生成する；
のいずれかを行い、検査行列データを前記誤り訂正復号器に通知する手段を含む
ことを特徴とする誤り訂正符号システム。
【請求項３】
前記検査行列生成器Bは、
前記行列交換パケットの行列種別が、「検査行列ファイルを読み込み、検査行列のパンクチャ処理を行う」方式に該当する場合には、前記検査行列プールBから前記行列交換パケット内の親行列IDに該当する検査行列を読み込み、該検査行列の行数と該行列交換パケットの子行列の行数の比較結果に基づいてパンクチャ処理を行う手段を含む
請求項２記載の誤り訂正符号システム。
【請求項４】
前記検査行列生成器Bは、
前記行列交換パケットの行列種別が、「検査行列のアルゴリズムを生成し、検査行列のパンクチャ処理を行う」方式に該当する場合は、
生成すべき検査行列の行数、列数を満たす階段行列をH2とし、全要素が零の行列をH1とし、該H1については列ごとに２種類の列重みとそれらの割合を満たすようにランダムに非零要素を配置することにより検査行列を生成し、該検査行列の行数と前記行列交換パケットの子行列の行数の比較結果に基づいてパンクチャ処理を行う手段を含む
請求項２記載の誤り訂正符号システム。
【請求項５】
前記検査行列生成器Bは、
前記行列交換パケットの行列種別が、「検査行列のアルゴリズムを生成する」方式に該当する場合は、
生成すべき検査行列の行数、列数を満たす階段行列をH2とし、全要素が零の行列をH1とし、該H1については列ごとに２種類の列重みとそれらの割合を満たすようにランダムに非零要素を配置することにより検査行列を生成する手段を含む
請求項２記載の誤り訂正符号システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、誤り訂正符号方法及びシステムに係り、特に、誤り訂正符号を用いた伝送系において、誤り訂正符号の検査行列を生成する方法と、伝送系において誤り訂正符号の検査行列を共有する方法および伝送システムに関する。
【背景技術】
【０００２】
●パンクチャLDGM(Low Density Generator Matrix)の概要：
図１に、誤り訂正符号を用いた伝送システムの構成例を示す。
【０００３】
本通信システムは誤り訂正符号機能を具備し、送信側の誤り訂正符号器２においては伝送データを入力し誤り訂正符号を施し、送信器３から2元消失通信路４を介して送信され、受信側の誤り訂正復号器６においては誤り訂正復号を施して伝送データを出力するものである。
【０００４】
LDPC(Low Density Parity Check)符号は、符号長（ブロック長：N）に対して非零要素の数が疎である検査行列H(以下、「H行列」と記す)によって定義される線型ブロック符号である。LDPC符号の符号化は、このH行列から変換できる生成行列G(以下、「G行列」と記す)を用いて行われる。そのため、実際に伝送装置の誤り訂正技術として用いられている場合には、送信器側と受信器側でそれぞれのG行列もしくはH行列を共有する必要がある。例えば、図１にあるように、検査行列生成器１によってH行列（検査行列情報）とG行列（生成行列情報）を生成し、それぞれの送受信器側に配置する必要がある。H行列を生成するには、符号長Nの他に、ソースパケット数Kが必要である。このとき、パリティパケット数MはM=(N−K)、符号化率RはR=K/Nでそれぞれ与えられる。
【０００５】
LDGM符号はLDPC符号の一種で、疎行列と図２に示すような階段行列H2の組み合わせでH行列が構成される。例えば、図３は、N=16，K=8，R=0.5のLDGM符号(H=[H1|H2])である。一般的にLDPC符号のH行列は疎行列であるが、それに対応するG行列は疎行列ではないが、LDGM符号はG行列も疎行列になる特性を持つ。
【０００６】
図１にあるような伝送システムでLDGM符号を用いる場合には、伝送データによって望ましいソースパケット数K及びパリティパケット数Mが変化する。よって、H行列を生成するには、生成時にこれらの情報を与える必要があるが、常にそれが可能であるとは限らない。例えば、LDGM符号を用いて符号化し、パリティパケットを生成した後にパリティパケット数Mを変更する場合などがある。このとき、再度符号化せずにパリティパケット数Mを変化させる手段として、パンクチャ方式が提案されている（例えば、非特許文献1参照）。
【０００７】
図４にH行列をパンクチャ方式によってパリティパケット数Mを１つ減らしたH'行列(H'=[H1|H2'])に変換している様子を示す。H行列のc1行をc2行に加法演算し、マージすることで、理論的にパリティパケットp1がH'行列に対して無関係になる。これによってH'は実質的にK=8，M=7のLDGM符号を与える。また、この操作を繰り返すことで図５に示すようにパリティパケット数Mを減じることができる。
【０００８】
図６は、従来の2元消失通信路におけるLDPC符号の復号過程のフローチャートを示す。2元消失通信路４は、H行列パケットの受信状況に基づき、消失したパケットの回復処理を行う。H行列の各行が一つのパリティ検査方程式に対応し、最大で一つのパケット消失を回復することが可能である。そのため、H行列に対して、一つの消失パケットを回復させた、もしくは、消失パケットを全く含まない行はそれ以上の回復処理の可能性がないため「無効」であるとする(ステップ４,Yes、ステップ５,Yes)。逆に、一つ以上の消失パケットを含む場合は(ステップ４,Yes、ステップ５,No、ステップ６,No)、回復処理前の状態を「有効」であるとする。初期状態では、H行列の全ての行を「有効」と設定し (ステップ２) 、「有効」である各行について、ただ一つの消失パケットを含む場合に(ステップ４,Yes、ステップ５,No、ステップ６,Yes)回復処理を行い（ステップ７)、その後に当該行を「無効」にする(ステップ８)。
【０００９】
また、消失パケットが一つも含まない行が見つかった場合(ステップ４,Yes、ステップ５,Yes)、その行を「無効」にする（ステップ９）。
【００１０】
以上を繰り返して「有効」な行がなくなるか、「無効」な行の数が変化しない場合に(ステップ１１,Yes)処理を終了する。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】Guosen Yue; Xiaodong Wang; Madihian, M., "Design of Rate-Compatible Irregular Repeat Accumulate codes," Communications IEEE Transactions on, vol.55, no.6, pp.1153,1163, June 2007.
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、誤り訂正符号の検査行列を生成する方法は、伝送毎に符号化率を指定してからLDPC符号の検査行列をスクラッチから作るには時間がかかりすぎ、映像伝送のように低遅延性が要求される場合には特に難しいという問題がある。
【００１３】
誤り訂正符号の行列交換方法とシステムは、単純に検査行列ファイルのみを共有する場合、検査行列の大きさ（符号長）が大きくなるにつれ、そのファイルサイズも大きくなる。特に、伝送毎に変わる場合では、誤り訂正符号の検査行列を共有するには、可能な限り最小の伝送コストで行列情報を共有する方法が必要である。
【００１４】
本発明は、上記の点に鑑みなされたもので、符号化器と復号化器での検査行列を作成する時間と行列情報を共有する伝送コストを低減することが可能な誤り訂正符号方法を提供することを目的とする。
【００１５】
また、誤り訂正符号化器と誤り訂正復号器における行列を交換するのに必要十分かつ容量が最小となる情報のみを共有し、行列交換に関わるオーバヘッドを抑制することが可能な誤り訂正符号方法及びシステムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
一態様によれば、行列交換方法を用いる誤り訂正符号方法であって、
送信側に、
誤り訂正符号器、検査行列生成器A、検査行列が蓄積されている検査行列プールA、送信器を有し、
前記誤り訂正符号器は、
伝送データに基づいて符号長、符号化率を前記検査行列生成器Aに送信し、該検査行列生成器Aから受信した生成行列情報に基づいて誤り訂正符号処理を行い、前記送信器を用いて２元消失通信路に送出する手段を有し、
受信側に、
誤り訂正復号器、検査行列生成器B、前記送信側の検査行列プールAと検査行列を行列交換パケットにより共有している検査行列プールB、受信器を有するシステムにおいて、
前記検査行列生成器Bが、
前記検査行列生成器Aから前記行列交換パケットを受け取り、前記送信側で生成された前記生成行列情報に含まれる行列種別に対応する検査行列を生成し、前記誤り訂正復号器に通知し、
前記誤り訂正復号器が、
前記検査行列と、前記受信器で受信した伝送データを用いて該伝送データに含まれる消失パケットの回復処理を行い、
前記検査行列生成器Bが、
前記行列交換パケットを受信し、該行列交換パケットに含まれる行列種別に基づいて、
検査行列ファイルを読み込み、検査行列のパンクチャ処理を行う；
検査行列のアルゴリズムを生成し、検査行列のパンクチャ処理を行う；
検査行列のアルゴリズムを生成する；
のいずれかを行い、検査行列データを前記誤り訂正復号器に通知する誤り訂正符号方法が提供される。
【発明の効果】
【００１７】
一態様によれば、アプリケーションに応じて最適なH行列の共有方法を選択することができるようになり、幅広い用途に誤り訂正符号を用いることができるため運用が容易になる。
【図面の簡単な説明】
【００１８】
【図１】誤り停止符号を用いた伝送システムの構成例である。
【図２】階段行列の例である。
【図３】N=16,K=8,R=0.5のLDGM符号の例である。
【図４】H行列をパンクチャ方式によりH'行列に変換した例である。
【図５】パンクチャ操作を繰り返した例である。
【図６】従来の２元消失通信路におけるLDPC符号の復号過程のフローチャートである。
【図７】本発明の第１の実施の形態における根行列拡張のフローチャートである。
【図８】本発明の第１の実施の形態における初期化処理のフローチャートである。
【図９】本発明の第１の実施の形態における最小ループ局所的最大化アルゴリズムである。
【図１０】本発明の第１の実施の形態における元のH行列の例である。
【図１１】本発明の第１の実施の形態における初期化処理終了時のH'行列の例である。
【図１２】本発明の第１の実施の形態における新たに生成されたH行列の例である。
【図１３】本発明の第２の実施の形態における行列交換方法を用いた通信システムの構成例である。
【図１４】本発明の第２の実施の形態におけるファイル読込とパンクチャ処理による生成方式の行列交換パケットの例である。
【図１５】本発明の第２の実施の形態におけるアルゴリズム生成とパンクチャ処理による生成方式の行列交換パケットの例である。
【図１６】本発明の第２の実施の形態におけるアルゴリズム生成のみによる生成方式(スクラッチ型)の行列交換パケットの例である。
【図１７】本発明の第２の実施の形態におけるアルゴリズム生成のみによる生成方式（根行列拡張型）の行列交換パケットの例である。
【図１８】本発明の第２の実施の形態における行列交換方法のフローチャートである。
【図１９】本発明の第２の実施の形態における検査行列のパンクチャ処理のフローチャートである。
【図２０】本発明の第２の実施の形態における検査行列のアルゴリズム生成（スクラッチ型）のフローチャートである。
【図２１】本発明の第２の実施の形態における行列交換情報に基づき生成された検査行列の例である。
【発明を実施するための形態】
【００１９】
以下、図面と共に本発明の実施の形態を説明する。
【００２０】
［第1の実施の形態］
本実施の形態は、符号化器と復号器の間での検査行列に関するものであり、符号化器側と復号器側で共有する単一の検査行列Hの複数の行を加法演算してマージすることで行数を小さくし、要素を零に設定した行を追加し、列内のgirthを最大とするように非零要素を移動して行列を大きくすることで、符号化性能を低下させずに単一の検査行列Hから任意の符号長（検査行列の大きさ）の検査行列H'を生成し、検査行列を作成する時間と行列情報を共有する伝送コストを低減するものである。
【００２１】
本実施の形態は、図1に示す伝送システムにおける検査行列生成器１において、種となる行列(根行列)から任意のパリティ量（符号化率）の行列を生成することができ、元から行列を作るよりも短時間で構成可能になる。
【００２２】
本実施の形態は、伝送するパケットサイズ、誤り訂正符号化率を送信毎に変化させて伝送する場合に有効である。
【００２３】
図７は、本発明の第１の実施の形態における根行列拡張のフローチャートを示す。当該フローチャートの処理は、与えられたH行列(根行列)に対して初期化処理により領域の大きさを拡張し、その後、拡張された領域に非零要素の密度が均一になるように最小ループ局所的最大化アルゴリズムを用いてJ=floor[(E)/(m0+m1)]の非零要素を移動させる。ここで、floorはfloor関数であり、小数点以下を打ち切りとする。Eは行列内の非零要素の総数（行列内の「１」の立っている数）である。また、m1の範囲は100〜5000とし、m0の範囲は1〜4×m1とする。
【００２４】
ステップ１１０）  検査行列H1の非零要素の総数をE、H1のパリティ数をm0、H行列をパンクチャ方式によってパリティパケット数Mを１つ減らしたH'行列で追加されたパリティ数をm1とする。
【００２５】
ステップ１２０）  与えられたH行列に(根行列)に対して初期化処理を行い、大きさを拡張する。詳細については図８に示す。
【００２６】
ステップ１３０）  J=floor[(E)/(m0+m1)]とする。
【００２７】
ステップ１４０）  ｊ＝１とする。
【００２８】
ステップ１５０）  最小ループ局所的最大化アルゴリズムにより非零要素を拡張領域に移動する。詳細については図９に示す。
【００２９】
ステップ１６０）  j＝j＋１とする。
【００３０】
ステップ１７０）  jがステップ１３０で求められたJより大きい場合には当該処理を終了し、そうでない場合にはステップ１５０に戻る。
【００３１】
次に、上記のステップ１２０の初期化の処理について図８を用いて説明する。
【００３２】
当該初期化処理は与えられた根行列Hに対して、それに含まれる疎行列H1のパリティ数をm0とし、追加するパリティの数をm1とし（ステップ１２１）、（m0+m1）の大きさを持つ階段行列H2'を生成する(ステップ１２２)。行列に含まれる疎行列H1の行数m0を（m0+m1）行に伸張し、新たに追加された領域の要素を全て零に設定する(ステップ１２３)。また、同様H行列に含まれる階段行列H2に関しても、行列の大きさを（m0+m1）×（m0+m1）に伸張した階段行列H2'を生成する(ステップ１２２)。これらの行列を用いてH行列をH'=[H1'|H2']と設定する。
【００３３】
次に、図７のステップ１５０における最小ループ局所的最大化アルゴリズムについて説明する。
【００３４】
図９は、本発明の第１の実施の形態における最小ループ局所的最大化アルゴリズムを示す。
【００３５】
与えられたH1行列の中で、最小のgirthを持つ非零要素の列番号を調べ、それをDとし、min_girthに当該girthを設定する（ステップ１６１）。"girth"とはその非零要素から始まって、関係する行および列を辿り元に戻る経路のうち最小の距離のことである。上記の最小のgirthを構成する要素の行番号をiに設定する（ステップ１６２）。続いて、前述のステップ１２３においてH1'に追加された新たな領域に属する第D列内でgirthを最大にするようi行D列の非零要素を移動する(ステップ１６３)。当該処理は、行列H1'の全要素についてgirthを調べ、そのうち最小のものを移動する。移動先候補に仮に非零要素を移動して、そこで、また移動した要素のgirthを調べる。このようにして、移動先候補でのgirthを全て調べて、そのうち、girthが最大だった場所を移動先として非零要素を移動する。
【００３６】
以下に、本実施の形態の具体的な例を示す。
【００３７】
図１０は、本発明の第１の実施の形態における与えられた元のH行列の例である。元のH行列は、K=8，M=m0=4，N=12，R=0.67である。これにm1=2の列を新たに追加したK=8,M=6,N=14,R=0.57のH行列H'を生成する。図１１の例は初期化処理を終えた段階の状態である。ここでは、J＝４の要素を最小ループ局所的最大化アルゴリズムに基づいて新たに追加された領域に移動させる。図１２は、新たに生成されたH行列である。
【００３８】
LDPC符号の符号性能は非零要素の位置と、それらのgirthの値によって左右され（girthが大きい方がよい）、これを考慮して符号特性のよいH行列を毎回ゼロから作るには時間がかかる。そのため、本実施の形態では、ゼロから作るのではなく、ある程度の大きさのH行列を事前に準備し、それを根として行列を拡張するアプローチをとった。拡張する場合には、行列に含まれる最小のgirthを最大にするために、girthの小さい要素を優先的に移動させ、全体としてgirthを増加させることを狙っている。なお、girthの小さい要素を優先的に移動させる場合に、移動させる要素の数はgirthに基づいてではなく、目的の行列サイズ（どの程度伸ばすか）によって決定する（例えば、図７のＪの値に相当）。
【００３９】
本実施の形態の方法によれば、例えば、符号長n=1125、パリティ長m=125の行列から検査行列を生成する場合、符号長n=0から1125まで拡張するのと同等の時間を要する従来技術に較べてgirth計算は１/2時間に短縮される。
【００４０】
[第２の実施の形態]
本実施の形態では、音声、映像、データ伝送など様々なサービスが想定される伝送で誤り訂正符号を適用する場合、利用用途に応じて行列交換のために発生する伝送情報量と、送受信器上での行列生成計算時間を短縮するための方法とシステムを説明する。
【００４１】
図１３は、本発明の第２の実施の形態における行列交換方法を用いた通信システムの構成例を示す。本通信システムは誤り訂正符号機能を具備し、送信側の誤り訂正符号器２においては伝送データを入力し誤り訂正符号を施し、2元消失通信路４を介して通信され、受信側の誤り訂正復号器６においては誤り訂正復号を施して伝送データを出力するものである。
【００４２】
本通信システムの送信側は、誤り訂正符号器２、検査行列生成器１０A、検査行列プール２０A、および、送信器３から構成される。誤り訂正符号器２は入力された伝送データに基づき符号長、符号化率を検査行列生成器１０Aに送信したのち、生成行列情報を受信する。その後、ここで得られた生成行列情報に基づき誤り訂正符号処理を行い、送信器３を用いて2元消失通信路４に送出する。
【００４３】
本システムの受信側は、誤り訂正復号器６、検査行列生成器１０B、検査行列プール２０B、および、受信器５から構成される。検査行列生成器１０Bは送信側の検査行列生成器１０Aから行列交換パケットを受け取り、これに基づき送信側で生成された生成行列に対応する検査行列を生成し、誤り訂正復号器６に通知する。誤り訂正復号器６はこの検査行列と、受信器５を用いて受信された伝送データを用いて、伝送データに含まれる消失パケットの回復処理を行う。その後、伝送データを送出する。
【００４４】
検査行列プール２０A、２０Bは予め共有してあるH行列が格納されている記憶装置である。
【００４５】
本実施の形態では、行列交換の方法として
a.  ファイル読込後にパンクチャ処理による生成  [行列種別0]
b.  アルゴリズム生成後にパンクチャ処理による生成  [行列種別1]
c.  アルゴリズム生成のみによる生成(スクラッチ型)  [行列種別2]
d.  アルゴリズム生成のみによる生成(根行列拡張型)  [行列種別3]
の４種類が存在する。
【００４６】
以下に各行列交換の選択基準を示す。
【００４７】
a.  ファイル読込後にパンクチャ処理による生成：
当該方式は、
・誤り訂正符号の処理時間の制約が決まっている場合；
・送受信器が事前に確定している場合；
・送受信器で保存領域が確保できる場合；
・伝送するパケットサイズ、ビットレートの変化が少ない場合；
等の場合に選択され、安定したビットレートでの圧縮映像伝送に適している。
【００４８】
b.  アルゴリズム生成後にパンクチャ処理による生成：
当該方式は、
・誤り訂正符号の処理時間の制約が決まっている場合；
・送受信器が事前に確定していない場合；
・送受信器で保存領域が確保できない場合；
・伝送するパケットサイズ、ビットレートの変化が大きい場合；
等の場合に選択され、可変ビットレート、スケーラブル符号を用いた映像マルチキャスト配信に適している。
【００４９】
c.  アルゴリズム生成のみによる生成(スクラッチ型)：
当該方式は、
・誤り訂正符号の処理時間の制約が決まっていない場合；
に選択され、ファイルデータ伝送に適している。
【００５０】
行列種別毎の処理は以下の通りである。
【００５１】
[行列種別＝０]
d.  アルゴリズム生成のみによる生成（根行列拡張型）
当該方式は、
・誤り訂正符号の処理時間の制約が決まっている場合；
・方式aおよび方式bよりも良い誤り訂正能力を求められる場合；
・方式aおよび方式bよりも処理時間制約が緩和である場合；
・方式aおよび方式bよりも受信端末上の処理性能が高い場合；
に選択され、ハードウェア実装を基盤とした映像受信に適している。
【００５２】
図１４は、本発明の第２の実施の形態におけるファイル読込後にパンクチャ処理による生成方式の行列交換のパケットの例を示す。この行列交換パケットは「ファイル読込後にパンクチャ処理による生成方式」を識別する行列種別、検査行列プール２０Bに蓄積されている検査行列を一意に指定するための親行列ID、実際に誤り訂正符号処理で用いられる検査行列（以下、「子行列」と記す）の行数、および列数で構成される。親行列の列数は親行列IDより読込まれる情報により取得され、これはH行列内でパディングを含めたパケット数、すなわち(子行列数＋パディングパケット数)の値に同じである。ここで、親行列IDとは、親行列を特定するためのID（ファイル名のようなもの）であり、親行列IDを指定すると、検査行列プール２０A、２０Bから親行列情報が読み込まれ、読み込まれた親行列情報の中に含まれる親行列の列数と子行列の列数との関係は「子行列数＋パディングパケット数」の値である。
【００５３】
[行列種別＝１]
図１５は、本発明の第２の実施の形態におけるアルゴリズム生成後にパンクチャ処理による生成方式の行列交換パケットの例を示す。この行列交換パケットは「アルゴリズム生成後にパンクチャ処理による生成方式」を識別する行列種別、アルゴリズム生成する検査行列(親行列と呼ぶ)の行数および列数、実際に誤り訂正符号処理で用いられる検査行列(子行列)の行数および列数、アルゴリズム生成でパラメータとして与える2種類の検査行列の列重み、およびそれら列重みの割合で構成される。これらのパラメータは、ユーザが任意に指定して与えるものとする。例えば、重み1＝3、重み2＝7、重み1の列数：重み2の列数＝0.8：0.2とする。
【００５４】
[行列種別＝２]
図１６は、本発明の第２の実施の形態におけるアルゴリズム生成のみによる生成方式(スクラッチ型)の行列交換パケットの例を示す。この行列交換パケットは「アルゴリズム生成のみによる生成方式(スクラッチ型)」を識別する行列種別、アルゴリズム生成時の検査行列(親行列)の列数、実際に誤り訂正符号処理で用いられる検査行列(子行列)の行数および列数、アルゴリズム生成でパラメータとして与える2種類の検査行列の列重み、およびそれら列重みの割合で構成される。パラメータの与え方は上記の図１５と同様である。
【００５５】
[行列種別＝３]
図１７は、本発明の第２の実施の形態におけるアルゴリズム生成のみによる生成方式(根行列拡張型)の行列交換パケットの例を示す。この行列交換パケットは「アルゴリズム生成のみによる生成方式(根行列拡張型)」を識別する行列種別、アルゴリズム生成時の検査行列(親行列)の列数、実際に誤り訂正符号処理で用いられる検査行列(子行列)の行数および列数、アルゴリズム生成でパラメータとして与える2種類の検査行列の列重み、およびそれら列重みの割合で構成される。パラメータの与え方は上記の図１５と同様である。
【００５６】
次に、行列変換について説明する。
【００５７】
図１８は、本発明の第２の実施の形態における行列交換方法のフローチャートである。
【００５８】
検査行列生成器１０Bは、検査行列生成器１０Aから受信した行列交換パケットの行列種別に基づいて、検査号列の生成方法を選択する。
【００５９】
受信側にある検査行列生成器１０Bは、行列種別がファイル読込後にパンクチャ処理による生成方式に該当する場合(行列種別＝０)、当該検査行列生成器１０Bに接続された検査行列プール２０Bより行列交換パケット内の親行列ID に該当する検査行列を読み込む（ステップ５０２,Yes、ステップ５０３）。なお、この検査行列プール２０Bは事前に送受信側で同期し同一の検査行列データが共有されている。その後、読み込んだ検査行列の行数と行列交換パケットの子行列の行数を比較し、図１９に示す方法によりパンクチャ処理を行う（ステップ５０６）。読み込んだ検査行列の行数と行列交換パケットの子行列の行数の差分から、基本的に前者が大きいため、パンクチャ処理を行うことにより、子行列の行数に合わせていく。これにより得られた検査行列を誤り訂正復号器６に通知する(ステップ５１０)。
【００６０】
行列種別が、アルゴリズム生成後にパンクチャ処理による生成方式に該当する場合(行列種別＝１)(ステップ５０４,Yes)、行列交換パケットの情報に基づいて、図２０に示すように検査行列のアルゴリズム生成を行う(ステップ５０５)。ここでは、生成すべき検査行列の行数、列数を満たす階段行列H2および全要素が零の行列H1を用意する。H1については、列ごとに2種類の列重みとそれらの割合を満たすようにランダムに非零要素を配置する。
【００６１】
図２１に親行列の列数N=16、子行列の行数M=8、列重み1=2、列重み2=3、列重み割合=0.625の場合に 本方法を適用した例を示している。その後、これによって生成された検査行列の行数と行列交換パケットの子行列の行数を比較し、図１９に示す方法によりパンクチャ処理を行う(ステップ５０６)。これにより得られた検査行列を誤り訂正復号器６に通知する(ステップ５１０)。
【００６２】
行列種別がアルゴリズム生成のみによる生成方式(スクラッチ型)に該当する場合(行列種別＝２) （ステップ５０７,Yes）、既存のH行列生成方法により検査行列のアルゴリズムを生成し、ステップ５１２に移行する（ステップ５０８）。アルゴリズム生成のみによる生成方式(根行列拡張型)に該当する場合（行列種別＝３)（ステップ５０９,Yes）、前述の図７の処理を行う（ステップ５１０）。最後に検査行列データを誤り訂正復号器６に通知して処理を終了する（ステップ５１２）。いずれの行列種別にも該当しない場合は（ステップ５０９,No）、エラー処理を行い（ステップ５１１）、処理を終了する。
【００６３】
ここで、図１９の検査行列のパンクチャ処理について説明する。
【００６４】
検査行列生成器１０Bは、j0=1、cnt=0、step=2とする（ステップ６０１）。ここで、Step=2とするのは、パンクチャ処理では、実質的にH行列の行数とパリティ部分の列数を小さくする。パンクチャを行うには消滅させる行／列の順番があり、初めの１つ目は図４のようになり、２番目のパリティパケットを基準にパンクチャさせているため、１番目のパリティパケットが消滅することによる。j=j0とする（ステップ６０２）。
【００６５】
第j番目のパリティパケットをパンクチャさせ（ステップ６０３）、cntをcnt=cnt+1とする（ステップ６０４）。現在の行列の列数が子行列の列数と一致するかを判定し、一致すれば(ステップ６０５,Yes)、当該処理を終了し、一致しなければ(ステップ６０５,No)、jが所定の数mより大きい場合（j>m）は（ステップ６０６,Yes）、j0=j0×2とし（ステップ６０８）、step=step×2とし(ステップ６０９)、ステップ６０２に戻る。当該処理は、２番目のパリティパケットを基準にパンクチャさせると、１番目のパリティパケットが消滅し、次に、2,4,6,…と順にパンクチャさせていくことにより、全て偶数番目のパリティパケットのパンクチャが終わったら、残ったパリティパケットの中で先頭から偶数番目のパケットがパンクチャされる。つまり、最初の１段目で2,4,6,8,…がパンクチャされ、２段目は4,8,16,…がパンクチャされる。j≦mの場合は(ステップ６０６,No)、j=j+stepとし（ステップ６０７）、ステップ６０３に移行する。
【００６６】
次に、行列交換パケットの情報に基づいて、検査行列のアルゴリズム生成(スクラッチ型)の処理を図２０を用いて説明する。
【００６７】
まず、親行列の列数をNとし、子行列の列数をMとする（ステップ７０１）。num_deg1=floor[N×(列重み割合)]、deg1=列重み1、deg2=列重み2とする（ステップ７０２）。j=0とし（ステップ７０３）、検査行列H1=全要素が例のN×(N-M)行列を求める（ステップ７０４）。更に検査行列H2=M×Mの階段行列を求める(ステップ７０５)。jが子行列の行数M以上である場合は（ステップ７０６,No）、検査行列を[H1|H2]として（ステップ７０７）、当該処理を終了する。jがMより小さい場合は（ステップ７０６、Yes）、j<num_deg1であるか判定し、そうである場合には（ステップ７０８,Yes）、検査行列H１の第j列からランダムにdeg1個の列を選び、それらを非零要素に設定し（ステップ７０９）、j=j+1として(ステップ７１１)、ステップ７０６に移行する。j≧num_deg1である場合は（ステップ７０８、No）、H1の第j列からランダムにdeg2個の列を選び、それらを非零要素に設定し(ステップ７１０)、j=j+1として(ステップ７１１)、ステップ７０６に移行する。
【００６８】
本実施の形態では、複数あるH行列の交換方法を統合的に扱うことで、幅広い場面への適用が可能である。さらに、パンクチャ処理による符号化率の制御を行う伝送方式を前提にしているため、ネットワーク状況や伝送データ帯域によって最適な誤り訂正(通信路上でのパケット消失を回復できる最小の符号化率を持つ行列を用いた誤り訂正)が可能である。また、送信側及び受信側で同じ行列を構成し、交換するのに必要十分かつ容量最小な情報(送信器、受信器上で同じ行列を構成するのに必要となる情報)のみを共有し、行列交換に関わるオーバヘッドを最小限に抑えることが可能となる。
【００６９】
例えば、LDPCで一般に使われている行列ファイル形式であるalit形式では、符号長n=1125、パリティ数m=125の行列データは30キロバイトを、上記の「アルゴリズムを生成後にパンクチャ処理を行う方式」を用いることにより、13バイトに低減することが可能となる。
【００７０】
なお、上記の図７〜図９の処理を行う検査行列生成器、図１８〜図２０に示す検査行列生成器の処理をプログラムとして構築し、検査行列生成器として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【００７１】
以上の実施の形態に関し、更に、以下の項目を開示する。
【００７２】
（１）誤り訂正符号を用いた伝送システムにおいて、誤り訂正符号の検査行列を生成する誤り訂正符号方法であって、
誤り訂正符号化を行う装置の記憶手段上において、
与えられたH行列（以下、「根行列H」と記す）に対して大きさを拡張し、新たに追加された領域（以下、「拡張領域」と記す）の要素を全て零に設定する初期化ステップと、
前記拡張領域に非零要素の密度が均一になるように最小ループ局所的最大化アルゴリズムを用いて、前記根行列の非零要素を該拡張領域に移動する根行列拡張ステップと、
を行うことを特徴とする誤り訂正符号方法。
【００７３】
（２）前記初期化ステップにおいて、
前記根行列Hに含まれる疎行列H1の行数m1を（m0+m1）(但し、m0はH1のパリティ数、m1は追加されたパリティ数)行に伸張し、前記拡張領域の要素を全て零に設定し、
前記根行列Hに含まれる階段行列H2の大きさを（m0+m1）×(m0+m1)に伸張した階段行列H2'を生成し、
H'=[H1'|H2']（但し、H1'は拡張された行列）とし、
前記根行列拡張ステップにおいて、
前記根行列中で非零要素から始まり関係する行及び列を辿り元に戻る経路のうち最小の距離となるgirthを持つ非零要素の列番号を抽出し、このときのgirth値をmin_girthとし、
最小のgirthを構成する要素の行番号をiとし、
前記H1'に追加された前記拡張領域に属する第D列内で前記girthを最大にするようにi行D列の非零要素を該拡張領域に移動する
（１）記載の誤り訂正符号方法。
【００７４】
（３）行列交換方法を用いる誤り訂正符号方法であって、
送信側に、
誤り訂正符号器、検査行列生成器A、検査行列が蓄積されている検査行列プールA、送信器を有し、
前記誤り訂正符号器は、
伝送データに基づいて符号長、符号化率を前記検査行列生成器Aに送信し、該検査行列生成器Aから受信した生成行列情報に基づいて誤り訂正符号処理を行い、前記送信器を用いて２元消失通信路に送出する手段を有し、
受信側に、
誤り訂正復号器、検査行列生成器B、前記送信側の検査行列プールAと検査行列を行列交換パケットにより共有している検査行列プールB、受信器を有するシステムにおいて、
前記検査行列生成器Bが、
前記検査行列生成器Aから前記行列交換パケットを受け取り、前記送信側で生成された前記生成行列情報に含まれる行列種別に対応する検査行列を生成し、前記誤り訂正復号器に通知し、
前記誤り訂正復号器が、
前記検査行列と、前記受信器で受信した伝送データを用いて該伝送データに含まれる消失パケットの回復処理を行う
ことを特徴とする誤り訂正符号方法。
【００７５】
（４）行列交換方法を用いる誤り訂正符号システムであって、
送信側に、
誤り訂正符号器、検査行列生成器A、検査行列が蓄積されている検査行列プールA、送信器を有し、
前記誤り訂正符号器は、
伝送データに基づいて符号長、符号化率を前記検査行列生成器Aに送信し、該検査行列生成器Aから受信した生成行列情報に基づいて誤り訂正符号処理を行い、前記送信器を用いて２元消失通信路に送出する手段を有し、
受信側に、
誤り訂正復号器、検査行列生成器B、前記送信側の検査行列プールAと検査行列を行列交換パケットにより共有している検査行列プールB、受信器を有し、
前記検査行列生成器Bは、
前記検査行列生成器Aから前記行列交換パケットを受け取り、前記送信側で生成された前記生成行列情報に含まれる行列種別に対応する検査行列を生成し、前記誤り訂正復号器に通知する手段を有し、
前記誤り訂正復号器は、
前記検査行列と、前記受信器で受信した伝送データを用いて該伝送データに含まれる消失パケットの回復処理を行う手段を有する
ことを特徴とする誤り訂正符号システム。
【００７６】
（５）前記検査行列生成器Bは、
前記行列交換パケットを受信し、該行列交換パケットに含まれる行列種別に基づいて、
検査行列ファイルを読み込み、検査行列のパンクチャ処理を行う；
検査行列のアルゴリズムを生成し、検査行列のパンクチャ処理を行う；
検査行列のアルゴリズムを生成する；
のいずれかを行い、検査行列データを前記や誤り訂正復号器に通知する手段を含む
（４）記載の誤り訂正符号システム。
【００７７】
（６）前記検査行列生成器Bは、
前記行列交換パケットの行列種別が、「検査行列ファイルを読み込み、検査行列のパンクチャ処理を行う」方式に該当する場合には、前記検査行列プールBから前記行列交換パケット内の親行列IDに該当する検査行列を読み込み、該検査行列の行数と該行列交換パケットの子行列の行数の比較結果に基づいてパンクチャ処理を行う手段を含む
（５）記載の誤り訂正符号システム。
【００７８】
（７）前記検査行列生成器Bは、
前記行列交換パケットの行列種別が、「検査行列のアルゴリズムを生成し、検査行列のパンクチャ処理を行う」方式に該当する場合は、
生成すべき検査行列の行数、列数を満たす階段行列をH2とし、全要素が零の行列をH1とし、該H1については列ごとに２種類の列重みとそれらの割合を満たすようにランダムに非零要素を配置することにより検査行列を生成し、該検査行列の行数と前記行列交換パケットの子行列の行数の比較結果に基づいてパンクチャ処理を行う手段を含む
（５）記載の誤り訂正符号システム。
【００７９】
（８）前記検査行列生成器Bは、
前記行列交換パケットの行列種別が、「検査行列のアルゴリズムを生成する」方式に該当する場合は、
生成すべき検査行列の行数、列数を満たす階段行列をH2とし、全要素が零の行列をH1とし、該H1については列ごとに２種類の列重みとそれらの割合を満たすようにランダムに非零要素を配置することにより検査行列を生成する手段を含む
（５）記載の誤り訂正符号システム。
【００８０】
一態様によれば、誤り訂正符号方法により、符号の符号性能を決定するH行列（検査行列）の生成について、根行列の符号特性を低減させずに、かつ、スクラッチからH行列を生成するよりも高速に所望のH行列を得ることが可能になる。これにより、動画配信のように、ビットレートが可変かつリアルタイム性を要求される伝送システムにおいて状況に適したH行列による誤り訂正が可能になる。
【００８１】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００８２】
１  検査行列生成器
２  誤り訂正符号器
３  送信器
４  ２元消失通信路
５  受信器
６  誤り訂正復号器
１０A，１０B  検査行列生成器
２０A、２０B  検査行列プール
【図１】
0005901819.tif 000002
【図２】
0005901819.tif 000003
【図３】
0005901819.tif 000004
【図４】
0005901819.tif 000005
【図５】
0005901819.tif 000006
【図６】
0005901819.tif 000007
【図７】
0005901819.tif 000008
【図８】
0005901819.tif 000009
【図９】
0005901819.tif 000010
【図１０】
0005901819.tif 000011
【図１１】
0005901819.tif 000012
【図１２】
0005901819.tif 000013
【図１３】
0005901819.tif 000014
【図１４】
0005901819.tif 000015
【図１５】
0005901819.tif 000016
【図１６】
0005901819.tif 000017
【図１７】
0005901819.tif 000018
【図１８】
0005901819.tif 000019
【図１９】
0005901819.tif 000020
【図２０】
0005901819.tif 000021
【図２１】
0005901819.tif 000022