Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3812289B2 - Encoder and decoder, and encoding method and decoding method - Google Patents
[go: Go Back, main page]

JP3812289B2 - Encoder and decoder, and encoding method and decoding method - Google Patents

Encoder and decoder, and encoding method and decoding method Download PDF

Info

Publication number
JP3812289B2
JP3812289B2 JP2000168868A JP2000168868A JP3812289B2 JP 3812289 B2 JP3812289 B2 JP 3812289B2 JP 2000168868 A JP2000168868 A JP 2000168868A JP 2000168868 A JP2000168868 A JP 2000168868A JP 3812289 B2 JP3812289 B2 JP 3812289B2
Authority
JP
Japan
Prior art keywords
data
buffer
area
series
partial
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
Application number
JP2000168868A
Other languages
Japanese (ja)
Other versions
JP2001345709A (en
Inventor
浩 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2000168868A priority Critical patent/JP3812289B2/en
Publication of JP2001345709A publication Critical patent/JP2001345709A/en
Application granted granted Critical
Publication of JP3812289B2 publication Critical patent/JP3812289B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、テレビ放送の送受信機、立体テレビの送受信機、またはそれらの蓄積装置などに関し、特に、全文の字幕とその要約字幕、立体視の左右画像など複数の同期したデータ系列に対する符号化器と復号器、及び、符号化方法と復号方法に関するものである。
【0002】
【従来の技術】
データ系列を可逆的に符号化する方法として、ZivとLempelによって提案されたユニバーサル符号化方法がある。
【0003】
このユニバーサル符号化方法を実現する従来の符号化器について、図4を用いて説明する。図4は、従来の符号化器の構成を示す構成図である。
図4において、40はバッファである。41はバッファ40に接続された演算器である。
【0004】
次に、図4に示す従来の符号化器の動作について説明する。
まず、データ系列を構成する各シンボルは、バッファ40に入力される。このバッファ40に入力された各シンボルは、演算器41で符号化される。なお、一度に符号化されるシンボルの数は、バッファ40の容量や内容に依存する。その後、バッファ40に入力された各シンボルは、符号化されたシンボルの数だけシフトされ、この空いた部分に次のシンボルが書き込まれる。
以後、入力されるデータ系列が全て符号化されるまで、バッファ40の更新とシンボルの符号化とが繰り返し行われる。
【0005】
次に、図4に示す従来の符号化器の動作について、図5を用いて詳細に説明する。
図5は、IEEE トランザクション オン インフォメーション セオリー(Transactions on Information Theory)誌の1977年5月号、337〜343ページに掲載された論文"A universal algorithm for sequential data compression"(J. Ziv and A. Lempel)に開示されたデータ符号化アルゴリズムの流れ図である。なお、符号化されるデータ系列をSとし、このデータ系列Sのうちp番目の位置から始まりq番目の位置で終わるデータ系列Sの部分列をS(p、q)とする。
また、バッファをBとし、このバッファB内に記録されたp番目の部分列をB(p)とする。また、バッファB内に記録されたp番目からq番目の部分列をB(p、q)とする。また、バッファBに記憶可能なシンボル数をnとする。なお、nは容量であってもよい。
【0006】
まず、ステップ50では、バッファBの初期化が行われる。つまり、バッファBの最初から(n−Ls)番目までのシンボルを0とし、残りの(n−Ls+1)番目からn番目までのLs個にはデータ系列Sの部分列S(1、Ls)のシンボルを入力する。
なお、バッファBの最初から(n−Ls)番目までを、バッファの第一の領域とし、この第一の領域に記録されるデータを第一のデータとする。また、バッファBの(n−Ls+1)番目からn番目までを、バッファの第二の領域とし、この第二の領域に記録されるデータを第二のデータとする。
また、Lsは適当なシンボル数である。しかし、Lsはnに対応して容量であってもよい。
【0007】
以後、バッファBの最初から(n−Ls)番目までには、以前に符号化処理されたシンボルが入り、(n−Ls+1)番目以降には、これから符号化されるシンボルが入る。
【0008】
仮に、n=18、Ls=9、S=001010210210212021021200とする。なお、この各シンボルは3進法で表現されているものとする。この例における、現時点でのバッファBの内容(B1)は、B1=000000000001010210となる。
このステップ50を終了すると、ステップ51に進む。
【0009】
次に、ステップ51では、バッファB内に見られる同一文字列を検索する。つまり、バッファB内に残っている過去のデータ系列であるB(1、n−Ls)から、バッファB(n−Ls+1、n−Ls+x)と一致する部分列を検索する。なお、より正確には、検索される部分列は、その先頭のシンボルが既に符号化されたシンボル(B(1、n−Ls)の中)から始まればよく、その検索される部分列の最後のシンボルはこれから符号化されるデータ(B(n−Ls+1)以降)の中にあってもよい。なお、xは適当な整数値である。
【0010】
このような検索される部分列のうち、整数値xが最大となる最長の部分列をLc、その長さをc(=max(x))とする。部分列LcがバッファBのp番目の位置から始まるとすれば、Lc=B(p、p+c−1)=B(n−Ls+1、n−Ls+c)が成り立つ。この例では、Lc=00となる。
この部分列Lcのはじまる位置pは複数考えられるが、仮にp=9とする。この部分列Lcに、B(n−Ls+c+1)番目のシンボルを追加した文字列をSiとする。このシンボルは、過去のシンボルと一致しない新しいシンボルにおける最初のシンボルである。なお、文字列Siの長さをliとすると、li=c+1である。また、Si=B(n−Ls+1、n−Ls+li)である。上述の例では、Si=001となる。
ステップ51が終了すると、ステップ52に進む。
【0011】
次に、ステップ52では、得られた文字列Siを符号化する。このステップ52での符号化とは、文字列Siを、バッファB内での位置や長さ等を示すビットストリームCiに変換するものである。このビットストリームCiは、ビットストリームCi(1)、ビットストリームCi(2)、及びビットストリームCi(3)からなり、Ci=(Ci(1)、Ci(2)、Ci(3))と表現される。そして、このビットストリームCi(1)は、バッファB内における文字列Siの始点であり、Ci(1)=p−1で求められる。また、ビットストリームCi(2)は、文字列Siにおける部分列Lcの長さであり、Ci(2)=li−1で求められる。さらに、ビットストリームCi(3)は文字列Siの最後のシンボルである。
【0012】
そして、これらの各ビットストリームCi(m)を表現するために必要なシンボル数(桁数)は、以下のように定められる。なお、mは自然数である。ビットストリームCi(1)はlog(n−Ls)で求められ、ビットストリームCi(2)はlog(Ls)で求められ、ビットストリームCi(3)は1である。なお、対数の底はシンボルが取り得る値の数であり、例えば、シンボルが2進数の場合は2、シンボルが3進数の場合は3となる。また、計算結果が整数でない場合には、最も近い整数に切り上げられる。
【0013】
なお、上述の例では、ビットストリームC1(1)及びビットストリームC1(2)の桁数は、それぞれ2シンボルとなる。ゆえに、上述の算式で、現時点で得られた計算値を所定の桁数で表現すると、C1(1)=22、C1(2)=02、C1(3)=1となり、C1=22021となる。なお、この例の各ビットストリームC1(m)は3進法で表現されている。
この符号化により得られたビットストリームC1は、演算器41から出力される。
ステップ52が終了すると、ステップ53に進む。
【0014】
ステップ53では一連の処理を終了するか否か終了判定を行う。つまり、データ系列の全てのシンボルが符号化されたかどうか判定する。そして、全てのシンボルが符号化された場合には、一連の処理を終了し、そうでなければ、ステップ54に進む。
【0015】
ステップ54では、バッファBの内容を更新する。まずはバッファBの内容を、文字列Siの長さliだけシフトする。これによって、長さli個の最も古いシンボルがバッファBから廃棄される。そして、シフトによって空いた部分には、データ系列Sの新しいシンボルが入力される。
【0016】
なお、上の例でB1に続く現時点でのバッファの内容をB2とする。上述の例では、まずバッファBの内容を左に3シンボルシフトして、B2=000000001010210XXXとなる。そして、XXXの部分には、データ系列Sの次のシンボル210が入力される。ゆえに、B2=000000001010210210となる。
ステップ54を終了すると、ステップ51に戻る。
【0017】
以後、全てのシンボルの符号化が終わるまで、ステップ50〜54が繰り返される。上述の例では、C2=21102、B3=000010102102102120、C3=20212、B4=210210212021021200、C4=02220…となる。なお、演算器41からは、ビットストリームC1、ビットストリームC2、ビットストリームC3、ビットストリームC4、…が出力される。
【0018】
【発明が解決しようとする課題】
従来のZiv−Lempel符号化器は、以上のように構成されており、単一のデータ系列を符号化することはできたが、複数のデータ系列を符号化することはできなかった。
【0019】
本発明は、このような問題点を解決するためになされたものであり、複数のデータ系列を効率よく符号化する符号化器及びこの符号化器に対応する復号器を得ることを目的とするものである。
【0020】
【課題を解決するための手段】
この発明にかかる符号化器は、複数のデータ系列のデータが入力され、任意のデータ系列のデータを選択して出力するセレクタと、n個(nは自然数)のデータを記憶する記憶領域を有し、記憶領域の1番目からn−Ls番目(Lsは1より大きくnより小さい自然数)の領域を第一の領域、n−Ls+1番目からn番目の領域を第二の領域とし、第二の領域にはセレクタにより選択されたデータ系列のデータが順次記録されるバッファと、バッファの第一の領域に予め記録されている第一のデータと、バッファの第二の領域に記録された第二のデータとを比較し、第一の領域及び第二の領域のいずれにも記録される部分データを検索し、部分データを所定の形式のストリームに符号化して出力する演算器と、記憶領域に記憶されているn個のデータを部分データに基づき決められるデータ数だけ記憶領域の1番目の領域側へシフトしてバッファに記録された第一のデータ及び第二のデータを更新し、セレクタの選択を切り替え、データ系列とは異なるデータ系列のデータを順次バッファの第二の領域に記録するよう制御する制御部とを備えたものである。
【0021】
また、この発明にかかる符号化器の制御部は、部分データの長さ分だけ、バッファの記憶領域に記憶されたn個のデータのうち最も古いデータを削除し、この一部が削除された記憶領域に記録されたデータを記憶領域の1番目の領域側へシフトさせ、記憶領域内の削除によって空いた部分に、セレクタによって切り替えられたデータ系列のデータを記録するものである。
【0022】
さらに、この発明にかかる符号化器の制御部は、第一の領域内で検索された部分データ又は第二の領域内で検索された部分データの一方をバッファの記録から削除し、この一部が削除された記憶領域に記録されたデータを記憶領域の1番目の領域側へシフトさせ、記憶領域内の削除によって空いた部分に、セレクタによって切り替えられたデータ系列のデータを記録するものである。
【0023】
また、この発明にかかる符号化器の演算器は、所定の形式のストリームに同期コードを付するものである。
【0024】
この発明にかかる復号器は、所定の形式が、少なくとも検索された部分データの第一の領域における開始位置と該部分データの長さとを示す形式であるものである。
【0025】
また、この発明にかかる復号器は、符号化器から出力された複数のデータ系列が符号化されたストリームを入力し、予め復号されたデータに基づき、ストリームを復号して部分データを得る演算器と、演算器に接続されるとともに復号されたデータが記憶され、演算器によってデータが復号されると記憶されたデータが更新されるバッファと、演算器に接続され、順番にデータ系列を切り替え、演算器によって復号された部分データを複数のデータ系列毎に分配する分配器を有するものである。
【0026】
この発明にかかる符号化方法は、複数のデータ系列から、任意のデータ系列を選択するステップと、n個(nは自然数)のデータを記憶する記憶領域を有するバッファに対し、この記憶領域の1番目からn−Ls番目(Lsは1より大きくnより小さい自然数)の領域を第一の領域、n−Ls+1番目からn番目の領域を第二の領域とし、第二の領域に選択されたデータ系列のデータを順次記録するステップと、バッファの第一の領域に予め記録されている第一のデータと、バッファの第二の領域に記録された第二のデータとを比較し、第一の領域及び第二の領域のいずれにも記録される部分データを検索するステップと、検索により得られた部分データを所定の形式のストリームに符号化して出力するステップと、記憶領域に記憶されているn個のデータを部分データに基づき決められるデータ数だけ記憶領域の1番目の領域側へシフトしてバッファに記録された第一のデータ及び第二のデータを更新するステップと、データ系列とは異なるデータ系列に切り替え、この切り替えられたデータ系列のデータを順次バッファの第二の領域に記録するステップとを有するものである。
【0027】
この発明にかかる復号方法は、所定の形式が、少なくとも検索された部分データの第一の領域における開始位置と該部分データの長さとを示す形式であるものである。
この発明にかかる復号方法は、符号化方法で複数のデータ系列が符号化されたストリームを入力し、予め復号されバッファに記憶されたデータに基づき、ストリームを復号して部分データを得る復号ステップと、復号ステップによってデータが復号されるとバッファに記憶されたデータを更新する更新ステップと、順番にデータ系列を切り替え、復号ステップによって復号された部分データを複数のデータ系列毎に分配する分配ステップとを有するものである。
【0028】
【発明の実施の形態】
実施の形態1.
本発明による複数のデータ系列の符号化方法を実現する符号化器の一実施形態について、図1を用いて説明する。図1は、本実施形態の複数のデータ系列の符号化方法を実現する符号化器の構成を示す構成図である。
図1において、10はセレクタである。11はセレクタ10に接続されたバッファである。12はバッファ11に接続された演算器である。
【0029】
次に、図1に示す本実施形態の複数のデータ系列の符号化方法を実現する符号化器の動作について説明する。
複数のデータ系列はセレクタ10に並列に入力され、このうちひとつが選択されてバッファ11に送られる。バッファ11に送られたデータ系列の内容は演算器12に読み込まれ、従来例の場合と同様に、符号化が行われ、得られたビットストリームCiが演算器から出力される。そして、あるビットストリームCiが演算器から出力されると、セレクタ10は、バッファ11に入力されるデータ系列を異なる次順のデータ系列に切り替える。
【0030】
次順のデータ系列のシンボルが入力されたバッファ11は、このデータ系列を用いて、バッファ11の記録内容を更新する。そして、演算器12は、更新されたバッファ11の内容を読み込み、そのバッファ11に記録されたデータ系列のシンボルを符号化する。
以下、全てのデータ系列のシンボルが符号化されるまで、セレクタ10による切替えと、バッファ11の内容の更新と、各データ系列のシンボルの符号化が繰り返される。
【0031】
次に、図1に示す本実施形態の複数のデータ系列の符号化方法を実現する符号化器の動作について、図2を用いて詳細に説明する。図2は、図1に示す本実施形態の複数のデータ系列の符号化方法を実現する符号化器の動作を示す流れ図である。なお、一連の処理の制御は、図示されていない制御部により行われる。また、初期状態において、セレクタ10は1番目のデータ系列1を選択するものとする。
【0032】
まず、ステップ20では、データ系列1(S(1))を用いて、バッファ11の初期化を行う。なお、n=18、Ls=9、S(1)=001010210210212021021200とする。この時点でのバッファ11の内容は、B1=000000000001010210となる。また、データ系列1とは異なる次順のデータ系列2(S(2))を、S(2)=0010102102120211200とする。
このステップ20が終了すると、ステップ21に進む。
【0033】
ステップ21では、バッファ11内に繰り返し見られる部分列Lcを検索する。そして、演算器12は、バッファ11内に見られた最長の部分列Lcを検索し、それに続く1シンボルを付加して文字列Siを算出する。この時点での文字列Si(S1)は、S1=001となる。なお、文字列Siは、部分データともいう。
このステップ21が終了すると、ステップ22に進む。
【0034】
次に、ステップ22では、得られた文字列Siを符号化して、ビットストリームCiを得る。なお、Ci=(Ci(1)、Ci(2)、Ci(3))である。この時点でのビットストリームCi(C1)は、C1=22021となる。
ステップ22が終了すると、ステップ23に進む。
【0035】
ステップ23では、全てのデータ系列の全てのシンボルが符号化されたかどうか終了判定を行う。
全てのデータ系列の全てのシンボルが符号化された場合には一連の処理を終了し、そうでなければ、ステップ24に進む。
【0036】
ステップ24では、データ系列の切り替えを行う。つまり、あるデータ系列の文字列Siに対応するビットストリームCiが演算器12から出力されても、まだ符号化されるべきデータ系列のシンボルが残っているか判断し、残っている場合には、セレクタ10を切り替え、あるデータ系列の残っているシンボルをバッファ11に入力するよう準備する。
ステップ24が終了すると、ステップ25に進む。
【0037】
ステップ25では、切り替えられたデータ系列のシンボルの入力に際してバッファ11を更新する。まずは、現在のバッファ11の内容を、文字列Siの長さliだけシフトする。これにより、長さli個の最も古いシンボルがバッファ11から消去される。なお、このシフトは、新たなデータ系列が書き込まれる前に行われる。
上述の例では、バッファ11は3シンボルだけシフトされるから、B1=00000001010210XXXとなる。なお、Xの部分は任意のシンボルである(例えば0)。
【0038】
そして、このバッファ11のB(n−Ls+1、n)部分は、次順の異なるデータ系列のまだ符号化されていない最初の部分列に置き換えられ、バッファ11の更新が終了する。
上述の例の場合においては、更新された時点でのバッファ11の内容をB2とすれば、B2=000000001001010210となる。つまり、バッファ11の内容B1の後ろ9シンボルが、データ系列S(2)の最初の9シンボルに置き換えられている。
【0039】
そして、B1におけるB(n−Ls+1、n)部分(=010210XXX)は、再びデータ系列1に切り替えられた時に、(010210)に継続する(×××)部分をデータ系列S(1)の次なるシンボルで補った上で、バッファ11に入力され、一連の処理が施される。
ステップ25が終了すると、ステップ21に戻る。
【0040】
以後、全てのデータ系列の符号化が終わるまで、ステップ21からステップ25が繰り返される。
上述の例の場合、以後、C2=20111、B3=000100101010210210、C3=21102、B4=001010102021021202、C4=21021、B5=010102021102102120、C5=10101…となる。
なお、ビットストリームC1、ビットストリームC2、ビットストリームC3、ビットストリームC4、…は演算器12から出力される。
また、本実施形態の符号化器における文字列Siの検出方法、及びビットストリームCiへの符合化方法については、従来例と同様であり、その説明を簡略化した。
【0041】
このように、本実施形態の符号化器は、複数のデータ系列が順次切り替えられて符号化されるので、互いに相手のデータ系列で検索された一致文字列を用いて符号化することができ、複数の類似データ系列を効率よく符号化することができる。
【0042】
実施の形態2.
次に、本発明の他の実施形態について説明する。
本実施形態の符号化器のバッファ11は、同じ文字列が重複して記憶されないように、重複する文字列は削除している。つまり、バッファ11に記憶された過去のデータのうち、新しく入力されたデータと一致する部分は消去され、バッファ11がシフトされる。なお、消去されるデータは、過去のデータ(シンボル)でも、新しく入力されたデータ(シンボル)でもよい。
【0043】
以下に、例を述べる。データ系列S(1)は、S(1)=001010210210212021021200であるとする。また、データ系列S(1)とは異なるデータ系列S(2)は、S(2)=0010102102120211200であるとする。なお、バッファの初期化から、文字列Siの検索、そして得られた文字列Siを符号化するまでは、実施形態1と同じであり、その説明を省略する。
その後、ビットストリームCiを出力し、バッファ11を更新する時点で、バッファ(B1)はB1=000000000001010210であり、文字列(S1)はS1=001であり、位置(p)はp=9であり、文字列の長さ(l1)はl1=3が得られている。
【0044】
この文字列S1のうち、最初の2シンボル(00)は、バッファの中で繰り返し用いられた文字列Lcである。しかし、p=9であるから、(00)のうち、最初の0は過去に符号化されたシンボルであり、2番目の0は符号化する文字列が自分自身と一致したシンボルである。なお、いまの場合、最初の0は初期化のステップで入力された0であるから厳密には過去に符号化されたシンボルではないが、符号化が進むと、バッファのこの部分には過去に符号化されたシンボルが入力される。
【0045】
そこで、バッファの更新ステップ(ステップ25)では、過去に符号化されたシンボル(例では最初の0)をバッファから削除し、その削除したデータの分だけシフトする。つまり、上述の例の場合では、バッファB1はB1=00000000001010210Xとなり、1シンボル分左にシフトする。なお、Xは任意である。また、このとき削除されたシンボルの数をdとする。
【0046】
そして、次に、文字列Siに相当する部分を、過去に符号化されたバッファの記録領域に入るように、残りの(li−d)シンボルだけシフトする。上述の例では、B1=000000001010210XXXとなる。以降は、実施形態1と同様に、バッファのB(n−Ls+1、n)部分を新しいデータ系列(上述の例ではデータ系列S(2))の先頭の文字列で置き換え、バッファが更新sれる。つまり、B2=000000001001010210となる。
【0047】
上述の例の場合、以降、以下のように進む。C2=20111、B3=000000101010210210、C3=21102、B4=000010102021021202、C4=21021、B5=000101021102102120、C5=12110…。なお、B5(2、8)は、データ系列S(1)又はデータ系列S(2)の最初の7シンボルと一致する。
【0048】
バッファの更新を上述のように行うことにより、複数のデータ系列間の重複するデータが削除されるので、一致する文字列が長くなり、符号化効率が向上する場合がある。また、複数のデータ系列間の重複するデータを削除できるので、バッファの使用効率が向上する。さらに、複数のデータ系列間の重複するデータを削除してバッファを更新するので、バッファの大きさを小さくすることができる。
【0049】
また、複数のデータ系列が順次切り替えられて符号化されるので、互いに相手のデータ系列で検索された一致文字列を用いて符号化することができ、複数のデータ系列を効率よく符号化することができる。また、異なる系列間で重複する文字列をバッファから削除するようにしたので、共通する文字列はその生起順に記憶される確率が高くなり、一致文字列の長さが長くなって、符号化効率を向上することができる。
【0050】
実施の形態3.
次に、本発明の他の実施形態について説明する。
本実施形態の符号化器は、複数のデータ系列間で同期をとるために、各データ系列に同期信号を付加して符号化するものである。なお、本実施形態の符号化方法は、実施形態1又は実施形態2と併用してもよい。なお、同期信号(同期コード)とは、複数のデータ系列間のあるシンボルが同時に生じるべきものであることを示す情報である。
【0051】
例えば、ステレオ画像の右画像のデータ系列と左画像のデータ系列とにおいて、空間的に近い位置を示すデータ同士は時間的にも近い時点で生じるべきものであり、同期をとる必要がある。また、字幕情報における全文の字幕データのデータ系列とその要約版のデータ系列とでは、意味的に近いデータ同士であり、時間的に近い時点で生じさせるべきものであり、同期をとる必要がある。これらの同期は、各データ系列間の適当な時点で、強制的に同期信号の発生させ、一致させることによって実現される。
【0052】
なお、同期信号は、ビットストリームCi(1)、ビットストリームCi(2)、ビットストリームCi(3)のいずれに多重してもよい。この同期コードのため、ビットストリームCi(1)はシンボル数n、ビットストリームCi(2)はシンボル数Lsを制限し、空いたところに同期コードを割り当てる。
【0053】
実施形態1や実施形態2の例では、シンボル数nはn=18であったが、これを17(シンボル数LsはLs=9のまま)にすることにより、ビットストリームCi(1)=22を同期コードとすることができる。また、データ系列が文字系列であるときは、文字として使用されないコード(例えばASCIIの¥(円記号)など)をビットストリームCi(3)に多重して同期コードとしてもよい。
【0054】
この同期コードを用いることにより、複数のデータ系列間の任意のブロックにおいて、全てのデータ系列と同じブロックが全て符号化し終えたかどうか知ることができる。なお、ブロックとは、各データ系列における同意の部分であり、ある同期点から次の同期点までのデータ系列の集合のことである。つまり、あるデータ系列におけるあるブロックのデータの符号化が終了しても、他のデータ系列の対応するブロックの符号化が終了しない限り、セレクタ10によって選択されず、次のブロックの符号化ができない。それゆえ、相互データ系列間で、ブロック単位での同期を図ることができる。
【0055】
このように、本実施形態の符号化器は、複数のデータ系列を同期するための情報を符号化するようにしたので、バッファ内のデータに一致文字列を発見する確率が高くなり、符号化効率を向上することができる。
また、同期信号を各データ系列間で同様のタイミングで付加することにより、類似するデータ系列間において、時間的に対応する部分を、互いのデータ系列を参照しながら符号化することができ、一致する文字列Siが長くなり、符号化効率が向上する。
【0056】
実施の形態4.
本発明による複数のデータ系列の符号化方法で符号化された複数のデータ系列を復元する復号器の一実施形態について、図3を用いて説明する。図3は、本実施形態の複数のデータ系列の符号化方法で符号化された複数のデータ系列を復号する復号器の構成を示す構成図である。
図3において、30は演算器である。31は演算器30に接続されたバッファである。32は演算器30に接続された分配器である。
【0057】
次に、図3に示す本実施形態の複数のデータ系列の符号化方法で符号化されたデータ系列を復号する復号器の動作について説明する。
符合器で符号化され出力されたビットストリームCiは、演算器30に順次入力される。入力されたビットストリームCiを用いて、文字列Siは、一意に復号される。すなわち、ビットストリームCi(1)に示されたバッファ内のアドレス位置pのシンボルから、ビットストリームCi(2)に示された長さ(li−1)の文字列を、B(n−Ls+1)から順番に復元し、最後にビットストリームCi(3)を付加することによって、文字列Siを得る。
【0058】
なお、ビットストリームCiは、Ci=(Ci(1)、Ci(2)、Ci(3))であり、ビットストリームCi(1)はCi(1)=p−1であり、ビットストリームCi(2)はCi(2)=li−1であり、ビットストリームCi(3)は文字列Siの最後のシンボルである。
演算器30は、バッファ31を参照しながらこの処理を行い、文字列Siを分配器32に与える。分配器32は、得られた文字列Siを、もとのデータ系列に分配する。
【0059】
文字列Siが復号される毎にバッファ31は更新される。バッファ31の更新は、符号化器におけるバッファ31のB(1、n−Ls)の部分が再現されるように行われる。すなわち、実施形態1の符号化方法の場合には、復元された文字列Siを順番にバッファ31に記憶していく。実施形態2の符号化方法の場合には、バッファ31内の一致する文字列Siは廃棄した後、新しく復号されたシンボルをバッファ31に書き込む。
【0060】
このように、本実施形態の復号器は、データを復号する演算器の後段にこのデータを複数の系列に切り替えて出力する分配器を設けたので、実施形態1又は実施形態2に示す符号化器で符号化されたビットストリームを効率よく復号することができる。また、本実施形態の復号器は、類似する複数のデータ系列を全て復元することができる。
なお、符合器と復号器との間で伝送されるデータ系列の数は、あらかじめ合意されているものとする。この符合器と復号器との合意に基づき、分配器32は、順番にデータ系列を切り替え、複数のデータ系列を正しく復号することができる。
【0061】
実施の形態5.
次に、本発明の他の実施形態について説明する。
本実施形態の復号器は、複数の類似するデータ系列のうちから、一部のデータ系列だけを選択的に復元するものである。つまり、本実施形態の復号器の演算器30は、復号の要求がないデータ系列に対して、バッファの更新にのみ必要な信号処理を行うだけで、文字列Siを算出しない。
【0062】
例えば、実施形態2で符号化されたデータでは、p+li−2=n−Lsの時、つまり一致部分列Lcがもっとも最近に符号化された部分列である時、文字列Siを復号することなく、バッファ31を左に1シンボルだけシフトし、ビットストリームCi(3)を空いた部分に書き込む。このことによりバッファ31の更新だけが完了する。
【0063】
このように、本実施形態の復号器は、データを復号する演算器の後段にこのデータを複数の系列に選択的に切り替えて出力する分配器を設けたので、実施形態1又は実施形態2に示す符号化器で符号化されたビットストリームから一部のデータ系列を効率よく復号することができる。
【0064】
実施の形態6.
次に、本発明の他の実施形態について説明する。
本実施形態の復号器は、複数のデータ系列間の同期をとるために付加された同期信号を含む各データ系列を復号するものである。本実施形態の復号器の分配器32は、検出された同期信号に応じて、その出力を切り替えるようにしてもよい。この場合、分配器32は、同期信号が検出されたデータ系列に対しては、他のデータ系列の該当するブロックの復号が終了するまで、次のブロックの出力が禁止される。
【0065】
このように、本実施形態の復号器は、データを復号する演算器の後段に、伝送された同期信号に基づいて複数の系列に切り替えて出力する分配器を設けたので、実施形態3に示す符号化器で符号化されたビットストリームを効率よく復号することができる。
また、この復号器は、符号化器で符号化されたビットストリームCiを、各データ系列間で同期させた上で、正しく復号することができる。
なお、本実施形態の復号器は、実施形態3の符合器に対応するものであり、実施形態4又は実施形態5と併用してもよい。
【0066】
【発明の効果】
この発明にかかる符号化器は、複数のデータ系列のデータが入力され、任意のデータ系列のデータを選択して出力するセレクタと、n個(nは自然数)のデータを記憶する記憶領域を有し、記憶領域の1番目からn−Ls番目(Lsは1より大きくnより小さい自然数)の領域を第一の領域、n−Ls+1番目からn番目の領域を第二の領域とし、第二の領域にはセレクタにより選択されたデータ系列のデータが順次記録されるバッファと、バッファの第一の領域に予め記録されている第一のデータと、バッファの第二の領域に記録された第二のデータとを比較し、第一の領域及び第二の領域のいずれにも記録される部分データを検索し、部分データを所定の形式のストリームに符号化して出力する演算器と、記憶領域に記憶されているn個のデータを部分データに基づき決められるデータ数だけ記憶領域の1番目の領域側へシフトしてバッファに記録された第一のデータ及び第二のデータを更新し、セレクタの選択を切り替え、データ系列とは異なるデータ系列のデータを順次バッファの第二の領域に記録するよう制御する制御部とを備えたものであり、複数のデータ系列が順次切り替えられて符号化されるので、互いのデータ系列で検索された一致文字列を用いて符号化することができ、複数の類似データ系列を効率よく符号化することができる。
【0067】
また、この発明にかかる符号化器の演算器は、所定の形式のストリームに同期コードを付するものであり、複数のデータ系列で同期をとることができるため、バッファ内のデータに一致文字列を発見する確率が高くなり、符号化効率を向上させることができる。
【0068】
また、この発明にかかる復号器は、複数のデータ系列が符号化されたストリームを入力し、予め復号されたデータに基づき、ストリームを復号して部分データを得る演算器と、演算器に接続されるとともに復号されたデータが記憶され、演算器によってデータが復号されると記憶されたデータが更新されるバッファと、演算器に接続され、順番にデータ系列を切り替え、演算器によって復号された部分データを複数のデータ系列毎に分配する分配器を備えたものであり、複数のデータ系列のストリームを効率よく復号することができる。
【0069】
この発明にかかる符号化方法は、複数のデータ系列から、任意のデータ系列を選択するステップと、この選択されたデータ系列のデータをバッファに記録するステップと、バッファの第一の領域に記録された第一のデータと、バッファの第二の領域に記録された第二のデータとを比較し、第一の領域及び第二の領域のいずれにも記録される部分データを検索するステップと、検索により得られた部分データを所定の形式のストリームに符号化して出力するステップと、部分データに基づき、バッファに記録された第一のデータ及び第二のデータを更新するステップと、データ系列とは異なるデータ系列に切り替え、この切り替えられたデータ系列のデータを、その記録内容が更新されたバッファに記録するステップとを有するものであり、複数のデータ系列が順次切り替えられて符号化されるので、互いのデータ系列で検索された一致文字列を用いて符号化することができ、複数の類似データ系列を効率よく符号化することができる。
【0070】
この発明にかかる復号方法は、符号化方法で複数のデータ系列が符号化されたストリームを入力し、予め復号されバッファに記憶されたデータに基づき、ストリームを復号して部分データを得る復号ステップと、復号ステップによってデータが復号されるとバッファに記憶されたデータを更新する更新ステップと、順番にデータ系列を切り替え、復号ステップによって復号された部分データを複数のデータ系列毎に分配する分配ステップとを有するものであり、複数のデータ系列のストリームを効率よく復号することができる。
【図面の簡単な説明】
【図1】 本発明の実施形態1の複数のデータ系列の符号化方法を実現する符号化器の構成を示す構成図である。
【図2】 図1に示す本発明の実施形態1の複数のデータ系列の符号化方法を実現する符号化器の動作を示す流れ図である。
【図3】 本発明の実施形態4の複数のデータ系列の符号化方法で符号化された複数のデータ系列を復号する復号器の構成を示す構成図である。
【図4】 従来の符号化器の構成を示す構成図である。
【図5】 IEEE トランザクション オン インフォメーション セオリー誌に開示されたデータ符号化アルゴリズムの流れ図である。
【符号の説明】
10 セレクタ、11 バッファ、12 演算器、30 演算器、31 バッファ、32 分配器、40 バッファ、41 演算器。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a transmitter / receiver for a television broadcast, a transmitter / receiver for a stereoscopic television, or a storage device thereof. And a decoder, and an encoding method and a decoding method.
[0002]
[Prior art]
As a method for reversibly encoding a data sequence, there is a universal encoding method proposed by Ziv and Lempel.
[0003]
A conventional encoder for realizing this universal encoding method will be described with reference to FIG. FIG. 4 is a block diagram showing the configuration of a conventional encoder.
In FIG. 4, 40 is a buffer. Reference numeral 41 denotes an arithmetic unit connected to the buffer 40.
[0004]
Next, the operation of the conventional encoder shown in FIG. 4 will be described.
First, each symbol constituting the data series is input to the buffer 40. Each symbol input to the buffer 40 is encoded by the arithmetic unit 41. Note that the number of symbols encoded at one time depends on the capacity and contents of the buffer 40. Thereafter, each symbol input to the buffer 40 is shifted by the number of encoded symbols, and the next symbol is written in this empty portion.
Thereafter, the update of the buffer 40 and the encoding of symbols are repeated until all the input data series are encoded.
[0005]
Next, the operation of the conventional encoder shown in FIG. 4 will be described in detail with reference to FIG.
Figure 5 shows the paper "A universal algorithm for sequential data compression" (J. Ziv and A. Lempel) published in pages 337-343 of the May 1977 issue of the Transactions on Information Theory. 2 is a flowchart of a data encoding algorithm disclosed in the above. Note that the data series to be encoded is S, and a partial sequence of the data series S starting from the pth position and ending at the qth position in the data series S is S (p, q).
Further, the buffer is B, and the pth partial sequence recorded in the buffer B is B (p). In addition, the p-th to q-th partial columns recorded in the buffer B are assumed to be B (p, q). The number of symbols that can be stored in the buffer B is n. Note that n may be a capacity.
[0006]
First, in step 50, the buffer B is initialized. That is, the first (n−Ls) th symbol of the buffer B is set to 0, and the remaining (n−Ls + 1) th to nth symbols of the subsequence S (1, Ls) of the data series S Enter the symbol.
Note that the first to (n−Ls) th buffer B is the first area of the buffer, and the data recorded in this first area is the first data. Further, the (n−Ls + 1) th to nth of the buffer B is defined as the second area of the buffer, and the data recorded in the second area is defined as the second data.
Ls is an appropriate number of symbols. However, Ls may be a capacity corresponding to n.
[0007]
Thereafter, the previously encoded symbols enter from the beginning of the buffer B to the (n−Ls) th, and the symbols to be encoded enter after the (n−Ls + 1) th.
[0008]
Suppose that n = 18, Ls = 9, and S = 001010210210212021021200. Each symbol is expressed in ternary system. In this example, the current content (B1) of the buffer B is B1 = 000000000000001010210.
When step 50 is completed, the process proceeds to step 51.
[0009]
Next, in step 51, the same character string found in the buffer B is searched. That is, a partial sequence that matches the buffer B (n−Ls + 1, n−Ls + x) is searched from B (1, n−Ls), which is a past data series remaining in the buffer B. More precisely, the subsequence to be searched only needs to start from a symbol (within B (1, n-Ls)) whose leading symbol has already been encoded, and the end of the subsequence to be searched. May be included in data to be encoded (B (n−Ls + 1) and later). X is an appropriate integer value.
[0010]
Of such partial sequences to be searched, the longest partial sequence having the maximum integer value x is Lc, and its length is c (= max (x)). If the partial sequence Lc starts from the p-th position of the buffer B, Lc = B (p, p + c−1) = B (n−Ls + 1, n−Ls + c) holds. In this example, Lc = 00.
A plurality of positions p at which the partial sequence Lc starts can be considered, but it is assumed that p = 9. A character string obtained by adding the B (n−Ls + c + 1) -th symbol to the partial sequence Lc is represented by Si. This symbol is the first symbol in a new symbol that does not match the past symbol. When the length of the character string Si is li, li = c + 1. Further, Si = B (n−Ls + 1, n−Ls + li). In the above example, Si = 001.
When step 51 ends, the process proceeds to step 52.
[0011]
Next, in step 52, the obtained character string Si is encoded. The encoding in step 52 is to convert the character string Si into a bit stream Ci indicating the position, length, etc. in the buffer B. This bit stream Ci includes a bit stream Ci (1), a bit stream Ci (2), and a bit stream Ci (3), and is expressed as Ci = (Ci (1), Ci (2), Ci (3)). Is done. This bit stream Ci (1) is the starting point of the character string Si in the buffer B, and is obtained by Ci (1) = p−1. The bit stream Ci (2) is the length of the partial string Lc in the character string Si, and is obtained by Ci (2) = li−1. Further, the bit stream Ci (3) is the last symbol of the character string Si.
[0012]
Then, the number of symbols (number of digits) necessary to represent each of these bit streams Ci (m) is determined as follows. Note that m is a natural number. The bit stream Ci (1) is obtained from log (n−Ls), the bit stream Ci (2) is obtained from log (Ls), and the bit stream Ci (3) is 1. The base of the logarithm is the number of values that the symbol can take, for example, 2 if the symbol is binary and 3 if the symbol is ternary. If the calculation result is not an integer, it is rounded up to the nearest integer.
[0013]
In the above example, the number of digits of the bit stream C1 (1) and the bit stream C1 (2) is 2 symbols. Therefore, when the calculated value obtained at the present time is expressed by a predetermined number of digits in the above formula, C1 (1) = 22, C1 (2) = 02, C1 (3) = 1, and C1 = 222021. . Each bit stream C1 (m) in this example is expressed in ternary system.
The bit stream C1 obtained by this encoding is output from the computing unit 41.
When step 52 ends, the process proceeds to step 53.
[0014]
In step 53, it is determined whether or not to end the series of processes. That is, it is determined whether all symbols of the data series have been encoded. If all symbols have been encoded, the series of processing ends, and if not, the process proceeds to step 54.
[0015]
In step 54, the contents of buffer B are updated. First, the contents of the buffer B are shifted by the length li of the character string Si. As a result, the oldest symbol of length li is discarded from the buffer B. Then, a new symbol of the data series S is input to a portion vacated by the shift.
[0016]
In the above example, the current buffer content following B1 is B2. In the above example, the contents of the buffer B are first shifted by 3 symbols to the left, so that B2 = 000000001010210XXX. Then, the next symbol 210 of the data series S is input to the portion XXX. Therefore, B2 = 000000001010210210.
When step 54 is completed, the process returns to step 51.
[0017]
Thereafter, steps 50 to 54 are repeated until all symbols are encoded. In the above example, C2 = 21102, B3 = 000010102102102120, C3 = 20212, B4 = 210210212021021200, C4 = 022020. Note that the arithmetic unit 41 outputs a bit stream C1, a bit stream C2, a bit stream C3, a bit stream C4,.
[0018]
[Problems to be solved by the invention]
The conventional Ziv-Lempel encoder is configured as described above, and can encode a single data sequence, but cannot encode a plurality of data sequences.
[0019]
The present invention has been made to solve such problems, and an object of the present invention is to obtain an encoder that efficiently encodes a plurality of data sequences and a decoder corresponding to the encoder. Is.
[0020]
[Means for Solving the Problems]
The encoder according to the present invention receives a plurality of data series data, selects an arbitrary data series data, and outputs a selector; It has a storage area for storing n (n is a natural number) data, and the first to n-Lsth storage area (Ls is a natural number greater than 1 and less than n) is the first area, n-Ls + 1 The nth to nth region is the second region, Of the data series selected by the selector each The data is Sequentially The buffer to be recorded and the first area of the buffer In advance Recorded ing Compare the first data with the second data recorded in the second area of the buffer, search for the partial data recorded in both the first area and the second area, An arithmetic unit that encodes and outputs a stream of a predetermined format; N data stored in the storage area Based on partial data Shift to the first area side of the storage area by the determined number of data Update the first data and second data recorded in the buffer, switch the selector selection, and select the data series that is different from the data series. Sequentially buffer Second area of And a control unit that controls to record the data.
[0021]
In addition, the control unit of the encoder according to the present invention provides a buffer corresponding to the length of the partial data. Of the n data stored in the storage area The oldest data was deleted and some of this was deleted Storage area Recorded in each Data To the first area side of the storage area Shift, In storage Data of the data series switched by the selector is recorded in a portion vacated by deletion.
[0022]
Furthermore, the control unit of the encoder according to the present invention is: Searched in the first region Partial data Or searched in the second area portion data Was deleted from the buffer record and some of this was deleted Storage area Recorded in each Data To the first area side of the storage area Shift, In storage Data of the data series switched by the selector is recorded in a portion vacated by deletion.
[0023]
The arithmetic unit of the encoder according to the present invention attaches a synchronization code to a stream of a predetermined format.
[0024]
In the decoder according to the present invention, the predetermined format is a format indicating at least the start position in the first area of the retrieved partial data and the length of the partial data.
[0025]
The decoder according to the present invention is output from the encoder. Multiple data sequences were encoded When a stream is input and based on pre-decoded data, an arithmetic unit that decodes the stream to obtain partial data, and is connected to the arithmetic unit and the decoded data is stored, and the data is decoded by the arithmetic unit A buffer in which stored data is updated and an arithmetic unit are connected, the data series is switched in order, and the partial data decoded by the arithmetic unit is plural It has a distributor which distributes for every data series.
[0026]
The encoding method according to the present invention includes a step of selecting an arbitrary data sequence from a plurality of data sequences, For a buffer having a storage area for storing n (n is a natural number) data, the first to n-Lsth areas (Ls is a natural number greater than 1 and less than n) of the storage area are defined as the first area, n-Ls + 1 to nth region is the second region, Of the selected data series each Data Sequentially In the first area of the buffer In advance Recorded ing Comparing the first data with the second data recorded in the second area of the buffer and searching for partial data recorded in both the first area and the second area; and Encoding the partial data obtained by the above into a stream of a predetermined format and outputting it, N data stored in the storage area Based on partial data Shift to the first area side of the storage area by the determined number of data Updating the first data and the second data recorded in the buffer, switching to a data series different from the data series, and switching the data of the switched data series to Sequentially buffer Second area of Recording step.
[0027]
In the decoding method according to the present invention, the predetermined format is a format indicating at least the start position in the first area of the retrieved partial data and the length of the partial data.
The decoding method according to the present invention is an encoding method. Multiple data series A decoding step of inputting an encoded stream and decoding the stream to obtain partial data based on the data previously decoded and stored in the buffer, and when the data is decoded by the decoding step, the data stored in the buffer is Update step to update, switch the data series in order, the partial data decoded by the decoding step plural And a distribution step for distributing each data series.
[0028]
DETAILED DESCRIPTION OF THE INVENTION
Embodiment 1 FIG.
An embodiment of an encoder that realizes an encoding method for a plurality of data sequences according to the present invention will be described with reference to FIG. FIG. 1 is a configuration diagram illustrating a configuration of an encoder that realizes a method for encoding a plurality of data sequences according to the present embodiment.
In FIG. 1, 10 is a selector. Reference numeral 11 denotes a buffer connected to the selector 10. Reference numeral 12 denotes an arithmetic unit connected to the buffer 11.
[0029]
Next, the operation of the encoder that realizes the encoding method for a plurality of data sequences of this embodiment shown in FIG. 1 will be described.
A plurality of data series are input to the selector 10 in parallel, and one of them is selected and sent to the buffer 11. The contents of the data series sent to the buffer 11 are read into the arithmetic unit 12, encoded as in the conventional example, and the obtained bit stream Ci is output from the arithmetic unit. When a certain bit stream Ci is output from the computing unit, the selector 10 switches the data series input to the buffer 11 to a different next-order data series.
[0030]
The buffer 11 to which the symbol of the data sequence in the next order is input updates the recorded contents of the buffer 11 using this data sequence. The computing unit 12 reads the updated contents of the buffer 11 and encodes the symbols of the data series recorded in the buffer 11.
Thereafter, the switching by the selector 10, the update of the contents of the buffer 11, and the encoding of the symbols of each data series are repeated until all the data series symbols are encoded.
[0031]
Next, the operation of the encoder that realizes the method of encoding a plurality of data sequences of this embodiment shown in FIG. 1 will be described in detail with reference to FIG. FIG. 2 is a flowchart showing the operation of the encoder that realizes the method of encoding a plurality of data sequences of this embodiment shown in FIG. A series of processing is controlled by a control unit (not shown). In the initial state, the selector 10 selects the first data series 1.
[0032]
First, in step 20, the buffer 11 is initialized using the data series 1 (S (1)). Note that n = 18, Ls = 9, and S (1) = 001010210210212021021200. The content of the buffer 11 at this time is B1 = 000000000000001010210. Further, the next data sequence 2 (S (2)) different from the data sequence 1 is assumed to be S (2) = 001010210212021200.
When step 20 ends, the process proceeds to step 21.
[0033]
In step 21, a partial sequence Lc that is repeatedly seen in the buffer 11 is searched. Then, the arithmetic unit 12 searches for the longest partial sequence Lc found in the buffer 11 and adds the subsequent 1 symbol to calculate the character sequence Si. The character string Si (S1) at this time is S1 = 001. The character string Si is also referred to as partial data.
When step 21 ends, the process proceeds to step 22.
[0034]
Next, in step 22, the obtained character string Si is encoded to obtain a bit stream Ci. Note that Ci = (Ci (1), Ci (2), Ci (3)). The bit stream Ci (C1) at this time is C1 = 222021.
When step 22 ends, the process proceeds to step 23.
[0035]
In step 23, it is determined whether or not all symbols of all data series have been encoded.
If all symbols of all data series have been encoded, the series of processing ends, and if not, the process proceeds to step 24.
[0036]
In step 24, data series are switched. That is, even if the bit stream Ci corresponding to the character string Si of a certain data series is output from the computing unit 12, it is determined whether or not the symbols of the data series to be encoded still remain. 10 is switched, and the remaining symbols of a certain data series are prepared to be input to the buffer 11.
When step 24 ends, the process proceeds to step 25.
[0037]
In step 25, the buffer 11 is updated when the symbol of the switched data series is input. First, the contents of the current buffer 11 are shifted by the length li of the character string Si. As a result, the oldest symbol having the length li is deleted from the buffer 11. This shift is performed before a new data series is written.
In the above example, since the buffer 11 is shifted by 3 symbols, B1 = 0000010102210XXX. The part X is an arbitrary symbol (for example, 0).
[0038]
Then, the B (n−Ls + 1, n) portion of the buffer 11 is replaced with the first partial sequence that has not been encoded yet in the next different data series, and the update of the buffer 11 is completed.
In the case of the above example, if the content of the buffer 11 at the time of the update is B2, B2 = 000000001001010210. That is, the 9 symbols after the content B1 of the buffer 11 are replaced with the first 9 symbols of the data series S (2).
[0039]
Then, the B (n−Ls + 1, n) portion (= 0010210XXX) in B1 is changed to the data sequence 1 again, and the (xxx) portion that continues to (010210) follows the data sequence S (1). After being supplemented by the symbols, the data is input to the buffer 11 and subjected to a series of processing.
When step 25 ends, the process returns to step 21.
[0040]
Thereafter, step 21 to step 25 are repeated until encoding of all data series is completed.
In the case of the above example, C2 = 20111, B3 = 000100101010210210, C3 = 21102, B4 = 001010102021021202, C4 = 21011, B5 = 01010202110102102120, C5 = 10101.
It should be noted that the bit stream C1, the bit stream C2, the bit stream C3, the bit stream C4,.
In addition, the method for detecting the character string Si and the method for encoding the bit stream Ci in the encoder of the present embodiment are the same as those in the conventional example, and the description thereof is simplified.
[0041]
As described above, the encoder according to the present embodiment performs coding by sequentially switching a plurality of data sequences. Searched in Match string Can be encoded using A plurality of similar data series can be efficiently encoded.
[0042]
Embodiment 2. FIG.
Next, another embodiment of the present invention will be described.
In the encoder buffer 11 of the present embodiment, duplicate character strings are deleted so that the same character strings are not stored redundantly. That is, the past data stored in the buffer 11 is erased from the portion that matches the newly input data, and the buffer 11 is shifted. The data to be erased may be past data (symbols) or newly input data (symbols).
[0043]
An example is described below. The data series S (1) is assumed to be S (1) = 001010210210212021021200. Further, a data series S (2) different from the data series S (1) is assumed to be S (2) = 001010210212021200. Since the process from initialization of the buffer, search of the character string Si, and encoding of the obtained character string Si are the same as those in the first embodiment, description thereof is omitted.
Thereafter, when the bit stream Ci is output and the buffer 11 is updated, the buffer (B1) is B1 = 000000000000001010210, the character string (S1) is S1 = 001, and the position (p) is p = 9. The length (l1) of the character string is obtained as l1 = 3.
[0044]
Of the character string S1, the first two symbols (00) are the character string Lc repeatedly used in the buffer. However, since p = 9, in (00), the first 0 is a symbol encoded in the past, and the second 0 is a symbol whose character string to be encoded matches itself. In this case, since the first 0 is the 0 input in the initialization step, it is not strictly a symbol encoded in the past. However, as encoding progresses, this part of the buffer has a history in the past. Encoded symbols are input.
[0045]
Therefore, in the buffer update step (step 25), symbols encoded in the past (first 0 in the example) are deleted from the buffer and shifted by the amount of the deleted data. That is, in the above example, the buffer B1 is B1 = 00000000001010210X, and is shifted to the left by one symbol. X is arbitrary. Also, let d be the number of symbols deleted at this time.
[0046]
Then, the portion corresponding to the character string Si is shifted by the remaining (li-d) symbols so as to enter the recording area of the buffer encoded in the past. In the above example, B1 = 000000001010210XXX. Thereafter, as in the first embodiment, the B (n−Ls + 1, n) portion of the buffer is replaced with the first character string of the new data series (in the above example, the data series S (2)), and the buffer is updated. . That is, B2 = 000000001001010210.
[0047]
In the case of the above example, the process proceeds as follows. C2 = 20111, B3 = 000000101010210210, C3 = 21102, B4 = 000010102021021202, C4 = 21021, B5 = 00010102110102102120, C5 = 112110. Note that B5 (2, 8) matches the first seven symbols of the data series S (1) or the data series S (2).
[0048]
By updating the buffer as described above, overlapping data between a plurality of data series is deleted, so that the matching character string becomes longer and the encoding efficiency may be improved. Moreover, since the overlapping data between a plurality of data series can be deleted, the buffer usage efficiency is improved. Furthermore, since the buffer is updated by deleting overlapping data between a plurality of data series, the size of the buffer can be reduced.
[0049]
In addition, since a plurality of data series are sequentially switched and encoded, Searched in Match string Can be encoded using A plurality of data series can be efficiently encoded. In addition, since duplicate character strings between different sequences are deleted from the buffer, there is a high probability that common character strings will be stored in the order of their occurrence, and the length of matching character strings will be increased, resulting in encoding efficiency. Can be improved.
[0050]
Embodiment 3 FIG.
Next, another embodiment of the present invention will be described.
The encoder according to the present embodiment performs encoding by adding a synchronization signal to each data series in order to achieve synchronization among a plurality of data series. Note that the encoding method of the present embodiment may be used in combination with the first or second embodiment. The synchronization signal (synchronization code) is information indicating that a certain symbol between a plurality of data series should be generated at the same time.
[0051]
For example, in the data series of the right image of the stereo image and the data series of the left image, data indicating spatially close positions should be generated at a time close in time, and must be synchronized. In addition, the data sequence of the full-text subtitle data in the subtitle information and the data sequence of the summary version are data that are semantically close to each other, should be generated at a time close to each other, and must be synchronized. . These synchronizations are realized by forcibly generating and matching the synchronization signals at appropriate time points between the data series.
[0052]
The synchronization signal may be multiplexed on any of the bit stream Ci (1), the bit stream Ci (2), and the bit stream Ci (3). Because of this synchronization code, the bit stream Ci (1) limits the number of symbols n, and the bit stream Ci (2) limits the number of symbols Ls, and the synchronization code is assigned to a free space.
[0053]
In the example of the first and second embodiments, the number of symbols n is n = 18. However, by setting this to 17 (the number of symbols Ls remains Ls = 9), the bitstream Ci (1) = 22. Can be a synchronization code. When the data sequence is a character sequence, a code that is not used as a character (for example, ASCII \ (yen symbol)) may be multiplexed with the bit stream Ci (3) to form a synchronization code.
[0054]
By using this synchronization code, it is possible to know whether or not the same blocks as all the data series have been encoded in an arbitrary block between a plurality of data series. Note that a block is an agreed part in each data series, and is a set of data series from a certain synchronization point to the next synchronization point. That is, even if the encoding of data of a certain block in a certain data series is completed, it is not selected by the selector 10 unless the encoding of the corresponding block in the other data series is completed, and the next block cannot be encoded. . Therefore, it is possible to achieve synchronization in block units between the mutual data series.
[0055]
As described above, since the encoder of the present embodiment encodes information for synchronizing a plurality of data series, the probability of finding a matching character string in the data in the buffer is increased, and the encoding is performed. Efficiency can be improved.
In addition, by adding a synchronization signal at the same timing between each data series, it is possible to encode a temporally corresponding portion between similar data series while referring to each other's data series. The character string Si to be processed becomes longer, and the encoding efficiency is improved.
[0056]
Embodiment 4 FIG.
An embodiment of a decoder for restoring a plurality of data sequences encoded by a plurality of data sequence encoding methods according to the present invention will be described with reference to FIG. FIG. 3 is a configuration diagram illustrating a configuration of a decoder that decodes a plurality of data sequences encoded by the plurality of data sequence encoding methods of the present embodiment.
In FIG. 3, 30 is a calculator. A buffer 31 is connected to the arithmetic unit 30. Reference numeral 32 denotes a distributor connected to the arithmetic unit 30.
[0057]
Next, the operation of the decoder that decodes a data sequence encoded by the method of encoding a plurality of data sequences of this embodiment shown in FIG. 3 will be described.
The bit stream Ci encoded and output by the encoder is sequentially input to the arithmetic unit 30. The character string Si is uniquely decoded using the input bitstream Ci. That is, from the symbol at the address position p in the buffer indicated by the bit stream Ci (1), the character string having the length (li-1) indicated by the bit stream Ci (2) is represented by B (n-Ls + 1). The character string Si is obtained by restoring in order and adding the bit stream Ci (3) at the end.
[0058]
The bit stream Ci is Ci = (Ci (1), Ci (2), Ci (3)), the bit stream Ci (1) is Ci (1) = p−1, and the bit stream Ci ( 2) is Ci (2) = li-1, and the bit stream Ci (3) is the last symbol of the character string Si.
The arithmetic unit 30 performs this process while referring to the buffer 31 and supplies the character string Si to the distributor 32. The distributor 32 distributes the obtained character string Si to the original data series.
[0059]
The buffer 31 is updated every time the character string Si is decoded. The buffer 31 is updated so that the B (1, n−Ls) portion of the buffer 31 in the encoder is reproduced. That is, in the case of the encoding method of the first embodiment, the restored character string Si is stored in the buffer 31 in order. In the case of the encoding method of the second embodiment, after the matching character string Si in the buffer 31 is discarded, a newly decoded symbol is written in the buffer 31.
[0060]
As described above, the decoder according to the present embodiment is provided with a distributor that switches the data to a plurality of streams and outputs it after the arithmetic unit that decodes the data. It is possible to efficiently decode the bit stream encoded by the encoder. In addition, the decoder of the present embodiment can restore all of a plurality of similar data series.
It is assumed that the number of data sequences transmitted between the encoder and decoder is agreed in advance. Based on the agreement between the encoder and the decoder, the distributor 32 can switch data sequences in order and correctly decode a plurality of data sequences.
[0061]
Embodiment 5 FIG.
Next, another embodiment of the present invention will be described.
The decoder of the present embodiment selectively restores only a part of data sequences from a plurality of similar data sequences. That is, the arithmetic unit 30 of the decoder according to the present embodiment only performs signal processing necessary only for buffer update on a data series that is not requested to be decoded, and does not calculate the character string Si.
[0062]
For example, in the data encoded in the second embodiment, when p + li−2 = n−Ls, that is, when the matching partial sequence Lc is the most recently encoded partial sequence, the character string Si is not decoded. The buffer 31 is shifted to the left by one symbol, and the bit stream Ci (3) is written in the empty part. As a result, only the update of the buffer 31 is completed.
[0063]
As described above, the decoder according to the present embodiment is provided with a distributor that selectively switches the data to a plurality of streams and outputs the latter after the arithmetic unit that decodes the data. It is possible to efficiently decode a part of the data series from the bit stream encoded by the encoder shown.
[0064]
Embodiment 6 FIG.
Next, another embodiment of the present invention will be described.
The decoder of the present embodiment decodes each data series including a synchronization signal added to synchronize a plurality of data series. The distributor 32 of the decoder of the present embodiment may switch its output in accordance with the detected synchronization signal. In this case, the distributor 32 is prohibited from outputting the next block for the data series in which the synchronization signal is detected until the decoding of the corresponding block of the other data series is completed.
[0065]
As described above, the decoder according to the present embodiment is provided with a distributor that switches to a plurality of streams based on the transmitted synchronization signal and is output after the arithmetic unit that decodes data. It is possible to efficiently decode the bit stream encoded by the encoder.
Also, this decoder can correctly decode the bit stream Ci encoded by the encoder after synchronizing the data streams.
Note that the decoder of the present embodiment corresponds to the encoder of the third embodiment, and may be used in combination with the fourth or fifth embodiment.
[0066]
【The invention's effect】
The encoder according to the present invention receives a plurality of data series data, selects an arbitrary data series data, and outputs a selector; It has a storage area for storing n (n is a natural number) data, and the first to n-Lsth storage area (Ls is a natural number greater than 1 and less than n) is the first area, n-Ls + 1 The nth to nth region is the second region, Of the data series selected by the selector each The data is Sequentially The buffer to be recorded and the first area of the buffer In advance Recorded ing Compare the first data with the second data recorded in the second area of the buffer, search for the partial data recorded in both the first area and the second area, An arithmetic unit that encodes and outputs a stream of a predetermined format; N data stored in the storage area Based on partial data Shift to the first area side of the storage area by the determined number of data Update the first data and second data recorded in the buffer, switch the selector selection, and select the data series that is different from the data series. Sequentially buffer Second area of A plurality of data sequences are sequentially switched and encoded, so that the data sequences of each other are recorded. Searched in Match string Can be encoded using A plurality of similar data series can be efficiently encoded.
[0067]
In addition, the arithmetic unit of the encoder according to the present invention attaches a synchronization code to a stream of a predetermined format, and can synchronize with a plurality of data series. And the coding efficiency can be improved.
[0068]
The decoder according to the present invention is Multiple data sequences were encoded When a stream is input and based on pre-decoded data, an arithmetic unit that decodes the stream to obtain partial data, and is connected to the arithmetic unit and the decoded data is stored, and the data is decoded by the arithmetic unit A buffer in which stored data is updated and an arithmetic unit are connected, the data series is switched in order, and the partial data decoded by the arithmetic unit is plural A distributor that distributes each data series is provided, and a stream of a plurality of data series can be efficiently decoded.
[0069]
An encoding method according to the present invention includes a step of selecting an arbitrary data sequence from a plurality of data sequences, a step of recording data of the selected data sequence in a buffer, and a first area of the buffer. Comparing the first data with the second data recorded in the second area of the buffer and searching for partial data recorded in both the first area and the second area; Encoding the partial data obtained by the search into a stream of a predetermined format and outputting the data; updating the first data and the second data recorded in the buffer based on the partial data; Comprises switching to a different data series and recording the data of the switched data series in a buffer whose recorded contents are updated. Since data series is encoded are sequentially switched, another data sequence Searched in Match string Can be encoded using A plurality of similar data series can be efficiently encoded.
[0070]
The decoding method according to the present invention is an encoding method. Multiple data series A decoding step of inputting an encoded stream and decoding the stream to obtain partial data based on the data previously decoded and stored in the buffer, and when the data is decoded by the decoding step, the data stored in the buffer is Update step to update, switch the data series in order, the partial data decoded by the decoding step plural And a distribution step for distributing each data series, and a stream of a plurality of data series can be efficiently decoded.
[Brief description of the drawings]
FIG. 1 is a configuration diagram illustrating a configuration of an encoder that realizes a plurality of data sequence encoding methods according to a first exemplary embodiment of the present invention.
FIG. 2 is a flowchart showing an operation of an encoder that realizes an encoding method of a plurality of data series according to the first embodiment of the present invention shown in FIG.
FIG. 3 is a configuration diagram illustrating a configuration of a decoder that decodes a plurality of data sequences encoded by a plurality of data sequence encoding methods according to a fourth embodiment of the present invention.
FIG. 4 is a configuration diagram showing a configuration of a conventional encoder.
FIG. 5 is a flowchart of a data encoding algorithm disclosed in IEEE Transaction on Information Theory.
[Explanation of symbols]
10 selector, 11 buffer, 12 computing unit, 30 computing unit, 31 buffer, 32 distributor, 40 buffer, 41 computing unit.

Claims (9)

複数のデータ系列のデータが入力され、任意のデータ系列のデータを選択して出力するセレクタと、
n個(nは自然数)のデータを記憶する記憶領域を有し、この記憶領域の1番目からn−Ls番目(Lsは1より大きくnより小さい自然数)の領域を第一の領域、n−Ls+1番目からn番目の領域を第二の領域とし、前記第二の領域には前記セレクタにより選択されたデータ系列の各データが順次記録されるバッファと、
前記バッファの前記第一の領域に予め記録されている第一のデータと、前記バッファの前記第二の領域に記録された第二のデータとを比較し、前記第一の領域及び第二の領域のいずれにも記録される部分データを検索し、前記部分データを所定の形式のストリームに符号化して出力する演算器と、
前記記憶領域に記憶されているn個のデータを前記部分データに基づき決められるデータ数だけ前記記憶領域の1番目の領域側へシフトして前記バッファに記録された前記第一のデータ及び第二のデータを更新し、前記セレクタの選択を切り替え、前記データ系列とは異なるデータ系列のデータを順次前記バッファの前記第二の領域に記録するよう制御する制御部と、
を備えたことを特徴とする符号化器。
A selector that receives data of a plurality of data series, selects data of an arbitrary data series, and outputs;
It has a storage area for storing n (n is a natural number) data, and the first to n-Lsth (Ls is a natural number greater than 1 and less than n) areas of this storage area are designated as the first area, n- Ls + 1 to nth area is a second area, and the second area has a buffer in which each data of the data series selected by the selector is sequentially recorded,
The first data recorded in the first area of the buffer is compared with the second data recorded in the second area of the buffer, and the first area and the second data An arithmetic unit that searches for partial data recorded in any of the areas, encodes the partial data into a stream of a predetermined format, and outputs the stream,
The first data and the second data recorded in the buffer by shifting the n data stored in the storage area to the first area side of the storage area by the number of data determined based on the partial data A control unit that updates the data, switches the selection of the selector, and controls to sequentially record data of a data series different from the data series in the second area of the buffer;
An encoder comprising:
制御部は、部分データの長さ分だけ、バッファの記憶領域に記憶されたn個のデータのうち最も古いデータを削除し、この一部が削除された前記記憶領域に記録された各データを前記記憶領域の1番目の領域側へシフトさせ、前記記憶領域内の前記削除によって空いた部分に、セレクタによって切り替えられたデータ系列のデータを記録する
ことを特徴とする請求項1に記載の符号化器。
The control unit deletes the oldest data among the n pieces of data stored in the buffer storage area by the length of the partial data, and deletes each piece of data recorded in the storage area from which this part has been deleted. The code according to claim 1, wherein the data series is shifted to a first area side of the storage area, and data of the data series switched by the selector is recorded in a portion vacated by the deletion in the storage area. Generator.
制御部は、第一の領域内で検索された部分データ又は第二の領域内で検索された部分データの一方をバッファの記録から削除し、この一部が削除された前記記憶領域に記録された各データを前記記憶領域の1番目の領域側へシフトさせ、前記記憶領域内の前記削除によって空いた部分に、セレクタによって切り替えられたデータ系列のデータを記録する
ことを特徴とする請求項1に記載の符号化器。
The control unit deletes one of the partial data searched in the first area or the partial data searched in the second area from the record of the buffer, and this part is recorded in the deleted storage area. 2. The data of the data series switched by the selector is recorded in a portion vacated by the deletion in the storage area by shifting each data to the first area side of the storage area. The encoder described in 1.
演算器は、所定の形式のストリームに同期コードを付することを特徴とする請求項1〜3のいずれかに記載の符号化器。  The encoder according to any one of claims 1 to 3, wherein the arithmetic unit attaches a synchronization code to a stream of a predetermined format. 前記所定の形式は、少なくとも検索された部分データの第一の領域における開始位置と該部分データの長さとを示す形式であることを特徴とする請求項1〜4のいずれかに記載の符号化器。  The encoding according to any one of claims 1 to 4, wherein the predetermined format is a format indicating at least a start position in the first area of the retrieved partial data and a length of the partial data. vessel. 請求項1〜4のいずれかに記載の符号化器から出力された複数のデータ系列が符号化されたストリームを入力し、予め復号されたデータに基づき、前記ストリームを復号して部分データを得る演算器と、
前記演算器に接続されるとともに前記復号されたデータが記憶され、前記演算器によってデータが復号されると記憶されたデータが更新されるバッファと、
前記演算器に接続され、順番にデータ系列を切り替え、前記演算器によって復号された部分データを前記複数のデータ系列毎に分配する分配器と
を備えたことを特徴とする復号器。
A stream obtained by encoding a plurality of data series output from the encoder according to any one of claims 1 to 4 is input, and the stream is decoded based on previously decoded data to obtain partial data An arithmetic unit;
A buffer connected to the computing unit and storing the decoded data, and the stored data being updated when the data is decoded by the computing unit;
A decoder, comprising: a distributor connected to the computing unit, switching data sequences in order, and distributing partial data decoded by the computing unit for each of the plurality of data sequences.
複数のデータ系列から、任意のデータ系列を選択するステップと、
n個(nは自然数)のデータを記憶する記憶領域を有するバッファに対し、この記憶領域の1番目からn−Ls番目(Lsは1より大きくnより小さい自然数)の領域を第一の領域、n−Ls+1番目からn番目の領域を第二の領域とし、前記第二の領域に選択されたデータ系列の各データを順次記録するステップと、
前記バッファの前記第一の領域に予め記録されている第一のデータと、前記バッファの前記第二の領域に記録された第二のデータとを比較し、前記第一の領域及び第二の領域のいずれにも記録される部分データを検索するステップと、
前記検索により得られた部分データを所定の形式のストリームに符号化して出力するステップと、
前記記憶領域に記憶されているn個のデータを前記部分データに基づき決められるデータ数だけ前記記憶領域の1番目の領域側へシフトして前記バッファに記録された前記第一のデータ及び第二のデータを更新するステップと、
前記データ系列とは異なるデータ系列に切り替え、この切り替えられたデータ系列のデータを順次バッファの前記第二の領域に記録するステップと
を有することを特徴とする符号化方法。
Selecting an arbitrary data series from a plurality of data series;
For a buffer having a storage area for storing n (n is a natural number) data, the first to n-Lsth (Ls is a natural number greater than 1 and less than n) areas of the storage area are defined as the first area, n-Ls + 1 to nth area as a second area, and sequentially recording each data of the selected data series in the second area;
The first data recorded in the first area of the buffer is compared with the second data recorded in the second area of the buffer, and the first area and the second data Retrieving partial data recorded in any of the areas;
Encoding the partial data obtained by the search into a stream of a predetermined format and outputting it;
The first data and the second data recorded in the buffer by shifting the n data stored in the storage area to the first area side of the storage area by the number of data determined based on the partial data Updating the data of
And a step of switching to a data sequence different from the data sequence and sequentially recording data of the switched data sequence in the second area of the buffer.
前記所定の形式は、少なくとも検索された部分データの第一の領域における開始位置と該部分データの長さとを示す形式であることを特徴とする請求項に記載の符号化方法。8. The encoding method according to claim 7 , wherein the predetermined format is a format indicating at least a start position in the first area of the searched partial data and a length of the partial data. 請求項に記載の符号化方法で複数のデータ系列が符号化されたストリームを入力し、予め復号されバッファに記憶されたデータに基づき、前記ストリームを復号して部分データを得る復号ステップと、
前記復号ステップによってデータが復号されるとバッファに記憶されたデータを更新する更新ステップと、
順番にデータ系列を切り替え、前記復号ステップによって復号された部分データを前記複数のデータ系列毎に分配する分配ステップと
を有することを特徴とする復号方法。
A decoding step of inputting a stream in which a plurality of data series is encoded by the encoding method according to claim 7 , and decoding the stream based on data previously decoded and stored in a buffer to obtain partial data;
An update step of updating the data stored in the buffer when the data is decoded by the decoding step;
A decoding step comprising: switching data sequences in order and distributing the partial data decoded by the decoding step for each of the plurality of data sequences.
JP2000168868A 2000-06-06 2000-06-06 Encoder and decoder, and encoding method and decoding method Expired - Fee Related JP3812289B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000168868A JP3812289B2 (en) 2000-06-06 2000-06-06 Encoder and decoder, and encoding method and decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000168868A JP3812289B2 (en) 2000-06-06 2000-06-06 Encoder and decoder, and encoding method and decoding method

Publications (2)

Publication Number Publication Date
JP2001345709A JP2001345709A (en) 2001-12-14
JP3812289B2 true JP3812289B2 (en) 2006-08-23

Family

ID=18671817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000168868A Expired - Fee Related JP3812289B2 (en) 2000-06-06 2000-06-06 Encoder and decoder, and encoding method and decoding method

Country Status (1)

Country Link
JP (1) JP3812289B2 (en)

Also Published As

Publication number Publication date
JP2001345709A (en) 2001-12-14

Similar Documents

Publication Publication Date Title
JP2986319B2 (en) How to compress and decompress quasi-static data
JP2915568B2 (en) Adaptive data compression system for tape drive systems.
US6215906B1 (en) Data compression and restoration system for encoding an input character on the basis of a conditional appearance rate obtained in relation to an immediately preceding character string
US8456332B2 (en) Systems and methods for compression of logical data objects for storage
EP0471518B1 (en) Data compression method and apparatus
JPH0799812B2 (en) Signal coding apparatus, signal decoding apparatus, and signal coding / decoding apparatus
WO2013175909A1 (en) Data compression/decompression device
JP2010519806A (en) Method for generating a data stream and identifying a position in the data stream
JPH07261977A (en) Data compression method and apparatus and data decompression method and apparatus
JPH09505707A (en) Data compression
US9665590B2 (en) Bitmap compression for fast searches and updates
JPH08116267A (en) Variable-length code decoding device
JP2012124679A (en) Apparatus and method for decoding encoded data
CN111318012B (en) Game data transmission method and device
JP3812289B2 (en) Encoder and decoder, and encoding method and decoding method
JP2536422B2 (en) Data compression device and data decompression device
JP3429623B2 (en) High-speed variable-length code decoding device
JPH09232967A (en) Data compression device and decompression device
KR20040054977A (en) Distributed mpeg file management system and method thereof
JPH03209922A (en) Data compressing system
JPH05150940A (en) Data compression method and method and device for data extension
JPH08251035A (en) System of compressing/decompressing data stream, transmitter and receiver
JP2002094801A (en) Image data compression method, image data compression device, recording medium
JPH06291677A (en) Data compressing device and data restoring device
JP3774425B2 (en) Data encoding / decoding method and apparatus, data encoding / decoding program, and recording medium recording the program

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20040630

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050628

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050920

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051213

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060228

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060420

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: 20060509

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060522

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100609

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees