(57)【要約】本発明は可変長誤り訂正（VLEC：variable-length  error-correcting）符号技術に関するものであり、その主要なステップは：必要とされる全パラメータを定義し、固定長L1を有する符号を生成し、そうして得られる集合W内に符号語から最小発散距離dmin離れたあらゆる可能なL1元項を保存し（こうして得られた新しい集合Wが空でなければあらゆる語の末尾に追加の１ビットが添加される）、あらゆる符号語と距離の基準を満たさないWのすべての語を消去し、最終的な集合Wのあらゆる語が別の距離基準を満たすことを検証することである。本発明によれば、符号語消去はもはや直前に得たグループだけで行うのではなく、符号語消去工程においてアルゴリズムが所与の長さLsのグループに途中をスキップして戻って行うような動作を実現することが提案される。これにより非常にすばやく短い符号長に立ち戻り、先行諸方法の多くのステップをスキップすることができるようになる。
2006520155.tif 000002
【特許請求の範囲】
【請求項１】
可変長誤り符号を構築する方法であって：
（１）必要とされるパラメータ：符号語の長さの最小値および最大値としてそれぞれL1およびLmax、各符号語の間の自由距離dfree（該距離dfreeは、ＶＬＥＣ符号Cについて、あらゆる任意の拡張符号の集合におけるハミング距離の最小値である）、必要とされる符号語の数S、を初期化し、
（２）長さL1で最小距離bminの固定長符号Cを生成し、ここで、bmin＝min｛bk；k＝1，2，…，R｝、bkは符号Cの符号語長Lkに関連した距離で、符号Cにおける長さLkのあらゆる符号語の間のハミング距離の最小値として定義されるものであり、RはCにおける異なる符号語長の数であり、該生成ステップはnビットの長さで距離d離れた語の集合Wを生成し、
（３）集合W内でCの符号語から距離dmin離れたあらゆる可能なL1元項を列挙して保存し（該距離dminは、ＶＬＥＣ符号Cについて、Cの長さの異なる符号語のあらゆる可能な対の間のあらゆる発散距離の最小値である）、前記集合Wが空でなければあらゆる語の末尾に追加の１ビットを添加し、該保存ステップはこれにより集合Wを先の集合の二倍の語を有しその各語の長さがL1＋1である新しい集合で置き換え、
（４）集合Wの語のうちCのあらゆる符号語とのcmin距離を満たさないものすべてを消去し、該距離cminは符号Cの最小収束距離であり、
（５）語がみつからないか、あるいはビット数の最大値に達した場合には、より多くの語をみつけるために距離の制約を減らし、
（６）集合Wのあらゆる語が距離bminであるよう制御し、みつかった語を次いで符号Cに追加し、
（７）符号語の必要数に達していない場合にはステップ（１）〜（６）を繰り返し、当該方法によってそれ以上継続する可能性がなくなるか、あるいは符号語の必要数に達するかするまで続け、
（８）Cの符号語の数がSより大きい場合には、ＶＬＥＣ符号の構造に基づき、各符号語長を情報源の確率で重みをかけて得られる平均長ALを計算し、該ALがALminより小さければ該ALがALminになるものとし（ALmin＝ALの最小値）、対応する符号構造が記憶装置に保存される、
ステップを有し、前記消去が直前に得たグループだけでなく、より短い長さに非常にすばやく立ち戻るために所与の長さ値のグループにおいても実現されることを特徴とする方法。
【請求項２】
可変長誤り符号を構築する方法であって：
（１）必要とされるパラメータ：符号語の長さの最小値および最大値としてそれぞれL1およびLmax、各符号語の間の自由距離dfree（該距離dfreeは、ＶＬＥＣ符号Cについて、あらゆる任意の拡張符号の集合におけるハミング距離の最小値である）、必要とされる符号語の数S、を初期化し、
（２）長さL1で最小距離bminの固定長符号Cを生成し、ここで、bmin＝min｛bk；k＝1，2，…，R｝、bkは符号Cの符号語長Lkに関連した距離で、符号Cにおける長さLkのあらゆる符号語の間のハミング距離の最小値として定義されるものであり、RはCにおける異なる符号語長の数であり、該生成ステップはnビットの長さで距離d離れた語の集合Wを生成し、
（３）集合W内でCの符号語から距離dmin離れたあらゆる可能なL1元項を列挙して保存し（該距離dminは、ＶＬＥＣ符号Cについて、Cの長さの異なる符号語のあらゆる可能な対の間のあらゆる発散距離の最小値である）、前記集合Wが空でなければあらゆる語の末尾に追加の１ビットを添加し、該保存ステップはこれにより集合Wを先の集合の二倍の語を有しその各語の長さがL1＋1である新しい集合で置き換え、
（４）集合Wの語のうちCのあらゆる符号語とのcmin距離を満たさないものすべてを消去し、該距離cminは符号Cの最小収束距離であり、
（５）語がみつからないか、あるいはビット数の最大値に達した場合には、より多くの語をみつけるために距離の制約を減らし、
（６）集合Wのあらゆる語が距離bminであるよう制御し、みつかった語を次いで符号Cに追加し、
（７）符号語の必要数に達していない場合にはステップ（１）〜（６）を繰り返し、当該方法によってそれ以上継続する可能性がなくなるか、あるいは符号語の必要数に達するかするまで続け、
（８）Cの符号語の数がSより大きい場合には、ＶＬＥＣ符号の構造に基づき、各符号語長を情報源の確率で重みをかけて得られる平均長ALを計算し、該ALがALminより小さければ該ALがALminになるものとし（ALmin＝ALの最小値）、対応する符号構造が記憶装置に保存される、
ステップを有し、前記集合Wの各語の末尾に高々１ビットしか追加されず、さらに前記消去が直前に得たグループだけでなく、より短い長さに非常にすばやく立ち戻るために所与の長さ値のグループにおいても実現されることを特徴とする方法。
【請求項３】
請求項１または２のうちいずれか一項記載の可変長誤り符号構築方法を実行する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は可変長誤り訂正符号を構築する方法に関するものであり、該方法は：
（１）必要とされるパラメータ：符号語の長さの最小値および最大値としてそれぞれL1およびLmax、各符号語の間の自由距離dfree（該距離dfreeは、ＶＬＥＣ符号Cについて、あらゆる任意の拡張符号の集合におけるハミング距離の最小値である）、必要とされる符号語の数S、を初期化し、
（２）長さL1で最小距離bminの固定長符号Cを生成し、ここで、bmin＝min｛bk；k＝1，2，…，R｝、bkは符号Cの符号語長Lkに関連した距離で、符号Cにおける長さLkのあらゆる符号語の間のハミング距離の最小値として定義されるものであり、RはCにおける異なる符号語長の数であり、該生成ステップはnビットの長さで距離d離れた語の集合Wを生成し、
（３）集合W内でCの符号語から距離dmin離れたあらゆる可能なL1元項を列挙して保存し（該距離dminは、ＶＬＥＣ符号Cについて、Cの長さの異なる符号語のあらゆる可能な対の間のあらゆる発散距離の最小値である）、前記集合Wが空でなければあらゆる語の末尾に追加の１ビットを添加することによって語の数を倍加し、該保存ステップはこれにより集合Wを先の集合の二倍の語を有しその各語の長さがL1＋1である新しい集合で置き換え、
（４）集合Wの語のうちCのあらゆる符号語とのcmin距離を満たさないものすべてを消去し、該距離cminは符号Cの最小収束距離であり、
（５）語がみつからないか、あるいはビット数の最大値に達した場合には、より多くの語をみつけるために距離の制約を減らし、
（６）集合Wのあらゆる語が距離bminであるよう制御し、みつかった語を次いで符号Cに追加し、
（７）符号語の必要数に達していない場合にはステップ（１）〜（６）を繰り返し、当該方法によってそれ以上継続する可能性がなくなるか、あるいは符号語の必要数に達するかするまで続け、
（８）Cの符号語の数がSより大きい場合には、ＶＬＥＣ符号の構造に基づき、各符号語長を情報源の確率で重みをかけて得られる平均長ALを計算し、該ALがALminより小さければ該ALがALminになるものとし（ALmin＝ALの最小値）、対応する符号構造が記憶装置に保存される、
ステップを有するものである。
【０００２】
本発明はまた、前記構築方法を実行できるようにする、対応する装置にも関する。
【背景技術】
【０００３】
図１に示した古典的な通信チェーンは、情報源Sからくる信号を符号化するため、情報源符号化手段１（SCOD：source  coder）、続いて通信路符号化手段２（CCOD：channel  coder）、そしてこうして得られた符号化信号を通信路３を通じて伝送したのちに通信路復号手段４（CDEC：channel  decoder）、情報源復号手段５（SDEC：source  decoder）を有する。復号された信号は受信者に向けて送られることが意図されている。情報源符号化においては古典的には可変長符号（VLC：variable-length  code）がその圧縮機能のために用いられ、付随する通信路符号化技術は現実の伝送通信路の影響（減衰、雑音など）に対処するものである。だが、情報源符号化が除去しようとした冗長性を通信路符号化が再導入しようとしていることになるので、これらの技術を効率的に調整して、複雑さを容認可能レベルに抑えつつ全体としてのシステムを改善できないものかと研究が重ねられてきた。
【０００４】
そのような路線の中で提案された解決法のなかでも、可変長誤り訂正（VLEC：variable-length  error  correcting）符号は誤り訂正機能を備えながら可変長であるという利点を呈するものであるが、これらの符号を構築するのは小さなアルファベットに対してでもかなり時間がかかり（情報源のアルファベットが大きくなると実用にならないほどになってしまう）、構築の複雑さも難点となっていた。そのことはのちに示す。
【０００５】
まず最初に、古典的なＶＬＣのいくつかの定義と性質を想起しておかねばならない。符号CとはS個の符号語の集合｛c1，c2，c3，…，ci，…，cS｝である。各符号語には長さli＝｜ci｜が定義され、一般性を失うことなくl1≦l2≦l3≦…≦li≦…≦lSとできる。符号Cにおける異なる符号語長の数はRと呼ばれ、明らかにR≦Sである。これらの異なる符号語長はL1，L2，L3，…，Li，…，LRと表され、ここでL1＜L2＜L3＜…＜LRである。そして可変長符号すなわちＶＬＣという構造は、（s1＠L1，s2＠L2，s3＠L3，……，sR＠LR）で表される。これは、長さL1の符号語s1個、長さL2の符号語s2個、長さL3の符号語s3個、……長さLRの符号語sR個、ということに対応する。ＶＬＣを使う際、ある所与の情報源についての圧縮効率は、該情報源からの記号を伝送するのに必要とされるビット数に関係してくる。この効率を推定する尺度として、しばしば符号の平均長ALが使われる。これはすなわち、一語を伝送するのに必要とされるビット数の平均であり、該平均長は、各記号aiが符号語ciに対応付けられるとすると、次の関係式（１）によって与えられる。
【０００６】
【数１】
2006520155.tif 000003
これは次の式（２）に等価である。
【０００７】
【数２】
2006520155.tif 000004
ここで、源データAについて、S個の源記号が｛a1，a2，a3，…，aS｝で表されており、P（ai）はこれらの各記号が生起するそれぞれの確率で、ΣP（ai）＝1（和はi＝1からi＝Sまで）である。ALminを平均長ALの最小値とすると、ALminに達したときの各記号の対応付けは、P（a1）≧P（a2）≧P（a3）≧…≧P（ai）≧…≧P（aS）となるようなものであることはすぐわかる。受信者が符号化された情報を復号できるような仕方でデータをエンコードするには、ＶＬＣは次の性質を満たしている必要がある：非特異的であり（あらゆる符号語が異なる、すなわち一つの符号語には一つの源記号しか対応しない）、そして一意的に復号可能である（すなわち、符号語のいかなる列も、もとの正しい源記号に、誤りなく、あいまいさなしに対応付けることが可能である）。
【０００８】
ＶＬＣ符号のいくつかの一般的な性質を見直す際に有用なさまざまな距離の概要を提示しておくことは、ＶＬＥＣ符号理論において使われる誤り訂正機能の考えを想起する上で助けとなることであろう。
【０００９】
（ａ）ハミング重みとハミング距離：wを長さnの語で、w＝（w1，w2，…，wn）とすると、wのハミング重み、あるいは単に重みは、w内における０でない記号の数W（w）である。
【００１０】
【数３】
2006520155.tif 000005
そしてw1およびw2を長さnが同じ二つの語で、i＝1，2に対してwi＝（wi1，wi2，wi3，…，win）とすると、w1とw2の間のハミング距離（あるいは単に距離）は、w1とw2で異なっている位置の数である（たとえば、二進の場合、２を法とする加法の前提で、
H（w1，w2）＝W（w1＋w2）          （４）
であることは容易にわかる）。ところが、ハミング距離は定義により固定長符号に限定される。よって、ＶＬＥＣ符号を考える前に他の距離を定義しておくことにする。
【００１１】
（ｂ）fi＝w1iw2i…wniをＶＬＥＣ符号Cのn個の語の連結とすると、集合FN＝｛fi：｜fi｜＝N｝はCのN次の拡張符号と呼ばれる。
【００１２】
（ｃ）最小ブロック距離と全体的最小ブロック距離：ＶＬＥＣ符号Cの符号語長Lkに関連する最小ブロック距離bkは、同一の長さLkをもつCのあらゆる異なる符号語の間のハミング距離の最小値として定義される。
【００１３】
bk＝min｛H（ci，cj）：ci，cj∈C，i≠j，｜ci｜＝｜cj｜＝Lk｝  ｋ＝1，…，R  （５）
一方、前記ＶＬＥＣ符号Cの全体的最小ブロック距離bminは、あらゆる可能な長さLkに対する最小ブロック距離のうちの最小値であるが、これは次式で定義される。
【００１４】
bmin＝min｛bk：k＝1，…，R｝      （６）
（ｄ）発散距離と最小発散距離：ＶＬＥＣ符号Cの長さの異なる二つの符号語をci＝xi1xi2…xil［i］およびcj＝xj1xj2…xjl［j］とすると、ここでci，cj∈C，li＝｜ci｜，lj＝｜cj｜でli＞lj〔以下、添え字ではliをl［i］と示したり便宜上コンマで他の添え字と区切ったりすることがある〕であるが、前記二つの符号語の間の発散距離は次式で定義される。
【００１５】
D（ci，cj）＝H（xi1xi2…xil［i］，xj1xj2…xjl［j］）      （７）
すなわち、これは長さljの符号語とより長い符号語の長さljのプレフィックスとの間のやはりハミング距離である。一方、前記ＶＬＥＣ符号Cの最小発散距離dminは不均等な長さのCの符号語のあらゆる可能な対の間のあらゆる発散距離の最小値であり、次式で与えられる。
【００１６】
dmin＝min｛D（ci，cj）：ci，cj∈C，｜ci｜≠｜cj｜｝    （８）
（ｅ）収束距離と最小収束距離：ＶＬＥＣ符号Cの長さの異なる二つの符号語をci＝xi1xi2…xil［i］およびcj＝xj1xj2…xjl［j］とすると、ここで｜ci｜＝li＞｜cj｜＝ljであり、前記二つの符号語の間の収束距離は次式で定義される。
【００１７】
C（ci，cj）＝H（xi，l［i］−l［J］＋1xi，l［i］−l［J］＋2…xil［i］，  xj1xj2…xjl［j］）（９）
すなわち、これは長さljの符号語とより長い符号語の長さljのサフィックスとの間のやはりハミング距離である。一方、前記ＶＬＥＣ符号Cの最小収束距離cminは不均等な長さのCの符号語のあらゆる可能な対の間のあらゆる収束距離の最小値であり、次式で与えられる。
【００１８】
cmin＝min｛C（ci，cj）：ci，cj∈C，｜ci｜≠｜cj｜｝    （１０）
（ｆ）自由距離：ある符号の自由距離dfreeとは、何らかの共通状態Siから発散して別の何らかの共通状態Sjに収束する（j＞i）ようなあらゆる任意の拡大符号列の集合における、最小のハミング距離である。
【００１９】
dfree＝min｛H（fi，fj）：fi，fj∈FN，N＝1，2，…，∞｝  （１１）
ＶＬＣのときに使った構造モデルにならって、ＶＬＥＣ符号Cの構造を次のように書くことができる。
【００２０】
S1＠L1，b1；S2＠L2，b2；…；SR＠LR，bR；dmin，cmin  （１２）
ここで、すべてのi＝1，2，…，Rに対して（Rが異なる符号語長の数であったことを想起されたい）長さLiで最小ブロック距離biのSi個の符号語がある。そして最小発散距離dminと最小収束距離cminがある。ＶＬＥＣ符号の最も重要なパラメータはその自由距離dfreeである。この自由距離が、誤り訂正能力という意味での符号の実力を大きく左右する。ＶＬＥＣ符号の自由距離は次式によって制限を受けることが示される。
【００２１】
dfree≧min（bmin，dmin＋cmin）          （１３）
以上の定義を想起したことで、ＶＬＥＣ符号構築における現状最新技術のこれからの説明がより容易になる。１９７４年に導入された第一の種類のＶＬＥＣ符号はαプロンプト符号と呼ばれるもので、これとαt1，t2，…，tRプロンプト符合と呼ばれるこの族の拡張とはいずれも共通の本質的な性質を有している：ciへの距離が他のどの符号語cj（j≠i）への距離よりも近い語の集合をα（ci）で表すとすると、α（ci）に含まれるいかなる列も別のα（ci）に含まれる列のプレフィックスにはならない。このような符号の構築はきわめて簡単である。その構築アルゴリズムはそれぞれの長さでの符号語の数によって調整できるので、所与の情報源および所与のdfreeに対して最良のプロンプト符号をみつけることが可能となる。しかし、この最良符号は圧縮効率という面では貧弱なはたらきである。
【００２２】
固定長線形ブロック符号の生成行列からＶＬＥＣ符号を構築できるようにするという、より最近の構築法は、V.Buttigiegによる博士論文“Variable-length  error-correcting  codes”（University  of  Manchester，England，1995）という文献によって提案された。符号・反符号構築法と呼ばれるこのアルゴリズムは、行の結合と列の並べ替えによって右端の列に反符号を形成することに基づいている。ひとたび符号・反符号生成行列が得られれば、ＶＬＥＣ符号は単に行列の乗算によって得られる。
【００２３】
この技法にはしかしながらいくつかの難点がある。第一に、反符号を得るために必要とされる行の結合と列の並べ替えを見出す明示的な方法がない。さらに、この構築法は情報源の統計情報を考慮に入れておらず、したがってしばしば最適にならないことがある（ＶＬＥＣ符号に対して後処理をすることで平均長のより小さな符号をみつけられる）。同じ文献において、著者は次いで発見的方法と呼ばれる改良された方法を提案している。これは、ある指定された情報源について既知のよりよい圧縮率と、誤りに対するある所定の保護とを与えるようなＶＬＥＣ符号の構築をコンピュータによって探し出すことに基づいている。すなわち、指定された全体的最小ブロック距離、発散距離、収束距離（よってdfreeの最小値も）をもち、情報源の統計に適合した符号長をもつことで選択された自由距離（実際にはbmin＝dmin＋cmin＝dfreeでdmin＝［dfree／2］ととる）および指定された情報源について平均符号語長が最小のものが得られるようにした符号Cをコンピュータ探索によって構築するのである。
【００２４】
この発見的方法の主要なステップについて、図２から図４のフローチャートを参照しつつこれから説明することにする。ここで、次のパラメータ：符号語の最小長L1、符号語の最大長Lmax、各符号語の間の自由距離dfree、必要とされる符号語の数S、を使っている。
【００２５】
コンピュータ探索を開始するには（「開始」）、必要とされるあらゆるパラメータをまず指定しておかねばならない：L1（最小符号語長で、これは要求される最小発散距離以上でなければならない）、Lmax（最大符号語長）、符号語間のさまざまな距離（dfree、bmin、dmin、cmin）、S（所与の情報源によって必要とされる符号語の数）である。そしてこれらのパラメータを選ぶにあたってはいくつかの関係が課されている。
【００２６】
L1≧dmin
bmin＝dfree
dmin＋cmin＝dfree
そうしてこのアルゴリズムの第一段階（参照符号１１）が実行される。これは長さL1で最小ブロック距離bminの固定長符号（初期値としてCに入れられる）をある最大数の符号語を使って生成することからなる。この段階は事実上初期化に相当し、たとえば図５で扱う貪欲アルゴリズム（GA：greedy  algorithm）や図７で扱う多数決アルゴリズム（MVA：majority  voting  algorithm）のようなアルゴリズムによって実行される。あるいは新たに提案された変形―GAS（Greedy  Algorithm  by  Step［ステップによる貪欲アルゴリズム］）と表現される―を使ってもよく、これは上述した二つの方法の変形からなる。ＧＡＳはＧＡで使われる探索方法で、符号語の半分を消去する代わりに、当該グループの最後の符号語だけが消去されるようにしたものである。前記二つのアルゴリズムは距離d離れたnビットの長さの語の集合Wを生成する上で有用である。実際上は、ＭＶＡのほうがＧＡよりも多くの語をみつけることに気がつくかもしれないが、圧縮率のわずかばかりの向上のためにあまりに多くの時間を要求する。そのことは図６および図８の表に示されている。それはそれぞれＧＡ、ＭＶＡについて、図９の表で定義されている２６記号からなる英語の情報源について異なるdfreeの値を用いて得られる最良符号構造を比較しているものである。
【００２７】
このアルゴリズムの第二段階は、図２の参照符号２１〜２４の要素に対応し（２１＋２２＝工程Ａ０、２３＋２４＝工程Ａ２）、Wと呼ばれる集合中でC中の符号語から距離dmin離れたあらゆる可能なL1元項を列挙し、保存するものである（ステップ２１）。dmin≧bminであれば、Wは空である。現在の符号への最小拡散距離を満たすあらゆる語からなるこの集合Wが空でなければ（試験２２の｜W｜＝0？への答えがＮＯの場合）、Wにおけるすべての語の右端に０を添加したもの、１を添加したものをつくることで語の長さを１増すことによってWにおける語の数は二倍にされる（ステップ２４）。ただし、最大ビット数を超えていた場合（試験２３への答えがＹＥＳの場合）は除く。前記ステップ２４の出力において、この修正された集合Wは先のWに比べて二倍の語を有しており、各語の長さはL1＋1となっている。
【００２８】
このアルゴリズムの第三段階は、要素３１〜３５（＝図２の工程Ａ３）に対応し、集合W中でC中のすべての符号語とのcmin距離（最小収束距離）を満たさないすべての語を消去する（ステップ３１）ものである（すなわち、前記最小収束距離を満たす語だけを残して新しいWに保存し、他の語はみな捨てる）。この時点で、新しい集合Wは、Cの符号語と比較したときに、要求されているCの符号語との最小発散距離と最小収束距離の条件（dminおよびcminの両方）を満たす語の集合となっている。新しい集合Wが空でなければ（試験３２の｜W｜＝0？への答えがＮＯの場合）、Wにおいて最小ブロック距離を満たす最大数の語を選択する。これは集合Wのすべての語（みな同じ長さである）が少なくともbminの最小距離を有することを保証するためである。このステップ３３はＧＡまたはＭＶＡによって実現されるものであるが（この場合、ＧＡまたはＭＶＡのために初期値として使われる集合は現在のWであって、n元項集合ではないことに注意）、その終わりに、こうして得られた語がすでにCに含まれている符号語に追加される（ステップ３４）。
【００２９】
ステップ２１の終わりで語がみつからなかった（すなわちWが空である）場合（試験２２の｜W｜＝0？への答えがＹＥＳの場合）、あるいは最大ビット数に達するかそれを超えていた場合（試験２３への答えがＹＥＳの場合）、アルゴリズムは第四段階にはいる（図３のステップ４１から４６で、また同じ図で工程Ａ１とも示されている）。これは選択の自由を増やすことによって、処理の行き詰まりを解くために用いられる。より具体的にはW中のすべての語に追加ビット（同時に数ビット）を添加して新しいグループが前のものより多くのビットを含むようにする。直前のグループに十分な符号語があれば（連続する試験４１および４２で直前のグループに含まれる符号語の数、その前のグループがあるかどうかを調べる）、前記グループから符号語の一部が消去される（前述の通り）。そのような消去によって距離の制約を減らし、以前よりも多くの符号語をみつけることができるようになる。実のところ、ここに記述した古典的な発見的方法は、最大数の短い長さの符号語から始まり、それらに高確率の記号を割り当て、高い圧縮率を得ようとしている。しかし、時には短い長さからなる集合の大きさが必要とされる符号語の数Sと相容れないこともある。この観点から、若干の符号語をまびくことによって自由度が増え、当該符号についての距離および記号数に対する当初の要求が満たされうる位置に達することができるようになる。この消去プロセスは各長さに対して最大一つの符号語が残るまで続けられる。ステップ３１の終わりにWが空であれば（試験３２の｜W｜＝0？への答えがＹＥＳの場合）、ステップ２３、２４、３１、３２が繰り返される。もし要求される符号語数に達していなければ（この第三段階の終わりに設けられている試験３５で答えがＮＯの場合）、ステップ２１から２４および３１から３５が繰り返され、前記ステップがそれ以上みつける可能性のある語がなくなるか、あるいは要求されている符号語数に達するかするまで続けなければならない。
【００３０】
もし前記の要求されている符号語数に達していたら、すなわちCの符号語数がSに等しいかそれを超えていたら（試験３５の答えがＹＥＳの場合）、こうして得られたＶＬＥＣ符号の構造が、ステップ５１から５６を含む第五段階（図４に示してあり、また同図で工程Ａ４と示されている）において、平均長ALを計算するために使われる。これは各符号語長に情報源の生起確率で重みをかけ、それを現在の最良の値と比較することによってなされる。このＶＬＥＣ符号の前記平均長ALがALの最小値（＝ALmin）より小さければ、このALがALminとなり、この新しいAL値および対応する符号構造が記憶装置に保存される（ステップ５１）。これらのステップ５１および後続ステップ（第五段階、工程Ａ４）はアルゴリズム内で先のグループに戻ることができ、前記アルゴリズムの他の段階が常に現在のグループに対して実行されているのと対照的である。そのような戻り操作で戻る段階は１である。すなわち、この戻り操作は網羅的なものと見なすことができる。
【００３１】
この最良ＶＬＥＣ符号の探索を続けるには、同一構造を保持することを避けることが必要である。さもないとアルゴリズムはループになってしまう。現在の符号の直前に追加されたグループが消去される（ステップ５２、５３）。より長い符号語をもっとたくさんみつけられるようにより短い符号語を消去するかどうかが判断され（試験５４：グループ内の符号語数が１より大きいか？）、前のグループの一部の符号語（ＧＡでは半数、ＭＶＡでは「最良の」もの）が消去される（ステップ５５）。これがアルゴリズムをステップ２１（図２）のはじめに戻って反復させ（ステップ５６）、異なるＶＬＥＣ構造をみつけるために行われるのである（消去される符号語の数は語を選択するのにどの方法を使うかに依存する：ＧＡ法が使われ、線形符号を得たいのであれば符号語の半分を消去することが必要である一方、ＭＶＡ法では一つの符号語―最良のもの、すなわち次のグループにより多くの符号語がみつかるようなもの―が消去される）。
【００３２】
しかしながら、ここまでに述べてきた発見的方法は、該方法の実装において、しばしば非常に不自然な符号構造を考慮したり、（漏れがないようにするあまり）非常な複雑さが認められるほど慎重な進み方をしたりする。その上比較的時間がかかり、よって実用にならなくなることもある。そのため、２００２年１０月２３日に申請された欧州特許出願、書類番号０２２９２６２４．０（ＰＨＦＲ０２０１１０）において、こうした欠点を避けることによって複雑さの面で利となりうる改良された構築方法が提案されている。可変長誤り訂正符号を構築するための該方法は：
（１）必要とされるパラメータ：符号語の長さの最小値および最大値としてそれぞれL1およびLmax、各符号語の間の自由距離dfree（該距離dfreeは、ＶＬＥＣ符号Cについて、あらゆる任意の拡張符号の集合におけるハミング距離の最小値である）、必要とされる符号語の数S、を初期化し、
（２）長さL1で最小距離bminの固定長符号Cを生成し（ステップ１１）、ここで、bmin＝min｛bk；k＝1，2，…，R｝、bkは符号Cの符号語長Lkに関連した距離で、符号Cにおける長さLkのあらゆる符号語の間のハミング距離の最小値として定義されるものであり、RはCにおける異なる符号語長の数であり、該生成ステップ１１はnビットの長さで距離がdの語の集合Wを生成し、
（３）集合W内でCの符号語から距離dmin離れたあらゆる可能なL1元項を列挙して保存し（ステップ２１）（該距離dminは、ＶＬＥＣ符号Cについて、Cの長さの異なる符号語のあらゆる可能な対の間のあらゆる発散距離の最小値である）、前記集合Wが空でなければあらゆる語の末尾に追加の１ビットを添加することによって語の数を倍加し、該保存ステップはこれにより集合Wを先の集合の二倍の語を有しその各語の長さがL1＋1である新しい集合で置き換え、
（４）集合Wの語のうちCのあらゆる符号語とのcmin距離を満たさないものすべてを消去し（ステップ３１）、該距離cminは符号Cの最小収束距離であり、
（５）語がみつからないか、あるいはビット数の最大値に達した場合には、より多くの語をみつけるために距離の制約を減らし（ステップ４１）、
（６）集合Wのあらゆる語が距離bminであるよう制御し、みつかった語を次いで符号Cに追加し（ステップ３４）、
（７）符号語の必要数に達していない場合には（ステップ３５）ステップ（１）〜（６）（すなわち、ステップ２１から３５）を繰り返し、当該方法によってそれ以上継続する可能性がなくなるか、あるいは符号語の必要数に達するかするまで続け、
（８）Cの符号語の数がSより大きい場合には、ＶＬＥＣ符号の構造に基づき、各符号語長を情報源の確率で重みをかけて得られる平均長ALを計算し（工程Ａ４）、該ALがALminより小さければ該ALがALminになるものとし（ALmin＝ALの最小値）、対応する符号構造が記憶装置に保存される、
ステップを有するものであり、該構築方法はさらに、集合Wの各語の末尾に高々１ビットしか追加されないことを特徴としている。
【００３３】
シミュレーションによると、古典的な発見的方法を用いた場合、得られた最良符号のほとんどどれにもホール（すなわち、構造長における長さのとび）がない。前記引用文献では、たいていの良好な符号は長さのとびがなく、よって調査されたＶＬＥＣ符号の集合はそれにしたがい減らすことができると考えられている（それはALをあまり変えることなくシミュレーション時間と該方法の実装の複雑さの削減につながる）。この仮説に基づき、前記方法は、上に引用した欧州特許文献では、集合Wの各語の末尾に２ビット以上の追加をすることを避けるように修正されている。この新しい構造では回路４５は取り消されている。これはすなわち、語に数ビットの追加を添加することはもはや許されず、１ビットの添加のみが許されるということであり、これは図３に関連して言うと、工程Ａ１の単純化につながる（図１１）。対応する実装（改良された発見的構築法で、「ホールのない最適化法」ともいう）は図１０および図１１において図示されている。これらは前記方法に対応するフローチャートの前半および後半である（図２から図４に見られた要素と同一の要素は同じ参照符号で示されている）。図２〜図４のフローチャートとの関係では、古典的な発見的技法に関連するうちで前記改良された方法の実装に無用の部分が取り消されている。
【００３４】
（ａ）ステップ３１の終わりにWが空である場合（試験３２の｜W｜＝0？への答えがＹＥＳの場合）、今では次の段階は（図１０参照）ステップ２３、２４、３１、３２の反復ではなく、前記「ホールのない」方法によれば、（前記反復の代わりに）工程５５を実行する回路の入力への直接接続９１の確立である。この工程５５はステップ２１〜２４、３１〜３５の大域的な反復の前に一部の符号語または最良の符号語を消去しておくものであり、その次には以前と同様に工程２１以下が続く。
【００３５】
（ｂ）該方法の第四段階は今では単一のステップ、工程４１にまで減らされている。これは「直前のグループの語数＝１？」の検査である。この答えがＮＯであれば、ステップ５５の入力との直接リンクが確立される。前記工程５５を実行し、次いで工程２１以下を実行するためである。答えがＹＥＳの場合には、工程５２〜５４の組の入力との接続１０２が確立される。
【００３６】
こうして得られた結果が図１２の表に掲げてある。これは、２６記号の英語情報源について、符号語を選択するのにＧＡＳ法を使った場合である。図１３に掲げる結果と比較した場合、dfree＝3については結果は完全に最適ではないものの（符号構造は長さL＝11のところにホールがある）、他のdfree値については厳密に全く劣化が見られず、2.5から4倍の時間的利得が得られることを考えると、ALの上昇は本当に許容範囲内である。同じことは、本解決を図７で得られたものと比べるときにもあてはまる。そこではＭＶＡの複雑さの影響が明らかになっている。同様に、ＧＡ法について符号語の選択の際にホールなしとする最適化を適用すれば、dfree＝3の場合にALがわずかに上昇するだけの犠牲で時間的利得を得ることができる。最後に、図５はその一方で現解決ではホールなしの最適化がＧＡＳに起因する複雑さをほぼ完全に埋め合わせしているため、許容できる時間的利得でALはより改善される。しかしながら、前記欧州特許文献に記載されているこのような方法に関しては、生成されたＶＬＥＣ符号中に短い符号語が多すぎる場合がある。
【発明の開示】
【発明が解決しようとする課題】
【００３７】
したがって、本発明の目的の一つは、（符号長の短い符号語が多すぎて当該アルゴリズムが痛々しいほど困っているような場合に）より短い符号長にきわめてすばやく立ち戻って多くのアルゴリズムステップをスキップすることのできる、改良された構築方法を提案することである。
【００３８】
この目的のため、本発明は本記載の導入部において規定したようなものであり、さらに前記消去が直前に得たグループだけでなく、より短い長さに非常にすばやく立ち戻るために所与の長さのグループにおいても実現されることを特徴とする、方法に関している。
【００３９】
本発明のある可能な改良された実装によれば、本発明は同様の方法ではあるが、今や好ましくは集合Wの各語の末尾に高々１ビットしか追加されず、さらに前記消去が直前に得たグループだけでなく、より短い長さに非常にすばやく立ち戻るために所与の長さのグループにおいても実現されることを特徴とする、方法に関している。
【００４０】
また、前記構築方法を実行するための装置を提案することも本発明の目的の一つである。
【００４１】
この目的のため、本発明はここに提案される二つの解決のうちのいずれかに基づいた可変長誤り訂正符号構築方法を実行するための装置に関するものである。
【００４２】
これから例を用い、図面を参照しながら本発明について説明する。
【課題を解決するための手段】
【００４３】
先に想起した古典的な発見的プロセスにおける符号語スタックの展開を考えると、符号語の消去を直前に得た符号語のグループだけではなく、より一般的にいかなる所与の長さのグループについても行うことができ、それによりより短い符号長に直接立ち戻れるようにする、すなわち短い符号語が多すぎるような場合に多くのアルゴリズムステップをスキップすることを提案してもよいであろう。
【００４４】
したがって、符号語消去段階において当該アルゴリズムがスキップする先の符号長をLsとすると（sはスキップを表す）、Ls最適化と呼ぶ本方法において、消去すべき符号語をさがす際により短い長さまで注意深くジャンプすることによって元来の発見的アルゴリズムの一部をスキップすることが提案される（ただし、考慮されている符号語グループの長さLがLsより短い場合には古典的な方法が適用されることは自明であり、その長さLのグループ内で消去が行われる）。「ホールなし」方法および「発見的」方法の先の第五段階（工程Ａ４）に関し、このプロセスはもはや網羅的ではなくなる。つまり、前記戻り操作にあまり多くの時間を費やすのを避けるためによりすばやく以前のグループにまで戻り、目標の長さLsに到達することが可能ということである。ただし、前述のようにLsより短い長さについては古典的方法が維持される。したがって、L1とLsの間に含まれる長さのことは「自由な長さ」、すなわち自由度のある長さと呼ばれる。これらの長さが探索過程において一つずつ短い長さに向かっていくものだからである（自由な長さの数が増大すると、シミュレーション時間も増えた、指数関数的に）。
【００４５】
本発明に基づく方法は「Ls最適化」と呼ばれ、図１０（ホールなし最適化法という先の方法の変化のない部分）と図１４（ホールなし最適化法の変更された部分）を組み合わせて形成されるフローチャートに表される。該図１４は図１１に対し、上に提案された技術的施策を導入することによって改変したものである。
【００４６】
前記施策によれば、現在の符号の直前に追加されたグループが消去されるが、それは一つ前のこのグループの符号語長CLが（試験６１）Ls以下である場合（試験６１で答えがＮＯの場合）に限られる（この場合、試験６１に続くステップは先述したのと同じ：ステップ５３、５４、そして試験５４の出力において５５または５２である）。前記符号語長がLsより大きければ（試験６１の答えがＹＥＳの場合）、追加的なステップ６２が設けられており、ビット長Lsの符号語のグループに行ってLsビットより長いグループをすべて消去する。ステップ６２の出力からは前述したのと同じステップ５４、５５が設けられている。
【００４７】
実際上は、シミュレーション結果によると、Lmaxを許容される最大符号語長としてLs＜Lmaxについてきわめてよい圧縮率が得られている（Lsの値を増やすにつれてALの値が改善されていき最終的に一定値―最良値―に至ることが見て取れ、この振る舞いからLs＝L1から始めて前記一定値に達するまでLsを増やしていくという動的なLsの選択が可能であることが示唆される）。前記２６記号の英語情報源について得られた結果が図１５の表に示されている（×はLsが区間［L1，Lmax］に属さなければならないことから取り得ない値を、「符号なし」はLsの値が短すぎてアルゴリズムが失敗に終わった、すなわち初期パラメータを満足させるＶＬＥＣ符号がみつからなかったことを示す）。これらの結果を図１２の表の一つと比較すると、dfree＝3での約5倍からdfree＝7での約2500まで顕著な時間的利得が見て取れる。本Ls最適化アルゴリズムによってもたらされる計算時間の削減により、２０８記号のＭＰＥＧ−４情報源のためのＶＬＥＣ符号を見出すことも可能となる。ＧＡＳ，ホールなし最適化、Ls最適化をみな含むアルゴリズムを使って得られた結果が図１６の表に示されている。
【００４８】
本発明に基づく方法は上述した実装に限られるものでないことは理解しておく必要がある。別の実装としては、たとえば「ホールなし」法と本「Ls最適化」法の特徴を組み合わせたものに対応するものであることができる。この場合、本発明に基づく方法は集合Wの各語の末尾に高々１ビットしか追加されず、同時に前記消去が直前に得たグループだけでなく、より短い長さに非常にすばやく立ち戻るために所与の長さのグループにおいても実現されるようなものとなる。
【図面の簡単な説明】
【００４９】
【図１】通常の通信過程を表す図である。
【図２】ＶＬＥＣ符号を構築するのに使われる従来の方法（発見的方法と呼ばれる）の主要なステップを図解するフローチャートのはじめの部分である。
【図３】ＶＬＥＣ符号を構築するのに使われる従来の方法（発見的方法と呼ばれる）の主要なステップを図解するフローチャートの図２に続く部分である。
【図４】ＶＬＥＣ符号を構築するのに使われる従来の方法（発見的方法と呼ばれる）の主要なステップを図解するフローチャートの最後の部分である。
【図５】図２から図４の方法の初期化に使われるアルゴリズム（貪欲アルゴリズムまたはＧＡと呼ばれる）の図解である。
【図６】図５のアルゴリズムを使って発見的構築法によって構築した、ある情報源に対するさまざまなＶＬＥＣ符号を示す表である。
【図７】図２から図４の方法の初期化に使われるもう一つのアルゴリズム（多数決アルゴリズムまたはＭＶＡと呼ばれる）の図解である。
【図８】図７のアルゴリズムを使って発見的構築法によって構築した、ある情報源に対するさまざまなＶＬＥＣ符号を示すもう一つの表である。
【図９】２６記号の英語情報源について、源記号とその生起確率との間の対応を示す表である。
【図１０】図２から図４で示された従来の方法の改良の実装を図解するフローチャートの前半部分である。
【図１１】図２から図４で示された従来の方法の改良の実装を図解するフローチャートの後半部分である。
【図１２】図６および図８の表において扱ったのと同じ２６記号の英語情報源について、ＧＡＳを使ったときのさまざまなＶＬＥＣ符号を示すもう一つの表である。
【図１３】図１２と同じ情報源について、前述したＧＡＳと本発明に基づく構築方法の両方を使ったときのさまざまなＶＬＥＣ符号を示すもう一つの表である。
【図１４】本発明に基づく方法を実行したときの図１１のフローチャートの修正を示す図である。
【図１５】本発明に基づく方法を実行したときの、２６記号の英語情報源について得られた結果を示す表である。
【図１６】別の情報源について同様にして得られた結果を示す表である。
【符号の説明】
【００５０】
１１  L1、bminの符号生成
２１  Wの要素を列挙・保存
２２  ｜W｜＝0？
２３  最大ビット数超過？
２４  追加の１ビットを添加
３１  Wでcminに適合する語のみ保持
３２  ｜W｜＝0？
３３  Wで適合する最大数の語を選択
３４  符号語に追加
３５  必要数に達したか？
４１  直前のグループの語数＝１？
４２  その前のグループあり？
４３  その前のグループに行って消去
４４  Wの要素を列挙・保存
４５  追加の数ビットを添加
４６  最大ビット数超過？
５１  記憶装置に保存
５２  前のグループあり？
５３  前のグループに行って消去
５４  符号語の数＞１？
５５  直前のグループの符号語を消去
６１  前のグループの符号語長検査
６２  符号語長がLsビットのグループに行って消去
【図１】
2006520155.tif 000006
【図２】
2006520155.tif 000007
【図３】
2006520155.tif 000008
【図４】
2006520155.tif 000009
【図５】
2006520155.tif 000010
【図６】
2006520155.tif 000011
【図７】
2006520155.tif 000012
【図８】
2006520155.tif 000013
【図９】
2006520155.tif 000014
【図１０】
2006520155.tif 000015
【図１１】
2006520155.tif 000016
【図１２】
2006520155.tif 000017
【図１３】
2006520155.tif 000018
【図１４】
2006520155.tif 000019
【図１５】
2006520155.tif 000020
【図１６】
2006520155.tif 000021
【国際調査報告】
2006520155.tif 000022
2006520155.tif 000023
2006520155.tif 000024