JP2007221439A - 符号化装置、復号化装置、及びプログラム - Google Patents
符号化装置、復号化装置、及びプログラム Download PDFInfo
- Publication number
- JP2007221439A JP2007221439A JP2006039453A JP2006039453A JP2007221439A JP 2007221439 A JP2007221439 A JP 2007221439A JP 2006039453 A JP2006039453 A JP 2006039453A JP 2006039453 A JP2006039453 A JP 2006039453A JP 2007221439 A JP2007221439 A JP 2007221439A
- Authority
- JP
- Japan
- Prior art keywords
- code
- length
- encoding
- prediction
- continuous
- 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.)
- Pending
Links
Images
Landscapes
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
【課題】 より効率的な符号化処理を実現する符号化装置を提供する。
【解決手段】 画像処理装置2は、ランレングス符号化処理において、一致長及び不一致長を固定長符号で表現し、かつ、一致長及び不一致長に対して固定長符号の符号群を排他的に割り当てる。一致長及び不一致長の符号割当比率は、入力画像(例えば、ランの発生率など)に応じて変更する。これにより、固定長符号の符号空間を有効に利用でき、かつ、ビット単位の演算を必要とせず、高速な符号化が実現できる。
【選択図】図2
【解決手段】 画像処理装置2は、ランレングス符号化処理において、一致長及び不一致長を固定長符号で表現し、かつ、一致長及び不一致長に対して固定長符号の符号群を排他的に割り当てる。一致長及び不一致長の符号割当比率は、入力画像(例えば、ランの発生率など)に応じて変更する。これにより、固定長符号の符号空間を有効に利用でき、かつ、ビット単位の演算を必要とせず、高速な符号化が実現できる。
【選択図】図2
Description
本発明は、データを符号化する符号化装置に関する。
例えば、特許文献1には、同一情報が入力される状態の連続回数及び互いに異なる情報が入力される状態の連続回数を可変長符号化する情報符号化方法が開示されている。
特開2001−217722号公報
本発明は、上述した背景からなされたものであり、より効率的な符号化処理を実現する符号化装置を提供することを目的とする。
[符号化装置]
上記目的を達成するために、本発明にかかる符号化装置は、既定の予測方法を用いて、処理対象のデータを予測し、予測が連続して的中する回数を符号化する連続的中数符号化手段と、前記予測方法による予測結果が連続して外れる回数を符号化する連続外れ数符号化手段と、前記連続的中数符号化手段により生成される符号に対して、既定長のビット列で表現される符号空間の一部を割り当て、前記連続外れ数符号化手段により生成される符号に対して、前記符号空間の他部を割り当てる割当手段とを有する。
上記目的を達成するために、本発明にかかる符号化装置は、既定の予測方法を用いて、処理対象のデータを予測し、予測が連続して的中する回数を符号化する連続的中数符号化手段と、前記予測方法による予測結果が連続して外れる回数を符号化する連続外れ数符号化手段と、前記連続的中数符号化手段により生成される符号に対して、既定長のビット列で表現される符号空間の一部を割り当て、前記連続外れ数符号化手段により生成される符号に対して、前記符号空間の他部を割り当てる割当手段とを有する。
好適には、前記割当手段は、処理対象のデータに応じて、前記連続的中数符号化手段により生成される符号に対して割り当てる符号空間と、前記連続外れ数符号化手段により生成される符号に対して割り当てる符号空間との比率を変更する。
好適には、前記連続的中数符号化手段は、処理対象のデータと、直前のデータとが連続して一致する回数を符号化し、前記連続外れ数符号化種段は、処理対象のデータと、直前のデータとが連続して不一致となる回数を符号化する。
[復号化装置]
また、本発明にかかる復号化装置は、符号空間のうち、予測が連続して的中する場合の連続数に対して割り当てられた一致符号群と、予測が連続して外れた場合の連続数に対して割り当てられた不一致符号群とを判別する符号判別手段と、処理対象となる注目符号が前記符号判別手段により一致符号群に属すると判別された場合に、この注目符号に対応する連続的中数に基づいて、復号データを生成する第1の復号手段と、処理対象となる注目符号が前記符号判別手段により不一致符号群に属すると判別された場合に、この注目符号に対応する連続外れ数に基づいて、復号データを生成する第2の復号手段とを有する。
また、本発明にかかる復号化装置は、符号空間のうち、予測が連続して的中する場合の連続数に対して割り当てられた一致符号群と、予測が連続して外れた場合の連続数に対して割り当てられた不一致符号群とを判別する符号判別手段と、処理対象となる注目符号が前記符号判別手段により一致符号群に属すると判別された場合に、この注目符号に対応する連続的中数に基づいて、復号データを生成する第1の復号手段と、処理対象となる注目符号が前記符号判別手段により不一致符号群に属すると判別された場合に、この注目符号に対応する連続外れ数に基づいて、復号データを生成する第2の復号手段とを有する。
[プログラム]
また、本発明にかかるプログラムは、予測符号化方式で符号化処理を行うコンピュータにおいて、予測処理の連続的中数に対して、既定長のビット列で表現される符号空間の一部を割り当てるステップと、予測処理の連続外れ数に対して、前記符号空間の他部を割り当てるステップと、前記予測処理によって予測が連続して的中した回数を、連続的中数に割り当てられた符号空間を用いて符号化するステップと、前記予測処理によって予測が連続して外れる回数を、連続外れ回数に割り当てられた符号空間を用いて符号化するステップとを前記コンピュータに実行させる。
また、本発明にかかるプログラムは、予測符号化方式で符号化処理を行うコンピュータにおいて、予測処理の連続的中数に対して、既定長のビット列で表現される符号空間の一部を割り当てるステップと、予測処理の連続外れ数に対して、前記符号空間の他部を割り当てるステップと、前記予測処理によって予測が連続して的中した回数を、連続的中数に割り当てられた符号空間を用いて符号化するステップと、前記予測処理によって予測が連続して外れる回数を、連続外れ回数に割り当てられた符号空間を用いて符号化するステップとを前記コンピュータに実行させる。
また、本発明にかかるプログラムは、予測符号化方式で復号化処理を行うコンピュータにおいて、処理対象となる注目符号が、予測の連続的中数に対して割り当てられた一致符号群に属するか、予測の連続外れ数に対して割り当てられた不一致符号群に属するかを判別するステップと、処理対象となる注目符号が前記一致符号群に属すると判別された場合に、この注目符号に対応する連続的中数に基づいて、復号データを生成するステップと、処理対象となる注目符号が前記不一致符号群に属すると判別された場合に、この注目符号に対応する連続外れ数に基づいて、復号データを生成するステップとを前記コンピュータに実行させる。
本発明の符号化装置によれば、より効率的な符号化処理を実現することができる。
まず、本発明の理解を助けるために、その背景及び概略を説明する。なお、以下の説明では、画像データを符号化する場合を具体例として説明するが、これに限定されるものではなく、バイナリデータ又は音声データなど他のデータを符号化する場合にも本発明を適用できる。
ランレングス符号化方式(連長符号化方式)では、画素値が変化しない場合(すなわち、同一画素値が連続する場合)には、その連続数がカウントされ、カウントされた連続数及びこの画素値が被符号化シンボルとなり、画素値が変化する場合(すなわち、前後の画素値が異なる場合)には、その連続数をカウントし、カウントされた連続数及びこれらの画素値群が被符号化シンボルとなる。
ランレングス符号化方式(連長符号化方式)では、画素値が変化しない場合(すなわち、同一画素値が連続する場合)には、その連続数がカウントされ、カウントされた連続数及びこの画素値が被符号化シンボルとなり、画素値が変化する場合(すなわち、前後の画素値が異なる場合)には、その連続数をカウントし、カウントされた連続数及びこれらの画素値群が被符号化シンボルとなる。
図1(A)は、ランレングス符号化方式の符号データを例示し、図1(B)は、符号の一部を可変長符号としたランレングス符号データを例示し、図1(C)は、図1(B)の符号データで用いられる符号表を例示する図である。
図1(A)に例示するように、ランレングス符号化方式では、同一画素値が連続する場合には、一致長(すなわち、同一画素値が連続する数)と、その画素値とが被符号化シンボルとなり、一致長の符号及び画素値の符号が、それぞれ1バイトで表現される。また、画素値が変化する場合には、その旨を示す識別子(リテラル)と、不一致長(すなわち、画素値が連続して変化する数)と、これらの画素の画素値とが被符号化シンボルとなり、リテラルの符号、不一致長の符号、及び各画素値の符号が、それぞれ1バイトで表現される。
図1(A)に例示するように、ランレングス符号化方式では、同一画素値が連続する場合には、一致長(すなわち、同一画素値が連続する数)と、その画素値とが被符号化シンボルとなり、一致長の符号及び画素値の符号が、それぞれ1バイトで表現される。また、画素値が変化する場合には、その旨を示す識別子(リテラル)と、不一致長(すなわち、画素値が連続して変化する数)と、これらの画素の画素値とが被符号化シンボルとなり、リテラルの符号、不一致長の符号、及び各画素値の符号が、それぞれ1バイトで表現される。
また、図1(B)及び図1(C)に例示するように、最大不一致長と最大一致長を変化させて、可変長符号化処理を行ってもよい。この場合には、図1(A)に示したランレングス符号化よりも効率的な符号化が実現される。しかしながら、図1(B)及び図1(C)に示す符号化処理では、最大一致長及び最小不一致長に対して最短符号を、最大不一致長に最長符号を割り当てて可変長符号化を行うため、ビット単位での演算が必要となり、処理速度が遅い。
そこで、本実施形態における画像処理装置2は、最大不一致長と最大一致長との和が一定値(すなわち、固定長のビット列で表現されるデータ数)となる範囲を満たしながら、それぞれに割り当てる領域を変化させる。
より具体的には、本画像処理装置2は、図2(A)に例示するように、一致長及び不一致長を固定長符号(本例では、1バイト)で表現し、かつ、図2(B)に例示するように、一致長及び不一致長に対して、固定長符号の符号群を排他的に割り当てる。そのため、ビット単位の演算を必要とせず、高速な符号化が実現できる。
さらに、本画像処理装置2は、図2(B)の割当境界の位置を変更して、最大不一致長と最大一致長を入力画像に応じて制御することにより、より効率のよい符号化を可能にする。例えば、画像処理装置2は、一致確率が高い場合には、一致長に割り当てる符号の数を増加させ、不一致確率が高い場合には、不一致長に割り当てる符号の数を増加させる。
[ハードウェア構成]
次に、本実施形態における画像処理装置2のハードウェア構成を説明する。
図3は、本発明にかかる符号化方法及び復号化方法が適応される画像処理装置2のハードウェア構成を、制御装置20を中心に例示する図である。
図3に例示するように、画像処理装置2は、CPU202及びメモリ204などを含む制御装置20、通信装置22、HDD・CD装置などの記録装置24、並びに、LCD表示装置あるいはCRT表示装置及びキーボード・タッチパネルなどを含むユーザインターフェース装置(UI装置)26から構成される。
画像処理装置2は、例えば、プリンタ装置10に設けられた処理装置であり、通信装置22又は記録装置24などを介して画像データを取得し、取得された画像データを符号化する。
次に、本実施形態における画像処理装置2のハードウェア構成を説明する。
図3は、本発明にかかる符号化方法及び復号化方法が適応される画像処理装置2のハードウェア構成を、制御装置20を中心に例示する図である。
図3に例示するように、画像処理装置2は、CPU202及びメモリ204などを含む制御装置20、通信装置22、HDD・CD装置などの記録装置24、並びに、LCD表示装置あるいはCRT表示装置及びキーボード・タッチパネルなどを含むユーザインターフェース装置(UI装置)26から構成される。
画像処理装置2は、例えば、プリンタ装置10に設けられた処理装置であり、通信装置22又は記録装置24などを介して画像データを取得し、取得された画像データを符号化する。
[符号化プログラム]
図4は、制御装置20(図3)により実行され、本発明にかかる符号化方法を実現する符号化プログラム5の機能構成を例示する図である。
図4に例示するように、符号化プログラム5は、予測部510、符号割当部520、一致長計数部530、不一致長計数部540、及び、符号生成部550を有する。
図4は、制御装置20(図3)により実行され、本発明にかかる符号化方法を実現する符号化プログラム5の機能構成を例示する図である。
図4に例示するように、符号化プログラム5は、予測部510、符号割当部520、一致長計数部530、不一致長計数部540、及び、符号生成部550を有する。
符号化プログラム5において、予測部510は、既定の予測方法を用いて、注目データのデータ値を予測し、予測値がデータ値と一致しているか否かを符号割当部520、一致長計数部530及び不一致長計数部540に出力する。
本例の予測部510は、注目画素Xの画素値と、注目画素Xの直前画素Aの画素値とを比較して、比較結果(一致又は不一致)を符号割当部520、一致長計数部530及び不一致長計数部540に出力する。
本例の予測部510は、注目画素Xの画素値と、注目画素Xの直前画素Aの画素値とを比較して、比較結果(一致又は不一致)を符号割当部520、一致長計数部530及び不一致長計数部540に出力する。
符号割当部520は、固定長のビット列で表現される符号群の一部を、一致長に割り当て、この符号群の他部を、不一致長に割り当てる。
例えば、符号割当部520は、予測部510から入力される比較結果(一致又は不一致)に基づいて、一致長に割り当てる符号の数と、不一致長に割り当てる符号の数を変更する。例えば、既定の範囲内における一致率が高いほど、一致長に割り当てる符号の数を増加させ、これに応じて、不一致長に割り当てる符号の数を減少させる。
本例の符号割当部520は、予測部510から入力される比較結果に基づいて、直近50画素における一致率を算出し、算出された一致率に応じて、一致長及び不一致長に割り当てる符号表を切り替える。
例えば、符号割当部520は、予測部510から入力される比較結果(一致又は不一致)に基づいて、一致長に割り当てる符号の数と、不一致長に割り当てる符号の数を変更する。例えば、既定の範囲内における一致率が高いほど、一致長に割り当てる符号の数を増加させ、これに応じて、不一致長に割り当てる符号の数を減少させる。
本例の符号割当部520は、予測部510から入力される比較結果に基づいて、直近50画素における一致率を算出し、算出された一致率に応じて、一致長及び不一致長に割り当てる符号表を切り替える。
一致長計数部530は、予測部510から入力される比較結果に基づいて、予測が連続して的中する回数を計数し、計数結果(すなわち、連続的中数)を符号生成部550に出力する。
本例の一致長計数部530は、予測部510から入力される比較結果(一致又は不一致)に基づいて、画素値が一致する画素の連続数(すなわち、一致長)を計数し、その一致長を符号生成部550に出力する。
本例の一致長計数部530は、予測部510から入力される比較結果(一致又は不一致)に基づいて、画素値が一致する画素の連続数(すなわち、一致長)を計数し、その一致長を符号生成部550に出力する。
不一致長計数部540は、予測部510から入力される比較結果に基づいて、予測が連続して外れる回数を計数し、計数結果(すなわち、連続外れ数)を符号生成部550に出力する。
本例の不一致長計数部540は、予測部510から入力される比較結果(一致又は不一致)に基づいて、直前画素と画素値が一致しない画素の連続数(すなわち、不一致長)を計数し、その不一致長を符号生成部550に出力する。
本例の不一致長計数部540は、予測部510から入力される比較結果(一致又は不一致)に基づいて、直前画素と画素値が一致しない画素の連続数(すなわち、不一致長)を計数し、その不一致長を符号生成部550に出力する。
符号生成部550は、符号割当部520により一致長及び不一致長に割り当てられた固定長符号を用いて、一致長計数部530から入力される一致長、及び、不一致長計数部540から入力される不一致長を符号化する。
なお、本例の符号生成部550は、一致長又は不一致長を符号化することに加えて、図2(A)に例示するように、同一画素値が連続している場合(すなわち、一致長に対応する画素群を符号化する場合)に、この画素値902を固定長符号で符号化し、画素値が変化している場合(すなわち、不一致長に対応する画素群を符号化する場合)に、これらの画素群の画素値912A〜912Nそれぞれを固定長符号で符号化する。
なお、本例の符号生成部550は、一致長又は不一致長を符号化することに加えて、図2(A)に例示するように、同一画素値が連続している場合(すなわち、一致長に対応する画素群を符号化する場合)に、この画素値902を固定長符号で符号化し、画素値が変化している場合(すなわち、不一致長に対応する画素群を符号化する場合)に、これらの画素群の画素値912A〜912Nそれぞれを固定長符号で符号化する。
図5は、符号割当部520により選択される符号表を例示する図であり、図5(A)は、一致率が既定の中間的な範囲(50%を含む範囲)内である場合に用いられる標準符号表800を例示し、図5(B)は、一致率が上記範囲を下回る場合に用いられる低的中率符号表802を例示し、図5(C)は、一致率が上記範囲を超える場合に用いられる高的中率符号表804を例示する。
図5(A)に例示するように、標準符号表800では、一致長に割り当てられる符号数と、不一致長に割り当てられる符号数とが同一である。また、図5(B)に例示するように、一致率が低い場合に用いられる低的中率符号表802では、一致長に割り当てられる符号数が、不一致長に割り当てられる符号数よりも少ない。逆に、図5(C)に例示するように、一致率が高い場合に用いられる高的中率符号表804では、一致長に割り当てられる符号数が、不一致長に割り当てられる符号数よりも多い。
これは、入力画像を無記憶情報源であると仮定すると、最大不一致長Neは、おおよそ、不一致確率Peを用いて以下の式で表すことができる。
Ne = log(0.5) / log (Pe)
このように、不一致確率から最大不一致長を推定できる。したがって、符号割当部520は、図5に例示する符号表を、一致率又は不一致率に応じて切り替えることにより、最大一致長及び最大不一致長に応じた符号の割当てを行うことができる。なお、本例では、固定長符号で表現される符号数が256である場合(すなわち、符号長は1バイト)を具体例とするため、最大一致長Nhは、(256−Ne)となる。
これにより、所定の入力処理単位毎に、最大一致長及び最大不一致長を制御すれば、一層効率的な符号化が実現できる。
図5(A)に例示するように、標準符号表800では、一致長に割り当てられる符号数と、不一致長に割り当てられる符号数とが同一である。また、図5(B)に例示するように、一致率が低い場合に用いられる低的中率符号表802では、一致長に割り当てられる符号数が、不一致長に割り当てられる符号数よりも少ない。逆に、図5(C)に例示するように、一致率が高い場合に用いられる高的中率符号表804では、一致長に割り当てられる符号数が、不一致長に割り当てられる符号数よりも多い。
これは、入力画像を無記憶情報源であると仮定すると、最大不一致長Neは、おおよそ、不一致確率Peを用いて以下の式で表すことができる。
Ne = log(0.5) / log (Pe)
このように、不一致確率から最大不一致長を推定できる。したがって、符号割当部520は、図5に例示する符号表を、一致率又は不一致率に応じて切り替えることにより、最大一致長及び最大不一致長に応じた符号の割当てを行うことができる。なお、本例では、固定長符号で表現される符号数が256である場合(すなわち、符号長は1バイト)を具体例とするため、最大一致長Nhは、(256−Ne)となる。
これにより、所定の入力処理単位毎に、最大一致長及び最大不一致長を制御すれば、一層効率的な符号化が実現できる。
[符号化処理]
次に、画像処理装置2(符号化プログラム5)の動作を説明する。
図6は、符号化プログラム5(図4)による符号化処理(S10)のフローチャートである。
図6に示すように、ステップ100(S100)において、符号化プログラム5(図4)は、外部から、画像データが入力されると、入力された画像データにおいて走査順に注目画素Xを設定する。注目画素とは、処理対象となる画素である。
予測部510は、注目画素Xの画素値と、次の画素の画素値とを比較し、比較結果(一致又は不一致)を符号割当部520、一致長計数部530及び不一致長計数部540に出力する。
次に、画像処理装置2(符号化プログラム5)の動作を説明する。
図6は、符号化プログラム5(図4)による符号化処理(S10)のフローチャートである。
図6に示すように、ステップ100(S100)において、符号化プログラム5(図4)は、外部から、画像データが入力されると、入力された画像データにおいて走査順に注目画素Xを設定する。注目画素とは、処理対象となる画素である。
予測部510は、注目画素Xの画素値と、次の画素の画素値とを比較し、比較結果(一致又は不一致)を符号割当部520、一致長計数部530及び不一致長計数部540に出力する。
ステップ105(S105)において、符号割当部520は、予測部510から入力される比較結果に基づいて、既定の範囲の画素群における一致率を算出し、算出された一致率に基づいて、図5に例示した符号表のいずれかを選択する。
ステップ110(S110)において、符号化プログラム5は、注目画素Xと次の画素とが同一の画素値を有する場合には、S115の処理に移行し、注目画素Xと次の画素とが互いに異なる画素値を有する場合には、S120の処理に移行する。
ステップ115(S115)において、一致長計数部530は、予測部510から一致した旨の比較結果が入力されると、一致長のカウントを開始する。
符号化プログラム5は、予測部510により不一致と判断されるまで、注目画素Xを走査順に更新していき、予測部510は、順次更新される注目画素Xの画素値と、その次の画素の画素値とを比較して、比較結果を符号割当部520、一致長計数部530及び不一致長計数部540に出力する。
予測部510がいずれかの注目画素Xについて不一致であると判断すると、一致長計数部530は、これまでにカウントした一致長を符号生成部550に出力する。
符号化プログラム5は、予測部510により不一致と判断されるまで、注目画素Xを走査順に更新していき、予測部510は、順次更新される注目画素Xの画素値と、その次の画素の画素値とを比較して、比較結果を符号割当部520、一致長計数部530及び不一致長計数部540に出力する。
予測部510がいずれかの注目画素Xについて不一致であると判断すると、一致長計数部530は、これまでにカウントした一致長を符号生成部550に出力する。
ステップ120(S120)において、不一致長計数部540は、予測部510から不一致である旨の比較結果が入力されると、不一致長のカウントを開始する。
符号化プログラム5は、予測部510により一致する判断されるまで、注目画素Xを走査順に更新していき、予測部510は、順次更新される注目画素Xの画素値と、その次の画素の画素値とを比較して、比較結果を符号割当部520、一致長計数部530及び不一致長計数部540に出力する。
予測部510がいずれかの注目画素Xについて一致すると判断すると、不一致長計数部540は、これまでにカウントした不一致長を符号生成部550に出力する。
符号化プログラム5は、予測部510により一致する判断されるまで、注目画素Xを走査順に更新していき、予測部510は、順次更新される注目画素Xの画素値と、その次の画素の画素値とを比較して、比較結果を符号割当部520、一致長計数部530及び不一致長計数部540に出力する。
予測部510がいずれかの注目画素Xについて一致すると判断すると、不一致長計数部540は、これまでにカウントした不一致長を符号生成部550に出力する。
ステップ125(S125)において、符号生成部550は、符号割当部520により選択された符号表を用いて、一致長計数部530から入力される一致長、又は、不一致長計数部540から入力される不一致長を符号化する。
さらに、符号生成部550は、一致長を符号化した場合には、この一致長に相当する画素群の画素値(1つの画素値)を符号化し、一致長の符号900(図2)と、画素値の符号902(図2)とを互いに対応付けて外部に出力し、不一致長を符号化した場合には、この不一致長に相当する画素群の各画素値(少なくとも1つの画素値)を符号化し、不一致長の符号910(図2)と、画素値の符号912(図2)とを互いに対応付けて外部に出力する。
さらに、符号生成部550は、一致長を符号化した場合には、この一致長に相当する画素群の画素値(1つの画素値)を符号化し、一致長の符号900(図2)と、画素値の符号902(図2)とを互いに対応付けて外部に出力し、不一致長を符号化した場合には、この不一致長に相当する画素群の各画素値(少なくとも1つの画素値)を符号化し、不一致長の符号910(図2)と、画素値の符号912(図2)とを互いに対応付けて外部に出力する。
ステップ130(S130)において、符号化プログラム5は、全ての画素を注目画素Xとして符号化したか否かを判断し、全ての画素が符号化された場合には、符号化処理(S10)を終了し、未処理の画素が存在する場合には、S100の処理に戻って、次の画素を注目画素Xとする。
[復号化プログラム]
図7は、制御装置20(図3)により実行され、本発明にかかる復号化方法を実現する復号化プログラム6の機能構成を例示する図である。
図7に例示するように、復号化プログラム6は、符号表決定部600、復号化部610、ラン復元部620、リテラル復元部630、及び、データ統合部550予測部510、符号割当部520、一致長計数部530、不一致長計数部540、及び、符号生成部550を有する。
図7は、制御装置20(図3)により実行され、本発明にかかる復号化方法を実現する復号化プログラム6の機能構成を例示する図である。
図7に例示するように、復号化プログラム6は、符号表決定部600、復号化部610、ラン復元部620、リテラル復元部630、及び、データ統合部550予測部510、符号割当部520、一致長計数部530、不一致長計数部540、及び、符号生成部550を有する。
復号化プログラム6において、符号表決定部600(符号判別手段)は、入力された符号データに基づいて、一致長及び不一致長それぞれに対する符号の割当範囲を特定し、特定された符号割当範囲を復号化部610に通知する。
本例の符号表決定部600は、順に復号化される一致長及び不一致長に基づいて、所定の範囲内にある画素群の一致率を算出し、算出された一致率に応じて、図5に示されたいずれかの符号表を選択する。
本例の符号表決定部600は、順に復号化される一致長及び不一致長に基づいて、所定の範囲内にある画素群の一致率を算出し、算出された一致率に応じて、図5に示されたいずれかの符号表を選択する。
復号化部610は、入力される符号データを固定長のビット列(本例では1バイト)に分割し、分割されたビット列(符号)を、符号表決定部600により選択された符号表を用いて復号化し、一致長、不一致長及び画素値を生成する。
復号化部610は、一致長が復号化された場合には、その後に続く1つの符号を画素値として復号化し、復号化された一致長及びその画素値をラン復元部620に出力し、不一致長が復号化された場合には、その後に続く複数の符号(すなわち、不一致長に相当する数の符号)を複数の画素値として復号化し、復号化された不一致長及びその画素値をリテラル復元部630に出力する。
なお、復号化部610は、復号化された一致長又は不一致長を符号表決定部600に出力する。
復号化部610は、一致長が復号化された場合には、その後に続く1つの符号を画素値として復号化し、復号化された一致長及びその画素値をラン復元部620に出力し、不一致長が復号化された場合には、その後に続く複数の符号(すなわち、不一致長に相当する数の符号)を複数の画素値として復号化し、復号化された不一致長及びその画素値をリテラル復元部630に出力する。
なお、復号化部610は、復号化された一致長又は不一致長を符号表決定部600に出力する。
ラン復元部620は、復号化部610から入力される一致長及び画素値に基づいて、同一画素値からなる画素群を復元し、復元された画素群の画素値をデータ統合部640に出力する。
より具体的には、ラン復元部620は、入力された一致長だけ、入力された画素値を複製してデータ統合部640に出力する。
より具体的には、ラン復元部620は、入力された一致長だけ、入力された画素値を複製してデータ統合部640に出力する。
リテラル復元部630は、復号化部610から入力される画素値(不一致長に相当する画素群の画素値)を配列して、これらの画素群の画素値をデータ統合部640に出力する。
データ統合部640は、ラン復元部620から入力される画素群、及び、リテラル復元部630から入力される画素群を、復号化される順序で統合し、統合された画像データを外部に出力する。
[復号化処理]
次に、画像処理装置2(復号化プログラム6)の動作を説明する。
図8は、復号化プログラム6(図7)による復号化処理(S20)のフローチャートである。
図8に示すように、ステップ200(S200)において、復号化部610(図7)は、入力される符号データを順に既定長の符号に分割する。
符号表決定部600は、復号化部610から入力される一致長及び不一致長に基づいて、既定範囲内の画素群における一致率を算出し、算出された一致率に応じて、図5に示されたいずれかの符号表を選択する。なお、一致率の初期値は、50%に設定されており、復号化された一致長及び不一致長の総和が基準値に達したことを条件として、上記符号表の選択を開始する。
次に、画像処理装置2(復号化プログラム6)の動作を説明する。
図8は、復号化プログラム6(図7)による復号化処理(S20)のフローチャートである。
図8に示すように、ステップ200(S200)において、復号化部610(図7)は、入力される符号データを順に既定長の符号に分割する。
符号表決定部600は、復号化部610から入力される一致長及び不一致長に基づいて、既定範囲内の画素群における一致率を算出し、算出された一致率に応じて、図5に示されたいずれかの符号表を選択する。なお、一致率の初期値は、50%に設定されており、復号化された一致長及び不一致長の総和が基準値に達したことを条件として、上記符号表の選択を開始する。
ステップ205(S205)において、復号化部610は、符号表決定部600により選択された符号表を用いて、先頭の符号を復号化する。ここで復号化されるデータは、一致長又は不一致長である。
ステップ210(S210)において、復号化プログラム6は、復号化された符号が一致長である場合に、S215の処理に移行し、復号化された符号が不一致長である場合に、S220の処理に移行する。
ステップ215(S215)において、復号化部610は、一致長の次に続く符号を画素値として復号化し、復号化された一致長及び画素値をラン復元部620に出力する。
ラン復元部620は、復号化部610から入力された画素値を、入力された一致長だけ複製して、データ統合部640に出力する。
ラン復元部620は、復号化部610から入力された画素値を、入力された一致長だけ複製して、データ統合部640に出力する。
ステップ220(S220)において、復号化部610は、不一致長の次に続く、不一致長の数に応じた符号を画素値として復号化し、復号化された画素値(不一致長に相当する数の画素値)をリテラル復元部630に出力する。
リテラル復元部630は、復号化部610から入力された画素値を順に配列して、データ統合部640に出力する。
リテラル復元部630は、復号化部610から入力された画素値を順に配列して、データ統合部640に出力する。
ステップ225(S225)において、復号化プログラム6は、全ての符号が復号化されたか否かを判断し、全ての符号が復号化された場合には、データ統合部640により統合された画像データを外部に出力して、復号化処理(S20)を終了し、未処理の符号が存在する場合には、S200に戻って、次の符号を復号化する。
以上説明したように、本実施形態における画像処理装置2は、一致長及び不一致長を固定長の符号で符号化することにより、符号化処理及び復号化処理を高速化できる。
また、本画像処理装置2は、固定長のビット列で表現される符号群を一致長及び不一致長に対して排他的に割り当てることにより、図1(A)に示した固定長符号データよりも符号量を小さくすることができる。
また、本画像処理装置2は、一致率(すなわち、予測の的中率)に応じて、一致長及び不一致長に割り当てる符号の割合を変更することにより、固定長のビット列で表現される符号群を有効に活用し、効率的な符号化処理を実現することができる。特に、同一の画像内に、画素値の変化が少ない画像領域(例えば、コンピュータグラフィックス)と、画素値の変化が多い画像領域(例えば、写真画像、スキャン画像など)とが混在する場合などに好適である。
また、本画像処理装置2は、固定長のビット列で表現される符号群を一致長及び不一致長に対して排他的に割り当てることにより、図1(A)に示した固定長符号データよりも符号量を小さくすることができる。
また、本画像処理装置2は、一致率(すなわち、予測の的中率)に応じて、一致長及び不一致長に割り当てる符号の割合を変更することにより、固定長のビット列で表現される符号群を有効に活用し、効率的な符号化処理を実現することができる。特に、同一の画像内に、画素値の変化が少ない画像領域(例えば、コンピュータグラフィックス)と、画素値の変化が多い画像領域(例えば、写真画像、スキャン画像など)とが混在する場合などに好適である。
[変形例]
次に、上記実施形態の変形例を説明する。
図9(A)は、符号表の変形例を例示し、図9(B)は、最大一致長が符号の割当て範囲を超えた場合の符号データを例示し、図9(C)は、最大不一致長が符号の割当て範囲を超えた場合の符号データを例示する図である。
符号割当部520(図4)は、図9(A)に例示するように、固定ビット長で表現される符号群の一部(本例では、「00000000」、及び、「11111111」)を、最大一致長又は最大不一致長が符号の割当て範囲を超えた旨を示す情報(本例では、最大一致長がその符号割当範囲を超えたことを示す一致長フロー、及び、最大不一致長がその符号割当範囲を超えたことを示す不一致長フロー)に固定的に割り当ててもよい。
この場合、符号生成部550は、一致長計数部530から入力される一致長がその符号割当範囲(図9の例では、2〜128の範囲)を超えると、図9(B)に例示するように、一致長フローを示す符号「00000000」を出力し、次に、固定長符号全体(1バイトの符号全体)で一致長を表現する符号を出力し、その後で、一致長の画素値を表現する符号を出力する。また、符号生成部550は、一致長計数部530から入力される不一致長がその符号割当範囲(図9の例では、1〜127の範囲)を超えると、図9(C)に例示するように、不一致長フローを示す符号「11111111」を出力し、次に、固定長符号全体(1バイトの符号全体)で不一致長を表現する符号を出力し、その後で、不一致長の画素値を表現する符号を出力する。
一致率と最大一致長及び最大不一致長とは高い相関関係を有するが、一致率に基づいて一致長及び不一致長に符号を割り当てても、最大一致長又は最大不一致長が符号の割当範囲を超える場合がありうる。そこで、本変形例の符号化プログラム5は、一致長フロー及び不一致長フローを示す符号を用意することにより、最大一致長又は最大不一致長が符号割当範囲を超える場合にも正常に符号化処理を行うことができる。
次に、上記実施形態の変形例を説明する。
図9(A)は、符号表の変形例を例示し、図9(B)は、最大一致長が符号の割当て範囲を超えた場合の符号データを例示し、図9(C)は、最大不一致長が符号の割当て範囲を超えた場合の符号データを例示する図である。
符号割当部520(図4)は、図9(A)に例示するように、固定ビット長で表現される符号群の一部(本例では、「00000000」、及び、「11111111」)を、最大一致長又は最大不一致長が符号の割当て範囲を超えた旨を示す情報(本例では、最大一致長がその符号割当範囲を超えたことを示す一致長フロー、及び、最大不一致長がその符号割当範囲を超えたことを示す不一致長フロー)に固定的に割り当ててもよい。
この場合、符号生成部550は、一致長計数部530から入力される一致長がその符号割当範囲(図9の例では、2〜128の範囲)を超えると、図9(B)に例示するように、一致長フローを示す符号「00000000」を出力し、次に、固定長符号全体(1バイトの符号全体)で一致長を表現する符号を出力し、その後で、一致長の画素値を表現する符号を出力する。また、符号生成部550は、一致長計数部530から入力される不一致長がその符号割当範囲(図9の例では、1〜127の範囲)を超えると、図9(C)に例示するように、不一致長フローを示す符号「11111111」を出力し、次に、固定長符号全体(1バイトの符号全体)で不一致長を表現する符号を出力し、その後で、不一致長の画素値を表現する符号を出力する。
一致率と最大一致長及び最大不一致長とは高い相関関係を有するが、一致率に基づいて一致長及び不一致長に符号を割り当てても、最大一致長又は最大不一致長が符号の割当範囲を超える場合がありうる。そこで、本変形例の符号化プログラム5は、一致長フロー及び不一致長フローを示す符号を用意することにより、最大一致長又は最大不一致長が符号割当範囲を超える場合にも正常に符号化処理を行うことができる。
また、上記実施形態では、符号化処理において、近傍画素の一致率に応じて符号表を選択し、復号化処理において、復号化された一致長及び不一致長に基づいて一致率を算出し、算出された一致率に応じて(すなわち、近傍画素の状況に応じて)符号表を選択しているが、これに限定されるものではなく、例えば、符号データのヘッダ又はマーカなどに、符号の割当を指定する情報を埋め込むよう構成してもよい。
2・・・画像処理装置
5・・・符号化プログラム
510・・・予測部
520・・・符号割当部
530・・・一致長計数部
540・・・不一致長計数部
550・・・符号生成部
6・・・復号化プログラム
600・・・符号表決定部
610・・・復号化部
620・・・ラン復元部
630・・・リテラル復元部
640・・・データ統合部
5・・・符号化プログラム
510・・・予測部
520・・・符号割当部
530・・・一致長計数部
540・・・不一致長計数部
550・・・符号生成部
6・・・復号化プログラム
600・・・符号表決定部
610・・・復号化部
620・・・ラン復元部
630・・・リテラル復元部
640・・・データ統合部
Claims (6)
- 既定の予測方法を用いて、処理対象のデータを予測し、予測が連続して的中する回数を符号化する連続的中数符号化手段と、
前記予測方法による予測結果が連続して外れる回数を符号化する連続外れ数符号化手段と、
前記連続的中数符号化手段により生成される符号に対して、既定長のビット列で表現される符号空間の一部を割り当て、前記連続外れ数符号化手段により生成される符号に対して、前記符号空間の他部を割り当てる割当手段と
を有する符号化装置。 - 前記割当手段は、処理対象のデータに応じて、前記連続的中数符号化手段により生成される符号に対して割り当てる符号空間と、前記連続外れ数符号化手段により生成される符号に対して割り当てる符号空間との比率を変更する
請求項1に記載の符号化装置。 - 前記連続的中数符号化手段は、処理対象のデータと、直前のデータとが連続して一致する回数を符号化し、
前記連続外れ数符号化種段は、処理対象のデータと、直前のデータとが連続して不一致となる回数を符号化する
請求項1又は2に記載の符号化装置。 - 符号空間のうち、予測が連続して的中する場合の連続数に対して割り当てられた一致符号群と、予測が連続して外れた場合の連続数に対して割り当てられた不一致符号群とを判別する符号判別手段と、
処理対象となる注目符号が前記符号判別手段により一致符号群に属すると判別された場合に、この注目符号に対応する連続的中数に基づいて、復号データを生成する第1の復号手段と、
処理対象となる注目符号が前記符号判別手段により不一致符号群に属すると判別された場合に、この注目符号に対応する連続外れ数に基づいて、復号データを生成する第2の復号手段と
を有する復号化装置。 - 予測符号化方式で符号化処理を行うコンピュータにおいて、
予測処理の連続的中数に対して、既定長のビット列で表現される符号空間の一部を割り当てるステップと、
予測処理の連続外れ数に対して、前記符号空間の他部を割り当てるステップと、
前記予測処理によって予測が連続して的中した回数を、連続的中数に割り当てられた符号空間を用いて符号化するステップと、
前記予測処理によって予測が連続して外れる回数を、連続外れ回数に割り当てられた符号空間を用いて符号化するステップと
を前記コンピュータに実行させるプログラム。 - 予測符号化方式で復号化処理を行うコンピュータにおいて、
処理対象となる注目符号が、予測の連続的中数に対して割り当てられた一致符号群に属するか、予測の連続外れ数に対して割り当てられた不一致符号群に属するかを判別するステップと、
処理対象となる注目符号が前記一致符号群に属すると判別された場合に、この注目符号に対応する連続的中数に基づいて、復号データを生成するステップと、
処理対象となる注目符号が前記不一致符号群に属すると判別された場合に、この注目符号に対応する連続外れ数に基づいて、復号データを生成するステップと
を前記コンピュータに実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006039453A JP2007221439A (ja) | 2006-02-16 | 2006-02-16 | 符号化装置、復号化装置、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006039453A JP2007221439A (ja) | 2006-02-16 | 2006-02-16 | 符号化装置、復号化装置、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007221439A true JP2007221439A (ja) | 2007-08-30 |
Family
ID=38498210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006039453A Pending JP2007221439A (ja) | 2006-02-16 | 2006-02-16 | 符号化装置、復号化装置、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007221439A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012205058A (ja) * | 2011-03-25 | 2012-10-22 | Fuji Xerox Co Ltd | 画像処理装置及び画像処理プログラム |
-
2006
- 2006-02-16 JP JP2006039453A patent/JP2007221439A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012205058A (ja) * | 2011-03-25 | 2012-10-22 | Fuji Xerox Co Ltd | 画像処理装置及び画像処理プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5221047B2 (ja) | 圧縮率の向上のために改善されたコンテキストモデル選択を使用するcabac符号化方法及び装置、並びにcabac復号化方法及び装置 | |
JP3459030B2 (ja) | 符号化システム | |
EP1832000B1 (en) | Device and data method for selective compression and decompression and data format for compressed data | |
US7791513B2 (en) | Adaptive combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems | |
US5844508A (en) | Data coding method, data decoding method, data compression apparatus, and data decompression apparatus | |
US10547324B2 (en) | Data compression coding method, apparatus therefor, and program therefor | |
US20090019071A1 (en) | Blocking for combinatorial coding/decoding for electrical computers and digital data processing systems | |
JP4618436B2 (ja) | 符号化装置、復号化装置、符号化方法、復号化方法、及びプログラム | |
JPH0793586B2 (ja) | データ圧縮モデル選択方法及びシステム | |
US20090016453A1 (en) | Combinatorial coding/decoding for electrical computers and digital data processing systems | |
JP2009540670A (ja) | データ符号化 | |
WO2009009574A2 (en) | Blocking for combinatorial coding/decoding for electrical computers and digital data processing systems | |
US20090195420A1 (en) | Fifo radix coder for electrical computers and digital data processing systems | |
JP4893957B2 (ja) | 符号化装置、復号化装置、符号化方法及びプログラム | |
JPH06315089A (ja) | 符号化方法及びシステム | |
CN116018647A (zh) | 通过基于可配置机器学习的算术编码进行的基因组信息压缩 | |
US6657564B2 (en) | Method and apparatus for compressing data in which dictionary sizes are reduced | |
JPH11340838A (ja) | 符号化装置および復号装置 | |
JPH1098732A (ja) | 画像符号化装置、画像復号化装置、画像符号化方法、画像復号化方法、及び媒体 | |
JP4893956B2 (ja) | 符号化装置、復号化装置、符号化方法及びプログラム | |
JP2007221439A (ja) | 符号化装置、復号化装置、及びプログラム | |
KR20180067956A (ko) | 데이터 압축 장치 및 방법 | |
JP2006311055A (ja) | 符号化装置、復号化装置、符号化方法、復号化方法及びプログラム | |
JP3801501B2 (ja) | 符号化装置及び復号装置及び符号化・復号装置及び符号化方法及び復号方法及び符号化・復号方法及びプログラム | |
JP2007336056A (ja) | 符号化装置、符号化方法及びプログラム |