JP4016662B2 - Encoding processing device, decoding processing device and method, and computer program - Google Patents

Encoding processing device, decoding processing device and method, and computer program Download PDF

Info

Publication number
JP4016662B2
JP4016662B2 JP2002015838A JP2002015838A JP4016662B2 JP 4016662 B2 JP4016662 B2 JP 4016662B2 JP 2002015838 A JP2002015838 A JP 2002015838A JP 2002015838 A JP2002015838 A JP 2002015838A JP 4016662 B2 JP4016662 B2 JP 4016662B2
Authority
JP
Japan
Prior art keywords
block
class
pixel
quantization
processing
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
JP2002015838A
Other languages
Japanese (ja)
Other versions
JP2003219418A (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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2002015838A priority Critical patent/JP4016662B2/en
Publication of JP2003219418A publication Critical patent/JP2003219418A/en
Application granted granted Critical
Publication of JP4016662B2 publication Critical patent/JP4016662B2/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, Expansion, Code Conversion, And Decoders (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、符号化処理装置、復号処理装置、および方法、並びにコンピュータ・プログラムに関する。さらに詳細には、デジタル画像の符号化処理において、ブロック分割した画像信号を圧縮することにより高圧縮率、画質劣化低減を実現した符号化処理装置、復号処理装置、および方法、並びにコンピュータ・プログラムに関する。
【0002】
【従来の技術】
画像信号は、例えば記録媒体への記録処理、データ転送処理等の際に情報量の削減を目的とした符号化処理が行なわれることが多い。デジタル画像信号の高能率符号化処理の1つとして、ADRC(Adaptive Dynamic Range Coding)が知られている。
【0003】
ADRCは、例えば特開昭61−144989号に開示されているように、画像領域をブロック分割し、分割したブロック内に含まれる複数の画素の持つ画素値としての最大値(MAX)および最小値(MIN)の差分によって規定されるダイナミックレンジ(DR)を算出し、算出したダイナミックレンジ(DR)に適応した符号化処理を行なうものであり、ダイナミックレンジ適応型の圧縮手法である。
【0004】
ADRCによる画像符号化処理について、図を参照して説明する。図17は、画像データのADRCによる符号化処理におけるブロック分割およびダイナミックレンジの算出処理を説明する図である。例えば動画像データの1フレームの画像信号を、複数画素領域のブロックに分割し、各ブロックに含まれる画素の信号レベルの最大値と最小値とを検出する。
【0005】
なお、画素の信号レベルとは、例えば画像信号が白黒であれば輝度信号レベルが適用され、例えば0〜255の256階調の輝度レベルデータが適用される。また、カラー画像信号でYUV信号、すなわち輝度に関する輝度信号Y、色に関する2つの色信号U,Vが用いられる場合は、Y,U,Vそれぞれについて最大値と最小値とを検出し、それぞれの信号毎の量子化、すなわち符号化処理を行なう。また、RGB等の色信号を適用する場合は、RGBそれぞれについて最大値と最小値とを検出し、それぞれの信号毎の量子化処理を行なうことになる。
【0006】
小領域に区分けされたブロック内の画素の信号レベルは、画像の持つ相関性により近い値を持つことが多い。従って、各ブロック内の信号レベルの最大値と最小値との差を各ブロックにおけるダイナミックレンジとして定義することで、信号レベル方向の冗長度、すなわちブロック内最大信号レベル値より大きいレベルと、ブロック内最小信号レベル値より小さいレベルを取り除くことができ、各ブロック内の限定されたダイナミックレンジ内で効率のよい量子化が可能となる。
【0007】
例えば図17に示すように画像データ801を複数ブロックに分割する。次に、各ブロックに含まれる画素の持つ信号レベルを検出し、ブロック内の信号レベルデータを取得する。例えばブロック802に含まれる画素の持つ信号レベルは、信号レベルデータ803として取得される。次に、ブロック内に含まれる画素の信号レベルの最大値(MAX)、最小値(MIN)を選択し、その差分をダイナミックレンジ(DR)とする。
【0008】
このダイナミックレンジ(DR)に基づいて、ブロック内の画素の値を量子化する。量子化処理について図18を参照して説明する。量子化ビット数をnとした場合、ブロック内の各画素値から最小値(MIN)が減算され、その減算値をDR/2nで除算し、除算値に対応するコードを量子化コード(Qコード)として設定する。
【0009】
図18の例では、ブロックAとブロックBの2つのブロックについて、n=1、すなわち1ビット量子化した場合の例を示している。各ブロックには8画素含まれ、各画素の信号レベルが図に示すように分布していたとする。ブロックAのダイナミックレンジ(DR)は、ブロックAに含まれる画素の最大値と最小値によって決定し、ブロックBのダイナミックレンジ(DR)は、ブロックBに含まれる画素の最大値と最小値によって決定する。
【0010】
1ビット量子化する場合は、ダイナミックレンジを2分割し、例えば上部を[1]、下部を[0]として各画素の信号レベルに応じて量子化する。この結果、ブロックAの量子化コードは、[11111001]として構成され、ブロックBの量子化コード(Qコード)は、[00001111]により構成される。例えば2ビット量子化の場合は、各画素について、[00]、[01]、[10]、[11]の4値が設定可能となり、ダイナミックレンジが22=4分割されて、各画素にいずれかの量子化コード(Qコード)が割り当てられることになる。3ビット量子化の場合は、23=8分割されることになる。
【0011】
図19は、ADRC符号化処理を行なった場合の各ブロックのブロック情報の構成を示す図である。ブロック情報には、各ブロックに含まれる画素の信号レベルの最小値(MIN)、ダイナミックレンジ(DR)、及び、上述した処理で算出した量子化コード(Qコード)が含まれる。例えば信号レベルが0〜255である場合、最小値(MIN)を8ビット、ダイナミックレンジ(DR)を8ビット、量子化コード(Qコード)をk×nビットとして構成することができる。ただし、nは量子化ビット数、kはブロック内の画素数である。
【0012】
ADRCによる符号化(エンコード)処理および復号(デコード)処理の手順を図20に示す。
【0013】
ADRC符号化処理では、ステップS801において画像データをブロック分割し、ステップS802において、ブロック内の最大値(MAX)、最小値(MIN)を検出する。次にステップS803で、各分割ブロック内のダイナミックレンジ(DR)を求め、ステップS804で、各ブロックの画素値−最小値(MIN)を算出し、ステップS805において、予め定められた量子化ビット数=nに基づいて、各画素値の量子化を実行し、ステップS806で、最小値(MIN)、ダイナミックレンジ(DR)、量子化コード(Qコード)からなるブロック情報(図19参照)を生成する。
【0014】
具体的なADRC処理による量子化コード(Qコード)の生成は、下式に従って実行される。
【0015】
【数1】
DR=MAX−MIN+1
Δ=DR/2n

Figure 0004016662
【0016】
上記式において、DR:ダイナミックレンジ、MAX:最大値、MIN:最小値、Q:量子化コード(Qコード)、x:画素値、Δ:量子化ステップ幅、n:量子化ビット数である。DR<2nの場合の量子化コード:Qの算出においては、Δ:量子化ステップ幅による除算を行なうことなく、各ブロックの画素値−最小値(x−MIN)そのものを量子化コードとして適用する。(x−MIN)の値そのものがnビット以下のコードとして表現可能となるからである。また、DR=MAX−MIN+1における[+1]は、MAX=MINの場合において、DR=1と設定するための処理である。
【0017】
一方、ADRCによる符号化(エンコード)によって生成されたブロック情報に基づく復号(デコード)処理の手順について図20を参照して説明する。復号処理では、ステップS811において、最小値(MIN)、ダイナミックレンジ(DR)、量子化コード(Qコード)からなるブロック情報を取得する。
【0018】
ステップS812において、ブロック情報に基づく復号(デコード)処理を実行する。デコード処理の具体的処理は復元画素値をx’とすると、以下の、x’算出式として示される。
【0019】
【数2】
x’=(Q+0.5)×Δ+MIN(DR≧2nの場合)
x’=(Q+MIN) (DR<2nの場合)
【0020】
上記式において、x’:復元画素値、MIN:最小値、Q:量子化コード(Qコード)、Δ:量子化ステップ幅、n:量子化ビット数である。
【0021】
ステップS813において、上記式において算出された画素値x’に基づいて各画素値を決定して画像再生を実行する。
【0022】
なお、前述したように、画素値は、例えば画像信号が白黒であれば、輝度信号レベル値が適用され、カラーの画像信号では、例えばYUVなどの、輝度に関する輝度信号Y、並びに色に関する2つの色信号U,Vが画素値として用いられ、Y,U,Vそれぞれの値についての符号化処理、復号処理が実行されることになる。
【0023】
上述したADRCによる量子化(符号化)処理、復号処理は、各ブロック内の画素値に適用する符号化ビット数を同一とした例である。例えば量子化ビット数:n=1として設定した場合であれば、すべてのブロックにおいて1ビットの量子化処理を行ない、量子化ビット数:n=2として設定した場合であれば、すべてのブロックにおいて2ビットの量子化処理を行なう構成例である。
【0024】
しかし、量子化ビット数をすべてのブロックにおいて共通化すると、ダイナミックレンジ(DR)の大きいブロックにおいても、また、小さいブロックにおいても、同一のビット数の量子化が行われることになり、ダイナミックレンジの大きいブロックにおける量子化ステップ幅が大きくなり、復号処理の際に元の画素値と復元画素値との差が大きくなる場合がある。
【0025】
そこで、ダイナミックレンジ(DR)の大きいブロックにおける量子化ビット数と、ダイナミックレンジ(DR)の小さいブロックにおける量子化ビット数を異ならせて、符号化処理を行なう可変長ADRCが考案された。
【0026】
可変長ADRCの基本的考え方は、ダイナミックレンジ(DR)の大きいブロックにおける量子化ビット数を大きくし、ダイナミックレンジ(DR)の小さいブロックにおける量子化ビット数を小さくするものであり、例えば特開昭62−128621号にその基本構成が示されている。
【0027】
具体的には、例えばダイナミックレンジ(DR)の大きいブロックにおける量子化ビット数を3ビットとして、ダイナミックレンジ(DR)の小さいブロックにおける量子化ビット数を1ビットとするなどの処理が行なわれる。このような処理を行なうことで、ダイナミックレンジ(DR)の小さいブロックにおいては、DR/21として、ダイナミックレンジを2つに区分した量子化ステップ幅:Δを設定した量子化がなされ、ダイナミックレンジ(DR)の大きいブロックでは、DR/23として8つに区分した量子化ステップ幅:Δ設定による量子化が実行可能となり、ダイナミックレンジ(DR)の大きいブロックにおいても、より細かい量子化ステップ幅:Δの設定が可能となるので元の画素値と復号処理後の画素値との誤差を小さくすることが可能となる。
【0028】
可変長ADRCによる符号化(エンコード)処理および復号(デコード)処理の手順を図21に示す。
【0029】
可変長ADRC符号化処理では、ステップS821において画像データをブロック分割し、ステップS822において、ブロック内の最大値(MAX)、最小値(MIN)を検出する。次にステップS823で、各分割ブロック内のダイナミックレンジ(DR)を求め、ステップS824で、求めたダイナミックレンジ(DR)に基づいて、量子化ビット数を決定する。
【0030】
量子化ビット数は、例えば、予め定められた下記の量子化ビット数設定条件式に基づいて決定される。
0≦DR<th1 →0ビット
th1≦DR<th2 →1ビット
th2≦DR<th3 →2ビット

thn≦DR≦thn+1 →nビット
【0031】
上記条件式において、DRは、各ブロックのダイナミックレンジであり、th1〜thnは、予め定められた閾値である。すなわち、ダイナミックレンジ(DR)の大きいブロックほど多くのビット数が量子化ビット数として割り当てられ、ダイナミックレンジ(DR)の大きいブロックにおける量子化ステップ幅:Δが過大になることを防止している。
【0032】
各ブロックのダイナミックレンジ(DR)に基づく量子化ビット数が決定されると、次に、ステップS825で、各ブロックの画素値−最小値(MIN)を算出し、ステップS826において、ステップS824で決定した量子化ビット数=0〜nに基づいて、各画素値の量子化を実行し、ステップS827で、最小値(MIN)、ダイナミックレンジ(DR)、量子化コード(Qコード)からなるブロック情報(図19参照)を生成する。
【0033】
一方、可変ADRCによる符号化(エンコード)によって生成されたブロック情報に基づく復号(デコード)処理の手順について図21を参照して説明する。復号処理では、ステップS831において、最小値(MIN)、ダイナミックレンジ(DR)、量子化コード(Qコード)からなるブロック情報を取得する。
【0034】
ステップS832では、ブロック情報から取得した各ブロックのダイナミックレンジ(DR)に基づいて量子化ビット数を算出する。復号側においても、上述の量子化ビット数設定条件式を保有、あるいは、符号化処理装置から取得し、量子化ビット数設定条件式に基づいて量子化ビット数を算出する。
【0035】
次に、ステップS833において、ブロック情報に基づく復号(デコード)処理を実行し、ステップS834において、デコードにより算出された画素値x’に基づいて各画素値を決定して画像再生を実行する。
【0036】
なお、上述した可変長ADRCでは、各ブロックのダイナミックレンジにより量子化ビット数を設定する構成であるので、この処理の結果、画像データの圧縮率が異なることになり、符号化データ量が画像によって大きく異なってしまう場合がある。このような可変長ADRCによる符号化データ量の変動を制御するため、画像のダイナミックレンジの度数分布を作成し、度数分布に基づいて符号化データ量を制御する構成が例えば特開昭63−111781号に記載されている。
【0037】
【発明が解決しようとする課題】
上述したADRCによる符号化処理において、符号化処理対象となる画像についてのブロック分割処理は、例えばl×m画素等、あらかじめ設定された固定サイズの領域を1ブロックとして設定する処理として実行されている。
【0038】
しかし、各ブロックの画素値の分布は様々であり、そのダイナミックレンジも様々な値となる。上述したように、異なるダイナミックレンジを持つブロックに応じて量子化ビット数を割り当てる可変長ADRC処理の適用により、大きなダイナミックレンジを持つブロックにおいても、ある程度、元の画素値と復号処理後の画素値との誤差を小さくすることが可能となるが、例えば、1つのブロックにおいて1つの乖離した値を持つ画素値が存在すると、ダイナミックレンジがその1つの画素の影響で大きくなり、量子化ビット数を大きく設定しなければならなくなり、符号化効率を低下させ、圧縮率の低下を招く場合がある。また、量子化ビット数を小さくすれば量子化ステップ幅が増加し、元画素の画素値と復号画素の画素値の誤差が大きくなってしまう。
【0039】
また、上述の従来のADRC処理では、隣接ブロックにおいて共通の量子化ビット数で量子化(符号化)処理を実行する場合であっても、個々のブロック単位で、ブロック情報を生成することになり、各ブロック情報中にそれぞれ最小値、ダイナミックレンジ、量子化コード(Qコード)等の情報を格納することになる。従って共通の量子化ビット数で量子化する場合であっても、別々のブロック情報を生成しなければならず符号化効率が低下する場合がある。
【0040】
本発明は、上述したADRCを適用した符号化処理における問題点に鑑みてなされたものであり、ADRCによる符号化を実行する際、ブロック・サイズを固定とせず、処理対象画像の画素値に応じてブロック区切りを設定して、符号化効率を高め、また元の画素値と復号処理後の画素値との誤差を小さくすることを可能とした高精度の符号化処理を実現する符号化処理装置、復号処理装置、および方法、並びにコンピュータ・プログラムを提供するものである。
【0041】
【課題を解決するための手段】
本発明の第1の側面は、
画像データの符号化処理において、各ブロック単位の符号化データとして、ブロックに設定されたクラスと、各画素に対応する量子化コードと、各ブロック単位の符号化データの終端を示すストップコードからなるブロック情報を生成する符号化処理装置であり、
画像を構成する各画素について、複数の範囲に分割された符号化処理対象の画素の取りうる信号レベル範囲のうち、当該画素の信号レベルの属する一の範囲に対応した前記クラス定するクラス分類処理手段と、
前記クラス分類処理手段において設定したクラスが同一の隣接画素領域を1ブロックとして設定するブロック分割手段と、
前記ブロック分割手段において設定されたブロック単位で、ブロックに対応して設定されるダイナミックレンジに基づく量子化処理を実行する量子化処理手段と、
を有し、
前記量子化処理手段の適用する量子化処理は、
ADRC(Adaptive Dynamic Range Coding)に基づく量子化処理であり、前記クラスに対応して設定される最小値(MIN)、およびダイナミックレンジ(DR)に基づいて量子化コード(Qコード)を算出する処理を実行する構成であることを特徴とする符号化処理装置にある。
【0043】
さらに、本発明の符号化処理装置の一実施態様において、前記符号化処理装置は、さらに、画素値に応じた複数クラスの各クラスに対して最小値(MIN)、およびダイナミックレンジ(DR)を対応付けたクラス情報テーブルを有し、前記量子化処理手段は、前記クラス情報テーブルに設定された最小値(MIN)、およびダイナミックレンジ(DR)に基づいて、前記ADRC(Adaptive Dynamic Range Coding)処理を実行する構成であることを特徴とする。
【0044】
さらに、本発明の符号化処理装置の一実施態様において、前記クラス情報テーブルに設定された複数クラスのダイナミックレンジ(DR)は同一値として設定された構成であることを特徴とする。
【0045】
さらに、本発明の符号化処理装置の一実施態様において、前記符号化処理装置は、さらに、符号化処理対象の画素値の頻度分布を解析する画素値解析手段と、前記画素値解析手段の解析結果に基づいて、各クラスに属する画素数がほぼ均一分布になるように画素の取りうる信号レベル範囲を複数の範囲に分割し、当該複数の範囲に対応するクラス分類設定処理を実行するクラス分類設定手段と、前記クラス分類設定手段の設定したクラス分類に対応する各クラスに対して最小値(MIN)、およびダイナミックレンジ(DR)を対応付けたクラス情報テーブルを生成するクラス情報テーブル生成手段とを有し、前記クラス分類処理手段は、前記クラス分類設定手段によって設定されたクラス分類に基づいて各画素のクラスを設定し、前記量子化処理手段は、前記クラス情報テーブルに設定された最小値(MIN)、およびダイナミックレンジ(DR)に基づいて、前記ADRC(Adaptive Dynamic Range Coding)処理を実行する構成であることを特徴とする。
【0048】
さらに、本発明の符号化処理装置の一実施態様において、前記符号化処理装置は、さらに、前記ブロック分割手段において設定されたブロック単位でブロック内の画素データの間引き処理を実行する間引き処理手段を有し、前記間引き処理手段は、間引き処理の対象となる画素データに隣接する2つの画素データが間引き後に残存するように、画素データの間引き処理を実行する構成であることを特徴とする。
【0049】
さらに、本発明の符号化処理装置の一実施態様において、前記符号化処理装置は、各ブロック単位の符号化データとして、ブロックに設定されたクラスと、間引き処理の実行の有無を示す識別フラグと、各画素に対応する量子化コードと、各ブロック単位の符号化データの終端を示すストップコードからなるブロック情報を生成する構成であることを特徴とする。
【0050】
さらに、本発明の第2の側面は、
画像を構成する各ブロック単位の符号化データとして、ブロックに設定されたクラスと、各画素に対応する量子化コードと、各ブロック単位の符号化データの終端を示すストップコードからなるブロック情報を入力して復号処理を実行する復号処理装置であり、
前記ストップコードに基づいてブロック単位で入力された符号化データから、ブロックに設定されたクラスと、各画素に対応する量子化コードと、ブロックに設定されたクラスに対応する最小値(MIN)、およびダイナミックレンジ(DR)を取得するブロック情報解析手段と、
前記ブロック情報解析手段の取得した最小値(MIN)、およびダイナミックレンジ(DR)、および前記ブロック情報に含まれる各画素に対応する量子化コードに基づいて、ADRC(Adaptive Dynamic Range Coding)に対応する逆量子化処理により各ブロック単位の画素値復号処理を実行する復号処理手段と、
を有することを特徴とする復号処理装置にある。
【0051】
さらに、本発明の復号処理装置の一実施態様において、前記ADRC(Adaptive Dynamic Range Coding)に対応する逆量子化処理は、前記クラスに対応して設定される最小値(MIN)、およびダイナミックレンジ(DR)に基づいて復元画素値を算出する処理を実行する構成であることを特徴とする。
【0052】
さらに、本発明の復号処理装置の一実施態様において、前記復号処理手段は、画素値に応じた複数クラスの各クラスに対して最小値(MIN)、およびダイナミックレンジ(DR)を対応付けたクラス情報テーブルの設定値としての最小値(MIN)、およびダイナミックレンジ(DR)に基づいて、前記ADRC(Adaptive Dynamic Range Coding)に対応する逆量子化処理を実行する構成であることを特徴とする。
【0053】
さらに、本発明の復号処理装置の一実施態様において、前記復号処理装置は、さらに、前記ブロック情報に格納された量子化コードが、ブロック内の全画素対応データではなく、間引きされたデータである場合の間引きデータ復元処理を実行する間引きデータ復元手段を有し、前記ブロック情報解析手段はさらに間引き処理の実行有無を示す識別情報を取得し、前記間引きデータ復元手段は、前記識別情報に基づいて、ブロックが間引き処理されていると判定した場合には、前記復号処理手段が量子化コードに基づいて復号した隣接する復元画素の平均値を、当該隣接する復元画素の間に位置する間引き画素データの画素値として設定する処理を実行する構成であることを特徴とする。
【0054】
さらに、本発明の第3の側面は、
画像データの符号化処理において、各ブロック単位の符号化データとして、ブロックに設定されたクラスと、各画素に対応する量子化コードと、各ブロック単位の符号化データの終端を示すストップコードからなるブロック情報を生成する符号化処理方法であり、
画像を構成する各画素について、複数の範囲に分割された符号化処理対象の画素の取りうる信号レベル範囲のうち、当該画素の信号レベルの属する一の範囲に対応した前記クラス定するクラス分類処理ステップと、
前記クラス分類処理ステップにおいて設定したクラスが同一の隣接画素領域を1ブロックとして設定するブロック分割ステップと、
前記ブロック分割ステップにおいて設定されたブロック単位で、ブロックに対応して設定されるダイナミックレンジに基づいて量子化処理を実行する量子化処理ステップと、
を有し、
前記量子化処理ステップにおいて適用する量子化処理は、
ADRC(Adaptive Dynamic Range Coding)に基づく量子化処理であり、前記クラスに対応して設定される最小値(MIN)、およびダイナミックレンジ(DR)に基づいて量子化コード(Qコード)を算出する処理を実行することを特徴とする符号化処理方法にある。
【0055】
さらに、本発明の第4の側面は、
画像データの符号化処理において、各ブロック単位の符号化データとして、ブロックに設定されたクラスと、各画素に対応する量子化コードと、各ブロック単位の符号化データの終端を示すストップコードからなるブロック情報を生成する処理の実行プログラムとしてのコンピュータ・プログラムであって、
画像を構成する各画素について、複数の範囲に分割された符号化処理対象の画素の取りうる信号レベル範囲のうち、当該画素の信号レベルの属する一の範囲に対応した前記クラス定させるクラス分類処理ステップと、
前記クラス分類処理ステップにおいて設定したクラスが同一の隣接画素領域を1ブロックとして設定させるブロック分割ステップと、
前記ブロック分割ステップにおいて設定されたブロック単位で、ブロックに対応して設定されるダイナミックレンジに基づいて量子化処理を実行させる量子化処理ステップと、
を有し、
前記量子化処理ステップにおいて適用する量子化処理は、
ADRC(Adaptive Dynamic Range Coding)に基づく量子化処理であり、前記クラスに対応して設定される最小値(MIN)、およびダイナミックレンジ(DR)に基づいて量子化コード(Qコード)を算出する処理を実行させる処理であることを特徴とするコンピュータ・プログラムにある。
【0056】
さらに、本発明の第5の側面は、
画像を構成する各ブロック単位の符号化データとして、ブロックに設定されたクラスと、各画素に対応する量子化コードと、各ブロック単位の符号化データの終端を示すストップコードからなるブロック情報を入力して復号処理を実行するプログラムとしてのコンピュータ・プログラムであって、
符号化画像データ中の各ブロック単位の符号化データの終端を示すストップコードに基づいて、ブロック単位の符号化データとして、ブロックに設定されたクラスと、各画素に対応する量子化コードを解析し、各クラスに対して最小値(MIN)、及びダイナミックレンジ(DR)を対応付けたクラス情報テーブルから、ブロックに設定されたクラスに対応する最小値(MIN)、およびダイナミックレンジ(DR)を取得するブロック情報解析ステップと、
前記ブロック情報解析ステップにおいて取得した最小値(MIN)、およびダイナミックレンジ(DR)、および前記ブロック情報に含まれる各画素に対応する量子化コードに基づいて、各ブロック単位の画素値復号処理を実行する復号処理ステップと、
を具備することを特徴とするコンピュータ・プログラムにある。
【0057】
さらに、本発明の第6の側面は、
画像データの符号化処理において、各ブロック単位の符号化データとして、ブロックに設定されたクラスと、各画素に対応する量子化コードと、各ブロック単位の符号化データの終端を示すストップコードからなるブロック情報を生成する処理をコンピュータ・システム上で実行せしめるコンピュータ・プログラムを提供するプログラム記録媒体であって、前記コンピュータ・プログラムは、
画像を構成する各画素について、複数の範囲に分割された符号化処理対象の画素の取りうる信号レベル範囲のうち、当該画素の信号レベルの属する一の範囲に対応した前記クラス定させるクラス分類処理ステップと、
前記クラス分類処理ステップにおいて設定したクラスが同一の隣接画素領域を1ブロックとして設定させるブロック分割ステップと、
前記ブロック分割ステップにおいて設定されたブロック単位で、ブロックに対応して設定されるダイナミックレンジに基づいて量子化処理を実行させる量子化処理ステップと、
を有し、
前記量子化処理ステップにおいて適用する量子化処理は、
ADRC(Adaptive Dynamic Range Coding)に基づく量子化処理であり、前記クラスに対応して設定される最小値(MIN)、およびダイナミックレンジ(DR)に基づいて量子化コード(Qコード)を算出する処理を実行させる処理であることを特徴とするプログラム記録媒体にある。
【0058】
さらに、本発明の第7の側面は、
画像を構成する各ブロック単位の符号化データとして、ブロックに設定されたクラスと、各画素に対応する量子化コードと、各ブロック単位の符号化データの終端を示すストップコードからなるブロック情報を入力して復号処理をコンピュータ・システム上で実行せしめるコンピュータ・プログラムを提供するプログラム記録媒体であって、前記コンピュータ・プログラムは、
符号化画像データ中の各ブロック単位の符号化データの終端を示すストップコードに基づいて、ブロック単位の符号化データとして、ブロックに設定されたクラスと、各画素に対応する量子化コードを解析し、各クラスに対して最小値(MIN)、及びダイナミックレンジ(DR)を対応付けたクラス情報テーブルから、ブロックに設定されたクラスに対応する最小値(MIN)、およびダイナミックレンジ(DR)を取得するブロック情報解析ステップと、
前記ブロック情報解析ステップにおいて取得した最小値(MIN)、およびダイナミックレンジ(DR)、および前記ブロック情報に含まれる各画素に対応する量子化コードに基づいて、各ブロック単位の画素値復号処理を実行する復号処理ステップと、
を具備することを特徴とするプログラム記録媒体にある。
【0059】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやFD、MOなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【0060】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づく、より詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【0061】
【発明の実施の形態】
以下、本発明の符号化処理装置、復号処理装置、および方法について、図面を参照しながら詳細に説明する。
【0062】
図1は、本発明の符号化処理装置の構成を示すブロック図である。図1に示す符号化処理装置構成について説明する。符号化処理対象となる画像データは、まず、画素値解析部101に入力され、画像を構成する画素値の解析が実行される。画素値とは、例えば画像信号が白黒であれば輝度信号レベルが適用され、例えば0〜255の256階調の輝度レベルデータである。また、カラー画像信号でYUV信号、すなわち輝度に関する輝度信号Y、色に関する2つの色信号U,Vが用いられる場合は、Y,U,Vそれぞれについての信号レベルである。RGB等の色信号を適用する場合は、RGBそれぞれについての信号レベルである。量子化処理は、各信号について実行されることになるが、その処理態様は同様のものであるので、以下では、0〜255の256階調の輝度レベル信号についての処理を行なうものとして説明する。
【0063】
画素値解析部101では、画像を構成する画素値(輝度レベル)の解析が実行される。各画素は、0〜255の輝度レベルのいずれかの値を持つ。画像解析の結果として、画素値の信号(輝度)レベルの頻度分布情報を取得する。
【0064】
例えば図2に示すように、画素値の信号(輝度)レベル0〜255の範囲で、いくつの画素が存在するかの頻度情報を取得する。図2の横軸が、信号レベル0〜255の軸であり、縦軸が発生画素数を示す頻度データ軸である。
【0065】
画素値解析部101において、取得された画像の信号レベル情報は、クラス分類設定部102に入力され、クラス分類設定部102では、画素値解析部101の取得した画素値頻度情報に基づいて、クラス分類設定処理を実行する。
【0066】
クラス分類設定部102は、図2に示すように、画素値信号レベルに応じたクラスの設定処理を実行する。図2では、画素値信号レベルの低いものから順にクラス0から、画素値信号レベルの高いもののクラス7まで、8つのクラスに分類した例を示している。なお、分割クラス数は8に限らず、任意数の設定が可能である。
【0067】
クラス分類設定部102は、画素値解析部101の取得した頻度情報に基づいて、例えば、各クラスに含まれる画素数がほぼ均等となるようにクラス分類の設定処理を実行する。あるいは、あらかじめ定められた分割クラス数に応じて画素信号レベルを均等分割してクラス分類設定処理を実行してもよい。
【0068】
図3に、クラス分類設定処理の態様を説明する図を示す。(a)は、画素値解析部101の取得した頻度情報に基づいて、各クラスに含まれる画素数がほぼ均等となるようにクラス分類を実行し、n個のクラス(クラス0〜n−1)を設定した処理例である。(b)は、分割クラス数を8として、画素信号レベルを均等分割してクラス分類設定処理を実行した例であり、画素信号レベルが0〜255の場合、各クラスのレンジ(ダイナミックレンジ)は、32として均等に設定される。
【0069】
クラス分類設定部102において、画素値に応じたクラス設定処理が実行されると、そのクラス分類設定情報は、クラス情報テーブル生成部103に出力され、クラス分類設定部102における設定情報に基づいてクラス情報テーブルが生成される。
【0070】
クラス情報テーブルは、例えば図4に示すように、クラスに対応する最小値(MIN)の値と、ダイナミックレンジ(DR)を記録したテーブルとして生成される。クラスに対応する最小値(MIN)は、各クラスの最小信号レベル値、すなわち下位クラスとの境界値の信号レベルとなる。クラスに対応するダイナミックレンジ(DR)は、そのクラスの属する信号レベルの最大値と最小値の差異に相当する値として設定される。
【0071】
図4は、各クラスのダイナミックレンジは均等ではなく、例えば先に説明したように、画素値解析部101の取得した頻度情報に基づいて、各クラスに含まれる画素数がほぼ均等となるようにクラス分類の設定処理を行なった場合に生成されるクラス情報テーブルの例を示したものである。
【0072】
あらかじめ定められた分割クラス数に応じて画素信号レベルを均等分割してクラス分類設定処理を実行した場合は、例えば図5に示すようなクラス情報テーブルが生成される。このテーブル例は、図3(b)の8つの均等分割クラスとした設定において生成されるクラス情報テーブル例であり、クラス0〜7までの8つのクラスのダイナミックレンジは、全て32の共通な値に設定されたテーブルとなる。
【0073】
図4、または図5のようなクラス情報テーブルがクラス情報テーブル生成部103において生成されると、クラス分類処理部105は、生成されたテーブル情報に基づいて、遅延回路104から入力する符号化処理対象の画像データに含まれる画素のクラス分類処理を実行する。
【0074】
図6を参照してクラス分類処理部105において実行するクラス分類処理について説明する。図6(a)がクラス分類処理を説明する図であり、画像データに含まれる各画素にクラスNo.を割り当てる処理として実行される。クラスNo.の割り当ては、クラス情報テーブル生成部103において生成したクラス情報テーブルに基づいて実行され、各画素値、すなわち信号レベルに応じて設定されるクラスNo.が付与される。
【0075】
例えば、先に説明した図4のクラス情報テーブルに基づくクラス分類処理が実行される場合は、クラスNo.5の設定される画素は、画素値が185〜199の範囲の値にある画素であることを示している。また、図5のクラス情報テーブルに基づくクラス分類処理が実行される場合は、クラスNo.5の設定される画素は、画素値が160〜191の範囲の値にある画素であることを示している。
【0076】
クラス分類処理部105は、符号化対象画像に含まれる画素すべてについて、クラスの設定を行なう。
【0077】
その後、ブロック分割部106は、クラス分類処理部105において設定された各画素のクラスに応じたブロック分割処理を実行する。図6(b)が、ブロック分割処理を説明する図である。
【0078】
ブロック分割部106は、図6(b)に示すように、各画素を順次、横方向にスキャンし、隣接画素が同一クラスである場合は、同一ブロックとして設定し、隣接画素が異なるクラスとなる境界をブロック境界として設定する処理を実行する。
【0079】
図6(b)に示す例においては、最初の3画素がすべてクラス5であり、次の画素がクラス3となるので、クラス5の3画素を1ブロックとして設定する。次のクラス3の3画素がさらに1ブロックとして設定される。以下、同様に同一クラスである連続画素の集合を1ブロックとして設定する処理を順次、実行し、符号化処理対象画像の全画素のブロック分割処理を行なう。
【0080】
図7にクラス分類処理およびブロック分割処理の手順を説明するフローを示す。フローに従って、クラス分類処理およびブロック分割処理について説明する。ステップS11において、先頭画素からスキャンを開始し、画素値を検出し、クラス情報テーブルを参照してクラスを設定する。この設定情報はメモリに一時的に格納する。
【0081】
この処理を処理対象画像の全画素について終了(S12でYes)すると、次にステップS13において、先頭画素から設定クラスを判定し、ステップS14において、前画素のクラスと同一か否かを判定し、同一クラスであれば、ステップS15において、同一ブロックとして設定し、同一クラスでない場合は、ステップS16において新規ブロックの設定を行なう。ステップS17において、全画素についてのブロック分割が終了したか否かを判定して全画素についてのブロック分割が終了すると、処理を終了する。
【0082】
ブロック分割部106において、処理対象画像のブロック分割が完了すると、各ブロックにおけるダイナミックレンジ(DR)、最小値(MIN)がDR、最小値(MIN)算出部107において、算出された後、量子化(符号化)処理部108において量子化処理が実行される。
【0083】
DR、最小値(MIN)算出部107では、各ブロックのクラスに基づいて、適用したクラス情報テーブルから、各ブロックに対応するダイナミックレンジ(DR)、最小値(MIN)を取得する。
【0084】
先に説明した図4のクラス情報テーブルに基づくクラス分類処理が実行され、クラスNo.5の設定された画素は、図4に示すクラス情報テーブルから、最小値(MIN)=185、ダイナミックレンジ(DR)=15の各データが取得される。また、図5のクラス情報テーブルに基づくクラス分類処理が実行され、クラスNo.5の設定された画素は、図5に示すクラス情報テーブルから、最小値(MIN)=160、ダイナミックレンジ(DR)=32の各データが取得される。
【0085】
量子化(符号化)処理部108は、各ブロック毎にブロック内の画素に対応する量子化コード(Qコード)を生成する。量子化(符号化)処理部108において実行する量子化コード(Qコード)の生成は、下式に従った処理として実行される。
【0086】
【数3】
Figure 0004016662
【0087】
上記式において、x:画素値、Δ:量子化ステップ幅、n:量子化ビット数である。DRは、各ブロックに対応するダイナミックレンジ(DR)であり、DR、最小値(MIN)算出部107が、各ブロックのクラスに基づいて、適用したクラス情報テーブルから取得した情報が適用される。MINは、各ブロックに対応する最小値(MIN)であり、これもDR、最小値(MIN)算出部107が、各ブロックのクラスに基づいて、適用したクラス情報テーブルから取得した情報が適用される。
【0088】
量子化処理部108の生成した量子化コード(Qコード)は、各ブロック毎に設定されたクラスNo.と共にブロック情報中に格納され出力される。
【0089】
ブロック情報の構成例を図8に示す。ブロック情報には、各ブロックに設定されたクラスNo.が格納される。クラスNo.の格納ビット数は、分割クラス数をmとしたとき、log2mビットとなる。さらに、量子化コード(Qコード)が格納される。量子化コード(Qコード)のビット数は、量子化ビット数=n、ブロック内画素数=kとしたとき、k×nビットとなる。本発明の構成では、各ブロックに含まれる画素数が一定ではないので、ブロック情報の長さが均一とならない。そこで、各ブロック情報のエンドポイントを示すための識別コードをストップコードとして格納する。識別可能な最低ビット数のsビットをここに格納する。この図8に示すブロック情報が、各分割ブロック毎に生成されて出力される。
【0090】
なお、クラス情報生成部103の生成したクラス情報テーブル、すなわち、図4あるいは図5を参照して説明したクラス情報テーブルは、必要に応じて復号処理を実行する装置に対して供給する。ただし、符号化側と、復号側で、共通のクラス情報テーブルを共有している場合には、送付の必要はない。
【0091】
図9にクラス情報テーブルとしての出力データ構成例を示す。クラス情報テーブデータには、クラスNo.が格納される。クラスNo.の格納ビット数は、分割クラス数をmとしたとき、log2mビットとなる。さらに、クラスに対応する最小値(MIN)の値と、ダイナミックレンジ(DR)の各データが格納される。これらは、例えば0〜255の信号レベルを画素値として用いている場合は、それぞれ最大8ビットデータとして格納される。
【0092】
上述したように、本発明の符号化処理装置では、ADRCによる符号化を実行する際、ブロック・サイズを固定とせず、処理対象画像の画素値が類似する集合をブロックとして設定する動的なブロック区切りにより符号化を行なう構成としたので、各ブロックに含まれる画素値に基づく限定的なダイナミックレンジの設定が可能であり、均一なブロック・サイズを設定する従来の処理に比較して、各ブロックのダイナミックレンジを小さく設定でき、元の画素値と復号処理後の画素値との誤差を減少させることが可能となる。
【0093】
また、本発明の構成では、1つのブロックは、類似する画素値を持つ画素の集合として構成されるので、従来の可変長ADRC処理のように、乖離した値を持つ画素値の存在による大きなダイナミックレンジの設定に起因する量子化ビット数の増加が発生することがなく、符号化効率の向上が実現される。
【0094】
図1に示す符号化処理装置に示すように、本発明の構成では、さらに、間引き処理部109において間引き処理を実行して圧縮率を高めることができる。間引き処理を実行するか否かは選択可能であり必要に応じて実行する。
【0095】
本発明の符号化処理では、上述の説明から明らかになように、類似する画素値を持つ集合を1つのブロックとして設定している構成であるので、1つのブロック内に含まれる画素は、同一ブロックに含まれる画素によって置き換えた場合においても、その画素値が大幅にずれることはない、そこで、間引き処理部109は、1つのブロック内の画素値を他の画素の量子化データから復元することを前提とした間引き処理を実行する。
【0096】
間引き処理部109において実行する間引き処理について、図10を参照して説明する。図10は、1つのブロックに含まれる画素数が奇数の場合の間引き処理例を示すものである。
【0097】
量子化処理前の画素値をa[0]〜a[6]とした7つの画素を含むブロックについての処理例を説明する。図1における量子化処理部108は、各画素a[0]〜a[6]について、先に説明した(数式a1)に従って量子化コード(Qコード)を生成する。
【0098】
間引き処理部109では、図10に示すように、7つの量子化コードから、a[0]、a[2]、a[4]、a[6]の画素に対する量子化コードb[0]、b[1]、b[2]、b[3]をブロック情報中に格納し、他のa[1]、a[3]、a[5]の画素に対応する量子化コードは、間引きにより、ブロック情報には格納しない処理を行なう。この結果、ブロック情報中の量子化コード情報量は大幅に削減されることになる。
【0099】
この間引きされた量子化コードを格納したブロック情報に基づく復号処理は、図10に示すように、量子化コードb[0]、b[1]、b[2]、b[3]から、復号画素としてのc[0]、c[2]、c[4]、c[6]の画素を逆量子化処理により直接求め、それぞれの間の画素値c[1]、c[3]、c[5]は、それぞれの隣接画素の中間値として設定する処理を行なう。例えば画素値c[1]は、画素値c[0]、c[2]の中間値として設定する。なお、逆量子化処理による復号処理については、後段でさらに詳細に説明する。
【0100】
図10の例は、1つのブロック内の画素数が奇数である場合の処理であるが、偶数の場合の処理について、図11を参照して説明する。
【0101】
図11は、量子化処理前の画素値をa[0]〜a[5]とした6つの画素を含むブロックについての処理例である。図1における量子化処理部108は、各画素a[0]〜a[5]について、先に説明した(数式a1)に従って量子化コード(Qコード)を生成する。
【0102】
間引き処理部109では、図11に示すように、6つの量子化コードから、a[0]、a[2]、a[4]、a[5]の画素に対する量子化コードb[0]、b[1]、b[2]、b[3]をブロック情報中に格納し、他のa[1]、a[3]の画素に対応する量子化コードは、間引きにより、ブロック情報には格納しない処理を行なう。この結果、ブロック情報中の量子化コード情報量は大幅に削減されることになる。
【0103】
このように、間引き処理部109では、間引き後に残存する画素データを2つの隣接領域に存在可能となる位置にある画素データの間引き処理を実行する。
【0104】
この間引きされた量子化コードを格納したブロック情報に基づく復号処理は、図11に示すように、量子化コードb[0]、b[1]、b[2]、b[3]から、復号画素としてのc[0]、c[2]、c[4]、c[5]の画素を逆量子化処理により直接求め、それぞれの間の画素値c[1]、c[3]は、それぞれの隣接画素の中間値として設定する処理を行なう。
【0105】
この間引き処理によって生成されるブロック情報の構成例を図12に示す。ブロック情報には、各ブロックに設定されたクラスNo.が格納される。クラスNo.の格納ビット数は、分割クラス数をmとしたとき、log2mビットとなる。さらに、間引き処理を実行した結果としてのブロック情報であるか、あるいは間引き処理を実行していない全画素の量子化コードを格納したブロック情報であるかの識別情報としてのフラグが1ビット格納される。
【0106】
さらに、量子化コード(Qコード)が格納される。量子化コード(Qコード)のビット数は、量子化ビット数=n、格納画素数=k’としたとき、k’×nビットとなる。本構成では、格納画素数=k’=間引き後の画素数となる。さらに、各ブロック情報のエンドポイントを示すための識別コードをストップコードとして格納する。識別可能な最低ビット数のsビットをここに格納する。この図12に示すブロック情報が、各分割ブロック毎に生成されて出力される。
【0107】
このように、間引き処理を行なうことによって、圧縮率が大幅に向上することになる。本発明の構成では、各ブロックに含まれる画素の画素値は近い値を持つことが保証されているので、上述したように、間引きされた画素の画素値を同一ブロックに含まれる復元画素値に基づいて復元することで、元画素と大きな誤差が発生することがない。
【0108】
図13に量子化処理、および間引き処理の処理手順を説明するフローを示す。フローの各ステップについて説明する。ステップS21では、ブロック毎の量子化が実行される。量子化処理は、前述の数式a1に基づくQコードの生成処理として実行される。ステップS22で全ブロックの量子化処理が終了したと判定されると、ステップS23に進み、先頭ブロックに戻り、ステップS24において各ブロック毎の間引き処理が実行される。この間引き処理は、先に図10、図11で説明した処理であり、各ブロックに含まれる画素数が奇数か偶数かによって処理態様が異なってくる。ステップS25で全ブロックの間引き処理が終了したと判定されると処理を終了する。
【0109】
なお、上述の説明では、全ての画素についての量子化処理後に間引き処理を実行するものとして説明したが、間引き処理を量子化処理以前に実行して、間引き後に残った画素についてのみ量子化処理を実行する構成としてもよい。
【0110】
次に、復号処理装置について、図14に示すブロック図を参照して説明する。復号処理対象となるブロック情報は、間引き処理されていない場合は、先に図8を参照して説明した構成となり、間引き処理されている場合は、先に図12を参照して説明した構成となる。ここでは、図12の構成を持つ場合の処理について説明する。
【0111】
ブロック情報解析部201は、復号対象となるブロック情報の解析処理を実行する。入力ブロック情報から、各ブロックに対応して設定されたクラスNo.情報、間引き処理の実行有無を示す識別情報、さらにブロック内の画素値を量子化した量子化コードを取得する。なお、各ブロック情報の区切りは、ストップコードを検出するとこによって実行する。
【0112】
ブロック情報解析部201は、各ブロック情報に格納されたクラスNo.を参照し、あらかじめ保持している、あるいは符号化処理装置から提供されたクラス情報テーブル202を参照して、クラスNo.に対応する最小値(MIN)と、ダイナミックレンジ(DR)の各値を取得する。先に図4、5を参照して説明したように、クラス情報テーブル202には、クラスNo.に対応する最小値(MIN)と、ダイナミックレンジ(DR)が格納されており、これらの情報を取得する。
【0113】
復号処理装置の最小値取得部203は、ブロック情報解析部201が、ブロック情報中のクラスNo.に基づいてクラス情報テーブル202から取得した最小値を取得する。DR取得部204は、ブロック情報解析部201が、ブロック情報中のクラスNo.に基づいてクラス情報テーブル202から取得したダイナミックレンジ(DR)を取得する。復号(逆量子化)処理部205は、ブロック情報内の量子化コード(Qコード)と、最小値取得部203の取得した最小値(MIN)、DR取得部204の取得したダイナミックレンジ(DR)とに基づいて、復号処理を実行する。復号処理は、復元画素値をx’として、下式に従ってx’を算出する処理として実行する。
【0114】
【数4】
x’=(Q+0.5)×Δ+MIN(DR≧2nの場合)
x’=(Q+MIN) (DR<2nの場合)
……(数式a2)
【0115】
上記式において、x’:復元画素値、MIN:最小値、Q:量子化コード(Qコード)、Δ:量子化ステップ幅、n:量子化ビット数、DR:ダイナミックレンジであり、DR、およびMINは、ブロック情報解析部201が、ブロック情報中のクラスNo.に基づいてクラス情報テーブル202から取得したダイナミックレンジ(DR)および最小値(MIN)である。
【0116】
このようにして、ブロック情報から、各画素の復元画素値x’が求められ、復元画素値に基づいて画像データが再生される。
【0117】
ただし、間引き処理を実行している場合は、間引きされた画素データの復元を、間引きデータ復元部206において実行する。間引き処理が実行されているか否かは、ブロック情報中の識別フラグのビットによってブロック情報解析部201が解析し、間引きされた情報を格納したブロック情報の処理である場合にのみ、間引きデータ復元部206における処理を実行する。
【0118】
間引きデータ復元部の処理は、先に図10、図11を参照して説明した通りの処理であり、間引きされた量子化コードb[0]、b[1]、b[2]…から復号により求められた画素値c[0]、c[2]、c[4]…の画素に基づいて、それぞれの間の画素値c[1]、c[3]…を隣接画素の中間値として設定する処理として行われる。
【0119】
間引きされた情報を格納したブロック情報の処理である場合は、間引きデータ復元部206における間引きデータ復元処理を実行した後、復元画素値に基づく画像再生、出力を実行する。
【0120】
次に、図15および図16に示すフローチャートを参照して、本実施例に係る符号化処理装置、および復号処理装置の処理手順について説明する。
【0121】
まず、図1の符号化処理装置の構成を参照しながら、図15の各ステップにおける処理について説明する。符号化処理対象となる画像データは、まず、ステップS101において、図1に示す符号化処理装置の画素値解析部101に入力され、画像を構成する画素値の解析が実行される。画素値とは、前述したように、例えば画像信号が白黒であれば輝度信号レベルが適用され、例えば0〜255の256階調の輝度レベルデータ、カラー画像信号でYUV信号が用いられる場合は、Y,U,Vそれぞれについての信号レベル、RGB等の色信号を適用する場合は、RGBそれぞれについての信号レベルである。
【0122】
ステップS101の画素値解析処理では、画素値の信号(輝度)レベルの頻度分布情報を取得し、先に説明した図2に示すような頻度情報を取得する。
【0123】
次に、ステップS102において、クラス分類設定部102が、ステップS101で取得した頻度情報に基づいて、クラス分類設定処理を実行する。すなわち、画素値信号レベルに応じたクラスの設定処理を実行する。例えば、画素値信号レベルの低いものから順にクラス0から、画素値信号レベルの高いもののクラスn−1まで、n個のクラスに分類する。
【0124】
なお、前述したように、クラス分類設定処理は、画素値の頻度情報に基づいて、各クラスに含まれる画素数がほぼ均等となるようなクラス分類設定処理や、あらかじめ定められた分割クラス数に応じて画素信号レベルを均等分割してクラス分類する等の各種の処理方法を適宜選択して実行可能である。
【0125】
次に、ステップS103において、クラス情報テーブル生成部103が、クラス分類設定情報に基づく、クラス情報テーブル生成処理を実行する。クラス情報テーブルは、先に、図4、図5を参照して説明したように、クラスに対応する最小値(MIN)の値と、ダイナミックレンジ(DR)を記録したテーブルである。
【0126】
次に、ステップS104において、クラス分類処理部104が、ステップS103で生成されたクラス情報テーブル情報に基づいて、符号化処理対象の画像データに含まれる画素のクラス分類処理を実行する。この処理は、先に図6(a)を参照して説明した処理デあり、画像データに含まれる各画素にクラスNo.を割り当てる処理として実行される。クラスNo.の割り当ては、生成したクラス情報テーブルに基づいて実行され、各画素値、すなわち信号レベルに応じて設定されるクラスNo.が付与される。
【0127】
次に、ステップS105において、ブロック分割部106が、ステップS103で設定された各画素のクラスに応じたブロック分割処理を実行する。この処理は、先に図6(b)を参照して説明した処理であり、各画素を順次スキャンし、隣接画素が同一クラスである場合は、同一ブロックとして設定し、隣接画素が異なるクラスとなる境界をブロック境界として設定する処理である。
【0128】
次にステップS106において、量子化(符号化)処理部108において量子化処理が実行される。量子化処理は、各ブロック毎にブロック内の画素に対応する量子化コード(Qコード)を生成する処理として実行され、先に説明した(数式a1)に従った量子化コード(Qコード)生成が実行される。なお、この際に使用するダイナミックレンジ(DR)、最小値(MIN)は、各ブロックのクラスに基づいてクラス情報テーブルから取得する。
【0129】
次にステップS107において、間引き処理を実行するか否かを判定し、実行しない場合は、ステップS109において、量子化処理部104の生成した量子化コード(Qコード)と、各ブロック毎に設定したクラスNo.、さらにストップコードを格納したブロック情報、すなわち、先に図8を参照して説明したブロック情報を生成して出力する。
【0130】
間引き処理を実行する場合は、ステップS108において、間引き処理部109が間引き処理を実行する。間引き処理は、先に、図10、図11を参照して説明したように、原則として1つおきの画素値に基づく量子化コードのみをブロック情報格納コードとする処理である。間引きにより、ブロック情報中の量子化コード情報量は大幅に削減されることになる。
【0131】
間引き処理が実行された後、ステップS109において、間引き後の量子化コード(Qコード)と、各ブロック毎に設定したクラスNo.、間引き処理の実行有無を示す識別フラグと、ストップコードとを格納したブロック情報、すなわち、先に図12を参照して説明したブロック情報を生成して出力する。
【0132】
なお、ステップS103において生成したクラス情報テーブルは、必要に応じてブロック情報とともに復号処理を実行する装置に対して供給する。ただし、符号化側と、復号側で、共通のクラス情報テーブルを共有している場合には、送付の必要はない。
【0133】
次に、復号処理装置の処理について、図16の処理フローに従って説明する。ステップS201において、復号処理対象となるブロック情報を入力する。復号処理対象となるブロック情報は、間引き処理されていない場合は、先に図8を参照して説明した構成となり、間引き処理されている場合は、先に図12を参照して説明した構成となる。
【0134】
ステップS202では、ブロック情報解析部201が復号対象となるブロック情報の解析処理を実行する。入力ブロック情報から、各ブロックに対応して設定されたクラスNo.情報、間引き処理の実行有無を示す識別情報、さらにブロック内の画素値を量子化した量子化コードを取得し、クラスNo.に基づいてクラス情報テーブルを参照して、クラスNo.に対応する最小値(MIN)と、ダイナミックレンジ(DR)の各値を取得する。
【0135】
ステップS203では、復号(逆量子化)処理部205が、ブロック情報から取得する量子化コード(Qコード)と、クラス情報テーブルから取得した最小値(MIN)、ダイナミックレンジ(DR)とに基づいて、復号処理を実行する。復号処理は、先に説明した(数式a2)に従って復元画素値x’を算出する処理として実行される。
【0136】
次に、ステップS204において、間引き処理が実行されたデータであるか否かが判定される。これはブロック情報中の識別フラグ(図12参照)に基づいて実行される。間引き処理のなされたブロック情報でない場合は、ステップS203の復号処理において復号した画素がブロックに含まれる全画素であり、ステップS206において、復元画素値の出力を行なう。
【0137】
ステップS204において、ブロック情報中の識別フラグ(図12参照)に基づいて間引き処理を実行していると判定した場合は、ステップS205において、間引きデータ復元部206が間引きされた画素データの復元処理を実行する。
【0138】
間引きデータ復元処理は、先に図10、図11を参照して説明した通りの処理であり、間引きされた量子化コードb[0]、b[1]、b[2]…から復号により求められた画素値c[0]、c[2]、c[4]…の画素に基づいて、それぞれの間の画素値c[1]、c[3]…を隣接画素の中間値として設定する処理として行われる。
【0139】
ステップS206の間引きデータ復元処理が完了すると、ステップS206において、復号画素と、間引きデータ復元画素とを含む画素をブロック内の復元画素として画像出力を行なう。
【0140】
上述したように、本発明の構成では、ADRCによる符号化を実行する際、ブロック・サイズを固定とせず、処理対象画像の画素値が類似する集合をブロックとして設定する動的なブロック区切りにより符号化を行なう構成としたので、各ブロックに含まれる画素値に基づく限定的なダイナミックレンジの設定が可能であり、均一なブロック・サイズを設定する従来の処理に比較して、各ブロックのダイナミックレンジを小さく設定でき、元の画素値と復号処理後の画素値との誤差を減少させることが可能となる。
【0141】
また、本発明の構成では、1つのブロックは、類似する画素値を持つ画素の集合として構成されるので、従来の可変長ADRC処理のように、乖離した値を持つ画素値の存在による大きなダイナミックレンジの設定に起因する量子化ビット数の増加が発生することがなく、符号化効率の向上が実現される。
【0142】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0143】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【0144】
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【0145】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介したりして、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【0146】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【0147】
【発明の効果】
以上説明してきたように、本発明の構成によれば、ADRCによる符号化処理または復号処理対象のブロック・サイズを固定とせず、処理対象画像の画素値が類似する集合をブロックとして設定した符号化を行ない、またこれらのブロック単位での復号を実行する構成とした。符号化処理の際、画素値に応じて類似画素値のみからなるブロック区切りを設定してブロック単位での符号化を行なう構成としたので、各ブロックに含まれる画素値に基づく限定的なダイナミックレンジの設定が可能であり、均一なブロック・サイズを設定する従来の処理に比較して、各ブロックのダイナミックレンジを小さく設定でき、元の画素値と復号処理後の画素値との誤差を減少させることが可能となる。
【0148】
また、本発明の構成によれば、ADRCによる符号化処理または復号処理対象のブロックは、類似する画素値を持つ画素の集合として構成されるので、従来の可変長ADRC処理のように、乖離した値を持つ画素値の存在による大きなダイナミックレンジの設定に起因する量子化ビット数の増加が発生することがなく、符号化効率の向上が実現される。
【0149】
また、本発明の構成によれば、ADRCによる符号化処理または復号処理対象のブロック内に含まれる量子化コードを全画素に対応するものとせず、間引きした後の残りの画素に対応する量子化コードのみをブロック情報に格納する構成としたので、ブロック情報の情報量の削減が達成される。ブロックは、類似する画素値を持つ画素の集合として構成されるので、間引き画素の画素値の復元を同一ブロック内の画素値に基づいて実行しても、大幅な誤差が発生することがない。
【図面の簡単な説明】
【図1】本発明の符号化処理装置の構成を示すブロック図である。
【図2】本発明の符号化処理装置のクラス分類処理を説明する図である。
【図3】本発明の符号化処理装置のクラス分類処理を説明する図である。
【図4】本発明の構成に係るクラス情報テーブルの構成例を示す図である。
【図5】本発明の構成に係るクラス情報テーブルの構成例を示す図である。
【図6】本発明の構成に係るクラス分類処理およびブロック分割処理例を説明する図である。
【図7】本発明の符号化処理構成に係るクラス分類処理およびブロック分割処理を説明するフロー図である。
【図8】本発明の構成に係るブロック情報構成例を示す図である。
【図9】本発明の構成に係るクラス情報テーブルデータ構成例を示す図である。
【図10】本発明の符号化処理および復号処理における間引き処理および復元処理を説明する図である。
【図11】本発明の符号化処理および復号処理における間引き処理および復元処理を説明する図である。
【図12】本発明の構成に係るブロック情報構成例を示す図である。
【図13】本発明の符号化処理における量子化処理、間引き処理手順を説明するフロー図である。
【図14】本発明の構成に復号処理装置構成例を示すブロック図である。
【図15】本発明の構成に係る符号化処理手順を説明するフロー図である。
【図16】本発明の構成に係る符号化処理手順を説明するフロー図である。
【図17】ADRC処理の概要を説明する図である。
【図18】ADRC処理における量子化処理の概要を説明する図である。
【図19】ADRC処理において生成するブロック情報の構成を説明する図である。
【図20】固定長ADRC処理の手順を説明するフロー図である。
【図21】可変長ADRC処理の手順を説明するフロー図である。
【符号の説明】
101 画素値解析部
102 クラス分類設定部
103 クラス情報テーブル生成部
104 遅延回路
105 クラス分類処理部
106 ブロック分割部
107 DR,最小値(MIN)算出部
108 量子化処理部
109 間引き処理部
201 ブロック情報解析部
202 クラス情報テーブル
203 最小値(MIN)取得部
204 DR取得部
205 復号(逆量子化)処理部
206 間引きデータ復元部
801 画像データ
802 ブロック
803 信号レベルデータ[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an encoding processing device, a decoding processing device, a method, and a computer program. More specifically, the present invention relates to an encoding processing device, a decoding processing device, a method, and a computer program that realize a high compression rate and a reduction in image quality degradation by compressing block-divided image signals in digital image encoding processing. .
[0002]
[Prior art]
For example, an image signal is often subjected to an encoding process for the purpose of reducing the amount of information during a recording process to a recording medium, a data transfer process, or the like. ADRC (Adaptive Dynamic Range Coding) is known as one of high-efficiency encoding processes for digital image signals.
[0003]
For example, as disclosed in Japanese Patent Application Laid-Open No. 61-144899, the ADRC divides an image area into blocks, and a maximum value (MAX) and a minimum value as pixel values of a plurality of pixels included in the divided block. This is a dynamic range adaptive compression method that calculates a dynamic range (DR) defined by the difference of (MIN) and performs encoding processing adapted to the calculated dynamic range (DR).
[0004]
Image encoding processing by ADRC will be described with reference to the drawings. FIG. 17 is a diagram for explaining block division and dynamic range calculation processing in encoding processing of image data by ADRC. For example, an image signal of one frame of moving image data is divided into blocks of a plurality of pixel areas, and the maximum value and the minimum value of the signal level of the pixels included in each block are detected.
[0005]
The pixel signal level is, for example, a luminance signal level if the image signal is black and white, for example, 256-level luminance level data from 0 to 255. When a color image signal uses a YUV signal, that is, a luminance signal Y related to luminance and two color signals U and V related to color, the maximum value and the minimum value are detected for each of Y, U, and V. Quantization for each signal, that is, encoding processing is performed. Further, when applying color signals such as RGB, the maximum value and the minimum value are detected for each of RGB, and quantization processing is performed for each signal.
[0006]
In many cases, the signal level of the pixel in the block divided into small areas has a value closer to the correlation of the image. Therefore, by defining the difference between the maximum value and the minimum value of the signal level in each block as the dynamic range in each block, redundancy in the signal level direction, that is, a level greater than the maximum signal level value in the block, Levels smaller than the minimum signal level value can be removed, and efficient quantization can be performed within a limited dynamic range in each block.
[0007]
For example, as shown in FIG. 17, the image data 801 is divided into a plurality of blocks. Next, the signal level of the pixels included in each block is detected, and signal level data in the block is acquired. For example, the signal level of the pixels included in the block 802 is acquired as signal level data 803. Next, the maximum value (MAX) and the minimum value (MIN) of the signal level of the pixels included in the block are selected, and the difference is set as the dynamic range (DR).
[0008]
Based on this dynamic range (DR), the values of the pixels in the block are quantized. The quantization process will be described with reference to FIG. When the number of quantization bits is n, the minimum value (MIN) is subtracted from each pixel value in the block, and the subtracted value is DR / 2.nThe code corresponding to the division value is set as a quantization code (Q code).
[0009]
In the example of FIG. 18, an example is shown in which n = 1, that is, 1-bit quantization is performed on two blocks, block A and block B. Assume that each block includes 8 pixels, and the signal level of each pixel is distributed as shown in the figure. The dynamic range (DR) of the block A is determined by the maximum value and the minimum value of the pixels included in the block A, and the dynamic range (DR) of the block B is determined by the maximum value and the minimum value of the pixels included in the block B. To do.
[0010]
In the case of 1-bit quantization, the dynamic range is divided into two, for example, the upper part is [1] and the lower part is [0], and quantization is performed according to the signal level of each pixel. As a result, the quantization code for block A is configured as [11111001], and the quantization code (Q code) for block B is configured as [00001111]. For example, in the case of 2-bit quantization, four values of [00], [01], [10], and [11] can be set for each pixel, and the dynamic range is 22= 4 divisions, and any quantization code (Q code) is assigned to each pixel. 2 for 3 bit quantizationThree= 8 divisions.
[0011]
FIG. 19 is a diagram illustrating a configuration of block information of each block when ADRC encoding processing is performed. The block information includes a minimum value (MIN) of a signal level of a pixel included in each block, a dynamic range (DR), and a quantization code (Q code) calculated by the above-described processing. For example, when the signal level is 0 to 255, the minimum value (MIN) is 8 bits, the dynamic range (DR) is 8 bits, and the quantization code (Q code) is k × n bits. Here, n is the number of quantization bits, and k is the number of pixels in the block.
[0012]
The procedure of encoding (encoding) processing and decoding (decoding) processing by ADRC is shown in FIG.
[0013]
In the ADRC encoding process, image data is divided into blocks in step S801, and the maximum value (MAX) and minimum value (MIN) in the block are detected in step S802. In step S803, the dynamic range (DR) in each divided block is obtained. In step S804, the pixel value-minimum value (MIN) of each block is calculated. In step S805, a predetermined number of quantization bits is obtained. Quantization of each pixel value is executed based on = n, and block information (see FIG. 19) including a minimum value (MIN), a dynamic range (DR), and a quantization code (Q code) is generated in step S806. To do.
[0014]
The generation of a quantization code (Q code) by specific ADRC processing is executed according to the following equation.
[0015]
[Expression 1]
DR = MAX-MIN + 1
Δ = DR / 2n
Figure 0004016662
[0016]
In the above formula, DR: dynamic range, MAX: maximum value, MIN: minimum value, Q: quantization code (Q code), x: pixel value, Δ: quantization step width, and n: number of quantization bits. DR <2nIn the calculation of the quantization code Q in the case of [Delta], [Delta]: The pixel value-minimum value (x-MIN) of each block itself is applied as the quantization code without performing division by the quantization step width. This is because the value of (x-MIN) can be expressed as a code of n bits or less. [+1] in DR = MAX−MIN + 1 is a process for setting DR = 1 in the case of MAX = MIN.
[0017]
On the other hand, a procedure of a decoding process based on block information generated by encoding (encoding) by ADRC will be described with reference to FIG. In the decoding process, in step S811, block information including a minimum value (MIN), a dynamic range (DR), and a quantization code (Q code) is acquired.
[0018]
In step S812, a decoding process based on the block information is executed. A specific process of the decoding process is represented by the following x ′ calculation formula where the restored pixel value is x ′.
[0019]
[Expression 2]
x ′ = (Q + 0.5) × Δ + MIN (DR ≧ 2nin the case of)
x '= (Q + MIN) (DR <2nin the case of)
[0020]
In the above formula, x ′ is the restored pixel value, MIN is the minimum value, Q is the quantization code (Q code), Δ is the quantization step width, and n is the number of quantization bits.
[0021]
In step S813, each pixel value is determined based on the pixel value x 'calculated in the above equation, and image reproduction is executed.
[0022]
Note that, as described above, for example, if the image signal is black and white, the luminance signal level value is applied to the pixel value, and for the color image signal, for example, the luminance signal Y related to luminance, such as YUV, and two color related values. The color signals U and V are used as pixel values, and the encoding process and the decoding process for each of the Y, U, and V values are executed.
[0023]
The above-described quantization (encoding) processing and decoding processing by ADRC are examples in which the number of encoding bits applied to the pixel values in each block is the same. For example, when the number of quantization bits is set as n = 1, 1-bit quantization processing is performed in all blocks, and when the number of quantization bits is set as n = 2, in all blocks. This is a configuration example for performing 2-bit quantization processing.
[0024]
However, if the number of quantization bits is made common in all blocks, the same number of bits are quantized in a block having a large dynamic range (DR) and a block having a small dynamic range (DR). In some cases, the quantization step width in a large block becomes large, and the difference between the original pixel value and the restored pixel value becomes large during the decoding process.
[0025]
Therefore, a variable length ADRC has been devised in which encoding processing is performed by varying the number of quantization bits in a block having a large dynamic range (DR) and the number of quantization bits in a block having a small dynamic range (DR).
[0026]
The basic idea of variable length ADRC is to increase the number of quantization bits in a block having a large dynamic range (DR) and to reduce the number of quantization bits in a block having a small dynamic range (DR). The basic structure is shown in 62-128621.
[0027]
Specifically, for example, the number of quantization bits in a block with a large dynamic range (DR) is set to 3 bits, and the number of quantization bits in a block with a small dynamic range (DR) is set to 1 bit. By performing such processing, in a block with a small dynamic range (DR), DR / 21Quantization step width obtained by dividing the dynamic range into two: Quantization is performed with Δ set, and in a block with a large dynamic range (DR), DR / 2ThreeQuantization step width divided into eight: Quantization by Δ setting can be executed, and even in a block having a large dynamic range (DR), a finer quantization step width: Δ can be set. The error between the value and the pixel value after the decoding process can be reduced.
[0028]
FIG. 21 shows a procedure of encoding (encoding) processing and decoding (decoding) processing by variable length ADRC.
[0029]
In the variable length ADRC encoding process, the image data is divided into blocks in step S821, and the maximum value (MAX) and the minimum value (MIN) in the block are detected in step S822. Next, in step S823, the dynamic range (DR) in each divided block is obtained, and in step S824, the number of quantization bits is determined based on the obtained dynamic range (DR).
[0030]
The number of quantization bits is determined based on, for example, the following predetermined quantization bit number setting conditional expression.
0 ≦ DR <th1 → 0 bit
th1 ≤ DR <th2 → 1 bit
th2 ≦ DR <th3 → 2 bits
:
thn ≦ DR ≦ thn + 1 → n bits
[0031]
In the conditional expression, DR is a dynamic range of each block, and th1 to thn are predetermined threshold values. That is, a block with a larger dynamic range (DR) is assigned a larger number of bits as the number of quantization bits, and the quantization step width: Δ in a block with a larger dynamic range (DR) is prevented from becoming excessive.
[0032]
Once the number of quantization bits based on the dynamic range (DR) of each block is determined, in step S825, the pixel value-minimum value (MIN) of each block is calculated, and in step S826, the determination is made in step S824. Based on the number of quantization bits = 0 to n, each pixel value is quantized, and in step S827, block information including a minimum value (MIN), a dynamic range (DR), and a quantization code (Q code). (See FIG. 19).
[0033]
On the other hand, a procedure of a decoding process based on block information generated by variable ADRC encoding will be described with reference to FIG. In the decoding process, block information including a minimum value (MIN), a dynamic range (DR), and a quantization code (Q code) is acquired in step S831.
[0034]
In step S832, the number of quantization bits is calculated based on the dynamic range (DR) of each block acquired from the block information. Also on the decoding side, the quantization bit number setting conditional expression described above is held or acquired from the encoding processing device, and the quantization bit number is calculated based on the quantization bit number setting conditional expression.
[0035]
Next, in step S833, decoding (decoding) processing based on block information is executed, and in step S834, each pixel value is determined based on the pixel value x 'calculated by decoding, and image reproduction is executed.
[0036]
Since the variable length ADRC described above is configured to set the number of quantization bits according to the dynamic range of each block, the compression rate of the image data differs as a result of this processing, and the amount of encoded data varies depending on the image. It can be very different. In order to control fluctuations in the amount of encoded data due to such variable length ADRC, a configuration in which a frequency distribution of the dynamic range of an image is created and the amount of encoded data is controlled based on the frequency distribution is disclosed in, for example, Japanese Patent Application Laid-Open No. 63-111781. In the issue.
[0037]
[Problems to be solved by the invention]
In the above-described encoding process using ADRC, the block division process for an image to be encoded is performed as a process for setting a fixed-size area set in advance as one block, such as l × m pixels, for example. .
[0038]
However, the distribution of pixel values in each block varies, and the dynamic range also varies. As described above, the original pixel value and the pixel value after the decoding process are to some extent even in the block having a large dynamic range by applying the variable length ADRC process that allocates the number of quantization bits according to the block having a different dynamic range. For example, if there is a pixel value having one deviated value in one block, the dynamic range increases due to the influence of that one pixel, and the number of quantization bits is reduced. It may be necessary to set a large value, which may reduce the encoding efficiency and the compression rate. Also, if the number of quantization bits is reduced, the quantization step width increases, and the error between the pixel value of the original pixel and the pixel value of the decoded pixel increases.
[0039]
Further, in the above-described conventional ADRC processing, even when the quantization (encoding) processing is executed with a common number of quantization bits in adjacent blocks, block information is generated in units of individual blocks. Each block information stores information such as a minimum value, a dynamic range, and a quantization code (Q code). Therefore, even when quantization is performed with a common number of quantization bits, separate block information must be generated, and encoding efficiency may decrease.
[0040]
The present invention has been made in view of the problems in the above-described encoding processing using ADRC. When encoding by ADRC is performed, the block size is not fixed and the pixel value of the processing target image is used. Thus, a coding processing device that realizes high-precision coding processing that can set block breaks to increase coding efficiency and reduce errors between original pixel values and pixel values after decoding processing , A decoding processing apparatus and method, and a computer program.
[0041]
[Means for Solving the Problems]
  The first aspect of the present invention is:
  Image data encoding, The block information including the class set for the block, the quantization code corresponding to each pixel, and the stop code indicating the end of the encoded data for each block is generated as the encoded data for each block.An encoding processing device;
  For each pixel that makes up the image,Among the signal level ranges that can be taken by the pixel to be encoded divided into a plurality of ranges, the one corresponding to one range to which the signal level of the pixel belongsclassTheSettingSetClass classification processing means,
  Block dividing means for setting adjacent pixel regions having the same class set in the class classification processing means as one block;
  Quantization processing means for executing quantization processing based on a dynamic range set corresponding to a block in block units set in the block dividing means;
  HaveAnd
The quantization processing applied by the quantization processing means is:
Quantization processing based on ADRC (Adaptive Dynamic Range Coding), processing for calculating a quantization code (Q code) based on a minimum value (MIN) and a dynamic range (DR) set corresponding to the class Is configured to executeThe present invention resides in an encoding processing device.
[0043]
  Furthermore, in one embodiment of the encoding processing device of the present invention, the encoding processing device further sets a minimum value (MIN) and a dynamic range (DR) for each of a plurality of classes according to pixel values. The quantization processing means has an associated class information table, and the quantization processing means is based on a minimum value (MIN) and a dynamic range (DR) set in the class information table.And saidADRC (Adaptive Dynamic Range Coding)ReasonIt is the structure to perform.
[0044]
Furthermore, in an embodiment of the encoding processing apparatus of the present invention, the dynamic ranges (DR) of a plurality of classes set in the class information table are configured to be set as the same value.
[0045]
  Furthermore, in an embodiment of the encoding processing device of the present invention, the encoding processing device further includes a pixel value to be encoded.Frequency distribution ofBased on the analysis result of the pixel value analysis means to analyze and the pixel value analysis means,Divide the signal level range that the pixels can take into a plurality of ranges so that the number of pixels belonging to each class has a substantially uniform distribution.Class classification setting means for executing a corresponding class classification setting process, and a class in which a minimum value (MIN) and a dynamic range (DR) are associated with each class corresponding to the class classification set by the class classification setting means Class information table generating means for generating an information table,The class classification processing unit sets a class of each pixel based on the class classification set by the class classification setting unit,The quantization processing means is based on a minimum value (MIN) and a dynamic range (DR) set in the class information table.And saidADRC (Adaptive Dynamic Range Coding)ReasonIt is the structure to perform.
[0048]
  Furthermore, in an embodiment of the encoding processing device of the present invention, the encoding processing device further includes a thinning processing means for executing a thinning process for pixel data in a block in units of blocks set in the block dividing means. The thinning processing means includes:Two pixel data adjacent to the pixel data to be thinned out areRemain after thinninglike,The present invention is characterized in that the pixel data is thinned out.
[0049]
Furthermore, in one embodiment of the encoding processing apparatus of the present invention, the encoding processing apparatus includes, as encoded data for each block, a class set for the block, an identification flag indicating whether or not to perform a thinning process, and The block information includes a quantization code corresponding to each pixel and a stop code indicating the end of the encoded data of each block.
[0050]
  Furthermore, the second aspect of the present invention provides
  Inputs block information consisting of the class set to the block, the quantization code corresponding to each pixel, and the stop code indicating the end of the encoded data for each block as the encoded data for each block constituting the image And execute the decryption processA decryption processing device,
  From the encoded data input in units of blocks based on the stop code,A block information analysis means for obtaining a class set for the block, a quantization code corresponding to each pixel, a minimum value (MIN) corresponding to the class set for the block, and a dynamic range (DR);
  Based on the minimum value (MIN) and dynamic range (DR) acquired by the block information analysis means, and the quantization code corresponding to each pixel included in the block information,By inverse quantization processing corresponding to ADRC (Adaptive Dynamic Range Coding)Decoding processing means for executing pixel value decoding processing for each block;
  The decoding processing apparatus is characterized by comprising:
[0051]
  Furthermore, in one embodiment of the decryption processing apparatus of the present invention,Note AInverse quantization processing corresponding to DRC (Adaptive Dynamic Range Coding)IsThe present invention is characterized in that a process for calculating a restored pixel value based on a minimum value (MIN) and a dynamic range (DR) set corresponding to the class is executed.
[0052]
  Furthermore, in an embodiment of the decoding processing apparatus of the present invention, the decoding processing means includes a class in which a minimum value (MIN) and a dynamic range (DR) are associated with each class of a plurality of classes according to pixel values. Based on the minimum value (MIN) and dynamic range (DR) as the setting value of the information table,SaidPerforms inverse quantization processing corresponding to ADRC (Adaptive Dynamic Range Coding).DoIt is characterized by having a configuration.
[0053]
  Furthermore, in one embodiment of the decoding processing apparatus of the present invention, the decoding processing apparatus further includes a quantization code stored in the block information, which is not thinned data corresponding to all pixels in the block but thinned data. A thinned data restoring means for executing the thinned data restoring process in the case,The block information analyzing means further acquires identification information indicating whether or not the thinning process is executed,The thinned data restoring means includes:When it is determined that the block is thinned based on the identification information,The decoding processing means decodes based on the quantization codeOf adjacent restored pixelsAverage valueLocated between the adjacent restoration pixelsThe present invention is characterized in that a process for setting the pixel value of the thinned pixel data is executed.
[0054]
  Furthermore, the third aspect of the present invention provides
  Image data encoding, The block information including the class set for the block, the quantization code corresponding to each pixel, and the stop code indicating the end of the encoded data for each block is generated as the encoded data for each block.Encoding method,
  For each pixel that makes up the image,Among the signal level ranges that can be taken by the pixel to be encoded divided into a plurality of ranges, the one corresponding to one range to which the signal level of the pixel belongsclassTheSettingSetA classification processing step,
  A block division step for setting adjacent pixel regions having the same class set in the class classification processing step as one block;
  A quantization process step of performing a quantization process based on a dynamic range set corresponding to the block in units of blocks set in the block division step;
  HaveAnd
The quantization processing applied in the quantization processing step is:
Quantization processing based on ADRC (Adaptive Dynamic Range Coding), processing for calculating a quantization code (Q code) based on a minimum value (MIN) and a dynamic range (DR) set corresponding to the class RunThere is an encoding processing method characterized by this.
[0055]
  Furthermore, the fourth aspect of the present invention provides
  Image data encodingGenerating block information consisting of a class set for a block, a quantization code corresponding to each pixel, and a stop code indicating the end of the encoded data for each block, as encoded data for each blockA computer program as an execution program of
  For each pixel that makes up the image,Among the signal level ranges that can be taken by the pixel to be encoded divided into a plurality of ranges, the one corresponding to one range to which the signal level of the pixel belongsclassTheSettingSetA classification processing step,
  Set adjacent pixel areas with the same class set in the class classification processing step as one blockLetBlock dividing step,
  Quantization processing is executed based on the dynamic range set for each block in units of blocks set in the block division step.LetA quantization processing step,
  HaveAnd
The quantization processing applied in the quantization processing step is:
Quantization processing based on ADRC (Adaptive Dynamic Range Coding), processing for calculating a quantization code (Q code) based on a minimum value (MIN) and a dynamic range (DR) set corresponding to the class Is a process to executeThe computer program is characterized by that.
[0056]
  Furthermore, the fifth aspect of the present invention provides
  Inputs block information consisting of the class set to the block, the quantization code corresponding to each pixel, and the stop code indicating the end of the encoded data for each block as the encoded data for each block constituting the image And execute the decryption processA computer program as a program,
  Based on the stop code indicating the end of the encoded data of each block unit in the encoded image data,As encoded data for each block, the class set for the block and the quantization code corresponding to each pixelDoParse andFrom the class information table in which the minimum value (MIN) and the dynamic range (DR) are associated with each class,A block information analysis step for obtaining a minimum value (MIN) and a dynamic range (DR) corresponding to a class set in the block;
  Based on the minimum value (MIN) and dynamic range (DR) acquired in the block information analysis step, and a quantization code corresponding to each pixel included in the block information, a pixel value decoding process for each block is executed. A decryption processing step,
  A computer program comprising:
[0057]
  Furthermore, the sixth aspect of the present invention provides
  Image data encodingGenerating block information consisting of a class set for a block, a quantization code corresponding to each pixel, and a stop code indicating the end of the encoded data for each block, as encoded data for each blockIs a program recording medium that provides a computer program for causing a computer system to execute on a computer system, the computer program comprising:
  For each pixel that makes up the image,Among the signal level ranges that can be taken by the pixel to be encoded divided into a plurality of ranges, the one corresponding to one range to which the signal level of the pixel belongsclassTheSettingSetA classification processing step,
  Set adjacent pixel areas with the same class set in the class classification processing step as one blockLetBlock dividing step,
  Quantization processing is executed based on the dynamic range set for each block in units of blocks set in the block division step.LetA quantization processing step,
  HaveAnd
The quantization processing applied in the quantization processing step is:
Quantization processing based on ADRC (Adaptive Dynamic Range Coding), processing for calculating a quantization code (Q code) based on a minimum value (MIN) and a dynamic range (DR) set corresponding to the class Is a process to executeThe program recording medium is characterized by the above.
[0058]
  Furthermore, the seventh aspect of the present invention provides
  Inputs block information consisting of the class set to the block, the quantization code corresponding to each pixel, and the stop code indicating the end of the encoded data for each block as the encoded data for each block constituting the image Decryption processIs a program recording medium that provides a computer program for causing a computer system to execute on a computer system, the computer program comprising:
  Based on the stop code indicating the end of the encoded data of each block unit in the encoded image data,As encoded data for each block, the class set for the block and the quantization code corresponding to each pixelDoParse andFrom the class information table in which the minimum value (MIN) and the dynamic range (DR) are associated with each class,A block information analysis step for obtaining a minimum value (MIN) and a dynamic range (DR) corresponding to a class set in the block;
  Based on the minimum value (MIN) and dynamic range (DR) acquired in the block information analysis step, and a quantization code corresponding to each pixel included in the block information, a pixel value decoding process for each block is executed. A decryption processing step,
  It is in the program recording medium characterized by comprising.
[0059]
The computer program of the present invention is, for example, a storage medium or communication medium provided in a computer-readable format to a general-purpose computer system capable of executing various program codes, such as a CD, FD, MO, etc. Or a computer program that can be provided by a communication medium such as a network. By providing such a program in a computer-readable format, processing corresponding to the program is realized on the computer system.
[0060]
Other objects, features, and advantages of the present invention will become apparent from a more detailed description based on embodiments of the present invention described later and the accompanying drawings. In this specification, the system is a logical set configuration of a plurality of devices, and is not limited to one in which the devices of each configuration are in the same casing.
[0061]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, an encoding processing device, a decoding processing device, and a method according to the present invention will be described in detail with reference to the drawings.
[0062]
FIG. 1 is a block diagram showing the configuration of the encoding processing apparatus of the present invention. The configuration of the encoding processing apparatus shown in FIG. 1 will be described. Image data to be encoded is first input to the pixel value analysis unit 101, and analysis of pixel values constituting the image is executed. The pixel value is, for example, luminance level data of 256 gradations from 0 to 255, for example, if the image signal is black and white. Further, when a color image signal uses a YUV signal, that is, a luminance signal Y related to luminance and two color signals U and V related to color, the signal levels are Y, U and V respectively. When color signals such as RGB are applied, the signal level is for each of RGB. The quantization processing is executed for each signal, but the processing mode is the same. Therefore, in the following, description will be made assuming that processing is performed on luminance level signals of 256 gradations from 0 to 255. .
[0063]
In the pixel value analysis unit 101, analysis of pixel values (luminance levels) constituting the image is executed. Each pixel has a value of any luminance level from 0 to 255. As a result of the image analysis, frequency distribution information of the signal (luminance) level of the pixel value is acquired.
[0064]
For example, as illustrated in FIG. 2, frequency information indicating how many pixels are present in a pixel value signal (luminance) level range of 0 to 255 is acquired. The horizontal axis in FIG. 2 is an axis of signal levels 0 to 255, and the vertical axis is a frequency data axis indicating the number of generated pixels.
[0065]
In the pixel value analysis unit 101, the signal level information of the acquired image is input to the class classification setting unit 102, and the class classification setting unit 102 determines the class based on the pixel value frequency information acquired by the pixel value analysis unit 101. Execute classification setting process.
[0066]
As shown in FIG. 2, the class classification setting unit 102 executes class setting processing according to the pixel value signal level. FIG. 2 shows an example of classifying into eight classes from class 0 to class 7 having a high pixel value signal level in order from a pixel value signal level having a low pixel value. Note that the number of division classes is not limited to eight, and an arbitrary number can be set.
[0067]
The class classification setting unit 102 executes class classification setting processing based on the frequency information acquired by the pixel value analysis unit 101, for example, so that the number of pixels included in each class is substantially equal. Alternatively, the class classification setting process may be executed by equally dividing the pixel signal level according to a predetermined number of division classes.
[0068]
FIG. 3 is a diagram for explaining an aspect of the class classification setting process. (A) performs class classification based on the frequency information acquired by the pixel value analysis unit 101 so that the number of pixels included in each class is substantially equal, and includes n classes (class 0 to n−1). ) Is set as an example of processing. (B) is an example in which the number of division classes is set to 8 and the pixel signal level is equally divided and the class classification setting process is executed. When the pixel signal level is 0 to 255, the range of each class (dynamic range) is , 32 are set equally.
[0069]
When class setting processing according to the pixel value is executed in the class classification setting unit 102, the class classification setting information is output to the class information table generation unit 103, and the class is set based on the setting information in the class classification setting unit 102. An information table is generated.
[0070]
For example, as shown in FIG. 4, the class information table is generated as a table in which the minimum value (MIN) value corresponding to the class and the dynamic range (DR) are recorded. The minimum value (MIN) corresponding to the class is the minimum signal level value of each class, that is, the signal level of the boundary value with the lower class. The dynamic range (DR) corresponding to the class is set as a value corresponding to the difference between the maximum value and the minimum value of the signal level to which the class belongs.
[0071]
In FIG. 4, the dynamic range of each class is not uniform. For example, as described above, the number of pixels included in each class is substantially uniform based on the frequency information acquired by the pixel value analysis unit 101. An example of a class information table generated when class classification setting processing is performed is shown.
[0072]
When class classification setting processing is executed by equally dividing the pixel signal level according to the predetermined number of division classes, a class information table as shown in FIG. 5 is generated, for example. This table example is a class information table example generated in the setting of eight equally divided classes in FIG. 3B, and the dynamic ranges of the eight classes 0 to 7 are all 32 common values. It becomes the table set to.
[0073]
When the class information table as shown in FIG. 4 or 5 is generated in the class information table generation unit 103, the class classification processing unit 105 performs an encoding process input from the delay circuit 104 based on the generated table information. A classification process of pixels included in the target image data is executed.
[0074]
The class classification process executed in the class classification processing unit 105 will be described with reference to FIG. FIG. 6A is a diagram for explaining the class classification process. A class number is assigned to each pixel included in the image data. It is executed as a process of assigning. Class No. Is assigned based on the class information table generated by the class information table generating unit 103, and the class number set according to each pixel value, that is, the signal level. Is granted.
[0075]
For example, when the class classification process based on the class information table of FIG. A pixel set to 5 indicates that the pixel value is in a range of 185 to 199. When class classification processing based on the class information table of FIG. A pixel set to 5 indicates that the pixel value is a pixel in the range of 160 to 191.
[0076]
The class classification processing unit 105 sets a class for all pixels included in the encoding target image.
[0077]
After that, the block division unit 106 executes block division processing according to the class of each pixel set in the class classification processing unit 105. FIG. 6B illustrates the block division process.
[0078]
As shown in FIG. 6B, the block dividing unit 106 sequentially scans each pixel in the horizontal direction, and when adjacent pixels are in the same class, the block is set as the same block and the adjacent pixels are in different classes. A process of setting the boundary as a block boundary is executed.
[0079]
In the example shown in FIG. 6B, since the first three pixels are all class 5 and the next pixel is class 3, three pixels of class 5 are set as one block. The next three pixels of class 3 are further set as one block. Thereafter, similarly, a process of setting a set of consecutive pixels of the same class as one block is sequentially executed, and a block division process is performed on all pixels of the encoding target image.
[0080]
FIG. 7 shows a flow for explaining the procedure of class classification processing and block division processing. The class classification process and the block division process will be described according to the flow. In step S11, scanning is started from the first pixel, a pixel value is detected, and a class is set with reference to the class information table. This setting information is temporarily stored in the memory.
[0081]
When this process is completed for all the pixels of the processing target image (Yes in S12), next, in step S13, the setting class is determined from the top pixel, and in step S14, it is determined whether or not it is the same as the class of the previous pixel. If they are the same class, they are set as the same block in step S15, and if they are not the same class, a new block is set in step S16. In step S17, it is determined whether or not the block division for all the pixels has been completed, and when the block division for all the pixels has been completed, the process ends.
[0082]
When the block division of the processing target image is completed in the block dividing unit 106, the dynamic range (DR) and the minimum value (MIN) in each block are calculated in the DR and minimum value (MIN) calculating unit 107, and then quantized. The (encoding) processing unit 108 executes quantization processing.
[0083]
The DR and minimum value (MIN) calculation unit 107 acquires the dynamic range (DR) and minimum value (MIN) corresponding to each block from the applied class information table based on the class of each block.
[0084]
The class classification process based on the class information table of FIG. For the set pixel of 5, each data of minimum value (MIN) = 185 and dynamic range (DR) = 15 is acquired from the class information table shown in FIG. Also, the class classification process based on the class information table of FIG. For the set pixel of 5, each data of minimum value (MIN) = 160 and dynamic range (DR) = 32 is acquired from the class information table shown in FIG.
[0085]
The quantization (encoding) processing unit 108 generates a quantization code (Q code) corresponding to a pixel in the block for each block. Generation of the quantization code (Q code) executed in the quantization (encoding) processing unit 108 is executed as processing according to the following expression.
[0086]
[Equation 3]
Figure 0004016662
[0087]
In the above formula, x is the pixel value, Δ is the quantization step width, and n is the number of quantization bits. DR is a dynamic range (DR) corresponding to each block, and information obtained from the applied class information table by the DR and minimum value (MIN) calculation unit 107 is applied based on the class of each block. MIN is the minimum value (MIN) corresponding to each block, and this is also applied to the information acquired from the applied class information table by the DR and minimum value (MIN) calculation unit 107 based on the class of each block. The
[0088]
The quantization code (Q code) generated by the quantization processing unit 108 is a class number set for each block. At the same time, it is stored and output in block information.
[0089]
A configuration example of the block information is shown in FIG. The block information includes a class number set for each block. Is stored. Class No. The number of stored bits of log is log when the number of divided classes is m2m bits. Further, a quantization code (Q code) is stored. The number of bits of the quantization code (Q code) is k × n bits when the number of quantization bits = n and the number of pixels in the block = k. In the configuration of the present invention, since the number of pixels included in each block is not constant, the length of the block information is not uniform. Therefore, an identification code for indicating the end point of each block information is stored as a stop code. The lowest number of s bits that can be identified is stored here. The block information shown in FIG. 8 is generated and output for each divided block.
[0090]
Note that the class information table generated by the class information generation unit 103, that is, the class information table described with reference to FIG. 4 or FIG. 5, is supplied to a device that performs a decoding process as necessary. However, when the encoding side and the decoding side share a common class information table, there is no need for sending.
[0091]
FIG. 9 shows an output data configuration example as a class information table. The class information table data includes the class number. Is stored. Class No. The number of stored bits of log is log when the number of divided classes is m2m bits. Further, the minimum value (MIN) value corresponding to the class and the dynamic range (DR) data are stored. For example, when a signal level of 0 to 255 is used as a pixel value, each of them is stored as a maximum of 8 bit data.
[0092]
As described above, in the encoding processing apparatus of the present invention, when performing encoding by ADRC, the block size is not fixed, and a dynamic block that sets a set of similar pixel values of the processing target image as a block Since it is configured to perform coding by delimiters, it is possible to set a limited dynamic range based on the pixel values included in each block, and each block compared to conventional processing that sets a uniform block size The dynamic range can be set small, and the error between the original pixel value and the pixel value after the decoding process can be reduced.
[0093]
In the configuration of the present invention, since one block is configured as a set of pixels having similar pixel values, a large dynamic due to the existence of pixel values having different values as in the conventional variable length ADRC processing. An increase in the number of quantization bits due to the range setting does not occur, and an improvement in coding efficiency is realized.
[0094]
As shown in the encoding processing apparatus shown in FIG. 1, in the configuration of the present invention, the thinning processing unit 109 can further perform a thinning process to increase the compression rate. Whether or not to execute the thinning-out process can be selected and is executed as necessary.
[0095]
As apparent from the above description, the encoding process of the present invention is a configuration in which sets having similar pixel values are set as one block, and therefore, the pixels included in one block are the same. Even when the pixel value is replaced by a pixel included in the block, the pixel value does not greatly deviate. Therefore, the thinning-out processing unit 109 restores the pixel value in one block from the quantized data of other pixels. Executes the thinning process based on the above.
[0096]
The thinning process executed by the thinning processing unit 109 will be described with reference to FIG. FIG. 10 shows an example of thinning processing when the number of pixels included in one block is an odd number.
[0097]
A processing example for a block including seven pixels in which pixel values before quantization processing are a [0] to a [6] will be described. The quantization processing unit 108 in FIG. 1 generates a quantization code (Q code) for each pixel a [0] to a [6] according to the previously described (Equation a1).
[0098]
In the thinning-out processing unit 109, as shown in FIG. 10, the quantization code b [0] for the pixels a [0], a [2], a [4], a [6] from the seven quantization codes, b [1], b [2], b [3] are stored in the block information, and quantization codes corresponding to the other pixels a [1], a [3], a [5] are obtained by thinning. Then, processing that is not stored in the block information is performed. As a result, the amount of quantization code information in the block information is greatly reduced.
[0099]
As shown in FIG. 10, the decoding process based on the block information storing the thinned quantization code is decoded from the quantization codes b [0], b [1], b [2], and b [3]. Pixels c [0], c [2], c [4], and c [6] as pixels are directly obtained by inverse quantization processing, and pixel values c [1], c [3], and c between the respective pixels are obtained. [5] performs a process of setting as an intermediate value of each adjacent pixel. For example, the pixel value c [1] is set as an intermediate value between the pixel values c [0] and c [2]. Note that the decoding process by the inverse quantization process will be described in more detail later.
[0100]
The example of FIG. 10 is processing when the number of pixels in one block is an odd number, but processing when the number of pixels is even will be described with reference to FIG.
[0101]
FIG. 11 is a processing example of a block including six pixels in which pixel values before quantization processing are a [0] to a [5]. The quantization processing unit 108 in FIG. 1 generates a quantization code (Q code) for each pixel a [0] to a [5] in accordance with the previously described (Equation a1).
[0102]
In the thinning-out processing unit 109, as shown in FIG. 11, the quantization code b [0] for the pixels a [0], a [2], a [4], a [5] from six quantization codes, b [1], b [2], b [3] are stored in the block information, and quantization codes corresponding to other pixels of a [1], a [3] Do not store. As a result, the amount of quantization code information in the block information is greatly reduced.
[0103]
As described above, the thinning processing unit 109 executes the thinning processing of pixel data at a position where the pixel data remaining after the thinning can be present in two adjacent regions.
[0104]
As shown in FIG. 11, the decoding process based on the block information storing the thinned quantization code is decoded from the quantization codes b [0], b [1], b [2], and b [3]. Pixels c [0], c [2], c [4], and c [5] as pixels are directly obtained by inverse quantization processing, and pixel values c [1] and c [3] between them are A process of setting as an intermediate value of each adjacent pixel is performed.
[0105]
A configuration example of block information generated by this thinning process is shown in FIG. The block information includes a class number set for each block. Is stored. Class No. The number of stored bits of log is log when the number of divided classes is m2m bits. Further, 1-bit flag is stored as identification information indicating whether the block information is a result of performing the thinning process or the block information is a block information storing the quantization codes of all pixels that are not subjected to the thinning process. .
[0106]
Further, a quantization code (Q code) is stored. The number of bits of the quantization code (Q code) is k ′ × n bits when the number of quantization bits = n and the number of stored pixels = k ′. In this configuration, the number of stored pixels = k ′ = the number of pixels after thinning. Further, an identification code for indicating the end point of each block information is stored as a stop code. The lowest number of s bits that can be identified is stored here. The block information shown in FIG. 12 is generated and output for each divided block.
[0107]
Thus, by performing the thinning process, the compression rate is greatly improved. In the configuration of the present invention, since the pixel values of the pixels included in each block are guaranteed to have close values, as described above, the pixel values of the thinned pixels are converted into the restored pixel values included in the same block. By restoring based on this, a large error from the original pixel does not occur.
[0108]
FIG. 13 shows a flow for explaining the processing procedure of the quantization process and the thinning process. Each step of the flow will be described. In step S21, quantization for each block is executed. The quantization process is executed as a Q code generation process based on the above-described equation a1. If it is determined in step S22 that the quantization process has been completed for all blocks, the process proceeds to step S23, the process returns to the first block, and a decimation process is performed for each block in step S24. This thinning process is the process described above with reference to FIGS. 10 and 11, and the processing mode differs depending on whether the number of pixels included in each block is odd or even. If it is determined in step S25 that all blocks have been thinned, the process is terminated.
[0109]
In the above description, it has been described that the thinning process is performed after the quantization process for all pixels. However, the thinning process is performed before the quantization process, and only the remaining pixels after the thinning process are subjected to the quantization process. It may be configured to execute.
[0110]
Next, the decoding processing apparatus will be described with reference to the block diagram shown in FIG. When the block information to be decoded is not thinned out, it has the configuration described above with reference to FIG. 8, and when it is thinned out, the configuration described above with reference to FIG. Become. Here, processing in the case of having the configuration of FIG. 12 will be described.
[0111]
The block information analysis unit 201 performs an analysis process on block information to be decoded. From the input block information, the class number set for each block is set. Information, identification information indicating whether or not to perform the thinning process, and a quantization code obtained by quantizing the pixel values in the block are acquired. Each block information is separated when a stop code is detected.
[0112]
The block information analysis unit 201 stores the class number stored in each block information. And the class information table 202 stored in advance or provided from the encoding processing apparatus is referred to. Each value of the minimum value (MIN) and dynamic range (DR) corresponding to is acquired. As described above with reference to FIGS. 4 and 5, the class information table 202 includes the class number. The minimum value (MIN) and dynamic range (DR) corresponding to are stored, and these pieces of information are acquired.
[0113]
The minimum value acquisition unit 203 of the decoding processing device is configured such that the block information analysis unit 201 uses the class number in the block information. To obtain the minimum value obtained from the class information table 202. The DR acquisition unit 204 is configured such that the block information analysis unit 201 uses the class number in the block information. The dynamic range (DR) acquired from the class information table 202 is acquired based on the above. The decoding (inverse quantization) processing unit 205 includes a quantization code (Q code) in the block information, a minimum value (MIN) acquired by the minimum value acquisition unit 203, and a dynamic range (DR) acquired by the DR acquisition unit 204. Based on the above, a decoding process is executed. The decoding process is executed as a process of calculating x ′ according to the following equation, where the restored pixel value is x ′.
[0114]
[Expression 4]
x ′ = (Q + 0.5) × Δ + MIN (DR ≧ 2nin the case of)
x '= (Q + MIN) (DR <2nin the case of)
(Formula a2)
[0115]
In the above equation, x ′: restored pixel value, MIN: minimum value, Q: quantization code (Q code), Δ: quantization step width, n: number of quantization bits, DR: dynamic range, DR, and MIN indicates that the block information analysis unit 201 has a class number in the block information. The dynamic range (DR) and minimum value (MIN) acquired from the class information table 202 based on the above.
[0116]
In this way, the restored pixel value x ′ of each pixel is obtained from the block information, and the image data is reproduced based on the restored pixel value.
[0117]
However, when the thinning process is being performed, the thinned data restoring unit 206 restores the thinned pixel data. Whether or not the thinning process is executed is analyzed by the block information analysis unit 201 based on the bit of the identification flag in the block information, and only when the thinned information is stored in the block information processing, the thinned data restoration unit The process in 206 is executed.
[0118]
The processing of the thinned data restoration unit is the processing described with reference to FIGS. 10 and 11, and is decoded from the thinned quantization codes b [0], b [1], b [2]. Based on the pixels having the pixel values c [0], c [2], c [4]... Obtained by the above, pixel values c [1], c [3]. This is done as a setting process.
[0119]
In the case of block information processing that stores the thinned information, after performing the thinned data restoration processing in the thinned data restoration unit 206, image reproduction and output based on the restored pixel value are executed.
[0120]
Next, processing procedures of the encoding processing device and the decoding processing device according to the present embodiment will be described with reference to flowcharts shown in FIGS. 15 and 16.
[0121]
First, processing in each step of FIG. 15 will be described with reference to the configuration of the encoding processing device of FIG. First, in step S101, the image data to be encoded is input to the pixel value analysis unit 101 of the encoding processing apparatus shown in FIG. 1, and the analysis of the pixel values constituting the image is executed. As described above, for example, if the image signal is black and white, the pixel value is the luminance signal level. For example, when the YUV signal is used for the 256-level luminance level data of 0 to 255 and the color image signal, When applying signal levels for Y, U, and V, and color signals such as RGB, the signal levels are for RGB.
[0122]
In the pixel value analysis processing in step S101, frequency distribution information of the pixel value signal (luminance) level is acquired, and the frequency information as shown in FIG. 2 described above is acquired.
[0123]
Next, in step S102, the class classification setting unit 102 executes class classification setting processing based on the frequency information acquired in step S101. That is, a class setting process corresponding to the pixel value signal level is executed. For example, the class is classified into n classes from class 0 in descending order of pixel value signal level to class n−1 having high pixel value signal level.
[0124]
As described above, the class classification setting process is performed based on the frequency information of the pixel value, so that the number of pixels included in each class is substantially equal, or the predetermined number of division classes is set. Accordingly, it is possible to appropriately select and execute various processing methods such as equally dividing the pixel signal level and classifying the signal.
[0125]
Next, in step S103, the class information table generation unit 103 executes class information table generation processing based on the class classification setting information. As described above with reference to FIGS. 4 and 5, the class information table is a table in which the minimum value (MIN) value and dynamic range (DR) corresponding to the class are recorded.
[0126]
Next, in step S104, the class classification processing unit 104 executes class classification processing for pixels included in the image data to be encoded based on the class information table information generated in step S103. This process is the process described above with reference to FIG. 6A, and class No. is assigned to each pixel included in the image data. It is executed as a process of assigning. Class No. Is assigned based on the generated class information table, and the class number set according to each pixel value, that is, the signal level. Is granted.
[0127]
Next, in step S105, the block division unit 106 executes block division processing according to the class of each pixel set in step S103. This process is the process described above with reference to FIG. 6B. Each pixel is sequentially scanned, and when adjacent pixels are of the same class, they are set as the same block, and the adjacent pixels have different classes. Is set as a block boundary.
[0128]
Next, in step S <b> 106, quantization processing is performed in the quantization (encoding) processing unit 108. The quantization process is executed as a process for generating a quantization code (Q code) corresponding to a pixel in the block for each block, and a quantization code (Q code) generation according to the above-described (Equation a1) is performed. Is executed. The dynamic range (DR) and minimum value (MIN) used at this time are acquired from the class information table based on the class of each block.
[0129]
Next, in step S107, it is determined whether or not to perform the thinning process. If not, in step S109, the quantization code (Q code) generated by the quantization processing unit 104 is set for each block. Class No. Further, the block information storing the stop code, that is, the block information described above with reference to FIG. 8 is generated and output.
[0130]
When executing the thinning process, the thinning processing unit 109 executes the thinning process in step S108. As described above with reference to FIGS. 10 and 11, the thinning-out process is a process in which only a quantization code based on every other pixel value is used as a block information storage code in principle. By thinning, the amount of quantization code information in the block information is greatly reduced.
[0131]
After the thinning process is executed, in step S109, the thinned quantization code (Q code) and the class number set for each block are displayed. The block information storing the identification flag indicating whether or not the thinning process is executed and the stop code, that is, the block information described above with reference to FIG. 12 is generated and output.
[0132]
Note that the class information table generated in step S103 is supplied to a device that performs decoding processing together with block information as necessary. However, when the encoding side and the decoding side share a common class information table, there is no need for sending.
[0133]
Next, the processing of the decoding processing apparatus will be described according to the processing flow of FIG. In step S201, block information to be decoded is input. When the block information to be decoded is not thinned out, it has the configuration described above with reference to FIG. 8, and when it is thinned out, the configuration described above with reference to FIG. Become.
[0134]
In step S202, the block information analysis unit 201 performs an analysis process on block information to be decoded. From the input block information, the class number set for each block is set. Information, identification information indicating whether or not the thinning process is executed, and a quantization code obtained by quantizing the pixel values in the block are obtained. Referring to the class information table based on the Each value of the minimum value (MIN) and dynamic range (DR) corresponding to is acquired.
[0135]
In step S203, the decoding (inverse quantization) processing unit 205 is based on the quantization code (Q code) acquired from the block information, the minimum value (MIN), and the dynamic range (DR) acquired from the class information table. The decryption process is executed. The decoding process is executed as a process of calculating the restored pixel value x ′ according to (Formula a2) described above.
[0136]
Next, in step S204, it is determined whether or not the data has been subjected to the thinning process. This is executed based on the identification flag (see FIG. 12) in the block information. If the block information is not thinned out, the pixels decoded in the decoding process in step S203 are all the pixels included in the block, and the restored pixel value is output in step S206.
[0137]
If it is determined in step S204 that the thinning process is being executed based on the identification flag (see FIG. 12) in the block information, the thinned data restoration unit 206 performs the restoration process of the thinned pixel data in step S205. Execute.
[0138]
The thinned data restoration processing is processing as described above with reference to FIGS. 10 and 11, and is obtained by decoding from the thinned quantization codes b [0], b [1], b [2]. Based on the pixels having the pixel values c [0], c [2], c [4]..., The pixel values c [1], c [3]. It is done as a process.
[0139]
When the thinned data restoration process in step S206 is completed, in step S206, image output is performed using the decoded pixels and the pixels including the thinned data restored pixels as restored pixels in the block.
[0140]
As described above, in the configuration of the present invention, when encoding by ADRC is performed, the block size is not fixed, and encoding is performed by dynamic block delimitation in which sets having similar pixel values of the processing target image are set as blocks. Because of this configuration, it is possible to set a limited dynamic range based on the pixel values contained in each block. Compared to conventional processing that sets a uniform block size, the dynamic range of each block Can be set small, and the error between the original pixel value and the pixel value after the decoding process can be reduced.
[0141]
In the configuration of the present invention, since one block is configured as a set of pixels having similar pixel values, a large dynamic due to the existence of pixel values having different values as in the conventional variable length ADRC processing. An increase in the number of quantization bits due to the range setting does not occur, and an improvement in coding efficiency is realized.
[0142]
The present invention has been described in detail above with reference to specific embodiments. However, it is obvious that those skilled in the art can make modifications and substitutions of the embodiments without departing from the gist of the present invention. In other words, the present invention has been disclosed in the form of exemplification, and should not be interpreted in a limited manner. In order to determine the gist of the present invention, the claims section described at the beginning should be considered.
[0143]
The series of processes described in the specification can be executed by hardware, software, or a combined configuration of both. When executing processing by software, the program recording the processing sequence is installed in a memory in a computer incorporated in dedicated hardware and executed, or the program is executed on a general-purpose computer capable of executing various processing. It can be installed and run.
[0144]
For example, the program can be recorded in advance on a hard disk or ROM (Read Only Memory) as a recording medium. Alternatively, the program is temporarily or permanently stored on a removable recording medium such as a flexible disk, a CD-ROM (Compact Disc Read Only Memory), an MO (Magneto optical) disk, a DVD (Digital Versatile Disc), a magnetic disk, or a semiconductor memory. It can be stored (recorded). Such a removable recording medium can be provided as so-called package software.
[0145]
The program is installed on the computer from a removable recording medium as described above, or is wirelessly transferred from the download site to the computer, or via a network such as a LAN (Local Area Network) or the Internet. Then, the computer can receive the program transferred in this manner and install it in a recording medium such as a built-in hard disk.
[0146]
Note that the various processes described in the specification are not only executed in time series according to the description, but may be executed in parallel or individually according to the processing capability of the apparatus that executes the processes or as necessary.
[0147]
【The invention's effect】
As described above, according to the configuration of the present invention, the block size subject to encoding processing or decoding processing by ADRC is not fixed, and a set in which pixel values of processing target images are similar is set as a block. The decoding is performed in units of these blocks. Since encoding is performed in units of blocks by setting block delimiters consisting only of similar pixel values according to pixel values during encoding processing, a limited dynamic range based on the pixel values included in each block Compared with the conventional processing that sets a uniform block size, the dynamic range of each block can be set small, and the error between the original pixel value and the pixel value after decoding processing is reduced. It becomes possible.
[0148]
In addition, according to the configuration of the present invention, the block to be encoded or decoded by ADRC is configured as a set of pixels having similar pixel values, and thus is different from the conventional variable length ADRC processing. An increase in the number of quantization bits due to the setting of a large dynamic range due to the presence of a pixel value having a value does not occur, and an improvement in coding efficiency is realized.
[0149]
Further, according to the configuration of the present invention, the quantization code included in the block to be encoded or decoded by ADRC does not correspond to all pixels, and the quantization corresponding to the remaining pixels after thinning is performed. Since only the code is stored in the block information, the information amount of the block information can be reduced. Since the block is configured as a set of pixels having similar pixel values, no significant error occurs even if the pixel values of the thinned pixels are restored based on the pixel values in the same block.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of an encoding processing apparatus according to the present invention.
FIG. 2 is a diagram illustrating class classification processing of the encoding processing device according to the present invention.
FIG. 3 is a diagram illustrating class classification processing of the encoding processing device according to the present invention.
FIG. 4 is a diagram showing a configuration example of a class information table according to the configuration of the present invention.
FIG. 5 is a diagram showing a configuration example of a class information table according to the configuration of the present invention.
FIG. 6 is a diagram illustrating an example of class classification processing and block division processing according to the configuration of the present invention.
FIG. 7 is a flowchart for explaining class classification processing and block division processing according to the encoding processing configuration of the present invention;
FIG. 8 is a diagram showing a block information configuration example according to the configuration of the present invention.
FIG. 9 is a diagram showing a configuration example of class information table data according to the configuration of the present invention.
FIG. 10 is a diagram illustrating a thinning process and a restoration process in the encoding process and the decoding process according to the present invention.
FIG. 11 is a diagram illustrating a thinning process and a restoration process in the encoding process and the decoding process according to the present invention.
FIG. 12 is a diagram showing a block information configuration example according to the configuration of the present invention.
FIG. 13 is a flowchart illustrating a quantization process and a thinning process procedure in the encoding process of the present invention.
FIG. 14 is a block diagram illustrating a configuration example of a decoding processing apparatus according to the configuration of the present invention.
FIG. 15 is a flowchart illustrating an encoding processing procedure according to the configuration of the present invention.
FIG. 16 is a flowchart illustrating an encoding processing procedure according to the configuration of the present invention.
FIG. 17 is a diagram for explaining an outline of ADRC processing;
FIG. 18 is a diagram for explaining an outline of quantization processing in ADRC processing;
FIG. 19 is a diagram illustrating a configuration of block information generated in ADRC processing.
FIG. 20 is a flowchart illustrating a procedure of fixed-length ADRC processing.
FIG. 21 is a flowchart for explaining the procedure of variable-length ADRC processing;
[Explanation of symbols]
101 Pixel value analysis unit
102 Class classification setting part
103 Class information table generator
104 Delay circuit
105 Classification processing unit
106 Block division
107 DR, minimum value (MIN) calculation unit
108 Quantization processor
109 Thinning processing unit
201 Block information analysis unit
202 Class information table
203 Minimum value (MIN) acquisition unit
204 DR acquisition unit
205 Decoding (inverse quantization) processing unit
206 Thinning data restoration unit
801 Image data
802 blocks
803 Signal level data

Claims (15)

画像データの符号化処理において、各ブロック単位の符号化データとして、ブロックに設定されたクラスと、各画素に対応する量子化コードと、各ブロック単位の符号化データの終端を示すストップコードからなるブロック情報を生成する符号化処理装置であり、
画像を構成する各画素について、複数の範囲に分割された符号化処理対象の画素の取りうる信号レベル範囲のうち、当該画素の信号レベルの属する一の範囲に対応した前記クラス定するクラス分類処理手段と、
前記クラス分類処理手段において設定したクラスが同一の隣接画素領域を1ブロックとして設定するブロック分割手段と、
前記ブロック分割手段において設定されたブロック単位で、ブロックに対応して設定されるダイナミックレンジに基づく量子化処理を実行する量子化処理手段と、
を有し、
前記量子化処理手段の適用する量子化処理は、
ADRC(Adaptive Dynamic Range Coding)に基づく量子化処理であり、前記クラスに対応して設定される最小値(MIN)、およびダイナミックレンジ(DR)に基づいて量子化コード(Qコード)を算出する処理を実行する構成であることを特徴とする符号化処理装置。
In the encoding process of image data, the encoded data for each block consists of a class set for the block, a quantization code corresponding to each pixel, and a stop code indicating the end of the encoded data for each block. An encoding processing device for generating block information ;
For each pixel constituting the image, of the signal level range that can be taken of the pixels of the divided encoding target into a plurality of ranges, Ru set Teisu the class corresponding to a range belongs signal level of the pixel Classification processing means;
Block dividing means for setting adjacent pixel regions having the same class set in the class classification processing means as one block;
Quantization processing means for executing quantization processing based on a dynamic range set corresponding to a block in block units set in the block dividing means;
I have a,
The quantization processing applied by the quantization processing means is:
Quantization processing based on ADRC (Adaptive Dynamic Range Coding), processing for calculating a quantization code (Q code) based on a minimum value (MIN) and a dynamic range (DR) set corresponding to the class coding processing apparatus, characterized in that the arrangement for the run.
前記符号化処理装置は、さらに、
画素値に応じた複数クラスの各クラスに対して最小値(MIN)、およびダイナミックレンジ(DR)を対応付けたクラス情報テーブルを有し、
前記量子化処理手段は、
前記クラス情報テーブルに設定された最小値(MIN)、およびダイナミックレンジ(DR)に基づいて、前記ADRC(Adaptive Dynamic Range Coding)処理を実行する構成であることを特徴とする請求項1に記載の符号化処理装置。
The encoding processing device further includes:
A class information table in which a minimum value (MIN) and a dynamic range (DR) are associated with each class of a plurality of classes according to pixel values;
The quantization processing means includes
Minimum value set in the class information table (MIN), and based on the dynamic range (DR), it in claim 1, wherein the ADRC is configured to perform (Adaptive Dynamic Range Coding) processing The encoding processing apparatus described.
前記クラス情報テーブルに設定された複数クラスのダイナミックレンジ(DR)は同一値として設定された構成であることを特徴とする請求項3に記載の符号
化処理装置。
The encoding processing apparatus according to claim 3, wherein the dynamic ranges (DR) of a plurality of classes set in the class information table are set as the same value.
前記符号化処理装置は、さらに、
符号化処理対象の画素値の頻度分布を解析する画素値解析手段と、
前記画素値解析手段の解析結果に基づいて、各クラスに属する画素数がほぼ均一分布になるように画素の取りうる信号レベル範囲を複数の範囲に分割し、当該複数の範囲に対応するクラス分類設定処理を実行するクラス分類設定手段と、
前記クラス分類設定手段の設定したクラス分類に対応する各クラスに対して最小値(MIN)、およびダイナミックレンジ(DR)を対応付けたクラス情報テーブルを生成するクラス情報テーブル生成手段とを有し、
前記クラス分類処理手段は、前記クラス分類設定手段によって設定されたクラス分類に基づいて各画素のクラスを設定し、
前記量子化処理手段は、
前記クラス情報テーブルに設定された最小値(MIN)、およびダイナミックレンジ(DR)に基づいて、前記ADRC(Adaptive Dynamic Range Coding)処理を実行する構成であることを特徴とする請求項1に記載の符号化処理装置。
The encoding processing device further includes:
Pixel value analysis means for analyzing the frequency distribution of pixel values to be encoded;
Based on the analysis result of the pixel value analysis means, the signal level range that a pixel can take is divided into a plurality of ranges so that the number of pixels belonging to each class has a substantially uniform distribution, and the class classification corresponding to the plurality of ranges Class classification setting means for executing setting processing;
Class information table generating means for generating a class information table in which a minimum value (MIN) and a dynamic range (DR) are associated with each class corresponding to the class classification set by the class classification setting means;
The class classification processing means sets the class of each pixel based on the class classification set by the class classification setting means,
The quantization processing means includes
Minimum value set in the class information table (MIN), and based on the dynamic range (DR), it in claim 1, wherein the ADRC is configured to perform (Adaptive Dynamic Range Coding) processing The encoding processing apparatus described.
前記符号化処理装置は、さらに、
前記ブロック分割手段において設定されたブロック単位でブロック内の画素データの間引き処理を実行する間引き処理手段を有し、
前記間引き処理手段は、
間引き処理の対象となる画素データに隣接する2つの画素データが間引き後に残存するように、画素データの間引き処理を実行する構成であることを特徴とする請求項1に記載の符号化処理装置。
The encoding processing device further includes:
Thinning processing means for executing thinning processing of pixel data in a block in units of blocks set in the block dividing means;
The thinning processing means is
The encoding processing apparatus according to claim 1, wherein the pixel data is thinned so that two pixel data adjacent to the pixel data to be thinned remain after thinning.
前記符号化処理装置は、
各ブロック単位の符号化データとして、ブロックに設定されたクラスと、間引き処理の実行の有無を示す識別フラグと、各画素に対応する量子化コードと、各ブロック単位の符号化データの終端を示すストップコードからなるブロック情報を生成する構成であることを特徴とする請求項に記載の符号化処理装置。
The encoding processing device includes:
As the encoded data for each block, the class set for the block, the identification flag indicating whether or not the thinning process is executed, the quantization code corresponding to each pixel, and the end of the encoded data for each block The encoding processing apparatus according to claim 5 , wherein the encoding processing apparatus is configured to generate block information including a stop code.
画像を構成する各ブロック単位の符号化データとして、ブロックに設定されたクラスと、各画素に対応する量子化コードと、各ブロック単位の符号化データの終端を示すストップコードからなるブロック情報を入力して復号処理を実行する復号処理装置であり、
前記ストップコードに基づいてブロック単位で入力された符号化データから、ブロックに設定されたクラスと、各画素に対応する量子化コードと、ブロックに設定されたクラスに対応する最小値(MIN)、およびダイナミックレンジ(DR)を取得するブロック情報解析手段と、
前記ブロック情報解析手段の取得した最小値(MIN)、およびダイナミックレンジ(DR)、および前記ブロック情報に含まれる各画素に対応する量子化コードに基づいて、ADRC(Adaptive Dynamic Range Coding)に対応する逆量子化処理により各ブロック単位の画素値復号処理を実行する復号処理手段と、
を有することを特徴とする復号処理装置。
Inputs block information consisting of the class set for the block, the quantization code corresponding to each pixel, and the stop code indicating the end of the encoded data for each block as the encoded data for each block constituting the image And a decoding processing device that executes the decoding processing,
From the encoded data input in block units based on the stop code, the class set for the block, the quantization code corresponding to each pixel, and the minimum value (MIN) corresponding to the class set for the block, Block information analysis means for obtaining a dynamic range (DR);
Corresponds to ADRC (Adaptive Dynamic Range Coding) based on the minimum value (MIN) and dynamic range (DR) acquired by the block information analysis means and the quantization code corresponding to each pixel included in the block information. Decoding processing means for performing pixel value decoding processing for each block by inverse quantization processing ;
A decryption processing apparatus.
記ADRC(Adaptive Dynamic Range Coding)に対応する逆量子化処理は、前記クラスに対応して設定される最小値(MIN)、およびダイナミックレンジ(DR)に基づいて復元画素値を算出する処理を実行する構成であることを特徴とする請求項に記載の復号処理装置。Inverse quantization processing corresponding to the prior Symbol A DRC (Adaptive Dynamic Range Coding), the minimum value which is set corresponding to the class (MIN), and the process of calculating the restored pixel value based on the dynamic range (DR) The decoding processing apparatus according to claim 7 , wherein the decoding processing apparatus is configured to execute 前記復号処理手段は、
画素値に応じた複数クラスの各クラスに対して最小値(MIN)、およびダイナミックレンジ(DR)を対応付けたクラス情報テーブルの設定値としての最小値(MIN)、およびダイナミックレンジ(DR)に基づいて、前記ADRC(Adaptive Dynamic Range Coding)に対応する逆量子化処理を実行する構成であることを特徴とする請求項に記載の復号処理装置。
The decoding processing means includes
A minimum value (MIN) and a dynamic range (DR) as set values in a class information table in which a minimum value (MIN) and a dynamic range (DR) are associated with each class of a plurality of classes according to pixel values. based on the decoding processing apparatus according to claim 7, characterized in that the inverse quantization processing corresponding to the ADRC (Adaptive Dynamic Range Coding) is a configuration you run.
前記復号処理装置は、さらに、
前記ブロック情報に格納された量子化コードが、ブロック内の全画素対応データではなく、間引きされたデータである場合の間引きデータ復元処理を実行する間引きデータ復元手段を有し、
前記ブロック情報解析手段はさらに間引き処理の実行有無を示す識別情報を取得し、
前記間引きデータ復元手段は、
前記識別情報に基づいて、ブロックが間引き処理されていると判定した場合には、前記復号処理手段が量子化コードに基づいて復号した隣接する復元画素の平均値を、当該隣接する復元画素の間に位置する間引き画素データの画素値として設定する処理を実行する構成であることを特徴とする請求項に記載の復号処理装置。
The decoding processing device further includes:
The quantization code stored in the block information has thinned data restoration means for performing a thinned data restoration process when the data is thinned data instead of all pixel corresponding data in the block,
The block information analyzing means further acquires identification information indicating whether or not the thinning process is executed,
The thinned data restoring means includes:
When it is determined that the block is thinned based on the identification information, the average value of the adjacent restored pixels decoded based on the quantization code by the decoding processing unit is calculated between the neighboring restored pixels. The decoding processing apparatus according to claim 7 , wherein the decoding processing device is configured to execute a process of setting as a pixel value of the thinned pixel data located at the position .
画像データの符号化処理において、各ブロック単位の符号化データとして、ブロックに設定されたクラスと、各画素に対応する量子化コードと、各ブロック単位の符号化データ の終端を示すストップコードからなるブロック情報を生成する符号化処理方法であり、
画像を構成する各画素について、複数の範囲に分割された符号化処理対象の画素の取りうる信号レベル範囲のうち、当該画素の信号レベルの属する一の範囲に対応した前記クラス定するクラス分類処理ステップと、
前記クラス分類処理ステップにおいて設定したクラスが同一の隣接画素領域を1ブロックとして設定するブロック分割ステップと、
前記ブロック分割ステップにおいて設定されたブロック単位で、ブロックに対応して設定されるダイナミックレンジに基づいて量子化処理を実行する量子化処理ステップと、
を有し、
前記量子化処理ステップにおいて適用する量子化処理は、
ADRC(Adaptive Dynamic Range Coding)に基づく量子化処理であり、前記クラスに対応して設定される最小値(MIN)、およびダイナミックレンジ(DR)に基づいて量子化コード(Qコード)を算出する処理を実行することを特徴とする符号化処理方法。
In the encoding process of image data, the encoded data for each block consists of a class set for the block, a quantization code corresponding to each pixel, and a stop code indicating the end of the encoded data for each block. An encoding processing method for generating block information ,
For each pixel constituting the image, of the signal level range that can be taken of the pixels of the divided encoding target into a plurality of ranges, Ru set Teisu the class corresponding to a range belongs signal level of the pixel A classification process step;
A block division step for setting adjacent pixel regions having the same class set in the class classification processing step as one block;
A quantization process step for performing a quantization process based on a dynamic range set corresponding to the block in units of blocks set in the block division step;
I have a,
The quantization processing applied in the quantization processing step is:
Quantization processing based on ADRC (Adaptive Dynamic Range Coding), processing for calculating a quantization code (Q code) based on a minimum value (MIN) and a dynamic range (DR) set corresponding to the class The encoding processing method characterized by performing these .
画像データの符号化処理において、各ブロック単位の符号化データとして、ブロックに設定されたクラスと、各画素に対応する量子化コードと、各ブロック単位の符号化データの終端を示すストップコードからなるブロック情報を生成する処理の実行プログラムとしてのコンピュータ・プログラムであって、
画像を構成する各画素について、複数の範囲に分割された符号化処理対象の画素の取りうる信号レベル範囲のうち、当該画素の信号レベルの属する一の範囲に対応した前記クラス定させるクラス分類処理ステップと、
前記クラス分類処理ステップにおいて設定したクラスが同一の隣接画素領域を1ブロックとして設定させるブロック分割ステップと、
前記ブロック分割ステップにおいて設定されたブロック単位で、ブロックに対応して設定されるダイナミックレンジに基づいて量子化処理を実行させる量子化処理ステップと、
を有し、
前記量子化処理ステップにおいて適用する量子化処理は、
ADRC(Adaptive Dynamic Range Coding)に基づく量子化処理であり、前記クラスに対応して設定される最小値(MIN)、およびダイナミックレンジ(DR)に基づいて量子化コード(Qコード)を算出する処理を実行させる処理であることを特徴とするコンピュータ・プログラム。
In the encoding process of image data, the encoded data for each block consists of a class set for the block, a quantization code corresponding to each pixel, and a stop code indicating the end of the encoded data for each block. A computer program as an execution program for processing to generate block information ,
For each pixel constituting the image, of the signal level range that can be taken of the pixels of a plurality of ranges divided coding processed, Ru said classes corresponding to a range belongs signal level of the pixel is set A classification process step;
A block dividing step of classes set by the Ru is set to the same adjacent pixel areas as one block in the classification process step,
In blocks set in said block dividing step, and the quantization processing steps Ru to execute a quantization processing based on the dynamic range which is set corresponding to the block,
Have a,
The quantization processing applied in the quantization processing step is:
Quantization processing based on ADRC (Adaptive Dynamic Range Coding), processing for calculating a quantization code (Q code) based on a minimum value (MIN) and a dynamic range (DR) set corresponding to the class A computer program characterized in that it is a process of executing
画像を構成する各ブロック単位の符号化データとして、ブロックに設定されたクラスと、各画素に対応する量子化コードと、各ブロック単位の符号化データの終端を示すストップコードからなるブロック情報を入力して復号処理を実行するプログラムとしてのコンピュータ・プログラムであって、
符号化画像データ中の各ブロック単位の符号化データの終端を示すストップコードに基づいて、ブロック単位の符号化データとして、ブロックに設定されたクラスと、各画素に対応する量子化コードを解析し、各クラスに対して最小値(MIN)、及びダイナミックレンジ(DR)を対応付けたクラス情報テーブルから、ブロックに設定されたクラスに対応する最小値(MIN)、およびダイナミックレンジ(DR)を取得するブロック情報解析ステップと、
前記ブロック情報解析ステップにおいて取得した最小値(MIN)、およびダイナミックレンジ(DR)、および前記ブロック情報に含まれる各画素に対応する量子化コードに基づいて、各ブロック単位の画素値復号処理を実行する復号処理ステップと、
を具備することを特徴とするコンピュータ・プログラム。
Inputs block information consisting of the class set for the block, the quantization code corresponding to each pixel, and the stop code indicating the end of the encoded data for each block as the encoded data for each block constituting the image A computer program as a program for executing decryption processing ,
Based on the stop code indicating the end of the encoded data of each block in the coded image data, analyzing the coded data of the block unit, a class configured in the block, the quantization code corresponding to each pixel From the class information table in which the minimum value (MIN) and the dynamic range (DR) are associated with each class, the minimum value (MIN) and the dynamic range (DR) corresponding to the class set in the block are obtained. A block information analysis step to be acquired;
Based on the minimum value (MIN) and dynamic range (DR) acquired in the block information analysis step, and a quantization code corresponding to each pixel included in the block information, a pixel value decoding process for each block is executed. A decryption processing step,
A computer program comprising:
画像データの符号化処理において、各ブロック単位の符号化データとして、ブロックに設定されたクラスと、各画素に対応する量子化コードと、各ブロック単位の符号化データ の終端を示すストップコードからなるブロック情報を生成する処理をコンピュータ・システム上で実行せしめるコンピュータ・プログラムを提供するプログラム記録媒体であって、前記コンピュータ・プログラムは、
画像を構成する各画素について、複数の範囲に分割された符号化処理対象の画素の取りうる信号レベル範囲のうち、当該画素の信号レベルの属する一の範囲に対応した前記クラス定させるクラス分類処理ステップと、
前記クラス分類処理ステップにおいて設定したクラスが同一の隣接画素領域を1ブロックとして設定させるブロック分割ステップと、
前記ブロック分割ステップにおいて設定されたブロック単位で、ブロックに対応して設定されるダイナミックレンジに基づいて量子化処理を実行させる量子化処理ステップと、
を有し、
前記量子化処理ステップにおいて適用する量子化処理は、
ADRC(Adaptive Dynamic Range Coding)に基づく量子化処理であり、前記クラスに対応して設定される最小値(MIN)、およびダイナミックレンジ(DR)に基づいて量子化コード(Qコード)を算出する処理を実行させる処理であることを特徴とするプログラム記録媒体。
In the encoding process of image data, the encoded data for each block consists of a class set for the block, a quantization code corresponding to each pixel, and a stop code indicating the end of the encoded data for each block. A program recording medium for providing a computer program for causing a process for generating block information to be executed on a computer system, the computer program comprising:
For each pixel constituting the image, of the signal level range that can be taken of the pixels of a plurality of ranges divided coding processed, Ru said classes corresponding to a range belongs signal level of the pixel is set A classification process step;
A block dividing step of classes set by the Ru is set to the same adjacent pixel areas as one block in the classification process step,
In blocks set in said block dividing step, and the quantization processing steps Ru to execute a quantization processing based on the dynamic range which is set corresponding to the block,
Have a,
The quantization processing applied in the quantization processing step is:
Quantization processing based on ADRC (Adaptive Dynamic Range Coding), processing for calculating a quantization code (Q code) based on a minimum value (MIN) and a dynamic range (DR) set corresponding to the class A program recording medium characterized in that the program recording process is executed .
画像を構成する各ブロック単位の符号化データとして、ブロックに設定されたクラスと、各画素に対応する量子化コードと、各ブロック単位の符号化データの終端を示すストップコードからなるブロック情報を入力して復号処理をコンピュータ・システム上で実行せしめるコンピュータ・プログラムを提供するプログラム記録媒体であって、前記コンピュータ・プログラムは、
符号化画像データ中の各ブロック単位の符号化データの終端を示すストップコードに基づいて、ブロック単位の符号化データとして、ブロックに設定されたクラスと、各画素に対応する量子化コードを解析し、各クラスに対して最小値(MIN)、及びダイナミックレンジ(DR)を対応付けたクラス情報テーブルから、ブロックに設定されたクラスに対応する最小値(MIN)、およびダイナミックレンジ(DR)を取得するブロック情報解析ステップと、
前記ブロック情報解析ステップにおいて取得した最小値(MIN)、およびダイナミックレンジ(DR)、および前記ブロック情報に含まれる各画素に対応する量子化コードに基づいて、各ブロック単位の画素値復号処理を実行する復号処理ステップと、
を具備することを特徴とするプログラム記録媒体。
Inputs block information consisting of the class set for the block, the quantization code corresponding to each pixel, and the stop code indicating the end of the encoded data for each block as the encoded data for each block constituting the image A program recording medium for providing a computer program that causes a decoding process to be executed on a computer system, the computer program comprising:
Based on the stop code indicating the end of the encoded data of each block in the coded image data, analyzing the coded data of the block unit, a class configured in the block, the quantization code corresponding to each pixel From the class information table in which the minimum value (MIN) and the dynamic range (DR) are associated with each class, the minimum value (MIN) and the dynamic range (DR) corresponding to the class set in the block are obtained. A block information analysis step to be acquired;
Based on the minimum value (MIN) and dynamic range (DR) acquired in the block information analysis step, and a quantization code corresponding to each pixel included in the block information, a pixel value decoding process for each block is executed. A decryption processing step,
A program recording medium comprising:
JP2002015838A 2002-01-24 2002-01-24 Encoding processing device, decoding processing device and method, and computer program Expired - Fee Related JP4016662B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002015838A JP4016662B2 (en) 2002-01-24 2002-01-24 Encoding processing device, decoding processing device and method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002015838A JP4016662B2 (en) 2002-01-24 2002-01-24 Encoding processing device, decoding processing device and method, and computer program

Publications (2)

Publication Number Publication Date
JP2003219418A JP2003219418A (en) 2003-07-31
JP4016662B2 true JP4016662B2 (en) 2007-12-05

Family

ID=27652090

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002015838A Expired - Fee Related JP4016662B2 (en) 2002-01-24 2002-01-24 Encoding processing device, decoding processing device and method, and computer program

Country Status (1)

Country Link
JP (1) JP4016662B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4484579B2 (en) * 2004-05-11 2010-06-16 キヤノン株式会社 Image processing apparatus and method, and program
JP2011217151A (en) * 2010-03-31 2011-10-27 Fujitsu Ltd Data converter, data conversion method, and data conversion program
JP6125807B2 (en) * 2012-11-19 2017-05-10 任天堂株式会社 Data compression device, data compression program, data compression system, data compression method, data decompression device, and data compression / decompression system
JP6021498B2 (en) 2012-08-01 2016-11-09 任天堂株式会社 Data compression apparatus, data compression program, data compression system, data compression method, data decompression apparatus, data compression / decompression system, and data structure of compressed data
JP6125808B2 (en) * 2012-11-19 2017-05-10 任天堂株式会社 Data compression apparatus, data compression program, data compression system, and data compression method

Also Published As

Publication number Publication date
JP2003219418A (en) 2003-07-31

Similar Documents

Publication Publication Date Title
JP5957562B2 (en) Video encoding / decoding method and apparatus using large size transform unit
JP4418762B2 (en) Image encoding apparatus, image decoding apparatus, control method thereof, computer program, and computer-readable storage medium
US6567562B1 (en) Encoding apparatus and method
US8213727B2 (en) Image encoding apparatus and image decoding apparatus, and control method thereof
JP4956304B2 (en) Image encoding apparatus, control method therefor, computer program, and computer-readable storage medium
US9326011B2 (en) Method and apparatus for generating bitstream based on syntax element
JP2011511592A (en) Video coding system with reference frame compression
JPWO2009063554A1 (en) Encoding device and decoding device
JP4762938B2 (en) Data embedding device, data extracting device, data embedding method, and data extracting method
CN110896483A (en) Method for compressing and decompressing image data
JP6065613B2 (en) Video encoding device
US8396308B2 (en) Image coding based on interpolation information
JP4016662B2 (en) Encoding processing device, decoding processing device and method, and computer program
JP4039076B2 (en) Encoding processing device, decoding processing device and method, and computer program
US8463057B2 (en) Image encoding apparatus and control method therefor
JP2005124001A (en) Apparatus, method, and program for motion picture encoding apparatus, method and program for motion picture decoding
JP4186470B2 (en) Encoding processing device, decoding processing device and method, and computer program
KR101979379B1 (en) Method and apparatus for encoding image, and method and apparatus for decoding image
JP6816137B2 (en) Image processing device, image processing method and image processing program
JP6680796B2 (en) Efficient low complexity video compression
JP4971881B2 (en) Image encoding apparatus, image decoding apparatus, and control method thereof
JP3676651B2 (en) Stepwise reversible image signal encoding method, decoding method, encoding device, decoding device, and encoding and decoding program recording medium
JP4743884B2 (en) Image coding apparatus and control method thereof
JP4039068B2 (en) Decoding processing device, decoding processing method, and computer program
JP4743883B2 (en) Image coding apparatus and control method thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070529

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070727

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070910

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

Free format text: PAYMENT UNTIL: 20100928

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100928

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110928

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110928

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120928

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120928

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130928

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees