JP3747839B2 - 符号変換システム及びその変換方法並びに変換プログラム - Google Patents
符号変換システム及びその変換方法並びに変換プログラム Download PDFInfo
- Publication number
- JP3747839B2 JP3747839B2 JP2001355449A JP2001355449A JP3747839B2 JP 3747839 B2 JP3747839 B2 JP 3747839B2 JP 2001355449 A JP2001355449 A JP 2001355449A JP 2001355449 A JP2001355449 A JP 2001355449A JP 3747839 B2 JP3747839 B2 JP 3747839B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- type
- block
- input
- conversion
- 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
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
- H03M5/04—Conversion to or from representation by pulses the pulses having two levels
- H03M5/14—Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
- H03M5/145—Conversion to or from block codes or representations thereof
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/14—Digital recording or reproducing using self-clocking codes
- G11B20/1403—Digital recording or reproducing using self-clocking codes characterised by the use of two levels
- G11B20/1423—Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code
- G11B20/1426—Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code conversion to or from block codes or representations thereof
Description
【発明の属する技術分野】
本発明は符号変換システム及びその変換方法並びに変換プログラムに関し、特に8B/10Bブロック符号を65ビットのブロックに変換する64B/65B 変換及びその逆変換に用いられる符号変換システム及びその変換方法並びに変換プログラムに関する。
【0002】
【従来の技術】
現在、Generic Framing Procedure(以後、GFP と称す) 規格の標準化が、 ANSI T1X1.5にて進められている(GFP仕様のドラフトの文書番号は、T1X1.5/2001-158)。 GFPとは、イーサネット(登録商標)又は Ethernet(登録商標)、PPP (point-to-point protocol) 等のフレームをカプセル化(あるプロトコルで扱うデータをその上位層または下位層プロトコルのフレーム構造に詰め込むこと)し、 SONET(synchronous optical network) /SDH(synchronous digital hierachy)上で伝送するための技術である。
【0003】
又、GFP には、8B/10Bブロック符号化されたストリームデータ(stream data; 必要な分だけを列の先頭から取り出せるようにしたデータ列) を、フレームにカプセル化する規格も存在する。8B/10Bブロック符号化は、ギガビットイーサネット(登録商標)や、ストレージエリアネットワークで用いられるファイバチャネル、デジタルビデオ信号インタフェース規格であるDVB-ASI 等の、多くのリンク層プロトコルに採用されている。 GFPでは、8B/10B符号をフレームにカプセル化する際に、8つの8B/10B符号を65ビットのブロックに変換する処理が行われる。この変換処理は、64B/65B 変換と呼ばれている。
【0004】
次に、64B/65B 変換について具体例を交えながら詳細に説明する。64B/65B 変換とは、8つの復号済みの8B/10B符号を、65ビットのブロックに変換する手法である。変換後の65ビットのブロックを65B ブロックと呼ぶ。
【0005】
8B/10B符号は、ビットシリアル伝送に用いられる10ビットの等長符号であり、優れた情報伝達特性を有する。8B/10B符号には、256種類のデータ符号と、12種類の制御符号( スペシャル符号とも呼ばれる) が定義されている。
【0006】
次に、65B ブロックの構造について説明する。図8は65B ブロックの構成図である。同図を参照すると、65B ブロックの第1ビットはフラグビット(F)であり、入力された8つの8B/10B符号の全てがデータ符号であるときに限り0になる。65B ブロックの第2ビットから第65ビットまでの64ビットの領域は、8つのバイトに分割される。便宜上、65B ブロックの第2ビットから第9ビットまでの8ビットを第1バイト、第10ビットから第17ビットまでを第2バイト、…、として参照する。それぞれのバイトに、入力された8つの8B/10B符号が1つずつ格納される。この際、制御符号は、第1バイトから順に格納される。
【0007】
ここで、8B/10B符号の格納順序に関する例を示す。8つの8B/10B符号が入力順に、
D1、D2、D3、K1、D4、D5、D6、K2
( Dはデータ符号、Kは制御符号の意) であるとき、65B ブロックの第1バイト〜第8バイトは順に、
K1、K2、D1、D2、D3、D4、D5、D6
となる。
【0008】
このように、入力された8つの8B/10B符号の順序と、65B ブロック内のバイトの順序が一致するとは限らない。ただし、データ符号のみ、又は制御符号のみに着目すると、順序は常に保存される。即ち、上記の例において、65B ブロックの第1バイト〜第8バイトが、
K2、K1、D3、D2、D1、D4、D5、D6
等になることはない。
【0009】
データ符号が格納されるバイトには、そのデータ符号から復号された8ビットデータが代入される。
【0010】
一方、制御符号が格納されるバイトは、さらに3つの領域に分割される。1つ目の領域はLCC ( Last Control Character) であり、バイトの第1ビットに位置する。LCC は、次のバイトにも制御符号が格納されるときに1をとる。一方、次のバイトにデータ符号が格納されるとき、あるいは、現在のバイトが最終バイト( 第8バイト) であるとき、0をとる。2つ目の領域はCCL ( Control Character Locator)であり、バイトの第2ビットから第4ビットまでの3ビットに割り当てられている。CCL は、このバイトに格納される制御符号の、元の位置を示す。元の位置は、入力された8つの8B/10B符号における、時系列順に0から始まる数値で表現される。例えば、CCL が6のとき、変換前の制御符号は、8つの8B/10B符号の7番目に存在していたことになる。3つ目の領域はCCI ( Control Character Indicator)であり、バイトの第5ビットから第8ビットまでの4ビットに割り当てられている。CCI には、制御符号を4ビットで表現したコードが収容される。
【0011】
制御符号の4ビット表現の一例を図9に示す。同図はGFP 仕様のドラフト( 文書番号:T1X1.5/2001-158)の表8−1から引用されたものである。同図は8ビット制御符号と4ビット制御符号と符号の意味との対応を示したものである。なお、制御符号と4ビット表現が1対1に対応してさえいれば、同図以外の関係でも良い。
【0012】
以降、フラグビットをFとおく。又、(i+1)番目のバイト(0≦i ≦7)にデータ符号が収容される場合、そのバイトをDV[i] で表す。さらに、(i+1)番目のバイト(0≦i ≦7)に制御符号が収容される場合、そのバイトのLast Control CharacterをLCC[i] 、 Control Character LocatorをCCL[i] 、 Control Character IndicatorをCCI[i] とおく。
【0013】
F、DV[i] 、LCC[i] 、CCL[i] 、CCI[i] (0≦i ≦7)を用いて65Bブロックを表現すると、図8のようになる。入力された8つの8B/10B符号に含まれる制御符号の数が決まれば、F及びLCC[i] が一意に定まることが分かる。
【0014】
【発明が解決しようとする課題】
しかし、この64B/65B 変換に要する演算は複雑であり、多くのハ−ドウエア資源を要するという欠点があった。
【0015】
そこで本発明の目的は、冗長な演算を省略し、これにより少ないハ−ドウエア資源で64B/65B 変換及びその逆変換を実現することが可能な符号変換システム及びその変換方法並びに変換プログラムを提供することにある。
【0016】
【課題を解決するための手段】
前記課題を解決するために本発明による符号変換システムは、時系列に入力される2種類の符号のうち第1種の符号を入力順に先頭に配置し、第2種の符号を入力順に前記第1種の符号の次に配置することにより1個のブロックに変換する符号変換システムであって、前記入力される符号の各々が第1種であるか第2種であるかを示す識別符号が前記符号とともに入力され、前記識別符号に基づき前記入力される符号が第1種であるか第2種であるかを識別し、入力される符号が第1種である場合はその符号を入力順に第1レジスタに格納し、入力される符号が第2種である場合はその符号を入力順に第2レジスタに格納し、前記第1レジスタの内容を先頭に配置し、前記第2レジスタの内容を前記第1レジスタの内容の次に配置することにより前記1個のブロックに変換する符号変換手段を含むことを特徴とする。
【0017】
又、本発明による他の符号変換システムは、時系列に入力される2種類の符号のうち第1種の符号を入力順に先頭に配置し、第2種の符号を入力順に前記第1種の符号の次に配置することにより1個のブロックに変換された情報を逆変換する符号変換システムであって、少なくとも前記1個のブロックに前記第1種の符号が含まれるか否かを示す識別符号が前記1個のプログラムの先頭に配置され、かつ前記1個のブロックに含まれる第1種の符号の各々に前記第1種の符号であることを示す最終制御符号及び前記1個のブロックに変換される前の符号の位置を示す位置符号が付与されており、前記識別符号、最終制御符号及び位置符号に基づき前記1個のブロックに含まれる前記第1種の符号を元の位置に整列させ、前記1個のブロックに含まれる前記第2種の符号を残りの位置に時系列に整列させる符号逆変換手段を含むことを特徴とする。
【0018】
又、本発明による符号変換方法は、時系列に入力される2種類の符号のうち第1種の符号を入力順に先頭に配置し、第2種の符号を入力順に前記第1種の符号の次に配置することにより1個のブロックに変換する符号変換方法であって、前記入力される符号の各々が第1種であるか第2種であるかを示す識別符号が前記符号とともに入力され、前記識別符号に基づき前記入力される符号が第1種であるか第2種であるかを識別し、入力される符号が第1種である場合はその符号を入力順に第1レジスタに格納し、入力される符号が第2種である場合はその符号を入力順に第2レジスタに格納し、前記第1レジスタの内容を先頭に配置し、前記第2レジスタの内容を前記第1レジスタの内容の次に配置することにより前記1個のブロックに変換する符号変換ステップを含むことを特徴とする。
【0019】
又、本発明による他の符号変換方法は、時系列に入力される2種類の符号のうち第1種の符号を入力順に先頭に配置し、第2種の符号を入力順に前記第1種の符号の次に配置することにより1個のブロックに変換された情報を逆変換する符号変換方法であって、少なくとも前記1個のブロックに前記第1種の符号が含まれるか否かを示す識別符号が前記1個のプログラムの先頭に配置され、かつ前記1個のブロックに含まれる第1種の符号の各々に前記第1種の符号であることを示す最終制御符号及び前記1個のブロックに変換される前の符号の位置を示す位置符号が付与されており、前記識別符号、最終制御符号及び位置符号に基づき前記1個のブロックに含まれる前記第1種の符号を元の位置に整列させ、前記1個のブロックに含まれる前記第2種の符号を残りの位置に時系列に整列させる符号逆変換ステップを含むことを特徴とする。
【0020】
又、本発明による変換プログラムは、時系列に入力される2種類の符号のうち第1種の符号を入力順に先頭に配置し、第2種の符号を入力順に前記第1種の符号の次に配置することにより1個のブロックに変換する符号変換方法をコンピュータに実行させるための変換プログラムであって、前記入力される符号の各々が第1種であるか第2種であるかを示す識別符号が前記符号とともに入力され、前記識別符号に基づき前記入力される符号が第1種であるか第2種であるかを識別し、入力される符号が第1種である場合はその符号を入力順に第1レジスタに格納し、入力される符号が第2種である場合はその符号を入力順に第2レジスタに格納し、前記第1レジスタの内容を先頭に配置し、前記第2レジスタの内容を前記第1レジスタの内容の次に配置することにより前記1個のブロックに変換する符号変換ステップをコンピュータに実行させるための変換プログラムであることを特徴とする。
【0021】
又、本発明による他の変換プログラムは、時系列に入力される2種類の符号のうち第1種の符号を入力順に先頭に配置し、第2種の符号を入力順に前記第1種の符号の次に配置することにより1個のブロックに変換された情報を逆変換する符号変換方法をコンピュータに実行させるための変換プログラムであって、少なくとも前記1個のブロックに前記第1種の符号が含まれるか否かを示す識別符号が前記1個のプログラムの先頭に配置され、かつ前記1個のブロックに含まれる第1種の符号の各々に前記第1種の符号であることを示す最終制御符号及び前記1個のブロックに変換される前の符号の位置を示す位置符号が付与されており、
前記識別符号、最終制御符号及び位置符号に基づき前記1個のブロックに含まれる前記第1種の符号を元の位置に整列させ、前記1個のブロックに含まれる前記第2種の符号を残りの位置に時系列に整列させる符号逆変換ステップをコンピュータに実行させるための変換プログラムであることを特徴とする。
【0022】
本発明によれば、上記構成により冗長な演算を省略し、これにより少ないハ−ドウエア資源で64B/65B 変換及びその逆変換を実現することが可能となる。
【0023】
本発明は、64B/65B 変換及び逆変換を、少ない演算量で実現する方法及び回路を提供するものである。 64B/65B変換には、図10の64B/65B 変換の一例を示す図のように、データ符号のみ、又は制御符号のみに着目すると、変換の前後で符号の順序が保たれるという性質がある。この性質を利用することで、符号の並び替えに要する演算を削減することができる。
【0024】
次に、64B/65B 変換の具体例を示す。本例では、8つの8B/10B符号の時系列:
D21.4、D21.5、D21.5、K28.5、D21.4、D10.2、D10.2、K28.5
を65Bブロックに変換する過程を解説する( なお、D21.4、D21.5、D10.2はデータ符号、K28.5は制御符号である) 。
【0025】
64B/65B 変換は、復号済みの8B/10B符号を入力とするので、64B/65B 変換の前段で8B/10B復号を行う必要がある。そこで、8つの8B/10B符号のそれぞれを、8ビットデータに復号すると、
( 第1の8B/10B符号) D21.4=10010101 (2進数) 、( 第2の8B/10B符号) D21.5=10110101 (2進数) 、( 第3の8B/10B符号) D21.5=10110101 (2進数) 、( 第4の8B/10B符号) K28.5=10111100 (2進数) 、( 第5の8B/10B符号) D21.4=10010101 (2進数) 、( 第6の8B/10B符号) D10.2=01001010 (2進数) 、( 第7の8B/10B符号) D10.2=01001010 (2進数) 、( 第8の8B/10B符号) K28.5=10111100 (2進数)
となる。
【0026】
ただし、これらのみではデータ符号か制御符号かを識別できないため、( 第1の8B/10B符号) =データ符号、( 第2の8B/10B符号) =データ符号、( 第3の8B/10B符号) =データ符号、( 第4の8B/10B符号) =制御符号、( 第5の8B/10B符号) =データ符号、( 第6の8B/10B符号) =データ符号、( 第7の8B/10B符号) =データ符号、( 第8の8B/10B符号) =制御符号 という情報も作成しておく。
【0027】
始めに、F(フラグビット)及びLCC( Last Control Character) を決定する。F及びLCCは、前述のように、8つの8B/10B符号に含まれる制御符号の数で決まる。
【0028】
即ち、図8を参照すると、8つの8B/10B符号に含まれる制御符号の数が0個の場合はF=0であり、制御符号の数が1個の場合はF=1かつLCC[0] =1であり、制御符号の数が2個の場合はF=1、LCC[0] =1かつLCC[1] =0であり、制御符号の数が3個の場合はF=1、LCC[0] =1、LCC[1] =1かつLCC[2] =0であり、制御符号の数が4個以上の場合も同様である。
【0029】
本例では制御符号が2つ存在するから、図8の制御符号の数=2個の欄を参照すると、F=1 、LCC[0] =1 、LCC[1] =0 を得る。次に、制御符号をCCL及びCCIで表現し、それらを順に、65B ブロックの第1バイト、第2バイト、…に代入する。
【0030】
第1の制御符号は、8つの8B/10B符号中の4番目に位置するから、
CCL[0] =011 ( 2進数)
となる。又、第1の制御符号から復号された8ビットデータは、 10111100 ( 2進数) であり、これを図9に従って4ビット表現すると(図9のK28.5 の欄参照)、0101 (2進数) となるから、
CCI[0] =0101 (2進数)
である。
【0031】
第2の制御符号は、8つの8B/10B符号中の8番目に位置するから、
CCL[1] =111 ( 2進数)
となる。又、第2の制御符号は、第1の制御符号と等しいから、
CCI[1] =0101 (2進数)
である。
【0032】
最後に、データ符号から復号された8ビットデータを、65B ブロックの各バイトに代入する。第1、第2バイトには、既に制御符号が収容されているため、第3バイトから代入を開始する。順次、DV[2] 、DV[3] 、…、DV[7] に代入すると、
DV[2] =10010101 (2進数) 、DV[3] =10110101 (2進数) 、DV[4] =10110101 (2進数) 、DV[5] =10010101 (2進数) 、DV[6] =01001010 (2進数) 、DV[7] =01001010 (2進数)
となる。即ち、デ−タ符号の数値は変換前と変わらない。
【0033】
以上で、65B ブロックへの変換は完了し、最終的に、
1 10110101 01110101 10010101 10110101 10110101 10010101 01001010 01001010 ( 2進数)
が得られる。
【0034】
即ち、図10を参照すると、8つの8B/10B符号のうちの第1符号は65B ブロック変換後の第3バイトとなり、以下第2符号は第4バイト、第3符号は第5バイト、第4符号は第1バイト、第5符号は第6バイト、第6符号は第7バイト、第7符号は第8バイト、第8符号は第2バイトとなる。なお、65B ブロックの先頭(第1ビット)にはFビットが設けられる。
【0035】
【発明の実施の形態】
以下、本発明の実施の形態について添付図面を参照しながら説明する。図1は本発明による64B/65B 変換回路の一例の構成図である。又、図2は本発明による64B/65B 逆変換回路の一例の構成図である。
【0036】
まず、図1を参照して、64B/65B 変換回路40の構成を詳細に説明する。64B/65B 変換回路40は、制御符号変換部41と、データ符号レジスタ42−1〜42−8と、制御符号レジスタ43−1〜43−8と、制御符号位置レジスタ44−1〜44−8と、符号カウンタ45と、制御符号カウンタ46と、65B ブロック生成部47とを含んで構成される。
【0037】
64B/65B 変換回路40の入力は、復号済みの8B/10B符号であり、8ビットデータ60及びデータ/制御フラグ61の2つの信号で表される。データ/制御フラグ61は、8ビットデータ60がデータ符号を表すとき0を、制御符号を表すとき1をとるフラグである。64B/65B 変換回路40の出力は、65B ブロック63である。
【0038】
制御符号変換部41は、データ/制御フラグ61が1のとき( 即ち、制御符号のとき) 、8ビットデータ60を図3に従って変換し、4ビット制御符号62を出力する。
【0039】
データ符号レジスタ42−1〜42−8は、それぞれ8ビット幅のレジスタである。データ/制御フラグ61が0のとき( 即ち、データ符号のとき) 、データ符号レジスタ42−8に8ビットデータ60を代入し、データ符号レジスタ42−1〜42−7を8ビットシフトする。
【0040】
制御符号レジスタ43−1〜43−8は、それぞれ4ビット幅のレジスタである。データ/制御フラグ61が1のとき、制御符号レジスタ43−Nに4ビット制御符号62を代入する。ここでNの値は、制御符号カウンタ46の出力値に1を加えた数に等しい。
【0041】
制御符号位置レジスタ44−1〜44−8は、それぞれ3ビット幅のレジスタである。データ/制御フラグ61が1のとき、制御符号位置レジスタ44−Nに、符号カウンタ45の出力値を代入する。ここでNの値は、制御符号カウンタ46の出力値に1を加えた数に等しい。
【0042】
符号カウンタ45は、入力された符号の個数を計数する8進カウンタである。取り得る値は、0以上7以下である。
【0043】
制御符号カウンタ46は、入力された制御符号の個数を計数する8進カウンタであり、データ/制御フラグ61が1のとき、1だけカウントアップする。取り得る値は、0以上7以下である。
【0044】
65B ブロック生成部47は、制御符号カウンタ46の出力値から、出力する65B ブロック63の構造を決定し、データ符号レジスタ42−1〜42−8、制御符号レジスタ43−1〜43−8、制御符号位置レジスタ44−1〜44−8の出力値を、65B ブロック63の各領域に転送する。65B ブロック生成部47の出力は、65B ブロック63である。
【0045】
次に、図2を参照して、64B/65B 逆変換回路80の構成を詳細に説明する。64B/65B 逆変換回路80は、制御バイト判定部81と、データ/制御判定部82と、制御符号整列部83と、制御符号復元部84と、データ転送元決定部85と、データ符号整列部86と、データ/制御選択部87と、順序エラー判定部88とを含んで構成される。
【0046】
64B/65B 逆変換回路80の入力は、65ビットの65B ブロック63である。説明の都合上、65B ブロック63の各領域に別名を与える。フラグ100(F)は、65B ブロック63の第1ビットの別名である。データ値101−N( 1≦N≦8)は65B ブロック63の第Nバイトの別名である。最終制御符号102−N( 1≦N≦8) (LCC)は、65B ブロック63の第Nバイトの第1ビットの別名である。制御符号位置103−N( 1≦N≦8) (CCL)は、65B ブロック63の第Nバイトの第2ビット〜第4ビットの別名である。制御符号識別子104−N( 1≦N≦8) (CCI)は、65B ブロック63の第Nバイトの第5ビット〜第8ビットの別名である。
【0047】
64B/65B 逆変換回路80の出力は、8つの復号済みの8B/10B符号、及び順序エラー112である。8つの復号済み8B/10B符号は、8ビットデータ111−1〜111−8とデータ/制御フラグ106−1〜106−8で表現される。データ/制御フラグ106−N( 1≦N≦8) は、対応する8ビットデータ111−Nが、制御符号を表すときに1をとるフラグである。順序エラー112は、65B ブロック63の構造的なエラーの有無を示す。
【0048】
制御バイト判定部81は、フラグ100及び最終制御符号102−1〜102−7から、制御バイトフラグ105−1〜105−8を求める。制御バイトフラグ105−N( 1≦N≦8) は、65B ブロック63の第Nバイトが制御符号を表すときに1をとるフラグである。
【0049】
データ/制御判定部82は、制御バイトフラグ105−1〜105−8及び制御符号位置103−1〜103−8から、データ/制御フラグ106−1〜106−8を求める。
【0050】
制御符号整列部83は、制御バイトフラグ105−1〜105−8及び制御符号位置103−1〜103−8に基づいて、制御符号識別子104−1〜104−8を8B/10B符号の並び順に整列させる。又、整列後の制御符号を、4ビット制御符号107−1〜107−8として出力する。4ビット制御符号107−N( 1≦N≦8) は、対応するデータ/制御フラグ106−Nが1のとき( 即ち、8ビットデータ111−Nが制御符号のとき) に限り、意味を持つ。
【0051】
制御符号復元部84は、4ビット制御符号107−1〜107−8のそれぞれを、図9に従って元の8ビットデータに復元し、8ビット制御符号108−1〜108−8として出力する。8ビット制御符号108−N( 1≦N≦8) は、対応するデータ/制御フラグ106−Nが1のときに限り、意味を持つ。
【0052】
データ転送元決定部85は、データ/制御フラグ106−1〜106−8から、データ転送元109−1〜109−8を定める。データ転送元109−1〜109−8は、それぞれ8ビットの信号であり、データ値101−1〜101−8と、8ビットデータ111−1〜111−8との対応関係を表す。8ビットデータ111−N( 1≦N≦8) がデータ値101−M( 1≦M≦8) に対応するとき、データ転送元109−Nの第Mビットが1になる。なお、データ転送元109−N( 1≦N≦8) は、対応するデータ/制御フラグ106−Nが0のときに限り、意味を持つ。
【0053】
データ符号整列部86は、データ転送元109−1〜109−8に基づいて、データ値101−1〜101−8を8B/10B符号の並び順に整列させる。又、整列後のデータ符号を、データ符号110−1〜110−8として出力する。データ符号110−N( 1≦N≦8) は、対応するデータ/制御フラグ106−Nが0のときに限り、意味を持つ。
【0054】
データ/制御選択部87は、データ/制御フラグ106−1〜106−8を参照して、データ符号110−1〜110−8と8ビット制御符号108−1〜108−8を切り替え、8ビットデータ111−1〜111−8として出力する。
【0055】
順序エラー判定部88は、制御バイトフラグ105−1〜105−8、最終制御符号102−1〜102−8及び制御符号位置103−1〜103−8を解析し、制御符号の順序関係に矛盾が生じているか否かを判定する。矛盾が検出されると、順序エラー112を1にする。
【0056】
次に、本実施例の動作について詳細に説明する。図3は64B/65B 変換回路40の動作を示すフロ−チャ−トである。同図を参照して、64B/65B 変換回路40の動作を説明する。同図中の変数・演算子・ビット順序の定義を、それぞれ以下に示す。
【0057】
Dは8ビットデータ60、DCはデータ/制御フラグ61、Control は4ビット制御符号62、DV[i](0 ≦i ≦7)はデータ符号レジスタ42−(i+1)、CCI[i](0 ≦i ≦7)は制御符号レジスタ43−(i+1)、CCL[i](0 ≦i ≦7)は制御符号位置レジスタ44−(i+1)、NumCode は符号カウンタ45、NumControlは制御符号カウンタ46、+は算術和を表している。
【0058】
又、Nビット信号の第1ビットは、その信号の最上位(Most Significant)ビットを表し、Nビット信号の第Nビットは、その信号の最下位(Least Significant) ビットを表す。
【0059】
まず、ステップS100から開始し、符号カウンタ45及び制御符号カウンタ46をゼロクリアする。その後、8ビットデータ60とデータ/制御フラグ61が入力されるのを待つ( ステップS101) 。そして、入力されていれば、データ/制御フラグ61が1であるか判定する( ステップS102) 。1であれば( 即ち、入力が制御符号であれば) 、8ビットデータ60を図3に従って4ビット制御符号62に変換する( ステップS103) 。さらに、ステップS104において、4ビット制御符号62を制御符号レジスタ43−Nに代入し、符号カウンタ45の出力値を制御符号位置レジスタ44−Nに代入する。ここでNの値は、制御符号カウンタ46の出力値に1を加えた数に等しい。その後、制御符号カウンタ46を1だけカウントアップし、ステップS106へ進む。
【0060】
一方、ステップS102において、データ/制御フラグ61が0であったとき( 即ち、入力がデータ符号のとき) 、データ符号レジスタ42−1〜42−7を8ビットシフトし、データ符号レジスタ42−8に8ビットデータ60を代入する( ステップS105) 。その後、ステップS106へ進む。ステップS106では、符号カウンタ45の出力値が7であるか判定される。7以外であれば、符号カウンタ45を1だけカウントアップし( ステップS107) 、ステップS101へ戻る。一方、7であれば、図1を参照して65Bブロック63の生成と出力を行い( ステップS108) 、ステップS100へ戻る。
【0061】
65B ブロック63の構造は、制御符号カウンタ46の出力値( 図8における「8つの8B/10B符号に含まれる制御符号の数」と同義) によって決定される。例えば、制御符号カウンタ46の出力値が2のとき、65B ブロック63は以下のようになる:
第1ビット=1
第2ビット=1
第3ビット〜第5ビット=制御符号位置レジスタ44−1の出力値
第6ビット〜第9ビット=制御符号レジスタ43−1の出力値
第10ビット=0
第11ビット〜第13ビット=制御符号位置レジスタ44−2の出力値
第14ビット〜第17ビット=制御符号レジスタ43−2の出力値
第18ビット〜第25ビット=データ符号レジスタ42−3の出力値
第26ビット〜第33ビット=データ符号レジスタ42−4の出力値
第34ビット〜第41ビット=データ符号レジスタ42−5の出力値
第42ビット〜第49ビット=データ符号レジスタ42−6の出力値
第50ビット〜第57ビット=データ符号レジスタ42−7の出力値
第58ビット〜第65ビット=データ符号レジスタ42−8の出力値である。
【0062】
図4及び図5は64B/65B 逆変換回路80の動作を示すフロ−チャ−トである。同図を参照して、64B/65B 逆変換回路80の動作を説明する。本説明で用いる、変数・演算子・関数・ビット順序の定義を、それぞれ以下に示す。Fはフラグ100、DV[i](0 ≦i ≦7)はデータ値101−(i+1)、LCC[i](0 ≦i ≦7)は最終制御符号102−(i+1)、CCL[i](0 ≦i ≦7)は制御符号位置103−(i+1)、CCI[i](0 ≦i ≦7)は制御符号識別子104−(i+1)、IsControl[i](0≦i ≦7)は制御バイトフラグ105−(i+1)、ShortControl[i](0 ≦i ≦7)は4ビット制御符号107−(i+1)、LongControl[i](0≦i ≦7)は8ビット制御符号108−(i+1)、DataSource[i](0 ≦i ≦7)はデータ転送元109−(i+1)、Data[i](0 ≦i ≦7)はデータ符号110−(i+1)、D[i](0 ≦i ≦7)は8ビットデータ111−(i+1)、DC[i](0 ≦i ≦7)はデータ/制御フラグ106−(i+1)、ERR は順序エラー112を表す。
【0063】
又、+は算術和、−は算術差、×は算術積、orは論理和、and は論理積を表す。EQUAL(a, b) は a=b のとき1、それ以外のとき0を返す。GREATER_EQUAL(a, b) は a≧b のとき1、それ以外のとき0を返す。SELECT(c, a, b) は c が非ゼロのとき a を、ゼロのとき bを返す。
【0064】
又、Nビット信号の第1ビットは、その信号の最上位(Most Significant)ビットを表す。Nビット信号の第Nビットは、その信号の最下位(Least Significant) ビットを表す。
【0065】
まず、ステップS200から開始し、65B ブロック63が入力されるのを待つ。入力されていれば、ステップS201へ進む。
【0066】
ステップS201の処理を説明する。フラグ100及び最終制御符号102−1〜102−7から、制御バイトフラグ105−1〜105−8を決定する。始めに、制御バイトフラグ105−1を求める。65B ブロック63の第1バイトに制御符号が格納される条件は、フラグ100が1であることである。従って、制御バイトフラグ105−1は、フラグ100に等しい。次に、制御バイトフラグ105−2を求める。65B ブロック63の第2バイトに制御符号が格納される条件は、フラグ100が1、かつ、最終制御符号102−1が1、であることである。よって、制御バイトフラグ105−2は、フラグ100と最終制御符号102−1の論理積に等しい。以上を繰り返すと、下式が得られる。
これらを再帰的に表現すると、図4のステップS201の式が得られる。
【0067】
次に、ステップS202へ進む。ステップS202の処理を説明する。制御バイトフラグ105−1〜105−8及び制御符号位置103−1〜103−8から、データ/制御フラグ106−1〜106−8を決定する。始めに、データ/制御フラグ106−N( 1≦N≦8) が1になるための条件を求める。これは、換言すれば、N番目の8B/10B符号が制御符号になる条件であるから、制御符号位置103−1〜103−8のいずれかの値が、( N−1) であれば良い。ただし、制御符号位置103−1〜103−8が意味を持つためには、対応する制御バイトフラグ105−1〜105−8が1でなければならない。従って、データ/制御フラグ106−Nが1になるためには、制御バイトフラグ105−Mが1であって、かつ、制御符号位置103−Mの値が( N−1) であるような、M( 1≦M≦8) が存在する必要がある。この条件を満たすMの個数は、次式で求められる:
Σ0 ≦ i ≦ 7 {IsControl[i] and EQUAL(CCL[i], N−1)}
この式の値が0のとき、データ/制御フラグ106−Nを0にし、1のとき、データ/制御フラグ106−Nを1にする。この式の値が2以上になることは通常あり得ないが、65Bブロック63にビットエラーが混入していた場合は、その限りでない。ただし、そのようなエラーは順序エラー判定部88によって検出可能であるため、エラー発生時にデータ/制御フラグ106−1〜106−8が不定になっても良い。よって、上式の算術和は論理和に置き換えられ、データ/制御フラグ106−N( 1≦N≦8) は、
DC[N−1]={IsControl[0] and EQUAL(CCL[0], N −1)} or
{IsControl[1] and EQUAL(CCL[1], N −1)} or
…{IsControl[6] and EQUAL(CCL[6], N −1)} or
{IsControl[7] and EQUAL(CCL[7], N −1)} のように表される。
【0068】
次に、上式を簡単化するため、i +1 ≦j ≦7 を満たす、任意の i、j について、 {IsControl[j] and EQUAL(CCL[j], i)}=0 が成立することを証明する。
【0069】
[証明] 前述の64B/65B 変換の説明において、入力された8つの8B/10B符号の順序と、65B ブロック内のバイト順序の関係について述べた。その中で、制御符号のみに着目すれば、順序が常に保存されることを示した。この順序保存の性質を、数式で表すと、
0 ≦CCL[0] <CCL[1] <…<CCL[n -1]
となる。ここで nは、65B ブロック63に存在する制御符号の数である。
【0070】
上式より、CCL[0] ≧0 、CCL[1] ≧1 、…、CCL[n -1] ≧n −1 が導かれる。これらをまとめると、CCL[i] ≧i(0 ≦i <n)を得る。
【0071】
よって、i +1 ≦j <n を満たす jについて、CCL[j] ≧i +1 が成立する。すなわち、i +1 ≦j <n を満たす jについて、EQUAL(CCL(j), i) =0 である。さらに、IsControl[i]=0 for n ≦i ≦7 なる関係を利用すると、 i +1 ≦j ≦7 を満たす jについて、
{IsControl[j] and EQUAL(CCL[j], i)} =0 が成り立つ。[証明終]。
【0072】
この証明の結果を用いると、データ/制御フラグ106−1〜106−8を求める式は、図4のステップS202の式に簡単化される。次に、ステップS203へ進む。
【0073】
ステップS203の処理を説明する。制御バイトフラグ105−1〜105−8及び制御符号位置103−1〜103−8に基づいて、制御符号識別子104−1〜104−8を8B/10B符号の並び順に整列させ、4ビット制御符号107−1〜107−8として出力する。4ビット制御符号107−N( 1≦N≦8) が定まるためには、制御バイトフラグ105−Mが1であって、かつ、制御符号位置103−Mが( N−1) であるような、M( 1≦M≦8) が存在する必要がある。この条件を満たすMの個数が0のとき、データ/制御フラグ106−Nは0になるから、4ビット制御符号107−Nは不定であって良い。又、条件を満たすMの個数が2以上のとき、65Bブロックにエラーが生じているため、4ビット制御符号107−Nは不定で良い。従って、Mの個数を1と仮定しても差し支えない。そこで、4ビット制御符号107−N( 1≦N≦8) は、次式で求められる:
ShortControl[N−1]=CCI[0]×{IsControl[0] and EQUAL(CCL[0], N −1)} or
CCI[1]×{IsControl[1] and EQUAL(CCL[1], N −1)} or
…
CCI[6]×{IsControl[6] and EQUAL(CCL[6], N −1)} or
CCI[7]×{IsControl[7] and EQUAL(CCL[7], N −1)}
ここで、ステップS202で証明した、
i +1 ≦j ≦7 を満たす jについて、{IsControl[j] and EQUAL(CCL[j], i)} =0
となる関係を用いて、上式を簡単化すると、図4のステップS203の式が得られる。次に、ステップS204へ進む。
【0074】
ステップS204の処理を説明する。4ビット制御符号107−1〜107−8のそれぞれを、元の8ビットデータに変換し、8ビット制御符号108−1〜108−8として出力する。この変換は、図9に従って行われる。次に、ステップS205へ進む。
【0075】
ステップS205の処理を説明する。データ/制御フラグ106−1〜106−Nから、データ転送元109−1〜109−8を求める。まず、8ビットデータ111−1〜111−8と、データ値101−1〜101−8との対応関係に、制約が存在することを示す。図6の65B ブロックから8B/10B符号へ変換する際の制約を示す図のように、8ビットデータ111−8が、データ値101−7に対応すると仮定してみる。このとき、64B/65B 変換の前後でデータ符号の順序が保存される性質を考慮すると、データ値101−8に8ビットデータを割り当てられなくなる。従って、8ビットデータ111−8がデータ値101−7に対応することは、あり得ない。これを一般化すると、8ビットデータ111−N( 2≦N≦8) が、データ値101−M( 1≦M<N) に対応することはない、という制約が得られる。次に、データ転送元109−8について考える。上記の制約により、8ビットデータ111−8は必ず、データ値101−8のみに対応する。よって、データ転送元109−8は常に、00000001 (2進数) になる。ここで、データ/制御フラグ106−8が1のとき( 即ち、8番目の8B/10B符号が制御符号であるとき) 、データ転送元109−8は定義より、意味を持たず、64B/65B 逆変換回路80の出力に影響を及ぼさない。ただし、データ転送元109−8は、データ転送元109−7の算出に必要であるので、データ/制御フラグ106−8が1であっても、値が代入される。次に、データ転送元109−7を求める。上記の制約により、8ビットデータ111−7は、データ値101−7又は101−8のいずれかに対応する。よって、データ転送元109−7が取り得る値は、 00000001 ( 2進数) 又は 00000010 ( 2進数) である。どちらの値になるかは、データ/制御フラグ106−8の値で決定される。データ/制御フラグ106−8が0のとき、データ転送元109−8は有効であり、その値 00000001 ( 2進数) を再利用できない。そのため、データ転送元109−7は 00000010 ( 2進数) になる。一方、データ/制御フラグ106−8が1のとき、データ転送元109−8は無効であるから、データ転送元109−7を 00000001 ( 2進数) にする。以上より、図4のステップS205の式が得られる。具体例として、図10の65Bブロックについてデータ転送元109−1〜109−8を求めた結果を、図7に示す。図7はデータ/制御フラグDC[i] が1である第4及び第8符号のDataSource[i] は無効であることを示しており、これに対しデータ/制御フラグDC[i] が0である第1〜第3並びに第5〜第7符号のDataSource[i] は有効であることを示している。そして、第7符号D10.2は65Bブロックの第8バイトであることを示し、同様に第6符号D10.2は65Bブロックの第7バイト、第5符号D21.4は65Bブロックの第6バイト、第3符号D21.5は65Bブロックの第5バイト、第2符号D21.5は65Bブロックの第4バイト、第1符号D21.4は65Bブロックの第3バイトであることを示している。次に、ステップS206へ進む。
【0076】
ステップS206の処理を説明する。データ転送元109−1〜109−8に基づいて、データ値101−1〜101−8を8B/10B符号の並び順に整列させ、データ符号110−1〜110−8として出力する。データ符号110−N( 1≦N≦8) は、データ転送元109−1〜109−8の定義より、次式で求められる:
Data[N−1]={(DataSource[N−1]の第1ビット) ×DV[0]} or
{(DataSource[N−1]の第2ビット) ×DV[1]} or
{(DataSource[N−1]の第3ビット) ×DV[2]} or
{(DataSource[N−1]の第4ビット) ×DV[3]} or
{(DataSource[N−1]の第5ビット) ×DV[4]} or
{(DataSource[N−1]の第6ビット) ×DV[5]} or
{(DataSource[N−1]の第7ビット) ×DV[6]} or
{(DataSource[N−1]の第8ビット) ×DV[7]}。
【0077】
ステップS205で示したように、データ転送元109−2〜109−8が取り得る値には、以下の制約がある。
DataSource[7] は、常に 00000001 ( 2進数) 。
DataSource[6] の第1ビット〜第6ビットは、常に0。
DataSource[5] の第1ビット〜第5ビットは、常に0。
DataSource[4] の第1ビット〜第4ビットは、常に0。
DataSource[3] の第1ビット〜第3ビットは、常に0。
DataSource[2] の第1ビット〜第2ビットは、常に0。
DataSource[1] の第1ビットは、常に0。
この制約を利用して上式を簡単化すると、図5のステップS206の式が得られる。次に、ステップS207へ進む。
【0078】
ステップS207の処理を説明する。データ/制御フラグ106−N( 1≦N≦8) が1のとき、8ビット制御符号108−Nを8ビットデータ111−Nに代入し、0のとき、データ符号110−Nを8ビットデータ111−Nに代入する。次に、ステップS208へ進む。
【0079】
ステップS208の処理を説明する。制御バイトフラグ105−1〜105−8及び最終制御符号102−8、制御符号位置103−1〜103−8から、順序エラー112の有無を判定する。64B/65B変換の前後で制御符号の順序は不変であるから、65Bブロック63にエラーが生じていなければ、次の関係式が成立する:
IsControl[1]=1 のとき、CCL[0]<CCL[1]
IsControl[2]=1 のとき、CCL[1]<CCL[2]
IsControl[3]=1 のとき、CCL[2]<CCL[3]
IsControl[4]=1 のとき、CCL[3]<CCL[4]
IsControl[5]=1 のとき、CCL[4]<CCL[5]
IsControl[6]=1 のとき、CCL[5]<CCL[6]
IsControl[7]=1 のとき、CCL[6]<CCL[7]
又、65Bブロック63の第8バイトが制御符号であれば、最終制御符号102−8は必ず0になる。この関係を式で表すと、
IsControl[7]=1 のとき、LCC[7]=0
となる。
【0080】
これら8つの関係式の中で、1つでも成立しないものがあれば、順序エラー112を1にする。次に、ステップS209へ進む。
【0081】
ステップS209では、8ビットデータ111−1〜111−8及びデータ/制御フラグ106−1〜106−8、順序エラー112を出力する。その後、ステップS200へ戻る。
【0082】
次に、この符号変換方法及び符号逆変換方法をコンピュ−タに実行させるための変換プログラムについて説明する。図3にフローチャ−トで示す変換プログラムを変換回路40内部の記憶装置(不図示)に格納しておく。変換回路40内部には各部41〜47を制御する制御部(不図示)も設けておく。そして、制御部は記憶装置から変換プログラムを読出し、その変換プログラムに従って各部41〜47を制御する。一方、図4及び図5にフローチャ−トで示す逆変換プログラムを逆変換回路80内部の記憶装置(不図示)に格納しておく。逆変換回路80内部には各部81〜88を制御する制御部(不図示)も設けておく。そして、制御部は記憶装置から逆変換プログラムを読出し、その逆変換プログラムに従って各部81〜88を制御する。
【0083】
なお、上記本発明では制御符号が2個の場合について説明したが、これに限定されるものではなく、制御符号が0個から8個の場合のいずれにも適応が可能なことは、例えば図8を参照すれば明白である。
【0084】
【発明の効果】
本発明による符号変換システムによれば、時系列に任意の順序で入力される2種類の符号を、第1種の符号を時系列符号として一括して先頭に配置し、第2種の符号を時系列符号として一括して前記第1種の符号の次に配置することにより1個のブロックに変換する符号変換システムであって、前記入力される符号の各々が第1種であるか第2種であるかを示す識別符号が前記符号とともに入力され、前記識別符号に基づき前記入力される符号が第1種であるか第2種であるかを識別し、入力される符号が第1種である場合はその符号を時系列符号として一括して先頭に配置し、残りの第2種の符号を時系列符号として一括して前記第1種の符号の次に配置することにより前記1個のブロックに変換する符号変換手段を含むため、冗長な演算を省略し、これにより少ないハ−ドウエア資源で64B/65B 変換及びその逆変換を実現することが可能となる。
【0085】
又、本発明による他の符号変換システム、符号変換方法、他の符号変換方法、変換プログラム及び他の変換プログラムも上記符号変換システムと同様の効果を奏する。
【図面の簡単な説明】
【図1】本発明による64B/65B 変換回路の一例の構成図である。
【図2】本発明による64B/65B 逆変換回路の一例の構成図である。
【図3】 64B/65B 変換回路40の動作を示すフロ−チャ−トである。
【図4】 64B/65B 逆変換回路80の動作を示すフロ−チャ−トである。
【図5】 64B/65B 逆変換回路80の動作を示すフロ−チャ−トである。
【図6】 65B ブロックから8B/10B符号へ変換する際の制約を示す図である。
【図7】65Bブロックについてデータ転送元を求めた結果を示す図である。
【図8】 65B ブロックの構成図である。
【図9】制御符号の4ビット表現の一例を示す図である。
【図10】 64B/65B 変換の一例を示す図である。
【符号の説明】
40 64B/65B 変換回路
41 制御符号変換部
42 データ符号レジスタ
43 制御符号レジスタ
44 制御符号位置レジスタ
45 符号カウンタ
46 制御符号カウンタ
47 65B ブロック生成部
80 64B/65B 逆変換回路
81 制御バイト判定部
82 データ/制御判定部
83 制御符号整列部
84 制御符号復元部
85 データ転送元決定部
86 データ符号整列部
87 データ/制御選択部
88 順序エラー判定部
Claims (24)
- 時系列に入力される2種類の符号のうち第1種の符号を入力順に先頭に配置し、第2種の符号を入力順に前記第1種の符号の次に配置することにより1個のブロックに変換する符号変換システムであって、
前記入力される符号の各々が第1種であるか第2種であるかを示す識別符号が前記符号とともに入力され、
前記識別符号に基づき前記入力される符号が第1種であるか第2種であるかを識別し、入力される符号が第1種である場合はその符号を入力順に第1レジスタに格納し、入力される符号が第2種である場合はその符号を入力順に第2レジスタに格納し、前記第1レジスタの内容を先頭に配置し、前記第2レジスタの内容を前記第1レジスタの内容の次に配置することにより前記1個のブロックに変換する符号変換手段を含むことを特徴とする符号変換システム。 - 前記符号変換手段には、前記先頭に配置された第1種符号の各々に前記入力時におけるその符号の位置を示す位置符号を付与する位置符号付与手段が含まれることを特徴とする請求項1記載の符号変換システム。
- 前記符号変換手段には、前記入力時における前記第1種符号を他の符号に変換する第1種符号変換手段が含まれることを特徴とする請求項1又は2記載の符号変換システム。
- 前記符号変換手段は、前記時系列に入力される符号に前記第1種の符号が含まれるか否かを示す第2の識別符号を、前記1個のブロックの先頭に配置することを特徴とする請求項1から3いずれか記載の符号変換システム。
- 前記第1種の符号は制御符号であり、前記第2種の符号はデータ符号であることを特徴とする請求項1から4いずれか記載の符号変換システム。
- 時系列に入力される2種類の符号のうち第1種の符号を入力順に先頭に配置し、第2種の符号を入力順に前記第1種の符号の次に配置することにより1個のブロックに変換された情報を逆変換する符号変換システムであって、
少なくとも前記1個のブロックに前記第1種の符号が含まれるか否かを示す識別符号が前記1個のプログラムの先頭に配置され、かつ前記1個のブロックに含まれる第1種の符号の各々に前記第1種の符号であることを示す最終制御符号及び前記1個のブロックに変換される前の符号の位置を示す位置符号が付与されており、
前記識別符号、最終制御符号及び位置符号に基づき前記1個のブロックに含まれる前記第1種の符号を元の位置に整列させ、前記1個のブロックに含まれる前記第2種の符号を残りの位置に時系列に整列させる符号逆変換手段を含むことを特徴とする符号変換システム。 - 前記符号逆変換手段には、前記1個のブロックに含まれる第1種の符号を元の符号に復元する第1種符号復元手段が含まれることを特徴とする請求項6記載の符号変換システム。
- 前記第1種の符号は制御符号であり、前記第2種の符号はデータ符号であることを特徴とする請求項6又は7記載の符号変換システム。
- 時系列に入力される2種類の符号のうち第1種の符号を入力順に先頭に配置し、第2種の符号を入力順に前記第1種の符号の次に配置することにより1個のブロックに変換する符号変換方法であって、
前記入力される符号の各々が第1種であるか第2種であるかを示す識別符号が前記符号とともに入力され、
前記識別符号に基づき前記入力される符号が第1種であるか第2種であるかを識別し、入力される符号が第1種である場合はその符号を入力順に第1レジスタに格納し、入力される符号が第2種である場合はその符号を入力順に第2レジスタに格納し、前記第1レジスタの内容を先頭に配置し、前記第2レジスタの内容を前記第1レジスタの内容の次に配置することにより前記1個のブロックに変換する符号変換ステップを含むことを特徴とする符号変換方法。 - 前記符号変換ステップには、前記先頭に配置された第1種符号の各々に前記入力時におけるその符号の位置を示す位置符号を付与するステップが含まれることを特徴とする請求項9記載の符号変換方法。
- 前記符号変換ステップには、前記入力時における前記第1種符号を他の符号に変換するステップが含まれることを特徴とする請求項9又は10記載の符号変換方法。
- 前記符号変換ステップは、前記時系列に入力される符号に前記第1種の符号が含まれるか否かを示す第2の識別符号を、前記1個のブロックの先頭に配置することを特徴とする請求項9から11いずれか記載の符号変換方法。
- 前記第1種の符号は制御符号であり、前記第2種の符号はデータ符号であることを特徴とする請求項9から12いずれか記載の符号変換方法。
- 時系列に入力される2種類の符号のうち第1種の符号を入力順に先頭に配置し、第2種の符号を入力順に前記第1種の符号の次に配置することにより1個のブロックに変換された情報を逆変換する符号変換方法であって、
少なくとも前記1個のブロックに前記第1種の符号が含まれるか否かを示す識別符号が前記1個のプログラムの先頭に配置され、かつ前記1個のブロックに含まれる第1種の符号の各々に前記第1種の符号であることを示す最終制御符号及び前記1個のブロックに変換される前の符号の位置を示す位置符号が付与されており、
前記識別符号、最終制御符号及び位置符号に基づき前記1個のブロックに含まれる前記第1種の符号を元の位置に整列させ、前記1個のブロックに含まれる前記第2種の符号を残りの位置に時系列に整列させる符号逆変換ステップを含むことを特徴とする符号変換方法。 - 前記符号逆変換ステップには、前記1個のブロックに含まれる第1種の符号を元の符号に復元するステップが含まれることを特徴とする請求項14記載の符号変換方法。
- 前記第1種の符号は制御符号であり、前記第2種の符号はデータ符号であることを特徴とする請求項14又は15記載の符号変換方法。
- 時系列に入力される2種類の符号のうち第1種の符号を入力順に先頭に配置し、第2種の符号を入力順に前記第1種の符号の次に配置することにより1個のブロックに変換する符号変換方法をコンピュータに実行させるための変換プログラムであって、
前記入力される符号の各々が第1種であるか第2種であるかを示す識別符号が前記符号とともに入力され、
前記識別符号に基づき前記入力される符号が第1種であるか第2種であるかを識別し、入力される符号が第1種である場合はその符号を入力順に第1レジスタに格納し、入力される符号が第2種である場合はその符号を入力順に第2レジスタに格納し、前記第1レジスタの内容を先頭に配置し、前記第2レジスタの内容を前記第1レジスタの内容の次に配置することにより前記1個のブロックに変換する符号変換ステップをコンピュータに実行させるための変換プログラム。 - 前記符号変換ステップには、前記先頭に配置された第1種符号の各々に前記入力時におけるその符号の位置を示す位置符号を付与するステップが含まれることを特徴とする請求項17記載の変換プログラム。
- 前記符号変換ステップには、前記入力時における前記第1種符号を他の符号に変換するステップが含まれることを特徴とする請求項17又は18記載の変換プログラム。
- 前記符号変換ステップは、前記時系列に入力される符号に前記第1種の符号が含まれるか否かを示す第2の識別符号を、前記1個のブロックの先頭に配置することを特徴とする請求項17から19いずれか記載の変換プログラム。
- 前記第1種の符号は制御符号であり、前記第2種の符号はデータ符号であることを特徴とする請求項17から20いずれか記載の変換プログラム。
- 時系列に入力される2種類の符号のうち第1種の符号を入力順に先頭に配置し、第2種の符号を入力順に前記第1種の符号の次に配置することにより1個のブロックに変換された情報を逆変換する符号変換方法をコンピュータに実行させるための変換プログラムであって、
少なくとも前記1個のブロックに前記第1種の符号が含まれるか否かを示す識別符号が前記1個のプログラムの先頭に配置され、かつ前記1個のブロックに含まれる第1種の符号の各々に前記第1種の符号であることを示す最終制御符号及び前記1個のブロックに変換される前の符号の位置を示す位置符号が付与されており、
前記識別符号、最終制御符号及び位置符号に基づき前記1個のブロックに含まれる前記第1種の符号を元の位置に整列させ、前記1個のブロックに含まれる前記第2種の符号を残りの位置に時系列に整列させる符号逆変換ステップをコンピュータに実行させるための変換プログラム。 - 前記符号逆変換ステップには、前記1個のブロックに含まれる第1種の符号を元の符号に復元するステップが含まれることを特徴とする請求項22記載の変換プログラム。
- 前記第1種の符号は制御符号であり、前記第2種の符号はデータ符号であることを特徴とする請求項22又は23記載の変換プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001355449A JP3747839B2 (ja) | 2001-11-21 | 2001-11-21 | 符号変換システム及びその変換方法並びに変換プログラム |
CA002412236A CA2412236C (en) | 2001-11-21 | 2002-11-20 | Code converter and method of code conversion |
US10/299,906 US6714146B2 (en) | 2001-11-21 | 2002-11-20 | Code converter and method of code conversion |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001355449A JP3747839B2 (ja) | 2001-11-21 | 2001-11-21 | 符号変換システム及びその変換方法並びに変換プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003157168A JP2003157168A (ja) | 2003-05-30 |
JP3747839B2 true JP3747839B2 (ja) | 2006-02-22 |
Family
ID=19167146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001355449A Expired - Fee Related JP3747839B2 (ja) | 2001-11-21 | 2001-11-21 | 符号変換システム及びその変換方法並びに変換プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US6714146B2 (ja) |
JP (1) | JP3747839B2 (ja) |
CA (1) | CA2412236C (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3879836B2 (ja) * | 2002-03-28 | 2007-02-14 | 日本電気株式会社 | 多重変換装置、逆多重変換装置および多重伝送システム |
US7809021B2 (en) * | 2002-07-10 | 2010-10-05 | Solarflare Communications, Inc. | Communication system and encoding method having low overhead |
EP2267605B1 (en) * | 2002-09-03 | 2013-10-23 | InterDigital Technology Corporation | Method for transferring a communication session from a first to a second terminal, and terminal |
US7356044B1 (en) * | 2002-12-20 | 2008-04-08 | Cypress Semiconductor Corporation | Method and apparatus for the deletion of bytes when performing byte rate adaptation |
US7929471B2 (en) | 2004-09-20 | 2011-04-19 | Lantiq Deutschland Gmbh | Data packet encapsulation protocol |
US8718067B2 (en) * | 2004-11-24 | 2014-05-06 | Lantiq Deutschland Gmbh | Pre-emption mechanism for packet transport |
US20060271886A1 (en) * | 2005-05-25 | 2006-11-30 | Wenstrand John S | Character entry system and method for electronic devices |
WO2010019250A2 (en) * | 2008-08-11 | 2010-02-18 | Solarflare Communications, Inc. | Method of synchronization for low power idle |
US8461848B2 (en) | 2008-12-10 | 2013-06-11 | Marvell International Ltd. | Cable diagnostics for Base-T systems |
JP6596240B2 (ja) * | 2015-06-08 | 2019-10-23 | 株式会社Fuji | 通信装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5255265A (en) * | 1992-05-05 | 1993-10-19 | At&T Bell Laboratories | Controller for input-queued packet switch |
US5473346A (en) * | 1993-04-12 | 1995-12-05 | Pollack; Jordan | Data input device and method |
-
2001
- 2001-11-21 JP JP2001355449A patent/JP3747839B2/ja not_active Expired - Fee Related
-
2002
- 2002-11-20 CA CA002412236A patent/CA2412236C/en not_active Expired - Fee Related
- 2002-11-20 US US10/299,906 patent/US6714146B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003157168A (ja) | 2003-05-30 |
US20030095054A1 (en) | 2003-05-22 |
CA2412236C (en) | 2006-04-11 |
US6714146B2 (en) | 2004-03-30 |
CA2412236A1 (en) | 2003-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3747839B2 (ja) | 符号変換システム及びその変換方法並びに変換プログラム | |
US20030076248A1 (en) | System and method for transmitting and storing data using an enhanced encoding scheme | |
US6768429B2 (en) | Multiplexing an additional bit stream with a primary bit stream with conversion between qB/rB and xB/yB encoded bit streams | |
JPH0683206B2 (ja) | データ通信方法及びネットワーク | |
US9529932B2 (en) | XML node labeling and querying using logical operators | |
KR20010014990A (ko) | 디지털 데이터용 저 디스패리티 코딩 방법 | |
TWI279091B (en) | Multiplexing an additional bit stream with a primary bit stream | |
Zeng | A sufficient condition producing 16-QAM Golay complementary sequences | |
US5633892A (en) | Hybrid line coding method and apparatus using 4B/3T encoding for payload bits and 1B/1T encoding for framing information | |
US6263353B1 (en) | Method and apparatus for converting between different digital data representation formats | |
JP2818936B2 (ja) | 2進データ処理方法および回路 | |
JP2940948B2 (ja) | データ圧縮方式 | |
CN114564676A (zh) | 一种提高区块链网络数据传输效率的方法 | |
JP2006211331A (ja) | データ符号化装置、データ復号装置及びデータ符号化/復号システム | |
US7508800B1 (en) | Block code mapping system and method | |
CA2179296C (en) | Device for establishing cell boundaries in a bit stream and crc calculation | |
Rindal et al. | SplitCommit: implementing and analyzing homomorphic UC commitments | |
CN115361680B (zh) | 医保数据智能共享交换系统 | |
CN110460405A (zh) | 业务信号传输方法及装置 | |
Wang et al. | Chaotic synchronization with limited information | |
CN116866004A (zh) | 一种基于二分同步的多智能体系统文字加解密方法 | |
KR100421951B1 (ko) | 전송시스템의 병렬 브이씨3 매핑회로 | |
KR102297290B1 (ko) | 네트워크 트래픽의 양자화 분석 장치 및 방법 | |
Kieffer | On the minimum rate for strong universal block coding of a class of ergodic sources | |
JPS62253251A (ja) | 信号伝送方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041203 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041214 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050214 |
|
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: 20051108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051121 |
|
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: 20091209 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091209 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101209 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101209 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111209 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111209 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121209 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121209 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131209 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |