JP3581819B2 - 符号化方法 - Google Patents
符号化方法 Download PDFInfo
- Publication number
- JP3581819B2 JP3581819B2 JP2000160158A JP2000160158A JP3581819B2 JP 3581819 B2 JP3581819 B2 JP 3581819B2 JP 2000160158 A JP2000160158 A JP 2000160158A JP 2000160158 A JP2000160158 A JP 2000160158A JP 3581819 B2 JP3581819 B2 JP 3581819B2
- Authority
- JP
- Japan
- Prior art keywords
- word
- disparity
- bit
- block
- class
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/02—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/38—Synchronous or start-stop systems, e.g. for Baudot code
- H04L25/40—Transmitting circuits; Receiving circuits
- H04L25/49—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
- H04L25/4906—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using binary codes
- H04L25/4908—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using binary codes using mBnB codes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Dc Digital Transmission (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
【発明の属する技術分野】
本発明はデジタルデータの符号化に関し、特に、伝送あるいはストレージチャネルへシリアルバイナリデータを配置するための準備段階におけるその種のデータの符号化に関する。さらに詳細に述べれば、本発明は符号化されたデータの周波数パワースペクトルを調節する方法に関する。
【0002】
【従来の技術】
ブロック符号は、データの光学的ストレージ及び伝送に広く用いられている。この種の符号の利用に従って、バイナリビットよりなる入力ストリームが、固定長の入力ワードに分割される。各入力ワードは、入力ワードの固定長よりも長い第二の固定長を有する、符号化済み出力ワードにマッピングされる。符号化済み出力ワードはコードワードと呼称される。
【0003】
ブロック伝送符号を用いることにより、いくつかの利点が得られる。これらの利点は、一般に、エラー検出及び回復された信号の品質に関わる。一つの特別な利点は、符号化済み信号のdc成分、すなわち、ゼロ周波数近傍におけるパワースペクトル成分が、適切な符号を用いることによって抑圧されうることである。これは、例えば光通信システムなどにおいて望ましいことである。なぜなら、光ファイバレシーバは、しばしばac結合された入力段を有しているからである。結合が不充分な比較的低周波数領域内の情報内容が抑圧されると、回復された信号の処理が簡潔化され、その信号の品質が改善される。dc抑圧の別の利点は、信号データからのクロックタイミングの回復の問題が簡潔化されることである。
【0004】
実際の2レベル信号は、1と0のシーケンスあるいは+1と−1のシーケンスとして、もしくは他の等価な表現において伝送される。以下、この種の信号全てをバイナリ信号と呼称し、1と0とよりなる信号をこの種の全ての信号を代表するものとして採用することにするが、これは何ら限定を与えるものではない。
【0005】
種々のブロック伝送符号が当業者には知られている。例えば、公知のマンチェスター(Manchester)符号は、各々の入力ビットを二つの出力ビットにマッピングする。他の公知の符号では、5ビット入力ワードを6ビットコードワードにマッピングする。この種の符号は、5B/6B符号と呼称される。さらに別の符号は8B/10B符号である。8B/10B符号の一例は、1984年12月4日付けのP.A.Franaszekらによる米国特許第4,486,739号に記載されている。Franaszekらによる符号化方式においては、8B/10Bコーダが5B/6Bコーダと3B/4Bコーダに分割されている。
【0006】
【発明が解決しようとする課題】
dc強度を抑圧する目的で符号化された信号をスペクトル的に調節する目的では、比較的高い冗長性を利用すること、すなわち、コードワードの入力ワードに対する比較的高い長さ比を利用することが一般的には有利である。この理由の一つは、スペクトル的な調節が、少なくとも部分的には、各コードワードにおける1の数が0の数に正確にあるいはほぼ一致する場合に実現されるからである。コードワード中で0に対して1が多すぎる、あるいは1に対して0が多すぎることは、ディスパリティと呼称される。よって、ディスパリティを減少させることがパワースペクトルを改善することになる。しかしながら、与えられた長さを有する全ワードのうち、ゼロあるいは非常に小さいディスパリティを有するものはわずかである。よって、低ディスパリティへの要求は利用可能なコードワードの個数を低減させ、よって、コードワード当たりに伝送されうる情報量を低減する。このことを補償するためには、冗長性を増大させる、すなわち、コードワードの長さを増大させることが必要である。
【0007】
他方、コードワードの冗長性を増大させることは、通信チャネルを介して送出される情報のグロスレートを低減する。それゆえ、冗長性とディスパリティとの間にはトレードオフが存在する。双方を同時に最小化することは不可能である。よって、適切な冗長性と適切なディスパリティとを組み合わせる符号化方式を見出す必要がある。
【0008】
【課題を解決するための手段】
本発明に係る符号は、16/18B低ディスパリティ符号である。16ビット入力ワードは2バイトに分割、すなわち、2つの8ビットワードに分割され、各バイトが9ビットワードにマッピングされる。マッピング下での各入力バイトの写像は、少なくとも一部分、そのディスパリティに依存する。
【0009】
ある場合には、結果として得られる写像は中間写像ワードであって、それが出力コードワードを得るために反転される。ワードが反転されるとは、その1の各々が0に変換され、その0の各々が1に変換されることである。写像を反転するか否かの決定は、少なくとも一部分、出力の移動デジタル総和(running digital sum;RDS)に依存する。移動デジタル総和とは、データストリームの開始時(あるいは、指定された開始点)からの当該デジタルストリームにおける全ての1の総和である。
【0010】
全ての可能な入力ワードは、そのディスパリティによって、複数個の別個のカテゴリーにグループ分けされる。入力ワードのマッピングに係るルールは、各カテゴリー毎に異なる。
【0011】
【発明の実施の形態】
8ビットワードに関して可能なディスパリティは、0、±2、±4、±6、及び±8のみである。ディスパリティ0を有する8ビットワードは70個存在する。ディスパリティ2を有するものは56個であり、ディスパリティ−2の場合も同様である。ディスパリティ4及び−4のものは28個である。ディスパリティ6及び−6のものは8個であり、ディスパリティ8及び−8のものは1つずつのみである。
【0012】
16ビット入力ワードの各々は、二つの8ビット入力ワードに分割される。ディスパリティ0の8ビット入力ワードは、クラスAに割り当てられる。ディスパリティ2あるいは4を有する入力はクラスBに割り当てられる。クラスBは、ディスパリティ2のものを含むクラスB1と、ディスパリティ4のものを含むクラスB0にさらに分割される。ディスパリティ−2を有する入力ワードはクラスCに割り当てられる。他の全ての8ビット入力ワードはクラスDに割り当てられる。
【0013】
図1において、列10は、8ビット入力ワードの種々の可能なディスパリティを示している。列15は、対応するクラス割り当てを示している。列20は、各ディスパリティを有する入力ワードの個数を示している。
【0014】
図1の列25は、それぞれディスパリティ−3、−1、1、及び3を有する可能な9ビットワードの個数を示している。対応する個数は、それぞれ、84、126、126、及び84である。
【0015】
図1には、さらに、クラスA、B、及びCの入力ワードが9ビット写像ワードにマッピングされる際の最初の処理段階も示されている。クラスAワードは、0ビットを付加することによって、ディスパリティ−1を有するワードにマッピングされる。クラスBワードは、ディスパリティ3の写像ワードに全てマッピングされる。このことは、入力ワードがクラスB1に属する場合には1ビットを付加し、入力ワードがクラスB0に属する場合には0ビットを付加することによって実現される。クラスCワードは、1ビットを付加することによってディスパリティ−1の写像ワードにマッピングされる。
【0016】
図2は、本発明に係る符号化方式を実装するエンコーダの模式的なブロック図である。この図においては、対応する8ビット入力ワードは
x07 x06 x05 x04 x03 x02 x01 x00
及び
x17 x16 x15 x14 x13 x12 x11 x10
で表現されている。対応する出力ワードは、
y07 y06 y05 y04 y03 y02 y01 y00 b0
及び
y17 y16 y15 y14 y13 y12 y11 y10 b1
で表現されている。表記を簡潔にする目的で、以下の定義を採用する:
【数1】
【0017】
ディスパリティの別名は“ブロックデジタル総和(BDS)”である。数学的には、BDSの定義は
【数2】
によって与えられる。
【0018】
図2のブロック30は、入力ワードx0に関するブロックデジタル総和BDS0及び入力ワードx1に関するBDS1を計算するディスパリティチェッカーである。これらの値は、以下に記述されるアルゴリズムなどを表現しているブロック35に対する入力として供給される。
【0019】
図2には、”RDS”というラベルが付されたループ40も示されている。このループは、アルゴリズムにおける移動デジタル総和(RDS)のフィードバックを表現している。フィードバックされる値は、その直前の値に現時点の出力のBDSを追加したものに等しい。
【0020】
図3及び図4には、図2のブロック35に対応するアルゴリズム例をより拡大して表示したものが示されている。図3及び図4に示された流れ図は単に例示目的であり、等価な結果を与える他のアルゴリズムも、本発明の範疇及びその精神内に含まれることが企図されている。特に、順次発生するものとして記述されている種々の操作は、容易に並列実行されうる。
【0021】
以下、図3及び図4に示された手続きが記述される。この手続きは、クラスA入力ワードの各々をディスパリティ−1あるいは1のコードワードにマッピングし、クラスBの入力ワードの各々をディスパリティ3あるいは−3のコードワードにマッピングし、及び、クラスCの入力ワードの各々を−1あるいは1のディスパリティを有するコードワードにマッピングする。この手続きは、さらに、クラスDの入力ワードの各々をディスパリティ1のコードワードにマッピングする。
【0022】
ブロック45、50、及び55に示されているように、ある種の特別な場合が識別され、特別の処理のために分離される。このような場合よりなるグループの一つにおいては、RDSの現在値は±2であり、x0及びx1の双方がクラスDに属している。この種の場合が図4のブロック140で参照されている。このような場合よりなるグループの別のものは、RDSの現在値が−2であって、x0及びx1がクラスAに属している場合である。このような場合は、図4のブロック145で参照されている。他の全ての場合に関しては、ブロック60−135の操作がまずx0次にx1に関して実行される。シンボルxiは、入力ワードx0及びx1のうちの現時点のものを示す。
【0023】
ブロック60、65、及び70に示されているように、xiのクラスに依存して個別の処理が存在する。クラスがAである場合には、プロセスはブロック75へ進み、yiがxiと等置され、biが0にセットされる。その後、プロセスはブロック80へ進む。
【0024】
クラスがBの場合には、以下に記述されるようにブロック85−120の操作が実行され、その後処理はブロック80へ進む。
【0025】
クラスがCの場合には、プロセスはブロック125へ進み、yiがxiと等置され、biが1にセットされる。その後、現時点でのRDSが非負である場合には、プロセスはブロック80へ進む。現時点でのRDSが負である場合には、ブロック130に示されているように、現時点でのwi(すなわち、現時点でのyibi)が、全ての1を0に変更し、かつ、全ての0を1に変更することによって、その2の補数に変更される。(その2の補数によって置換されるワードは、しばしば“反転された”と言われる。)その後、プロセスはブロック80へ進む。
【0026】
クラスがDの場合には、プロセスはブロック135へ進み、biが1にセットされ、特別のマッピングがxiに適用される。この特別のマッピングは、図5及び図6を参照して以下に記述される。ブロック135の後、プロセスはブロック80へ戻る。
【0027】
入力ワードがクラスBに属する場合に戻ると、ブロック85において示されているように、入力ワードがクラスB0とクラスB1のいずれに属しているのかの決定がまずなされる。ブロック90及び95に示されているように、yiはいずれの場合においてもxiに等置され、クラスB0の場合にはbiが0に、クラスB1の場合にはbiが1に、それぞれセットされる。その後、ブロック100及び105に示されているように、RDSの現在値が正、0、負のいずれであるかに係る決定がなされる。
【0028】
RDSの現在値が正である場合には、現在のwiは、ブロック120に示されているように、その2の補数に変更され、この手続きはブロック80に進む。RDSの現在値が負である場合には、この手続きは現在のwiを変更せずにブロック80へ進む。RDSの現在値が0の場合には、ブロック110に示されているようにさらなる決定がなされる。現在の入力ワードがx1である場合には、現在のwi、すなわちw1、がブロック120に従って変更され、その後手続きはブロック80へ進む。現在の入力ワードがx0である場合には、現在のwi、すなわちw0、が、x1のBDSが少なくとも4である場合にのみ、ブロック120に従って変更される。他の場合には、手続きは、ブロック120へ行くことなくブロック80に進む。
【0029】
ブロック80では、RDSが現時点の出力ワードに従って更新される。
【0030】
以下、特別の場合の処理が図4を参照して議論される。
【0031】
前述されているように、入力ワードx0、x1よりなる対が、RDSの現在値が±2であり、かつ、x0とx1の双方がクラスDに属している場合に、ブロック140で参照される。
【0032】
ブロック140では、RDSの現在値が−2に等しいか否かの決定がなされる。RDSの現在値が−2に等しい場合には、ブロック150に示されているように、y0がx0にセットされ、b0が0にセットされ、y1がx1に、そしてb1が0にそれぞれセットされる。その後、ブロック155に示されているように、x0のBDS及びx1のBDSが双方とも正であるか、あるいは双方とも負であるかの決定がなされる。少なくとも一方のBDS値がゼロである場合、あるいはBDS値が互いに逆符号を有する場合には、手続きはブロック160へ進み、RDS値が現時点のw0及びw1の値に従って更新される。それぞれのBDS値が共に正あるいは共に負である場合には、ブロック165に示されているように、x0のBDSがx1のBDSより小さいか否かというさらなる決定がなされる。x0のBDSがx1のBDSより小さい場合には、ブロック170に示されているように、現在のw0がその2の補数によって置換される。x0のBDSがx1のBDSより小さくない場合には、ブロック175に示されているように、現在のw1がその2の補数によって置換される。その後、手続きはブロック160へ進む。
【0033】
ブロック140において一対の入力ワードx0、x1が参照され、かつ、RDSの現在値が2である場合には、手続きはブロック180に進む。ブロック180においては、y0がx0にセットされ、b0が0にセットされ、y1がx1に、そしてb1が0にそれぞれセットされる。その後、ブロック185に示されているように、x0のBDSとx1のBDSとの和が4であるか否かの決定がなされる。これらのBDSの和が4である場合には、ブロック190に示されているように、w0及びw1の双方がぞれぞれ対応する2の補数に変更され、手続きはブロック160へ進む。BDSの和が4ではない場合には、さらに、ブロック195に示されているように、x0のBDSとx1のBDSの双方が共に正であるか、あるいは共に負であるかに係る決定がなされる。少なくとも一方のBDSが0であるか、あるいは、BDS値が相異なった符号を有する場合には、手続きはブロック160に進む。それぞれのBDS値が共に正であるか、あるいは共に負である場合には、さらに、ブロック200に示されているように、x0のBDSがx1のBDSより大きいか否かに係る決定がなされる。x0のBDSがx1のBDSより大きくない場合には、ブロック210に示されているように、現在のw1がその2の補数によって置換される。その後、手続きはブロック160へ進む。
【0034】
前述されているように、現在のRDS値が−2であって、かつ一対の入力ワードx0及びx1の双方がクラスAに属する場合には、x0、x1がブロック145で参照される。ブロック145では、y0がx0にセットされ、b0が1にセットされ、y1がx1に、そしてb1が1にそれぞれセットされる。その後、手続きはブロック160へ進む。
【0035】
前述されているように、現在の入力ワードがクラスDに属していて図4のブロック140で参照されない場合には、図3のブロック135において特別のマッピングが起動される。この特別のマッピングの目的は、ディスパリティ±8、±6、あるいは4を有する46バイトをディスパリティ0の46バイトにマッピングすることである。ディスパリティ0のものは70バイトあるため、残りの24個は特別の信号に用いられる。この種のマッピングを実現するための利用可能な方法が複数個存在することは当業者には明らかである。以下、例示目的のために、図5及び図6を参照して、その種の一例が記述される。他のマッピング方法も本発明の精神及び範疇に含まれることが企図されている。
【0036】
ブロック215に示されているように、入力ワードに含まれる数字“1”の個数が数えられる。この個数が0、すなわち、入力ワードの全ビットが0である場合には、この入力ワードはここでのマッピングによって10100011にマッピングされる(ブロック220)。この個数が8、すなわち、入力ワードの全ビットが1である場合には、01011100にマッピングされる(ブロック225)。この個数が7、すなわち、入力ワードが単一の0のみを有する場合には、処理はブロック230へ進む。入力ワードが単一の1のみを有する場合には、処理はブロック235へ進む。
【0037】
“1”が2つあり、双方共入力ワードの左側から4ビット分の中に入っている場合には、ブロック240に示されているように、写像は、入力ワードの右側の4ビット分の位置にある数字を0000から1010に変更することによって得られる。入力ワードに“1”が2つある他の全ての場合に関しては、手続きはブロック245に進む。
【0038】
ブロック230では、XXXで示される3ビットバイナリ表現が、数字“0”の位置jに関して導出される。位置jは、最も右側のビットから最も左側のビットに向かって0から7のように数えられる。jが1、2、あるいは4である場合には、写像は010XXX11となる(ブロック250)。jが3、5、あるいは6の場合には、写像は101XXX00となる(ブロック255)。jが0の場合には、写像は10101001となる(ブロック260)。jが1の場合には、写像は10110001となる(ブロック265)。
【0039】
ブロック235では、XXXで示される3ビットバイナリ表現が、数字“1”の位置jに関して導出される。jが1、2、あるいは4である場合には、写像は101XXX10となる(ブロック270)。jが3、5、あるいは6の場合には、写像は010XXX10となる(ブロック275)。jが0の場合には、写像は01001101となる(ブロック280)。jが1の場合には、写像は00101101となる(ブロック285)。
【0040】
ブロック245では、2つの数字“1”のうちの第二のものの位置kが求められる。双方の“1”が最初の5つの位置に含まれる場合には、写像はブロック290に従って、入力ワードから求められる。図示されているように、値“1”は位置k+1及びk+2に割り当てられ、他の全ての位置の数字は入力ワードと同一のままとなる。
【0041】
ブロック295に示されているように、2つの数字“1”のうちの第一のものの位置mも求められる。ブロック240での条件が適用されないため、mは3より大きいことはない。kが6である場合には、ブロック300に示されているように、写像は、入力ワードから、値“1”を最も左の位置及びm+1番目の位置に割り当て、その他を全ての位置を入力ワードから変更せずにおくことによって求められる。kが7である場合には、ブロック305に示されているように、写像は、値“1”をm+1及びm+2の位置に割り当て、その他を全ての位置を入力ワードから変更せずにおくことによって求められる。
【0042】
本発明に係る符号化手続きの一つの利点は、それが、簡潔かつ計算効率の高い復号化手続きを有していることである。この復号化手続きは、図7及び図8を参照して記述される。図7及び図8に記述されている手続きは例示目的であって、等価な結果を実現する他の手続きも本発明の範疇及び精神に従うことが企図されている。
【0043】
図7には、特別の場合を識別して配置するフィルタ310が示されている。フィルタ310は、後に図8に関連して記述される。
【0044】
入力コードワードyi(i=0,1)がフィルタ310によって処理されない場合には、ブロック315−355よりなる手続きが起動される。図示されているように、この手続きはy1に関する参照なしにy0に対して、及びy0に関する参照なしにy1に対して、それぞれ実行される。入力語yiの各々に対して、回復される出力ワード
【数3】
は、そのBDSであるBDSi及びbiを含むそれぞれのyiのみから決定される。
【0045】
ブロック315では、BDSi+2bi−1という表式が評価される。この表式の値が−3に等しい場合には、回復されるワードは、入力コードワードの2の補数に等しくセットされる。他の場合には、手続きはブロック325へ進む。
【0046】
ブロック325及び330においては、現在のBDSが0であるか否か(ブロック325)、及び現在のbiが1に等しいか否か(ブロック330)、が決定される。双方の条件が満たされる場合には、回復されるワードはブロック335に従って決定される。ブロック335では、図5及び図6に示された特別のマッピングの逆が適用される。代表的な場合には、逆方向のマッピングは順方向のマッピングから容易に導出されうるものであり、ここでは逆方向マッピングに関する詳細な記述はなされない。
【0047】
ブロック325の条件あるいはブロック330の条件が満たされない場合には、手続きはブロック340へ進む。ブロック340及び345においては、現在のBDSが2に等しいか否か(ブロック340)、及び現在のbiが0に等しいか否か(ブロック345)の決定がなされる。双方の条件が満たされる場合には、ブロック350に示されているように、回復されるワードは入力コードワードの2の補数に等しくセットされる。他の場合には、回復されるワードは、ブロック355に示されているように、入力コードワードに等しくセットされる。
【0048】
以下、図8を参照して、特別な場合のフィルタ310が記述される。まず、BDS0が値0を有するか否か(ブロック360)、BDS1が値0を有するか否か(ブロック365)、b0及びb1が等しいか否か(ブロック370)、及びRDSの現在値が非零であるか否か(ブロック375)、の決定がなされる。これらの条件の全てが満たされる場合には、ブロック380に示されているように、
回復されるワード
【数4】
はy0に等置され、回復されるワード
【数5】
はy1に等置される。他の場合には、手続きはブロック385へ進む。
【0049】
ブロック385及び390においては、BDS0の絶対値が少なくとも4であるか否か(ブロック385)、及びBDS1の絶対値が少なくとも4であるか否か(ブロック390)の決定がなされる。双方の条件が満たされる場合には、手続きはブロック395へ進む。他の場合には、手続きはこの特別の場合のフィルタを終了し、図7のブロック315へ進む(それぞれのiの値に関して(i=0,1))。
【0050】
ブロック395においては、b0の値が1に等しいか否かの決定がなされる。b0の値が1に等しい場合には、回復されるワード
【数4】
は入力コードワードy0の2の補数にセットされる。他の場合には、回復されるワード
【数4】
は入力コードワードy0に等置される。その後、手続きはブロック410へ戻る。
【0051】
ブロック410においては、b1の値が1に等しいか否かの決定がなされる。b1の値が1に等しい場合には、回復されるワード
【数5】
は入力コードワードy1の2の補数にセットされる。他の場合には、回復されるワード
【数5】
は入力コードワードy1に等置される。
【0052】
図2から図8に関連して前述された手続きの全ては、ソフトウエア、ハードウエアあるいはファームウエアにおいて適切に実装されたプログラムの制御下で、汎用デジタルコンピュータあるいは特定目的デジタルプロセッサによって容易に実行されうる。
【0053】
本発明の別の実施例が、図9から図15を参照して以下に記述される。図9には、列10’に示されているディスパリティ±8、±6、±4、±2、あるいは0の入力ワードが、それぞれのディスパリティに従って、列15’に示されているクラスA、B0、B1、C、D0、D1、あるいはEに割り当てられる方式、が示されている。クラスB0及びB1は、双方で、クラスBを構成している。クラスD0及びD1は、双方で、クラスDを構成している。それぞれのクラスに属する可能なワード数は列20’に示されている。0あるいは1をビットとして付加することによる、クラスA、B、C、及びDに属する入力ワードの9ビット写像ワードへのマッピングは、図中では矢印によって示されている。列25’には、結果として得られるクラスの各々における可能な9ビットワードの個数が示されており、列10’’には、これらのクラスのディスパリティが示されている。
【0054】
以下、図9に従ったマッピング手続きが図10から図14を参照して記述される。この手続きは、クラスA入力ワードの各々をディスパリティ−1あるいは1のコードワードに、クラスB入力ワードの各々をディスパリティ3あるいは−3のコードワードに、及び、クラスC入力ワードの各々をディスパリティ−1あるいは1のコードワードに、それぞれマッピングする。また、この手続きは、クラスD入力ワードの各々(すなわち、ディスパリティ−6あるいは−4のコードワード)をディスパリティ−5あるいは+5のコードワードにマッピングする。この手続きは、さらに、クラスE入力ワードの各々を、入力ワードに0をビットとして付加することによって中間写像ワードにマッピングし、そのことによって入力ワードのディスパリティよりも1だけ小さいディスパリティを有するワードを実現する。ある場合には、出力コードワードはこの中間写像ワードと同一である。しかしながら、別の場合には、出力コードワードは、この中間写像ワードを反転することによって求められる。以下に説明されているように、この種の反転は、例えば、8ビット入力ワードのディスパリティがRDSの現在値と同一の符号を有する場合になされる。
【0055】
図10のブロック425及び426に示されているように、x0及びx1の双方がクラスAに属している場合には、特別のマッピング手続きが存在する。ブロック430及び431に示されているように、x0及びx1の双方がクラスEに属している場合には、特別のマッピング手続きが存在する。いずれの特別の手続きも適用されない場合には、ブロック435−445に示された段階が入力ワードx0及び入力ワードx1に関して順次実行される。ブロック435−436に示されているように、クラスA、B、及びCのいずれかに属する入力ワードは、図3を参照して既に記述された手続きに従ってマッピングされる。ブロック440−441に示されているように、クラスDに属する入力ワードは、以下に図13に関連して記述されている手続きに従ってマッピングされる。ブロック445に示されているように、この段階までに処理されていない入力ワードはクラスEに属することになる。この種の入力ワードは、以下に図14に関連して記述されている手続きに従ってマッピングされる。
【0056】
図11は、x0及びx1の双方がクラスAに属している場合の特別のマッピング手続きを記述している。ブロック450に示されているように、y0はx0にセットされ、y1はx1にセットされる。ブロック455−457に示されているように、現在のRDSが負の場合にはb0及びb1は1にセットされ、それ以外の場合は共に0にセットされる。その後、ブロック460に示されているように、RDSが更新される。
【0057】
図12は、x0及びx1の双方がクラスEに属している場合の特別のマッピング手続きを記述している。図12に示された手続きは、入力ワードx0及び入力ワードx1に関して順次実行される。ブロック465に示されているように、現時点の出力ワードyiは現時点の入力ワードxiに等置され、現時点のbiは0にセットされる。ブロック470に示されているように、現在のRDS及び現在の入力ワードに係るBDSが双方とも正であるか双方とも負であるかに係るテストがなされる。これらのうちのいずれかが真である場合には、ブロック475に示されているように、現在のwiがその2の補数によって置換される。他の場合にはブロック475はスキップされる。その後、プロセスはブロック480へ進み、RDSが更新される。
【0058】
図13は、現在の入力ワードがクラスDに属する場合に実行されるマッピング手続きを記述している。ブロック485−495に示されているように、現在の出力ワードは現在の入力ワードに等置される。入力ワードがクラスD0に属する場合には、現在のbiは0にセットされる。現在の入力ワードがクラスD1に属する場合には、現在のbiは1にセットされる。ブロック500及び520に示されているように、現在のwiは、RDSの現在値が負である場合には、その2の補数によって置換される。ブロック505−520に示されているように、RDSの現在値が0であり、かつ、x1が−4あるいはそれより小さいBDSを有する場合には、w0がその2の補数によって置換される。その後、プロセスはブロック525へ進み、RDSが更新される。
【0059】
図14は、現在の入力ワードがクラスEに属する場合に実行されるマッピング手続きを記述している。ブロック530に示されているように、このクラスは、2進値“1”を有する数字を0個、7個、あるいは8個有している。ブロック535に示されているように、マッピングは、図5に関連して記述された手続きに従って実行される。ブロック540に示されているように、現在のbiが1にセットされる。その後、ブロック545に示されているように、RDSが更新される。その後、ブロック550に示されているように、制御は図10に戻る。
【0060】
復号化は、例えば図15に従って実行される。ブロック555は、ある種の特別な場合を識別するフィルタである。ブロック560に示されているように、ブロック555内で、これら特別な場合の一つでは、入力コードワードy0及びy1の双方がディスパリティ0を有すること、及び、それぞれに付加されたビットb0及びb1が等しいことが必要とされる。この場合には、ブロック570に示されているように、
【数4】
が入力コードワードy0に等置され、
【数5】
が入力コードワードy1のに等置される。ブロック565に示されているように、フィルタブロック555内では、第二の特別の場合が、入力コードワードy0及びy1の双方が絶対値で6以上のディスパリティを有していることを必要とする。この場合には、ブロック575、580、及び585に示されているように、b0が0に等しい場合には
【数4】
がy0に等置され、b0が1に等しい場合には
【数4】
がy0の2の補数に等置される。さらに、ブロック590、595、及び600に示されているように、b1が0に等しい場合には
【数5】
がy1に等置され、b1が1に等しい場合には
【数5】
がy1の2の補数に等置される。
【0061】
フィルタブロック555の特別の場合が適用されない場合には、第一入力コードワードy0の復号化は第二入力コードワードy1に依存せず、かつ、y1の復号化はy0に依存しない。従って、ブロック605−635の手続きが、順次、入力コードワードy0及びy1に対して、すなわち、入力コードワードyi(i=0,1)に対して実行される。
【0062】
ブロック605では、入力コードワードのディスパリティに、対応する付加ビットbiの2倍を加え、さらに、1を減じたものが−3あるいは+5に等しいか否かに係るテストが実行される。この条件が満たされる場合には、
【数3】
は、ブロック610に示されているように、yiの2の補数に等置される。他の場合には、手続きはブロック615へ進む。ブロック615では、入力コードワードがディスパリティ0を有しているか否か、及び、対応する付加ビットbiが1であるか否かのテストが実行される。これら双方の条件が満たされる場合には、入力コードワードは、ブロック620に示されているように、図5に示された特別のマッピングを反転することによって復号化される。他の場合には、手続きはブロック625へ進む。ブロック625では、入力コードワードがディスパリティ2を有しているか否か、及び、対応する付加ビットbiが0であるか否かのテストが実行される。双方の条件が満たされる場合には、
【数3】
は、ブロック630に示されているように、yiの2の補数に等置される。
【0063】
他の全ての場合には、
【数3】
は、ブロック635に示されているように、yiに等置される。
【0064】
以上の説明は、本発明の一実施例に関するもので,この技術分野の当業者であれば、本発明の種々の変形例が考え得るが、それらはいずれも本発明の技術的範囲に包含される。
【0065】
【発明の効果】
以上述べたごとく、本発明によれば、適切な冗長性と適切なディスパリティとを組み合わせた符号化方法が提供される。
【図面の簡単な説明】
【図1】可能な8ビット入力ワードの、そのディスパリティによる分類例、及び、これら入力ワードのあるクラスの9ビットコードワードへのマッピングを示す図。
【図2】本発明に係る符号化方法の概念レベルでの実施例を示す高次の流れ図。
【図3】本発明に従った符号化方法の一実施例の詳細を示す流れ図。
【図4】本発明に従った符号化方法の一実施例の詳細を示す流れ図。
【図5】図3に示された“特別マッピング”段階の詳細を示す流れ図。
【図6】図3に示された“特別マッピング”段階の詳細を示す流れ図。
【図7】図3及び図4に従って符号化されたワードをデコードする手続き例を示す詳細な流れ図。
【図8】図7の“特別ケースフィルタ”を流れ図の形で展開した図。
【図9】図1に示された分類及びマッピングとは異なった、入力ワードの分類例及び入力ワードのクラスのマッピングを示す図。
【図10】図9の実施例に従った本発明に係る符号化方法を示す流れ図の一部。図10に示されている部分は入力ワード、さらにある場合には入力ワード対の分類、及び、入力ワードあるいは入力ワード対のさらなる処理目的での転送に係るものである。
【図11】図10に示された流れ図からの続きを表わす流れ図。ある種のクラスを占めるすなわちある特別の場合に対応する入力ワードを処理するためのプロセスを記述している。
【図12】図10に示された流れ図からの続きを表わす流れ図。ある種のクラスを占めるすなわちある特別の場合に対応する入力ワードを処理するためのプロセスを記述している。
【図13】図10に示された流れ図からの続きを表わす流れ図。ある種のクラスを占めるすなわちある特別の場合に対応する入力ワードを処理するためのプロセスを記述している。
【図14】図10に示された流れ図からの続きを表わす流れ図。ある種のクラスを占めるすなわちある特別の場合に対応する入力ワードを処理するためのプロセスを記述している。
【図15】図10から図14に示された手続きに従って符号化されたワードを復号化する手続きの例を示す流れ図。
【符号の説明】
10、10’ 8ビットワードのディスパリティを示す列
10’’ 9ビットワードのディスパリティを示す列
15、15’ それぞれが属する組を示す列
20、20’ それぞれのディスパリティを有するワードの数
25、25’ 9ビットワードの個数
30 ディスパリティチェッカー
35 アルゴリズム
40 ループ
Claims (15)
- 符号化方法であって、
(a) データを表現する複数個の16ビットワードを受けとるステップと、
(b)前記複数個の16ビットワードの各々を第一の8ビット入力ワード及び第二の8ビット入力ワードに分割するステップと、
(c)前記各8ビット入力ワードのディスパリティを計算するステップと、
(d)前記8ビット入力ワードをそれぞれ対応する第一の9ビットコードワード及び第二の9ビットコードワードにマッピングするステップと、
(e)前記9ビットコードワードの各ビットからなる移動デジタル総和(RDS)を保持するステップとを含み、
(I)前記各8ビット入力ワードのマッピングが、当該8ビット入力ワードのディスパリティの関数であり;
(II)前記8ビット入力ワードのうちの少なくともいくつかのものの各々のマッピングが、前記RDSの関数であり;及び、
(III)前記第一のあるいは第二の8ビット入力ワードのうちの少なくともいくつかのものの各々のマッピングが、対応する前記第二のあるいは第一の8ビット入力ワードの前記ディスパリティの関数であることを特徴とする符号化方法。 - 前記8ビット入力ワードのうちの少なくともいくつかのものの各々の前記コードワードへのマッピングが前記8ビットワードを中間写像ワードへマッピングするステップ、及び前記中間写像ワードの二進反転を条件つきで実行するステップ、
を有している請求項1に記載の符号化方法。 - 前記条件つき反転が、前記RDS値に関連した条件によるものである請求項2に記載の符号化方法。
- 前記条件つき反転が、前記RDSが非負である場合にのみ実行される請求項3に記載の符号化方法。
- 前記条件つき反転が、前記第二の8ビット入力ワードの前記ディスパリティに関連する条件によって、前記対応する第一の8ビット入力ワードの前記中間写像に対して実行される請求項2に記載の符号化方法。
- ディスパリティが−2、0、2、または4の8ビット入力ワードの各々の前記マッピングが、それら自体あるいはそれらの2の補数へのマッピングにビット0またはビット1を付加したものに等価である請求項1に記載の符号化方法。
- ディスパリティが0の各8ビット入力ワードがクラスAワードと呼称されて、ディスパリティが−1あるいは1のコードワードにマッピングされ、
ディスパリティが2あるいは4の各8ビット入力ワードがクラスBワードと呼称されて、ディスパリティが3あるいは−3のコードワードにマッピングされ、及び、
ディスパリティが−2の各8ビット入力ワードがクラスCワードと呼称されて、ディスパリティが−1あるいは1のコードワードにマッピングされるようになっている請求項1に記載の符号化方法。 - 前記クラスAの第一あるいは第二の入力ワードが、対応する第二あるいは第一の8ビット入力ワードがクラスAに属していて、かつ、前記RDSが負である場合にのみ、ディスパリティ1のコードワードにマッピングされる請求項7に記載の符号化方法。
- 前記クラスAの第一あるいは第二の入力ワードが、対応する第二あるいは第一の8ビット入力ワードがクラスAに属していて、かつ、前記RDSが−2である場合にのみ、ディスパリティ1のコードワードにマッピングされる請求項7に記載の符号化方法。
- 前記クラスBワードが、前記RDSが非負の場合にのみディスパリティ−3のコードワードにマッピングされる請求項7に記載の符号化方法。
- 前記RDSが0である場合には、前記第二の8ビット入力ワードである場合のみ、もしくは、第一の8ビット入力ワード及び対応する第二の8ビット入力ワードが少なくとも4以上のディスパリティを有している場合に、前記クラスBワードがディスパリティ−3のコードワードにマッピングされる請求項10に記載の符号化方法。
- 前記クラスCワードが、前記RDSが負の場合にのみディスパリティ1のコードワードにマッピングされる請求項7に記載の符号化方法。
- ディスパリティが−8、−6、−4、6、または8の8ビット入力ワードの各々がディスパリティ1のコードワードにマッピングされる請求項7に記載の符号化方法。
- ディスパリティが−6または−4の8ビット入力ワードの各々がディスパリティ−5あるいは5のコードワードにマッピングされる請求項7に記載の符号化方法。
- ディスパリティ−8、6、または8の8ビット入力ワードの各々がビット0を付加することによって中間写像ワードにマッピングされ、及び、前記出力コードワードが、前記8ビット写像ワードのディスパリティが前記RDSの現在値と同一の符号を有する場合に前記中間写像ワードを反転することによって得られる請求項14に記載の符号化方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/323,490 US6188337B1 (en) | 1999-06-01 | 1999-06-01 | Low disparity coding method for digital data |
US09/323490 | 1999-06-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001036410A JP2001036410A (ja) | 2001-02-09 |
JP3581819B2 true JP3581819B2 (ja) | 2004-10-27 |
Family
ID=23259424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000160158A Expired - Fee Related JP3581819B2 (ja) | 1999-06-01 | 2000-05-30 | 符号化方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6188337B1 (ja) |
EP (1) | EP1058432B1 (ja) |
JP (1) | JP3581819B2 (ja) |
KR (1) | KR100401393B1 (ja) |
DE (1) | DE60000636T2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6456208B1 (en) | 2000-06-30 | 2002-09-24 | Marvell International, Ltd. | Technique to construct 32/33 and other RLL codes |
KR100384886B1 (ko) * | 2000-10-10 | 2003-05-22 | 주식회사 케이티 | 니블 반전 부호 활용 방법 및 그 장치 |
US6504493B1 (en) | 2000-10-31 | 2003-01-07 | Marvell International, Ltd. | Method and apparatus for encoding/decoding data |
US7113507B2 (en) * | 2000-11-22 | 2006-09-26 | Silicon Image | Method and system for communicating control information via out-of-band symbols |
US6661356B1 (en) | 2001-03-05 | 2003-12-09 | Marvell International, Ltd. | Method and apparatus for DC-level constrained coding |
US7286065B1 (en) | 2001-03-05 | 2007-10-23 | Marvell International Ltd. | Method and apparatus for DC-level constrained coding |
US20030152154A1 (en) * | 2002-02-14 | 2003-08-14 | Johnson Ryan C. | Coding and decoding system and method for high-speed data transmission |
US7277477B1 (en) * | 2002-06-21 | 2007-10-02 | Cisco Technology, Inc. | Zero overhead back channel for adaptive transmit filter updates in SerDes transceivers |
US7084789B2 (en) * | 2003-11-17 | 2006-08-01 | Seagate Technology Llc | DC-free code having limited error propagation and limited complexity |
US8139628B1 (en) | 2005-01-10 | 2012-03-20 | Marvell International Ltd. | Method and device to compensate for baseline wander |
US6995695B1 (en) * | 2005-01-28 | 2006-02-07 | International Business Machines Corporation | System, method, and article of manufacture for synchronizing running disparity values in a computer and a data demapping device |
US7852242B2 (en) * | 2008-05-15 | 2010-12-14 | Taiwan Semiconductor Manufacturing Company, Ltd. | Increasing 8B/10B coding speed using a disparity look-ahead table |
US8823558B2 (en) * | 2012-08-30 | 2014-09-02 | International Business Machines Corporation | Disparity reduction for high speed serial links |
GB2530753A (en) * | 2014-09-30 | 2016-04-06 | Canon Kk | DC-Free nyquist-free error correcting line coding |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4486739A (en) | 1982-06-30 | 1984-12-04 | International Business Machines Corporation | Byte oriented DC balanced (0,4) 8B/10B partitioned block transmission code |
US5200979A (en) * | 1991-06-06 | 1993-04-06 | Northern Telecom Limited | High speed telecommunication system using a novel line code |
US5825824A (en) * | 1995-10-05 | 1998-10-20 | Silicon Image, Inc. | DC-balanced and transition-controlled encoding method and apparatus |
US5663724A (en) * | 1996-03-28 | 1997-09-02 | Seagate Technology, Inc. | 16B/20B encoder |
WO1998023060A1 (fr) * | 1996-11-22 | 1998-05-28 | Sony Corporation | Procede et dispositif de transmission des donnees |
-
1999
- 1999-06-01 US US09/323,490 patent/US6188337B1/en not_active Expired - Lifetime
-
2000
- 2000-05-23 EP EP00304355A patent/EP1058432B1/en not_active Expired - Lifetime
- 2000-05-23 DE DE60000636T patent/DE60000636T2/de not_active Expired - Lifetime
- 2000-05-30 JP JP2000160158A patent/JP3581819B2/ja not_active Expired - Fee Related
- 2000-06-01 KR KR10-2000-0029998A patent/KR100401393B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US6188337B1 (en) | 2001-02-13 |
EP1058432A3 (en) | 2001-05-30 |
DE60000636T2 (de) | 2003-06-26 |
KR100401393B1 (ko) | 2003-10-11 |
EP1058432B1 (en) | 2002-10-23 |
DE60000636D1 (de) | 2002-11-28 |
EP1058432A2 (en) | 2000-12-06 |
JP2001036410A (ja) | 2001-02-09 |
KR20010014990A (ko) | 2001-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3581819B2 (ja) | 符号化方法 | |
EP0758825B1 (en) | Method and apparatus for generating dc-free sequences with conveying partial information by the sequence of codeword digital sums of successive codewords | |
EP0333324A2 (en) | Matched spectral null trellis codes for partial response channels | |
US4707681A (en) | Method and apparatus for implementing optimum PRML codes | |
US4463344A (en) | Method and apparatus for generating a noiseless sliding block code for a (2,7) channel with rate 1/2 | |
EP0162558B1 (en) | Method and apparatus for generating a run length limited code | |
US6614369B1 (en) | DC balanced 7B/8B, 9B/10B, and partitioned DC balanced 12B/14B, 17B/20B, and 16B/18B transmission codes | |
US5781133A (en) | Method and apparatus for implementing run length limited codes | |
US6241778B1 (en) | Methods and apparatus for implementing run-length limited and maximum transition run codes | |
EP0333321A2 (en) | Even mark modulation coding | |
EP0344903A2 (en) | Traversed (d, k) code translation | |
JP3772264B2 (ja) | 連続した入力ブロックを符号化する方法 | |
US20020167426A1 (en) | Modulation system | |
JPS6217418B2 (ja) | ||
KR20000031961A (ko) | 고속 광 전송 시스템을 위한 비트 삽입/조작 선로 부호의 부/복호화 장치 | |
US7786905B2 (en) | Modulation coding and decoding | |
US5208834A (en) | Lexicographical encoding and decoding of state-dependent codes | |
US6346895B1 (en) | Apparatus and method for using nibble inversion code | |
US6765511B2 (en) | Method and apparatus for encoding digital data | |
KR100231379B1 (ko) | 코드 변환/복호 장치 및 방법 | |
US7741980B2 (en) | Providing running digital sum control in a precoded bit stream using precoder aware encoding | |
JP3658395B2 (ja) | 信号復調装置及び方法 | |
KR20040033022A (ko) | 변조 코드 시스템 및 다수의 적분에 의해 신호를 인코딩및 디코딩하는 방법 | |
JPH11154873A (ja) | 符号化回路、符号化方法、ディジタル信号伝送装置およびディジタル磁気記録装置 | |
JPH02119434A (ja) | 符合化回路及び復合化回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20031215 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20040315 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040318 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040615 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040705 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040726 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080730 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090730 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100730 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100730 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110730 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120730 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120730 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130730 Year of fee payment: 9 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |