JP4086424B2 - Encoder - Google Patents

Encoder Download PDF

Info

Publication number
JP4086424B2
JP4086424B2 JP24672299A JP24672299A JP4086424B2 JP 4086424 B2 JP4086424 B2 JP 4086424B2 JP 24672299 A JP24672299 A JP 24672299A JP 24672299 A JP24672299 A JP 24672299A JP 4086424 B2 JP4086424 B2 JP 4086424B2
Authority
JP
Japan
Prior art keywords
value
encoding
encoding apparatus
accumulating
parameter
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
JP24672299A
Other languages
Japanese (ja)
Other versions
JP2001077699A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP24672299A priority Critical patent/JP4086424B2/en
Priority to US09/618,461 priority patent/US6865299B1/en
Publication of JP2001077699A publication Critical patent/JP2001077699A/en
Application granted granted Critical
Publication of JP4086424B2 publication Critical patent/JP4086424B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、画像データを符号化する符号化装置に関する。
【0002】
【従来の技術】
一般に画像、特に多値画像は非常に多くの情報を含んでおり、その画像を蓄積・伝送する際には扱うデータ量が膨大になってしまうという問題がある。このため、画像の蓄積・伝送に際しては、画像の持つ冗長性を取り除き、多少の画質の劣化を容認することで、データ量の削減を図る高能率符号化が用いられる。
【0003】
これら高能率符号化の1つとして、JPEG方式の圧縮符号化が知られている。この方式では多値画像をブロック毎にDCT変換することにより周波数成分に変換し、得られた変換係数を量子化して可変長符号化するというものである。
【0004】
上記DCT変換を用いた符号化は、圧縮率を高く設定すると復号画像にブロック歪みが発生してしまうという問題がある。近年、このような歪みを解消するために、ウェーブレット変換を用いる新たな符号化方式が提案されている。
【0005】
また、これら種々の高能率符号化の一部として、可変長符号化が適用されることが多い。
【0006】
【発明が解決しようとする課題】
しかしながら、多値画像を簡単な処理で可変長符号化するための方式、更にはこの可変長符号化方式を高速に実行するための処理装置の構成については、未だ確立されていないというのが現状である。
【0007】
本発明は該状況に鑑みてなされたものであり、多値画像を簡易な構成で高速に可変長符号化する符号化装置を提供することを目的とする。
【0008】
【課題を解決するための手段】
上記目的を達成するための一手段として、本発明の符号化装置は以下の構成を備える。
【0009】
即ち、パラメータに基づいて、シンボル群を可変長符号部分と固定長符号部分とにそれぞれ符号化する符号化手段を備える符号化装置であって、隣接するパラメータ間における前記可変長符号部分の符号量の差分値を算出する差分手段と、前記複数の差分値を所定値と比較する比較手段と、該比較結果に基づいて、符号化に適用するパラメータ値を決定する決定手段と、を有することを特徴とする。
【0010】
例えば、前記パラメータは、前記固定長符号部分の符号長を示すことを特徴とする。
【0011】
例えば、前記決定手段は、前記可変長符号部分の符号量が最小となるパラメータ値を決定することを特徴とする。
【0012】
【発明の実施の形態】
以下、本発明に係る一実施形態について、図面を参照して詳細に説明する。
【0013】
<第1実施形態>
本実施形態においては、8ビットのモノクロ画像データを符号化する例について説明する。しかしながら本発明はこれに限らず、例えば各画素を4ビット表現とするモノクロ画像、或いは各画素における色成分(RGB/Lab/YCrCb)を8ビットで表現するカラーの多値画像等を符号化する場合にも適用可能である。本発明をカラー多値画像に適用する場合には、各色成分をそれぞれモノクロ画像として符号化を行えばよい。
【0014】
図1は、本実施形態を適用する符号化装置の構成を示すブロック図である。同図において、101は画像入力部、102はデータ格納部、103は離散ウェーブレット変換部、104は係数量子化部、105は符号化パラメータ選択部、106は可変長符号化部、107はビットプレーン走査部、108はバッファ、109は符号出力部である。
【0015】
まず、画像入力部101では、符号化対象となる画素データをラスタスキャン順に入力する。この画像入力部101としては、例えばスキャナやデジタルカメラ等の撮像装置、或いはCCDなどの撮像デバイス、或いはネットワーク回線のインターフェース等からの画像データ入力処理、等が挙げられる。
【0016】
画像データ格納部102は例えばRAMによって構成され、画像入力部101で入力される画像データを記憶するが、例えばROM,ハードディスク,CD−ROM等の記録媒体によって構成されても良い。
【0017】
離散ウェーブレット変換部103では、画像データ格納部102に記憶した1画面分の画像データに対して周知の離散ウェーブレット変換を施し、複数の周波数帯域に分解する。本実施形態では、x(n)で示す画像データ列に対する離散ウェーブレット変換を、次式に基づいて行なうとする。
【0018】

Figure 0004086424
尚、上式においてr(n),d(n)は変換係数であり、r(n)は低周波成分、d(n)は高周波成分である。
【0019】
また上式において、floor{X}はXを超えない最大の整数値を表す。本変換式は一次元のデータに対するものであるが、この変換を水平方向、垂直方向の順に適用することで二次元の変換を行なうことが可能である。入力された画像データ列に対してこの2次元変換を施すことにより、図2(a)に示す様なLL,HL,LH,HHの4つの周波数帯域(サブブロック)に分割することができる。これらの変換データは、次段の係数量子化部104へスムーズにデータを出力したり、あるいは、更なるウェーブレット変換を行なうため、データ格納部102に記憶される。
【0020】
生成したLL成分について、同様の手順にて更に離散ウェーブレット変換を施すことにより、図2(b)に示す様に7個の周波数帯域(サブブロック)に分解される。本実施形態においては、更にもう一度離散ウェーブレット変換を施すことにより、画像データ列を図2(c)に示す様にLL,HL3,LH3,HH3,HL2,LH2,HH2,HL1,LH1,HH1の10個の周波数帯域(サブブロック)に分割し、前記データ格納部102に記憶する。
【0021】
変換係数はLL,HL3,LH3,HH3,HL2,LH2,HH2,HL1,LH1,HH1のサブブロック順に、かつ各サブブロック毎にはラスタースキャン順に、データ格納部102から係数量子化部104へと出力される。
【0022】
係数量子化部104は、ウェーブレット変換係数の各々を各周波数成分毎に定めた量子化ステップによって量子化し、量子化後の値を符号化パラメータ選択部105及びバッファ108へと出力する。
【0023】
ここで係数値をX、この係数の属する周波数成分に対する量子化ステップの値をqとすると、量子化後の量子化値Q(X)は次式によって求められるとする。
【0024】
Q(X)=floor{(X/q)+0.5}
本実施形態における各周波数成分と量子化ステップとの関係を図3に示す。同図に示すように、低周波成分(LL等)よりも高周波成分(HL1,LH1,HH1等)の方が量子化ステップを大きくしている。これにより、視覚的に劣化の目立ちにくい高周波成分の情報をより削減するようにし、圧縮率の向上を図っている。
【0025】
上記量子化値は、符号化パラメータ選択部105で評価され、後段の可変長符号化部106でこの量子化値を符号化する際に必要となるkパラメータが決定されるまで、バッファ108に保持される。
【0026】
符号化パラメータ選択部105では、上記量子化値に基づいて後段の可変長符号化部106で使用されるkパラメータを選択する。
【0027】
このkパラメータとは、ゴロムライス(Golomb Rice)符号化という可変長符号化を行なう際の固定長部の符号長を示す値である。説明の都合上、符号化パラメータ選択部105について説明する前に、可変長符号化部106におけるゴロムライス符号化処理について説明する。
【0028】
この可変長符号化部106で行なうゴロムライス符号化処理の基本的な方法は周知ではあるが、以下に、この符号化の基本的な動作及び本発明の特徴的な部分について説明する。
【0029】
まず、量子化値を格納したバッファ108から1サブブロック分のデータを順次読み出す。次に、可変長符号化部106において、該サブブロックに対応するkパラメータに基づき、以下に説明する前処理及びゴロムライス符号化処理を行なう。
【0030】
可変長符号化部106は、入力した各量子化値の正/負を調べ、負号ビットを出力する。具体的には、量子化値が0または正である場合には「0」を、負である場合には「1」を出力した後、該量子化値を絶対値に変換する。尚、この処理は厳密にはゴロムライス符号化処理には含まれないが、本実施形態ではこれをゴロムライス符号化の前処理として、可変長符号化部106内で行なうものとする。
【0031】
次に、該絶対値をゴロムライス符号化する。符号化対象となる量子化値の絶対値をV、処理対象のサブブロックに適用されるkパラメータの値がkである場合のゴロムライス符号化処理は次の手順にて行なう。
【0032】
まず、2進表現したVをkビット右シフトした後に、得られた値の個数だけ「0」を連続して配置し、その次に区切りのビットとして「1」を配置し、その次に元のVの下位kビットを配置することにより、可変長符号(ゴロムライス符号)を生成する。
【0033】
図4に、V=0〜7,k=0,1,2に対するゴロムライス符号の例を示す。同図から分かるように、絶対値V及びパラメータkから得られる各可変長符号の符号長は、V>>k(Vをkビット右シフトした値)+1(区切りビット)+k(パラメータの値)ビット、であることが容易に推測できる。また、正/負を表わす負号ビットを加えれば、さらに1ビット増える。
【0034】
また、同図からも分かるように、k=0の時のV=0に対するゴロムライス符号長が、k=1,2の時よりも特に短くなっている。これは、符号化される量子化値群が0に偏っているため、kパラメータを小さくして符号化する方が適していることを示している。
【0035】
また、ここで用いるゴロムライス符号化は、図4に示すような符号表を実際に保持することなく、簡単な演算によって符号化及び復号が実行可能であるという効果がある。尚、通常のハフマン符号化等の可変長符号化では、符号化対象値に対する可変長符号を示すテーブルを保持しなければならない。特に、関連する状態に応じて、符号化対象値に対して複数の可変長符号を適宜切り換える場合には、上記テーブルを複数持つ必要がある。
【0036】
以上のようにして、入力される量子化値に対する負号ビット(+/−を表わす)と可変長符号(ゴロムライス符号)からなる符号化データを生成し、後段のビットプレーン走査部107へ出力する。
【0037】
次に、上述した可変長符号化部106で必要となるkパラメータを生成する、符号化パラメータ選択部105における処理について説明する。
【0038】
符号化するサブブロックの全符号量Tは、kパラメータの値をpとすると
Figure 0004086424
となる。
【0039】
符号化するサブブロック内の量子化値の数をN個とすると、上記(1)式は下式のようになる。
【0040】
p = (p+2)×N+ΣVi>>p ・・・(2)
上記(2)式の第1項:(p+2)×N が固定長符号部分による符号量を示し、第2項:ΣVi>>p が可変長符号部分による符号量を示す。ここで第2項のみ、即ち可変長符号量を以下の(3)式のようにSpと表すとする。
【0041】
p=ΣVi>>p ・・・(3)
このSpは、pの値が小さい程大きくなる。一方、固定長符号部分の符号量はpの値に比例して大きくなり、pが1つ大きくなると該符号量はNビット増える。
【0042】
次に、Viを2進表現したときの各ビットプレーンにおける「1」の個数について考える。Vi>>pの最下位ビットのプレーン中に存在する「1」の数をBp+1とし、以下の(4)式で示す。
【0043】
p+1=Σ(Vi>>p)&1 ・・・(4)
即ち、B1はViの最下位ビットプレーン中の「1」の個数を表わし、B2はViの最下位ビットから2番目のプレーン中の「1」の個数を表わす。以上により、
Figure 0004086424
という関係と、(3),(4)式から、
p = 2×Sp+1+Bp+1 ・・・(6)
という関係式が得られる。
【0044】
ここで、kパラメータの値が1つだけ異なるSp-1とSp間の差分をDpとすると、
Figure 0004086424
このDpは、kパラメータの値がpからp−1に変わることで、可変長符号量がどれだけ増えるかを表わすものである。この値がNより小さいなら、全体の符号量は N−Dp だけ減るので、kパラメータの値はpよりもp−1にする方が効率的である。逆に、Dp≧N ならばkパラメータの値はpとする方がよい。
【0045】
上記(7)式をさらに変形すると、
Figure 0004086424
ここで、Sp,Bp-1≧0 であるから
p-1≧Dp ・・・(8) 上記(8)式の関係と、上述した説明から次のことが言える。
【0046】
「数列:D1,D2,D3,…,Dp-1,Dp,Dp+1,…,Dm には、D1≧D2≧D3≧…≧Dp-1≧Dp≧Dp+1≧…≧Dm という関係があり、Dq≧N≧Dq+1 となるqが存在するとき、このqはkパラメータの最適値の内の1つである(Nはサブブロック内の量子化値の数)。」
ここでいう最適値とは、ゴロムライス符号化したときの全体の符号量が最小になる値を意味する。また、mはゼロでないBpの中で最も大きなpの値であり、このmに対応するSmはゼロある。これは、一番大きな量子化絶対値をmビット右シフトすると0になるためである。よって、Dm=Bm≦N である。
【0047】
即ち、kパラメータがqからq+1になると符号量がN−Dq+1だけ増加し、kパラメータがqからq−1になると符号量がDq−Nだけ増加することが分かる。但し、Dq+1=NまたはDq=Nの時は符号量は増えず、最小のままである。尚、Dq+1=Nの時はq+1も最適値となり、Dq=Nの時はq−1も最適値となる。
【0048】
kパラメータの最適値は、最大3個存在しうる。その条件はDq=N=Dq+1が成立する時であり、言い替えると、Sq-1=0,Sq=N,Sq+1=2Nとなる時である。即ち、q−1,q,q+1がkパラメータの最適値となり、全符号量Tは極値(最小値)をとる。よって、kパラメータが上記最適値から遠ざかる程、全符号量は増加する。
【0049】
一方、上記qが存在しない場合は、N>D1 となる時であり、この場合kパラメータの値が0で全符号量が最小となる。そして、全符号量はkの値の変化(増加)に対して単調増加となる。
【0050】
ここで、前記数列と最適値に関する関係を一般化するために、D0=D1+2Nと定義する。すると、次のことが言える。
【0051】
「数列:D0,D1,D2,D3,…,Dp-1,Dp,Dp+1,…,Dm には、D0≧D1≧D2≧D3≧…≧Dp-1≧Dp≧Dp+1≧…≧Dm という関係があり、Dq≧N≧Dq+1 となるqが存在するとき、このqはkパラメータの最適値の内の1つである。」
これにより、最適値qの存在が明確なものとなる。
【0052】
ここで、DpとNとの比較結果Cpを次式のように定義すると
p=1 :Dp>Nの時
p=0 :Dp≦Nの時 ・・・(9)
前述の D0≧D1≧D2≧D3≧…≧Dp-1≧Dp≧Dp+1≧…≧Dm という開係から、C0≧C1≧C2≧C3≧…≧Cp-1≧Cp≧Cp+1≧…≧Cm という関係が得られる。これは、C0,C1,C2,C3,…,Cp-1,Cp,Cp+1,…,Cm という数列が、C0=1から始まってCm=0で終わり、途中1から0への変化点が一個所あるが、0から1への変化点はないことを示している。
【0053】
上記数列(C0,C1,C2,…)中において、その値が1から0に変化する箇所は、DpとNの大小関係が逆転する箇所である。
【0054】
先頭のC0=1を除いた、C1から始まる1の個数がq個ある時、即ち、Cq=1,Cq+1=0である時、Dq≧N>Dq+1となるので、qがkパラメータの最適値となる。
【0055】
以上の原理を利用して、本実施形態は符号化パラメータ選択部105を構成する。符号化パラメータ選択部105のブロック構成を図5に示す。同図において、501は係数量子化部104から送られる量子化値を入力する端子、502a,502b,502c,…,502pは、入力された量子化値を順次1ビットずつ右へシフトするビットシフタ、503a,503b,503c,…,503qは、順次入力されるN個の値を加算する累算器、504a,504b,504c,…,504pは、隣接する2つの累算器の出力の差を求める減算器、505a,505b,505c,…,505pは、減算器の出力を所定値Nと比較する比較器、507は比較器による複数の比較結果から最適なkパラメータを求めるプライオリティ・エンコーダである。
【0056】
尚、図5に示すビットシフタ群502は、説明の都合上導入したものであって、回路構成上はほとんど実体の無いものである。即ち、各ビットシフタの入出力間では、信号の位取りが1ビット異なるだけであるから、ビットシフタを1つ通過するごとに、配線を上位側へ1ビットずつずらしていけば良い。
【0057】
端子501から入力されるi番目の量子化値をViとすると、ビットシフタ502aの出力はVi>>1、ビットシフタ502bの出力はVi>>2、ビットシフタ502cの出力はVi>>3,…となる。
【0058】
各々の累算器503は、サブブロックの最初の入力データで0に初期化され、入力データ及び各ビットシフタの出力を次々に加算し累算する。例えば、累算器503cは、Vi>>2(i=1,2,…,N−1,N)を累算する。
【0059】
その結果、kパラメータ=0,1,2,…,mに対する可変長符号部分の符号量が、各累算器から出力される。具体的には、累算器503aからは、S0=ΣVi>>0、累算器503bからは、S1=ΣVi>>1、累算器503cからは、S2=ΣVi>>3といった具合である。
【0060】
これらの累算器503の出力を減算器504に入力して、kパラメータが1つだけ異なる場合に可変長符号部分の符号量がどれだけ違うのか、すなわち前記(6)式におけるDp=Sp-1−Spを、すべてのパラメータ値(p=1,2,3,…,m)について計算する。
【0061】
減算器504aからは、D1=S0−S1、減算器504bからは、D2=S1−S2、減算器504cからは、D3=S2−S3,…が出力される。
【0062】
これらの減算器出力をサブブロック内の量子化値の個数Nと比較し、前記(8)式の判定を行ない、その判定結果Cpを、各比較器505から出力する。
【0063】
前述のように、C0,C1,C2,…,Cp,…,Cmには順序関係があり、前半が1で後半に0がくる。この前半の1の数によって、kパラメータの最適値が決まる。この1の数をkパラメータの値に変換するために、プライオリティ・エンコーダ507を用いる。
【0064】
プライオリティ・エンコーダ507は、15ビット入力かつ4ビット出力を行う。即ち、15個の比較結果を入力し、kパラメータの値として0〜15の値を出力する。図6に、プライオリティ・エンコーダ507における入出力関係を示す。
【0065】
尚、図5に示した符号化パラメータ選択部105の構成においては、並列処理可能な箇所は全て並列に処理を行うために、減算器や比較器を複数備える例を示したが、減算器と比較器をそれぞれ1個だけ備える構成とし、DpとCpをp=1,2,3…,mの順にCp=0になるまでシーケンシャルに計算し、Cp=0になった時のpの値から1を減算した値(p−1)をkパラメータの値にすることも可能である。
【0066】
符号化パラメータ選択部105では、以上のように処理を行なって最適なkパラメータを導出し、既に説明した可変長符号化部106では、該kパラメータに基づいて符号化処理を実行する。符号化されたデータは、次段のビットプレーン走査部107に出力される。
【0067】
ビットプレーン走査部107においては、量子化値毎に符号化・出力された符号化データを受け取り、それをビットプレーン単位に並び替えて出力するものである。これを、上述した周波数成分(サブブロック)単位で行なう。
【0068】
まず、可変長符号化部106で生成された符号化データを、kパラメータの値で決まる固定長符号部分と可変長符号部分とに分離する。尚、符号にはその外に1ビット固定の負号ビットが含まれている。
【0069】
そして重要な情報から走査を開始するが、まず最初に負号ビットをサブブロック内の全量子化値に対して走査する。次に、量子化値の上位ビットの情報を有する可変長符号部分を上位ビットプレーンから順に走査する。最後に、固定長符号部分を上位ビットプレーンから順に走査する。
【0070】
図7に、本実施形態においてkパラメータが2である場合に生成される、各量子化値に対するゴロムライス符号(但し、可変長符号部分と固定長符号部分とを分離したもの)及びその走査順序の一例を示す。以下、図7を参照して、可変長符号部分の走査についてもう少し詳しく説明する。可変長符号は符号長が一定でないため、短い符号と長い符号をどのようにそろえて並べるかが一意に定まらない。そこで本実施形態においては、可変長符号の先頭ビットが同じプレーンになるように並べるとする。即ち、可変長符号は図7に示す可変長符号領域の上から順にうめるようにして並べる。上記ビットプレーン情報を上位ビットから順に走査すると、短い符号では途中のプレーンから情報(符号ビット)が無くなるので、情報の無い符号は走査をスキップする。よって、下位のビットプレーンへ行くにつれ、走査する情報(符号ビット)が少なくなる。
【0071】
図8に、図7に示す符号に対して上記順序(負号ビット,可変長符号,固定長符号)での走査を行うことによって得られるビット情報の並びを示す。
【0072】
ビットプレーン走査部107においては、このようなビットプレーン走査をサブブロック単位でLL,HL3,LH3,HH3,HL2,LH2,HH2,HL1,LH1,HH1の順に行なう。
【0073】
ビットプレーン走査部107から出力されたビット列は、次段の符号出力部109において、順次転送される。転送先は、ハードディスクやDVD等の記録メディアであっても良いし、インターネット、一般公衆回線、無緑回線等のインターフェースであっても良い。
【0074】
尚、本実施形態において生成された符号化データには、復号時に必要となる各種情報、すなわち、画像サイズ、1画素あたりのビット数、各周波数成分に対する量子化ステップ、kパラメータの値等を、付属情報として符号化データに適宜付加することが可能である。
【0075】
以上説明したように本実施形態によれば、パラメータkに基づいて画像データ列をゴロムライス符号化する際に、簡易な構成でk毎の可変長符号量の差分値を所定値と比較することによって、kの最適値を高速に決定することができる。
【0076】
<第2実施形態>
以下、本発明に係る第2実施形態について説明する。第2実施形態における符号化装置の構成は、上述した図1と同様である。
【0077】
図9に、第2実施形態における符号化パラメータ選択部105の詳細構成を示す。同図において、上述した第1実施形態で示した図5における構成と同様の動作を行うものには同一番号を付し、説明を省略する。
【0078】
図9において、703a,703b,703c,…は、各ビットシフタ502の入出力間の差を求める減算器、704a,704b,704c,…は、上記減算器の出力を加算していく累算器である。
【0079】
第2実施形態におけるkパラメータの最適値決定の原理は、第1実施形態で説明した(7)式:Dp=Sp-1−SpにおけるSp-1,Spに、(3)式を代入した以下の式に基づく。
【0080】
Figure 0004086424
上記(10)式における(Vi>>(p-1))−(Vi>>p)は、図9において上からp番めのビットシフタ502の入力値と出力値の差分(入力値−出力値)を意味する。よって、該差分値を減算器703で求め、その総和(Σ)に相当する部分を累算器704で算出する。
【0081】
各累算器704から出力されるDpは、上述した第1実施形態における減算器504からの出力と等価であるため、比較器505以降の処理は第1実施形態の場合と全く同様である。
【0082】
即ち、第2実施形態における符号化パラメータ選択部105の構成においては、上述した第1実施形態における構成と比べて、ただ単に減算器と累算器の配置が入れ替わったのみならず、減算器の規模が小さくなると言う利点がある。例えばNの値を64とすると、累算器704の出力ビット幅は入力ビット幅より6ビット大きい。この場合、累算器704の入力側にある減算器703のビット幅は、出力側にある場合(第1実施形態における減算器504に相当)のビット幅よりも6ビット分小さくて済む。
【0083】
尚、第2実施形態においても、減算器703を1個だけ備える構成とし、DpとNをp=1,2,3…,mの順にCp=0になるまでシーケンシャルに比較してゆき、Cp=0になった時のpの値から1を減算した値(p−1)をkパラメータの値にすることも可能である。
【0084】
より具体的には、初期値0から始まるカウンタの動作と同期して、比較処理を行なってゆく構成が考えられる。即ち、カウント値0でD1とNを比較してC1を出力し、カウント値1でD2とNを比較してC2を出力し、Cp=0になるまで順次比較処理を行なって行く。すると、Cp=0になった時のカウント値はp−1であるため、該カウント値をkパラメータの値として出力すれば良い。
【0085】
以上説明したように第2実施形態によれば、第1実施形態よりも更に簡易な構成で、パラメータkの最適値を高速に決定することができる。
【0086】
<第3実施形態>
以下、本発明に係る第3実施形態について説明する。第3実施形態における符号化装置の構成は、上述した図1と同様である。
【0087】
図10に、第3実施形態における符号化パラメータ選択部105の詳細構成を示す。同図において、上述した第2実施形態で示した図9における構成と同様の動作を行うものには同一番号を付し、説明を省略する。
【0088】
図10において、803a,803b,803c,…は、ビット列に1ビットを加算する+1加算器である。
【0089】
第3実施形態におけるkパラメータの最適値決定の原理は、既に説明した(5)式を変形して(10)式に適用することによって得られる(11)式に基づく。即ち、
Figure 0004086424
(5)式を変形することにより下式が得られる。
【0090】
Vi>>(p-1)=2×(Vi>>p)+((Vi>>(p-1))&1)
これを(10)式に代入することにより、
Figure 0004086424
(11)式における(Vi>>p)+((Vi>>(p-1))&1)は、図10において上からp番めのビットシフタ502の出力値に、入力側の最下位ビット(LSB)を加算することを意味している。よって、該加算値を+1加算器803で求め、その総和(Σ)に相当する部分を累算器704で算出する。
【0091】
各+1加算器803から出力される値は、上述した第2実施形態における減算器703からの出力と等価であるため、累算器704以降の処理は第2実施形態と全く同様である。
【0092】
即ち、第3実施形態における符号化パラメータ選択部105の構成においては、上述した第2実施形態における減算器703が+1加算器803に置き換わるため、ハードウェア規模を更に小さくすることができる。
【0093】
尚、第3実施形態においても第2実施形態と同様に、比較器505を1個だけ備える構成とし、DpとNをp=1,2,3…,mの順にCp=0になるまでシーケンシャルに比較してゆき、Cp=0になった時のpの値から1を減算した値(p−1)をkパラメータの値にすることも可能である。
【0094】
以上説明したように第3実施形態によれば、第2実施形態よりも更に簡易な構成で、パラメータkの最適値を高速に決定することができる。
【0095】
<第4実施形態>
以下、本発明に係る第4実施形態について説明する。第4実施形態における符号化装置の構成は、上述した図1と同様である。
【0096】
第4実施形態においては、符号化パラメータ選択部105の構成において、その累算器の内部に備える加算器として、キャリー入力機能を持つ全加算器を使用することを特徴とする。これにより、第3実施形態で示した+1加算器803を備える必要が無くなる。
【0097】
上述した第1乃至第3実施形態で示した累算器(503,704)においては、キャリー入力を備えない半加算器とキャリー入力を備える全加算器のいずれも使用可能であった。但し、全加算器を使用した場合、該キャリー入力には0を与えておく必要があった。
【0098】
ここで、第1乃至第3実施形態で使用可能な半加算器型の累算器の構成を図11(a)に、第4実施形態で使用する全加算器型の累算器の構成を図11(b)に示す。
【0099】
全加算器は、半加算器の機能に対して更に、+1ビットを行う機能が付加されたもものであるため、上述した第3実施形態において累算器の前段に備える必要のあった+1加算器803の機能を、累算器704内の全加算器に取り込むことができる。この場合、全加算器の回路規模は当然、半加算器の回路規模よりも大きくなるが、第3実施形態のように半加算器と+1加算器をそれぞれ独立に備える場合と比べると、はるかに小さい。
【0100】
以上説明しいたように第4実施形態によれば、第3実施形態における+1加算器803と累算器704を、図11(b)に示す全加算器型の累算器に統合することにより、さらにハードウェア規模を小さくすることができる。
【0101】
<第5実施形態>
以下、本発明に係る第5実施形態について説明する。第5実施形態における符号化装置の構成は、上述した図1と同様である。
【0102】
図12に、第5実施形態における符号化パラメータ選択部105の詳細構成を示す。同図において、上述した第1実施形態で示した図5における構成と同様の動作を行うものには同一番号を付し、説明を省略する。
【0103】
図12において、1003a,1003b,1003c,…は、カウンタ、1004a,1004b,1004c,…は、加算器である。
【0104】
第5実施形態におけるkパラメータの最適値決定の原理は、既に説明した(7)式に基づく。
【0105】
p=Sp+Bp(p≧1) ・・・(7)
カウンタ1003a,1003b,1003c,…は、上記(7)式におけるBpを各プレーンごとに、1ビットずつカウントするものであり、加算器1004a,1004b,1004c,…は、上記(7)式におけるSp+Bpを演算するものである。
【0106】
各加算器1004の出力は、第1実施形態において図5に示した減算器504a,504b,504c,…の出力と等価である。従って第1実施形態と同様に、比較器505a,505b,505c,…において加算器1004の出力を所定値Nと比較し、該比較結果Cpをプライオリティ・エンコーダ507に入力してkパラメータの値に変換する。
【0107】
以上説明したように第5実施形態によれば、カウンタを用いた構成によっても、パラメータkの最適値を高速に決定することができる。
【0108】
<第6実施形態>
以下、本発明に係る第6実施形態について説明する。第6実施形態における符号化装置の構成は、上述した図1と同様である。
【0109】
図13に、第6実施形態における符号化パラメータ選択部105の詳細構成を示す。同図において、上述した第5実施形態で示した図12における構成と同様の動作を行うものには同一番号を付し、説明を省略する。
【0110】
図13において、1105a,1105c,…は、累算器の出力を2倍にするために該出力を1ビット左シフトするビットシフタ、1107a,1107c,…は、3入力のデータを加算する加算器である。
【0111】
第6実施形態においては、上述した第5実施形態におけるS1,S3,S5,…,C2i+1の算出に、先に示した(6)式を適用することを特徴とする。
【0112】
p=2×Sp+1+Bp+1 ・・・(6)
即ち、2×S2i+B2iからS2i-1 を演算し、該S2i-1にB2i-1を加算してD2i-1を求める。尚、D2iについては、第5実施形態と同様の演算によって求める。
【0113】
第6実施形態においては即ち、ビットシフタ1105a,1105c,…において2×S2iを求め、加算器1107a,1107c,…において2×S2i,B2i,B2i-1の3つの項を加算する。この演算により、各比較器505の入力に必要なDp(p=1,2,3…)が全てそろうため、以降は第5実施形態と同様の処理でkパラメータの最適値を得ることができる。
【0114】
以上説明したように第6実施形態によれば、第5実施形態で示した構成から更に累算器を減らした構成によって、パラメータkの最適値を高速に決定することができる。
【0115】
【発明の効果】
以上説明したように本発明によれば、多値画像を簡易な構成で高速に可変長符号化する符号化装置を提供することができる。
【図面の簡単な説明】
【図1】本発明に係る一実施形態における符号化装置の構成を示すブロック図、
【図2】離散ウェーブレット変換の様子を示す図、
【図3】周波数成分(サブブロック)に用いる量子化ステップの一例を示す図、
【図4】ゴロムライス符号化によって得られる符号の一例を示す図、
【図5】本実施形態における符号化パラメータ選択部105の詳細構成を示すブロック図、
【図6】本実施形態におけるプライオリティ・エンコーダの入出力関係を示す図、
【図7】本実施形態におけるビットプレーン毎のゴロムライス符号例を示す図、
【図8】最終的に出力されるビットストリーム例を示す図、
【図9】第2実施形態における符号化パラメータ選択部105の詳細構成を示すブロック図、
【図10】第3実施形態における符号化パラメータ選択部105の詳細構成を示すブロック図、
【図11】第4実施形態における加算器の構成を示すブロック図、
【図12】第5実施形態における符号化パラメータ選択部105の詳細構成を示すブロック図、
【図13】第6実施形態における符号化パラメータ選択部105の詳細構成を示すブロック図、である。
【符号の説明】
101 画像入力部
102 データ格納部
103 離散ウェーブレット変換部
104 係数量子化部
105 符号化パラメータ選択部
106 可変長符号化部
107 ビットプレーン走査部
108 バッファ
109 符号出力部
502,1105 ビットシフタ
503,704 累算器
504,703 減算器
505 比較器
507 プライオリティ・エンコーダ
803 +1加算器
1003 カウンタ
1004,1007 加算器[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an encoding device that encodes image data.
[0002]
[Prior art]
In general, an image, particularly a multi-valued image, contains a great deal of information, and there is a problem that the amount of data handled when storing and transmitting the image becomes enormous. For this reason, when storing and transmitting images, high-efficiency coding is used to reduce the amount of data by removing the redundancy of the images and accepting some deterioration in image quality.
[0003]
As one of these high-efficiency encodings, JPEG compression encoding is known. In this method, a multi-value image is converted into frequency components by DCT conversion for each block, and the obtained conversion coefficient is quantized and variable-length encoded.
[0004]
The encoding using the DCT transform has a problem that block distortion occurs in the decoded image when the compression rate is set high. In recent years, a new encoding method using wavelet transform has been proposed in order to eliminate such distortion.
[0005]
Also, variable length coding is often applied as part of these various high efficiency codings.
[0006]
[Problems to be solved by the invention]
However, there is currently no established method for variable-length coding of multi-valued images with simple processing, and further, the configuration of a processing device for executing this variable-length coding method at high speed. It is.
[0007]
The present invention has been made in view of this situation, and an object of the present invention is to provide an encoding device that performs variable-length encoding of a multi-value image at high speed with a simple configuration.
[0008]
[Means for Solving the Problems]
As a means for achieving the above object, the encoding apparatus of the present invention comprises the following arrangement.
[0009]
That is, an encoding device comprising encoding means for encoding a symbol group into a variable length code portion and a fixed length code portion based on a parameter, wherein the code amount of the variable length code portion between adjacent parameters Difference means for calculating the difference value, comparison means for comparing the plurality of difference values with a predetermined value, and determination means for determining a parameter value to be applied to encoding based on the comparison result. Features.
[0010]
For example, the parameter indicates a code length of the fixed-length code portion.
[0011]
For example, the determining means determines a parameter value that minimizes a code amount of the variable length code portion.
[0012]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, an embodiment according to the present invention will be described in detail with reference to the drawings.
[0013]
<First Embodiment>
In this embodiment, an example of encoding 8-bit monochrome image data will be described. However, the present invention is not limited to this. For example, a monochrome image in which each pixel is expressed in 4 bits, or a multi-valued image in which a color component (RGB / Lab / YCrCb) in each pixel is expressed in 8 bits is encoded. It is also applicable to cases. When the present invention is applied to a color multilevel image, each color component may be encoded as a monochrome image.
[0014]
FIG. 1 is a block diagram showing a configuration of an encoding apparatus to which this embodiment is applied. In the figure, 101 is an image input unit, 102 is a data storage unit, 103 is a discrete wavelet transform unit, 104 is a coefficient quantization unit, 105 is an encoding parameter selection unit, 106 is a variable length encoding unit, and 107 is a bit plane. A scanning unit 108 is a buffer, and 109 is a code output unit.
[0015]
First, the image input unit 101 inputs pixel data to be encoded in raster scan order. Examples of the image input unit 101 include image data input processing from an imaging device such as a scanner or a digital camera, an imaging device such as a CCD, or a network line interface.
[0016]
The image data storage unit 102 is configured by, for example, a RAM and stores image data input by the image input unit 101. However, the image data storage unit 102 may be configured by a recording medium such as a ROM, a hard disk, or a CD-ROM.
[0017]
The discrete wavelet transform unit 103 performs well-known discrete wavelet transform on the image data for one screen stored in the image data storage unit 102, and decomposes it into a plurality of frequency bands. In the present embodiment, it is assumed that the discrete wavelet transform for the image data sequence indicated by x (n) is performed based on the following equation.
[0018]
Figure 0004086424
In the above equation, r (n) and d (n) are conversion coefficients, r (n) is a low frequency component, and d (n) is a high frequency component.
[0019]
In the above formula, floor {X} represents the maximum integer value not exceeding X. Although this conversion formula is for one-dimensional data, it is possible to perform two-dimensional conversion by applying this conversion in the order of horizontal direction and vertical direction. By performing this two-dimensional conversion on the input image data string, it is possible to divide into four frequency bands (sub-blocks) such as LL, HL, LH, and HH as shown in FIG. These converted data are stored in the data storage unit 102 in order to smoothly output the data to the coefficient quantization unit 104 in the next stage or to perform further wavelet transform.
[0020]
The generated LL component is further subjected to discrete wavelet transform in the same procedure, thereby being decomposed into seven frequency bands (sub-blocks) as shown in FIG. In the present embodiment, the discrete wavelet transform is performed once more, so that the image data sequence becomes 10 of LL, HL3, LH3, HH3, HL2, LH2, HH2, HL1, LH1, HH1 as shown in FIG. The data is divided into frequency bands (sub-blocks) and stored in the data storage unit 102.
[0021]
The transform coefficients are transferred from the data storage unit 102 to the coefficient quantization unit 104 in the order of subblocks LL, HL3, LH3, HH3, HL2, LH2, HH2, HL1, LH1, and HH1, and in each raster block in raster scan order. Is output.
[0022]
Coefficient quantization section 104 quantizes each wavelet transform coefficient by a quantization step determined for each frequency component, and outputs the quantized value to encoding parameter selection section 105 and buffer 108.
[0023]
Here, when the coefficient value is X and the quantization step value for the frequency component to which the coefficient belongs is q, the quantized quantized value Q (X) is obtained by the following equation.
[0024]
Q (X) = floor {(X / q) +0.5}
FIG. 3 shows the relationship between each frequency component and the quantization step in this embodiment. As shown in the figure, the quantization step is larger for the high frequency components (HL1, LH1, HH1, etc.) than for the low frequency components (LL, etc.). As a result, information on high-frequency components that are hardly visually noticeable is further reduced to improve the compression rate.
[0025]
The quantized value is evaluated by the encoding parameter selection unit 105, and held in the buffer 108 until the k parameter necessary for encoding the quantized value is determined by the variable length encoding unit 106 at the subsequent stage. Is done.
[0026]
The encoding parameter selection unit 105 selects the k parameter used in the subsequent variable length encoding unit 106 based on the quantization value.
[0027]
The k parameter is a value indicating the code length of the fixed length part when performing variable length coding called Golomb Rice coding. For convenience of explanation, before describing the coding parameter selection unit 105, the Golombrice coding processing in the variable length coding unit 106 will be described.
[0028]
Although the basic method of Golomb-Rice encoding processing performed by the variable length encoding unit 106 is well known, the basic operation of the encoding and characteristic portions of the present invention will be described below.
[0029]
First, data for one sub-block is sequentially read from the buffer 108 that stores the quantization value. Next, the variable length coding unit 106 performs preprocessing and Golomb-Rice coding processing described below based on the k parameter corresponding to the sub-block.
[0030]
The variable length coding unit 106 checks the positive / negative of each input quantized value and outputs a negative sign bit. Specifically, “0” is output when the quantized value is 0 or positive, and “1” is output when the quantized value is negative, and then the quantized value is converted into an absolute value. Strictly speaking, this process is not included in the Golomb-Rice encoding process, but in the present embodiment, this process is performed in the variable-length encoding unit 106 as a pre-process for Golomu-Rice encoding.
[0031]
Next, the absolute value is Golomb-Rice encoded. The Golombrice coding process when the absolute value of the quantization value to be encoded is V and the value of the k parameter applied to the sub-block to be processed is k is performed according to the following procedure.
[0032]
First, the binary representation of V is shifted right by k bits, then “0” is continuously arranged for the number of obtained values, then “1” is arranged as a delimiter bit, and then the original By arranging the lower-order k bits of V, a variable-length code (Golomurice code) is generated.
[0033]
FIG. 4 shows an example of a Golomb-Rice code for V = 0 to 7, k = 0, 1, 2. As can be seen from the figure, the code length of each variable length code obtained from the absolute value V and the parameter k is V >> k (value obtained by shifting V to the right by k bits) +1 (separator bit) + k (parameter value) It can be easily guessed that it is a bit. Further, if a negative sign bit representing positive / negative is added, it is further increased by one bit.
[0034]
Further, as can be seen from the figure, the Golomb-Rice code length for V = 0 when k = 0 is particularly shorter than when k = 1,2. This indicates that since the quantization value group to be encoded is biased to 0, it is more appropriate to perform encoding with a smaller k parameter.
[0035]
Further, the Golombrice coding used here has an effect that the coding and decoding can be executed by a simple calculation without actually holding the code table as shown in FIG. Note that in variable-length encoding such as normal Huffman encoding, a table indicating variable-length codes for encoding target values must be held. In particular, when a plurality of variable length codes are appropriately switched for a value to be encoded according to a related state, it is necessary to have a plurality of tables.
[0036]
As described above, encoded data composed of a negative bit (representing +/-) and a variable length code (Golomurice code) for the input quantized value is generated and output to the bit plane scanning unit 107 at the subsequent stage. .
[0037]
Next, processing in the encoding parameter selection unit 105 that generates k parameters required by the variable length encoding unit 106 described above will be described.
[0038]
The total code amount T of the sub-block to be encoded is given by assuming that the value of the k parameter is p.
Figure 0004086424
It becomes.
[0039]
Assuming that the number of quantization values in the sub-block to be encoded is N, the above equation (1) is as follows.
[0040]
T p = (P + 2) × N + ΣVi >> p (2)
In the above equation (2), the first term: (p + 2) × N indicates the code amount by the fixed-length code portion, and the second term: ΣVi >> p indicates the code amount by the variable-length code portion. Here, only the second term, that is, the variable length code amount is expressed as S in the following equation (3). p Suppose that
[0041]
S p = ΣVi >> p (3)
This S p Increases as the value of p decreases. On the other hand, the code amount of the fixed-length code portion increases in proportion to the value of p, and when p increases by one, the code amount increases by N bits.
[0042]
Next, consider the number of “1” s in each bit plane when Vi is expressed in binary. The number of “1” existing in the plane of the least significant bit of Vi >> p is B p + 1 And expressed by the following equation (4).
[0043]
B p + 1 = Σ (Vi >> p) & 1 (4)
That is, B 1 Represents the number of “1” s in the least significant bit plane of Vi, and B 2 Represents the number of “1” s in the second plane from the least significant bit of Vi. With the above,
Figure 0004086424
From the relationship of (3) and (4),
S p = 2 x S p + 1 + B p + 1 ... (6)
Is obtained.
[0044]
Here, the value of the k parameter differs by one S p-1 And S p The difference between D p Then,
Figure 0004086424
This D p Represents how much the variable length code amount is increased by changing the value of the k parameter from p to p-1. If this value is smaller than N, the total code amount is ND p Therefore, it is more efficient to set the value of the k parameter to p-1 than to p. Conversely, D p If ≧ N, the value of the k parameter should be p.
[0045]
When the above equation (7) is further modified,
Figure 0004086424
Where S p , B p-1 ≧ 0
D p-1 ≧ D p (8) The following can be said from the relationship of the above equation (8) and the above description.
[0046]
"Sequence: D 1 , D 2 , D Three , ..., D p-1 , D p , D p + 1 , ..., D m D 1 ≧ D 2 ≧ D Three ≧… ≧ D p-1 ≧ D p ≧ D p + 1 ≧… ≧ D m D q ≧ N ≧ D q + 1 Q is one of the optimal values of the k parameter (N is the number of quantized values in the sub-block). "
The optimum value here means a value that minimizes the entire code amount when Golomb-Rice coding is performed. M is not zero B p Is the largest value of p, and S corresponding to this m m Is zero. This is because the largest quantized absolute value becomes 0 when shifted right by m bits. Therefore, D m = B m ≦ N.
[0047]
That is, when the k parameter is changed from q to q + 1, the code amount is ND q + 1 When the k parameter is changed from q to q-1, the code amount is D q It can be seen that it increases by -N. However, D q + 1 = N or D q When = N, the code amount does not increase and remains the minimum. D q + 1 When N = N, q + 1 is also the optimum value, and D q When N = N, q-1 is also an optimum value.
[0048]
There can be a maximum of three optimum values of the k parameter. The condition is D q = N = D q + 1 In other words, S q-1 = 0, S q = N, S q + 1 = 2N. That is, q-1, q, q + 1 are the optimum values of the k parameter, and the total code amount T takes an extreme value (minimum value). Therefore, the total code amount increases as the k parameter moves away from the optimum value.
[0049]
On the other hand, if q does not exist, N> D 1 In this case, the value of the k parameter is 0 and the total code amount is minimum. The total code amount monotonically increases with respect to the change (increase) in the value of k.
[0050]
Here, in order to generalize the relationship between the sequence and the optimum value, D 0 = D 1 It is defined as + 2N. Then the following can be said.
[0051]
"Sequence: D 0 , D 1 , D 2 , D Three , ..., D p-1 , D p , D p + 1 , ..., D m D 0 ≧ D 1 ≧ D 2 ≧ D Three ≧… ≧ D p-1 ≧ D p ≧ D p + 1 ≧… ≧ D m D q ≧ N ≧ D q + 1 Q is one of the optimal values of the k parameter. "
Thereby, the existence of the optimum value q becomes clear.
[0052]
Where D p And C comparison result C p Is defined as
C p = 1: D p > N
C p = 0: D p ≤ N (9)
D mentioned above 0 ≧ D 1 ≧ D 2 ≧ D Three ≧… ≧ D p-1 ≧ D p ≧ D p + 1 ≧… ≧ D m From the opening 0 ≧ C 1 ≧ C 2 ≧ C Three ≧… ≧ C p-1 ≧ C p ≧ C p + 1 ≧… ≧ C m The relationship is obtained. This is C 0 , C 1 , C 2 , C Three , ..., C p-1 , C p , C p + 1 , ..., C m The number sequence is C 0 = 1 starting with C m = 0, and there is one change point from 1 to 0 in the middle, but there is no change point from 0 to 1.
[0053]
The above sequence (C 0 , C 1 , C 2 ,...) Where the value changes from 1 to 0 is D p This is where the magnitude relationship between N and N is reversed.
[0054]
First C 0 = 1 except for C 1 When there are q 1's starting from i.e., C q = 1, C q + 1 = 0 when D q ≧ N> D q + 1 Therefore, q is the optimum value of the k parameter.
[0055]
The present embodiment configures the encoding parameter selection unit 105 using the above principle. The block configuration of the encoding parameter selection unit 105 is shown in FIG. In the figure, 501 is a terminal for inputting a quantized value sent from the coefficient quantizing unit 104, 502a, 502b, 502c,..., 502p are bit shifters that sequentially shift the inputted quantized value bit by bit to the right, 503a is an accumulator that adds N values sequentially input, and 504a, 504b, 504c,... 504p obtains a difference between outputs of two adjacent accumulators. Subtractors 505a, 505b, 505c,..., 505p are comparators that compare the output of the subtractor with a predetermined value N, and 507 is a priority encoder that obtains an optimum k parameter from a plurality of comparison results by the comparators.
[0056]
It should be noted that the bit shifter group 502 shown in FIG. In other words, since the signal scale is different by 1 bit between the input and output of each bit shifter, it is only necessary to shift the wiring to the upper side by one bit each time one bit shifter passes.
[0057]
When the i-th quantized value input from the terminal 501 is Vi, the output of the bit shifter 502a is Vi >> 1, the output of the bit shifter 502b is Vi >> 2, the output of the bit shifter 502c is Vi >> 3,. .
[0058]
Each accumulator 503 is initialized to 0 with the first input data of the sub-block, and adds and accumulates the input data and the output of each bit shifter one after another. For example, the accumulator 503c accumulates Vi >> 2 (i = 1, 2,..., N−1, N).
[0059]
As a result, the code amount of the variable length code portion for k parameter = 0, 1, 2,..., M is output from each accumulator. Specifically, from accumulator 503a, S 0 = ΣVi >> 0, from accumulator 503b, S 1 = ΣVi >> 1, from accumulator 503c, S 2 = ΣVi >> 3.
[0060]
The outputs of these accumulators 503 are input to the subtractor 504, and how much the code amount of the variable length code portion differs when the k parameter differs by one, that is, D in the above equation (6). p = S p-1 -S p Are calculated for all parameter values (p = 1, 2, 3,..., M).
[0061]
From the subtractor 504a, D 1 = S 0 -S 1 From the subtractor 504b, D 2 = S 1 -S 2 From the subtractor 504c, D Three = S 2 -S Three , ... are output.
[0062]
These subtractor outputs are compared with the number N of quantized values in the sub-block, and the determination of the above equation (8) is performed, and the determination result C p Are output from each comparator 505.
[0063]
As mentioned above, C 0 , C 1 , C 2 , ..., C p , ..., C m Have an order relationship, the first half is 1 and the second half is 0. The optimal value of the k parameter is determined by the number of 1 in the first half. A priority encoder 507 is used to convert this number of 1s to the value of the k parameter.
[0064]
The priority encoder 507 performs 15-bit input and 4-bit output. That is, 15 comparison results are input, and a value of 0 to 15 is output as the value of the k parameter. FIG. 6 shows the input / output relationship in the priority encoder 507.
[0065]
In the configuration of the encoding parameter selection unit 105 shown in FIG. 5, an example in which a plurality of subtractors and comparators are provided in order to perform parallel processing on all parts that can be processed in parallel has been shown. A configuration having only one comparator, and D p And C p In the order of p = 1, 2, 3,..., M p Sequentially calculated until = 0, C p A value (p−1) obtained by subtracting 1 from the value of p when = 0 is set as the value of the k parameter.
[0066]
The encoding parameter selection unit 105 performs the process as described above to derive the optimum k parameter, and the variable length encoding unit 106 described above executes the encoding process based on the k parameter. The encoded data is output to the bit plane scanning unit 107 at the next stage.
[0067]
The bit plane scanning unit 107 receives encoded data encoded and output for each quantized value, rearranges them in bit plane units, and outputs them. This is performed for each frequency component (subblock) described above.
[0068]
First, the encoded data generated by the variable length encoding unit 106 is separated into a fixed length code portion and a variable length code portion determined by the value of the k parameter. In addition, the sign includes a negative bit fixed to 1 bit.
[0069]
Then, scanning starts with important information. First, the negative bit is scanned over all quantized values in the sub-block. Next, the variable length code portion having the information of the upper bits of the quantized value is scanned in order from the upper bit plane. Finally, the fixed-length code portion is scanned in order from the upper bit plane.
[0070]
FIG. 7 shows a Golomb-Rice code (provided that a variable-length code part and a fixed-length code part are separated) for each quantized value and a scan order thereof generated when the k parameter is 2 in this embodiment. An example is shown. Hereinafter, the scanning of the variable-length code portion will be described in a little more detail with reference to FIG. Since the variable length code has a non-constant code length, it is not uniquely determined how to align the short code and the long code. Therefore, in this embodiment, it is assumed that the variable length codes are arranged so that the first bits are in the same plane. That is, the variable length codes are arranged in order from the top of the variable length code area shown in FIG. When the bit plane information is scanned in order from the upper bit, the information (code bit) disappears from the plane in the middle of the short code, and therefore the code without information skips scanning. Therefore, the information to be scanned (code bits) decreases as the lower bit plane is reached.
[0071]
FIG. 8 shows an arrangement of bit information obtained by scanning the code shown in FIG. 7 in the above order (negative bit, variable length code, fixed length code).
[0072]
The bit plane scanning unit 107 performs such bit plane scanning in the order of LL, HL3, LH3, HH3, HL2, LH2, HH2, HL1, LH1, and HH1 in units of sub-blocks.
[0073]
The bit string output from the bit plane scanning unit 107 is sequentially transferred in the code output unit 109 at the next stage. The transfer destination may be a recording medium such as a hard disk or a DVD, or an interface such as the Internet, a general public line, or a greenless line.
[0074]
The encoded data generated in the present embodiment includes various information necessary for decoding, that is, the image size, the number of bits per pixel, the quantization step for each frequency component, the value of the k parameter, etc. It can be appropriately added to the encoded data as attached information.
[0075]
As described above, according to the present embodiment, when Golombrice coding is performed on an image data sequence based on the parameter k, the difference value of the variable length code amount for each k is compared with a predetermined value with a simple configuration. , K can be determined at high speed.
[0076]
Second Embodiment
Hereinafter, a second embodiment according to the present invention will be described. The configuration of the encoding device in the second embodiment is the same as that in FIG. 1 described above.
[0077]
FIG. 9 shows a detailed configuration of the encoding parameter selection unit 105 in the second embodiment. In the figure, the same reference numerals are given to the same operations as those in the configuration shown in FIG. 5 shown in the first embodiment, and the description thereof is omitted.
[0078]
9, 703a, 703b, 703c,... Are subtractors for obtaining a difference between the input and output of each bit shifter 502, and 704a, 704b, 704c,. is there.
[0079]
The principle of determining the optimum value of the k parameter in the second embodiment is the expression (7) described in the first embodiment: D p = S p-1 -S p S in p-1 , S p Is based on the following formula in which the formula (3) is substituted.
[0080]
Figure 0004086424
(Vi >> (p-1))-(Vi >> p) in the above equation (10) is the difference between the input value and the output value of the p-th bit shifter 502 from the top in FIG. 9 (input value-output value). ). Therefore, the difference value is obtained by the subtractor 703, and a portion corresponding to the sum (Σ) is calculated by the accumulator 704.
[0081]
D output from each accumulator 704 p Is equivalent to the output from the subtractor 504 in the first embodiment described above, and the processing after the comparator 505 is exactly the same as in the first embodiment.
[0082]
That is, in the configuration of the encoding parameter selection unit 105 in the second embodiment, the arrangement of the subtractor and the accumulator is not simply replaced as compared with the configuration in the first embodiment described above. There is an advantage that the scale is reduced. For example, if the value of N is 64, the output bit width of the accumulator 704 is 6 bits larger than the input bit width. In this case, the bit width of the subtractor 703 on the input side of the accumulator 704 may be smaller by 6 bits than the bit width on the output side (corresponding to the subtracter 504 in the first embodiment).
[0083]
In the second embodiment, only one subtractor 703 is provided, and D p And N in the order of p = 1, 2, 3,..., M p Sequentially compared until = 0, C p A value (p−1) obtained by subtracting 1 from the value of p when = 0 is set as the value of the k parameter.
[0084]
More specifically, a configuration in which the comparison process is performed in synchronization with the counter operation starting from the initial value 0 can be considered. That is, when the count value is 0, D 1 Compare N with N 1 Is output and D is counted with a count value of 1. 2 Compare N with N 2 Is output and C p The comparison process is sequentially performed until = 0. Then C p Since the count value when p = 0 is p−1, the count value may be output as the value of the k parameter.
[0085]
As described above, according to the second embodiment, the optimum value of the parameter k can be determined at a high speed with a simpler configuration than in the first embodiment.
[0086]
<Third Embodiment>
The third embodiment according to the present invention will be described below. The configuration of the encoding device in the third embodiment is the same as that in FIG. 1 described above.
[0087]
FIG. 10 shows a detailed configuration of the encoding parameter selection unit 105 in the third embodiment. In the same figure, the same number is attached | subjected to what performs the operation | movement similar to the structure in FIG. 9 shown in 2nd Embodiment mentioned above, and description is abbreviate | omitted.
[0088]
In FIG. 10, 803a, 803b, 803c,... Are +1 adders that add 1 bit to a bit string.
[0089]
The principle of determining the optimum value of the k parameter in the third embodiment is based on the equation (11) obtained by modifying the already described equation (5) and applying it to the equation (10). That is,
Figure 0004086424
The following formula is obtained by modifying the formula (5).
[0090]
Vi >> (p-1) = 2 × (Vi >> p) + ((Vi >> (p-1)) & 1)
By substituting this into equation (10),
Figure 0004086424
In formula (11), (Vi >> p) + ((Vi >> (p-1)) & 1) is the least significant bit on the input side (the output value of the p-th bit shifter 502 in FIG. LSB) is added. Therefore, the added value is obtained by the +1 adder 803, and a portion corresponding to the sum (Σ) is calculated by the accumulator 704.
[0091]
Since the value output from each +1 adder 803 is equivalent to the output from the subtractor 703 in the second embodiment described above, the processing after the accumulator 704 is exactly the same as in the second embodiment.
[0092]
That is, in the configuration of the encoding parameter selection unit 105 in the third embodiment, the hardware scale can be further reduced because the subtracter 703 in the second embodiment described above is replaced with the +1 adder 803.
[0093]
In the third embodiment, similarly to the second embodiment, only one comparator 505 is provided. p And N in the order of p = 1, 2, 3,..., M p Sequentially compared until = 0, C p A value (p−1) obtained by subtracting 1 from the value of p when = 0 is set as the value of the k parameter.
[0094]
As described above, according to the third embodiment, the optimum value of the parameter k can be determined at a high speed with a simpler configuration than in the second embodiment.
[0095]
<Fourth embodiment>
The fourth embodiment according to the present invention will be described below. The configuration of the encoding device in the fourth embodiment is the same as that in FIG. 1 described above.
[0096]
The fourth embodiment is characterized in that, in the configuration of the encoding parameter selection unit 105, a full adder having a carry input function is used as an adder provided in the accumulator. Thereby, it is not necessary to provide the +1 adder 803 shown in the third embodiment.
[0097]
In the accumulators (503, 704) shown in the first to third embodiments described above, either a half adder without a carry input or a full adder with a carry input can be used. However, when a full adder is used, it is necessary to give 0 to the carry input.
[0098]
Here, FIG. 11A shows a configuration of a half-adder type accumulator usable in the first to third embodiments, and FIG. 11A shows a configuration of a full-adder type accumulator used in the fourth embodiment. As shown in FIG.
[0099]
Since the full adder has a function of performing +1 bit in addition to the function of the half adder, the +1 addition required to be provided in the preceding stage of the accumulator in the third embodiment described above. The function of the calculator 803 can be incorporated into the full adder in the accumulator 704. In this case, the circuit scale of the full adder is naturally larger than the circuit scale of the half adder, but far more than the case where the half adder and the +1 adder are provided independently as in the third embodiment. small.
[0100]
As described above, according to the fourth embodiment, the +1 adder 803 and the accumulator 704 in the third embodiment are integrated into a full adder type accumulator shown in FIG. Further, the hardware scale can be reduced.
[0101]
<Fifth Embodiment>
The fifth embodiment according to the present invention will be described below. The configuration of the encoding device in the fifth embodiment is the same as that in FIG. 1 described above.
[0102]
FIG. 12 shows a detailed configuration of the encoding parameter selection unit 105 in the fifth embodiment. In the figure, the same reference numerals are given to the same operations as those in the configuration shown in FIG. 5 shown in the first embodiment, and the description thereof is omitted.
[0103]
In FIG. 12, 1003a, 1003b, 1003c,... Are counters, and 1004a, 1004b, 1004c,.
[0104]
The principle of determining the optimum value of the k parameter in the fifth embodiment is based on the equation (7) already described.
[0105]
D p = S p + B p (P ≧ 1) (7)
The counters 1003a, 1003b, 1003c,... Count Bp in the equation (7) one bit for each plane, and the adders 1004a, 1004b, 1004c,. p + B p Is calculated.
[0106]
The output of each adder 1004 is equivalent to the output of the subtracters 504a, 504b, 504c,... Shown in FIG. Therefore, as in the first embodiment, the comparators 505a, 505b, 505c,... Compare the output of the adder 1004 with a predetermined value N, and the comparison result C p Is input to the priority encoder 507 and converted to the value of the k parameter.
[0107]
As described above, according to the fifth embodiment, the optimum value of the parameter k can be determined at high speed even with a configuration using a counter.
[0108]
<Sixth Embodiment>
The sixth embodiment according to the present invention will be described below. The configuration of the encoding device in the sixth embodiment is the same as that in FIG. 1 described above.
[0109]
FIG. 13 shows a detailed configuration of the encoding parameter selection unit 105 in the sixth embodiment. In the same figure, the same number is attached | subjected to what performs the operation | movement similar to the structure in FIG. 12 shown in 5th Embodiment mentioned above, and description is abbreviate | omitted.
[0110]
In FIG. 13, 1105a, 1105c,... Are bit shifters that shift the output of the accumulator by 1 bit to double the output of the accumulator, and 1107a, 1107c,. is there.
[0111]
In the sixth embodiment, S in the fifth embodiment described above. 1 , S Three , S Five , ..., C 2i + 1 (6) shown above is applied to the calculation of.
[0112]
S p = 2 x S p + 1 + B p + 1 ... (6)
That is, 2 × S 2i + B 2i To S 2i-1 And S 2i-1 To B 2i-1 To add D 2i-1 Ask for. D 2i Is obtained by the same calculation as in the fifth embodiment.
[0113]
That is, in the sixth embodiment, 2 × S in the bit shifters 1105a, 1105c,. 2i And 2 × S in the adders 1107a, 1107c,. 2i , B 2i , B 2i-1 Are added. By this calculation, D required for the input of each comparator 505 p Since all of (p = 1, 2, 3,...) Are aligned, the optimum value of the k parameter can be obtained by the same processing as in the fifth embodiment.
[0114]
As described above, according to the sixth embodiment, the optimum value of the parameter k can be determined at high speed by the configuration in which the number of accumulators is further reduced from the configuration shown in the fifth embodiment.
[0115]
【The invention's effect】
As described above, according to the present invention, it is possible to provide an encoding device that performs variable-length encoding of a multi-value image with a simple configuration at high speed.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of an encoding device according to an embodiment of the present invention;
FIG. 2 is a diagram showing a state of discrete wavelet transform;
FIG. 3 is a diagram showing an example of a quantization step used for frequency components (sub-blocks);
FIG. 4 is a diagram illustrating an example of a code obtained by Golombrice coding;
FIG. 5 is a block diagram showing a detailed configuration of an encoding parameter selection unit 105 in the present embodiment;
FIG. 6 is a diagram showing the input / output relationship of the priority encoder in the present embodiment;
FIG. 7 is a diagram illustrating an example of a Golomb-Rice code for each bit plane in the embodiment;
FIG. 8 is a diagram showing an example of a bitstream that is finally output;
FIG. 9 is a block diagram showing a detailed configuration of an encoding parameter selection unit 105 in the second embodiment;
FIG. 10 is a block diagram showing a detailed configuration of an encoding parameter selection unit 105 in the third embodiment;
FIG. 11 is a block diagram showing a configuration of an adder in the fourth embodiment;
FIG. 12 is a block diagram showing a detailed configuration of an encoding parameter selection unit 105 in the fifth embodiment;
FIG. 13 is a block diagram showing a detailed configuration of an encoding parameter selection unit 105 in the sixth embodiment.
[Explanation of symbols]
101 Image input unit
102 Data storage unit
103 Discrete wavelet transform unit
104 Coefficient quantization unit
105 Coding parameter selection unit
106 Variable length encoding unit
107 bit plane scanning unit
108 buffers
109 Code output section
502,1105 bit shifter
503,704 accumulator
504, 703 subtractor
505 comparator
507 priority encoder
803 +1 adder
1003 counter
1004, 1007 Adder

Claims (19)

パラメータに基づいて、シンボル群を可変長符号部分と固定長符号部分とにそれぞれ符号化する符号化手段を備える符号化装置であって、
隣接するパラメータ間における前記可変長符号部分の符号量の差分値を算出する差分手段と、
前記複数の差分値を所定値と比較する比較手段と、
該比較結果に基づいて、符号化に適用するパラメータ値を決定する決定手段と、
を有することを特徴とする符号化装置。
An encoding device comprising encoding means for encoding a symbol group into a variable-length code part and a fixed-length code part based on parameters,
Difference means for calculating a difference value of the code amount of the variable length code portion between adjacent parameters;
Comparing means for comparing the plurality of difference values with a predetermined value;
Determining means for determining a parameter value to be applied to encoding based on the comparison result;
An encoding device comprising:
前記パラメータは、前記固定長符号部分の符号長を示すことを特徴とする請求項1記載の符号化装置。The encoding apparatus according to claim 1, wherein the parameter indicates a code length of the fixed-length code portion. 前記決定手段は、前記可変長符号部分の符号量が最小となるパラメータ値を決定することを特徴とする請求項2記載の符号化装置。3. The encoding apparatus according to claim 2, wherein the determining means determines a parameter value that minimizes a code amount of the variable length code portion. 前記決定手段は、前記比較手段における複数の比較結果を変換することにより、前記パラメータを得ることを特徴とする請求項2記載の符号化装置。3. The encoding apparatus according to claim 2, wherein the determination unit obtains the parameter by converting a plurality of comparison results in the comparison unit. 前記固定長部分は、パラメータの値が同じ場合に固定長となる符号部分であることを特徴とする請求項4記載の符号化装置。5. The encoding apparatus according to claim 4, wherein the fixed length portion is a code portion having a fixed length when the parameter values are the same. 前記符号化手段は、ゴロムライス符号化を行うことを特徴とする請求項5記載の符号化装置。6. The encoding apparatus according to claim 5, wherein the encoding means performs Golomb-Rice encoding. 前記差分手段は、
シンボル群をその桁毎に並列に累積する累積手段と、
該複数の累積結果間における減算を行なう減算手段と、
を備えることを特徴とする請求項1記載の符号化装置。
The difference means is
Accumulating means for accumulating symbols in parallel for each digit;
Subtracting means for performing subtraction between the plurality of cumulative results;
The encoding apparatus according to claim 1, further comprising:
前記減算手段は、複数の減算器によって必要な減算処理を並列に行なうことを特徴とする請求項7記載の符号化装置。8. The encoding apparatus according to claim 7, wherein the subtracting unit performs necessary subtraction processes in parallel by a plurality of subtractors. 前記減算手段は、単一の減算器によって逐次減算処理を行なうことを特徴とする請求項7記載の符号化装置。8. The encoding apparatus according to claim 7, wherein the subtracting unit performs a sequential subtraction process using a single subtracter. 前記差分手段は、
シンボル群をその桁間において減算する減算手段と、
該減算結果を累積する累積手段と、
を備えることを特徴とする請求項1記載の符号化装置。
The difference means is
Subtracting means for subtracting a symbol group between the digits;
Accumulating means for accumulating the subtraction result;
The encoding apparatus according to claim 1, further comprising:
前記差分手段は、
シンボル群をその桁毎に1ビットデータを加算するビット加算手段と、
前記ビット加算された桁毎の値を累積する累積手段と、
を備えることを特徴とする請求項1記載の符号化装置。
The difference means is
Bit addition means for adding 1-bit data for each digit of a symbol group;
Accumulating means for accumulating the value of each digit added by the bit;
The encoding apparatus according to claim 1, further comprising:
前記差分手段は、
シンボル群を桁毎に累積する累積手段を備え、該累積手段は、1ビットのキャリー入力機能を有する全加算器を備えることを特徴とする請求項1記載の符号化装置。
The difference means is
2. The encoding apparatus according to claim 1, further comprising accumulating means for accumulating the symbol group for each digit, the accumulating means comprising a full adder having a 1-bit carry input function.
前記差分手段は、
シンボル群を桁毎に累積する累積手段と、
シンボル群の桁毎に所定値の個数をカウントするカウント手段と、
前記累算値とカウント値とを加算する第1の加算手段と、
を有することを特徴とする請求項1記載の符号化装置。
The difference means is
Accumulating means for accumulating a symbol group for each digit;
Counting means for counting the number of predetermined values for each digit of the symbol group;
First addition means for adding the accumulated value and the count value;
The encoding apparatus according to claim 1, further comprising:
更に、前記累積手段による累積値を所定倍する乗算手段と、
前記累積手段による累積値と前記カウント手段によるカウント値、及び前記乗算手段によって所定倍された累積値とを加算する第2の加算手段と、を有し、
前記累積手段は、シンボル群を所定の桁毎に累積し、該所定の桁以外の桁については前記第2の加算手段を適用することを特徴とする請求項13記載の符号化装置。
Furthermore, multiplication means for multiplying the accumulated value by the accumulation means by a predetermined value,
A second adding means for adding the accumulated value by the accumulating means, the count value by the counting means, and the accumulated value multiplied by a predetermined value by the multiplying means;
14. The encoding apparatus according to claim 13, wherein the accumulating unit accumulates the symbol group for each predetermined digit, and applies the second adding unit to digits other than the predetermined digit.
前記比較手段は、複数の比較器によって必要な比較処理を並列に行なうことを特徴とする請求項1記載の符号化装置。2. The encoding apparatus according to claim 1, wherein said comparing means performs necessary comparison processing in parallel by a plurality of comparators. 前記比較手段は、単一の比較器によって逐次比較処理を行なうことを特徴とする請求項1記載の符号化装置。2. The encoding apparatus according to claim 1, wherein the comparison means performs a successive comparison process using a single comparator. 前記シンボル群は、多値画像データに対してウェーブレット変換を施して得られたサブブロックであることを特徴とする請求項1記載の符号化装置。The encoding apparatus according to claim 1, wherein the symbol group is a sub-block obtained by performing wavelet transform on multi-valued image data. 前記決定手段は、プライオリティ・エンコーダを備えることを特徴とする請求項1記載の符号化装置。The encoding apparatus according to claim 1, wherein the determination unit includes a priority encoder. 前記決定手段は、カウンタを備えることを特徴とする請求項1記載の符号化装置。The encoding apparatus according to claim 1, wherein the determination unit includes a counter.
JP24672299A 1999-07-27 1999-08-31 Encoder Expired - Fee Related JP4086424B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP24672299A JP4086424B2 (en) 1999-08-31 1999-08-31 Encoder
US09/618,461 US6865299B1 (en) 1999-07-27 2000-07-18 Coding apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24672299A JP4086424B2 (en) 1999-08-31 1999-08-31 Encoder

Publications (2)

Publication Number Publication Date
JP2001077699A JP2001077699A (en) 2001-03-23
JP4086424B2 true JP4086424B2 (en) 2008-05-14

Family

ID=17152688

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24672299A Expired - Fee Related JP4086424B2 (en) 1999-07-27 1999-08-31 Encoder

Country Status (1)

Country Link
JP (1) JP4086424B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4500213B2 (en) * 2005-05-20 2010-07-14 オリンパスイメージング株式会社 Data encoding apparatus, data decoding apparatus, data encoding method, data decoding method, and program
GB2513111A (en) * 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding

Also Published As

Publication number Publication date
JP2001077699A (en) 2001-03-23

Similar Documents

Publication Publication Date Title
US6567562B1 (en) Encoding apparatus and method
US6909811B1 (en) Image processing apparatus and method and storage medium storing steps realizing such method
JP4365957B2 (en) Image processing method and apparatus and storage medium
US6359928B1 (en) System and method for compressing images using multi-threshold wavelet coding
US6711295B2 (en) Encoding apparatus and method, and storage medium
TWI431948B (en) Efficient coding and decoding of transform blocks
US7132964B2 (en) Coding apparatus, program and data processing method
US6665444B1 (en) Image processing apparatus and method, and storage medium
JP2000069292A (en) Image processing unit, its method and storage medium
JP3163880B2 (en) Image compression coding device
US7551788B2 (en) Digital image coding device and method for noise removal using wavelet transforms
Al-Bahadily et al. New modified RLE algorithms to compress grayscale images with lossy and lossless compression
JP4086424B2 (en) Encoder
JP4003628B2 (en) Image encoding apparatus and method, and program
JP3700976B2 (en) Image processing apparatus and image processing method
JP2002527013A (en) System to build data compression encoder
JP4054430B2 (en) Image processing apparatus and method, and storage medium
JP4181699B2 (en) Encoding apparatus and method, and storage medium
JP2942243B2 (en) Image encoding apparatus and method
JP2000083256A (en) Image processor and image processing method and recording medium
JP4699654B2 (en) Image compression apparatus and image compression method
JPH1188183A (en) Wavelet converter, its method, wavelet inverse converter, its method, image coder, its method, image decoder and its method
JP3232160B2 (en) Encoding device and method
JP2004328406A (en) Code amount controlling method and coder
US20030138046A1 (en) Method for coding and decoding video signals

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060720

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20060720

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080219

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

Free format text: PAYMENT UNTIL: 20110228

Year of fee payment: 3

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130228

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140228

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees