JP3559480B2 - 可変長符号化方法およびその復号化方法 - Google Patents
可変長符号化方法およびその復号化方法 Download PDFInfo
- Publication number
- JP3559480B2 JP3559480B2 JP27018899A JP27018899A JP3559480B2 JP 3559480 B2 JP3559480 B2 JP 3559480B2 JP 27018899 A JP27018899 A JP 27018899A JP 27018899 A JP27018899 A JP 27018899A JP 3559480 B2 JP3559480 B2 JP 3559480B2
- Authority
- JP
- Japan
- Prior art keywords
- bit
- code
- bits
- rgr
- binary
- 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
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の属する技術分野】
この発明は可変長符号化方法およびその復号化方法に関し、特に1ビット誤りが符号系列中のどの部分に生じても必ず検出が可能であり、かつ順方向、逆方向共、同一のアルゴリズムで復号が可能な可変長符号化方法およびその復号化方法に関する。
【0002】
【従来の技術】
従来から、効率的な可変長符号(VLC符号)として、ゴロームライス符号(以下、GR符号と記す)が知られている。以下に、GR符号の符号化方法を簡単に説明する。
【0003】
一般に、シンボルn(n=0,1,…)に対するm(=2k )次のGR符号の符号語は、図8の3ステップで構成されるビット系列、すなわちバイナリ部、ユーナリ部およびターミネート部を連結することにより作成される。
【0004】
ステップS101では、バイナリ部が、nモジュロm、すなわちnをmで割り算した余りを、kビット(k= log2 m)の2進数で表すことにより作成される。次のステップS102では、ユーナリ部が、前記バイナリ部の後に[n/m]個の0を並べることにより作成される。ここに、[n/m]はnをmで割り算した時の整数部分を示す。最後のステップS103では、ターミネート部が、ユーナリ部の最後に1を付加することにより作成される。
【0005】
図9に、m次、すなわち2次(m=2)、4次(m=4)、8次(m=8)、および16次(m=16)のGR符号の一例が示されている。ここで、シンボルが「11」の場合の2次のGR符号「1000001」の作り方を、前記ステップS101〜S103に従って説明すると、ステップS101では、11を2で割り算した余り1が、kビットで表される。m=2の時は、k=1であるから、前記余り1が1ビットで表され、バイナリ部は「1」となる。ステップS102では、11/2の整数部の値=5の個数だけ0が並べられる。したがって、ユーナリ部は「00000」となる。ステップS103では、ターミネート部として、最後に1が付けられる。この結果、シンボル「11」に対する2次のGR符号は「1000001」となる。他のシンボルn、他の次数mに対しても、同様の方法で、GR符号化することができる。
【0006】
このGR符号は簡単な構成で符号化および復号化が可能であるという利点を有しており、現在JPEGにおいて標準化作業中のJPEG−LS方式のエントロピー符号化用符号に採用が検討される等、近年注目されている符号である。しかしながら、このGR符号は、符号データの伝送中に1ビットの誤りが生ずると、該ビット誤りが生じたことを検出したり、訂正したりすることが困難であるという問題がある。
【0007】
また、他の符号として、Wen らの提案によるリバーシブルGR符号(以下、W−RGR 符号と記す)が提案されている。この符号は、GR符号における各符号語のユーナリ部のビット(ユーナリビット)およびターミネート部のビット(ターミネーッティングビット)を、下記のように変更することによって作成される。
【0008】
(1) ユーナリ部の長さが0である符号語(例えば、4次の場合、シンボル0〜3の符号語、一般に2k 次の場合、シンボル0からシンボル2k −1に対応する符号語)は、ターミネーッティングビットを0に設定する。
【0009】
(2) ユーナリ部の長さが1以上の符号語は、ユーナリビットの先頭ビットを1に変更する。また、ターミネーティングビットは1のまま変更しない。なお、W−RGR 符号の各符号語のバイナリ部は対応するGR符号の各符号語のバイナリ部と同一である。
【0010】
図10に、2次(m=2)、4次(m=4)、8次(m=8)の場合のW−RGR 符号例を示す。ここで、4次のW−RGR 符号の作成の仕方を説明すると、シンボルが0〜3に対しては、前記GR符号のターミネーティングビット1が0に設定され、シンボル0〜3のW−RGR 符号は、それぞれ「000」、「010」、「100」および「110」になる。次に、シンボルが4以上の値に対しては、GR符号のユーナリ部の先頭ビットが1に変更され、ターミネーティングビットは1のままで変更されない。このため、シンボル4、5、6、…のW−RGR 符号は、それぞれ「0011」、「0111」、「1011」、…となる。
【0011】
このW−RGR 符号は、(可変長のユーナリ部+ターミネーティングビット)は前後対称(シンメトリカル)であり、バイナリ部は非対称であるが固定長であるため、容易に両方向から復号が可能となっている。また、GR符号と同一の符号長構成であるので、構成が簡単であり注目を浴びている。
【0012】
【発明が解決しようとする課題】
しかしながら、前記のW−RGR 符号は、バイナリ部に生じたビット誤りは復号データ数を変化させず、同一符号語長の符号語間の最小ハミング距離が1であるので、1ビットのデータ誤りが起きたことが検知できないという問題がある。
【0013】
本発明は前記した従来技術に鑑みなされたもので、その目的は、1ビット誤りが符号系列中のどの部分に生じても必ず検出が可能であり、かつ順方向、逆方向共、同一のアルゴリズムで復号が可能な可変長符号化方法およびその復号化方法を提供することにある。
【0014】
【課題を解決するための手段】
前記した目的を達成するために、本発明は、被符号化データであるシンボル値nを、予め与えられた次数mで割り算し、その余りqをkビット(k= log2 m)の2進数で表すステップと、前記kビットの2進数に連結される、前記割り算の整数部の値pに1を加えたビット数(p+1)のビット列を、その直前のkビットの偶数パリティにより作成するステップと、前記kビットの2進数と前記(p+1)ビットのビット列とを連結し、その最初と最後のビット列を反転するステップとからなる可変長符号化方法を提供した点に第1の特徴がある。
【0015】
この特徴によれば、1ビット誤りが符号系列中のどの部分に生じても必ず検出が可能となり、符号化データの伝送の信頼性を高めることができるようになる。また、本発明は、符号化データからkビットを読み込み最初のビットを反転するステップと、該kビットに続く1ビットを該符号化データから読み込み、このビットが直前のkビットの偶数パリティを満足するか否か判定するステップと、前記の判定が肯定である間は、該ステップを繰り返し、その繰り返し回数を計数すると共に、前記の判定が否定となった時に、前記最初のビットを反転したkビットと前記繰り返し回数の計数値とに基づいて、復号されたシンボル値を得るステップとからなる復号化方法を提供した点に第2の特徴がある。
【0016】
この特徴によれば、1ビット誤りが符号系列中のどの部分に生じていても必ず検出できると共に、順方向、逆方向共、同一のアルゴリズムで復号が可能となる。
【0017】
【発明の実施の形態】
以下に、図面を参照して、本発明を詳細に説明する。本発明の一実施形態を、図1を参照して説明する。図1は、本発明の一実施形態の可変長符号化方法を示すフローチャートである。
【0018】
この実施形態は、巡回パリティチェックを用いたリバーシブルGR符号(Parity−Check Reversible GR Code )(以下、P−RGR符号と記す)であり、シンボル値nに対する次数m(m=2k )のP−RGR符号化方法を図1、図2を参照して説明する。図2は、次数m=4の時のシンボル値9に対するP−RGR符号語の作成方法を示している。
【0019】
まず、ステップS1では、nモジュロmを、kビットの2進数で表す。例えば、図2の例では、9/4の余り1を2ビットの2進数で表し、「01」とする。なお、この時点では、符号「01」はGR符号のバイナリ部と同一であるが、以降のステップS2、S3で、変更される。
【0020】
次のステップS2では、([n/m]+1)ビットのユーナリ部が作成される。該ユーナリ部のビットは、それぞれ、その直前のkビットの偶数パリティとする。GR符号のターミネート部は、ここではユーナリ部に組み込まれ、特別にターミネート部としての処理は不要である。そのため、ユーナリ部の長さを[n/m]ビットではなく、[n/m]+1ビットとしている。図2の例では、([9/4]+1)ビット、すなわち3ビットのユーナリ部が作成され、該ユーナリ部のビットは、図示されているように、それぞれ、その直前の2ビットの偶数パリティとされている。
【0021】
ステップS3では、前記ステップS1、S2で作成されたビット列を連結し、連結したビット列の最初(先頭)と最後のビットを反転する。図2の例では、最初のビット「0」と、最後のビット「1」がそれぞれ反転されて、「1」、「0」となる。
【0022】
したがって、次数m=4の時のシンボル値9に対するP−RGR符号語は、「11100」となる。
【0023】
図3は、本発明のP−RGR符号化方法を実現するための機能ブロック図である。n/m演算部1は予め与えられた次数mを用いて、入力してくるシンボル値nを割り算し、余りqと整数部pを出力する。kビットの2進数変換部2は、前記余りqをkビットの2進数に変換する。また、(p+1)ビットの2進数作成部3は、直前kビットの偶数パリティにより(p+1)ビットの2進数を作成する。連結部4は、前記kビットの2進数変換部2と(p+1)ビットの2進数作成部3とからの出力ビットを連結する。該連結部4で連結されたビット列の最初と最後のビットは、反転部5により反転される。該反転部5からは、P−RGR符号語が出力される。
【0024】
次に、前記P−RGR符号語の復号化方法を、図4、図5を参照して説明する。図4のステップS11では、ユーナリ部の長さを測るカウンタCを0にリセットする。ステップS12では、符号系列中からkビットを読み込み、最初のビットを反転する。このkビットは順方向復号の時はバイナリ部と判定される。図5の例では、先頭から2(k=2)ビットの「11」の最初のビットを反転して「01」とする。
【0025】
ステップS13では、ビット系列中の次のビットを読みだす。ステップS14では、これが直前のkビットの偶数パリティを満足するか否か調べ、満足していればステップS15に進んで前記カウンタCを1インクリメントする。そして、ステップS13に戻り、前記の処理を繰り返す。図5の例では、符号の先頭から3、4番目のビットは偶数パリティと判断され、5番目のビットは奇数パリティと判断される。
【0026】
ステップS14で奇数パリティと判断されると符号語の終わりと判定し、ステップS16に進んで、バイナリ部とユーナリ部とを結合して、シンボル値が復号される。具体的には、(バイナリ部+C×2k )が復号されたシンボル値となる。図5の例では、バイナリ部=1,C=2,k=2であるので、シンボル値は9となる。
【0027】
さて、P−RGR符号について、符号系列を順方向から見て復号する場合と、符号系列を逆方向から見て復号する場合についての復号表を作成すると、図6のようになる。この復号表から見ても分かるように、P−RGR符号は、順方向および逆方向の両方向から見ても同じ構造を有しているため、逆方向からの復号も、図4の手順で、同様に行うことができる。ただし、復号されたシンボル値は、順方向の復号シンボル値とは異なるものになる。ちなみに、図5の例では、逆方向の符号語は「00111」であるので、その復号シンボル値は10となる。
【0028】
さて、従来のW−RGR符号は、ユーナリ部で1ビットの伝送誤りが発生した場合、誤りが起きたことが受信側で分かるが、バイナリ部で1ビットの誤りが発生した場合には、誤りが起きたことは受信側では分からない。しかしながら、本発明の実施形態のP−RGR符号は、ユーナリ部、バイナリ部にかかわらず、どこで誤りが発生しても、1ビットの伝送誤りであれば、誤りが起きたことを受信側は検知することができる。その理由を、以下に具体例を用いて説明する。
【0029】
この具体例では、シンボル値3,5,8,6という系列を、4次(m=4)のW−RGR符号とP−RGR符号でそれぞれ符号化し、系列中に1ビットの誤りが発生した場合を考える。シンボル値3,5,8,6という系列を、4次(m=4)のW−RGR符号とP−RGR符号でそれぞれ符号化すると、図7(a) に示されているように、W−RGR符号は、「1100111001011011」となる。一方、P−RGR符号は、「0111111100010010」となる。なお、図では、説明を分かりやすくするために、符号系列の各符号間にスペースが入れてあるが、実際の符号系列には、スペースが入らないことは勿論である。
【0030】
さて、前記符号系列の先頭から2番目のビットに伝送誤りが発生したとすると、図7(b) に示されているように、W−RGR符号は、「1000111001011011」となり、P−RGR符号は、「0011111100010010」となる。下線は誤りビットを示している。
【0031】
この1ビット誤りが起きた符号系列を受信側で復号すると、図7(c) に示されているように、W−RGR符号の先頭から1〜3ビットの符号「100」は符号表中のシンボル「2」に対応するので、これをシンボル値2と復号して、以下5,8、6と復号される。この結果、送信側で送りたいシンボル値は、3,5,8,6であるのに対して、受信側で復号されたシンボル値は、2,5,8,6と変わってしまい、受信側では符号系列にビット誤りが発生したことを検知することができない。
【0032】
これに対して、本実施形態のP−RGR符号では、1ビット誤りが起きた符号系列を受信側で復号すると、図7(c) に示されているように、P−RGR符号の先頭から1〜5ビットの符号「00111」は符号表中のシンボル値「10」に対応するので、これをシンボル値10と復号し、次の符号「11100」はシンボル値9と復号し、さらに次の符号「0100」はシンボル値7と復号するが、最後に01という符号語が残る。しかしながら、このような符号語は符号表に存在しないので、これにより、伝送中に誤りが起きたことが受信側で分かる。
【0033】
これを一般的に述べると、P−RGR符号では、同一符号語長の符号間でハミング距離は必ず2以上になっているので、1ビットの誤りが発生すると、同一符号長の他の符号語に復号されることは決してなく、必ずワード同期がずれることになる。そして、一度ワード同期がずれたら、再同期がかかることは決して起きない。
【0034】
しかしながら、従来のW−RGR符号は、バイナリ部で誤りが起きると、必ず同一符号長の他の符号に復号されるので、符号語の同期ずれは起こらず、誤りが起きたことが分からない。なお、ユーナリ部で誤りが起きた場合は、符号語の同期がずれるので、P−RGR符号と同様に、誤り検出が可能である。
【0035】
さて、一つの符号語中で、バイナリ部とユーナリ部の占めるビット数の割合を考えると、符号長が短い符号語ほどバイナリ部の占める割合が大きくなる。すなわち、符号語長が短い符号語に誤りが起きた場合は、その誤りはバイナリ部に発生する確率が高くなる。また、データ圧縮符号化を行う場合、出現確率の高いシンボルには短い符号語長の符号語が割り当てられるので、符号系列中では、短い符号語の出現確率が高くなる。したがって、実際のデータ圧縮符号化においては、バイナリ部のビット数が占める割合が大きくなるので、W−RGR符号ではバイナリ部で1ビット誤りが起きる確率が高くなり、誤りを検出できない確率が高くなる。この結果、本発明のP−RGR符号は、従来のW−RGR符号に比べて、信頼性の高い符号であるということができる。
【0036】
【発明の効果】
以上の説明から明らかなように、本発明によれば、1ビット誤りが符号系列中のどの部分に生じても必ず検出が可能となり、符号化データの伝送の信頼性を高めることができる。また、順方向、逆方向共、同一のアルゴリズムで復号が可能となるという利点がある。
【図面の簡単な説明】
【図1】本発明の一実施形態の符号化方法を示すフローチャートである。
【図2】本実施形態の具体例の説明図である。
【図3】本発明の一実施形態の符号化装置の構成を示すブロック図である。
【図4】本発明の一実施形態の復号化方法を示すフローチャートである。
【図5】本実施形態の具体例の説明図である。
【図6】本実施形態のP−RGR符号化の符号コードと、順、逆方向復号シンボルとを示す図である。
【図7】1ビット誤りが発生した時の、W−RGR符号とP−RGR符号の誤り検出の説明図である。
【図8】従来のGR符号化方法を示すフローチャートである。
【図9】GR符号の一例を示す図である。
【図10】W−RGR符号の一例を示す図である。
【符号の説明】
1…n/m演算部、2…kビットの2進数変換部、3…(p+1)ビットの2進数作成部、4…連結部、5…最初と最後のビット反転部。
Claims (2)
- 被符号化データであるシンボル値nを、予め与えられた次数mで割り算し、その余りqをkビット(k= log2 m)の2進数で表すステップと、
前記kビットの2進数に連結される、前記割り算の整数部の値pに1を加えたビット数(p+1)のビット列を、その直前のkビットの偶数パリティにより作成するステップと、
前記kビットの2進数と前記(p+1)ビットのビット列とを連結し、その最初と最後のビット列を反転するステップと、
からなる可変長符号化方法。 - 前記請求項1の可変長符号化方法によって符号化された符号語を復号化する方法であって、
符号化データからkビットを読み込み最初のビットを反転するステップと、
該kビットに続く1ビットを該符号化データから読み込み、このビットが直前のkビットの偶数パリティを満足するか否か判定するステップと、
前記の判定が肯定である間は、該ステップを繰り返し、その繰り返し回数を計数すると共に、前記の判定が否定となった時に、前記最初のビットを反転したkビットと前記繰り返し回数の計数値とに基づいて、復号されたシンボル値を得るステップと、
からなる復号化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27018899A JP3559480B2 (ja) | 1999-09-24 | 1999-09-24 | 可変長符号化方法およびその復号化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27018899A JP3559480B2 (ja) | 1999-09-24 | 1999-09-24 | 可変長符号化方法およびその復号化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001094435A JP2001094435A (ja) | 2001-04-06 |
JP3559480B2 true JP3559480B2 (ja) | 2004-09-02 |
Family
ID=17482758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27018899A Expired - Fee Related JP3559480B2 (ja) | 1999-09-24 | 1999-09-24 | 可変長符号化方法およびその復号化方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3559480B2 (ja) |
-
1999
- 1999-09-24 JP JP27018899A patent/JP3559480B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001094435A (ja) | 2001-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6658605B1 (en) | Multiple coding method and apparatus, multiple decoding method and apparatus, and information transmission system | |
US4847842A (en) | SM codec method and apparatus | |
EP1655845B1 (en) | Iterative decoding of serial concatenated codes with algebraic decoding of the outer code | |
JP2520551B2 (ja) | インタ―リ―ブ式の誤り訂正符号を復号化するための復号器能力強化方法 | |
EP3364542A1 (en) | Error correction coding method based on cascading of polar codes and repetition codes or multi-bit parity check codes | |
TW390085B (en) | A method of and apparatus for selecting cyclic redundancy check genetators in a concatenated code | |
KR101496182B1 (ko) | 최소거리가 확장된 극 부호 생성 방법 및 장치 | |
US7831884B2 (en) | Method of correcting message errors using cyclic redundancy checks | |
US10992416B2 (en) | Forward error correction with compression coding | |
US4703485A (en) | Method and apparatus for computing and implementing error detection check bytes | |
US20130346823A1 (en) | Encoding of data for transmission | |
RU2310273C2 (ru) | Способ кодирования-декодирования информации в системах передачи данных | |
KR20010057145A (ko) | Xor 코드, 이를 이용한 직렬 연접 부호기 및 복호기 | |
JP3545623B2 (ja) | 復号方法 | |
US8631307B2 (en) | Method for encoding and/or decoding multimensional and a system comprising such method | |
KR20040046649A (ko) | 에러 정정을 위한 부호화 장치 및 방법과 복호화 장치 및방법 | |
US5359610A (en) | Error detection encoding system | |
JP3559480B2 (ja) | 可変長符号化方法およびその復号化方法 | |
JP3704358B2 (ja) | ディジタル情報信号の送信および受信 | |
JP4379329B2 (ja) | Crc生成多項式の選択方法、crc符号化方法およびcrc符号化回路 | |
RU2608872C1 (ru) | Способ кодирования и декодирования блокового кода с использованием алгоритма Витерби | |
RU2667370C1 (ru) | Способ декодирования линейного каскадного кода | |
CN110034847B (zh) | 级联编码方法及装置 | |
RU2819177C1 (ru) | Способ кодовой цикловой синхронизации многоблочных сообщений | |
US20100095192A1 (en) | Berger invert code encoding and decoding method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040415 |
|
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: 20040518 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040521 |
|
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: 20090528 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090528 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100528 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |