(57)【要約】【課題】ハードウェアにおいて効率的に実装可能な、コーディング実装を提供すること。【解決手段】Ｎバイナリ・シンボル（ＮＢ）ソース・データ・ベクトルをＭバイナリ・シンボル（ＭＢ）エンコード・ベクトルにエンコードするための技法が提供され、Ｍ＞Ｎ＞０である。デコードするための技法も提供される。例示的コーディングおよびデコーディング装置が、例示的８Ｂ／１０Ｂエンコーディング・スキームとして提示される。エンコード・ベクトルは、ディスパリティ依存またはディスパリティ非依存とすることができる。１つまたは複数の個々のバイナリ・シンボル変更を有するエンコード・ベクトルを割り当てる場合、バランスの取れたディスパリティ非依存エンコード・ベクトルを優先することができる。有利なことに、全ベクトル補足および１つまたは複数のバイナリ・シンボルの個々の変更は、ほぼ並行して実行することができる。【選択図】図５
2008543223.tif 000002
【特許請求の範囲】
【請求項１】
Ｎバイナリ・シンボル（ＮＢ）ソース・データ・ベクトルを、Ｍバイナリ・シンボル（ＭＢ）エンコード・ベクトルにエンコードする方法であって、Ｍ＞Ｎ＞０であり、
複数のＮＢソース・データ・ベクトルを取得するステップと、
エンコーディング・スキームに従って、前記ＮＢソース・データ・ベクトルを複数のＭＢエンコード・ベクトルにエンコードするステップであって、前記エンコーディング・スキームは、前記ＮＢソース・データ・ベクトルの少なくとも第１の部分を、ディスパリティ非依存エンコード・ベクトルを含むＭＢエンコード・ベクトルにマッピングし、前記エンコーディング・スキームは、前記ＮＢソース・データ・ベクトルの少なくとも第２の部分を、１次表現と、前記１次表現に対して補足的な代替表現とを有する、ディスパリティ依存エンコード・ベクトルを含むＭＢエンコード・ベクトルにマッピングし、前記ＭＢエンコード・ベクトルは、前記エンコーディング・スキームによってそれらに付加される、Ｍ〜Ｎのバイナリ・シンボルを有し、前記ＭＢエンコード・ベクトルのごく一部は、前記ＮＢソース・データ・ベクトルの対応する部分に比べて、ベクトル全体の補足以外のバイナリ・シンボル変更を有する、エンコードするステップと、を含み、
前記エンコーディング・スキームが、
（ｉ）少なくとも他の可能なＮＢからＭＢへのエンコーディング・スキームと比較して削減するステップと、
（ｉｉ）前記ＮＢソース・データ・ベクトルの前記対応する部分に比べて、ベクトル全体の補足以外の前記バイナリ・シンボル変更を有する、前記ＭＢエンコード・ベクトルの前記ごく一部内にある、前記ディスパリティ依存エンコード・ベクトルの量を、ほぼ除去するステップと、
のうちの少なくとも１つを実行するために事前に選択される、方法。
【請求項２】
Ｎ＝８、Ｍ＝１０であり、前記エンコーディング・スキームが、前記ＮＢソース・データ・ベクトルの前記対応する部分に比べて、ベクトル全体の補足以外の前記バイナリ・シンボル変更を有する、前記ＭＢエンコード・ベクトルの前記ごく一部内にある、前記ディスパリティ依存エンコード・ベクトルの前記量をほぼ除去する、請求項１に記載の方法。
【請求項３】
前記エンコーディング・スキームが、ＤＣバランス伝送コードを生成し、
前記ＮＢソース・データ・ベクトルの前記第１の部分が、前記ディスパリティ非依存エンコード・ベクトルの対応する部分にエンコードされる場合、前記Ｍ〜Ｎのバイナリ・シンボルに対応する付加バイナリ・シンボルの補足的ペアと共に付加される、２よりも大きくない先行ラン・レングスを有する、少なくとも６０のバランス・ソース・データ・ベクトルを含む、
請求項２に記載の方法。
【請求項４】
前記ＮＢソース・データ・ベクトルの前記対応する部分に比べてバイナリ・シンボル変更を有するＭＢエンコード・ベクトルの前記ごく一部が、前記ディスパリティ非依存エンコード・ベクトルの前記対応する部分と同一の８つのバイナリ・シンボルと、前記付加バイナリ・シンボルのペアの補足である２つのバイナリ・シンボルとを有する、前記ディスパリティ非依存エンコード・ベクトルのそれらに対応する、請求項３に記載の方法。
【請求項５】
前記エンコーディング・スキームが、バイナリ・シンボル変更を有する前記ＭＢエンコード・ベクトルの前記ごく一部に対応する前記ＮＢソース・データ・ベクトルの大半を、前記大半の補足的ペアにおいて、前記付加バイナリ・シンボルを除くすべてのバイナリ・シンボル位置で補足的な前記ディスパリティ非依存ＭＢエンコード・ベクトルの対応するペアに割り当て、
前記エンコーディング・スキームが、４の先行ランと、それに続く２ペアの補足的バイナリ・シンボルとを有する、前記ＮＢソース・データ・ベクトルの前記第１の部分のうちの少なくとも８つのベクトルを、前記８ベクトルのうちの対応するベクトルに関して補足された２つの先行バイナリ・シンボルを有する前記ＭＢエンコード・ベクトルのうちの前記ごく一部のうちの選択されたベクトルに割り当て、
前記エンコーディング・スキームが、４の先行ランと、それに続く前記４の先行ラン内のバイナリ・シンボルと合致する４つの後続バイナリ・シンボル内の単一のバイナリ・シンボルとを有する、前記ＮＢソース・データ・ベクトルの前記第１の部分のうちの少なくとも８つのベクトルを、前記８ベクトルのうちの対応するベクトルに関して補足された第３のバイナリ・シンボルを有する前記ＭＢエンコード・ベクトルのうちの前記ごく一部のうちの選択されたベクトルに割り当て、
前記エンコーディング・スキームが、４の先行ランと、それに続く前記４の先行ラン内のバイナリ・シンボルと合致しない４つの後続バイナリ・シンボル内の単一のバイナリ・シンボルとを有する、前記ＮＢソース・データ・ベクトルの前記第１の部分のうちの少なくとも８つのベクトルを、前記８ベクトルのうちの対応するベクトルに関して補足された第１、第３、および第４のバイナリ・シンボルを有する前記ＭＢエンコード・ベクトルのうちの前記ごく一部のうちの選択されたベクトルに割り当てる、
請求項４に記載の方法。
【請求項６】
前記エンコーディング・スキームが、ＤＣバランス伝送コードを生成し、
前記ＮＢソース・データ・ベクトルの前記第１の部分が、＋２および−２のうちの１つの全体ディスパリティを有し、任意の所与のバイナリ・シンボル位置の後に、多くとも２の実行ディスパリティを有する、少なくとも５４のソース・データ・ベクトルを含み、前記ベクトルには、前記ディスパリティ非依存エンコード・ベクトルの対応する部分にエンコードされる場合、＋２の全体ディスパリティを有する前記５４のソース・データ・ベクトルの場合にバイナリ・シンボル００が、ならびに、−２の全体ディスパリティを有する前記５４のソース・データ・ベクトルの場合にバイナリ・シンボル１１が、付加され、
前記ＮＢソース・データ・ベクトルの前記第２の部分が、
＋２のディスパリティを有し、
バイナリ・シンボル１１００１で終わること、
バイナリ・シンボル１１１０で始まり、バイナリ・シンボル１で終わること、および、
バイナリ・シンボル１０で終わり、（ｉ）多くとも３つの先行１および（ｉｉ）多くとも１つの先行０を有すること、
のうちの、少なくとも１つを満たす、少なくとも１９のソース・データ・ベクトルを含み、
前記１９のＮＢソース・データ・ベクトルは、必要な負の開始ディスパリティを有する、１９のディスパリティ依存バランス・エンコード・ベクトルにマッピングされ、前記エンコード・ベクトルは２つのゼロが付加された前記ソース・データ・ベクトルと同一であるバイナリ・シンボルを有し、
さらに前記第２の部分が、
バイナリ・シンボル１１１０で始まる、少なくとも４つのバランス・ソース・データ・ベクトルであって、前記バイナリ・シンボル１１１０で始まる４つのバランス・ソース・データ・ベクトルは、必要な負の開始ディスパリティを有し、バイナリ・シンボル０１が付加された前記４つのバランス・ソース・データ・ベクトルと同一のバイナリ・シンボルを有する、４つのディスパリティ依存バランス・エンコード・ベクトルにマッピングされる、少なくとも４つのバランス・ソース・データ・ベクトルと、
バイナリ・シンボル０００１で始まる、少なくとも４つのバランス・ソース・データ・ベクトルであって、前記バイナリ・シンボル０００１で始まる４つのバランス・ソース・データ・ベクトルは、必要な正の開始ディスパリティを有し、バイナリ・シンボル０１が付加された前記ソース・データ・ベクトルと同一のバイナリ・シンボルを有する、４つのディスパリティ依存バランス・エンコード・ベクトルにマッピングされる、少なくとも４つのバランス・ソース・データ・ベクトルと、
を含む、請求項２に記載の方法。
【請求項７】
前記ＮＢソース・データ・ベクトルの前記第２の部分が、
＋４のディスパリティを有し、さらに、
末尾の４つのバイナリ・シンボルがバイナリ・シンボルの補足ペアとそれに続くバイナリ・シンボル１１とを含むこと、
末尾の４つのバイナリ・シンボルが１１１１であり、先行の４つのバイナリ・シンボルが（ｉ）バイナリ・シンボルの２つの補足ペア、および（ｉｉ）１１００、のうちの１つであること、
先行バイナリ・シンボルが１であり、末尾の４つのバイナリ・シンボルが１１０１であること、および、
先行の２つのバイナリ・シンボルが１であり、末尾の４つのバイナリ・シンボルが１１１０であること、
のうちの少なくとも１つを満たす、少なくとも１８のソース・データ・ベクトルを、さらに含み、
前記１８のソース・データ・ベクトルは、＋４のディスパリティと、必要な負の開始ディスパリティとを有する、１８のエンコード・ベクトルにマッピングされ、前記エンコード・ベクトルは、０１が付加された前記１８のソース・データ・ベクトルと同一のバイナリ・シンボルを有するものであって、
さらに前記第２の部分が、
１１１０１１１１の形の少なくとも１つのソース・データ・ベクトルであって、前記１つのエンコード・ベクトルは、＋４のディスパリティと必要な負の開始ディスパリティとを有する、１つのエンコード・ベクトルにマッピングされ、前記エンコード・ベクトルは１１１０１１１１００の形を有する、少なくとも１つのソース・データ・ベクトルと、
−２のディスパリティを有し、さらに、
末尾の４つのバイナリ・シンボルが０１とそれに続く補足バイナリ・シンボル・ペアとを含むこと、
末尾のバイナリ・シンボルが、１００１および１１０１０のうちの１つであること、
先行バイナリ・シンボルが０であり、末尾の４つのバイナリ・シンボルが００１１であること、
末尾の５つのバイナリ・シンボルが１０００１であること、および、
末尾の６つのバイナリ・シンボルが１００００１であること、
のうちの少なくとも１つを満たす、少なくとも２１のベクトルと、を含み、
前記２１のＮＢソース・データ・ベクトルは、−４のディスパリティと、必要な正の開始ディスパリティとを有する、２１のエンコード・ベクトルにマッピングされ、前記２１のエンコード・ベクトルは、０１が付加された前記１８のソース・データ・ベクトルと同一のバイナリ・シンボルを有するものであって、
さらに前記第２の部分が、
−４のディスパリティを有し、さらに、
末尾の４つのバイナリ・シンボルが、補足バイナリ・シンボル・ペアとそれに続くバイナリ・シンボル００とを含むこと、
第１のバイナリ・シンボルが０であり、最後の５つのバイナリ・シンボルが１００００であること、
先行バイナリ・シンボルが０であり、末尾の４つのバイナリ・シンボルが００１０であること、および、
先行の２つのバイナリ・シンボルが００であり、末尾の４つのバイナリ・シンボルが０００１であること、
という条件のうちの少なくとも１つを満たす、少なくとも１５のベクトルを含み、
前記１５のデータ・ベクトルは、−４のディスパリティおよび必要な正の開始ディスパリティを有する１５のエンコード・ベクトルにマッピングされ、前記１５のエンコード・ベクトルは、バイナリ・シンボル０１が付加された前記１５のソース・データ・ベクトルと同一のバイナリ・シンボルを有するものである、
請求項６に記載の方法。
【請求項８】
前記エンコーディング・スキームが、ＤＣバランス伝送コードを生成し、
さらに前記エンコーディング・スキームが、少なくとも７ＮＢベクトルを、１次表現と１次表現に対して補足的な代替表現とを有する、少なくとも７ＭＢのディスパリティに依存する対応するエンコード制御ベクトルに、制御ベクトルとして割り当て、前記エンコード制御ベクトルが、前記７ＮＢベクトルに加えて、２つの付加バイナリ・シンボルを含み、前記７ＮＢの対応するエンコード制御ベクトルの前記１次表現が、
（ｉ）ディスパリティが−４に等しいこと、（ｉｉ）必要な開始ディスパリティが正であること、（ｉｉｉ）第３、第５、第６、第７、および第９のバイナリ・シンボルが値０を有し、第１のバイナリ・シンボルが値１を有すること、（ｉｖ）第４および第８のバイナリ・シンボルが補足的であること、ならびに、（ｖ）第８および第１０のバイナリ・シンボルが補足的であること、
（ｉ）ディスパリティが−４に等しいこと、（ｉｉ）必要な開始ディスパリティが正であること、（ｉｉｉ）第４、第６、第８、第９、および第１０のバイナリ・シンボルが値０を有し、第５および第７のバイナリ・シンボルが値１を有すること、
（ｉ）ディスパリティが０に等しいこと、（ｉｉ）必要な開始ディスパリティが負であること、（ｉｉｉ）最初の２つのバイナリ・シンボルおよび最後の２つのバイナリ・シンボルが値０を有し、第３、第４、第５、第６、および第７のバイナリ・シンボルが値１を有すること、
（ｉ）ディスパリティが０に等しいこと、（ｉｉ）必要な開始ディスパリティが正であること、（ｉｉｉ）最初の２つのバイナリ・シンボルおよび最後の２つのバイナリ・シンボルが値０を有し、第４、第５、第６、および第７および第８のバイナリ・シンボルが値１を有すること、
のうちの少なくとも１つを満たす、請求項２に記載の方法。
【請求項９】
前記７ＮＢの制御ベクトルのそれぞれ、および前記７ＭＢの対応するエンコード制御ベクトルのそれぞれが、補足的な代替ベクトルを有する、請求項８に記載の方法。
【請求項１０】
前記エンコーディング・ステップがＤＣバランス伝送コードを生成し、
前記ディスパリティ依存エンコード・ベクトルの前記１次表現が、２つの２バイナリ・シンボル・パターンのうちの１つで終わる、
請求項２に記載の方法。
【請求項１１】
前記エンコーディング・ステップが、
増補ベクトルを得るためにＭ〜Ｎのバイナリ・シンボルを前記ＮＢソース・データ・ベクトルに付加するサブステップと、
前記増補ベクトルのうちの所与の１つが取得された、前記ＮＢソース・データ・ベクトルの前記第２の部分の、前記ＮＢソース・データ・ベクトルのうちの所与の１つに対応する、前記ＭＢエンコード・ベクトルのうちの１つの前記代替表現のうちの１つを取得するために、前記増補ベクトルのうちの所与の１つのＭバイナリ・シンボルを補足するサブステップであって、前記Ｍバイナリ・シンボルの前記補足サブステップが、前記ＭＢエンコード・ベクトルのうちの前記１つが前記ディスパリティ依存エンコード・ベクトルのうちの１つを含むこと、および、現在実行中のディスパリティが前記ＭＢエンコード・ベクトルのうちの前記１つに関する必要な開始ディスパリティに合致しないこと、の決定に、少なくとも部分的に応答する、Ｍバイナリ・シンボル補足サブステップと、
前記ＮＢソース・データ・ベクトルのうちの前記他方の所与の１つに対応する前記ＭＢエンコード・ベクトルのうちの他の所与の１つの対応する部分を取得するために、前記ＮＢソース・データ・ベクトルのうちの他の所与の１つのＮ未満のバイナリ・シンボルを補足するサブステップであって、前記Ｎ未満のバイナリ・シンボルの前記補足サブステップが、前記ＭＢエンコード・ベクトルのうちの前記他方の所与の１つが前記ディスパリティ非依存エンコード・ベクトルのうちの１つを含むことの決定に、少なくとも部分的に応答し、前記Ｎ未満のバイナリ・シンボルを補足するサブステップと、前記Ｎバイナリ・シンボルを補足するサブステップとが、ほぼ並行して実行される、Ｎ未満バイナリ・シンボル補足サブステップと、
を含む、請求項１に記載の方法。
【請求項１２】
Ｍバイナリ・シンボル（ＭＢ）エンコード・ベクトルをＮバイナリ・シンボル（ＮＢ）ソース・データ・ベクトルにデコードする方法であって、Ｍ＞Ｎ＞０であり、
エンコーディング・スキームに従って、複数のＮＢソース・データ・ベクトルからエンコードされた複数のＭＢエンコード・ベクトルを取得するステップであって、前記エンコーディング・スキームは、前記ＮＢソース・データ・ベクトルの少なくとも第１の部分を、ディスパリティ非依存エンコード・ベクトルを含むＭＢエンコード・ベクトルにマッピングし、前記エンコーディング・スキームは、前記ＮＢソース・データ・ベクトルの少なくとも第２の部分を、１次表現と、前記１次表現に対して補足的な代替表現とを有する、ディスパリティ依存エンコード・ベクトルを含むＭＢエンコード・ベクトルにマッピングし、前記ＭＢエンコード・ベクトルは、前記エンコーディング・スキームによってそれらに付加される、Ｍ〜Ｎのバイナリ・シンボルを有し、前記ＭＢエンコード・ベクトルのごく一部は、前記ＮＢソース・データ・ベクトルの対応する部分に比べて、ベクトル全体の補足以外のバイナリ・シンボル変更を有し、前記エンコーディング・スキームが、
（ｉ）少なくとも他の可能なＮＢからＭＢへのエンコーディング・スキームと比較して削減するステップと、
（ｉｉ）前記ＮＢソース・データ・ベクトルの前記対応する部分に比べて、ベクトル全体の補足以外の前記バイナリ・シンボル変更を有する、前記ＭＢエンコード・ベクトルの前記ごく一部内にある、前記ディスパリティ依存エンコード・ベクトルの量を、ほぼ除去するステップと、
のうちの少なくとも１つを実行するために事前に選択される、取得するステップと、
前記エンコーディング・スキームのデコーディング規則に従って、前記ＭＢエンコード・ベクトルを複数のＮＢソース・データ・ベクトルにデコードするステップと、
を含む、方法。
【請求項１３】
Ｎ＝８、Ｍ＝１０であり、前記エンコーディング・スキームが、前記ＮＢソース・データ・ベクトルの前記対応する部分に比べて、ベクトル全体の補足以外の前記バイナリ・シンボル変更を有する、前記ＭＢエンコード・ベクトルの前記ごく一部内にある、前記ディスパリティ依存エンコード・ベクトルの前記量をほぼ除去する、請求項１２に記載の方法。
【請求項１４】
前記エンコーディング・スキームが、ＤＣバランス伝送コードを生成し、
前記ディスパリティ依存エンコード・ベクトルの前記１次表現が、２つの２バイナリ・シンボル・パターンのうちの１つで終わる、
請求項１３に記載の方法。
【請求項１５】
前記デコーディング・ステップが、
前記ＭＢエンコード・ベクトルのうちの前記所与の１つに対応する、前記ＮＢソース・データ・ベクトルのうちの前記第２の部分の、前記ＮＢソース・データ・ベクトルのうちの所与の１つを回復させるために、前記ＭＢエンコード・ベクトルの所与の１つのうちの少なくともＮバイナリ・シンボルを補足するサブステップであって、前記少なくともＮバイナリ・シンボルを補足するサブステップが、少なくとも部分的に、前記ＭＢエンコード・ベクトルのうちの前記所与の１つが、前記ディスパリティ依存エンコード・ベクトルのうちの１つの前記代替バージョンのうちの１つを含むという決定に応答する、少なくともＮバイナリ・シンボルを補足するサブステップと、
前記ＭＢエンコード・ベクトルのうちの前記他方の所与の１つに対応する、前記ＮＢソース・データ・ベクトルのうちの前記第１の部分の、前記ＮＢソース・データ・ベクトルのうちの他の所与の１つの対応する部分を回復するために、前記ＭＢエンコード・ベクトルのうちの他の所与の１つのＮ未満のバイナリ・シンボルを補足するサブステップであって、前記Ｎ未満のバイナリ・シンボルを補足するサブステップが、少なくとも部分的に、前記ＭＢエンコード・ベクトルのうちの前記他方の所与の１つが前記ディスパリティ非依存エンコード・ベクトルのうちの１つを含むという決定に応答し、前記Ｎ未満のバイナリ・シンボルの補足サブステップと前記Ｎバイナリ・シンボルの補足サブステップとが、ほぼ並行して実行される、Ｎ未満のバイナリ・シンボルを補足するサブステップと、
を含む、請求項１２に記載の方法。
【請求項１６】
Ｎバイナリ・シンボル（ＮＢ）ソース・データ・ベクトルを、Ｍバイナリ・シンボル（ＭＢ）エンコード・ベクトルにエンコードするための装置であって、Ｍ＞Ｎ＞０であり、前記ＭＢエンコード・ベクトルのうちの少なくとも１つが、１次表現と前記１次表現に対して補足的な代替表現とを有する、ディスパリティ依存エンコード・ベクトルを含み、
増補ベクトルを得るためにＭ〜Ｎのバイナリ・シンボルを前記ＮＢソース・データ・ベクトルに付加するように構成されたバイナリ・シンボル付加モジュールと、
前記増補ベクトルのうちの前記所与の１つが取得された、前記ＮＢソース・データ・ベクトルのうちの所与の１つに対応する、前記ＭＢエンコード・ベクトルのうちの１つの前記代替表現のうちの１つを取得するために、前記増補ベクトルのうちの所与の１つのＭバイナリ・シンボルを補足するように構成された、全ベクトル補足モジュールであって、前記Ｍバイナリ・シンボルの前記補足が、前記ＭＢエンコード・ベクトルのうちの前記１つが前記ディスパリティ依存エンコード・ベクトルのうちの１つを含むこと、および、現在実行中のディスパリティが前記ＭＢエンコード・ベクトルのうちの前記１つに関する必要な開始ディスパリティに合致しないこと、の決定に、少なくとも部分的に応答する、全ベクトル補足モジュールと、
前記ＮＢソース・データ・ベクトルのうちの前記他方の所与の１つに対応する前記ＭＢエンコード・ベクトルのうちの他の所与の１つの対応する部分を取得するために、前記ＮＢソース・データ・ベクトルのうちの他の所与の１つのＮ未満のバイナリ・シンボルを補足するように構成されたバイナリ・シンボル補足モジュールであって、前記Ｎ未満のバイナリ・シンボルの前記補足が、前記ＭＢエンコード・ベクトルのうちの前記他方の所与の１つが前記ディスパリティ非依存エンコード・ベクトルを含むことの決定に、少なくとも部分的に応答し、前記バイナリ・シンボル補足モジュールと前記全ベクトル補足モジュールとがほぼ並行して動作するように構成され、前記バイナリ・シンボル補足モジュールおよび前記全ベクトル補足モジュールが、互いに結合され、さらにエンコーディング・スキームを実装するように構成され、前記ＮＢソース・データ・ベクトルの対応する部分に比べてバイナリ・シンボルの変更を有するＭＢエンコード・ベクトルの割り当てにおいて、バランスの取れたディスパリティ非依存ＭＢエンコード・ベクトルが優先される、バイナリ・シンボル補足モジュールと、
を備える、装置。
【請求項１７】
Ｎ＝８、Ｍ＝１０であって、前記エンコーディング・スキームが、前記ＮＢソース・データ・ベクトルのうちの対応する部分に比べてバイナリ・シンボル変更を有する前記ＭＢエンコード・ベクトルのほぼすべてを、バランスの取れたディスパリティ非依存ＭＢエンコード・ベクトルに割り当てる、請求項１６に記載の装置。
【請求項１８】
前記全ベクトル補足モジュールに結合されたディスパリティ監視モジュールをさらに含み、前記ディスパリティ分類子が、前記ディスパリティ依存エンコード・ベクトルのうちの適切なベクトルを前記ＮＢソース・データ・ベクトルのうちの所与のベクトルに割り当てる際に使用する、現在実行中のディスパリティを決定するように構成される、請求項１６に記載の装置。
【請求項１９】
前記装置が論理ゲートのアレイとして実装される、請求項１６に記載の装置。
【請求項２０】
Ｍバイナリ・シンボル（ＭＢ）エンコード・ベクトルをＮバイナリ・シンボル（ＮＢ）ソース・データ・ベクトルにデコードするための装置であって、Ｍ＞Ｎ＞０であり、前記ＭＢエンコード・ベクトルのうちの少なくとも１つが、１次表現と前記１次表現に対して補足的な代替表現とを有する、ディスパリティ依存エンコード・ベクトルを含み、
前記ＭＢエンコード・ベクトルのうちの前記所与の１つに対応する、前記ＮＢソース・データ・ベクトルのうちの所与の１つを回復させるために、前記ＭＢエンコード・ベクトルの所与の１つのうちの少なくともＮバイナリ・シンボルを補足するように構成された、全ベクトル補足モジュールであって、前記少なくともＮバイナリ・シンボルの補足が、少なくとも部分的に、前記ＭＢエンコード・ベクトルのうちの前記所与の１つが、前記ディスパリティ依存エンコード・ベクトルのうちの１つの前記代替バージョンのうちの１つを含むという決定に応答する、全ベクトル補足モジュールと、
前記ＭＢエンコード・ベクトルのうちの前記他方の所与の１つに対応する、前記ＮＢソース・データ・ベクトルのうちの他の所与の１つの対応する部分を回復するために、前記ＭＢエンコード・ベクトルのうちの他の所与の１つのＮ未満のバイナリ・シンボルを補足するように構成された、前記全ベクトル補足モジュールに結合されたバイナリ・シンボル補足モジュールであって、前記Ｎ未満のバイナリ・シンボルの補足が、少なくとも部分的に、前記ＭＢエンコード・ベクトルのうちの前記他方の所与の１つがディスパリティ非依存エンコード・ベクトルを含むという決定に応答し、前記バイナリ・シンボル補足モジュールと前記全ベクトル補足モジュールとがほぼ並行して動作するように構成され、前記バイナリ・シンボル補足モジュールおよび前記全ベクトル補足モジュールが、エンコーディング・スキームを実装するように構成され、前記ＮＢソース・データ・ベクトルの対応する部分に比べてバイナリ・シンボルの変更を有するＭＢエンコード・ベクトルの割り当てにおいて、バランスの取れたディスパリティ非依存ＭＢエンコード・ベクトルが優先される、バイナリ・シンボル補足モジュールと、
を備える、装置。
【請求項２１】
前記全ベクトル補足モジュールおよび前記バイナリ・シンボル補足モジュールに結合された、妥当性検査モジュールをさらに備え、前記妥当性検査モジュールが、推定エンコード・ベクトルを取得するように、および前記推定エンコード・ベクトルのうちの所与のベクトルが前記ＭＢエンコード・ベクトルのうちの有効なベクトルであるかどうかを判別するように、構成される、請求項２０に記載の装置。
【請求項２２】
Ｎ＝８、Ｍ＝１０であって、前記エンコーディング・スキームが、前記ＮＢソース・データ・ベクトルのうちの対応する部分に比べてバイナリ・シンボル変更を有する前記ＭＢエンコード・ベクトルのほぼすべてを、バランスの取れたディスパリティ非依存ＭＢエンコード・ベクトルに割り当てる、請求項２０に記載の装置。
【請求項２３】
前記装置が論理ゲートのアレイとして実装される、請求項２０に記載の装置。
【請求項２４】
Ｎバイナリ・シンボル（ＮＢ）ソース・データ・ベクトルを、Ｍバイナリ・シンボル（ＭＢ）エンコード・ベクトルにエンコードする方法であって、Ｍ＞Ｎ＞０であり、前記ＭＢエンコード・ベクトルのうちの少なくとも１つが、１次表現と前記１次表現に対して補足的な代替表現とを有する、ディスパリティ依存エンコード・ベクトルを含み、
増補ベクトルを得るためにＭ〜Ｎのバイナリ・シンボルを前記ＮＢソース・データ・ベクトルに付加するステップと、
前記増補ベクトルのうちの所与の１つが取得された、前記ＮＢソース・データ・ベクトルのうちの所与の１つに対応する、前記ＭＢエンコード・ベクトルのうちの１つの前記代替表現のうちの１つを取得するために、前記増補ベクトルのうちの所与の１つのＭバイナリ・シンボルを補足するステップであって、前記Ｍバイナリ・シンボルの前記補足ステップが、前記ＭＢエンコード・ベクトルのうちの前記１つが前記ディスパリティ依存エンコード・ベクトルのうちの１つを含むこと、および、現在実行中のディスパリティが前記ＭＢエンコード・ベクトルのうちの前記１つに関する必要な開始ディスパリティに合致しないこと、の決定に、少なくとも部分的に応答する、Ｍバイナリ・シンボル補足ステップと、
前記ＮＢソース・データ・ベクトルのうちの前記他方の所与の１つに対応する前記ＭＢエンコード・ベクトルのうちの他の所与の１つの対応する部分を取得するために、前記ＮＢソース・データ・ベクトルのうちの他の所与の１つのＮ未満のバイナリ・シンボルを補足するステップであって、前記Ｎ未満のバイナリ・シンボルの前記補足ステップが、前記ＭＢエンコード・ベクトルのうちの前記他方の所与の１つがディスパリティ非依存エンコード・ベクトルを含むことの決定に、少なくとも部分的に応答し、前記Ｎ未満のバイナリ・シンボルを補足するステップと、前記Ｎバイナリ・シンボルを補足するステップとが、ほぼ並行して実行され、エンコーディング・スキームを実装し、前記ＮＢソース・データ・ベクトルの対応する部分に比べてバイナリ・シンボルの変更を有するＭＢエンコード・ベクトルの割り当てにおいて、バランスの取れたディスパリティ非依存ＭＢエンコード・ベクトルが優先される、Ｎ未満バイナリ・シンボル補足ステップと、
を含む、方法。
【請求項２５】
Ｎ＝８、Ｍ＝１０であって、前記エンコーディング・スキームが、前記ＮＢソース・データ・ベクトルのうちの対応する部分に比べてバイナリ・シンボル変更を有する前記ＭＢエンコード・ベクトルのほぼすべてを、バランスの取れたディスパリティ非依存ＭＢエンコード・ベクトルに割り当てる、請求項２４に記載の方法。
【請求項２６】
Ｍバイナリ・シンボル（ＭＢ）エンコード・ベクトルをＮバイナリ・シンボル（ＮＢ）ソース・データ・ベクトルにデコードする方法であって、Ｍ＞Ｎ＞０であり、前記ＭＢエンコード・ベクトルのうちの少なくとも１つが、１次表現と前記１次表現に対して補足的な代替表現とを有する、ディスパリティ依存エンコード・ベクトルを含み、
前記ＭＢエンコード・ベクトルのうちの前記所与の１つに対応する、前記ＮＢソース・データ・ベクトルのうちの所与の１つを回復させるために、前記ＭＢエンコード・ベクトルの所与の１つのうちの少なくともＮバイナリ・シンボルを補足するステップであって、前記少なくともＮバイナリ・シンボルを補足するステップが、少なくとも部分的に、前記ＭＢエンコード・ベクトルのうちの前記所与の１つが、前記ディスパリティ依存エンコード・ベクトルのうちの１つの前記代替バージョンのうちの１つを含むという決定に応答する、少なくともＮバイナリ・シンボルを補足するステップと、
前記ＭＢエンコード・ベクトルのうちの前記他方の所与の１つに対応する、前記ＮＢソース・データ・ベクトルのうちの他の所与の１つの対応する部分を回復するために、前記ＭＢエンコード・ベクトルのうちの他の所与の１つのＮ未満のバイナリ・シンボルを補足するステップであって、前記Ｎ未満のバイナリ・シンボルを補足するステップが、少なくとも部分的に、前記ＭＢエンコード・ベクトルのうちの前記他方の所与の１つが前記ディスパリティ非依存エンコード・ベクトルのうちの１つを含むという決定に応答し、前記Ｎ未満のバイナリ・シンボルの補足サブステップと前記Ｎバイナリ・シンボルの補足ステップとが、ほぼ並行して実行され、エンコーディング・スキームを実装し、前記ＮＢソース・データ・ベクトルの対応する部分に比べてバイナリ・シンボルの変更を有するＭＢエンコード・ベクトルの割り当てにおいて、バランスの取れたディスパリティ非依存ＭＢエンコード・ベクトルが優先される、Ｎ未満バイナリ・シンボル補足ステップと、
を含む、方法。
【請求項２７】
Ｎ＝８、Ｍ＝１０であって、前記エンコーディング・スキームが、前記ＮＢソース・データ・ベクトルのうちの対応する部分に比べてバイナリ・シンボル変更を有する前記ＭＢエンコード・ベクトルのほぼすべてを、バランスの取れたディスパリティ非依存ＭＢエンコード・ベクトルに割り当てる、請求項２６に記載の方法。
【請求項２８】
Ｎバイナリ・シンボル（ＮＢ）ソース・データ・ベクトルを、Ｍバイナリ・シンボル（ＭＢ）エンコード・ベクトルにエンコードするための、コンピュータ使用可能プログラム・コードを含む、コンピュータ使用可能メディアを含むコンピュータ・プログラムであって、Ｍ＞Ｎ＞０であり、
複数のＮＢソース・データ・ベクトルを取得するためのコンピュータ使用可能プログラム・コードと、
エンコーディング・スキームに従って、前記ＮＢソース・データ・ベクトルを複数のＭＢエンコード・ベクトルにエンコードするためのコンピュータ使用可能プログラム・コードであって、前記エンコーディング・スキームは、前記ＮＢソース・データ・ベクトルの少なくとも第１の部分を、ディスパリティ非依存エンコード・ベクトルを含むＭＢエンコード・ベクトルにマッピングし、前記エンコーディング・スキームは、前記ＮＢソース・データ・ベクトルの少なくとも第２の部分を、１次表現と、前記１次表現に対して補足的な代替表現とを有する、ディスパリティ依存エンコード・ベクトルを含むＭＢエンコード・ベクトルにマッピングし、前記ＭＢエンコード・ベクトルは、前記エンコーディング・スキームによってそれらに付加される、Ｍ〜Ｎのバイナリ・シンボルを有し、前記ＭＢエンコード・ベクトルのごく一部は、前記ＮＢソース・データ・ベクトルの対応する部分に比べて、ベクトル全体の補足以外のバイナリ・シンボル変更を有する、エンコードするためのコンピュータ使用可能プログラム・コードと、を含み、
前記エンコーディング・スキームが、
（ｉ）少なくとも他の可能なＮＢからＭＢへのエンコーディング・スキームと比較して削減するステップと、
（ｉｉ）前記ＮＢソース・データ・ベクトルの前記対応する部分に比べて、ベクトル全体の補足以外の前記バイナリ・シンボル変更を有する、前記ＭＢエンコード・ベクトルの前記ごく一部内にある、前記ディスパリティ依存エンコード・ベクトルの量を、ほぼ除去するステップと、
のうちの少なくとも１つを実行するために事前に選択される、コンピュータ・プログラム。
【請求項２９】
Ｍバイナリ・シンボル（ＭＢ）エンコード・ベクトルをＮバイナリ・シンボル（ＮＢ）ソース・データ・ベクトルにデコードするためのコンピュータ使用可能プログラム・コードを含む、コンピュータ使用可能メディアを含むコンピュータ・プログラムであって、Ｍ＞Ｎ＞０であり、
エンコーディング・スキームに従って、複数のＮＢソース・データ・ベクトルからエンコードされた複数のＭＢエンコード・ベクトルを取得するための、コンピュータ使用可能プログラム・コードであって、前記エンコーディング・スキームは、前記ＮＢソース・データ・ベクトルの少なくとも第１の部分を、ディスパリティ非依存エンコード・ベクトルを含むＭＢエンコード・ベクトルにマッピングし、前記エンコーディング・スキームは、前記ＮＢソース・データ・ベクトルの少なくとも第２の部分を、１次表現と、前記１次表現に対して補足的な代替表現とを有する、ディスパリティ依存エンコード・ベクトルを含むＭＢエンコード・ベクトルにマッピングし、前記ＭＢエンコード・ベクトルは、前記エンコーディング・スキームによってそれらに付加される、Ｍ〜Ｎのバイナリ・シンボルを有し、前記ＭＢエンコード・ベクトルのごく一部は、前記ＮＢソース・データ・ベクトルの対応する部分に比べて、ベクトル全体の補足以外のバイナリ・シンボル変更を有し、前記エンコーディング・スキームが、
（ｉ）少なくとも他の可能なＮＢからＭＢへのエンコーディング・スキームと比較して削減するステップと、
（ｉｉ）前記ＮＢソース・データ・ベクトルの前記対応する部分に比べて、ベクトル全体の補足以外の前記バイナリ・シンボル変更を有する、前記ＭＢエンコード・ベクトルの前記ごく一部内にある、前記ディスパリティ依存エンコード・ベクトルの量を、ほぼ除去するステップと、
のうちの少なくとも１つを実行するために事前に選択される、コンピュータ使用可能プログラム・コードと、
前記エンコーディング・スキームのデコーディング規則に従って、前記ＭＢエンコード・ベクトルを複数のＮＢソース・データ・ベクトルにデコードするためのコンピュータ使用可能プログラム・コードと、
を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に通信システムに関し、とりわけ、ＮＢ／ＭＢコーディングの装置および方法に関する。
【背景技術】
【０００２】
コーディングは、通信システムにおいて様々な目的で採用される。これらの中には、伝送信頼性、ＤＣバランス、エラーの検出、およびエラーの訂正などの改良がある。Ｗｉｄｍｅｒへの米国特許第５６９９０６２号では、ローカル・パリティを有する伝送コードが開示されている。この第０６２号特許は、特定コード化バイトのあるビット位置でエラーが発生した場合、無効なコード化バイトを生成するように、８ビット・バイトからコード化１０ビット・バイト・セットへ変換するための方法および装置について説明する。さらに、コード化バイト・セットは、単一バイトに限定されるコンマを含む。すなわち、コンマのビット・シーケンスは単数である。コンマに対応するビットのシーケンスは、バイト境界を基準にした他の位置合わせを用いるいかなるバイト・シーケンスでも見つけることはできない。エラーであるとわかっているバイト内でエラーのビット位置を識別するために、垂直パリティが使用される。
【特許文献１】米国特許第５６９９０６２号
【発明の開示】
【発明が解決しようとする課題】
【０００３】
第０６２号特許では、エンコード・ベクトルに対する特有のソース・ベクトル割り当ては行っていない。したがって、ハードウェアにおいて効率的に実装可能な、コーディング実装を提供することが望ましい。
【課題を解決するための手段】
【０００４】
本発明の諸原理は、コーディング・スキームを実装するための技法を提供する。本発明の一態様によれば、例示的な方法では、Ｎバイナリ・シンボル（ＮＢ）ソース・データ・ベクトルを、Ｍバイナリ・シンボル（ＭＢ）エンコード・ベクトルにエンコードし、ここでＭはＮよりも大きく、Ｎは０より大きい。この例示的な方法は、複数のＮＢソース・データ・ベクトルを取得するステップと、エンコーディング・スキームに従って、ＮＢソース・データ・ベクトルを複数のＭＢエンコード・ベクトルにエンコードするステップとを含むことができる。エンコーディング・スキームは、ＮＢソース・データ・ベクトルの少なくとも第１の部分を、ディスパリティに依存しないＭＢエンコード・ベクトルにマッピングすることができる。さらに、エンコーディング・スキームは、ＮＢソース・データ・ベクトルの第２の部分を、ディスパリティに依存するＭＢエンコード・ベクトルにマッピングすることができる。ディスパリティ依存エンコード・ベクトルは、１次表現と、１次表現に対して補足的な代替表現とを有することができる。ＭＢエンコード・ベクトルは、エンコーディング・スキームによってそれらに付加される、Ｍ〜Ｎのバイナリ・シンボルを有することができる。ごく一部のＭＢエンコード・ベクトルは、ＮＢソース・データ・ベクトルの対応する部分に比べて、ベクトル全体の補足以外のバイナリ・シンボル変更を有することができる。エンコーディング・スキームは、ベクトル全体の補足以外のバイナリ・シンボル変更を有する、ディスパリティ依存エンコード・ベクトルの量を削減するか、あるいはほぼ除去するために、またはその両方のために、事前に選択することができる。個々のバイナリ・シンボル変更を有するディスパリティ依存エンコード・ベクトル量の削減は、少なくとも他の可能なＮＢからＭＢへのエンコーディング・スキームと比較したものとすることができる。
【０００５】
Ｎ＝８、Ｍ＝１０の、本発明の例示的実施形態のより特定の態様では、例示的エンコーディング・スキームは、ベクトル全体の補足以外のバイナリ・シンボル変更を有する、ディスパリティ依存エンコード・ベクトルの量をほぼ除去する。この例示的エンコーディング・スキームは、ＤＣバランス伝送コードを生成することが可能であり、ディスパリティ非依存エンコード・ベクトルにマッピングするＮＢソース・データ・ベクトルは、２よりも大きくない先行ラン・レングスを有し、前述のＭ〜Ｎのバイナリ・シンボルに対応する付加バイナリ・シンボルの補足的ペアと共に付加される、少なくとも６０のバランス・ソース・データ・ベクトルを含むことができる。ソース・データ・ベクトルと比べてバイナリ・シンボル変更を有するＭＢエンコード・ベクトルは、対応するディスパリティ非依存エンコード・ベクトルと同一の８つのバイナリ・シンボルと、付加バイナリ・シンボルのペアの補足である２つのバイナリ・シンボルとを有する、ディスパリティ非依存エンコード・ベクトルのそれとすることができる。例示的エンコーディング・スキームは、補足的ペアにおいて、バイナリ・シンボル変更を有するエンコード・ベクトルに対応する大半のＮＢソース・データ・ベクトルを、付加バイナリ・シンボルを除くすべてのバイナリ・シンボル位置で補足的なディスパリティ非依存ＭＢエンコード・ベクトルの対応するペアに、割り当てることができる。さらに、例示的エンコーディング・スキームは、４の先行ランと、それに続く２ペアの補足的バイナリ・シンボルとを有する、ディスパリティ非依存エンコード・ベクトルに対応するソース・データ・ベクトルのうちの少なくとも８つのベクトルを、８ベクトルのうちの対応するベクトルに関して補足された２つの先行バイナリ・シンボルを有するＭＢエンコード・ベクトルのうちのあるベクトルに割り当てることができる。例示的エンコーディング・スキームは、補足ペアにおいて、バイナリ・シンボル変更を伴うエンコード・ベクトルに対応する大半のソース・データ・ベクトルを、付加バイナリ・シンボルを除くすべてのバイナリ・シンボル位置で補足的なディスパリティ非依存エンコード・ベクトルの対応するペアに、割り当てることもできる。
【０００６】
例示的エンコーディング・スキームは、４の先行ランと、それに続く、４の先行ラン内のバイナリ・シンボルと合致する４つの後続バイナリ・シンボル内の単一のバイナリ・シンボルとを有する、ディスパリティ非依存エンコード・ベクトルに対応するソース・データ・ベクトルのうちの少なくとも８つのベクトルを、８ベクトルのうちの対応するベクトルに関して補足された第３のバイナリ・シンボルを有するエンコード・ベクトルのうちの選択されたベクトルに割り当てることもできる。さらに例示的エンコーディング・スキームは、補足的ペアにおいて、バイナリ・シンボル変更を有するエンコード・ベクトルのごく一部に対応する大半のＮＢソース・データ・ベクトルを、付加バイナリ・シンボルを除くすべてのバイナリ・シンボル位置で補足的なディスパリティ非依存エンコード・ベクトルの対応するペアに、割り当てることもできる。さらに例示的エンコーディング・スキームは、４の先行ランと、それに続く、４の先行ラン内のバイナリ・シンボルと合致しない４つの後続バイナリ・シンボル内の単一のバイナリ・シンボルとを有する、ディスパリティ非依存エンコード・ベクトルに対応するソース・データ・ベクトルのうちの少なくとも８つのベクトルを、８ベクトルのうちの対応するベクトルに関して補足された第１、第３、および第４のバイナリ・シンボルを有するエンコード・ベクトルのうちの選択されたベクトルに割り当てることもできる。
【０００７】
本発明の他の特定の態様において、その例示的諸実施形態によれば、ディスパリティ非依存エンコード・ベクトルに対応するソース・データ・ベクトルは、＋２または−２のいずれかの全体ディスパリティを有し、任意の所与のバイナリ・シンボル位置の後に、２より大きくない実行ディスパリティを有する、少なくとも５４のソース・データ・ベクトルを含むことができる。これらのベクトルには、＋２の全体ディスパリティを有する場合にバイナリ・シンボル００を、−２の全体ディスパリティを有する場合にバイナリ・シンボル１１を、付加することができる。ディスパリティ依存エンコード・ベクトルに対応するソース・データ・ベクトルは、＋２のディスパリティを有し、さらに、必要な負の開始ディスパリティを有し、２つのゼロが付加されたソース・データ・ベクトルと同一である、１９のディスパリティ依存バランス・エンコード・ベクトルにマッピングされた、少なくとも１９のソース・データ・ベクトルを含むことができる。この場合の１９のソース・データ・ベクトルは、（ａ）バイナリ・シンボル１１００１で終わること、（ｂ）バイナリ・シンボル１１１０で始まり、バイナリ・シンボル１で終わること、および（ｃ）バイナリ・シンボル１０で終わり、多くとも３つの先行１または多くとも１つの先行０を有すること、の条件のうちの、少なくとも１つを満たすことができる。
【０００８】
ディスパリティ依存エンコード・ベクトルに対応するソース・データ・ベクトルは、バイナリ・シンボル１１１０で始まり、必要な負の開始ディスパリティを有する４つのディスパリティ依存バランス・エンコード・ベクトルにマッピングされた、少なくとも４つのバランス・ソース・データ・ベクトルを含むこともできる。エンコード・ベクトルは、バイナリ・シンボル０１が付加されたバランス・ソース・データ・ベクトルと同一のバイナリ・シンボルを有することができる。さらにディスパリティ依存エンコード・ベクトルに対応するソース・データ・ベクトルは、バイナリ・シンボル０００１で始まり、必要な正の開始ディスパリティを有する４つのディスパリティ依存バランス・エンコード・ベクトルにマッピングされた、少なくとも４つのバランス・ソース・データ・ベクトルを含むことができる。これらのエンコード・ベクトルは、バイナリ・シンボル０１が付加されたソース・データ・ベクトルと同一のバイナリ・シンボルを有することができる。さらに、ディスパリティ依存エンコード・ベクトルに対応するソース・データ・ベクトルは、＋４のディスパリティを有し、さらに、（ａ）末尾の４つのバイナリ・シンボルがバイナリ・シンボルの補足ペアとそれに続く１１とを含むこと、（ｂ）末尾の４つのバイナリ・シンボルが１１１１であり、先行の４つのバイナリ・シンボルがバイナリ・シンボルの２つの補足ペアまたは１１００のいずれかであること、（ｃ）先行バイナリ・シンボルが１であり、末尾の４つのバイナリ・シンボルが１１０１であること、および、（ｄ）先行の２つのバイナリ・シンボルが１であり、末尾の４つのバイナリ・シンボルが１１１０であること、という条件のうちの少なくとも１つを満たす、少なくとも１８のソース・データ・ベクトルを含むこともできる。これら１８のソース・データ・ベクトルは、＋４のディスパリティと、必要な負の開始ディスパリティとを有する、１８のエンコード・ベクトルにマッピングすることができる。エンコード・ベクトルは、０１が付加された１８のソース・データ・ベクトルと同一のバイナリ・シンボルを有することができる。
【０００９】
さらに、ディスパリティ依存エンコード・ベクトルに対応するソース・データ・ベクトルは、＋４のディスパリティと必要な負の開始ディスパリティとを有する、１１１０１１１１００の形の、１つのエンコード・ベクトルにマッピングされた、１１１０１１１１の形の少なくとも１つのソース・データ・ベクトルを含むことができる。さらに、ディスパリティ依存エンコード・ベクトルにマッピングされたソース・データ・ベクトルは、−２のディスパリティを有し、さらに、（ａ）末尾の４つのバイナリ・シンボルが０１とそれに続く補足バイナリ・シンボル・ペアとを含むこと、（ｂ）末尾のバイナリ・シンボルが、１００１または１１０１０のいずれかであること、（ｃ）先行バイナリ・シンボルが０であり、末尾の４つのバイナリ・シンボルが００１１であること、（ｄ）末尾の５つのバイナリ・シンボルが１０００１であること、および、（ｅ）末尾の６つのバイナリ・シンボルが１００００１であること、という条件のうちの少なくとも１つを満たす、少なくとも２１のベクトルを含むことができる。２１のソース・データ・ベクトルを、−４のディスパリティおよび必要な正の開始ディスパリティを有する２１のエンコード・ベクトルにマッピングすることが可能であり、エンコード・ベクトルは、バイナリ・シンボル００が付加されたソース・データ・ベクトルと同一のバイナリ・シンボルを有することが可能である。
【００１０】
さらに、ディスパリティ依存エンコード・ベクトルに対応するソース・データ・ベクトルは、−４のディスパリティを有し、さらに、（ａ）末尾の４つのバイナリ・シンボルが、補足バイナリ・シンボル・ペアとそれに続くバイナリ・シンボル００とを含むこと、（ｂ）第１のバイナリ・シンボルが０であり、最後の５つのバイナリ・シンボルが１００００であること、（ｃ）先行バイナリ・シンボルが０であり、末尾の４つのバイナリ・シンボルが００１０であること、および、先行の２つのバイナリ・シンボルが００であり、末尾の４つのバイナリ・シンボルが０００１であること、という条件のうちの少なくとも１つを満たす、少なくとも１５のベクトルを含むことができる。１５のデータ・ベクトルを、−４のディスパリティおよび必要な正の開始ディスパリティを有する１５のエンコード・ベクトルにマッピングすることが可能であり、エンコード・ベクトルのバイナリ・シンボルは、バイナリ・シンボル０１が付加されたソース・データ・ベクトルと同一のバイナリ・シンボルとすることが可能である。
【００１１】
本発明のある種の実施形態の他の特定の態様では、エンコーディング・スキームは、少なくとも７ＮＢベクトルを、１次表現と１次表現に対して補足的な代替表現とを有する、少なくとも７ＭＢのディスパリティに依存する対応するエンコード制御ベクトルに、制御ベクトルとして割り当てることができる。エンコード制御ベクトルは、７ＮＢベクトルに加えて、２つの付加バイナリ・シンボルを含むことができる。７ＮＢの対応するエンコード制御ベクトルの１次表現は、以下の条件のうちの少なくとも１つを満たすことができる。
（ｉ）ディスパリティが−４に等しいこと、（ｉｉ）必要な開始ディスパリティが正であること、（ｉｉｉ）第３、第５、第６、第７、および第９のバイナリ・シンボルが値０を有し、第１のバイナリ・シンボルが値１を有すること、（ｉｖ）第４および第８のバイナリ・シンボルが補足的であること、ならびに、（ｖ）第８および第１０のバイナリ・シンボルが補足的であること。
（ｉ）ディスパリティが−４に等しいこと、（ｉｉ）必要な開始ディスパリティが正であること、（ｉｉｉ）第４、第６、第８、第９、および第１０のバイナリ・シンボルが値０を有し、第５および第７のバイナリ・シンボルが値１を有すること。
（ｉ）ディスパリティが０に等しいこと、（ｉｉ）必要な開始ディスパリティが負であること、（ｉｉｉ）最初の２つのバイナリ・シンボルおよび最後の２つのバイナリ・シンボルが値０を有し、第３、第４、第５、第６、および第７のバイナリ・シンボルが値１を有すること。
（ｉ）ディスパリティが０に等しいこと、（ｉｉ）必要な開始ディスパリティが正であること、（ｉｉｉ）最初の２つのバイナリ・シンボルおよび最後の２つのバイナリ・シンボルが値０を有し、第４、第５、第６、および第７および第８のバイナリ・シンボルが値１を有すること。
【００１２】
７ＮＢの制御ベクトルは、補足的な代替ベクトルを有することもできる。本発明のある例示的な実施形態では、ディスパリティ依存エンコード・ベクトルの１次表現は、２つの２バイナリ・シンボル・パターンのうちのいずれかで終わることができる。これは、デコーディング・プロセスを簡略するのに役立てることができる。
【００１３】
本発明の例示的実施形態の他の態様では、エンコーディング・ステップは、増補ベクトルを得るためにＭ〜Ｎのバイナリ・シンボルをＮＢソース・データ・ベクトルに付加するステップと、ＭＢエンコード・ベクトルのうちの１つの代替表現のうちの１つを得るために、増補ベクトルのうちの所与の１つのＭバイナリ・シンボルを補足するステップと、ＮＢソース・データ・ベクトルのうちの他の所与の１つのＮ未満のバイナリ・シンボルを補足するステップと、を含むことができる。Ｍバイナリ・シンボルは、所与のエンコード・ベクトルがディスパリティに依存したエンコード・ベクトルのうちの１つであること、および、現在実行中のディスパリティがＭＢエンコード・ベクトルのうちの特定の１つに関する必要な開始ディスパリティに合致しないことの決定に応答して、補足することができる。Ｎ未満のバイナリ・シンボルの補足は、少なくとも部分的に、こうした場合の所与のエンコード・ベクトルが、ディスパリティ非依存エンコード・ベクトルのうちの１つであることの決定に応答して実行することができる。２つの補足ステップは、ほぼ並行して実行することができる。
【００１４】
本発明の他の態様に従って、エンコード・ベクトルをデコード済みソース・データ・ベクトルにデコードする例示的方法は、説明した種類のスキームに従ってエンコードされた複数のＭＢエンコード・ベクトルを取得するステップと、エンコーディング・スキームのデコーディング規則に従って、エンコード・ベクトルを複数のソース・データ・ベクトルにデコードするステップと、を含む。
【００１５】
たとえば、説明した種類のコーディング・スキームに従って、および本発明の他の態様に従って、ソース・データ・ベクトルをエンコード・ベクトルにエンコードするための装置の例示的実施形態は、バイナリ・シンボル付加モジュールと、全ベクトル補足モジュールと、バイナリ・シンボル補足モジュールとを含むことができる。
【００１６】
説明した種類のコーディング・スキームに従って、および本発明の他の態様に従って、ＭＢエンコード・ベクトルをＮＢソース・データ・ベクトルにデコードするための装置の例示的実施形態は、全ベクトル補足モジュールおよびバイナリ・シンボル補足モジュールを含むことができる。
【００１７】
本発明のこれらおよび他の目的、特徴、および利点は、添付の図面と共にその例示的諸実施形態の以下の詳細な説明を読めば明らかとなろう。
【発明を実施するための最良の形態】
【００１８】
次に図１に注目すると、ブロック１０２のように、複数のＮＢソース・データ・ベクトルを取得するステップと、ブロック１０４のように、エンコーディング・スキームに従ってＮＢソース・データ・ベクトルを複数のＭＢエンコード・ベクトルにエンコードするステップとを含む、本発明の一態様に従って、Ｎバイナリ・シンボル（ＮＢ）ソース・データ・ベクトルをＭバイナリ・シンボル（ＭＢ）エンコード・ベクトルにエンコードする例示的方法の方法ステップを示す流れ図１００が示されており、ここではＭ＞Ｎ＞０である。エンコーディング・スキームは、通常、エンコーディング規則およびデコーディング規則の両方を含む。エンコーディング・スキームでは、ＮＢソース・データ・ベクトルの少なくとも第１の部分が、ディスパリティ非依存ＭＢエンコード・ベクトルにマッピングされる。さらに、ＮＢソース・データ・ベクトルの少なくとも第２の部分が、ディスパリティに依存し、１次表現と１次表現に対して補足的な代替表現とを有する、ＭＢエンコード・ベクトルにマッピングされる。ＭＢエンコード・ベクトルは、通常、エンコーディング・スキームによって付加されるＭ〜Ｎのバイナリ・シンボルを有する。ごく一部のＭＢエンコード・ベクトルは、ＮＢソース・データ・ベクトルの対応する部分に比べて、ベクトル全体の補足以外のバイナリ・シンボル変更を有する（一般的な例を挙げると、ベクトル全体の補足は、ディスパリティ依存エンコード・ベクトルの代替表現を取得するために実行することができるが、ベクトル全体の補足以外のバイナリ・シンボルの変更は、ディスパリティ非依存エンコード・ベクトルと共に実行することができる）。
【００１９】
エンコーディング・スキームは、ＮＢソース・データ・ベクトルの対応する部分に比べてベクトル全体の補足以外のバイナリ・シンボル変更を有する、ごく一部のＭＢエンコード・ベクトル内にある、ディスパリティ依存エンコード・ベクトルの量を、削減するかまたはほぼ除去するように、事前に選択することができる。本明細書で使用される場合、記載されたごく一部分内にあるディスパリティ依存エンコード・ベクトルの量を「削減すること」とは、少なくとも何らかの他の可能なＮＢからＭＢのエンコーディング・スキームに比べた削減を企図する。さらに本明細書で使用される場合、記載されたごく一部分内にあるディスパリティ依存エンコード・ベクトルの量を「ほぼ除去すること」は、記載されたごく一部分内にあるこうしたディスパリティ依存エンコード・ベクトルの、完全な除去と十分な数の除去との両方を含み、その結果として、エンコーディング・プロセスおよびデコーディング・プロセスの少なくとも何らかの態様において、並行処理により有利な利得が得られるような方法で、エンコーディング・スキームに従ったエンコーディングおよびデコーディングがハードウェア内で実装できる。
【００２０】
本発明に従った例示的な一エンコーディング・スキームでは、以下で詳細に説明するように、Ｎ＝８、Ｍ＝１０であり、エンコーディング・スキームは、ＮＢソース・データ・ベクトルの対応する部分に比べて、ベクトル全体の補足以外のバイナリ・シンボル変更を有する、ごく一部のＭＢエンコード・ベクトル内にあるディスパリティ依存エンコード・ベクトルの量を、ほぼ除去する。
【００２１】
次に図２に注目すると、本発明の他の例示的実施形態の諸態様に従って、Ｎバイナリ・シンボル（ＮＢ）ソース・データ・ベクトルをＭバイナリ・シンボル（ＭＢ）エンコード・ベクトルにエンコードするための例示的方法ステップを示す流れ図２００が示されており、ここではＭ＞Ｎ＞０である。ＭＢエンコード・ベクトルの少なくとも一部は、１次表現と１次表現に対して補足的な代替表現とを有する、ディスパリティ依存エンコード・ベクトルを含むことができる。この方法は、ブロック２０２のように、増補ベクトルを得るために、Ｍ〜Ｎのバイナリ・シンボルをＮＢソース・データ・ベクトルに付加するステップと、ブロック２０４のように、増補ベクトルのうちの所与の１つのＭバイナリ・シンボルを補足するステップと、ブロック２０６のように、他の所与のＭＢエンコード・ベクトルのうちの１つの対応する部分を得るために、他の所与のソース・データ・ベクトルのうちのＮ未満のバイナリ・シンボルを補足するステップと、を含むことができる。ブロック２０４および２０６は、好ましくはほぼ並行して実行される。本明細書で使用される場合、「ほぼ並行して」とは、全体が並行であるか、または十分な並行性を持って、エンコーディングあるいはデコーディングまたはその両方に関連付けられた処理においてその望ましい改善が達成できることを意味する。
【００２２】
増補ベクトルのうちの所与の１つのＭバイナリ・シンボルを補足するステップでは、こうした補足は、増補ベクトルのうちの所与の１つが取得されたＮＢソース・データ・ベクトルのうちの所与の１つに対応するＭＢエンコード・ベクトルのうちの１つの代替表現の１つを取得するために実行される。Ｍバイナリ・シンボルの補足は、少なくとも部分的に、ＭＢエンコード・ベクトルのうちの１つがディスパリティに依存したエンコード・ベクトルのうちの１つであること、および、現在実行中のディスパリティがＭＢエンコード・ベクトルのうちの特定の１つに関する必要な開始ディスパリティに合致しないことの、決定に応答して実行される。
【００２３】
ＮＢソース・データ・ベクトルのうちの他方の所与の１つのＮ未満のバイナリ・シンボルを補足するステップでは、こうした補足は、ＮＢソース・データ・ベクトルのうちの他方の所与の１つに対応する、ＭＢエンコード・ベクトルうちのの他の所与の１つの対応する部分を取得するために実施される。Ｎ未満のバイナリ・シンボルの補足は、少なくとも部分的に、ＭＢエンコード・ベクトルのうちの他方の所与の１つがディスパリティ非依存エンコード・ベクトルであることの決定に応答して実行される。図２の方法は、エンコーディング・スキームを実装することが可能であり、ＮＢソース・データ・ベクトルの対応する部分に比べてバイナリ・シンボル変更を有するＭＢエンコード・ベクトルの割り当てでは、バランスの取れたディスパリティ非依存ＭＢエンコード・ベクトルが優先される。前述のように、Ｎ未満のバイナリ・シンボルの補足は、ソース・データ・ベクトル上で直接実行することができるが、こうした補足は、ブロック２０２に示されたステップで形成された増補ベクトルの個々のビット上で実施されることが有利であると考えられる。図２に示された方法の特定の一実施では、Ｎ＝８、Ｍ＝１０であり、エンコーディング・スキームは、ＮＢソース・データ・ベクトルの対応する部分に比べてバイナリ・シンボル変更を有するほぼすべてのＭＢエンコード・ベクトルを、バランスの取れたディスパリティ非依存ＭＢエンコード・ベクトルに割り当てる。本明細書で使用される場合、「ほぼすべて」とは、すべて、および、前述のような並行処理に関連付けられた有利な利点が達成可能な十分な数の、両方を含む。
【００２４】
図２に示された方法ステップは、（たとえば、それに関連して説明したエンコーディング・スキームを使用して）図１に示されたエンコーディング・ステップ１０４を実行するためのサブステップとしても適合可能である。こうしたケースでの付加ステップは、ほぼ上記で説明されている。Ｍバイナリ・シンボルを補足するステップでは、増補ベクトルが取得されたＮＢソース・データ・ベクトルは、前述のＮＢソース・データ・ベクトルの第２の部分内にある。
【００２５】
次に図３に注目すると、本発明の他の例示的方法に従って、Ｍバイナリ・シンボル（ＭＢ）エンコード・ベクトルを、デコード済みＮバイナリ・シンボル（ＮＢ）ソース・データ・ベクトルにデコードする例示的方法ステップを示す流れ図３００が示されており、ここではＭ＞Ｎ＞０である。この方法は、ブロック３０２のように、エンコーディング・スキームに従ってエンコードされた複数のＭＢエンコード・ベクトルを取得するステップと、ブロック３０４のように、エンコーディング・スキームのデコーディング規則に従って、ＭＢエンコード・ベクトルを複数のＮＢソース・データ・ベクトルにデコードするステップとを含む。エンコーディング・スキームは、本発明に従った任意のタイプとすることができる。
【００２６】
次に図４を見ると、Ｍバイナリ・シンボル（ＭＢ）エンコード・ベクトルをＮバイナリ・シンボル（ＮＢ）ソース・データ・ベクトルにデコードするための、本発明の他の態様に従った他の例示的方法の方法ステップを示す流れ図４００が示され、ここではＭ＞Ｎ＞０であり、ＭＢエンコード・ベクトルの少なくとも一部は、１次表現と１次表現に対して補足的な代替表現とを有するディスパリティ依存エンコード・ベクトルである。この方法は、ブロック４０２のように、ＭＢエンコード・ベクトルのうちの所与の１つに対応するＮＢソース・データ・ベクトルのうちの所与の１つを回復させるために、ＭＢエンコード・ベクトルの所与の１つのうちの少なくともＮバイナリ・シンボルを補足するステップを含むことができる。少なくともＮバイナリ・シンボルの補足は、少なくとも部分的に、ＭＢエンコード・ベクトルのうちの所与の１つが、ディスパリティ依存エンコード・ベクトルのうちの１つの代替バージョンのうちの１つであるという決定に応答して実行することができる。この方法は、ブロック４０４のように、ＭＢエンコード・ベクトルのうちの他の所与の１つのＮ未満のバイナリ・シンボルを補足するステップも含むことができる。こうしたＮ未満のシンボルの補足は、ＭＢエンコード・ベクトルのうちの他方の所与の１つに対応するＮＢソース・データ・ベクトルのうちの他の所与の１つの対応する部分を回復するために実行することができる。Ｎ未満のバイナリ・シンボルの補足は、少なくとも部分的に、ＭＢエンコード・ベクトルのうちの他方の所与の１つがディスパリティ非依存エンコード・ベクトルであるという決定に応答して実行することができる。この２つの補足ステップ４０２、４０４は、ほぼ並行して実行可能であり、本発明に従ったエンコーディング・スキームを実装することができる。図４の方法のより特定の一態様では、Ｎ＝８、Ｍ＝１０であり、エンコーディング・スキームは、ＮＢソース・データ・ベクトルのうちの対応する部分に比べてバイナリ・シンボル変更を有するＭＢエンコード・ベクトルのほぼすべてを、バランスの取れたディスパリティ非依存ＭＢエンコード・ベクトルに割り当てる。
【００２７】
図４に示された方法ステップは、図３のステップ３０４が実行可能な１つの様式を表すこともできる。こうしたケースでは、ステップ４０２において、ＮＢソース・データ・ベクトルは、前述のＮＢソース・データ・ベクトルの第２の部分に含まれる。さらにステップ４０４の補足において、ＮＢソース・データ・ベクトルは、前述のＮＢソース・データ・ベクトルの第１の部分に含まれる。
【００２８】
本発明の例示的諸実施形態において、エンコーディング・スキームは、ＤＣバランス伝送コードを生成する。さらに本発明の例示的諸実施形態では、ディスパリティ依存エンコード・ベクトルの１次表現は、２つの２バイナリ・シンボル・パターンのうちの１つで終わる。さらに本発明の例示的諸実施形態では、ＮＢ制御ベクトルおよび対応するＭＢエンコード制御ベクトルは、それぞれ補足的な代替ベクトルを有することができる。以下で論じる例示的エンコーディング・スキームでは、７つのＮＢ制御ベクトルおよび対応する７つのＭＢエンコード制御ベクトルが存在し、それぞれが補足的な代替ベクトルを備える。
【００２９】
次に、本発明の態様に従って、Ｎバイナリ・シンボル（ＮＢ）ソース・データ・ベクトルをＭバイナリ・シンボル（ＭＢ）エンコード・ベクトルにエンコードするための例示的装置５００を示す、図５を参照する。Ｍ＞Ｎ＞０であり、ＭＢエンコード・ベクトルの少なくとも一部は、１次表現と１次表現に対して補足的な代替表現とを有する、ディスパリティ依存エンコード・ベクトルである。装置５００は、バイナリ・シンボル付加モジュール５０２と、オプションで、ディスパリティ監視モジュールと、全ベクトル補足モジュール５０６と、バイナリ・シンボル補足モジュール５０８と、を含むことが可能である。バイナリ・シンボル付加モジュール５０２は、増補ベクトルを取得するために、Ｍ〜Ｎのバイナリ・シンボルをＮＢソース・データ・ベクトルに付加するように構成可能である。ディスパリティ監視モジュール５０４は、採用された場合、全ベクトル補足モジュール５０６に結合可能であり、ディスパリティ依存エンコード・ベクトルのうちの適切なベクトルをＮＢソース・データ・ベクトルのうちの所与のベクトルに割り当てる際に使用する、現在実行中のディスパリティを決定するように構成することができる。
【００３０】
全ベクトル補足モジュール５０６は、増補ベクトルのうちの所与の１つが取得された、ＮＢソース・データ・ベクトルのうちの所与の１つに対応する、ＭＢエンコード・ベクトルのうちの１つの代替表現のうちの１つを取得するために、増補ベクトルのうちの所与の１つのバイナリ・シンボルを補足するように構成することができる。Ｍバイナリ・シンボルの補足は、少なくとも部分的に、ＭＢエンコード・ベクトルのうちの１つがディスパリティ依存エンコード・ベクトルのうちの１つを含むこと、および現在実行中のディスパリティがＭＢエンコード・ベクトルのうちの１つに関する必要な開始ディスパリティに合致しないことの、決定に応答して実行することができる。バイナリ・シンボル補足モジュール５０８は、ＮＢソース・データ・ベクトルのうちの他方の所与の１つに対応する、ＭＢエンコード・ベクトルのうちの他の所与の１つの対応する部分を取得するために、ＮＢソース・データ・ベクトルのうちの他の所与の１つのＮ未満のバイナリ・シンボルを補足するように構成することができる。Ｎ未満のバイナリ・シンボルの補足は、少なくとも部分的に、ＭＢエンコード・ベクトルのうちの他方の所与の１つがディスパリティ非依存エンコード・ベクトルであるという決定に応答して、実行することができる。バイナリ・シンボル補足モジュール５０８および全ベクトル補足モジュール５０６は、ほぼ並行して動作するように構成することができる。本明細書で使用される場合、「ほぼ並行して」は、前述と同じ意味を有するものとする。モジュール５０６、５０８は互いに結合することが可能であり、本明細書で説明される任意のエンコーディング・スキームを実装するように構成することができる。モジュール５０８は増補ベクトルの適切な個々のビットを補足するが、１つまたは複数の個々のバイナリ・シンボルを補足するための任意の適切なスキームが本発明の範囲内に包含されることが好ましいと思われる。さらに、本明細書で使用される場合、「結合される」とは、直接結合、１つまたは複数の他のコンポーネントを介した間接的結合、以下で論じるような１つまたは複数の論理ゲートの共有、などを含むように、広義に理解すべきであることに留意されたい。さらに、例示的諸実施形態では、モジュール６０２および６０４は、入力時にすべてのベクトルを「調べる」ことが可能であるが、必要であれば、入力回線上でラベルごとに識別されたベクトルに基づいて動作可能であることにも留意されたい。以下で論じる例示的エンコーディング・スキーム（例示的であり、限定的でないことを意味する）では、付加されたバイナリ・シンボルとは異なり、ランダム・データの場合、約半数のソース・データ・ベクトルおよびすべての制御ベクトルがエンコーディング時に未変更のままである。
【００３１】
次に図６に注目すると、本発明の態様に従った、Ｍバイナリ・シンボル（ＭＢ）エンコード・ベクトルをＮバイナリ・シンボル（ＮＢ）ソース・データ・ベクトルにデコードするための装置６００の、例示的実施形態が示されている（Ｍ＞Ｎ＞０）。ＭＢエンコード・ベクトルの少なくとも一部は、１次表現と１次表現に対して補足的な代替表現とを有する、ディスパリティ依存エンコード・ベクトルである。装置６００は、全ベクトル補足モジュール６０２と、バイナリ・シンボル補足モジュール６０４と、オプションで妥当性検査モジュール６０６とを含む。全ベクトル補足モジュール６０２は、ＭＢエンコード・ベクトルのうちの所与の１つに対応するＮＢソース・データ・ベクトルのうちの所与の１つを回復するために、ＭＢエンコード・ベクトルのうちの所与の１つの少なくともＮのバイナリ・シンボルを補足するように構成することができる。少なくともＮのバイナリ・シンボルの補足は、少なくとも部分的に、ＭＢエンコード・ベクトルのうちの所与の１つが、ディスパリティ依存エンコード・ベクトルのうちの１つの代替バージョンのうちの１つであることの決定に応答して、実行することができる。
【００３２】
バイナリ・シンボル補足バイナリ・モジュール６０４は、全ベクトル補足モジュール６０２に結合可能であり、ＭＢエンコード・ベクトルのうちの他方の所与の１つに対応するＮＢソース・データ・ベクトルのうちの他の所与の１つの対応する部分を回復するために、ＭＢエンコード・ベクトルのうちの他の所与の１つのＮ未満のバイナリ・シンボルを補足するように構成することができる。Ｎ未満のバイナリ・シンボルの補足は、少なくとも部分的に、ＭＢエンコード・ベクトルのうちの他方の所与の１つがディスパリティ非依存エンコード・ベクトルであるという決定に応答して実行することができる。モジュール６０２、６０４、および（オプションで）６０６は、ほぼ並行して動作するように構成することが可能であり、ここで「ほぼ並行して」とは前述と同じ意味を有する。モジュール６０２、６０４、および６０６は、本発明に従った任意のエンコーディング・スキームを実装するように構成することができる。無効なベクトルの場合、モジュール６０２および６０４は任意の出力を生成することができる。図６に示された例示的実施形態では、モジュール６０２、６０４は、付加されたバイナリ・シンボルを除去するように構成することもできる。モジュール６０２、６０４、６０６は、入力時に付加されたバイナリ・シンボルを「調べる」ことができるが、こうしたシンボルは補足前にドロップすることができる。全ベクトル補足モジュールは、すでに１次（代替ではない）形式のベクトルを補足する必要がないことに留意されたい。
【００３３】
妥当性検査モジュール６０６は、採用された場合、モジュール６０２、６０４に結合可能であり、推定エンコード・ベクトルを取得するように、および推定エンコード・ベクトルのうちの所与のベクトルが有効なＭＢエンコード・ベクトルであるかどうかを判別するように、構成することができる。これは、受け取ったベクトルが有効であるかどうかを判別するために、これらを有効なベクトルと比較することによって、あるいはその逆に、たとえばそれらを無効なベクトルと比較することによって、それらが無効であるかどうかを判別することによって、実行できることに留意されたい。
【００３４】
本明細書で説明される方法は、いくつかの異なる方法で実施することが可能であり、たとえば、図５および図６に示された装置を採用することができる。こうした装置は、いくつかの技法を使用して実装することができる。現在のところ、以下で説明するような種類の論理ゲート実装が好ましいと考えられる。本明細書に示されるような例示的論理ゲートの実装には、様々な変更および修正が可能である。
【００３５】
次に、本発明の原理および技法を示す、例示的８Ｂ／１０Ｂエンコーディング・スキームについて説明する。８Ｂ／１０Ｂの文字「Ｂ」は一般に「バイナリ・シンボル」を表し、２つより多くのレベルを備えたシンボル、たとえば、一般に大文字「Ｔ」で表される３つのレベルを備えた３値シンボルを使用するコードとは区別され、より特定の用語「ビット」（通常は「ｂ」で表される）に限定されるものではないことに留意されたい。また、入力の数は、制御文字を収容するために実際には９であり、数８は、データ・ベクトルのみを表す（本発明に従ったＮＢ／ＭＢスキームは、所望であれば、制御文字などの１つまたは複数の特別な入力を有することもできる）。コード化されていない８Ｂデータ・ベクトルのビットは大文字「ＡＢＣＤＥＦＧＨ」でラベル付けされ、特別な非データ文字用の制御入力は「Ｋ」でラベル付けされる。コード化された１０Ｂベクトルのビットは、小文字「ａｂｃｄｅｆｇｈｉｊ」でラベル付けされる。
【００３６】
図７に示されるようなトレリス線図では、１間隔に対する上方の傾斜線が値１のビットを表し、その逆に、下方の傾斜線は０を表す。図７の時間軸上の水平座標は、左から右へ昇順の数でラベル付けされる。各増分単位は、１追加ビットを表す。実行中のディスパリティを表す垂直座標は、以下のように小文字で表される。
・ｂ（バランス（ｂａｌａｎｃｅ））は、０のディスパリティを示す
・ｕ（上（ｕｐ）、単一（ｕｎｉ））は、奇数の先行数と組み合わされた場合、＋１のディスパリティを示し、偶数の先行数と組み合わされた場合、＋２のディスパリティを示す
・ｍ（マイナス（ｍｉｎｕｓ））は、奇数の先行数と組み合わされた場合、−１のディスパリティを示し、偶数の先行数と組み合わされた場合、−２のディスパリティを示す
・ｃ（３乗（ｃｕｂｅ））は、奇数の先行数と組み合わされた場合、＋３のディスパリティを示し、偶数の先行数と組み合わされた場合、＋４のディスパリティを示す
・ｔ（３（ｔｈｒｅｅ））は、奇数の先行数と組み合わされた場合、−３のディスパリティを示し、偶数の先行数と組み合わされた場合、−４のディスパリティを示す
・ｖ（ローマ数字のＶ）は、奇数の先行数と組み合わされた場合、＋５のディスパリティを示し、偶数の先行数と組み合わされた場合、＋６のディスパリティを示す
・ｑ（５（ｑｕｉｎｔ））は、奇数の先行数と組み合わされた場合、−５のディスパリティを示し、偶数の先行数と組み合わされた場合、−６のディスパリティを示す
・ｈ（７（ｈｅｐｔａ））は、奇数の先行数と組み合わされた場合、＋７のディスパリティを示し、偶数の先行数と組み合わされた場合、＋８のディスパリティを示す
・ｓ（７（ｓｅｖｅｎ））は、奇数の先行数と組み合わされた場合、−７のディスパリティを示し、偶数の先行数と組み合わされた場合、−８のディスパリティを示す
・ｘ（ローマ数字のＸ）は、奇数の先行数と組み合わされた場合、＋９のディスパリティを示し、偶数の先行数と組み合わされた場合、＋１０のディスパリティを示す
・ｎ（９（ｎｉｎｅ）、負（ｎｅｇａｔｉｖｅ））は、奇数の先行数と組み合わされた場合、−９のディスパリティを示し、偶数の先行数と組み合わされた場合、−１０のディスパリティを示す
【００３７】
一例として、図７の左側のトレリス内で、式「５ｃ」は第５ビット（ｅ）の終わりからの＋３のディスパリティ値を表し、式「６ｃ」は第６ビット（ｆ）の終わりからの＋４のディスパリティ値を表す。図７は、１０ビットまでを含むベクトルに関するトレリス線図を示す。左側のトレリスはベクトル分類を定義するために使用され、右側のトレリスは起点から各ノードへの異なるパスまたはベクトルの数を示す。これらの数は、２項係数と同一であることに留意されたい。
【００３８】
以下の表記が、ソース・ベクトルのセットまたはエンコード・ベクトルに付けられる名前に使用される。
・第１の大文字Ｂ、Ｐ、またはＦは、以下のようにコード化ベクトルのディスパリティを示す。
Ｂは、バランスの取れたディスパリティ非依存コード化ベクトルを示す。
Ｐは、実行中のディスパリティの極性に基づいて選択される、バランスの取れたディスパリティ非依存コード化ベクトルの補足ペアを示す。
Ｆは、４つのディスパリティを備えたコード化ベクトルの補足ペアを示す。
・第２の大文字は、存在する場合、非コード化ベクトルのブロック・ディスパリティを示すか、または上記に列挙したディスパリティ値の大文字バージョンを使用する、図７の左側のトレリス内の垂直終端座標を示す。
・第３の大文字は、存在する場合、制御入力ビットＫの値を示す。
・３つまでの先行する大文字の後に、クラスのメンバが通過しなければならないか、または無効にされた場合は通過しない、トレリス・ノードを示すために、小文字と組み合わされた１つまたは複数の数の対が続く場合がある。無効にされたノードを通過するベクトル、たとえば４ｔ’は、指定されたクラスのベクトルの一部であってはならない。この表記は、図７の左側のトレリスに示される。
・Ｋ以外の第３の大文字およびそれに続く大文字は、もしもあれば、それぞれのコード化１次ベクトルを取得するために補足しなければならない、非コード化ビットをマーク付けする。最後の２つのコード化ビットｉおよびｊには、それぞれＩあるいはＪまたはその両方で終わる分類名によって示されている場合、デフォルトの値０が付加される。
【００３９】
すべての１０Ｂ境界で、実行中のディスパリティは２つの値Ｄ＝±２のうちの１つを想定することができる。このコード内のエンコード・ベクトルは、バランスの取れたディスパリティ非依存であるか、バランスの取れたディスパリティ依存であるか、あるいは±４のディスパリティを有するかの、いずれかである。バイト境界にある現在実行中のディスパリティが正（＋２）の場合、ディスパリティ非依存ベクトルまたは必要な正のエントリ・ディスパリティを備えたベクトルのみが入力可能であり、補足規則は負の実行ディスパリティに適用される。ソース・ベクトルの約３分の２が、単一の、バランスが取れた、ディスパリティ非依存エンコード・ベクトルに変換される。他のすべての８Ｂベクトルは、前述のディスパリティ規則に従って、補足的な１０Ｂベクトルのペアのうちの１つに変換される。コード化ベクトルの直列伝送は、ビット「ａ」から始まるアルファベット順であると想定される。
【００４０】
８Ｂ／１０Ｂ−Ｐコードは、図８〜図１９および図２４のトレリス線図によって示されるように、合計２６３のソース・ベクトルを含み、それぞれが３５２のコード化１０Ｂベクトルのうちの１つに変換される。他方の６７２の１０Ｂベクトルは、すべて無効である。この種のアプリケーションに関するトレリス線図の使用および解釈については、第０６２号特許で説明されており、当業者に知られている。１７４のソース・ベクトルは、バランスの取れたディスパリティ非依存ベクトルにエンコードされ、２９のソース・ベクトルは、ディスパリティに依存した補足表現を有するバランスの取れたベクトルにエンコードされ、残りの６０のソース・ベクトルは、それぞれ、４のディスパリティを備えたベクトルの補足ペアのうちの１つにエンコードされる。
【００４１】
第０６２号特許に記載されたコードに比べて、３つの特別な制御文字が追加されており、５の連続するランが生成できる。それらの文字を含めるか除外するかは、ユーザの選択である。新しい制御文字の使用が十分に計画されたものであれば、５の連続するランを依然として避けることができる。新しい制御文字は、以下のトレリス線図内では破線で表されており、表内ではイタリック体で印刷されている。
【００４２】
図８および図９に示されるように、１７４のバランスの取れたディスパリティ非依存ベクトルが存在する。バランスとは、実行中のディスパリティがベクトルの開始および終了で同一であることを意味する。ディスパリティ非依存とは、ベクトル境界で＋２または−２の値を有することができる現在の開始ディスパリティに関係なく、それらをベクトルのシーケンス内に入れることができることを意味する。
【００４３】
１７４のディスパリティ非依存ベクトルは、図１０の３つのディスパリティ依存ベクトルを除き、先行境界および末尾境界でせいぜい２のラン・レングスを備えた、すべてがバランスの取れた１０Ｂベクトルと、２の末尾ランならびにそれに続く１のランおよび別の２のランを備えたそれらの補足とを含む。前述の表記を使用すると、図８および図９のトレリスは、それぞれ、式Ｂ３ｃ’５ｃ’７ｃ’３ｔ’５ｔ’７ｔ’およびＢ３ｃ’７ｃ’３ｔ’７ｔ’８ｂによって記述することができる。後者の式は、図８の一部のベクトルを重複して含む。それらは、項５ｕ’５ｍ’を追加することによって除外される。
【００４４】
図１０から図１２は、必要な負の開始ディスパリティを備えた、バランスの取れたトレリスを示す。正の実行中ディスパリティの場合、それらの補足を使用しなければならない。図１０の３つのベクトルは、式Ｐ３ｕ５ｃ７ｕ８ｕ、およびＰ３ｍ５ｔ７ｍ８ｍによるそれらの補足によって記述することができる。実線内の図１１の１１のベクトルは、式Ｐ３ｃ４ｕ６ｃ’７ｃ’８ｍ’によって記述することができる。ノード８ｍを通過するベクトルＰ３ｃ８ｍは、オプションの制御文字Ｋ２４８Ｐの代替バージョンＫ２４８Ａに割り当てられる（Ｐ３ｔ８ｕ）。この極性選択によって、１０ビット・ベクトル補足に関する数式が簡略化される。図１２の１４のバランスの取れたベクトルは、式Ｐ４ｃ’６ｕ７ｃによって記述することができる。ノード２ｍを通過するベクトルは、オプションの１次制御文字Ｋ１２４Ｐに割り当てられる。
【００４５】
＋４のディスパリティを備える図１３の３２のベクトルは、式Ｆ４ｕ６ｕによって記述することができる。その補足は、式Ｆ４ｍ６ｍによって記述することができる。＋４のディスパリティおよび負の必要なエントリ・ディスパリティを備えた図１４の９つのベクトルは、式Ｆ３ｕ４ｂ７ｃによって記述することができる。その補足は、式Ｆ３ｍ４ｂ７ｔによって記述することができる。２本の太線は、単数のコンマ・シーケンスを表す。＋４のディスパリティおよび負の必要なエントリ・ディスパリティを備える図１５の９つのベクトルは、式Ｆ１ｕ４ｕ６ｃ７ｃによって記述することができる。その補足は式Ｆ１ｍ４ｍ６ｔ７ｔによって記述することができる。＋４のディスパリティおよび負の必要なエントリ・ディスパリティを備えた図１６の４つのベクトルは、式Ｆ２ｕ４ｕ７ｖ８ｃによって記述することができる。その補足は、式Ｆ２ｍ４ｍ７ｑ８ｔによって記述することができる。＋４のディスパリティおよび負の必要なエントリ・ディスパリティを備えた図１７の単一のベクトルは、式Ｆ３ｃ４ｕ８ｖによって記述することができる。その補足は、式Ｆ３ｔ４ｍ８ｑによって記述することができる。＋４のディスパリティおよび負の必要なエントリ・ディスパリティを備えた図１８の４つのベクトルは、式Ｆ２ｂ３ｍ７ｃ９ｃによって記述することができる。その補足は、式Ｆ２ｂ３ｕ７ｔ９ｔによって記述することができる。＋４のディスパリティおよび負の必要なエントリ・ディスパリティを備えた図１９の単一のベクトルは、オプションの制御文字のうちの１つの代替バージョンＫ１３１Ａである。これは、式Ｆ２ｍ７ｃ８ｕによって記述することができる。その補足は、式Ｆ２ｕ７ｔ８ｍによって記述することができる。
【００４６】
図８から図１９のトレリス線図を使用して、コードの妥当性を証明することができる。これらは、使用可能なコード化ベクトルの合計数を示す。各図のベクトルの中には、すべての他の図のいかなるベクトルとも一致するものがないため、重複するベクトルは存在しない。任意の真の末尾ランおよび先行ランと、バイト境界のそれらの関連付けられた実行中のディスパリティによる補足形式との組み合わせは、ラン・レングス規則との適合を示す。同様に、コンマ文字の単一性は、末尾および先行のビット・パターンのすべての可能な組み合わせを調べることによって保証することができる。
【００４７】
ソース・ベクトルのコード化ベクトルへの特定の割り当ては、実装の複雑さに実質的に影響を与える。図２０〜図２７の表の場合のように、ソース・ビットの値を保持するコーディング割り当てが優先され、図２３〜図２７の表は、すべてのディスパリティ依存ベクトルの１次ベクトルを列挙する。ディスパリティ依存ベクトルは、１次（Ｐ）および代替（Ａ）ベクトルと呼ばれる、２つの補足表現を有する。コーディング割り当ては、デコーディング・プロセスを簡略化するために、すべてのディスパリティ依存１次ベクトルがｉｊ＝００または０１で終わるように選択されてきた。デコーディングを簡略化するのに役立つ２つの終了パターンのみに限定され、必ずしも２つの特定のパターンが選択されない、他の終わりも選択することが可能であった。エンコーディングのために個々のビット変更を必要とするすべてのソース・ベクトルが、図２８に列挙されている。図２８の表の６０のコード化ベクトルは、ｉｊ＝０１で終わる、ディスパリティ非依存の、バランスの取れたベクトルとして識別可能である。
【００４８】
Ｋビットの値は図２８の表のソース・ベクトルでは列挙されていない。ほとんどのベクトルの場合、Ｋビットは重複し、存在する場合はゼロの値が想定可能である。ゼロ値は、そうでなければ制御ベクトルと同一である、７つのデータ・ソース・ベクトルのために含まれなければならない。それらのデータ・ベクトルの場合、ベクトル名の文字Ｄは、太字で印刷されている。図２０、図２１、および図２２の表に列挙された１１４のディスパリティ非依存のバランスの取れたベクトルは、図８および図９のベクトルのサブセットであり、ｉｊ＝００、１１、または１０で終わるが、０１では終わらない。図２０の表の２７のベクトルは、ＢＵ３ｃ’５ｃ’７ｃ’３ｔ’によって識別可能である。図２１の表の２７のベクトルは、ＢＭ３ｃ’３ｔ’５ｔ’ ３ｔ’７ｔ’ＩＪによって識別可能である。図２０および図２１の表のベクトルは、＋２および−２のうちの１つの全体ディスパリティを有し、任意の所与のバイナリ・シンボル位置以降で多くとも２の実行中ディスパリティを有する、５４のソース・データ・ベクトルから生じるものであり、５４のソース・データ・ベクトルのうちの＋２の全体ディスパリティを有するものについてはバイナリ・シンボル００が付加され、５４のソース・データ・ベクトルのうちの−２の全体ディスパリティを有するものについてはバイナリ・シンボル１１が付加されることを理解されよう。図２２の表の６０のベクトルは、ＢＢ３ｃ’３ｔ’Ｉによって識別可能である。この６０のベクトルは、２より大きくない先行ラン・レングスを有し、バイナリ・シンボルの補足ペアを付加する、６０のバランスの取れたソース・データ・ベクトルを取った結果であることを理解されよう。
【００４９】
図２３の表に列挙された２４のバランスの取れたベクトルは、ソース・ビットの値を保持し、ｉｊ＝１０または１１で終わらない、図１０〜図１２のベクトルのサブセットである。これらはすべて、負のエントリ・ディスパリティを必要とする。オプションの制御文字Ｋ１２４Ｐは図１２に示されている。図２３の表は、＋２のディスパリティを有し、少なくとも、
バイナリ・シンボル１１００１で終わること、
バイナリ・シンボル１１１０で始まり、バイナリ・シンボル１で終わること、ならびに
バイナリ・シンボル１０で終わり、（ｉ）多くとも３つの先行１、および（ｉｉ）多くとも１つの先行０、のうちの１つを有すること、
それらを、必要な負の開始ディスパリティを有する１９のディスパリティ依存のバランスの取れたエンコード・ベクトルにマッピングする（このエンコード・ベクトルは、２つのゼロが付加されたソース・データ・ベクトルと同一のバイナリ・シンボルを有する）こと、
のうちの１つを満たす、ソース・データ・ベクトルで始まる結果として生じる、１９のベクトルを示すことを理解されよう。さらに、図２３の表は、バイナリ・シンボル１１１０で始まるバランスの取れたソース・データ・ベクトルから生じる４つのベクトルを示し、この４つのバランスの取れたソース・データ・ベクトルは、必要な負の開始ディスパリティを有する４つのディスパリティ依存のバランスの取れたエンコード・ベクトルにマッピングされ、このエンコード・ベクトルは、バイナリ・シンボル０１が付加された４つのバランスの取れたソース・データ・ベクトルと同一のバイナリ・シンボルを有することを理解されよう。
【００５０】
図２４および図２５の表の５つのバランスの取れたベクトルは、正のエントリ・ディスパリティが必要である。それらは、ｉｊ＝１０または１１で終わる、図１１の５つのベクトルの補足である。この補足は、ソース・ベクトルが変更なしに１次ベクトルに変換され、ソース・ビットに変更のあるすべてのエンコード・ベクトルがｉｊ＝０１で終わるように、選択される。図２５の表は、バイナリ・シンボル０００１で開始される４つのバランスの取れたソース・データ・ベクトルから生じる４つのベクトルを示し、この４つのバランスの取れたソース・データ・ベクトルは、必要な正の開始ディスパリティを有する４つのディスパリティ依存のバランスの取れたエンコード・ベクトルにマッピングされ、このエンコード・ベクトルは、バイナリ・シンボル０１が付加されたソース・データ・ベクトルと同一のバイナリ・シンボルを有することを理解されよう。図２６の表の１９のベクトルは＋４のディスパリティを有し、ソース・ビットの値は保持される。これらはすべて、負のエントリ・ディスパリティを必要とする。ｉｊ＝００で終わる１つのベクトル（Ｄ２４７Ｐ）は図１７に示され、その他は図１３〜図１６および図１８のベクトルのサブセットであり、ｉｊ＝０１で終わる。図２６の表は、＋４のディスパリティを有し、
末尾の４つのバイナリ・シンボルが、バイナリ・シンボルの補足ペアとそれに続くバイナリ・シンボル１１とを含むこと、
末尾の４つのバイナリ・シンボルが１１１１であり、先行の４つのバイナリ・シンボルが（ｉ）補足バイナリ・シンボルの２つのペア、および（ｉｉ）１１００、のうちの１つであること、ならびに
先行の２つのバイナリ・シンボルが１であり、末尾の４つのバイナリ・シンボルが１１１０であること、
のうちの少なくとも１つを満たす、ソース・データ・ベクトルから生じる、１８のベクトルを含み、この１８のソース・データ・ベクトルは、＋４のディスパリティおよび必要な負の開始ディスパリティを有する１８のエンコード・ベクトルにマッピングされ、このエンコード・ベクトルは、０１が付加された当該１８のソース・データ・ベクトルと同一のバイナリ・シンボルを有することを理解されよう。さらに、図２６の表は、１１１０１１１１の形のソース・データ・ベクトルから生じる少なくとも１つのベクトルを含み、この１つのソース・データ・ベクトルは、＋４のディスパリティと必要な負の開始ディスパリティとを有する、１つのエンコード・ベクトルにマッピングされ、このエンコード・ベクトルは１１１０１１１１００の形を有する。
【００５１】
図２７の表の２５のベクトルは、−４のディスパリティを有し、ソース・ビットの値が保持される。それらは図１３〜図１５および図１８のベクトルのサブセットの補足であり、ｉｊ＝００で終わる。図２８は、図１３のベクトルの補足済みサブセットである、図２７の表の上位１６ベクトルのトレリスである。図２９は、それぞれ、図１４、図１５、および図１８のベクトルの補足済みサブセットである、下位データ・ベクトル・セットのトレリスである。それらはすべて−４のディスパリティを有し、ソース・ビットの値が保持される。Ｋ１３１は示されていない。図２７の表は、−２のディスパリティを有し、
末尾の４つのバイナリ・シンボルが、０１とそれに続く補足バイナリ・シンボルのペアとを含むこと、
末尾のバイナリ・シンボルが１００１および１１０１０のうちの１つであること、
先行バイナリ・シンボルが０であり、末尾の４つのバイナリ・シンボルが００１１であること、
末尾の５つのバイナリ・シンボルが１０００１であること、および
末尾の６つのバイナリ・シンボルが１００００１であること、
のうちの少なくとも１つを満たす、ソース・ベクトルから生じる、２１のベクトルを含み、この２１のソース・データ・ベクトルは、−４のディスパリティおよび必要な正の開始ディスパリティを有する２１のエンコード・ベクトルにマッピングされ、この２１のエンコード・ベクトルは、バイナリ・シンボル００が付加された当該２１のソース・データ・ベクトルと同一のバイナリ・シンボルを有することを理解されよう。
【００５２】
図３０の表の１６のベクトルは−４のディスパリティを有し、ソース・ビットの値が保持される。それらは図１３〜図１６のベクトルのサブセットの補足であり、ｉｊ＝０１で終わり、図３１のトレリスで図示される。図３０の表は、−４のディスパリティを有し、
末尾の４つのバイナリ・シンボルが、補足バイナリ・シンボルのペアと、それに続くバイナリ・シンボル００とを含むこと、
第１のバイナリ・シンボルが０であり、最後の５つのバイナリ・シンボルが１００００であること、
先行バイナリ・シンボルが０であり、末尾の４つのバイナリ・シンボルが００１０であること、および
先行する２つのバイナリ・シンボルが００であり、末尾の４つのバイナリ・シンボルが０００１であること、
のうちの少なくとも１つを満たす、ソース・ベクトルから生じる、１５のベクトルを含み、この１５のソース・データ・ベクトルは、−４のディスパリティと必要な正の開始ディスパリティとを有する１５のエンコード・ベクトルにマッピングされ、この１５のエンコード・ベクトルは、バイナリ・シンボル０１が付加された１５のソース・データ・ベクトルと同一のバイナリ・シンボルを有することを理解されよう。
【００５３】
この時点までで、図２０〜図２３、図２５〜図２７、および図３０の表に列挙されたように、２０３のソース・ベクトル（１９６のデータ、７の制御）がエンコード・ベクトルに割り当てられた。これらベクトルのうちのいずれも、エンコーディングおよびデコーディングのためにソース・ビット内にいかなる変更も必要としない。まだ割り当てられていない６０のデータ・ソース・ベクトルと、図８から５４、図９から６の、６０の使用可能なエンコード・ベクトルとが残っており、すべてが、ｉｊ＝０１で終わるバランスの取れたディスパリティ非依存ベクトルである。まだ割り当てられていない８ビット・ソース・ベクトルの一部のトレリス線図が、図３２に示されている。太線は、エンコーディング用に補足されたビットを示す。可能であればどこでも、補足ソース・ベクトルのペアが、同様に補足であるエンコード・ベクトルのペアに割り当てられ、コーディング用に補足された個々のビット位置は、ペアの両方のコード化ベクトルについて同一である。また、６ペアのセットおよび４ペアの２セットについて図３２に示されるように、同一のエンコーディング規則を備えるいくつかのベクトル・ペアのグループが定義される。個々のソース・ビットの変更を伴うベクトルの完全なセットが、図３３の表に列挙されている。付加されたビットｉおよびｊは、想定されるゼロのデフォルト値を有する。ソース・ビットまたはデフォルト値とは異なるコード化ビットが太字で印刷され、表の右側のベクトルは左側の補足である。この配置構成は、回路を単純化するのに役立つ。図３３の表では、対応するソース・データ・ベクトルに比べてバイナリ・シンボルの変更を有するエンコード・ベクトルのごく一部が、ディスパリティ非依存エンコード・ベクトルのうちの対応するベクトルと同一の８つのバイナリ・シンボルと、付加されたバイナリ・シンボルのペアの補足である２つのバイナリ・シンボルとを有する、ディスパリティ非依存エンコード・ベクトルのそれに対応することを理解されよう。さらに、例示的なエンコーディング・スキームは、バイナリ・シンボルの変更を有するエンコード・ベクトルのごく一部に対応するソース・データ・ベクトルの大半を、その大半の補足ペアにおいて、付加されたバイナリ・シンボルを除くすべてのバイナリ・シンボル位置にある補足的なディスパリティ非依存エンコード・ベクトルの対応するペアに、割り当てることを理解されよう。さらに、図３３の表では、４の先行ランとそれに続く２ペアの補足バイナリ・シンボルとを有する、少なくとも８つのソース・データ・ベクトルが、この８つのベクトルのうちの対応するベクトルに関して補足された２つの先行バイナリ・シンボルを有する選択されたエンコード・ベクトルに割り当てられることに留意されたい。さらに、図３３の表では、４の先行ランと、それに続く、４の先行ラン内のバイナリ・シンボルと合致する４つの後続のバイナリ・シンボル内の単一のバイナリ・シンボルとを有する、少なくとも８つのソース・データ・ベクトルが、この８つのベクトルのうちの対応するベクトルに関して補足された第３のバイナリ・シンボルを有する選択されたエンコード・ベクトルに割り当てられることに留意されたい。またさらに、図３３の表では、４の先行ランと、それに続く、４の先行ラン内のバイナリ・シンボルと合致しない４つの後続のバイナリ・シンボル内の単一のバイナリ・シンボルとを有する、少なくとも８つのソース・データ・ベクトルが、この８つのベクトルのうちの対応するベクトルに関して補足された、第１、第３、および第４のバイナリ・シンボルを有する選択されたエンコード・ベクトルに割り当てられることにも留意されたい。
【００５４】
図３４〜図４０の表は、図２０〜図２３、図２５〜図２７、図３０、および図３３の表内の選択されたベクトル割り当てを、ベクトル名の昇順で列挙する。代替ベクトルも示されている。６つの制御文字が表の最後に列挙されている。Ｋ列の「ｘ」エントリは、Ｋビットがゼロの値を有するが、エンコーディングについては無視することができることを意味する。見出しが「Ｐｒｉ  ＤＲ」の列は、１次ベクトルに関する必要なエントリ・ディスパリティを列挙する。列「Ｐｒｉ  ＤＢ」は、１次ベクトルのブロック・ディスパリティを列挙する。
【００５５】
多くの場合、コード化されていないソース・ベクトルへのエンコード・ベクトルの割り当てが、エンコーダあるいはデコーダまたはその両方（通常は両方）の複雑さを最低限にするように実行されることが好ましい可能性がある。これは、ビット・マッピングおよびディスパリティ制御の両方について分類数が最小限である場合、およびビット・マッピング用に変更されるビット数も最小限である場合に、実施されることが想定される。論理回路共有のために、この例では、ビット変更がより少ないベクトルに集中するソリューションの方が、同じ数のビット変更がより多くのベクトルに広がるソリューションよりも優先される。この例の設計の重要な特徴は、個々のビット変更を伴うベクトルを、バランスの取れたディスパリティ非依存の単一のクラスに含めることである。これにより、個々のビット変更およびディスパリティ制御のための全ベクトル反転を、エンコーダおよびデコーダの両方の回路内で、回路全体の大幅な遅延を伴う直列モードで実行するのではなく、完全に別の機能として並行して実行することが可能になる。補足しなければならない代替ベクトルの認識がより容易になるように、たとえば、制御ベクトルとしてＫ７ではなくＫ２４８を選択することなど、いくつかの割り当て選択が実行されている。
【００５６】
一般に、エンコード・ビットはエンコードされていないビットの値を保持する（ａ＝Ａ、ｂ＝Ｂなど）が、それぞれの数式が真である場合およびその場合に限り（ｉｆｆ）、特定のソース・ビットが補足される（ａ＝Ａ’、ｂ＝Ｂ’など）。コーディング・ラベルおよび数式では、いくつかのビットのコーディングについてより多くの回路共有を可能にするために、いくつかのビット値が重複して含まれる。重複ビット値にはオーバラインが引かれ、重複するベクトル名の前にはアスタリスクがつけられている。図４１〜図６０の表では、列「コーディング・ラベル」に列挙された単純な式によってベクトルを論理的に分類するために、いくつかのベクトルに共通のビット・パターンには太字でマーク付けされている。ラベルは、エンコーディング数式を作成するために使用される。２つのビット・グループ間の排他ＯＲ関係のいずれかでは、第１および第２のグループ内の任意のビットを、それぞれ、ＸＯＲ２ゲートの第１および第２の入力として選択することができる。この入力は、いくつかのエンコーディング数式間での共通性を最大限にするために選択されている。数式の右端にある括弧内の式は、以下で論じる回路図内の対応するネット名を表す。ネット名の前のアスタリスク（＊）は、ネット内に他の式が含まれることを意味する。
【００５７】
「ａ」列は、図４１の表に列挙されたベクトルに関する図３３〜図４０の表内の太字エントリを有する。
【数１】
2008543223.tif 000003
【００５８】
「ｂ」列は、図４２の表に列挙されたベクトルに関する図３３〜図４０の表内の太字エントリを有する。
【数２】
2008543223.tif 000004
【００５９】
「ｃ」列は、図４３の表に列挙されたベクトルに関する図３３〜図４０の表内の太字エントリを有する。
【数３】
2008543223.tif 000005
【００６０】
「ｄ」列は、図４４の表に列挙されたベクトルに関する図３３〜図４０の表内の太字エントリを有する。
【数４】
2008543223.tif 000006
【００６１】
「ｅ」列は、図４５の表に列挙されたベクトルに関する図３３〜図４０の表内の太字エントリを有する。
【数５】
2008543223.tif 000007
【００６２】
「ｆ」列は、図４６の表に列挙されたベクトルに関する図３３〜図４０の表内の太字エントリを有する。
【数６】
2008543223.tif 000008
【００６３】
「ｇ」列は、図４７の表に列挙されたベクトルに関する図３３〜図４０の表内の太字エントリを有する。
【数７】
2008543223.tif 000009
【００６４】
「ｈ」列は、図４８の表に列挙されたベクトルに関する図３３〜図４０の表内の太字エントリを有する。
【数８】
2008543223.tif 000010
【００６５】
「ｉ」列は、図４９および図５０の表に列挙された８７のベクトルに関する図２１および図２２の表内の太字エントリを有する。
【数９】
2008543223.tif 000011
【００６６】
「ｊ」列は、図５１〜および図５４の表に列挙された１２９のベクトルに関する図２１、図２３、図２５、図２６、図３０、および図２３の表内の太字エントリを有する。
【数１０】
2008543223.tif 000012
【００６７】
Ｋ＝１の場合、７つの有効な制御ベクトルのみが入力時にエンコーダに提示されるため、図３４〜図４０の表の最後の７行から単純な制御ベクトル・ラベルを導出することができるものと想定される。図２５、図２７、および図３０の表に列挙された合計４６のベクトルは、正のエントリ・ディスパリティを必要とする（ＰＤＲＥ）。それらは図５５および図５６の表に列挙およびソートされる。重複ビットにはオーバラインが引かれる。正の必要なエントリ・ディスパリティＰＤＲＥに関する数式は、以下のように作成することができる。
【数１１】
2008543223.tif 000013
【００６８】
図２３および図２６の表に列挙された合計４３のベクトルは、負のエントリ・ディスパリティを必要とする（ＮＤＲＥ）。それらは図５７および図５８の表に列挙およびソートされる。負の必要なエントリ・ディスパリティＮＤＲＥに関する数式は、以下のように作成することができる。
【数１２】
2008543223.tif 000014
【００６９】
必要なエントリ・ディスパリティＰＤＲＥまたはＮＤＲＥが実行中ディスパリティＲＤに合致しない場合、代替ベクトルを使用しなければならない。代替ベクトルは、１次ベクトルの補足によって生成される。ベクトル境界で実行中のディスパリティは、＋２または−２の２つの値に制約される。バイトの前の正または負の実行中ディスパリティは、それぞれＰＤＦＢＹまたはＮＤＦＢＹと呼ばれる。
ＣＭＰＬＰ１０＝ＰＤＲＥ・ＮＤＦＢＹ＋ＮＤＲＥ・ＰＤＦＢＹ
【００７０】
図２６の表に列挙された合計１９のベクトルは、４の正のディスパリティを有する。それらは図５９の表に列挙およびソートされる。ＰＤＢエンコーディングのための４の正のブロック・ディスパリティに関する数式は、以下のように作成することができる。
【数１３】
2008543223.tif 000015
【００７１】
図２７および図３０の表に列挙された合計４１のベクトルは、４の負のディスパリティを有する。それらは図６０の表に列挙およびソートされる。この表からのコーディング・ラベルを使用して、ＮＤＢエンコーディングのための４の負のブロック・ディスパリティに関する数式を、以下のように作成することができる。
【数１４】
2008543223.tif 000016
【００７２】
バランスの取れたベクトル（ＢＡＬＢＹ）の場合、開始ディスパリティおよび終了ディスパリティは等しく、そうでない場合は補足的である。このコードの場合、コード化ベクトルは、バランスが取れているか、あるいは＋４または−４のディスパリティを有し、ＰＤＢまたはＮＤＢのいずれもアサートされない場合、ベクトルはバランスが取れている。この手法の結果、他の可能なソリューションに比べて論理遅延が削減され、論理回路の共有が大幅に増える。エンコード・ベクトルの終了時に、実行中ディスパリティＤＥＢＹは以下のように決定される。
【数１５】
2008543223.tif 000017
【００７３】
次のバイトの開始時の実行中ディスパリティＤＦＢＹは、先行バイトの終了ディスパリティＤＥＢＹに等しい。
ＤＦＢＹ＋１＝ＤＥＢＹ０
【００７４】
例示的エンコーディング回路は、ＤＦＢＹの値を追跡するために単一のラッチ（図示せず）を含むことができる。
【００７５】
前述のように、バイト内の任意の奇数のエラーが無効なバイトを生成する。全１０ビット・ベクトル・セットは、とりわけ２５２のバランスの取れたベクトルと、＋４のディスパリティを備えた１２０のベクトルと、−４のディスパリティを備えた１２０のベクトルとを含む。８Ｂ／１０Ｂ−Ｐコードは、３５２のベクトル、２３２のバランスの取れたベクトル、および４のディスパリティを備えた６０のベクトルの補足ペアを使用する。他の６７２の１０ビット・ベクトルは、すべて無効である。妥当性検査は、有効なベクトルであるか無効なベクトルであるかを識別する回路によって実行することができる。以下の手法で、図６１〜図６４の表で簡単な識別のために列挙およびソートされた、すべての有効なベクトルを識別する。あらゆる有効なベクトルは同じく有効な補足を有し、それぞれのベクトルは並んで列挙されることに留意されたい。
【００７６】
ｉ≠ｊの４以外のすべてのベクトルを、最初の８ビットで同一の他の有効ベクトルとペアにすることができる。この例外は、図１８ならびに、図６３および図６４の表の２行にｉｊ＝１０列またはｉｊ＝０１列の空白で示されている。図６１および図６２の表は、ｉ≠ｊの２０４のすべての有効ベクトルを以下のように列挙する。
・１次ベクトル：
図２２の表から６０、図２３の表から４、図２５の表から４、図２６の表から１８、図３０の表から１６、図３３の表から６０。
・代替ベクトルは、１次ベクトルとして列挙されたベクトルの補足である：
図２３の表から４、図２５の表から４、図２６の表から１８、図３０の表から１６。
【００７７】
ｉ＝ｊの１４８のベクトルは、７４の補足ベクトル・ペアとして配置構成された図６３および図６４の表に以下のように列挙される。
・１次ベクトル：
図２０および図２１の表から２７の補足１次ベクトル・ペア、図２３の表から２０の１次ベクトル、図２５および図２６の表からそれぞれ１つの１次ベクトル、図２７の表から２５の１次ベクトル。
・代替ベクトル：
図２３の表から２０、図２５および図２６の表からそれぞれ１、図２７の表から２５。
【００７８】
エンコード・ベクトルの妥当性に関する数式は、図６１〜図６４の表の有効ラベルから構成される。右側の括弧内の式は、左側の論理式に関連付けられたネット数を表し、アスタリスクで注釈が付けられた場合、左側の論理式は追加の項、すなわち、ｎ０＊の場合
【数１６】
2008543223.tif 000018
ｎ１＊およびｎ６＊の場合
【数１７】
2008543223.tif 000019
ｎ８＊の場合
【数１８】
2008543223.tif 000020
を含む。
【数１９】
2008543223.tif 000021
【００７９】
この例の場合、ディスパリティ違反は、ほとんどのケースで、この種のコードに関連付けられたエラー訂正プロシージャを実質上支援しないため、および、もちろんこうしたディスパリティ検査の結果が、通常、エラー後数バイトまで使用できないため、監視されない。
【００８０】
デコーディングは、元の８ビットおよびＫビットを回復する。エンコーディングの場合と同様に、以下の２つのタイプのビット変更が実行される。
１．ベクトル全体の補足
２．個々のビットの補足
【００８１】
コードは、これら２つの操作を完全に別々にし、並行して実行できるように構築された。２つの特別なビットｉおよびｊは、前述の操作のためのベクトルを選択するために含められ、その後、単にドロップされる。
【００８２】
デコーディング数式は、無効なベクトルをデコーディングするために任意のビット変更が可能な場合、大幅に簡略化することができる。適切な無効ベクトルを、論理式を定義するベクトルに追加することができる。以下では、これらの重複ベクトルは示されていないが、含めることで除去可能な論理式の項にオーバラインが引かれ、ベクトル全体の補足または個々のビットの補足に関する最終数式に除去される。第１の例として、ペア・ベクトルのビット値「ａ」および「ｂ」は、それぞれ１０および０１とすることが可能である。これらのビット値は、可能な他の値が００または１１のみであり、そのどちらもベクトル・クラス間のハフマン距離が２であるため、無効なベクトルを生成することから、論理式のために無視することができる。もちろん、こうしたビットの補足ペアは、ベクトルの各ペアにつき１つだけ除去することができる。このコンテキストでは、最大ラン・レングスは５であり、このランは、コード化された１０ビット・ベクトルの先行端および末尾端で最高でも３であり、これらの第２のタイプの違反を第１のタイプの違反と共に含めることができることに留意することも有用である。
【００８３】
すべてのディスパリティ依存コード・ポイントは、補足表現、それぞれベクトル名への付加文字ＰまたはＡによって表内で識別された１次ベクトルおよび代替ベクトルを有する。１次バージョンまたは代替バージョンは、ディスパリティ要件を満たすために使用される。デコーディングの場合、すべての代替ベクトルを補足しなければならない。８９の代替ベクトルは、図２３、図２５〜図２７、および図３０の表に列挙されたベクトルの補足であり、図６５および図６６の表で一覧される。ベクトルの最初の８ビットの補足に関する数式は、図６５および図６６の表の代替ベクトル・ラベルから構成される。
【数２０】
2008543223.tif 000022
【００８４】
第２のラベル内の因子
【数２１】
2008543223.tif 000023
および第８のラベル内の因子
【数２２】
2008543223.tif 000024
は、
【数２３】
2008543223.tif 000025
およびｄ’がどちらも無効な４の先行ランを生成するため、重複する。
【００８５】
デコーディングの場合、図３３の表のエンコード済み列における太字のビット値は、ソース・ベクトル列ＡＢＣＤＥＦＧＨ内に示されるような元の値に補足し直さなければならない。デコーディング数式は、ｉビットおよびｊビットの値を含めなければならないこと、ならびに、図３３の表内の太字の値はエンコーディング数式で使用される値の補足であることを除き、エンコーディング数式と同様である。図６７から図７５の表では、単純な式によってベクトルを論理的に分類するために、共通のビット・パターンは太字によってマーク付けされる。重複項にはオーバラインが引かれる。
【００８６】
「ａ」列は、図６７の表に列挙されたベクトルに関して、図３３〜図４０の表内に太字のエントリを有する。ビット「Ａ」に関するデコーディング数式は、デコーディング・ラベルを使用して以下のように作成することができる。
【数２４】
2008543223.tif 000026
【００８７】
「ｂ」列は、図６８の表に列挙されたベクトルに関して、図３３〜図４０の表内に太字のエントリを有する。ビット「Ｂ」に関するデコーディング数式は、図６８の表のデコーディング・ラベルを使用して以下のように作成することができる。
【数２５】
2008543223.tif 000027
【００８８】
「ｃ」列は、図６９の表に列挙されたベクトルに関して、図３３〜図４０の表内に太字のエントリを有する。ビット「Ｃ」に関するデコーディング数式は、これらのデコーディング・ラベルを使用して以下のように作成することができる。
【数２６】
2008543223.tif 000028
【００８９】
「ｄ」列は、図７０の表に列挙されたベクトルに関して、図３３〜図４０の表内に太字のエントリを有する。ビット「Ｄ」に関するデコーディング数式は、これらのデコーディング・ラベルを使用して以下のように作成することができる。
【数２７】
2008543223.tif 000029
【００９０】
「ｅ」列は、図７１の表に列挙されたベクトルに関して、図３３〜図４０の表内に太字のエントリを有する。ビット「Ｅ」に関するデコーディング数式は、これらのデコーディング・ラベルを使用して以下のように作成することができる。
【数２８】
2008543223.tif 000030
【００９１】
回路の共有を可能にするために、重複因子
【数２９】
2008543223.tif 000031
が含められる。
【００９２】
「ｆ」列は、図７２の表に列挙されたベクトルに関して、図３３〜図４０の表内に太字のエントリを有する。ビット「Ｆ」に関するデコーディング数式は、これらのデコーディング・ラベルを使用して以下のように作成することができる。
【数３０】
2008543223.tif 000032
【００９３】
「ｇ」列は、図７３の表に列挙されたベクトルに関して、図３３〜図４０の表内に太字のエントリを有する。ビット「Ｇ」に関するデコーディング数式は、これらのデコーディング・ラベルを使用して以下のように作成することができる。
【数３１】
2008543223.tif 000033
【００９４】
「ｈ」列は、図７４の表に列挙されたベクトルに関して、図３３〜図４０の表内に太字のエントリを有する。ビット「Ｈ」に関するデコーディング数式は、これらのデコーディング・ラベルを使用して以下のように作成することができる。
【数３２】
2008543223.tif 000034
【００９５】
図６７〜図７４の表のすべてのベクトルに関するＫビット値はゼロである。１のＫ値を有する７つのエンコード済み制御文字が、図７５の表に列挙される。７つの制御文字すべてが、代替表現を有する。図７の表が、７つの制御ベクトルを、１次表現と１次表現に対して補足的な代替表現とを有する７つのディスパリティ依存エンコード制御ベクトルにマッピングした結果を示し、このエンコード制御ベクトルは７つの制御ベクトルと２つの付加バイナリ・シンボルとを含み、このエンコード制御ベクトルの１次表現は、
（ｉ）ディスパリティが−４に等しいこと、（ｉｉ）必要な開始ディスパリティが正であること、（ｉｉｉ）第３、第５、第６、第７、および第９のバイナリ・シンボルが値０を有し、第１のバイナリ・シンボルが値１を有すること、（ｉｖ）第４および第８のバイナリ・シンボルが補足的であること、ならびに、（ｖ）第８および第１０のバイナリ・シンボルが補足的であること、
（ｉ）ディスパリティが−４に等しいこと、（ｉｉ）必要な開始ディスパリティが正であること、（ｉｉｉ）第４、第６、第８、第９、および第１０のバイナリ・シンボルが値０を有し、第５および第７のバイナリ・シンボルが値１を有すること、
（ｉ）ディスパリティが０に等しいこと、（ｉｉ）必要な開始ディスパリティが負であること、（ｉｉｉ）最初の２つのバイナリ・シンボルおよび最後の２つのバイナリ・シンボルが値０を有し、第３、第４、第５、第６、および第７のバイナリ・シンボルが値１を有すること、
（ｉ）ディスパリティが０に等しいこと、（ｉｉ）必要な開始ディスパリティが正であること、（ｉｉｉ）最初の２つのバイナリ・シンボルおよび最後の２つのバイナリ・シンボルが値０を有し、第４、第５、第６、および第７および第８のバイナリ・シンボルが値１を有すること、
のうちの少なくとも１つを満たすことを理解されよう。
【００９６】
Ｋビット値の決定は、１次ベクトルの回復およびビット値の決定の直列操作に関連付けられた余分な待ち時間を避けるために、回復された１次ベクトルから排他的にではなく、１次表現または代替表現から直接実行される。ビット「Ｋ」に関するデコーディング数式は、これらのデコーディング・ラベルを使用して以下のように作成することができる。
【数３３】
2008543223.tif 000035
【００９７】
回路実装の場合、すべての入力が補足的な形で使用可能であること、すなわち、入力レジスタ・ラッチの＋Ｌ２および−Ｌ２の両方の出力が使用可能になることが想定される。それにもかかわらず、−Ｌ２出力は＋Ｌ２出力に比べてわずかに遅延することが想定される。回路図は、ＮＡＮＤ、ＮＯＲ、ＩＮＶ、ＸＯＲ、およびＸＮＯＲゲートのみを示す（例外は１つ）。ＡＮＤゲートおよびＯＲゲートの使用は、遅延を増加させるため、避けられてきた。ＮＡＮＤゲートおよびＮＯＲゲートの場合、論理シンボルの上位入力は、通常、下位入力よりも遅延が少ない。したがって推測されるクリティカル・パスは、最上位入力を介してルーティングされる。ワイヤ・ルーティングも、ＸＮＯＲ遅延がＸＯＲ遅延よりも短いと想定する。
【００９８】
基本論理数式の定義、およびゲートのファンイン制限に合致させるためのより長い式の区分化には、ある程度の余裕がある。これらの選択における変動性は、回路共有および回路カウントにおいて様々な範囲に及ぶため、例示的回路は必ずしも最小領域ではない可能性がある。等価の異なる回路を実装すること、および例示的設計をある程度機能強化するための機会に関するもう１つの理由は、デコーディング回路において特定の重複する要素を選択することである。回路遅延の上限になると予想される回路領域では、主にクリティカル・パス内のゲートのファンインを削減することによって遅延を少なくするために、時折回路カウントが増加される。遅延について考えると、両方の極性を生成するために、入力時にＸＯＲおよびＸＮＯＲの両方のゲートが使用されており、シミュレーション結果が使用可能な場合は、それらのゲートの一部をＩＮＶ回路に置き換えることができる。同様に、回路図には、最大回路共有を可能にするための複雑なゲートが示されておらず、適切であれば複雑なゲートを自動的に導入することになる論理処理プログラムを採用することができる。回路図内では、数式の論理変数の一部が明示的に存在しないことに留意されたい。存在する場合は、回路全体の遅延を減らすために単一のゲート内で他の機能と統合される。
【００９９】
すべての入力および出力を備えたエンコーディング回路のブロック図が、図７６に示される。ネット共有を使用する単一回路を表す、エンコーダのゲート・レベル回路図が図７７〜図７９に示される。図７７は、先行８ビット（ａからｈ）のエンコーディングのほとんどを示し、末尾のｉビットおよびｊビットのエンコーディングは図７８に示され、図７９は、左上にベクトル全体の補足に関する数式、左下にエンコード・ベクトルのバランスが取れているかどうかの判別に関する数式の、実装を示す。右上は、ビット・エンコーディングの最後の２つのゲート・レベルを示す。次のバイトの開始ディスパリティＤＦＢＹに等しい終了ディスパリティＤＥＢＹの生成は、右下に示される。これらの間には、いくつかの排他ＯＲ（ＸＯＲ）ゲートおよびＸＮＯＲゲートがあり、３つのエンコーディング回路図をまたがって共有される。これらゲートの一部は、それらがいかなるクリティカル・タイミング・パスの一部でもない場合、反対極性のゲートから駆動されるインバータに置き換えることができる。
【０１００】
コード化バイトのすべての１０ビットを補足する信号ＣＭＰＬ１０は、個々のビットの補足を実行する他の信号（Ｃａ１、Ｃｂ１、Ｃｃ１、Ｃｄ１、Ｃｅ１、Ｃｆ１、Ｃｇ１、Ｃｈ１）と直交する。言い換えれば、エンコーディングおよびデコーディングのどちらの場合も、全ベクトルが補足される場合は個々のビットはまったく変更されず、その逆もまた真である。この機能により、図７９の右上に示されるように、両方のタイプの信号を単一のＯＲ関数に統合することが可能であり、排他ＯＲ関数の出力に先行する回路が大幅に簡略化される。ＣＭＰＬ１０信号は、示された回路バージョンでは明示的に存在しない。これは、必要なエントリ・ディスパリティと、先行バイトの終了ディスパリティＤＥＢＹに等しい開始ディスパリティＤＦＢＹとに依存する。クリティカル信号パスでは、ＤＦＢＹの値は、通常、この論理パスの次のサイクルへのパイプライン方式を容易にする第３または第４レベルでのゲートへの入力であるため、この値がエンコーディング間隔の開始時に即時に必要ではないことに留意されたい。
【０１０１】
エンコーダは２９８のゲートを含み、ディスパリティを追跡するためのフリップフロップ（図示せず）を含むことができる。７ゲートを超える論理パスは存在せず、ほとんどの電力レベルおよびローディング・レベルについて、遅延がＸＮＯＲゲートに匹敵するかまたはほんのわずかに多い一部のＸＯＲを除き、すべてのゲートは遅延の少ない反転タイプである。
【０１０２】
提示された回路は、数個の特別なゲートを費やして高速動作をするための簡単な前方パイプライン方式用に構造化されている。第１のエンコーディング・ステップが６つの論理レベルに限定される場合、コード化ビットおよび終了ディスパリティ用のすべての末尾排他ＯＲ関数を、特別な２１のラッチを必要とする次のサイクルに移動させることができる。第１のエンコーディング・ステップは、ＸＯＲの直前のＯＲ関数も、あと５つのラッチのみ、合計２６の特別なラッチを必要とする第２ステップに移動される場合、５つのゲート・レベルまで削減することができる。第１のステップで４つのゲート・レベルまで削減するには、ビットｅおよびｉ用の２つの後続ゲートと、すべての他の信号パス用の３つの後続ゲートとを、非パイプライン・バージョンよりも多くの６０のラッチ（ビットＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、およびＰＤＦＢＹ用に９、Ｃａ１、Ｃｂ１、Ｃｃ１、Ｃｄ１、Ｃｅ１、Ｃｆ１、Ｃｇ１、およびＣｈ１を生成するゲートの入力用に１９、Ｃｅ１用に１、ＰＢｉ、Ｐｎ７８／７９／８０、ＮＤＦＢＹａＰＤＲＥ、およびＮＰＤＦＢＹａＮＤＲＥを生成するゲートの入力用に２１、ｎ１０２、ＮＰＤＢ１、およびｎ１０３を生成するゲートの入力用に１０）を必要とする、第２のステップに移動させる必要がある。
【０１０３】
わずかな回路修正と、補足的な出力を備えた多くとも１３の特別なラッチを必要とする先行排他ＯＲ関数のデータ・ソース・パス内の先行クロック・サイクルへの移動とにより、単独で、または前述のバージョンのいずれかと組み合わせて、さらなる遅延削減を達成することができる。
【０１０４】
すべての入力および出力を備えた例示的デコーディング回路のブロック図が、図８０に示される。ネット共有を使用する単一の回路を表すデコーダのゲート・レベル回路図が、図８１〜図８３に示される。図８１は、ベクトルの妥当性検査を示す。ベクトル補足信号（ＣＯＭＰＬ１０）を制御する回路は、図８２に示される。３つの図すべての共有排他ＯＲ関数が右側に示される。ここでも、速度要件に依存するこれらのゲートの一部に代わって、インバータを使用することができる。図８３は、元の値（Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ）を回復するための個々のビット（ａ、ｂ、ｃ、ｄ、ｅ、ｆ、ｇ、ｈ）の補足に関する数式の実装を示す。右下では、制御ビットＫが生成される。上部には、８データ・ビット用の後続の２つのゲート・レベルが示される。
【０１０５】
デコーダは２７５のゲートを含む。一部のＸＯＲゲートを除きすべて反転タイプの、７ゲートを超える論理パスは存在しない。有効パスは、インバータ１１８３７をＮＡＮＤ３ゲートに置き換えることで６つの論理レベルまで削減することが可能であり、ＰＫパスは５つの論理レベルである。
【０１０６】
高速動作の場合、提示された回路は、エンコーディング回路と同様に数個の特別なゲートを費やす簡単な前方パイプライン方式用に構造化されている。第１のステップで６つの論理レベルまで削減するために、図８３の上部でビットＡからＨを生成する８つの末尾排他ＯＲ関数が、ＰＫ信号とＰＶＡＬＩＤ信号とを位置合わせするために、特別な１６のラッチに加えて２つのラッチを必要とする、第２のステップに移動される。５つのレベルまで削減するために、ＸＮＯＲの直前のＯＲ関数およびＶＡＬＩＤパスの後続ゲートも第２のステップへ移動され、Ｋ値は前方へ送られ、このバージョンのパイプライン方式は２３の特別のラッチを必要とする。第１のステップを４つのゲート・レベルに削減する場合、合計４８のパイプライン方式のラッチが必要である（Ｖａｌｉｄ用に１２、ＣＭＰＬ１０用に７、Ｋ用に３、信号ＰＣＭＰＬａ１からＰＣＭＰＬｈ１を生成するゲートの入力用に１８、および、ビットＰＣａからＰＣｈ用に８）。
【０１０７】
ここでも、わずかな回路修正と、補足的な出力を備えた多くとも２３の特別なラッチを必要とする先行排他ＯＲ関数の先行クロック・サイクルへの移動とにより、３レベルまでのさらなる遅延削減を達成することができる。
【０１０８】
検証のために、ソフト技術依存マクロがＶＨＤＬで作成された。エンコーダは、正しいディスパリティですべての予測される出力を生成した。デコーダは、すべての元のベクトル値を回復した。すべての可能な１０ビット・パターンのランダム・シーケンスが、すべての無効入力を識別したデコーダ入力に適用され、有効入力を正しくデコードした。
【０１０９】
前述のように、論理ゲートを使用するハードウェアでの好ましい実施に加えて、専用のハードウェア、汎用プロセッサ、ファームウェア、ソフトウェア、またはそれらの組み合わせを利用する多様な技法を採用して、本発明を実施することができる。図８４を参照すると、こうした代替実施は、たとえばプロセッサ６５０２、メモリ６５０４、ならびに、たとえばディスプレイ６５０６およびキーボード６５０８によって形成された入力／出力インターフェースを採用することができる。本明細書で使用される場合、「プロセッサ」という用語は、たとえば、ＣＰＵ（中央処理ユニット）あるいは他の形の処理回路またはその両方を含む処理デバイスなどの、任意の処理デバイスを含むことが意図される。さらに、「プロセッサ」という用語は、複数の個々のプロセッサを表すことができる。「メモリ」という用語は、たとえばＲＡＭ（ランダム・アクセス・メモリ）、ＲＯＭ（読み取り専用メモリ）、固定メモリ・デバイス（たとえばハード・ドライブ）、取り外し可能メモリ・デバイス（たとえばディスケット）、フラッシュ・メモリなどの、プロセッサまたはＣＰＵに関連付けられたメモリを含むことが意図される。加えて、「入力／出力インターフェース」という語句は、本明細書で使用される場合、たとえば、データを処理ユニットに入力するための１つまたは複数のメカニズム（たとえばマウス）、および、処理ユニットに関連付けられた結果を提供するための１つまたは複数のメカニズム（たとえばプリンタ）を含むことが意図される。プロセッサ６５０２、メモリ６５０４、ならびに、ディスプレイ６５０６およびキーボード６５０８などの入力／出力インターフェースは、データ処理ユニット６５１２の一部として、たとえばバス６５１０を介して相互接続することができる。好適な相互接続は、たとえばバス６５１０を介して、コンピュータ・ネットワークとインターフェースするために提供可能なネットワーク・カードなどのネットワーク・インターフェース６５１４に、ならびに、メディア６５１８とインターフェースするために提供可能なディスケットまたはＣＤ−ＲＯＭドライブなどのメディア・インターフェース６５１６に、提供することも可能である。
【０１１０】
したがって、本明細書で説明されるような、本発明の方法を実行するための命令またはコードを含むコンピュータ・ソフトウェアを、１つまたは複数の関連するメモリ・デバイス（たとえばＲＯＭ、固定メモリ、または取り外し可能メモリ）に格納することが可能であり、利用準備が整った場合、部分的または全体的に（たとえばＲＡＭに）ロードされ、ＣＰＵによって実行される。こうしたソフトウェアは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むことができるが、これらに限定されるものではない。ソフトウェアを含む本発明の１つまたは複数の実施形態の実施は、たとえばベクトル化または並行化ソリューションを採用するために、前述の並行性に対する可能性を利用できることに留意されたい。
【０１１１】
さらに本発明は、コンピュータまたは任意の命令実行システムによって、あるいはそれらと共に、使用するためのプログラム・コードを提供する、コンピュータ使用可能またはコンピュータ読み取り可能メディア（たとえばメディア６５１８）からアクセス可能な、コンピュータ・プログラム製品の形を取ることができる。説明の目的で、コンピュータ使用可能またはコンピュータ読み取り可能メディアは、命令実行システム、装置、またはデバイスによって、あるいはそれらと共に、使用するための、任意の装置とすることができる。
【０１１２】
メディアは、電子、磁気、光、電磁、赤外線、または半導体のシステム（あるいは装置またはデバイス）、あるいは伝搬媒体とすることができる。コンピュータ読み取り可能メディアの例には、半導体またはソリッドステート・メモリ（たとえばメモリ６５０４）、磁気テープ、取り外し可能コンピュータ・ディスケット（たとえばメディア６５１８）、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、剛性磁気ディスク、および光ディスクが含まれる。光ディスクの現行例には、コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク読み取り／書き込み（ＣＤ−Ｒ／Ｗ）、およびＤＶＤが含まれる。
【０１１３】
プログラム・コードの格納あるいは実行またはその両方に好適なデータ処理システムは、システム・バス６５１０を介してメモリ要素６５０４に直接または間接的に結合された、少なくとも１つのプロセッサ６５０２を含むことになる。メモリ要素は、プログラム・コードの実際の実行中に採用されるローカル・メモリ、大容量ストレージ、ならびに、実行中に大容量ストレージからコードを取り出さなければならない回数を削減するために少なくとも一部のプログラム・コードの一時ストレージを提供するキャッシュ・メモリを含むことができる。
【０１１４】
入力／出力またはＩ／Ｏデバイス（キーボード６５０８、ディスプレイ６５０６、ポインティング・デバイスなどを含むが、これらに限定されない）は、直接（バス６５１０を介するなど）、またはＩ／Ｏコントローラ（わかりやすくするために省略）の介入を通じて、システムに結合することができる。
【０１１５】
データ処理システムを、専用または公衆のネットワークの介入を通じて、他のデータ処理システムあるいはリモート・プリンタまたはストレージ・デバイスに結合できるようにするために、ネットワーク・インターフェース６５１４などのネットワーク・アダプタも、システムに結合することができる。モデム、ケーブル・モデム、およびイーサネット（登録商標）・カードは、現在使用可能なネットワーク・アダプタのタイプのほんの一例である。
【０１１６】
いずれの場合も、本明細書に示されたコンポーネントは、たとえば、特定用途向け集積回路（ＡＳＩＣＳ）、機能回路、関連するメモリを備えた１つまたは複数の適切にプログラミングされた汎用デジタル・コンピュータ、１つまたは複数のプログラム可能論理アレイ（ＰＬＡ）、本明細書で説明したような組み合わせ論理などの、様々な形のハードウェア、ソフトウェア、またはそれらの組み合わせで実施可能であることを理解されたい。本明細書で提供された発明の教示が与えられた場合、当業者であれば、本発明のコンポーネントの他の実施を企図することができる。もちろん、エンコーディング・スキームはルックアップ・テーブルを介して実装可能であることに留意されたい。
【０１１７】
以上、添付の図面を参照しながら、本発明の例示的諸実施形態について説明してきたが、本発明はこれらの精密な諸実施形態に限定されるものではなく、当業者であれば、本発明の範囲または趣旨を逸脱することなく様々な他の変更および修正が実行可能であることを理解されよう。
【図面の簡単な説明】
【０１１８】
【図１】本発明の一実施形態に従ったエンコーディングの例示的方法の方法ステップを示す流れ図である。
【図２】エンコーディングを実行できる可能な特定の一様式を示す流れ図である。
【図３】本発明に従ったデコーディングの例示的方法の方法ステップを示す流れ図である。
【図４】本発明に従ったデコーディングの可能な一様式を示す流れ図である。
【図５】本発明の実施形態に従ったエンコーディングのための装置の例示的実施形態を示す図である。
【図６】本発明の態様に従ったデコーディングのための装置の例示的実施形態を示す図である。
【図７】本発明のある例示的諸実施形態に適用可能なトレリス線図を示す図である。
【図８】本発明の実施形態のある態様を示す個々のトレリス線図を示す図である。
【図９】本発明の実施形態のある態様を示す個々のトレリス線図を示す図である。
【図１０】本発明の実施形態のある態様を示す個々のトレリス線図を示す図である。
【図１１】本発明の実施形態のある態様を示す個々のトレリス線図を示す図である。
【図１２】本発明の実施形態のある態様を示す個々のトレリス線図を示す図である。
【図１３】本発明の実施形態のある態様を示す個々のトレリス線図を示す図である。
【図１４】本発明の実施形態のある態様を示す個々のトレリス線図を示す図である。
【図１５】本発明の実施形態のある態様を示す個々のトレリス線図を示す図である。
【図１６】本発明の実施形態のある態様を示す個々のトレリス線図を示す図である。
【図１７】本発明の実施形態のある態様を示す個々のトレリス線図を示す図である。
【図１８】本発明の実施形態のある態様を示す個々のトレリス線図を示す図である。
【図１９】本発明の実施形態のある態様を示す個々のトレリス線図を示す図である。
【図２０】本発明の実施形態の態様に従った様々なエンコード・ベクトルを示す表である。
【図２１】本発明の実施形態の態様に従った様々なエンコード・ベクトルを示す表である。
【図２２】本発明の実施形態の態様に従った様々なエンコード・ベクトルを示す表である。
【図２３】本発明の実施形態の態様に従った様々なエンコード・ベクトルを示す表である。
【図２４】本発明の実施形態のある態様に関する個々のトレリス線図を示す図である。
【図２５】本発明の例示的実施形態の態様に従ったエンコード・ベクトルを示す表である。
【図２６】本発明の例示的実施形態の態様に従ったエンコード・ベクトルを示す表である。
【図２７】本発明の例示的実施形態の態様に従ったエンコード・ベクトルを示す表である。
【図２８】本発明の例示的実施形態に従ったあるベクトルを示すトレリス線図である。
【図２９】本発明の例示的実施形態に従ったあるベクトルを示すトレリス線図である。
【図３０】本発明の例示的実施形態のエンコード・ベクトルを示す表である。
【図３１】本発明の実施形態に従ったベクトルに関するトレリス線図である。
【図３２】本発明の実施形態に従ったベクトルに関するトレリス線図である。
【図３３】本発明の実施形態に従ったエンコード・ベクトルを示す表である。
【図３４】本発明の特定の一実施形態に従った、ソース・データ・ベクトルおよびエンコード・ベクトル、ならびに制御ベクトルを示す概略表である。
【図３５】本発明の特定の一実施形態に従った、ソース・データ・ベクトルおよびエンコード・ベクトル、ならびに制御ベクトルを示す概略表である。
【図３６】本発明の特定の一実施形態に従った、ソース・データ・ベクトルおよびエンコード・ベクトル、ならびに制御ベクトルを示す概略表である。
【図３７】本発明の特定の一実施形態に従った、ソース・データ・ベクトルおよびエンコード・ベクトル、ならびに制御ベクトルを示す概略表である。
【図３８】本発明の特定の一実施形態に従った、ソース・データ・ベクトルおよびエンコード・ベクトル、ならびに制御ベクトルを示す概略表である。
【図３９】本発明の特定の一実施形態に従った、ソース・データ・ベクトルおよびエンコード・ベクトル、ならびに制御ベクトルを示す概略表である。
【図４０】本発明の特定の一実施形態に従った、ソース・データ・ベクトルおよびエンコード・ベクトル、ならびに制御ベクトルを示す概略表である。
【図４１】本発明の実施形態に従った、エンコード１０Ｂベクトルの生成を示す表である。
【図４２】本発明の実施形態に従った、エンコード１０Ｂベクトルの生成を示す表である。
【図４３】本発明の実施形態に従った、エンコード１０Ｂベクトルの生成を示す表である。
【図４４】本発明の実施形態に従った、エンコード１０Ｂベクトルの生成を示す表である。
【図４５】本発明の実施形態に従った、エンコード１０Ｂベクトルの生成を示す表である。
【図４６】本発明の実施形態に従った、エンコード１０Ｂベクトルの生成を示す表である。
【図４７】本発明の実施形態に従った、エンコード１０Ｂベクトルの生成を示す表である。
【図４８】本発明の実施形態に従った、エンコード１０Ｂベクトルの生成を示す表である。
【図４９】本発明の実施形態に従った、エンコード１０Ｂベクトルの生成を示す表である。
【図５０】本発明の実施形態に従った、エンコード１０Ｂベクトルの生成を示す表である。
【図５１】本発明の実施形態に従った、エンコード１０Ｂベクトルの生成を示す表である。
【図５２】本発明の実施形態に従った、エンコード１０Ｂベクトルの生成を示す表である。
【図５３】本発明の実施形態に従った、エンコード１０Ｂベクトルの生成を示す表である。
【図５４】本発明の実施形態に従った、エンコード１０Ｂベクトルの生成を示す表である。
【図５５】本発明の実施形態に従った、エンコード１０Ｂベクトルの生成を示す表である。
【図５６】本発明の実施形態に従った、エンコード１０Ｂベクトルの生成を示す表である。
【図５７】本発明の実施形態に従った、エンコード１０Ｂベクトルの生成を示す表である。
【図５８】本発明の実施形態に従った、エンコード１０Ｂベクトルの生成を示す表である。
【図５９】本発明の実施形態に従った、エンコード１０Ｂベクトルの生成を示す表である。
【図６０】本発明の実施形態に従った、エンコード１０Ｂベクトルの生成を示す表である。
【図６１】本発明の実施形態に従った、ベクトルの生成を示す表である。
【図６２】本発明の実施形態に従った、ベクトルの生成を示す表である。
【図６３】本発明の実施形態に従った、ベクトルの生成を示す表である。
【図６４】本発明の実施形態に従った、ベクトルの生成を示す表である。
【図６５】本発明の実施形態に従ったデコーディング・プロセスの態様を示す表である。
【図６６】本発明の実施形態に従ったデコーディング・プロセスの態様を示す表である。
【図６７】本発明の実施形態に従ったデコーディング・プロセスの態様を示す表である。
【図６８】本発明の実施形態に従ったデコーディング・プロセスの態様を示す表である。
【図６９】本発明の実施形態に従ったデコーディング・プロセスの態様を示す表である。
【図７０】本発明の実施形態に従ったデコーディング・プロセスの態様を示す表である。
【図７１】本発明の実施形態に従ったデコーディング・プロセスの態様を示す表である。
【図７２】本発明の実施形態に従ったデコーディング・プロセスの態様を示す表である。
【図７３】本発明の実施形態に従ったデコーディング・プロセスの態様を示す表である。
【図７４】本発明の実施形態に従ったデコーディング・プロセスの態様を示す表である。
【図７５】本発明の実施形態に従ったデコーディング・プロセスの態様を示す表である。
【図７６】本発明の態様に従ったエンコーディング回路の例示的一形態を示すブロック図である。
【図７７】本発明の例示的一実施形態に従った図７６のエンコーディング回路を示す論理ゲート図である。
【図７８】本発明の例示的一実施形態に従った図７６のエンコーディング回路を示す論理ゲート図である。
【図７９】本発明の例示的一実施形態に従った図７６のエンコーディング回路を示す論理ゲート図である。
【図８０】本発明の例示的実施形態に従ったデコーディング回路を示すブロック図である。
【図８１】本発明の実施形態に従った図８０のデコーディング回路を示す論理ゲート図である。
【図８２】本発明の実施形態に従った図８０のデコーディング回路を示す論理ゲート図である。
【図８３】本発明の実施形態に従った図８０のデコーディング回路を示す論理ゲート図である。
【図８４】本発明の１つまたは複数の実施形態が実施可能な例示的コンピュータ・システムを示すシステム図である。
【図１】
2008543223.tif 000036
【図２】
2008543223.tif 000037
【図３】
2008543223.tif 000038
【図４】
2008543223.tif 000039
【図５】
2008543223.tif 000040
【図６】
2008543223.tif 000041
【図７】
2008543223.tif 000042
【図８】
2008543223.tif 000043
【図９】
2008543223.tif 000044
【図１０】
2008543223.tif 000045
【図１１】
2008543223.tif 000046
【図１２】
2008543223.tif 000047
【図１３】
2008543223.tif 000048
【図１４】
2008543223.tif 000049
【図１５】
2008543223.tif 000050
【図１６】
2008543223.tif 000051
【図１７】
2008543223.tif 000052
【図１８】
2008543223.tif 000053
【図１９】
2008543223.tif 000054
【図２０】
2008543223.tif 000055
【図２１】
2008543223.tif 000056
【図２２】
2008543223.tif 000057
【図２３】
2008543223.tif 000058
【図２４】
2008543223.tif 000059
【図２５】
2008543223.tif 000060
【図２６】
2008543223.tif 000061
【図２７】
2008543223.tif 000062
【図２８】
2008543223.tif 000063
【図２９】
2008543223.tif 000064
【図３０】
2008543223.tif 000065
【図３１】
2008543223.tif 000066
【図３２】
2008543223.tif 000067
【図３３】
2008543223.tif 000068
【図３４】
2008543223.tif 000069
【図３５】
2008543223.tif 000070
【図３６】
2008543223.tif 000071
【図３７】
2008543223.tif 000072
【図３８】
2008543223.tif 000073
【図３９】
2008543223.tif 000074
【図４０】
2008543223.tif 000075
【図４１】
2008543223.tif 000076
【図４２】
2008543223.tif 000077
【図４３】
2008543223.tif 000078
【図４４】
2008543223.tif 000079
【図４５】
2008543223.tif 000080
【図４６】
2008543223.tif 000081
【図４７】
2008543223.tif 000082
【図４８】
2008543223.tif 000083
【図４９】
2008543223.tif 000084
【図５０】
2008543223.tif 000085
【図５１】
2008543223.tif 000086
【図５２】
2008543223.tif 000087
【図５３】
2008543223.tif 000088
【図５４】
2008543223.tif 000089
【図５５】
2008543223.tif 000090
【図５６】
2008543223.tif 000091
【図５７】
2008543223.tif 000092
【図５８】
2008543223.tif 000093
【図５９】
2008543223.tif 000094
【図６０】
2008543223.tif 000095
【図６１】
2008543223.tif 000096
【図６２】
2008543223.tif 000097
【図６３】
2008543223.tif 000098
【図６４】
2008543223.tif 000099
【図６５】
2008543223.tif 000100
【図６６】
2008543223.tif 000101
【図６７】
2008543223.tif 000102
【図６８】
2008543223.tif 000103
【図６９】
2008543223.tif 000104
【図７０】
2008543223.tif 000105
【図７１】
2008543223.tif 000106
【図７２】
2008543223.tif 000107
【図７３】
2008543223.tif 000108
【図７４】
2008543223.tif 000109
【図７５】
2008543223.tif 000110
【図７６】
2008543223.tif 000111
【図７７】
2008543223.tif 000112
【図７８】
2008543223.tif 000113
【図７９】
2008543223.tif 000114
【図８０】
2008543223.tif 000115
【図８１】
2008543223.tif 000116
【図８２】
2008543223.tif 000117
【図８３】
2008543223.tif 000118
【図８４】
2008543223.tif 000119
2008543223.tif 000120
2008543223.tif 000121
2008543223.tif 000122
2008543223.tif 000123
2008543223.tif 000124
2008543223.tif 000125
2008543223.tif 000126
2008543223.tif 000127
2008543223.tif 000128
2008543223.tif 000129
2008543223.tif 000130
2008543223.tif 000131
2008543223.tif 000132
2008543223.tif 000133
2008543223.tif 000134
2008543223.tif 000135
2008543223.tif 000136
2008543223.tif 000137
2008543223.tif 000138
2008543223.tif 000139
2008543223.tif 000140
2008543223.tif 000141
2008543223.tif 000142
2008543223.tif 000143
2008543223.tif 000144
2008543223.tif 000145
2008543223.tif 000146
2008543223.tif 000147
2008543223.tif 000148
2008543223.tif 000149
2008543223.tif 000150
2008543223.tif 000151
2008543223.tif 000152
2008543223.tif 000153
2008543223.tif 000154
2008543223.tif 000155
2008543223.tif 000156
2008543223.tif 000157
2008543223.tif 000158
2008543223.tif 000159
2008543223.tif 000160
2008543223.tif 000161
2008543223.tif 000162
2008543223.tif 000163
2008543223.tif 000164
2008543223.tif 000165
2008543223.tif 000166
2008543223.tif 000167
2008543223.tif 000168
2008543223.tif 000169
2008543223.tif 000170
【国際調査報告】
2008543223.tif 000171
2008543223.tif 000172