(57)【要約】【課題】ソート検出とほとんど同じ簡便さと、相関検出とほとんど同じ性能を兼ね備えるデータ検出に適している情報変調符号の符号化方法を提案する。【解決手段】ひとつの符号語を構成するｎビットのうち、ｍビットが“１”で（ｎ−ｍ）ビットが“０”である記録変調符号において、ｎ個のうちｍ個を選ぶ組み合わせの数をＭ＝ｎＣｍ、ユーザー・ビット数であるｋビットをマッピングするのに必要な符号語の数をＫ＝２^ｋとしたときに、Ｋ＜Ｍが成立するようにｎ,ｍ,ｋが選ばれ、かつ、Ｋ個の符号語から２個を選んだときに、ＫＣ２通りの組み合わせの符号語間のハミング距離が最小になる組み合わせの数ができるだけ少なくなるように符号語を選択する。【選択図】図１
2007226879.tif 000002
【特許請求の範囲】
【請求項１】
ひとつの符号語を構成するｎビットのうち、ｍビットが“１”で（ｎ−ｍ）ビットが“０”である記録変調符号の符号化方法であって、
前記記録変調符号において、ｎ個のうちｍ個を選ぶ組み合わせの数をＭ＝ｎＣｍ、ユーザー・ビット数であるｋビットをマッピングするのに必要な符号語の数をＫ＝２^ｋとしたときに、Ｋ＜Ｍが成立するようにｎ,ｍ,ｋが選ばれ、かつ、Ｋ個の符号語から２個を選んだときに、ＫＣ２通りの組み合わせの符号語間のハミング距離が最小になる組み合わせの数ができるだけ少なくなるように符号語を選択する
記録変調符号の符号化方法。
【請求項２】
前記Ｋ個の符号語の選択において、選択しうるＭＣＫ通りの組み合わせすべてについて符号語間のハミング距離が最小になる組み合わせの数を調べ、当該数が最小になるように前記Ｋ個の符号語を選択する
請求項１に記載の記録変調符号の符号化方法。
【請求項３】
前記Ｋ個の符号語の選択において、前記符号語間のハミング距離が最小になる組み合わせの数が最小になる前記Ｋ個の符号語の組み合わせが２通り以上あった場合に、値の小さい符号語が多く含まれている組み合わせを選択する
請求項２に記載の記録変調符号の符号化方法。
【請求項４】
前記Ｋ個の符号語の選択において、前記符号語間のハミング距離が最小になる組み合わせの数が最小になる前記Ｋ個の符号語の組み合わせが２通り以上あった場合に、値の大きい符号語が多く含まれている組み合わせを選択する
請求項２に記載の記録変調符号の符号化方法。
【請求項５】
前記Ｋ個の符号語の選択において、所定の基準で初期の符号語の組み合わせを選択する第１ステップと、
現在選択されている符号語の中から、他の符号語とのハミング距離が最小になる組み合わせの数が最も多い符号語を探し出し、これを“old”とする第２ステップと、
現在選択されている符号語から前記“old”を取り除いた２^(ｋ−１)個の符号語と組み合わせたときにハミング距離が最小になる組み合わせの数が最も少ない符号語を、現在選択されていない符号語の中から探し出し、これを“new”とする第３ステップと、
現在選択されている符号語から前記“old”を取り除き前記“new”を加えたものを、新たな符号語の組合せとする第４ステップと、
前記第１〜第４ステップの処理を繰り返し、予め定められた条件を満たした場合に、最終的な記録変調符号とする第５ステップと、
を含む請求項１に記載の記録変調符号の符号化方法。
【請求項６】
請求項５に記載されている記録変調符号の構成方法において、初期の符号語の組み合わせが、ｎビットのうちｍビットが“１”で(ｎ−ｍ)ビットが“０”であるようなＭ個の符号語の中から、値の小さいものから順番に２^ｋ個を選択したものである
記録変調符号の符号化方法。
【請求項７】
請求項５に記載されている記録変調符号の構成方法において、初期の符号語の組み合わせが、ｎビットのうちｍビットが“１”で(ｎ−ｍ)ビットが“０”であるようなＭ個の符号語の中から、値の大きいものから順番に２^ｋ個を選択したものである
記録変調符号の符号化方法。
【請求項８】
請求項５に記載されている記録変調符号の構成方法の前記第２ステップにおいて、現在選択されている符号語の中で他の符号語とのハミング距離が最小になる組み合わせの数が最も多い符号語が２つ以上あった場合に、最も値が小さいものを選んでこれを“old”とする
記録変調符号の符号化方法。
【請求項９】
請求項５に記載されている記録変調符号の構成方法の前記第２ステップにおいて、現在選択されている符号語の中で他の符号語とのハミング距離が最小になる組み合わせの数が最も多い符号語が２つ以上あった場合に、最も値が大きいものを選んでこれを“old”とする
記録変調符号の符号化方法。
【請求項１０】
請求項５に記載されている記録変調符号の構成方法の前記第３ステップにおいて、現在選択されている符号語から“old”を取り除いた２^(ｋ−１)個の符号語と組み合わせたときにハミング距離が最小になる組み合わせの数が最も少ない符号語が、現在選択されていない符号語の中に２つ以上あった場合に、最も値が小さいものを選んでこれを“new”とする
記録変調符号の符号化方法。
【請求項１１】
請求項５に記載されている記録変調符号の構成方法の前記第３ステップにおいて、現在選択されている符号語から“old”を取り除いた２^(ｋ−１)個の符号語と組み合わせたときにハミング距離が最小になる組み合わせの数が最も少ない符号語が、現在選択されていない符号語の中に２つ以上あった場合に、最も値が大きいものを選んでこれを“new”とする
記録変調符号の符号化方法。
【請求項１２】
請求項５に記載されている記録変調符号の構成方法の前記第３ステップにおいて、“old”と“new”を入れ替える処理の繰り返し回数が予め定められた数を越えた時に終了し、最終的な記録変調符号とする
記録変調符号の符号化方法。
【請求項１３】
請求項５に記載されている記録変調符号の構成方法の前記第３ステップにおいて、“old”と“new”を入れ替える処理を行ってもハミング距離が最小になる組み合わせの数が変わらない場合に、これを最終的な記録変調符号とする
記録変調符号の符号化方法。
【請求項１４】
請求項５に記載されている記録変調符号の構成方法の前記第３のステップにおいて、“old”と“new”を入れ替える処理を行ってもハミング距離が最小になる組み合わせの数が変わらない場合に、さらに予め定められた数だけ入れ替え処理を行い、それでも変化がない場合に、これを最終的な記録変調符号とする
記録変調符号の符号化方法。
【請求項１５】
請求項５に記載されている記録変調符号の構成方法において、
前記第１ステップの初期符号の組み合わせの選択で、初期の符号語の組み合わせが、ｎビットのうちｍビットが“１”で(ｎ−ｍ)ビットが“０”であるようなＭ個の符号語の中から、値の小さいものから順番に２^ｋ個を選択し、
前記第２ステップの“old”の選択で、現在選択されている符号語の中で他の符号語とのハミング距離が最小になる組み合わせの数が最も多い符号語が２つ以上あった場合に、最も値が小さいものを選んでこれを“old”とし、
前記第３ステップの“new”の選択で、現在選択されている符号語から“old”を取り除いた２^(ｋ−１)個の符号語と組み合わせたときにハミング距離が最小になる組み合わせの数が最も少ない符号語が、現在選択されていない符号語の中に２つ以上あった場合に、最も値が大きいものを選んでこれを“new”とし、
前記第５ステップで、“old”と“new”を入れ替える処理を行ってもハミング距離が最小になる組み合わせの数が変わらない場合に、これを最終的な記録変調符号とする
記録変調符号の符号化方法。
【請求項１６】
請求項５に記載されている記録変調符号の構成方法において、
前記第１ステップの初期符号の組み合わせの選択で、初期の符号語の組み合わせが、ｎビットのうちｍビットが“１”で(ｎ−ｍ)ビットが“０”であるようなＭ個の符号語の中から、値の大きいものから順番に２^ｋ個を選択し、
前記第２ステップの“old”の選択で、現在選択されている符号語の中で他の符号語とのハミング距離が最小になる組み合わせの数が最も多い符号語が２つ以上あった場合に、最も値が大きいものを選んでこれを“old”とし、
前記第３ステップの“new”の選択で、現在選択されている符号語から“old”を取り除いた２^(ｋ−１)個の符号語と組み合わせたときにハミング距離が最小になる組み合わせの数が最も少ない符号語が、現在選択されていない符号語の中に２つ以上あった場合に、最も値が小さいものを選んでこれを“new”とし、
前記第５ステップで、“old”と“new”を入れ替える処理を行ってもハミング距離が最小になる組み合わせの数が変わらない場合に、これを最終的な記録変調符号とする
記録変調符号の符号化方法。
【請求項１７】
ひとつの符号語を構成するｎビットのうち、ｍビットが“１”で（ｎ−ｍ）ビットが“０”である記録変調符号の符号化装置であって、
前記記録変調符号において、ｎ個のうちｍ個を選ぶ組み合わせの数をＭ＝ｎＣｍ、ユーザー・ビット数であるｋビットをマッピングするのに必要な符号語の数をＫ＝２^ｋとしたときに、Ｋ＜Ｍが成立するようにｎ,ｍ,ｋが選ばれ、かつ、Ｋ個の符号語から２個を選んだときに、ＫＣ２通りの組み合わせの符号語間のハミング距離が最小になる組み合わせの数ができるだけ少なくなるように符号語を選択する符号選択手段を含む
記録変調符号の符号化装置。
【請求項１８】
前記符号選択手段は、前記選択の手法によってホログラム記録に適した記録変調符号を生成する
請求項１７に記載の符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ひとつの符号語を構成するｎビットのうち、ｍビットが“１”で（ｎ−ｍ）ビットが“０”である記録変調符号の符号化方法と、その装置に関する。
【背景技術】
【０００２】
最近、ホログラム記録の原理を応用した情報記録装置の研究開発が活発になっている（非特許文献１参照）。
ホログラム記録を用いることで、今までの光ディスクよりもはるかに高い記録密度を達成できる可能性があることは以前から知られていた。半導体レーザーなどの光源やフォトポリマーなどを用いたホログラム記録媒体の登場など、周辺技術が整ってきたことが最近の活発な研究開発の背景にある。
【０００３】
ホログラム記録用の記録変調符号としては、ひとつのシンボルを構成するｎビットのうち、ｍビットが“１”で（ｎ−ｍ）ビットが“０”であるような、スパース符号と呼ばれる記録変調符号が好んで用いられる（非特許文献２参照）。
以下、スパース符号について非特許文献２からの引用を中心に説明する。
【０００４】
ホログラム記録媒体の重ね書き性能の指標であるＭナンバーを“Ｍ＃”、ホログラムにユーザーが実際に重ね書きできる多重化枚数を“Ｍ”により表すと、ページ単位の回折効率ηpageは、次式(1)のようになる。
【０００５】
［数１］
ηpage＝（Ｍ＃／Ｍ)^２…(1)
【０００６】
記録変調符号の“１”の割合をスパース率π１と定義すると、１ページのピクセル数が“Ｎ”のホログラムでは、ピクセル単位の回折効率ηpixelは、次式(2)で表される。
【０００７】
［数２］
ηpixel＝（Ｍ＃／Ｍ)^２／(π１・Ｎ)…(2)
【０００８】
したがって、ひとつのピクセルが得ることのできる回折効率は、記録変調符号のスパース率π１が小さいほど大きくなる。
多重化数によらずノイズは一定であると仮定すると、回折効率一定η*で多重化できる枚数Ｍ*は、次式(3)のようになる。
【０００９】
［数３］
Ｍ*∝Ｍ＃／√(π１・Ｎ)…(3)
【００１０】
また、スパース率がπ１となる理想符号化器の情報エントロピーＩ(π１)は、記録変調符号の“０”の割合を示すスパース率π０を用いると次式(4−1)のようになり、また理想符号化器によるユーザー容量Ｃは次式(4−2)を用いて計算することができる。
【００１１】
［数４］
Ｉ(π１)＝−π１・log２(π１)−π０・log２(π０)…(4−1)
[ただし、π０＝１−π１]
Ｃ＝Ｉ(π１)・Ｍ*                             …(4−2)
【００１２】
情報エントロピーというと分かりにくいが、ｋビットのユーザー・データをｎビットの符号語（シンボル）に変換する記録変調符号の符号化率ｒ＝ｋ／ｎと等価であり、理想符号化器の情報エントロピーは、ｎが無限大の場合の符号化率に相当する。
【００１３】
図３１に、スパース率π１を０から１まで変化させたときのユーザー容量Ｃを計算した結果を示す。
ＭナンバーＭ＃の具体的な値はなんでもよいので、ここでは情報エントロピーＩ(π１)が１となるスパース率π１＝０.５（“１”と“０”の数が同じ）で、ユーザー容量Ｃが１になるように規格化している。
この結果より、ホログラム記録では、スパース率π１＝０.２５程度が最適値であり、“１”と“０”の数が同じスパース率π１＝０.５の場合と比較して、１５[％]ほど、ユーザー容量が増加していることがわかる。
【００１４】
実際の記録変調符号では、符号語のビット数ｎを大きくすると符号化や復号が難しくなってしまうので、符号語のビット数ｎは有限な値を取ることになり、理想符号化器の符号化率よりも小さくなってしまう。実現可能なスパース符号は、１シンボルのビット数ｎ、１シンボル中の“１”のビット数ｍ、ユーザーのビット数ｋを用いてＥ(ｎ,ｍ,ｋ)により定義することができる。ここで“シンボル”とは、たとえば４×４画素で構成するホログラフィック再生像の最小単位であり、１シンボルが１符号語（スパース符号）に対応する。
前記非特許文献２には、スパース符号の集合であるページ（スパースページ）がＥ(５２,１３,３９)によりコーディングされた実施例が示されている。
【００１５】
データ検出方式として最も簡便なのは、読み出し信号のビット振幅が予め定められたしきい値よりも大きければ“１”と識別し、小さければ“０”と識別する「しきい値検出」である。これに対して、スパース符号を用いたホログラム記録では、「ソート検出」と「相関検出」と呼ばれるビット検出方式が好んで使われる。
ホログラム記録ではページ内でのビット振幅の変化が大きく、しきい値検出のためのしきい値を定めることが難しいため、しきい値検出ではエラーが非常に多くなってしまう。
【００１６】
ソート検出は、次の手順で行う。
まず、たとえばスパース符号がＥ(１６,３,８)の場合、読み出し信号を構成する１６ビット符号語（１シンボル符号）のビット振幅を調べて、振幅が大きい符号語ビットから順番に＃１〜＃１６までの番号を付ける。
つぎに、番号＃１〜＃３の符号語ビットを“１”に、番号＃４〜＃１６の符号語ビットを“０”にしたものを識別結果とする。
非特許文献３にはソート検出の一種であるデータ検出アルゴリズムが開示されている。
【００１７】
読み出し信号が８ビット（０〜２５５）にＡＤ変換されていると仮定すると、相関検出は、次の手順で行う。
読み出し信号が８ビットにＡＤ変換されている場合、０〜２５５の範囲の値を取るので、その分布の３／４の値１９３を“１”の目標値とし、その分布の１／４の値６４を“０”の目標値とするのが適切である。そして、記録された可能性のある２５６通りの符号語に対して、“１”のビットでは目標値１９１と読み出し信号との振幅差の２乗を計算し、“０”のビットでは目標値６４と読み出し信号との振幅差の２乗を計算し、この２乗誤差の１６ビット分の和を計算して各符号語が記録された確からしさの評価値を得る。
つぎに、上記評価値を比較して、確からしさが最も大きいものを、識別結果とする。
【非特許文献１】「テラバイト・ディスク実現へ勢いづくホログラフィック」日経エレクトロニクス2005年8月15日号,No.906, pp. 51−58
【非特許文献２】B. M. King and M. A. Neifield “Sparse modulation coding for increased capacity in volume holographic storage”, APPLIED OPTICS, VOL.39, pp. 6681−6688, DECEMBER 2000
【非特許文献３】B. M. King and M. A. Neifield “Low−complexity maximum−likelihood decoding of shortened enumerative permutation codes for holographic storage”, IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATION, VOL.19, NO.4, pp.７83−７90, APRIL 2001
【発明の開示】
【発明が解決しようとする課題】
【００１８】
しきい値検出と比べて、ソート検出や相関検出では、振幅変動の影響を受けないという大きなメリットがある。
ソート検出は１６通りの値を比較してソートするだけなので回路化は簡単であるが、振幅が最大から３番目までの番号＃１〜＃３の１６ビット信号を“１”にするだけなので符号語でない識別結果を出力する可能性がある。
相関検出は、記録された可能性のある符号語の中から最も確からしいものを選ぶ最尤検出なので識別性能は優れているが、加算と乗算を組み合わせて２５６通りの評価値を計算する必要があり、かつ、２５６通りの確からしさ値の中から最も小さい値を選ぶので、回路的に非常に複雑になるという問題点がある。
以上より、ソート検出とほとんど同じ簡便さと、相関検出とほとんど同じ性能を、兼ね備えた検出方式が望まれている。
【００１９】
なお、前記非特許文献２と同じ著者による非特許文献３を見ると、「ソート検出は最尤検出である。」という説明がある。しかしながら、１シンボルが１６ビットのときに、以下の２つの場合のいずれかに該当しなければならない。
（１）未使用符号語がない場合、つまり、１６ビットのうち３ビットだけが“１”になる１６Ｃ３＝５６０通りの組み合わせすべてを符号語として使う場合。
（２）５６０通りの組み合わせを１６ビットの２進数とみなして大きさの順番に＃０〜＃５５９という番号を付け、小さいものから順番に番号＃０〜＃２５５のものを符号語として選び、特別なアルゴリズムを用いて復号する場合。
ここで２^９＝５１２＜１６Ｃ３＝５６０＜２^１０＝１０２４であるから、ユーザーのｋビットをｎビットにマッピングしようとすると上記（１）の場合に該当しない。また、（２）の場合に該当するためはＥ(１６,３,８)のスパース符号は一意に決まってしまう。このため、たとえば「シンボル内で縦または横に１が連続しない」という要求を満たすことはできない。
【００２０】
また、非特許文献３に記載されているアルゴリズムを適用して得られるソート検出では、上述した単純なソート検出と比較すると、相関検出と同様に処理時間が長くなると考えられる。
【００２１】
本発明が解決しようとする課題は、ソート検出とほとんど同じ簡便さと、相関検出とほとんど同じ性能を兼ね備えるデータ検出に適している情報変調符号の符号化方法を提供することである。
【課題を解決するための手段】
【００２２】
本発明に係る記録変調符号の符号化方法は、ひとつの符号語を構成するｎビットのうち、ｍビットが“１”で（ｎ−ｍ）ビットが“０”である記録変調符号の符号化方法であって、前記記録変調符号において、ｎ個のうちｍ個を選ぶ組み合わせの数をＭ＝ｎＣｍ、ユーザー・ビット数であるｋビットをマッピングするのに必要な符号語の数をＫ＝２^ｋとしたときに、Ｋ＜Ｍが成立するようにｎ,ｍ,ｋが選ばれ、かつ、Ｋ個の符号語から２個を選んだときに、ＫＣ２通りの組み合わせの符号語間のハミング距離が最小になる組み合わせの数ができるだけ少なくなるように符号語を選択する。
本発明では好適に、前記Ｋ個の符号語の選択において、選択しうるＭＣＫ通りの組み合わせすべてについて符号語間のハミング距離が最小になる組み合わせの数を調べ、当該数が最小になるように前記Ｋ個の符号語を選択する。
本発明では好適に、前記Ｋ個の符号語の選択において、所定の基準で初期の符号語の組み合わせを選択する第１ステップと、現在選択されている符号語の中から、他の符号語とのハミング距離が最小になる組み合わせの数が最も多い符号語を探し出し、これを“old”とする第２ステップと、現在選択されている符号語から前記“old”を取り除いた２^(ｋ−１)個の符号語と組み合わせたときにハミング距離が最小になる組み合わせの数が最も少ない符号語を、現在選択されていない符号語の中から探し出し、これを“new”とする第３ステップと、現在選択されている符号語から前記“old”を取り除き前記“new”を加えたものを、新たな符号語の組合せとする第４ステップと、前記第１〜第４ステップの処理を繰り返し、予め定められた条件を満たした場合に、最終的な記録変調符号とする第５ステップとを含む。
【００２３】
本発明に係る記録変調符号の符号化装置は、ひとつの符号語を構成するｎビットのうち、ｍビットが“１”で（ｎ−ｍ）ビットが“０”である記録変調符号の符号化装置であって、前記記録変調符号において、ｎ個のうちｍ個を選ぶ組み合わせの数をＭ＝ｎＣｍ、ユーザー・ビット数であるｋビットをマッピングするのに必要な符号語の数をＫ＝２^ｋとしたときに、Ｋ＜Ｍが成立するようにｎ,ｍ,ｋが選ばれ、かつ、Ｋ個の符号語から２個を選んだときに、ＫＣ２通りの組み合わせの符号語間のハミング距離が最小になる組み合わせの数ができるだけ少なくなるように符号語を選択する符号選択手段を含む。
【発明の効果】
【００２４】
本発明によれば、ソート検出とほとんど同じ簡便さと、相関検出とほとんど同じ性能を兼ね備えるデータ検出に適している情報変調符号を実現できる。
【発明を実施するための最良の形態】
【００２５】
本発明は、スパース符号の構成方法に関するものであり、最小ハミング距離が最小になる符号語の組み合わせの数ができるだけ少なくなるように符号語を選択することで、識別エラーの検出能力を向上させ、符号語に含まれない識別結果を出力しない検出方法と組み合わせることで良好な識別性能が得られる記録変調符号およびその符号化方法を提供するものである。
この記録変調符号はリトライ検出というデータ識別方法に適している。リトライ検出とは、記録変調符号の符号語を単位として、読み出し信号の符号語単位ごとに、ビット振幅の大きいものから順番に定められた数だけ“１”にしていくソート検出の結果にエラーが含まれている場合には、次に確からしい候補を選択し、これにエラーが含まれているかどうかを調べることを繰り返すことで、簡便で良好な識別性能を実現する方法である。
また、本実施形態のハミング距離を用いて形成される記録変調符号は、いわゆるスパース符号の一種である。
【００２６】
以下、リトライ検出が適用された例として、ホログラム記録読出システムを説明する。ここでは説明の煩雑さを避けるために、最初に本発明適用前のスパース符号で説明する。
そして、つぎに、ハミング距離を用いて生成される本実施形態の記録変調符号と、その符号化方法について説明し、最後に、他の検出方法との比較における本発明適用の効果を説明する。
【００２７】
前述したように、任意のスパース符号は、１シンボルのビット数ｎ、１シンボル中の“１”のビット数ｍ、ユーザーのビット数ｋを用いてＥ(ｎ,ｍ,ｋ)により定義することができる。ここで“シンボル”とは、たとえば４×４画素で構成するホログラフィック再生像の最小単位であり、１シンボルが１符号語（スパース符号）に対応する。
既に説明したように、理想符号化器におけるユーザーが利用可能な記録容量（ユーザー容量）Ｃは、ｎビットの符号化率に対応するスパース率π１と相関し、スパース率π１＝０.２５付近で極大値を持つ（図３１参照）。
【００２８】
＜スパース符号＞
図１に、スパース符号のビット数ｎを４〜６４まで変化させたときの、スパース率π１とユーザー容量Ｃとの関係を示す。
図１において、スパース符号のビット数ｎが大きいほど、符号化率ｒ＝ｋ／ｎが大きくなり、理想化符号器（ｎ＝∞）に近くなることが分かる。符号化率ｒは、ｎ個のものからｍ個を選択する組み合わせｎＣｍと２^ｋとの関係から決められており、２^ｋ＜ｎＣｍという条件を満たす最大の整数ｋがユーザーのビット数になる。たとえばｎ＝１６、ｍ＝３の場合において、ｋ＝９と８で比較すると、組み合わせｎＣｍ数（図１の横軸に比例）が同じでも２９＞２８であるから、Ｅ(１６,３,９)のユーザー容量Ｃが、Ｅ(１６,３,８)のそれより大きいことが図１から分かる。
【００２９】
図２に、実際のホログラム記録における記録ページの例を示す。図３（Ａ）および図３（Ｂ）は、図２を線図により簡略化して示す図、図３（Ｃ）は、その説明を記す説明図である。
図３（Ａ）および図３（Ｃ）に示すように、記録ページ１は５１個のデータ記録用のサブ・ページ１１と、１個の同期用のサブ・ページ（ページ・シンク(page sync.)）１２とからなる。
各サブ・ページは、図３（Ｂ）に示すように、６×６個のシンボル１３からなり、そのうち中心の４シンボルでシンク(sync.)１４を形成している。シンク１４は、中央の１シンボル相当の領域が白、周囲を黒で形成されている。
各シンボルは白を“１”データビット、黒を“０”データビットとする４×４ビット構成となっている。
したがって、図３（Ｃ）に示すように、総ビット数３６８６４（＝１９２×１９２）のうち、記録ページ１の有効シンボル数は１６３２ビットである。
【００３０】
ここで、スパース符号としてＥ(１６,３,８)が用いられている。１６ビットのうちの３ビットを“１”にするのであれば、１６ビットから３個を選ぶ組み合わせは１６Ｃ３＝５６０通りあるので、２^９＝５１２＜５６０より、ユーザー・ビット数ｋを９にしてＥ(１６,３,９)を作ることが可能である。ただし、本実施形態では、あえて２^８＝２５６通りのシンボルしか使っていない。これは、以下の理由による。
第１に、未使用シンボルの存在を有効に利用する検出方式を使えば、検出エラーの数を少なくすることができる（この検出方法については後述する）。
第２に、縦と横に連続する“１”の個数を制限して、記録データの持つ低域成分をできるだけ少なくしたい。つまり、後述するようにスパース符号のシンボル内では、縦と横に連続して“１”が配列されない。また、シンボル間では“１”が２つ連続することはあるが、３つ以上連続することはない。シンボル間の区分けはシンク１４で精度よく行えるが、その場合でも、“１”ビットが２つ連続する箇所を出来るだけ少なくしたい。
【００３１】
図４〜図１０に、本発明適用前の記録変調符号（スパース符号）のテーブルの記録内容（テーブル）を示す。
これらの図では、スパース符号Ｅ(１６,３,８)で採用されている２５６通りのシンボルをまとめたものである。これらは、１６ビットのうち３ビットだけが“１”であり、なおかつ、シンボル内で縦または横に１が連続しないというルールを満たすものを探した結果である。このルールを満たすシンボルは２７６通りあったが、左上端を最下位ビットＬＳＢ、右下端を最上位ビットＭＳＢとして１６ビットの２進数にしたときの値が小さい２５６個を選んで用いている。
【００３２】
＜ホログラム記録再生システム＞
図１１に、ホログラム記録再生装置のシステム構成を示す。なお、この図では処理フローも併せて示すものであり、処理手順を矢印により示す。各部内には処理の内容を示す。
図示例のホログラム記録再生装置２０は、記録データ生成ブロック２１、読み出し信号の検出（記録データ再生）ブロック２２、特性評価ブロック２３、および、ホログラム記録読出装置２４を有する。このうち各ブロックを個別の装置として形成してもよいし、たとえばホログラム記録読出装置２４を除く他のブロックを１つの処理装置から形成してもよい。
【００３３】
記録データ生成ブロック２１は、乱数発生部２５（乱数発生ステップＳＴ１）、符号変換部２６（符号変換ステップＳＴ２）、マッピング部２７（マッピングステップＳＴ３）、ファイル書き込み部２８（ファイル書き込みステップＳＴ４）を有する。
【００３４】
ホログラム記録読出装置２４は、特に図示しないが、記録用ＳＬＭ（Spatial Light Modulator）としてのＤＭＤ（Digital Micromirror Device）、読み出し光を検出する撮像素子としてのＣＭＯＳセンサー、ホログラム記録媒体、ＤＭＤにより変調された信号光（物理光）の光源およびその照明光学系、記録時にホログラム記録媒体に信号とともに照射される参照光およびその照明光学系、読み出し時の読み出し光の像をＣＭＯＳセンサーの撮像面に結像させる読出光学系、データ変換部、それらの制御部が内蔵されている。ホログラム記録読出装置２４は、これらの各部を駆使して、ファイル書き込み部２８（ファイル書き込みステップＳＴ４）からの記録データファイルの信号によって、光源からの光を所定のＤＭＤで光変調し、これを記録媒体に参照光と共に照射してホログラム記録し、記録時と同じ条件の参照光の照射により記録データを読み出し、読み出し信号（ファイル）として出力する。
これらの一連の処理を実行するステップを、ホログラム記録読出処理ステップＳＴ５とする。
【００３５】
読み出し信号検出ブロック２２は、低域通過フィルタ（ＬＰＦ）部２９（ＬＰＦ処理ステップＳＴ６）、アップコンバータ３０（アップコンバートステップＳＴ７）、シンク検出部３１（シンク検出ステップＳＴ８）、リサンプリング部３２（リサンプリングステップＳＴ９）、および、シンボル検出部３３（シンボル検出ステップＳＴ１０）を有する。
このうちシンボル検出部３３（シンボル検出ステップＳＴ１０）が、本発明のデータ識別方法を主に実行する部分である。なお、不図示の全体の制御部（ＣＰＵ等）が、本発明のデータ識別方法の一部を実行してもよい。
【００３６】
特性評価ブロック２３は、リサンプリング部３２（リサンプリングステップＳＴ９）からの信号、または、シンボル検出後の信号からデータ表示のヒストグラムを作成するヒストグラム表示部３４（ヒストグラム表示ステップＳＴ１１）、リサンプリング部３２（リサンプリングステップＳＴ９）からの信号、または、シンボル検出後の信号から信号対ノイズ比（ＳＮＲ）を計算するＳＮＲ計算部３５（ＳＮＲ計算ステップＳＴ１２）、および、エラー表示を行うエラー表示部３６（エラー表示ステップＳＴ１３）を有する。
【００３７】
つぎに、上記構成の動作を説明する。
記録データ生成ブロック２１では、まず、８ビットの乱数を１ページ分のユーザー・データ数ｋである３２×５１＝１６３２バイト（１３０５６ビット）発生させる。本例では、図３並びに図４〜図１０に示すように、１シンボルが８ビット（１バイト）のデータを表記し、１ページの有効シンボル数が１６３２シンボルとなるため、そのシンボル数と同じ数の乱数を発生させる。
乱数により生成した８ビットのデータは、符号変換部２６（符号変換ステップＳＴ２）に送られ、ここで１６ビットのうち３ビットだけが“１”で残りは“０”であるスパース符号のシンボルに変換される。なお、所定の音声、映像、文書等のコンテンツデータから記録データを作成する場合は乱数発生部２５（乱数発生ステップＳＴ１）が省略され、コンテンツデータの大きさに応じたスパース符号が符号変換部２６（符号変換ステップＳＴ２）にて生成される。
つぎのマッピング部２７（マッピングステップＳＴ３）にて、スパース符号のシンボルと、シンク１４およびページ・シンク１２（図３参照）とを組み合わせて、記録ページが作成される。
最後に、ファイル書き込み部２８（ファイル書き込みステップＳＴ４）にて、これがホログラム記録の実験装置が読み込めるファイル形式（たとえばビットマップ・ファイル）に変換される。
【００３８】
記録データ生成ブロック２１で生成されたビットマップ・ファイルはホログラム記録読出装置２４に送られ、ここでホログラム記録及び読み出しが実行される。
まず、記録用のＳＬＭ（Spatial Light Modulator）として用いているＤＭＤ(Digital Micromirror Device）の各ピクセルをビットマップの“１”,“０”に応じてON,OFFした像をホログラム記録媒体に照射する。このとき媒体の光参照位置、参照光の条件に応じて多重記録が可能である。
読み出しでは、参照光を上記記録時と同じ位置および条件でホログラム記録媒体に照射する。このとき媒体からの光（読み出し光）を、所定の光学系でＣＭＯＳセンサーの撮像面に合焦させる。またＣＭＯＳセンサーの位置をできるだけ厳密に合わせて読み出しを行う。２×２＝４個のＣＭＯＳセンサーの受光部に対し、ＤＭＤの１つのピクセルからの光が照射されるように、ＣＭＯＳセンサー（または読み出し光）の位置とともに倍率を合わせている。なお、このホログラム記録および読み出しは様々な方式があるが、ここでは方式は任意である。
【００３９】
ＣＭＯＳセンサーからは撮像信号が出力され、これが読み出し信号ファイルに変換されて読み出し信号検出ブロック２２に出力される。
読み出し信号検出ブロック２２では、その初段の低域通過フィルタ（ＬＰＦ）部２９（ＬＰＦ処理ステップＳＴ６）にて、まず、２×２にオーバーサンプリングされた読み出し信号を簡単な２次元ＬＰＦを通して、帯域を制限する。帯域制限の方法は任意であるが、ここでは４つのセンサー出力を単純に平均している。
次に、リサンプリングの精度を上げるために、アップコンバータ３０（アップコンバートステップＳＴ７）にて、４×４にアップ・コンバートする。
そして、シンク検出部３１（シンク検出ステップＳＴ８）にて、ページ・シンクおよびサブ・ページ・シンクを順に検出する。具体的には、図３（Ａ）に示すページ・シンク１２を検出し、ページの先頭であることを検出する。その後、周期的に表れる４×４ビットの白い正方形（シンク１４）に対応した信号部分を検出するごとに、シンク１４を基準に換算されるサブ・ページ１１、さらには、それを構成する４×４ビットのシンボル１３を区分けする。以後、この区分けがずれないように同期をとって、次のリサンプリング部３２（リサンプリングステップＳＴ９）およびシンボル検出部３３（シンボル検出ステップＳＴ１０）を実行する。
リサンプリング部３２（リサンプリングステップＳＴ９）では、ホログラム記録読出装置２４内のＳＬＭ（ＤＭＤ）のピクセルと１対１（１×１）に対応させるようにリサンプリングを行ってシンボル１３単位に分解する。そして、つぎのシンボル検出部３３（シンボル検出ステップＳＴ１０）にて、たとえば「１６ビットのうち振幅の大きい３ビットを“１”にし、かつ、確からしさが高くなる検出方法」、すなわちリトライ検出を実行する。リトライ検出の詳細は後述する。
シンボル検出部３３には、リトライ検出に用いるテーブル３７が設けられている。このテーブル３７の記憶内容は、図４〜図１０の決められたスパース符号の組み合わせを保持する。また、符号変換部２６（符号変換ステップＳＴ２）のスパース符号の変換結果に応じてテーブル３７を書き換えるようにしてもよい。
【００４０】
リトライ検出により復元された記録データ（検出信号データ）は、特性評価ブロック２３に送られ、所定の評価処理が実行される。
この評価処理は任意であるが、ここではヒストグラム表示、ＳＮＲ計算、エラー表示を例示する。
エラー表示部３６（エラー表示ステップＳＴ１３）では、エラーが発生したビットおよびシンボル１３（図３）をページにマッピングして、エラーが発生した位置を表示する。
また、信号対ノイズ比（ＳＮＲ）計算部３５（信号対ノイズ比（ＳＮＲ）計算ステップＳＴ１２）にて、ページ全体の“１”と“０”の平均値および分散を計算して信号対ノイズ比（ＳＮＲ）を求める。さらに、“１”データの振幅分布と“０”データの振幅分布を計算してヒストグラムを表示する。
【００４１】
図１２に、ホログラム記録の読み出し信号例を示す。
図１２（Ａ）は、記録された１ビットのデータに対して２×２＝４個のセンサー受光部を割り当てて、２×２でオーバーサンプリングした読み出し信号のビットマップである。これから、上述した処理を行って１×１にリサンプリングした結果を、図１２（Ｂ）に示す。ここでは、周辺の不要なノイズ部分を削除して、図３に対応した部分だけになっている。
なお、ＤＭＤのピクセル数は横幅（Ｗ）１２４０×縦高さ（Ｈ）７２６であるが、実際に使用しているのは参照光を含めてＷ２５６×Ｈ２５６のみである。また、参照光などを考慮せずに１記録ページを１９２×１９２＝３６８６４ビット分とすると、ユーザー・ビット数ｋは有効シンボル数１６３２×８ビット＝１３０５６ビットとなる。したがって、符号化率は、１３０５６／３６８６４＝０.３５４である。
【００４２】
＜リトライ検出法＞
図１３に、リトライ検出のフローチャートを示す。
図１３（Ａ）は、基本的な手順を示すリトライ検出のフローチャートである。これは、読み出し信号を符号語単位に区分した後について説明したものである。
ステップＳＴ２０にて、前記読み出し信号を構成する一のｎ（本例ではｎ＝１６）ビット符号語について各ビットの振幅を調べ、大きいものから順番に＃１から＃ｎまでの番号を付ける。
ステップＳＴ２１では、番号＃１〜＃ｍを“１”に、番号＃(ｍ+１)〜＃ｎを“０”にしたものを最初の識別結果の候補とする。
【００４３】
つぎのステップＳＴ２２では、識別結果の候補が前記記録変調符合のテーブルに含まれているかどうかを、記録変調符号のテーブル３７（図１１）と識別結果の候補とを照らし合わせることにより調べる。
識別結果の候補が記録変調符号としてテーブル３７に含まれていれば、当該識別結果の候補を識別結果として出力する（ステップＳＴ２３）。
一方、ステップＳＴ２２で識別結果の候補がテーブル３７に含まれていない場合は、予め定めた順番で、次の識別結果の候補を選択し（ステップＳＴ２４）、再度ステップＳＴ２２の判断を行う。
このステップＳＴ２２とＳＴ２４の繰り返しを、ステップＳＴ２２の判断が「ＹＥＳ」となるまで繰り返す。この繰り返しループ処理では、識別結果の候補を予め定めた順番で変えていくが、同じ候補について重複判断はしない。
ステップＳＴ２３の後は、つぎのステップＳＴ０にてリターンとなり、つぎのｎビット符号語の入力があれば、上記ステップＳＴ２０〜ＳＴ２３を繰り返し、入力がなければ、そのまま終了となる。
【００４４】
＜スパース符号検討用シミュレータ＞
図１４に、スパース符号Ｅ(１６,３,８)検討用シミュレータの構成図を示す。なお、この図ではシミュレーションの処理フローも併せて示すものであり、処理手順を矢印により示す。各部内には処理の内容を示す。
このシミュレータ４０は、乱数発生部４１（乱数発生ステップＳＴ４１）、符号変換部４２（符号変換ステップＳＴ４２）、ノイズ重畳部４３（ノイズ付加ステップＳＴ４３）、ソート検出部４４（ソート検出ステップＳＴ４４）、ソート検出エラー計算部４４Ａ（エラー計算ステップＳＴ４４Ａ）、リトライ検出部４５（エラー検出ステップＳＴ４５）、リトライ検出エラー計算部４５Ａ（エラー検出ステップＳＴ４５Ａ）、および、符号語に含まない識別結果のカウント部４６（カウントステップＳＴ４６）を有する。
【００４５】
＃０〜＃２５５の範囲で一様分布する、１ページ（１６３２シンボル）分の乱数を発生し（ステップＳＴ４１）、これをＥ(１６,３,８)スパース符号に変換する（ステップＳＴ４２）。この各ビットに定められた標準偏差を持つ白色ガウスノイズを付加し（ステップＳＴ４３）、読み出し信号の代わりとする。
識別は、最初にソート検出で行い（ステップＳＴ４４）、ノイズを加える前の符号語と比較してエラー数を調べるとともに（ステップＳＴ４４Ａ）、識別結果を調べて用いた記録変調符号の符号語に含まれていない識別結果の数をカウントして検出エラーとする（ステップＳＴ４６）。引き続き、リトライ検出を行い（ステップＳＴ４５）、この識別結果を、ノイズを加える前の符号語と比較してのエラー数を調べる（ステップＳＴ４５Ａ）。
【００４６】
図１５と図１６に、スパース符号Ｅ(１６,３,８)のシミュレーション結果を示す。
２種類のスパース符号のうち「適用前」の表記により示すデータは、図４〜図１０に示すテーブルを使ったシミュレーション結果で、「シンボル内で縦または横に１が連続しない」という単純なルールを満たすＥ(１６,３,８)符号である。また、「０−２５５」の表記により示すデータは、非特許文献３で説明されている「１６ビットのうち３ビットだけが“１”となる５６０通りの組み合わせを１６ビットの２進数とみなして大きさの順番に＃０〜＃５５９という番号を付けたときに、小さいものから順番に＃０〜＃２５５を符号語として選んだ記録変調符号」についてのシミュレーション結果である。非特許文献３には、この変調符号の場合に、特別なアルゴリズムを使うことで「ソート検出が最尤検出になる、つまり、相関検出と同じ結果になる」と説明されている。
【００４７】
シミュレーションは、１００ページ分のデータに対して行った。各図のグラフにおいて横軸の「平均線形ＳＮＲ２」により示すパラメータは、次式(5)により定義される。
【００４８】
［数５］
ＳＮＲ２＝(μ１−μ０)／√(σ０^２+σ１^２)…(5)
【００４９】
ここで、 記号「μ１」は“１”の読み出し平均値、「μ０」は“０”の読み出し平均値、「σ１」は“１”のノイズ標準偏差、「σ０」は“０”のノイズ標準偏差を表す。
このＳＮＲ２は、“１”と“０”のノイズの性質が異なるホログラム記録で一般に用いられているものである。今回のシミュレーションでは、σ１＝２*σ０になるように設定している。
【００５０】
図１５（Ａ）は、ソート検出を適用した時のエラー数を比較した結果を示す。
今回のシミュレータでは、符号間干渉や振幅変動などは発生させていないので、「シンボル内で縦または横に“１”が連続しない」という本発明適用前のスパース符号でなされた工夫は効果がなく、ソート検出によるエラー数では、「適用前」と「０−２５５」の２つの方法でほぼ一致する。
【００５１】
図１５（Ｂ）は、２つの変調符号のエラー検出能力を比較したものである。
どちらも５６０通りから２５６通りを選んだことに変わりはないが、識別結果がエラーであった場合に、これを検出できる可能性は、「０−２５５」の方法により選んだ符号よりも「適用前」の方法により選んだ符号の方が約１.５倍高くなっていることがわかる。
【００５２】
図１６（Ａ）は、この２種類のスパース符号にリトライ検出を適用した場合である。
どちらもソート検出と比較するとエラー数が減少しているが、「適用前」の方法により生成したスパース符号の方が、「０−２５５」の方法により生成したスパース符号よりエラーが少なくなっている。ソート検出と比較したときのリトライ検出によるエラー低減能力を示すのが、図１６（Ｂ）である。これを見ると、「適用前」の方法によるエラー低減能力が、より高いことは明らかである。
【００５３】
ここで「０−２５５」のスパース符号に、非特許文献３で説明されているソート検出のアルゴリズムを適用すれば、図４〜図１０に示すスパース符号よりもエラー数が少なくなるのではないか」という疑問が生じるかもしれないが、それは危惧にすぎない。
なぜなら、非特許文献３で説明されているアルゴリズムを適用して得られる結果は相関検出を適用した結果に等しく、リトライ検出と相関検出は（非常に長い計算時間が掛かるので相関検出は試していないが）ほとんど同じ識別性能を持つからである。したがって、非特許文献３で説明されているソート検出のアルゴリズムを適用しても、図１６（Ａ）とほとんど同じ結果になり、図４〜図１０に示すスパース符号と「０−２５５」のスパース符号でシミュレーション結果の優劣が逆転することはありえない。
【００５４】
以上より、リトライ検出を適用することを考えると、エラーが検出しやすいスパース符号が望ましいことがわかる。しかしながら、このような観点から最適化されたスパース符号は、これまで存在しなかった。
本実施形態で次に説明する記録変調符号は、エラーが検出しやすいように最適化されたスパース符号に適したものであり、特にホログラム記録を応用したデータ・ストレージ装置の記録密度や容量を向上させることを可能にするものである。
【００５５】
＜ハミング距離＞
本実施形態の記録変調符号は、ハミング距離の考え方を用いている。
「ハミング距離」とは、２つの符号語の“１”と“０”の異なる数のことである。ハミング距離を“ｄ”とすると、[０１１]と[０１０]ならハミング距離ｄ＝１、[０００]と[１１１]ならハミング距離ｄ＝３になる。また、最小ハミング距離“ｄmin”とは、符号語間のハミング距離を符号全体で調べた時の最小値である。
【００５６】
図１７（Ａ１）〜（Ａ３）は、誤り検出と誤り訂正の説明図である。
２つの符号間の組み合わせ“ｄmin＝２”の符号では、１ビットの誤りが検出できる（Ａ１）。“ｄmin＝３”の符号では、１ビットの誤りが訂正できる（Ａ２）。ただし、 “ｄmin＝３”の符号で２ビット誤ると検出も訂正もできず、誤訂正してしまう（Ａ３）。
図１７（Ｂ）に、これを一般的な図にして示す。
最小ハミング距離が“ｄmin”の符号でｄmin≧２ｂ＋ｃであれば、ｂビットの誤り訂正と(ｂ＋ｃ)ビットの誤り検出が可能である。
【００５７】
＜スパース符号とハミング距離＞
Ｅ(１６,３,８)符号では、次の［数６］と［数７］のハミング距離ｄは２である。また、［数８］と［数９］のハミング距離ｄは６である。
【００５８】
［数６］
０１００
１００１
００００
００００
［数７］
０１００
１０００
０１００
００００
［数８］
０１００
１００１
００００
００００
［数９］
００１０
００００
００００
１００１
【００５９】
Ｅ(１６,３,８)符号では、ハミング距離ｄ＝２,４,６になる組み合わせしか存在しない。
【００６０】
一方、ソート検出では、振幅の大きい３つを“１”にすることから、“１”の数が２または４に増減するビット誤りは存在せず、“１”の位置がひとつだけずれた２ビット誤りが発生する可能性が最も高いと考えられる。
【００６１】
ここで、次に示す［数１０］のように記録した符号を、［数１１］と検出した場合、これが符号語に含まれるものと同じであれば「エラー」であるか「符号語」であるかの区別がつかず、エラー検出ができない。ただし、検出した符号が符号語でなければエラーが検出できるので、リトライして正しく検出できる可能性がでてくる。
つまり、ハミング距離ｄ＝２となる組み合わせの数を減らすと、検出可能なエラーの数が増えて、リトライによってエラーを少なくできる割合も増えると考えられる。
【００６２】
［数１０］
０１００
１００１
００００
００００
［数１１］
０１００
１０００
０１００
００００
【００６３】
この考え方が正しいかどうか確認するために、前述の２つのスパース符号のハミング距離の分布を調べてみると次の［表１］のような結果が得られた。
【００６４】
【表１】
2007226879.tif 000003
【００６５】
予想通り、「０−２５５」のスパース符号よりも図４〜図１０のスパース符号の方が、ハミング距離ｄ＝２となる組み合わせの数が少なくなっており、これがエラー検出能力の差となっていることがわかる。
【００６６】
＜本発明の記録変調符号＞
図１１の符号変換部２６が、本発明の記録変調符号の符号化方法を実行する手段（符号化装置）の一例に該当する。
本発明の符号化方法のうち、基本的な方法は、「ひとつの符号語を構成するｎビットのうち、ｍビットが“１”で(ｎ−ｍ)ビットが“０”であるような記録変調符号において、ｎ個のうちｍ個を選ぶ組み合わせの数をＭ＝ｎＣｍ、ユーザー・ビット数であるｋビットをマッピングするのに必要な符号語の数をＫ＝２^ｋとしたときに、Ｋ＜Ｍが成立するようにｎ,ｍ,ｋが選ばれ、かつ、Ｋ個の符号語から２個を選んだときにＫＣ２通りの組み合わせの符号語間のハミング距離が最小になる組み合わせの数ができるだけ少なくなるように符号語を選択したことを特徴とする記録変調符号である。
ここで前半部分の要件、すなわち「Ｋ＜Ｍが成立するようにｎ,ｍ,ｋを選ぶ」ことは、ユーザー・ビット数の選択範囲の制限であり、この要件を満足しないとそもそも使用可能な記録変調符号とならない。
また、後半部分の要件、すなわち「Ｋ個の符号語から２個を選んだときにＫＣ２通りの組み合わせの符号語間のハミング距離が最小になる組み合わせの数ができるだけ少なくなるように符号語を選択する」ことは、前述した＜スパース符号とハミング距離＞の項目で述べた内容から明らかである。つまり、最も多いエラーはハミング距離ｄ＝２であることから、そのエラーが起きた場合に、これがエラーであるのか符号語であるのかが区別できない可能性が高い。このため、ハミング距離ｄ＝２（最小）となるように符号語を選択することができれば、リトライ検出によるエラー低減効果を向上させることができるというのが、本発明の基本的な考え方である。
次の問題は、ハミング距離ｄ＝２となる組み合わせの数が少ないスパース符号をどうやって探し出すかである。
【００６７】
＜スパース符号の構成方法＞
以下、説明を簡単にするために、ｎ＝１６,ｍ＝３,Ｋ＝８となるＥ(１６,３,８)のスパース符号の構成方法を例にとって説明するが、本発明は任意の実現可能なＥ(ｎ,ｍ,ｋ)のスパース符号に対して適用可能である。
第１の方法は、１６ビットのうち３ビットが“１”になる５６０個から２５６個を選ぶすべての符号語の組み合わせについて、ハミング距離が２となる組み合わせの数が最小になるＫ＝２^ｋ個の符号を選ぶという方法である（第１の方法）。
この場合、ハミング距離が２となる組み合わせの数が最小になる組み合わせが、２つ以上存在する可能性がある。このとき、「値の小さいものを優先して選択するという考え方」（第２の方法）と、「値の大きいものを優先して選択するという考え方」（第３の方法）のどちらを採用してもよい。
【００６８】
ところが、５６０個から２５６個を選ぶ組み合わせの数を計算してみると、なんと１.６２７６ｅ+１６６通りもある。１秒間に１０００通りの組み合わせについて調べることが可能であるとしても、１年で、１０００*６０*６０*２４*３６５＝３.１５３６ｅ+１０通りしか調べることはできず、５.１６１１ｅ+１５５年という天文学的な時間が掛かってしまう。したがって、上記第１〜第３の方法は、Ｅ(１６,３,８)のスパース符号の探索に適用するには、現実的でない。
【００６９】
そこで、第４の方法として、逐次的に入れ替えて改善していく方法が採用可能である。この方法をＥ(１６,３,８)用に書き直してみると、以下のようになる。
第１ステップ：所定の基準で選択された初期の２５６個の符号語の組み合わせからスタートする（第１ステップ）。
第２ステップ：現在選択されている２５６個の符号語の中から、他の符号語とのハミング距離が最小になる組み合わせの数がもっとも多い符号語を探し出してこれを“old”とする（第２ステップ）。
第３ステップ：現在選択されている２５６個の符号語から“old”を取り除いた２５５個の符号語と組み合わせたときにハミング距離が最小になる組み合わせの数が最も少ない符号語を、現在選択されていない３０４個の符号語の中から探し出してこれを“new”とする。
第４ステップ：現在選択されている２５６個の符号語から“old”を取り除き“new”を加えたものを、新たな符号語の組合せとする。
第５ステップ：上記第１〜第４ステップの処理を繰り返し、予め定められた条件を満たした場合に、最終的な記録変調符号とする。
この中に含まれる不確定要素を求めるのに前記第２〜第３の方法を採ることができる。
【００７０】
まず、上記第１ステップにおける初期の２５６個の符号語を選択する方法について、いくつかの方法が考えられる。
５６０個の符号語を１６ビットの２進数とみなして大きさの順番に＃０〜＃５５９という番号を付けたときに、小さいものから順番に＃０〜＃２５５を初期の符号語として選ぶ（第５の方法）。あるいは逆に、大きいものから順番に＃５５９〜＃３０４を初期の符号語として選ぶことが可能である（第６の方法）。ここで、前者の小さいものから選ぶときの初期符号は、図１５と図１６で「０−２５５」としたスパース符号である。
【００７１】
次に、前記第２ステップの“old”の選択方法についても、いくつかの方法が考えられる。
現在選択されている符号語の中で他の符号語とのハミング距離が最小になる組み合わせの数が最も多い符号語が２つ以上あった場合に、最も番号が小さいものを選ぶ（第７の方法）。あるいは逆に、最も番号が大きいものを選ぶことが可能である（第８の方法）。
同様に、前記第３ステップの“new”の選択方法についても、いくつかの方法が考えられる。
現在選択されている符号語から“old”を取り除いた２^(ｋ−１)個の符号語と組み合わせたときにハミング距離が最小になる組み合わせの数が最も少ない符号語が、現在選択されていない符号語の中に２つ以上あった場合に、最も番号が小さいものを選び、これを“old”とする（第９の方法）。あるいは逆に、最も番号が大きいものを選ぶことが可能である（第１０の方法）。
【００７２】
終了判断を行う前記第３ステップについて、最も簡単な方法は、入れ替え処理の繰り返し回数が予め定められた数を越えた時に終了する方法である（第１１の方法）。
もう少し工夫したのは、入れ替え処理の繰り返し回数を定めることなく、ハミング距離が最小になる組み合わせの数が変わらない場合に終了する方法である（第１２の方法）。
場合によっては、いったん変化がなくなっても入れ替えを繰り返していくと再び変化し始めることがある。これを考慮して、入れ替え処理を行ってもハミング距離が最小になる組み合わせの数が変わらない場合に、さらに予め定められた数だけ入れ替え処理を行い、それでも変化がない場合に終了することもできる（第１３の方法）。
【００７３】
“old”と“new”の選択順番を反対にしておくと、終了判断を簡単に行うことができる（第１４,第１５の方法）。
第１４の方法では、初期符号の選択では値の小さいものから順番に選んだ前記第３の方法を、前記第２ステップで“old”の選択では値のもっとも小さいものを選ぶ前記第７の方法を、前記第３ステップの”new”の選択では値の最も大きいものを選ぶ前記第１０の方法を使い、前記第３ステップの判定基準としては変化がなくなったらすぐに終了する前記第１２の方法を使う。
第１５の方法では、初期符号の選択では値の大きいものから順番に選んだ前記第６の方法を、前記第２ステップの“old”の選択では値の最も大きいものを選ぶ前記第８の方法を、前記第３ステップの“new”の選択では値の最も小さいものを選ぶ前記第９の方法を使い、前記第３ステップの判定基準としては変化がなくなったらすぐに終了する前記第１２の方法を使う。
どちらの方法も、一度使われた符号語が出たり入ったりする前に終了することで、効率よく最小に近い組み合わせを見つけることができる。
【００７４】
つぎに、前記第４の方法に前記第１４の方法を適用した場合の具体的な適用例を、図１８を用いて説明する。
図１８は、この場合のハミング距離分布改善のフローチャートである。
ステップＳＴ１では、１６ビットのうち３ビットが“１”になる５６０個の組み合わせから、値が小さい方から＃０〜＃２５５の２５６個を選択して“code”とする。残り３０４個を“unused”とする。
つぎに、“code”内のすべての符号語間のハミング距離ｄを計算し（ステップＳＴ２）、ハミング距離ｄ＝２となる組み合わせの総数を計算する（ステップＳＴ３）。
【００７５】
ステップＳＴ４では、前回よりハミング距離ｄ＝２の符号語が減ったかを調べ、変化がなければ終了する。変化があれば、ステップＳＴ５に進む。
ステップＳＴ５では、ハミング距離ｄ＝２の数が最も多い符号語の中で、最大の符号語を“old”として削除する。
続いて、“code”から“old”を取り除いた２５５個と“unused”の３０４個との間のハミング距離を計算し（ステップＳＴ６）、ハミング距離ｄ＝２となる組み合わせの総数が最も少ない符号語の中で、最小の符号語を“new”として“code”に追加し（ステップＳＴ７）、ステップＳＴ２に戻る。
このステップＳＴ２〜ＳＴ７のループ処理を、ステップＳＴ４でハミング距離ｄ＝２の符号語が減らなくなったらすぐに終了する。
【００７６】
図１９に、この方法（アルゴリズム）を用いたハミング距離分布の改善結果を示す。図１９（Ａ）は、ハミング距離と、符号語の組み合わせ数の関係を示すグラフであり、同図（Ｂ）は元データである。
図において「０−２５５」と表記したものは、前述したように１６ビットのうち３ビットが“１”となる５６０通りの組み合わせから、番号（値）が小さい２５６個を選んだ符号の場合である。また、「適用前」と表記したものは、縦横の“１”の連続を２個以内に制限できる２７６通りの組み合わせから、番号が小さい２５６個を選んだ符号の場合である（図４〜図１０参照）。
ハミング距離ｄ＝２となる符号語の組み合わせの数は「０−２５５」の方法による符号の“３５８３”から、本発明を適用した符号では“２０８８”まで減少している。この数は「適用前」のスパース符号の“２７６４”と比べてもかなり少なくなっており、本発明のアルゴリズムが正しく機能していることが確認された。
【００７７】
図２０〜図２６に、本発明のアルゴリズムを用いて生成したＥ(１６,３,８)スパース符号のテーブルを示す。また、図２７（Ａ）〜（Ｄ）に、組み合わせ例を示す。
この符号では縦横は最大６個連続で、斜めの連続にはなんの制限も掛かっていない。このため、図２７（Ａ）および（Ｂ）に示すように、縦または横に“１”が６個連続して並ぶ可能性がある。また、図２７（Ｃ）に示すように、＃００２と＃０６９が図示のように組み合わされると、“１”が斜めに連続してずっと並ぶ可能性がある。同様に、図２７（Ｄ）に示すように、＃１８３と、右上隅に“１”があるもの（たとえば＃２４６等）との組み合わせによって、“１”が斜めに連続してずっと並ぶ可能性がある。
【００７８】
図２８に、本発明の「適用前」と適用後（「本発明」）とで、記録ページ・ビットマップの比較を示す。
図２８（Ａ）に示す「適用前」のスパース符号では、斜めに６個連続するものはあるが、縦横の連続は２個以内に制限されていることから、“１”がうまくばら撒かれた感じになっている。これに対して、図２８（Ｂ）に示す本発明のスパース符号では、縦横は最大６個連続、斜めは無制限であることから（図２７参照）、横に５個連続するものが散見され、“１”の塊が散在したような感じになっている。
【００７９】
図２９と図３０に、図１５と図１６に、さらに本発明の結果を追加して示す。シミュレーションの条件は図１５,図１６の場合と全く同じである。
図２９（Ａ）は、ソート検出を適用した時のエラー数を比較したものである。図１５（Ａ）と同様に、３つのスパース符号のソート検出によるエラー数はほぼ一致する。
図２９（Ｂ）は、３つの変調符号のエラー検出能力を比較したものである。ハミング距離が２となる組み合わせの数を最小にした本発明のスパース符号では、期待通りに最もエラー検出能力が大きくなっており、「０〜２５５」の方法により選んだ符号の約２倍、「適用前」のスパース符号の約１.３倍になっている。
【００８０】
図３０（Ａ）は、この３種類のスパース符号にリトライ検出を適用した場合である。いずれもソート検出と比較するとエラー数が減少しているが、本発明のスパース符号のエラー数がもっとも少なくなっている。
図３０（Ｂ）に、ソート検出と比較したときのリトライ検出によるエラー低減能力を示す。これを見ると、「適用前」のスパース符号と比較しても、エラー低減能力が向上していることが明らかである。
【００８１】
以上より、本発明のスパース符号はエラーが検出しやすいように最適化されたスパース符号となっており、リトライ検出を用いることで従来例よりもエラー数を少なくすることができることが示された。
なお、本発明では検出方法としてリトライ検出を例にして説明したが、相関検出を用いた場合にも同等なエラー低減効果が期待できる。
また、「適用前」としたスパース符号では縦と横の連続数を２以下に制限するということを主眼に設計されたものであったので、実際のホログラム記録を行った場合には本発明の効果は少なくなるのではないかという危惧もある。しかしながら、最近のホログラム記録では「位相マスク方式」と呼ばれる方法が使われ始めており、周波数領域となるホログラム・メディア上での光の集中を避けることができるので、縦と横の連続数を制限する必要はないと考えられている。
したがって、本発明のスパース符号を使った場合のエラー低減効果は、今回の簡単なシミュレーション結果に準じたものになることが期待できる。
【図面の簡単な説明】
【００８２】
【図１】スパース符号のビット数ｎを４〜６４まで変化させたときの、スパース率π１とユーザー容量Ｃとの関係を示すグラフである。
【図２】実際のホログラム記録における記録ページの例を示す図である。
【図３】図２を線図により簡略化して示す図とその説明図である。
【図４】本発明適用前の記録変調符号のテーブル記録内容を示す図である（０〜３９番まで）。
【図５】同記録内容を示す図である（４０〜７９番まで）。
【図６】同記録内容を示す図である（８０〜１１９番まで）。
【図７】同記録内容を示す図である（１２０〜１５９番まで）。
【図８】同記録内容を示す図である（１６０〜１９９番まで）。
【図９】同記録内容を示す図である（２００〜２３９番まで）。
【図１０】同記録内容を示す図である（２４０番以降）。
【図１１】ホログラム記録再生装置のシステム構成図である。
【図１２】ホログラム記録の読み出し信号のマップ図である。
【図１３】リトライ検出の基本フローチャートである。
【図１４】スパース符号Ｅ(１６,３,８)検討用シミュレータの構成図である。
【図１５】（Ａ）はソート検出時のエラー数を比較するグラフと元データの図表である。（Ｂ）はエラー検出能力を比較するグラフと元データの図表である。
【図１６】（Ａ）はリトライ検出を行った後のエラー数を比較するグラフと元データの図表である。（Ｂ）はリトライ検出のエラー低減能力をソート検出と比較して示すグラフと元データの図表である。
【図１７】（Ａ１）〜（Ａ３）および（Ｂ）は、ハミング距離の違いによる誤り検出と誤り訂正の説明図である。
【図１８】本発明の適用によってハミング距離分布を改善する処理のフローチャートである。
【図１９】（Ａ）はハミング距離分布の改善結果を示すグラフであり、（Ｂ）はその元データを示す図表である。
【図２０】本発明適用後の記録変調符号のテーブル記録内容を示す図である（０〜３９番まで）。
【図２１】同記録内容を示す図である（４０〜７９番まで）。
【図２２】同記録内容を示す図である（８０〜１１９番まで）。
【図２３】同記録内容を示す図である（１２０〜１５９番まで）。
【図２４】同記録内容を示す図である（１６０〜１９９番まで）。
【図２５】同記録内容を示す図である（２００〜２３９番まで）。
【図２６】同記録内容を示す図である（２４０番以降）。
【図２７】（Ａ）〜（Ｄ）は、“１”が連続する組み合わせ例を示す図である。
【図２８】（Ａ）および（Ｂ）は、本発明の適用前後で記録ページ・ビットマップの比較を示す図である。
【図２９】（Ａ）はソート検出時のエラー数を比較するグラフと元データの図表である。（Ｂ）はエラー検出能力を比較するグラフと元データの図表である。
【図３０】（Ａ）はリトライ検出を行った後のエラー数を比較するグラフと元データの図表である。（Ｂ）はリトライ検出のエラー低減能力をソート検出と比較して示すグラフと元データの図表である。
【図３１】スパース率π１を０から１まで変化させたときのユーザー容量Ｃを計算した結果を示すグラフである。
【符号の説明】
【００８３】
１…記録ページ、１１…サブ・ページ、１２…ページ・シンク、１３…シンボル、１４…シンク、２１…記録データ生成ブロック、２２…読み出し信号検出ブロック、２３…特性評価ブロック、２４…ホログラム記録読出装置、３１…シンク検出部（シンク検出ステップＳＴ８）、３３…シンボル検出部（シンボル検出ステップＳＴ１０）、３７…テーブル
【図１】
2007226879.tif 000004
【図２】
2007226879.tif 000005
【図３】
2007226879.tif 000006
【図４】
2007226879.tif 000007
【図５】
2007226879.tif 000008
【図６】
2007226879.tif 000009
【図７】
2007226879.tif 000010
【図８】
2007226879.tif 000011
【図９】
2007226879.tif 000012
【図１０】
2007226879.tif 000013
【図１１】
2007226879.tif 000014
【図１３】
2007226879.tif 000015
【図１４】
2007226879.tif 000016
【図１５】
2007226879.tif 000017
【図１６】
2007226879.tif 000018
【図１７】
2007226879.tif 000019
【図１８】
2007226879.tif 000020
【図１９】
2007226879.tif 000021
【図２０】
2007226879.tif 000022
【図２１】
2007226879.tif 000023
【図２２】
2007226879.tif 000024
【図２３】
2007226879.tif 000025
【図２４】
2007226879.tif 000026
【図２５】
2007226879.tif 000027
【図２６】
2007226879.tif 000028
【図２７】
2007226879.tif 000029
【図２８】
2007226879.tif 000030
【図２９】
2007226879.tif 000031
【図３０】
2007226879.tif 000032
【図３１】
2007226879.tif 000033
【図１２】
2007226879.tif 000034