JP3847891B2 - 符号化装置及び方法及び方法を記憶した記憶媒体 - Google Patents
符号化装置及び方法及び方法を記憶した記憶媒体 Download PDFInfo
- Publication number
- JP3847891B2 JP3847891B2 JP9219297A JP9219297A JP3847891B2 JP 3847891 B2 JP3847891 B2 JP 3847891B2 JP 9219297 A JP9219297 A JP 9219297A JP 9219297 A JP9219297 A JP 9219297A JP 3847891 B2 JP3847891 B2 JP 3847891B2
- Authority
- JP
- Japan
- Prior art keywords
- encoding
- value
- prediction
- target pixel
- pixel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/004—Predictors, e.g. intraframe, interframe coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Description
【発明の属する技術分野】
本発明は画像データの符号化を行う符号化装置及び方法及び方法を記憶した記憶媒体に関するものである。
【0002】
【従来の技術】
従来、画像符号化装置で使用される画像符号化方式の一つとして予測符号化方式がある。
【0003】
予測符号化方式は、符号化対象画素の画素値を周囲の画素から予測し、予測誤差をエントロピ−符号化するものである。これは予測方式を幾つか用意し、周囲の画素に応じて予測方式を適応的に選択してエントロピ−符号化するなど、予測符号化方式をベ−スとした種々の改良方式が提案されている。
【0004】
【発明が解決しようとする課題】
しかしながら、予測値と符号化対象画素値との予測誤差をエントロピー符号化する場合において、予測誤差Diffが同じ絶対値を有するにもかかわらず符号長が異なる様なエントロピ−符号化に対して、符号化効率を良くする為に依然改善の余地があった。
【0005】
本発明は上記従来例に鑑みて成されたものであり、予測値と符号化対象画素値との予測誤差をエントロピー符号化する様な場合において、符号化効率を更に向上する為の構成を提供することを目的とする。
【0006】
具体的には、予測値と符号化対象画素値との予測誤差をエントロピー符号化する様な予測符号化モードを含む複数の符号化モードを切り換えて使用するものにおいて、効率良く符号化を行うことを目的とする。
【0007】
【課題を解決するための手段】
上述の課題を解決するために本発明の符号化装置によれば、ラスタースキャン順に入力された画素を順次符号化する符号化装置であって、符号化対象画素の周囲画素の状態を判別する状態判別手段と、符号化対象画素の周囲画素に基づいて第1の予測アルゴリズムで予測値を発生し、該予測値と前記符号化対象画素値との予測誤差をGolomb−Rice符号化する第1符号化手段と、ランレングス値RLを保持し、符号化対象画素と直前に符号化された画素と画素値が一致する場合にはランレングス値RLをカウントアップし、不一致の場合にはランレングス値RLをMelcode符号化する第2符号化手段と、符号化対象画素の周囲画素に基づいて第1とは異なる第2の予測アルゴリズムで予測値を発生し、該予測値と前記符号化対象画素値との予測誤差をGolomb−Rice符号化する第3符号化手段と、各符号化対象画素に対して、符号化対象画素の周辺画素の状態及びランレングス値RLに基づいて第1及び第2符号化手段の何れか一方の符号化を施し、第2符号化手段の符号化時に前記不一致の場合には更に前記第3符号化手段による符号化を施す符号化モード選択手段とを備え、前記第3符号化手段は、Golomb−Rice符号化に用いられるkパラメータの値が0である場合で、かつ該第3符号化手段による符号化において符号化対象画素の前画素までに対する正の予測誤差と負の予測誤差のうちでより多く発生している方に長い符号長が割り当てられている場合に、前記符号化対象画素に対応する予測誤差の正負の符号を反転させることを特徴とする。
【0008】
【発明の実施の形態】
(第1の実施の形態)
次に、本発明の第1の実施の形態について図面を参照して詳細に説明する。
【0009】
図1に本発明に係る第1の実施の形態の構成図を示す。同図において100は信号を入力するための入力部、101は信号線、102は予測変換回路、104はGolomb−Rice符号化回路、105は予測変換回路、106は符号予測変換回路、107はGolomb−Rice符号化回路、108はランレングスカウンタ、109はMelcode符号化回路、110は状態判別回路、111はモ−ドセレクタ、112はスイッチ、113はスイッチ、114は信号線、115は2ライン分の画像デ−タを格納するバッファである。
【0010】
本実施の形態では3つのモ−ドを切り換えて符号化処理を行なう。具体的には、1つ目のモ−ドとして予測変換回路102及びGolomb−Rice(ゴロ−ムライス)符号化回路104で符号化処理を行なうノ−マルモ−ド、2つ目のモ−ドとしてランレングスカウンタ108及びMelcode(メルコ−ド)符号化回路109により符号化処理するランレングスモ−ド、3つ目のモ−ドとして予測変換回路105及び符号予測変換回路106及びGolomb−Rice符号化回路107により符号化処理を行なうラン終端モ−ドである。
【0011】
次に、1画素8ビット(0から255の値)のモノクロ画像信号を符号化する場合を例に、本実施の形態での各部の動作を順に説明する。しかしながら、本発明はこれに限らずRGBの各8ビットの色成分、又はLabの各8ビットの輝度色度成分からなる多値カラ−画像を符号化する場合にも適用でき、各成分を上記モノクロ画像信号と同様に符号化すればよい。
【0012】
また各成分の符号化切換単位は、画面毎に行うこともでき、これによれば画像全体の様子を復号化側で早めに確認することが可能となる。また各成分の符号化切換単位は、画素毎、1ライン毎、複数ラインから成るバンド毎に行うこともでき、これによれば部分的ではあるが完全なカラー画像を早めに見ることができる。
【0013】
なお、バッファ115の内部の値は初期値をすべて0に設定しておくものとする。
【0014】
まず、入力部100から符号化対象となる画素(符号化対象画素)がラスタ−スキャン順に入力され、信号線101を通じてスイッチ112、バッファ115へ入力される。
【0015】
バッファ115は信号線101から順次入力される画像デ−タを2ライン分格納する。この2ラインは符号化対象画素のラインとその1つ前のラインである。状態判別回路110は、符号化対象画素の周辺画素の状態を表す状態番号Sとその位相を表す位相フラグRを生成するものであり、以下の処理を行う。まず、符号化対象画素の周辺画素a,b,c,dに対応する画素デ−タをバッファ115から読み出す。
【0016】
図2に符号化対象画素xに対する周辺画素a,b,c,dの位置関係を示す。図2において周辺画素a,b,c,dは、符号化対象画素xに対する既に符号化済みの画素である。次に読み出した画像デ−タa,b,c,dを用いてd−b,b−c,c−aを求め、各々図3に示す対応に従って−4、−3、−2、−1、0、1、2、3、4の9レベルの値に量子化し、量子化値q(d−b),q(b−c),q(c−a)を求める。
【0017】
次に、q(d−b)×81+q(b−c)×9+q(c−a)の計算式により周辺画素の状態を表す状態番号Sを生成する。次に状態番号Sの符号の正負を調べ、正である場合には位相フラグを0に設定し、負である場合には位相フラグを1に設定すると共に状態番号Sの正負を反転(正の値に反転)する。以上の処理により、0から365までの値をとる状態番号Sと、0または1の値をとる位相フラグRが生成され、出力される。
【0018】
モ−ドセレクタ111は状態判別回路110の生成された状態番号Sとランレングスカウンタ108の生成するラン長RL、符号化制御信号Qに基づいて、符号化モ−ドを選択し、スイッチ112およびスイッチ113の切換制御を行う。ランレングスカウンタ108からのラン長RLの初期値は0とする。
【0019】
図8に符号化対象画素の1画素に対するモ−ドセレクタ111による全体的な符号化モ−ド制御の流れを示す。なお、以下の各ステップの詳細な動作は後述する。
【0020】
まずSTEP801においてモ−ドセレクタ111は、最初に符号化対象画素に対応する状態番号Sとラン長RLを入力し、S≠0かつRL=0と判別した場合にはSTEP802へ、それ以外の場合にはSTEP803へ処理を進める。
【0021】
STEP802ではスイッチ112を端子Cに、スイッチ113を端子C’に接続し、ノ−マルモ−ドの符号化を行なう。一方、STEP803ではスイッチ112を端子Aに、スイッチ113を端子A’に接続し、ランレングスモ−ドの符号化即ちラン長の符号化を行う。ランレングスモ−ドの詳細な符号化処理については後述するが、ランレングスモ−ドで実際に符号が出力されるのは画素毎ではなくラン長が確定した場合、すなわち同一画素値の連続がとぎれた場合のみである。この場合、符号化制御信号cの値は’0’から’1’となる。
【0022】
ステップ803の後、ステップ804では符号化制御信号cの値を調べ、c=1の場合にはステップ805へと処理を進める。ステップ805ではスイッチ112を端子Bに、スイッチ114を端子B’に接続し、ラン終端モ−ドでの符号化処理を行なう。以上の制御を1画素毎に繰り返して行い、3つの符号化モ−ドを選択して符号化処理する。
【0023】
上記3つの符号化モードを切り換える理由、即ち3つの符号化モードの役割について簡単に述べる。
【0024】
ノーマルモードは、予測変換した場合の予測誤差がラプラス分布になるであろうと推測される画素の符号化に適用されるものである。但し、同一輝度レベルの連続が期待される様な場合(周辺画素が同一輝度レベルであるような場合)にはランレングスモードに切り換えることにより、更に符号化効率を上げるものである。
【0025】
ランレングスモードは、同一輝度レベルの連続が期待される様な場合に用いられるモードであり、予測誤差を符号化するのではなく画素値のラン長を符号化(ランレングス符号化)する。これにより、前記ノーマルモード(予測誤差のHuffman符号化,Golomb-Rice符号化などを用いた場合)では1サンプル当たり1ビット以下では符号化できないが、ランレングスモードでは1サンプル当たり1ビット以下での符号化も可能となり、符号化効率が良くなる。
【0026】
ラン終端モードは、同一輝度レベルのランが終端した際の符号化対象画素を符号化するものである。また、この画素の値は、ランレングス符号化におけるラン長の終端であるから、直前の画素値ではないことが分かっている。そのため、ノーマルモードのように直前の画素値を予測値とした場合には、予測誤差0は発生せず符号化効率が良くならない様な特殊な状態である。この様な状態であることを考慮して、ランレングスモードが終わった画素、即ち直前の画素との画素値が変化した符号化対象画素はノーマルモードではなくラン終端モードにより符号化を行う。また、上記状態における符号化対象画素を予測符号化した場合には、予測誤差の分布は離散的になることが多く、ラプラス分布からはほど遠いものとなることが推測される。このような条件下ではノーマルモードで用いる後述の予測値修正はあまり有効でないので、これを用いずに符号化する。そして次の符号化対象画素からは直前の画素値を予測値として符号化しても十分符号化効率が良くなる。
【0027】
以下上述した3つの各符号化モードについて個別に説明する。
【0028】
まず、予測変換回路102とGolomb−Rice符号化回路104により符号化処理を行なうノ−マルモ−ドの符号化処理について説明する。
【0029】
図1の予測変換回路102は、符号化対象画素の周囲画素a,b,cから符号化対象画素の画素値を予測し、この予測により発生した予測値と符号化対象画素の実際の画素値との差分(予測誤差)Diff及び後述するパラメ−タkを生成する。図4に予測変換回路102の内部構成図を示す。
【0030】
図4において401は予測器、402はエラ−フィ−ドバック回路、403は予測誤差生成回路、404はメモリ、405はパラメ−タ更新回路、406はkパラメ−タ生成回路である。また、図1には図示されていないが予測変換回路102には図1のバッファ115から周辺画素a,b,cの画素値のデータ、状態判別回路110から状態Sと位相フラグRが入力される。また、スイッチ112の端子Cから符号化対象画素の画素値xが入力される。
【0031】
メモリ404には個々の状態番号Sに対する4つのパラメ−タN,A,Bγ,Cαが格納される。これらの値は符号化の開始時にN=1,A=4,Bγ=Cα=0に初期化される。なお、Nは状態Sの生起回数であり、Aは状態Sにおける予測誤差の絶対値の累計であり、Bγは状態Sにおける予測誤差の累計であり、Cαは予測値を修正する為の修正値である。
【0032】
以下、図4を用いて予測変換回路102の動作を説明する。まず、予測器401はバッファ115から符号化対象画素の周辺画素a,b,c(位置は図2参照)の画素値を入力し、この画素値a,b,cに基づいて予測値pを生成する。予測値pは以下の式により求める。
【0033】
【0034】
エラ−フィ−ドバック回路402はメモリ404に格納される状態Sにおける後述する予測修正値Cαを用いて予測値pを修正し、修正予測誤差p’を生成する。即ち、状態判別回路110から入力される位相フラグRが0ならばp’=p+Cαとし、1ならばp’=p−Cαとする。更に、p’が0未満の場合にはp’=0とし、p’が255以上の場合にはp’=255と制限する。
【0035】
予測誤差生成回路403は符号化対象画素の画素値xと修正予測値p’の差分をとり、予測誤差Diffを求める。位相フラグRが0の場合にはDiff=x−p’とし、位相フラグRが1の場合にはDiff=p’−xとする。予測誤差生成回路403はDiffが−128未満の場合にはDiffに255を加え、Diffが128以上の場合にはDiffから255を引くことにより、Diffの値を−128から127内で表現することができる。
【0036】
kパラメ−タ生成回路406は、状態Sの生起回数Nと、状態Sでの予測誤差の絶対値の累加値Aをメモリ404から読み出し、min(k|N×2^k>=A)によりGolomb−Rice符号化時に用いるパラメ−タkの値を求める。ここで、min(a|b)は条件bを満たす最小のaを意味する。
【0037】
パラメ−タ更新回路405は、状態Sにおける4つのパラメ−タN,Cα,A,Bγを更新し、N’,Cα’,A’,Bγ’を生成する。まず、Bγ’=Bγ+Diff,A’=A+|Diff|によりBγ’とA’を求める。次にNの値を調べ、Nがしきい値Th1に等しい場合にはN,A,Bγを1/2にする。しきい値Th1はA,Bγ,Nを一定範囲に限定するためのものであり、あらかじめ設定しておく(例えばTh1=64)。次に、N’=N+1によりNを更新する。
【0038】
図12に予測修正値Cαの更新手順を示す。Cα’にCαの値を写した後、まずSTEP1201において、Bγ’が−N以下であるかどうかを判定し、−N以下の場合にはSTEP1203へ、そうでない場合にはSTEP1202へ処理を進める。STEP1203ではCα’の値を−128と比較し、−128より大きい場合にはCα’から1を引く(STEP1204)。
【0039】
次に、Bγ’にNを加える(STEP1205)。Bγ’が−N以下である場合にはBγ’=−N+1とする(STEP1206,1207)。STEP1202ではBγ’を0と比較し、Bγ’が0以上の場合にはSTEP1208へと処理を進め、そうでない場合には更新処理を終了する。STEP1208ではCα’の値を127と比較し、127未満である場合にはCα’に1を加える(STEP1209)。次に、Bγ’からNを引く(STEP1210)。Bγ’が0以上である場合にはBγ’=0とする(STEP1211,1212)。最後に更新されたN’,Cα’,A’,Bγ’で、メモリ404に格納されている状態Sにおける4つのパラメ−タN,Cα,A,Bγを置き換える。
【0040】
以上の処理により、予測変換回路102は予測誤差Diffとパラメ−タkとを生成し、Golomb-Rice符号化回路104にこれらを出力する。
【0041】
Golomb−Rice符号化回路104は、まず、予測変換回路102の出力する予測誤差Diffを次式により非負の整数値Vに変換する。
【0042】
【0043】
次にこのVをパラメ−タkに基づいてGolomb−Rice符号化する。非負の整数値Vをパラメ−タkに基づいてGolomb−Rice符号化する符号化手順は次のとうりである。
【0044】
まず、非負の整数値Vを2進数表現する。次にこれを下位kビット部分と上位の残りのビット部分に分割する。次に下位kビット部分に、上位の残りのビット部分を十進で表現される数だけの’0’を付加し、最後に’1’を追加して符号語とする。具体例を挙げると、k=2,V=13の場合、Vの2進数表現’1101’の下位2ビット’01’に上位の残りのビット部分’11’の表す数、すなわち3個の’0’を付加して’01000’とし、最後に’1’を付加して符号語’010001’を生成するという具合である。
【0045】
なお、図9に上述の符号化処理を施す場合のパラメ−タk=0,1,2における非負の整数値と符号語の対応を示す。
【0046】
Golomb-Rice符号化回路104で生成された符号は、スイッチ113の端子C’へと出力される。
【0047】
次に、予測変換回路105、符号予測変換回路106、Golomb−Rice符号化回路107により符号化処理を行なうラン終端モ−ドについて説明する。
【0048】
予測変換回路105は周辺画素値a,bから符号化対象画素値を予測し、予測誤差を生成する。図5に予測変換回路105の構成図を示す。同図において501は比較器、502は予測器、503は予測誤差生成回路、504はメモリ、505はkパラメ−タ生成回路である。また、図1には示されていないが、予測変換回路105にはバッファ115から周辺画素a,bの画素値のデータが入力される。また、スイッチ112の端子Bから符号化対象画素値xが入力される。
【0049】
メモリ504には状態番号Sで特定される各状態に対応する3つのパラメ−タN,A,Bαが格納される。N,A,Bαは画像符号化の開始時にN=1,A=4,Bα=0に初期化される。なお、Nは状態Sの生起回数であり、Aは状態Sにおける予測誤差の絶対値の累計であり、Bαは状態Sにおける負の予測誤差が出現した回数である。
【0050】
図5を用いて予測変換回路105の動作を詳細に説明する。まず、比較器501はバッファ115から渡される符号化対象画素の周辺画素a,bを比較し、b<aの場合には1を出力し、そうでない場合には0を出力する。以降、この比較器501から出力する値を位相フラグr(1or0)と呼ぶことにする。
【0051】
予測器502は周辺画素a,bから予測値pと状態番号Sを生成する。状態番号Sの値はa=bの場合には1、a≠bの場合には0となる。また、予測値pは常にbとする。
【0052】
予測誤差生成回路503は符号化対象画素値xと予測値pより予測誤差Diffを生成する。位相フラグrが0の場合にはDiff=x−pとし、位相フラグrが1の場合にはDiff=p−xとする。
【0053】
kパラメ−タ生成回路505は予測器502から状態S、メモリ504から状態Sの生起回数Nと状態Sでの予測誤差の絶対値の累加値Aを読み出し、次式によりTを求める。
【0054】
【0055】
min(k|N×2^k>=T)によりGolomb−Rice符号化時のパラメ−タkの値を求め、出力する。
【0056】
パラメ−タ更新回路506は、状態Sにおける3つのパラメ−タN,A,Bαを更新し、N’,A’,Bα’を生成する。まず、A’=A+|Diff|によりA’を求める。次にDiffの正負を調べ、正である場合にはBα’=Bαとし、負である場合にはBα’=Bα+1とする。即ちBαは予測誤差Diffが負であった回数を示すものとなる。また、N’=N+1によりN’を求める。
【0057】
最後に更新されたN’,A’,Bα’で、メモリ504に格納されている状態Sにおける3つのパラメ−タN,A,Bαを置き換える。
【0058】
以上の処理により、予測誤差Diff、kパラメ−タ、状態番号S、状態番号Sの状態における2つのパラメ−タBα,Nを出力する。
【0059】
符号予測変換回路106は、kパラメ−タが0の場合に、BαとNの値から予測誤差Diffの符号(+/−)を予測し、予測結果に基づいてDiffの符号を変更する。
【0060】
図6に符号予測変換回路106の構成を示す。同図において601は反転判定回路、602は符号反転回路、603はセレクタである。
【0061】
図6を用いて符号予測変換回路106の動作を詳細に説明する。まず、反転判定回路601は、k=0の場合でありかつBα>N/2の場合に符号反転を指示する信号’1’を、それ以外の場合には符号反転をしないことを指示する信号’0’を出力する。符号反転回路602は、この指示信号(1or0)に基づいて符号化対象画素に対応するDiffの符号(+/−)を反転し、−Diffを信号線604に出力する。セレクタ603は反転判定回路601の出力値が’0’の場合は信号線605を通じて入力されるDiffを選択して出力し、’1’の場合には符号反転回路602の出力値−Diffを出力する。
【0062】
以上の処理により、符号予測反転回路106は入力値Diffに対し、Diffまたは−Diffを選択して出力する。
【0063】
ここで、上記符号反転の役割を簡単に説明する。kパラメ−タが0の場合及びkパラメ−タが2の場合のGolomb-Rice符号化の符号化割り当ては図13の様になる。図13においてkパラメ−タが0の場合とは符号化画素を含めた周辺画素の値の変動が少ない場合を意味する。よってGolomb-Rice符号化を行った時の整数値Vと符号化出力及び符号長は図のような関係になっている。
【0064】
一方、kパラメ−タが2の場合は、0の場合と比べ多少符号化画素を含めた周辺画素の値の変動が大きくなっていることを表しているので、これに適した符号化が行えるよう、Golomb-Rice符号化を行った時の後述する整数値V又は予測誤差Diffと、符号化出力又は符号長は図のような関係になっている。
【0065】
ここで、kパラメ−タが0の場合には、予測誤差Diffが同じ絶対値を有するにもかかわらず必ず符号長が異なるという特徴がある。これに対してkパラメ−タが0以外の値(例えば2)の場合には、予測誤差Diffが同じ絶対値を有するものは同じ符号長になることが多い。
【0066】
この符号化特性を考慮して、kパラメ−タが0の場合かつBα>N/2の場合(状態Sにおける予測誤差が負であった回数が過半数を超える場合)に符号反転を行い、それ以外の場合には符号反転をしない様にすれば、同じ絶対値を有する予測誤差Diff(例えば−1と1)で発生頻度が多い方を符号長の短い符号化出力とすることが可能となる。
【0067】
即ち、−1の方が発生頻度が多ければ符号予測反転回路106の符号反転はしないで良しとし、−1の方が発生頻度が少ない(1の方が発生頻度が大きい)時には、−1を1と解釈して符号化し、1を−1として解釈して符号化することで符号化効率を上げることができる。
【0068】
一方kパラメ−タが0以外の場合にも上記符号反転処理を行うことは可能であるが、本実施の形態ではそれほど効果がないことから、符号反転処理を行わないものとする。
【0069】
以上の符号反転処理は画像を符号化している途中で適宜切り替わるものではあるが、もちろん、復号化側でも復号化された周辺画素に基づいて上記反転判定回路601や符号反転回路602と同等の処理部を有するので、どの符号化対象画素の時点から予測誤差Diffの正負の解釈の仕方が切り替わったか知ることができる。
【0070】
上記符号反転の処理が行われた後、Golomb−Rice符号化回路107は、符号予測変換回路106の出力する予測誤差Diff’をパラメ−タkでGolomb−Rice符号化し、符号をスイッチ113の端子B’へと出力する。まず、Diffを以下の式により非負の整数値Vへと変換する。
【0071】
【0072】
次に、非負の整数値Vをパラメ−タkでGolomb−Rice符号化する。Golomb−Rice符号化の手順はGolomb−Rice符号化回路104の説明で述べたとうりである。
【0073】
最後に、ランレングスカウンタ108とMelcode符号化回路109により符号化処理を行なうランレングスモ−ドについて説明する。
【0074】
ランレングスカウンタ108にはスイッチ112の端子Aから符号化対象画素値x、バッファ115から直前の画素値aが入力され、信号線116に符号化制御信号c、信号線117に同一輝度連続数RLを出力する。図7はランレングスカウンタ108の構成を示したものである。同図において701は比較器、702はカウンタである。比較器701は符号化対象画素値xと直前の画素値aを比較し、値が等しい場合には‘0’を、等しくない場合には‘1’を符号化制御信号cとして出力する。カウンタ702は内部に同一輝度値の連続数RLを保持しており、比較器701の出力する符号化制御信号cが‘0’である場合にはRLをインクリメントして出力し、符号化制御信号cが‘1’である場合にはRLの値を出力した後、0にリセットする。
【0075】
Melcode符号化回路109は信号線116から入力される符号化制御信号が‘1’である場合にのみ信号線117から入力される同一輝度連続数RLを符号化する。このMelcode符号化の手順を図10に示す。
【0076】
図10のSTEP1001においてまず、Melcode符号化回路109の内部に保持されているindex(符号化開始時の初期値は0)に基づいてラン長しきい値RLTが決定する。図11にindexとRLTの対応関係を示す。次に、STEP1002ではRLTとラン長RLを比較し、RL≧RLTならばSTEP1003に処理を進め、そうでない場合にはSTEP1008へと処理を進める。
【0077】
STEP1003では’0’を符号として出力する。続いてSTEP1004でRL=RL−RLTによりRLの値を更新する。STEP1005ではindexの値をインクリメントし、STEP1006ではindexが31を超えた場合にはSTEP1007でindexに31を設定してからSTEP1001に処理を戻し、indexが31を超えない場合にはそのままSTEP1001に処理を戻す。
【0078】
一方ステップ1008へと処理が進んだ場合には、STEP1008でまず、’1’を符号として出力する。次にSTEP1009において、RLを2進数表現し、その下位RLTビットを符号として出力する。STEP1010ではindexの値をデクリメントし、STEP1011でindexが0以下になったかどうか判断する。indexが0以下になった場合にはSTEP1012においてindexに0を設定して終了し、indexが0以下になっていない場合にはそのまま終了する。
【0079】
以上により、ラン長RLに対する符号が生成され、出力される。
【0080】
上述の処理を、入力部100より入力される最後の画素まで繰り返し、符号化処理を行う。これにより、信号線114に入力画像に対する符号系列を出力する。
【0081】
なお、上記Melcode符号化の方法についての説明は、「電子通信学会論文誌’77/12 Vol.J60−A No.12」に開示されているので、詳細は省略する。
【0082】
以上に説明した3つの各符号化モードが、図8に示した符号化モードの切換に従って用いられる。
【0083】
上述した符号化方法によれば、カラー又はモノクロの多値画像の情報量を失うことなく可逆(ロスレス)符号化することができる。
【0084】
なお、本実施例に示したロスレス符号化において、図6に示した符号反転処理を行うことにより、予測誤差Diffが同じ絶対値を有するにもかかわらず符号長が異なる様なGolomb-Rice符号化等のエントロピ−符号化に対して、この符号化特性を考慮して、符号化対象画素の前画素までに予測誤差Diffの正の符号と負の符号の何れが多く発生しているかに基づいて、エントロピ−符号化前に予測誤差Diffを符号反転するか否か(予測誤差Diffの正負の符号の解釈を変えるか否か)を制御する様にすれば、同じ絶対値の予測誤差Diffにおいて発生頻度が多い方を短い符号長とすることができ、効率の良いエントロピ−符号化が可能となる。
【0085】
また以上の実施の形態の符号反転処理は、符号化対象画素の前画素までに予測誤差Diffの正の符号と負の符号の何れが多い回数発生しているかという、単なる発生回数に基づいて反転処理を行うことを大きな特徴とし、これによれば、符号化対象画素の前画素までの予測誤差Diffの累積値が正の符号と負の符号の何れであるかに基づいて反転処理を行う様な方法と比べて、本実施の形態の方が処理が容易である。更には画像のノイズ等により予測誤差Diffに正又は負の大きな値が発生してしまったときに、上記累積値は正負の一方に偏ってしまい最適な符号反転ができないが、本実施の形態によればこの様なノイズによる影響を受けないで済む。
【0086】
(変形例)
本発明は上述した実施の形態に限定されるものではない。例えば、符号化対象画素値の予測方法として単純に前値予測を用いる場合にも適用でき、幾つかの予測方法を用意して、適時切り替えても構わない。また、エントロピ−符号化手段としてGolomb−Rice符号とMelcodeを用いているが、これらをハフマン符号等の他のエントロピ−符号化方式に変えても良い。なお、上述の実施の形態ではラン終端モ−ドで符号反転処理を行なったが、本発明はこれに限らず、ノーマルモードの場合に代表される予測値をエントロピー符号化する様な符号化モード又は単独の符号化処理に適用する事も可能であり、これらの変形例も本発明に含まれる。
【0087】
また本発明は複数の機器(たとえばホストコンピュータ、インタフェース機器、リーダ、プリンタ等)から構成されるシステムに適用しても一つの機器(たとえば複写機、ファクシミリ装置)からなる装置に適用してもよい。
【0088】
また前述した実施形態の機能を実現する様に各種のデバイスを動作させる様に該各種デバイスと接続された装置あるいはシステム内のコンピュータに、前記実施形態機能を実現するためのソフトウエアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ(CPUあるいはMPU)を格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも本発明の範疇に含まれる。
【0089】
またこの場合、前記ソフトウエアのプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記憶媒体は本発明を構成する。
【0090】
かかるプログラムコードを格納する記憶媒体としては例えばフロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM,、磁気テープ、不揮発性のメモリカード、ROM等を用いることが出来る。
【0091】
またコンピュータが供給されたプログラムコードを実行することにより、前述の実施形態の機能が実現されるだけではなく、そのプログラムコードがコンピュータにおいて稼働しているOS(オペレーティングシステム)、あるいは他のアプリケーションソフト等と共同して前述の実施形態の機能が実現される場合にもかかるプログラムコードは本願発明の実施形態に含まれることは言うまでもない。
【0092】
更に供給されたプログラムコードが、コンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後そのプログラムコードの指示に基づいてその機能拡張ボードや機能格納ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も本願発明に含まれることは言うまでもない。
【0093】
【発明の効果】
以上説明したように本発明によれば、同じ絶対値の予測誤差の符号化において発生頻度が多い方を短い符号長とすることができ、効率の良いエントロピー符号化を行える。
【図面の簡単な説明】
【図1】本発明に係る第1の実施の形態でのブロック図を示すものである。
【図2】符号化対象画素と周辺画素の位置関係を示すものである。
【図3】周辺画素の差分値の量子化方法を示すものである。
【図4】予測変換回路102の構成を示すものである。
【図5】予測変換回路105の構成を示すものである。
【図6】符号予測反転回路106の構成を示すものである。
【図7】ランレングスカウンタ108の構成を示すものである。
【図8】モ−ドセレクタ111による符号化モ−ドの制御を示すものである。
【図9】 kパラメ−タ0,1,2に於けるGolomb−Rice符号の例を示したものである。
【図10】 Melcode符号化手順を示したものである。
【図11】ランレングスの符号化におけるindex値に対するRLTの値を示したものである。
【図12】予測修正値Cの更新手順を示すものである。
【図13】 kパラメ−タが0の場合及びkパラメ−タが2の場合のGolomb-Rice符号化の符号化割り当ての様子をしめすものである。
【符号の説明】
100 入力部
101,114,116,117 信号線
102,105 予測変換回路
104,107 Golomb−Rice符号化回路
106 符号予測変換回路
108 ランレングスカウンタ
109 Melcode符号化回路
110 状態判別回路
111 モ−ドセレクタ
112,113 スイッチ
115 画像デ−タ系列を格納するバッファ
Claims (3)
- ラスタースキャン順に入力された画素を順次符号化する符号化装置であって、
符号化対象画素の周囲画素の状態を判別する状態判別手段と、
符号化対象画素の周囲画素に基づいて第1の予測アルゴリズムで予測値を発生し、該予測値と前記符号化対象画素値との予測誤差をGolomb−Rice符号化する第1符号化手段と、
ランレングス値RLを保持し、符号化対象画素と直前に符号化された画素と画素値が一致する場合にはランレングス値RLをカウントアップし、不一致の場合にはランレングス値RLをMelcode符号化する第2符号化手段と、
符号化対象画素の周囲画素に基づいて第1とは異なる第2の予測アルゴリズムで予測値を発生し、該予測値と前記符号化対象画素値との予測誤差をGolomb−Rice符号化する第3符号化手段と、
各符号化対象画素に対して、符号化対象画素の周辺画素の状態及びランレングス値RLに基づいて第1及び第2符号化手段の何れか一方の符号化を施し、第2符号化手段の符号化時に前記不一致の場合には更に前記第3符号化手段による符号化を施す符号化モード選択手段とを備え、
前記第3符号化手段は、Golomb−Rice符号化に用いられるkパラメータの値が0である場合で、かつ該第3符号化手段による符号化において符号化対象画素の前画素までに対する正の予測誤差と負の予測誤差のうちでより多く発生している方に長い符号長が割り当てられている場合に、前記符号化対象画素に対応する予測誤差の正負の符号を反転させることを特徴とする符号化装置。 - ラスタースキャン順に入力された画素を順次符号化する符号化方法であって、
符号化対象画素の周囲画素の状態を判別する状態判別ステップと、
符号化対象画素の周囲画素に基づいて第1の予測アルゴリズムで予測値を発生し、該予測値と前記符号化対象画素値との予測誤差をGolomb−Rice符号化する第1符号化ステップと、
ランレングス値RLを保持し、符号化対象画素と直前に符号化された画素と画素値が一致する場合にはランレングス値RLをカウントアップし、不一致の場合にはランレングス値RLをMelcode符号化する第2符号化ステップと、
符号化対象画素の周囲画素に基づいて第1とは異なる第2の予測アルゴリズムで予測値を発生し、該予測値と前記符号化対象画素値との予測誤差をGolomb−Rice符号化する第3符号化ステップと、
各符号化対象画素に対して、符号化対象画素の周辺画素の状態及びランレングス値RLに基づいて第1及び第2符号化ステップの何れか一方の符号化を施し、第2符号化ステップの符号化時に前記不一致の場合には更に前記第3符号化ステップによる符号化を施す符号化モード選択ステップとを備え、
前記第3符号化ステップは、第2の予測符号化モードにおいてGolomb−Rice符号化に用いられるkパラメータの値が0である場合で、かつ前記第3符号化ステップにおいて符号化対象画素の前画素までに対する正の予測誤差と負の予測誤差のうちでより多く発生している方に長い符号長が割り当てられている場合に、前記符号化対象画素に対応する予測誤差の正負の符号を反転させることを特徴とする符号化方法。 - 請求項2に記載の符号化方法を実行させるコンピュータプログラムをコンピュータに供給可能な状態で記憶した記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9219297A JP3847891B2 (ja) | 1997-04-10 | 1997-04-10 | 符号化装置及び方法及び方法を記憶した記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9219297A JP3847891B2 (ja) | 1997-04-10 | 1997-04-10 | 符号化装置及び方法及び方法を記憶した記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10285601A JPH10285601A (ja) | 1998-10-23 |
JP3847891B2 true JP3847891B2 (ja) | 2006-11-22 |
Family
ID=14047586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9219297A Expired - Fee Related JP3847891B2 (ja) | 1997-04-10 | 1997-04-10 | 符号化装置及び方法及び方法を記憶した記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3847891B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060051157A (ko) * | 2004-10-29 | 2006-05-19 | 마이크로소프트 코포레이션 | 정수 데이터의 무손실 적응 인코딩 및 디코딩을 위한시스템 및 방법 |
JP4500213B2 (ja) * | 2005-05-20 | 2010-07-14 | オリンパスイメージング株式会社 | データ符号化装置、データ復号化装置、データ符号化方法、データ復号化方法、プログラム |
-
1997
- 1997-04-10 JP JP9219297A patent/JP3847891B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10285601A (ja) | 1998-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3839974B2 (ja) | 符号化装置 | |
US6711295B2 (en) | Encoding apparatus and method, and storage medium | |
US6233355B1 (en) | Encoding apparatus and method and storage medium | |
US7689048B2 (en) | Image encoding apparatus, method, and computer-readable storage medium for encoding a pixel value | |
US7650039B2 (en) | Image encoding apparatus, image decoding apparatus, control method therefor, computer program, and computer-readable storage medium | |
US20200177920A1 (en) | Method for producing video coding and computer program product | |
JP2000069292A (ja) | 画像処理装置及び方法及び記憶媒体 | |
JPH0793586B2 (ja) | データ圧縮モデル選択方法及びシステム | |
JPH10107645A (ja) | 符号化器及び符号化システム | |
US7561744B2 (en) | Image encoding apparatus, image decoding apparatus, and their control method, and computer program and computer-readable storage medium | |
JPH09130810A (ja) | 符号化・復号化装置及び符号化・復号化方法 | |
JP2008118307A (ja) | 符号化装置及びその制御方法 | |
US5960117A (en) | Method of adaptive arithmetic encoding/decoding according to JBIG standard | |
JP2954438B2 (ja) | 符号化装置 | |
GB2496210A (en) | Context adaptive (CABAC) data encoding and decoding | |
JP3847891B2 (ja) | 符号化装置及び方法及び方法を記憶した記憶媒体 | |
JP3787389B2 (ja) | 画像処理装置、及び方法、及びその方法を記憶した記憶媒体 | |
JPH104557A (ja) | 画像処理装置、及び方法、及びその方法を記憶した記憶媒体 | |
JPH08204971A (ja) | 予測符号化と誤差拡散を用いた画像圧縮方法 | |
JPH0937262A (ja) | 画像処理装置及び方法 | |
JP3943634B2 (ja) | 情報処理装置及び方法 | |
JP2952007B2 (ja) | 画像符号化装置 | |
JP2872334B2 (ja) | カラー画像の符号化装置 | |
JP2832059B2 (ja) | カラー画像の符号化装置 | |
JP4743884B2 (ja) | 画像符号化装置及びその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050208 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050411 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051122 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060123 |
|
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: 20060808 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060824 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090901 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100901 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110901 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110901 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120901 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120901 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130901 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |