JP2001197496A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2001197496A5 JP2001197496A5 JP2000004003A JP2000004003A JP2001197496A5 JP 2001197496 A5 JP2001197496 A5 JP 2001197496A5 JP 2000004003 A JP2000004003 A JP 2000004003A JP 2000004003 A JP2000004003 A JP 2000004003A JP 2001197496 A5 JP2001197496 A5 JP 2001197496A5
- Authority
- JP
- Japan
- Prior art keywords
- image
- address
- code
- variable length
- encoding
- 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
Description
【書類名】 明細書
【発明の名称】 画像符号化装置、画像符号化・復号化装置、画像符号化・復号化方法、およびコンピュータが実行可能なプログラムを記録した記録媒体
【特許請求の範囲】
【請求項1】 画像をN×Mのブロックに分割する分割手段と、
前記N×Mのブロックの画像を可変長符号化する符号化手段と、
前記符号化手段で可変長符号化された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する先頭アドレス算出手段と、
前記可変長符号および前記先頭アドレスを記憶する前記記憶手段と、
を備えたことを特徴とする画像符号化装置。
【請求項2】 画像をN×Mのブロックに分割する分割手段と、
前記N×Mのブロックの画像を可変長符号化する符号化手段と、
前記符号化手段で可変長符号化された可変長符号に当該可変長符号の
符号長を示す回転用符号情報を付加する回転用符号情報付加手段と、
前記回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する先頭アドレス算出手段と、
前記回転用符号情報が付加された可変長符号および前記先頭アドレスを記憶する前記記憶手段と、
を備えたことを特徴とする画像符号化装置。
【請求項3】 画像をN×Mのブロックに分割する分割手段と、
前記N×Mのブロックの画像を可変長符号化する符号化手段と、
前記符号化手段で可変長符号化された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する先頭アドレス算出手段と、
前記可変長符号および前記先頭アドレスを記憶する前記記憶手段と、
指定される回転角度に応じて、前記先頭アドレスに基づいて前記記憶手段の読み出しアドレスを算出する読み出しアドレス算出手段と、
前記算出された読み出しアドレスに基づき、前記記憶手段から前記可変長符号をプラス方向またはマイナス方向に読み出す読出手段と、
前記読み出された可変長符号を復号化する復号化手段と、
を備えたことを特徴とする画像符号化・復号化装置。
【請求項4】 画像をN×Mのブロックに分割する分割手段と、
前記N×Mのブロックの画像を可変長符号化する符号化手段と、
前記符号化手段で可変長符号化された可変長符号に当該可変長符号の
符号長を示す回転用符号情報を付加する回転用符号情報付加手段と、
前記回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する先頭アドレス算出手段と、
前記回転用符号情報が付加された可変長符号および前記先頭アドレスを記憶する前記記憶手段と、
指定される回転角度に応じて、前記先頭アドレスおよび前記回転用符号情報に基づいて前記記憶手段の読み出しアドレスを算出する読み出しアドレス算出手段と、
前記算出された読み出しアドレスに基づき、前記記憶手段から前記可変長符号をプラス方向またはマイナス方向に読み出す読出手段と、
前記読み出された可変長符号を復号化する復号化手段と、
を備えたことを特徴とする画像符号化・復号化装置。
【請求項5】 画像をN×Mのブロックに分割する工程と、
前記N×Mのブロックの画像を可変長符号化する工程と、
前記可変長符号化された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する工程と、
前記可変長符号および前記先頭アドレスを前記記憶手段に記憶する工程と、
指定される回転角度に応じて、前記先頭アドレスに基づいて前記記憶手段の読み出しアドレスを算出する工程と、
前記算出された読み出しアドレスに基づき、前記記憶手段から前記可変長符号をプラス方向またはマイナス方向に読み出す工程と、
前記読み出された可変長符号を復号化する工程と、
を含むことを特徴とする画像符号化・復号化方法。
【請求項6】 画像をN×Mのブロックに分割する工程と、
前記N×Mのブロックの画像を可変長符号化する工程と、
前記可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加する工程と、
前記回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する工程と、
前記回転用符号情報が付加された可変長符号および前記先頭アドレスを記憶する工程と、
指定される回転角度に応じて、前記先頭アドレスおよび前記回転用符号情報に基づいて前記記憶手段の読み出しアドレスを算出する工程と、
前記算出された読み出しアドレスに基づき、前記記憶手段から前記可変長符号をプラス方向またはマイナス方向に読み出す工程と、
前記読み出された可変長符号を復号化する工程と、
を含むことを特徴とする画像符号化・復号化方法。
【請求項7】 請求項5または請求項6に記載の発明の各工程をコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【0001】
【産業上の利用分野】
本発明は、画像符号化装置、画像符号化・復号化装置、画像符号化・復号化方法、およびコンピュータが実行可能なプログラムを記録した記録媒体に関し、詳細には、例えば、デジタル複写機、スキャナー、画像ファイリング等の画像記録装置に最適な画像符号化装置、画像符号化・復号化装置、画像符号化・復号化方法、およびコンピュータが実行可能なプログラムを記録した記録媒体に関する。
【0002】
【従来の技術】
従来より、画像データ圧縮技術は、画像データを保持するためのメモリ量を低減したり、画像データの送信時間を短縮したりする目的で画像処理分野で一般に使用されている。画像データの圧縮方式は画像データの処理形態により種々のものがあり、画像データを印字処理する場合においては、限られた容量のメモリ上で画像データを回転して印字するなどの処理を高速に行うという必要性から固定長圧縮が良く使用されている。代表的な固定長圧縮の方式としてGBTC(Generalized Block Truncation Coding)などが知られている。
【0003】
また、他の圧縮方式として画像データを水平周波数方向と垂直周波数方向に複数のブロックに分割すると共に低域周波数のブロックほど細かくするWAVELET変換が知られており、このWAVELET変換は最近、自然階調の画像を効果的に圧縮する方法として注目されている。かかるWAVELET変換は写真のような連続した階調を持った画像の圧縮に適していることが知られている。
【0004】
また、符号化された画像をデコード時に回転させる技術として、例えば、特開平9−74474号公報の画像符号化・復号化装置が知られている。かかる画像符号化・復号化装置によれば、デジタルの画像信号を符号化する符号化器、および該符号化された画像信号を復号化する復号器を有し、得られた画像の回転画像を生成する画像符号化・復号化装置において、前記画像信号にかかわる画像をN×Nのブロックに分割する手段と、前記ブロック毎に独立に該ブロック内の画素を符号化する手段と、前記ブロック内の所定画素の符号長の和を演算する手段と、前記符号化された画素及び前記符号長の和を記憶する手段と、前記復号器において、前記符号長の和をもとに、前記回転画像を構成するための前記N×Nブロックの先頭アドレスを生成する手段と、前記復号化されたN×Nブロック内の画素を復号化する手段と、前記復号化されたN×Nブロック内の画素を回転する手段とを備えたものである。
【0005】
また、特開平9−74475号公報の画像符号化・復号化装置によれば、デジタルの画像信号を符号化する符号化器、および該符号化された画像信号を復号化する復号器を有し、得られた画像の回転画像を生成する画像符号化・復号化装置において、前記画像信号にかかわる画像をN×Nのブロックに分割する手段と、前記N×Nブロックを構成する画素の色を判定する判定手段と、前記判定結果を符号化する第1の符号化手段と、前記判定結果をもとに前記ブロック毎に独立に該ブロック内の画素を符号化する第2の符号化手段と、前記第1の符号化手段及び第2の符号化手段にて符号化されたデータを記憶する手段と、前記復号器において、前記符号化された判定結果を復号化する手段と、前記回転画像を構成するための、前記N×Nブロックの画素のアドレスを生成する手段と、前記N×Nブロック内の画素を復号化する手段と、前記復号化された判定結果及び前記アドレスに基づいて、前記回転されたNラインバッファに記憶する手段とを備えたものである。
【0006】
【発明が解決しようとする課題】
しかしながら、上述のGBTCは、4/8圧縮においては1ブロック4×4ドット、1ドットに3BITの8種類の色を割り振り、また、3/8圧縮においては1ドットに2BITの4種類の色を、また、2/8圧縮においては1BITの2種類の色を割り振っている。このため、特に画素の階調差が激しい1ブロック内ではノッチと呼ばれるゴミのようなものが文字の輪郭などに発生し、画質が劣化するという問題がある。
【0007】
また、エントロピー符号などで圧縮した場合(ハフマン符号など)は、符号のデコード時にエンコードした方向からしかデコードすることができないため、符号のまま90°,180°,270°の回転処理を行うことができないという問題がある。すなわち、180°,270°回転時、ライン(BLOCK)の後ろからアクセスしなければならないことになる。
【0008】
本発明は、上記に鑑みてなされたものであり、ラインの先頭および終点からの可変長符号の読み出しを可能として、符号のまま回転処理を行うことが可能な画像符号化装置、画像符号化・復号化装置、画像符号化・復号化方法、およびコンピュータが実行可能なプログラムを記録した記録媒体を提供することを目的とする。
【0009】
【課題を解決するための手段】
前記課題を解決するため、請求項1にかかる画像符号化装置は、画像をN×Mのブロックに分割する分割手段と、前記N×Mのブロックの画像を可変長符号化する符号化手段と、前記符号化手段で可変長符号化された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する先頭アドレス算出手段と、前記可変長符号および前記先頭アドレスを記憶する前記記憶手段と、を備えたものである。
【0010】
上記発明によれば、分割手段は画像をN×Mのブロックに分割し、符号化手段はN×Mのブロックの画像を可変長符号化し、先頭アドレス算出手段は符号化手段で可変長符号化された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、記憶手段は可変長符号および先頭アドレスを記憶する。
【0011】
請求項2にかかる画像符号化装置は、画像をN×Mのブロックに分割する分割手段と、前記N×Mのブロックの画像を可変長符号化する符号化手段と、前記符号化手段で可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加する回転用符号情報付加手段と、前記回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する先頭アドレス算出手段と、前記回転用符号情報が付加された可変長符号および前記先頭アドレスを記憶する前記記憶手段と、を備えたものである。
【0012】
上記発明によれば、分割手段は画像をN×Mのブロックに分割し、符号化手段は記N×Mのブロックの画像を可変長符号化し、回転用符号情報付加手段は符号化手段で可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加し、先頭アドレス算出手段は回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、記憶手段は回転用符号情報が付加された可変長符号および先頭アドレスを記憶する。
【0013】
請求項3にかかる画像符号化・復号化装置は、画像をN×Mのブロックに分割する分割手段と、前記N×Mのブロックの画像を可変長符号化する符号化手段と、前記符号化手段で可変長符号化された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する先頭アドレス算出手段と、前記可変長符号および前記先頭アドレスを記憶する前記記憶手段と、指定される回転角度に応じて、前記先頭アドレスに基づいて前記記憶手段の読み出しアドレスを算出する読み出しアドレス算出手段と、前記算出された読み出しアドレスに基づき、前記記憶手段から前記可変長符号をプラス方向またはマイナス方向に読み出す読出手段と、前記読み出された可変長符号を復号化する復号化手段と、を備えたものである。
【0014】
上記発明によれば、分割手段は画像をN×Mのブロックに分割し、符号化手段はN×Mのブロックの画像を可変長符号化し、先頭アドレス算出手段は符号化手段で可変長符号化された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、記憶手段は可変長符号および先頭アドレスを記憶し、読み出しアドレス読出手段は指定される回転角度に応じて、先頭アドレスに基づいて記憶手段の読み出しアドレスを算出し、読み出し手段は算出された読み出しアドレスに基づき、記憶手段から可変長符号をプラス方向またはマイナス方向に読み出し、復号化手段は読み出された可変長符号を復号化する。
【0015】
請求項4にかかる画像符号化・復号化装置は、画像をN×Mのブロックに分割する分割手段と、前記N×Mのブロックの画像を可変長符号化する符号化手段と、前記符号化手段で可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加する回転用符号情報付加手段と、前記回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する先頭アドレス算出手段と、前記回転用符号情報が付加された可変長符号および前記先頭アドレスを記憶する前記記憶手段と、指定される回転角度に応じて、前記先頭アドレスおよび前記回転用符号情報に基づいて前記記憶手段の読み出しアドレスを算出する読み出しアドレス算出手段と、前記算出された読み出しアドレスに基づき、前記記憶手段から前記可変長符号をプラス方向またはマイナス方向に読み出す読出手段と、前記読み出された可変長符号を復号化する復号化手段と、を備えたものである。
【0016】
上記発明によれば、分割手段は画像をN×Mのブロックに分割し、符号化手段はN×Mのブロックの画像を可変長符号化し、回転用符号情報付加手段は符号化手段で可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加し、先頭アドレス算出手段は回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、記憶手段は回転用符号情報が付加された可変長符号および前記先頭アドレスを記憶し、読み出しアドレス算出手段は指定される回転角度に応じて、前記先頭アドレスおよび前記回転用符号情報に基づいて前記記憶手段の読み出しアドレスを算出し、読み出し手段は算出された読み出しアドレスに基づき、記憶手段から可変長符号をプラス方向またはマイナス方向に読み出し、復号化手段は読み出された可変長符号を復号化する。
【0017】
請求項5にかかる画像符号化・復号化方法によれば、画像をN×Mのブロックに分割する工程と、前記N×Mのブロックの画像を可変長符号化する工程と、前記可変長符号化された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する工程と、前記可変長符号および前記先頭アドレスを前記記憶手段に記憶する工程と、指定される回転角度に応じて、前記先頭アドレスに基づいて前記記憶手段の読み出しアドレスを算出する工程と、前記算出された読み出しアドレスに基づき、前記記憶手段から前記可変長符号をプラス方向またはマイナス方向に読み出す工程と、前記読み出された可変長符号を復号化する工程と、を含むものである。
【0018】
上記発明によれば、画像をN×Mのブロックに分割し、N×Mのブロックの画像を可変長符号化し、可変長符号化された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、可変長符号および先頭アドレスを記憶手段に記憶し、指定される回転角度に応じて、先頭アドレスに基づいて記憶手段の読み出しアドレスを算出し、算出された読み出しアドレスに基づき、記憶手段から可変長符号をプラス方向またはマイナス方向に読み出し、読み出された可変長符号を復号化する。
【0019】
請求項6にかかる画像符号化・復号化方法は、画像をN×Mのブロックに分割する工程と、前記N×Mのブロックの画像を可変長符号化する工程と、前記可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加する工程と、前記回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する工程と、前記回転用符号情報が付加された可変長符号および前記先頭アドレスを記憶する工程と、指定される回転角度に応じて、前記先頭アドレスおよび前記回転用符号情報に基づいて前記記憶手段の読み出しアドレスを算出する工程と、前記算出された読み出しアドレスに基づき、前記記憶手段から前記可変長符号をプラス方向またはマイナス方向に読み出す工程と、前記読み出された可変長符号を復号化する工程と、を含むものである。
【0020】
上記発明によれば、画像をN×Mのブロックに分割し、N×Mのブロックの画像を可変長符号化し、可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加し、回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、回転用符号情報が付加された可変長符号および先頭アドレスを記憶し、指定される回転角度に応じて、先頭アドレスおよび回転用符号情報に基づいて記憶手段の読み出しアドレスを算出し、算出された読み出しアドレスに基づき、記憶手段から可変長符号をプラス方向またはマイナス方向に読み出し、読み出された可変長符号を復号化する。
【0021】
請求項7にかかるコンピュータが読み取り可能な記録媒体は、請求項5または請求項6に記載の発明の各工程をコンピュータに実行させるためのプログラムを記録したものである。上記発明によれば、コンピュータにより、記録媒体に記録されたプログラムを実行して、請求項5または請求項6に記載の発明の各工程を実現する。
【0022】
【発明の実施の形態】
添付図面を参照して、本発明にかかる画像符号化装置、画像符号化・復号化装置、および画像符号化・復号化方法の好適な実施の形態を詳細に説明する。
【0023】
図1は、本発明にかかる画像符号化装置の構成を示すブロック図である。図1に示す画像符号化装置は、ラインバッファ1、N×Nバッファ2、WAVELET処理装置3,エントロピー符号装置4、回転用符号情報付加装置5、アドレス生成装置6、ラインアドレス記録装置7、およびメモリ8を備えている。
【0024】
上記ラインバッファ1は、N×N(例えば、4×4)ブロックの画像をライン分格納する。N×Nバッファ2は、N×N(例えば、4×4)ブロックの画像を格納する。画像としては、CMYK系、RGB系、およびYUV系のいずれでも良い。
【0025】
WAVELET処理装置3は、WAVELET変換するためのものであり、図2(a)に示すように2×2の画素a,b,c,dのブロックを、図2(b)に示すように、1ブロックが以下のように1つの低周波数成分LLと3つの高周波成分LH、HL、HHに分解し、この演算を繰り返すことにより、4×4の画素のブロックについて、図2(c)に示すような階層を生成する。
【0026】
LL=((a+b)/2+(c+b)/2)/2
HL=(a+b)/2−(c−d)/2
LH=((a−b)+(c−d))/2
HH=(a−b)−(c−d)
【0027】
エントロピー符号装置4は、WAVELET処理装置3で、WAVELET変換されたWAVELETデータをエントロピー符号化する。エントロピー符号化としては、例えば、ハフマン符号化などを用いることができる。
【0028】
回転用符号情報付加装置5は、エントロピー符号装置4で符号化した可変長符号の符号長を算出し、符号長を表す固定長のFLAG(図3に示す例では、LENGTH)を回転用符号情報として付加する。図3は符号フォーマットの一例を示す図である。同図において、DCは図2(c)のLLLLなど最も低周波の生データであり、AC HUFFMAN CODEは、その他の周波数バンドをハフマン符号などのエントロピー符号により符号化したものである。また、LENGTHは可変長符号の符号長を表す固定長のFLAG(回転用符号情報)である。
【0029】
メモリ8は、回転用符号情報が付加された可変長符号およびラインアドレス記録装置7に記録された各ライン0〜nの先頭アドレスLINEADDRESSが記憶される。図4はメモリ8の構成例を示す図である。同図に示す如く、メモリ8には、回転用符号情報が付加された可変長符号が画像のライン単位(ブロック単位)に格納される。
【0030】
アドレス生成装置6は、メモリ8に回転用符号情報が付加された可変長符号をライン単位(ブロック単位)で記憶する際の各ライン0〜Nの先頭アドレスLINEADDRESSを生成する。ラインアドレス記録装置7は、図5に示すように、各ライン0〜nの先頭アドレスLINEADDRESSを記録する。これによりデコード時に、可変長符号のメモリ8内のアドレスを知ることができる。このライン先頭アドレスLINEADDRESSはエンコード終了後、可変長符号と同様にメモリ8に格納される。
【0031】
図1の画像符号化装置のエンコード時の処理を図6のフローチャートを参照して説明する。図6は図1の画像符号化装置のエンコード時の処理を説明するためのフローチャートを示す。
【0032】
図6において、まず、アドレス生成装置6は、ラインアドレス記録装置7のラインの先頭アドレスLINEAD(0)=0ライン先頭アドレスとして、0アドレス(一番先頭のライン)をセットする(ステップS1)。ついで、アドレス生成装置6は、アドレスレジスタの値ADDRESSに0ライン先頭アドレス(一番先頭のライン)をセットする(ステップS2)。
【0033】
アドレス生成装置6は、垂直カウンタVCNTおよび水平カウンタHCNTをクリアする(ステップS3,S4)。そして、ラインバッファ1からN×Nバッファ2にN×Nブロックの画像をリードする(ステップS5)。WAVELET処理装置3は、N×Nバッファ2のN×Nブロックの画像に対してWAVELET処理を行う(ステップS6)。つづいて、エントロピー符号装置4は、WAVELET処理されたWAVELETデータをエントロピー符号化する(ステップS7)。
【0034】
回転用符号情報付加装置5は、エントロピー符号装置4で可変長符号化された可変長符号に回転用符号情報(符号長を表す固定長のFLAG)を付加し(図4参照)、アドレス生成装置6で生成されたメモリ8のアドレスADDRESSにライトする(ステップS8)。続いて、アドレス生成装置6は、アドレスレジスタの値ADDRESS=ADDRESS+符号長(回転用符号情報)として、アドレスレジスタの値ADDRESSを更新する。アドレス生成装置6は、水平カウンタHCNT=HCNT+1として、水平カウンタHCNTをカウントUPする(ステップS10)。そして、アドレス生成装置6は、水平カウンタHCNTが水平方向のBLOCK数を超えていないか否かを判定する(ステップS11)。水平カウンタHCNTが水平方向のBLOCK数を超えていない場合には、ステップS5に戻り、水平カウンタHCNTが水平方向のBLOCK数を超えるまで同じ処理を繰り返す。他方、水平カウンタHCNTが水平方向のBLOCK数を超えた場合、すなわち、1つのラインの処理が終了した場合には、アドレス生成装置6は、垂直カウンタVCNT=VCNT+1として、垂直カウンタVCNTをカウントUPする(ステップS12)。これにより次のラインの処理が行われることになる。
【0035】
アドレス生成装置6は、LINEAD(VCNT)=ADDRESSとして、垂直カウンタVCNTが示すラインの先頭アドレスLINEAD(VCNT)をアドレス生成装置6のアドレスレジスタの示す値ADDRESSで更新する(ステップS13)。そして、アドレス生成装置6は垂直カウンタVCNTが垂直方向のBLOCK数を超えていないか否かを判定する(ステップS14)。垂直カウンタVCNTが垂直方向のBLOCK数を超えていない場合には、ステップS4に戻り、垂直カウンタVCNTが垂直方向のBLOCK数を超えるまで同じ処理を繰り返す。他方、垂直カウンタVCNTが垂直方向のBLOCK数を超えた場合には、アドレス記録装置7に記録した各ライン0〜nの先頭アドレスLINEADDRESSをメモリ8へ転送してメモリ8に記憶する(ステップS15)。
【0036】
上記画像符号化装置によれば、WAVELET処理装置3は、N×Nバッファ2に格納されたN×Nのブロックの画像をWAVELET変換し、エントロピー符号装置4は、変換されたWAVELETデータを可変長符号化し、回転用符号情報付加装置5は可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加し、アドレス生成装置6は回転用符号情報が付加された可変長符号をメモリ8に記憶する際に、画像のライン単位に先頭アドレスを算出し、メモリ8に回転用符号情報が付加された可変長符号および先頭アドレスを記憶することとしたので、デコード時に、90°,180°,および270°の回転処理を行う場合に、ラインの先頭および終点からブロック単位での可変長符号の読み出しが可能となり、符号のまま90°,180°,および270°の回転処理を行うことが可能となる。
【0037】
図7は、本発明にかかる画像復号化装置の構成を示すブロック図である。同図に示す画像復号化装置は、メモリ11、ラインアドレス記録装置12、アドレス生成装置13、符号切り出し装置14、エントロピー復号装置15、IWAVELET処理装置16、N×Nバッファ17、およびラインバッファ18を備える。
【0038】
メモリ11は、上述の回転用符号情報が付加された可変長符号と各ライン0〜nの先頭アドレスLINEADDRESSが格納される。メモリ11に格納される回転用符号情報が付加された可変長符号と各ライン0〜nの先頭アドレスLINEADDRESSは、図1の画像符号化装置のメモリ8に格納された回転用符号情報が付加された可変長符号と各ライン0〜nの先頭アドレスLINEADDRESSが不図示の転送手段で転送されて格納される。
【0039】
ラインアドレス記録装置12は、メモリ11からライン先頭アドレスLINEADDRESSを読み込み、90°、180°、および270°の回転時などに、アドレス生成装置13に各ライン0〜nの先頭アドレスLINEADDRESSを転送する。アドレス生成装置13は、図8〜図10のように各回転(0°、90°、180°、270°)する場合に、メモリ11にアクセスするためのアドレス(読み出しアドレス)を生成する。符号切り出し装置14は、アドレス生成装置13で生成されるアドレスに従ってメモリ11から可変長符号を切り出す。
【0040】
エントロピー復号装置15は、符号切り出し装置14で切り出された可変長符号をエントロピー復号化する。IWAVELET処理装置16は、エントロピー復号装置15で復号化されたWAVELETデータを復号化して画像を生成する。N×Nバッファ17は、N×Nブロックの画像を格納する。画像データとしては、CMYK系、RGB系、およびYUV系のいずれでも良い。上記ラインバッファ1は、N×Nブロックの画像をライン分格納する。
【0041】
以下、図7の画像復号化装置が、デコード時に、可変長符号を0゜回転、90゜回転、180゜回転、および270゜回転する場合の処理を説明する。まず、画像復号化装置が、デコード時に画像を回転させない場合(0゜回転)の処理を図11を参照して説明する。図11は、画像復号化装置が、デコード時に可変長符号を回転させない場合(0゜回転)の処理を説明するためのフローチャートを示す。
【0042】
図11において、まず、メモリ11から各ラインの先頭アドレスLINEAD(0〜垂直ブロック数+1)をリードしてアドレス記録装置12へ転送する(ステップS21)。アドレス生成装置13は、垂直カウンタVCNTをクリアし(ステップS22)、また、水平カウンタHCNTをクリアする(ステップS23)。
【0043】
つづいて、アドレス生成装置13は、アドレスレジスタの値ADDRESS=LINEAD(VCNT)として、垂直カウンタVCNTの示すラインの先頭アドレスLINEAD(VCNT)をアドレスレジスタへセットする(ステップS24)。そして、符号切り出し装置14は、メモリ11から可変長符号を、図12に示す如く、指定されるアドレスADDRESSからプラス方向に固定長ビット(例えば、64ビット)切り取る(ステップS25)。
【0044】
エントロピー復号装置15は、符号切り出し装置14で切り取った可変長符号をエントロピー復号化する(ステップS26)。この場合、エントロピー復号装置15は、符号化方向と同じ方向からリードしているので、切り取った符号を順次復号化する。IWAVELET処理装置16は、エントロピー復号装置16で復号化したWAVELETデータに対してWAVELET処理を行う(ステップS27)。IWAVELET処理装置16でIWAVELET処理されたN×N(4×4)のブロックの画像をN×Nバッファ17に格納した後、ラインバッファ18へ転送する(ステップS28)。
【0045】
アドレス生成装置13は、水平カウンタHCNT=HCNT+1として、水平カウンタHCNTをカウントUPし(ステップS29)、アドレスレジスタの値ADDRESS=ADDRESS+符号長(回転用符号情報)として、アドレスレジスタの値ADDRESSを更新する(ステップS30)。アドレス生成装置13は、水平カウンタHCNTが水平方向のBLOCK数を超えているか否か判定するステップS31)。水平カウンタHCNTが水平方向のBLOCK数を超えていない場合には、ステップS25に戻り、水平カウンタHCNTが水平方向のBLOCK数を超えるまで同じ処理を繰り返す。他方、ステップS31で、水平カウンタHCNTが水平方向のBLOCK数を超えている場合には、1ラインの読み出しが終了したので、垂直カウンタVCNT=VCNT+1として、垂直カウンタVCNTをカウントUPする(ステップS32)。これにより、次のラインの読み出しが行われる。
【0046】
そして、アドレス生成装置13は、垂直カウンタVCNTが垂直方向のBLOCK数を超えているか否かを判定する(ステップS33)。垂直カウンタVCNTが垂直方向のBLOCK数を超えていない場合は、ステップS23に戻り、垂直カウンタVCNTが垂直方向のBLOCK数を超えるまで同じ処理を繰り返す。他方、ステップS33で、垂直カウンタVCNTが垂直方向のBLOCK数を超えている場合には、処理を終了する。
【0047】
図13はデコード時に画像を回転させない場合(0゜回転)における、メモリ11からの読み出し順と、ラインバッファ18への書き込み順を示している。同図の黒四角は読み出し方向および書き込み方向を示している。同図に示すように、デコード時に画像を回転させない場合(0゜回転)は、読み出し方向と書き込み方向が同じとなる。
【0048】
図7の画像復号化装置が、デコード時に画像を90゜回転させる場合の処理を図14を参照して説明する。図14は画像復号化装置がデコード時に画像を90゜回転する場合の処理を説明するためのフローチャートを示す。
【0049】
図14において、まず、メモリ11から各ライン0〜Nの先頭アドレスLINEADDRESS(0〜垂直ブロック数+1)をリードしてラインアドレス記録装置12へ転送する(ステップS41)。アドレス生成装置13は水平カウンタHCNTをクリアし(ステップS42)、また、垂直カウンタVCNTをクリアする(ステップS43)。アドレス生成装置13は、アドレスレジスタの値ADDRESS=LINEAD(VCNT)として、垂直カウンタVCNTの示すラインの先頭アドレスLINEAD(VCNT)をアドレスレジスタへセットする(ステップS44)。
【0050】
符号切り出し装置14は、メモリ11から可変長符号を、図12に示す如く、指定されるADDRESSからプラス方向に固定長ビット(64ビット)切り取る(ステップS45)。エントロピー復号装置15は、符号切り出し装置14で切り取った可変長符号をエントロピー復号化する(ステップS46)。この場合、符号化方向と同じ方向でリードしているので順次復号化する。IWAVELET処理装置16は、エントロピー復号装置15で復号化したWAVELETデータをIWAVELET処理を行う(ステップS47)。IWAVELET処理装置16でIWAVELET処理されたN×N(4×4)のブロックの画像データをN×Nバッファ17に格納した後、ラインバッファ18へ転送する(ステップS48)。
【0051】
アドレス生成装置13は、LINEAD(VCNT)=LINEAD(VCNT)+符号長(回転用符号情報)として、垂直カウンタVCNTの示すラインの先頭アドレスの値を更新する(ステップS49)。ついで、アドレス生成装置13は、垂直カウンタVCNT=VCNT+1として、垂直カウンタVCNTをカウントUPする(ステップS50)。
【0052】
そして、アドレス生成装置13は垂直カウンタVCNTが垂直方向のBLOCK数を超えているか否かを判定する(ステップS51)。アドレス生成装置13は、垂直カウンタVCNTが垂直方向のBLOCK数を超えていない場合にはステップS45に移行して、垂直カウンタVCNTが垂直方向のBLOCK数を超えるまで同じ処理を繰り返す。他方、アドレス生成装置13は垂直カウンタVCNTが垂直方向のBLOCK数を超えている場合には、水平カウンタHCNT=HCNT=水平カウンタHCNT+1として、水平カウンタHCNTをカウントUPする(ステップS52)。
【0053】
アドレス生成装置13は、水平カウンタHCNTが水平方向のBLOCK数を超えているか否かを判定する(ステップS53)。水平カウンタHCNTが水平方向のBLOCK数を超えていない場合にはステップS43に移行して、水平カウンタHCNTが水平方向のBLOCK数を超えるまで同じ処理を繰り返す一方、水平カウンタHCNTが水平方向のBLOCK数を超えている場合には、当該フローを終了する。これにより、90゜回転した画像が得られる。
【0054】
図15はデコード時に画像を90゜回転させる場合における、メモリ11からの読み出し順と、ラインバッファ18への書き込み順を示している。同図の黒四角は読み出し方向および書き込み方向を示している。同図に示すように、デコード時に画像を90゜回転させる場合は、読み出し方向と書き込み方向が異なる。図8はデコード時に画像を90゜回転させる場合の具体例を示す。ここでは、画像全体を○1〜○16のブロックに分割している。同図(a)は回転前のブロックの配置を示し、同図(b)は90゜回転後の配置を示す。回転画像を作るためのブロックの読み出しおよび書き込み順序は、上述の図15のようになる。
【0055】
図7の画像復号化装置が、デコード時に180゜回転する場合の処理を図16を参照して説明する。図16は、図7の画像復号化装置が、デコード時に画像を180゜回転する場合の処理を説明するためのフローチャートを示す。
【0056】
図16において、まず、メモリ11から各ライン0〜nの先頭アドレスLINEAD(0〜垂直ブロック数+1)をリードしてアドレス記録装置12へ転送する(ステップS61)。アドレス生成装置13は、垂直カウンタVCNTに垂直BLOCK数+1の値をセットする(ステップS62)。続いて、アドレス生成装置13は、水平カウンタHCNTをクリアする(ステップS63)。
【0057】
そして、アドレス生成装置13は、アドレスレジスタの値ADDRESS=LINEAD(VCNT)として、垂直カウンタVCNTの示すラインの先頭アドレスをアドレス生成装置13のアドレスレジスタへセットする(ステップS64)。符号切り出し装置14は、メモリ11から符号を、図12に示す如く、指定されるADDRESSからマイナス方向に固定長ビット(64ビット)切り取る(ステップS65)。そして、図17に示すように、切り取られた固定長の符号の後ろに付加された符号長をリードし、実際の符号(HUFFMAN CODE)を切り取る(ステップS66)。エントロピー復号装置15は、符号切り出し装置14で切り取った可変長符号に対してエントロピー復号化を行う(ステップS67)。この場合、符号化方向と同じ方向のであるので順次復号化する。
【0058】
IWAVELET処理装置16は、エントロピー復号装置16で復号化したWAVELETデータに対して、IWAVELET処理を行う(ステップS68)。IWVELET処理されたN×N(4×4)のブロックの画像を、N×Nバッファ17に格納した後、ラインバッファ18へ転送する(ステップS69)。アドレス生成装置13は、水平カウンタHCNT=HCNT+1として、水平カウンタHCNTをカウントUPする(ステップS70)。そして、アドレス生成装置13はアドレスレジスタの値ADDRESS=ADDRESS−符号長として、アドレスレジスタの値ADDRESSを更新する(ステップS71)。そして、アドレス生成装置13は水平カウンタHCNTが水平方向のBLOCK数を超えているか否かを判定する(ステップS72)。
【0059】
水平カウンタHCNTが水平方向のBLOCK数を超えていない場合にはステップS65に戻り、水平カウンタHCNTが水平方向のBLOCK数を超えるまで同じ処理を繰り返す。他方、水平カウンタHCNTが水平方向のBLOCK数を超えている場合には、アドレス生成装置13は、垂直カウンタVCNT=VCNT−1として、垂直カウンタVCNTをカウントDOWNする(ステップS73)。そして、アドレス生成装置13は垂直カウンタVCNTが0を超えているか否かを判断する(ステップS74)。垂直カウンタVCNTが0を超えていない場合にはステップS73に戻り、垂直カウンタVCNTが0を超えるまで同じ処理を繰り返す。他方、垂直カウンタVCNTが0を超えている場合には当該フローを終了する。これにより、180゜回転した画像が得られる。
【0060】
図18はデコード時に画像を180゜回転させる場合における、メモリ11からの読み出し順と、ラインバッファ18への書き込み順を示している。同図の黒四角は読み出し方向および書き込み方向を示している。同図に示すように、デコード時に画像を180゜回転させる場合は、読み出し方向と書き込み方向が異なる。図9は、画像を180゜回転させる場合の具体例を示す。ここでは、画像全体を○1〜○16のブロックに分割している。同図(a)は回転前のブロックの配置を示し、同図(b)は180゜回転後の配置を示す。回転画像を作るためのブロックの読み出しおよび書き込み順序は、上述の図18のようになる。
【0061】
図7の画像復号化装置が、デコード時に270゜回転する場合の処理を図19を参照して説明する。図19は図7の画像復号化装置がデコード時に270゜回転する場合の処理を説明するためのフローチャートを示す。
【0062】
図19において、メモリ11から各ラインの先頭アドレスLINEADDRESS(0〜垂直ブロック数+1)をリードしてラインアドレス記録装置12へ転送する(ステップS81)。アドレス生成装置13は、水平カウンタHCNTをクリアする(ステップS82)。そして、垂直カウンタVCNTに「1」の値をセットする(ステップS83)。アドレス生成装置13は、アドレスレジスタの値ADDRESS=LINEAD(VCNT)として、垂直カウンタVCNTの示すラインの先頭アドレスをアドレス生成装置13のアドレスレジスタへセットする(ステップS84)。符号切り出し装置14は、メモリ11から符号を、図12に示す如く、指定されるADDRESSからマイナス方向に固定長ビット(64ビット)切り取る(ステップS85)。そして、図17に示すように、切り取られた固定長の符号の後ろに付加された符号長をリードし、実際の符号(HUFFMAN CODE)を切り取る(ステップS86)。エントロピー復号装置15は、符号切り出し装置14で切り取った可変長符号に対して、エントロピー復号化を行う(ステップS87)。この場合、符号化方向と同じ方向であるので順次復号化する。
【0063】
IWAVELET処理装置16は、エントロピー復号装置15で復号化した
WAVELETデータに対してIWAVELET処理を行う(ステップS88)。IWAVELET処理装置16でIWAVELET処理されたN×N(4×4)のブロックの画像をN×Nバッファ17に格納した後、ラインバッファ18へ転送する(ステップS89)。
【0064】
アドレス生成装置13は、先頭ラインアドレスLINEAD(VCNT)=LINEAD(VCNT)−符号長(回転用符号情報)として、垂直カウンタVCNTの示すラインの先頭アドレス値を更新する(ステップS90)。そして、アドレス生成装置13は、垂直カウンタVCNT=VCNT+1として、垂直カウンタVCNTをカウントUPする(ステップS91)。つづいて、アドレス生成装置13は、垂直カウンタVCNTが垂直方向のBLOCK数を超えているか否かを判定する(ステップS92)。垂直カウンタVCNTが垂直方向のBLOCK数を超えていない場合にはステップS84に戻り、垂直カウンタVCNTが垂直方向のBLOCK数を超えるまで同じ処理を繰り返す。
【0065】
他方、垂直カウンタVCNTが垂直方向のBLOCK数を超えている場合には、アドレス生成装置13は、水平カウンタHCNT=HCNT+1として、水平カウンタHCNTをカウントUPする(ステップS93)。そして、アドレス生成装置13は水平カウンタHCNTが水平方向のBLOCK数を超えているか否かを判定する(ステップS94)。水平カウンタHCNTが水平方向のBLOCK数を超えていない場合にはステップS83に戻り、水平カウンタHCNTが水平方向のBLOCK数を超えるまで同じ処理を繰り返す。他方、水平カウンタHCNTが水平方向のBLOCK数を超えている場合には当該フローを終了する。これにより、270゜回転した画像が得られる。
【0066】
図20はデコード時に画像を270゜回転させる場合における、メモリ11からの読み出し順と、ラインバッファ18への書き込み順を示している。同図の黒四角は読み出し方向および書き込み方向を示している。同図に示すように、デコード時に画像を270゜回転させる場合は、読み出し方向と書き込み方向が異なる。図10は、画像を270゜回転させる場合の具体例を示す。ここでは、画像全体を○1〜○16のブロックに分割している。同図(a)は回転前のブロックの配置を示し、同図(b)は270゜回転後の配置を示す。回転画像を生成するためのブロックの読み出しおよび書き込み順序は、上述の図20のようになる。
【0067】
上記画像復号化装置によれば、アドレス生成装置14は、指定される回転角度に応じて、メモリ11に記憶された先頭アドレスおよび回転用符号情報に基づいてメモリ11の読み出しアドレスを算出し、符号切り出し装置14は、読み出しアドレスに基づき、メモリ11から可変長符号をプラス方向またはマイナス方向に読み出し、エントロピー復号装置15は、可変長符号をエントロピー復号化し、IWAVELET処理装置16は、エントロピー復号化された情報をIWAVELET変換することとしたので、90°,180°,および270°の回転処理を行う場合に、ラインの先頭および終点からブロック単位での可変長符号の読み出しが可能となり、画像を符号のまま90°,180°,および270°の回転処理を行うことが可能となる。
【0068】
上述の画像符号化・復号化方法(図6、図11、図14、図16,および図19参照)は、予め用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することにより実現しても良い。このプログラムは、ハードディスク、フロッピーディスク、CD−ROM、MO、DVD等のコンピュータで読取可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、このプログラムは、上記記録媒体を介して、また伝送媒体として、インターネット等のネットワークを介して配布することができる。
【0069】
なお、上記した実施の形態では、画像符号化装置(図1参照)と画像復号化装置(図7参照)を別個に構成した例を示したが、図21に示すように、メモリ10を共通にして(メモリ8とメモリ11を共通にする)、一体に構成し画像符号化・復号化装置を構築することにしても良い。図21において、図1および図7と同等機能を有する部分は同一符号を付してある。
【0070】
また、上記した実施の形態では、画像ブロックのサイズとして4×4を使用したが、本発明はこれに限られるものではなく、他のサイズとしても良い。本発明は、上記した実施の形態に限定されるものではなく、発明の要旨を変更しない範囲で適宜変形可能である。
【0071】
【発明の効果】
以上説明したように、請求項1にかかる画像符号化装置によれば、分割手段は画像をN×Mのブロックに分割し、符号化手段はN×Mのブロックの画像を可変長符号化し、先頭アドレス算出手段は符号化手段で可変長符号化された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、記憶手段は可変長符号および先頭アドレスを記憶することとしたので、デコード時に、回転処理(例えば、90°,180°,および270°の回転)行う場合に、ラインの先頭および終点からの可変長符号の読み出しが可能となり、符号のまま回転処理を行うことが可能な画像符号化装置を提供することができるという効果を奏する。
【0072】
請求項2にかかる画像符号化装置によれば、分割手段は画像をN×Mのブロックに分割し、符号化手段は記N×Mのブロックの画像を可変長符号化し、回転用符号情報付加手段は符号化手段で可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加し、先頭アドレス算出手段は回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、記憶手段は回転用符号情報が付加された可変長符号および先頭アドレスを記憶することとしたので、デコード時に、回転処理(例えば、90°,180°,および270°の回転)行う場合に、ラインの先頭および終点からブロック単位での可変長符号の読み出しが可能となり、符号のまま回転処理を行うことが可能な画像符号化装置を提供することができるという効果を奏する。
【0073】
請求項3にかかる画像符号化・復号化装置によれば、分割手段は画像をN×Mのブロックに分割し、符号化手段はN×Mのブロックの画像を可変長符号化し、先頭アドレス算出手段は符号化手段で可変長符号化された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、記憶手段は可変長符号および先頭アドレスを記憶し、読み出しアドレス読出手段は指定される回転角度に応じて、先頭アドレスに基づいて記憶手段の読み出しアドレスを算出し、読み出し手段は算出された読み出しアドレスに基づき、記憶手段から可変長符号をプラス方向またはマイナス方向に読み出し、復号化手段は読み出された可変長符号を復号化することとしたので、デコード時に回転処理(例えば、90°,180°,および270°の回転)行う場合に、ラインの先頭および終点からの可変長符号の読み出しが可能となり、符号のまま回転処理を行うことが可能な画像符号化・復号化装置を提供することができるという効果を奏する。
【0074】
請求項4にかかる画像符号化・復号化装置によれば、分割手段は画像をN×Mのブロックに分割し、符号化手段はN×Mのブロックの画像を可変長符号化し、回転用符号情報付加手段は符号化手段で可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加し、先頭アドレス算出手段は回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、記憶手段は回転用符号情報が付加された可変長符号および前記先頭アドレスを記憶し、読み出しアドレス算出手段は指定される回転角度に応じて、前記先頭アドレスおよび前記回転用符号情報に基づいて前記記憶手段の読み出しアドレスを算出し、読み出し手段は算出された読み出しアドレスに基づき、記憶手段から可変長符号をプラス方向またはマイナス方向に読み出し、復号化手段は読み出された可変長符号を復号化することとしたので、デコード時に、回転処理(例えば、90°,180°,および270°の回転)行う場合に、ラインの先頭および終点からブロック単位での可変長符号の読み出しが可能となり、符号のまま回転処理を行うことが可能な画像符号化・復号化装置を提供することができるという効果を奏する。
【0075】
請求項5にかかる画像符号化・復号化方法によれば、画像をN×Mのブロックに分割し、N×Mのブロックの画像を可変長符号化し、可変長符号化された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、可変長符号および先頭アドレスを記憶手段に記憶し、指定される回転角度に応じて、先頭アドレスに基づいて記憶手段の読み出しアドレスを算出し、算出された読み出しアドレスに基づき、記憶手段から可変長符号をプラス方向またはマイナス方向に読み出し、読み出された可変長符号を復号化することとしたので、デコード時に回転処理(例えば、90°,180°,および270°の回転)行う場合に、ラインの先頭および終点から可変長符号の読み出しが可能となり、符号のまま回転処理を行うことが可能な画像符号化・復号化方法を提供することができるという効果を奏する。
【0076】
請求項6にかかる画像符号化・復号化方法によれば、画像をN×Mのブロックに分割し、N×Mのブロックの画像を可変長符号化し、可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加し、回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、回転用符号情報が付加された可変長符号および先頭アドレスを記憶し、指定される回転角度に応じて、先頭アドレスおよび回転用符号情報に基づいて記憶手段の読み出しアドレスを算出し、算出された読み出しアドレスに基づき、記憶手段から可変長符号をプラス方向またはマイナス方向に読み出し、読み出された可変長符号を復号化することとしたので、デコード時に、回転処理(例えば、90°,180°,および270°の回転)行う場合に、ラインの先頭および終点からブロック単位での可変長符号の読み出しが可能となり、符号のまま回転処理を行うことが可能な画像符号化・復号化方法を提供することができるという効果を奏する。
【0077】
請求項7にかかるコンピュータが読み取り可能な記録媒体によれば、請求項5または請求項6に記載の発明の各ステップをコンピュータに実行させるためのプログラムを記録したので、請求項5または請求項6の画像符号化・復号化方法をコンピュータによって実行できるという効果を奏する。
【図面の簡単な説明】
【図1】
本発明にかかる画像符号化装置の構成を示すブロック図である
【図2】
WAVELET変換を説明するための説明図である。
【図3】
符号フォーマットの一例を示す図である。
【図4】
図1のメモリの構成例を示す図である。
【図5】
図1のラインアドレス記録装置が各ライン0〜nの先頭アドレスLINEADDRESSを記録する際のフォーマットの一例を示す図である。
【図6】
図1の画像符号化装置のENCODE時の処理を説明するためのフローチャートである。
【図7】
本発明にかかる画像復号化装置の構成を示すブロック図である。
【図8】
デコード時に画像を90゜回転させる場合の具体例を説明するための説明図である。
【図9】
デコード時に画像を180゜回転させる場合の具体例を説明するための説明図である。
【図10】
デコード時に画像を270゜回転させる場合の具体例を説明するための説明図である。
【図11】
図7の画像復号化装置が、デコード時に画像を回転させない場合(0゜回転)の処理を説明するためのフローチャートを示す。
【図12】
メモリから可変長符号を読み出す際の読み出し方向を説明するための説明図である。
【図13】
図7の画像復号化装置がデコード時に画像を回転させない場合(0゜回転)の処理を説明するためのフローチャートである。
【図14】
図7の画像復号化装置が、デコード時に画像を90゜回転させる場合の処理を説明するためのフローチャートを示す。
【図15】
デコード時に画像を90゜回転させる場合における、メモリからの読み出し順と、ラインバッファへの書き込み順を説明するための説明図である。
【図16】
図7の画像復号化装置がデコード時に画像を180゜回転させる場合の処理を説明するためのフローチャートである。
【図17】
符号切り取り装置が符号(HUFFMAN CODE)を切り取る工程を説明するための説明図である。
【図18】
デコード時に画像を180゜回転させる場合における、メモリからの読み出し順と、ラインバッファへの書き込み順を説明するための説明図である。
【図19】
図7の画像復号化装置がデコード時に画像を270゜回転させる場合の処理を説明するためのフローチャートである。
【図20】
デコード時に画像を270゜回転させる場合における、メモリからの読み出し順と、ラインバッファへの書き込み順を説明するための説明図である。
【図21】
本発明にかかる画像符号化・復号化装置の構成を示すブロック図である。
【符号の説明】
1 ラインバッファ
2 N×Nバッファ
3 WAVELET処理装置
4 エントロピー符号装置
5 回転用符号情報付加装置
6 アドレス生成装置
7 ラインアドレス記録装置
8 メモリ
11 メモリ
12 ラインアドレス記録装置
13 アドレス生成装置
14 符号切り出し装置
15 エントロピー復号装置
16 IWAVELET処理装置
17 N×Nバッファ
18 ラインバッファ
【発明の名称】 画像符号化装置、画像符号化・復号化装置、画像符号化・復号化方法、およびコンピュータが実行可能なプログラムを記録した記録媒体
【特許請求の範囲】
【請求項1】 画像をN×Mのブロックに分割する分割手段と、
前記N×Mのブロックの画像を可変長符号化する符号化手段と、
前記符号化手段で可変長符号化された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する先頭アドレス算出手段と、
前記可変長符号および前記先頭アドレスを記憶する前記記憶手段と、
を備えたことを特徴とする画像符号化装置。
【請求項2】 画像をN×Mのブロックに分割する分割手段と、
前記N×Mのブロックの画像を可変長符号化する符号化手段と、
前記符号化手段で可変長符号化された可変長符号に当該可変長符号の
符号長を示す回転用符号情報を付加する回転用符号情報付加手段と、
前記回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する先頭アドレス算出手段と、
前記回転用符号情報が付加された可変長符号および前記先頭アドレスを記憶する前記記憶手段と、
を備えたことを特徴とする画像符号化装置。
【請求項3】 画像をN×Mのブロックに分割する分割手段と、
前記N×Mのブロックの画像を可変長符号化する符号化手段と、
前記符号化手段で可変長符号化された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する先頭アドレス算出手段と、
前記可変長符号および前記先頭アドレスを記憶する前記記憶手段と、
指定される回転角度に応じて、前記先頭アドレスに基づいて前記記憶手段の読み出しアドレスを算出する読み出しアドレス算出手段と、
前記算出された読み出しアドレスに基づき、前記記憶手段から前記可変長符号をプラス方向またはマイナス方向に読み出す読出手段と、
前記読み出された可変長符号を復号化する復号化手段と、
を備えたことを特徴とする画像符号化・復号化装置。
【請求項4】 画像をN×Mのブロックに分割する分割手段と、
前記N×Mのブロックの画像を可変長符号化する符号化手段と、
前記符号化手段で可変長符号化された可変長符号に当該可変長符号の
符号長を示す回転用符号情報を付加する回転用符号情報付加手段と、
前記回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する先頭アドレス算出手段と、
前記回転用符号情報が付加された可変長符号および前記先頭アドレスを記憶する前記記憶手段と、
指定される回転角度に応じて、前記先頭アドレスおよび前記回転用符号情報に基づいて前記記憶手段の読み出しアドレスを算出する読み出しアドレス算出手段と、
前記算出された読み出しアドレスに基づき、前記記憶手段から前記可変長符号をプラス方向またはマイナス方向に読み出す読出手段と、
前記読み出された可変長符号を復号化する復号化手段と、
を備えたことを特徴とする画像符号化・復号化装置。
【請求項5】 画像をN×Mのブロックに分割する工程と、
前記N×Mのブロックの画像を可変長符号化する工程と、
前記可変長符号化された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する工程と、
前記可変長符号および前記先頭アドレスを前記記憶手段に記憶する工程と、
指定される回転角度に応じて、前記先頭アドレスに基づいて前記記憶手段の読み出しアドレスを算出する工程と、
前記算出された読み出しアドレスに基づき、前記記憶手段から前記可変長符号をプラス方向またはマイナス方向に読み出す工程と、
前記読み出された可変長符号を復号化する工程と、
を含むことを特徴とする画像符号化・復号化方法。
【請求項6】 画像をN×Mのブロックに分割する工程と、
前記N×Mのブロックの画像を可変長符号化する工程と、
前記可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加する工程と、
前記回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する工程と、
前記回転用符号情報が付加された可変長符号および前記先頭アドレスを記憶する工程と、
指定される回転角度に応じて、前記先頭アドレスおよび前記回転用符号情報に基づいて前記記憶手段の読み出しアドレスを算出する工程と、
前記算出された読み出しアドレスに基づき、前記記憶手段から前記可変長符号をプラス方向またはマイナス方向に読み出す工程と、
前記読み出された可変長符号を復号化する工程と、
を含むことを特徴とする画像符号化・復号化方法。
【請求項7】 請求項5または請求項6に記載の発明の各工程をコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【0001】
【産業上の利用分野】
本発明は、画像符号化装置、画像符号化・復号化装置、画像符号化・復号化方法、およびコンピュータが実行可能なプログラムを記録した記録媒体に関し、詳細には、例えば、デジタル複写機、スキャナー、画像ファイリング等の画像記録装置に最適な画像符号化装置、画像符号化・復号化装置、画像符号化・復号化方法、およびコンピュータが実行可能なプログラムを記録した記録媒体に関する。
【0002】
【従来の技術】
従来より、画像データ圧縮技術は、画像データを保持するためのメモリ量を低減したり、画像データの送信時間を短縮したりする目的で画像処理分野で一般に使用されている。画像データの圧縮方式は画像データの処理形態により種々のものがあり、画像データを印字処理する場合においては、限られた容量のメモリ上で画像データを回転して印字するなどの処理を高速に行うという必要性から固定長圧縮が良く使用されている。代表的な固定長圧縮の方式としてGBTC(Generalized Block Truncation Coding)などが知られている。
【0003】
また、他の圧縮方式として画像データを水平周波数方向と垂直周波数方向に複数のブロックに分割すると共に低域周波数のブロックほど細かくするWAVELET変換が知られており、このWAVELET変換は最近、自然階調の画像を効果的に圧縮する方法として注目されている。かかるWAVELET変換は写真のような連続した階調を持った画像の圧縮に適していることが知られている。
【0004】
また、符号化された画像をデコード時に回転させる技術として、例えば、特開平9−74474号公報の画像符号化・復号化装置が知られている。かかる画像符号化・復号化装置によれば、デジタルの画像信号を符号化する符号化器、および該符号化された画像信号を復号化する復号器を有し、得られた画像の回転画像を生成する画像符号化・復号化装置において、前記画像信号にかかわる画像をN×Nのブロックに分割する手段と、前記ブロック毎に独立に該ブロック内の画素を符号化する手段と、前記ブロック内の所定画素の符号長の和を演算する手段と、前記符号化された画素及び前記符号長の和を記憶する手段と、前記復号器において、前記符号長の和をもとに、前記回転画像を構成するための前記N×Nブロックの先頭アドレスを生成する手段と、前記復号化されたN×Nブロック内の画素を復号化する手段と、前記復号化されたN×Nブロック内の画素を回転する手段とを備えたものである。
【0005】
また、特開平9−74475号公報の画像符号化・復号化装置によれば、デジタルの画像信号を符号化する符号化器、および該符号化された画像信号を復号化する復号器を有し、得られた画像の回転画像を生成する画像符号化・復号化装置において、前記画像信号にかかわる画像をN×Nのブロックに分割する手段と、前記N×Nブロックを構成する画素の色を判定する判定手段と、前記判定結果を符号化する第1の符号化手段と、前記判定結果をもとに前記ブロック毎に独立に該ブロック内の画素を符号化する第2の符号化手段と、前記第1の符号化手段及び第2の符号化手段にて符号化されたデータを記憶する手段と、前記復号器において、前記符号化された判定結果を復号化する手段と、前記回転画像を構成するための、前記N×Nブロックの画素のアドレスを生成する手段と、前記N×Nブロック内の画素を復号化する手段と、前記復号化された判定結果及び前記アドレスに基づいて、前記回転されたNラインバッファに記憶する手段とを備えたものである。
【0006】
【発明が解決しようとする課題】
しかしながら、上述のGBTCは、4/8圧縮においては1ブロック4×4ドット、1ドットに3BITの8種類の色を割り振り、また、3/8圧縮においては1ドットに2BITの4種類の色を、また、2/8圧縮においては1BITの2種類の色を割り振っている。このため、特に画素の階調差が激しい1ブロック内ではノッチと呼ばれるゴミのようなものが文字の輪郭などに発生し、画質が劣化するという問題がある。
【0007】
また、エントロピー符号などで圧縮した場合(ハフマン符号など)は、符号のデコード時にエンコードした方向からしかデコードすることができないため、符号のまま90°,180°,270°の回転処理を行うことができないという問題がある。すなわち、180°,270°回転時、ライン(BLOCK)の後ろからアクセスしなければならないことになる。
【0008】
本発明は、上記に鑑みてなされたものであり、ラインの先頭および終点からの可変長符号の読み出しを可能として、符号のまま回転処理を行うことが可能な画像符号化装置、画像符号化・復号化装置、画像符号化・復号化方法、およびコンピュータが実行可能なプログラムを記録した記録媒体を提供することを目的とする。
【0009】
【課題を解決するための手段】
前記課題を解決するため、請求項1にかかる画像符号化装置は、画像をN×Mのブロックに分割する分割手段と、前記N×Mのブロックの画像を可変長符号化する符号化手段と、前記符号化手段で可変長符号化された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する先頭アドレス算出手段と、前記可変長符号および前記先頭アドレスを記憶する前記記憶手段と、を備えたものである。
【0010】
上記発明によれば、分割手段は画像をN×Mのブロックに分割し、符号化手段はN×Mのブロックの画像を可変長符号化し、先頭アドレス算出手段は符号化手段で可変長符号化された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、記憶手段は可変長符号および先頭アドレスを記憶する。
【0011】
請求項2にかかる画像符号化装置は、画像をN×Mのブロックに分割する分割手段と、前記N×Mのブロックの画像を可変長符号化する符号化手段と、前記符号化手段で可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加する回転用符号情報付加手段と、前記回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する先頭アドレス算出手段と、前記回転用符号情報が付加された可変長符号および前記先頭アドレスを記憶する前記記憶手段と、を備えたものである。
【0012】
上記発明によれば、分割手段は画像をN×Mのブロックに分割し、符号化手段は記N×Mのブロックの画像を可変長符号化し、回転用符号情報付加手段は符号化手段で可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加し、先頭アドレス算出手段は回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、記憶手段は回転用符号情報が付加された可変長符号および先頭アドレスを記憶する。
【0013】
請求項3にかかる画像符号化・復号化装置は、画像をN×Mのブロックに分割する分割手段と、前記N×Mのブロックの画像を可変長符号化する符号化手段と、前記符号化手段で可変長符号化された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する先頭アドレス算出手段と、前記可変長符号および前記先頭アドレスを記憶する前記記憶手段と、指定される回転角度に応じて、前記先頭アドレスに基づいて前記記憶手段の読み出しアドレスを算出する読み出しアドレス算出手段と、前記算出された読み出しアドレスに基づき、前記記憶手段から前記可変長符号をプラス方向またはマイナス方向に読み出す読出手段と、前記読み出された可変長符号を復号化する復号化手段と、を備えたものである。
【0014】
上記発明によれば、分割手段は画像をN×Mのブロックに分割し、符号化手段はN×Mのブロックの画像を可変長符号化し、先頭アドレス算出手段は符号化手段で可変長符号化された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、記憶手段は可変長符号および先頭アドレスを記憶し、読み出しアドレス読出手段は指定される回転角度に応じて、先頭アドレスに基づいて記憶手段の読み出しアドレスを算出し、読み出し手段は算出された読み出しアドレスに基づき、記憶手段から可変長符号をプラス方向またはマイナス方向に読み出し、復号化手段は読み出された可変長符号を復号化する。
【0015】
請求項4にかかる画像符号化・復号化装置は、画像をN×Mのブロックに分割する分割手段と、前記N×Mのブロックの画像を可変長符号化する符号化手段と、前記符号化手段で可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加する回転用符号情報付加手段と、前記回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する先頭アドレス算出手段と、前記回転用符号情報が付加された可変長符号および前記先頭アドレスを記憶する前記記憶手段と、指定される回転角度に応じて、前記先頭アドレスおよび前記回転用符号情報に基づいて前記記憶手段の読み出しアドレスを算出する読み出しアドレス算出手段と、前記算出された読み出しアドレスに基づき、前記記憶手段から前記可変長符号をプラス方向またはマイナス方向に読み出す読出手段と、前記読み出された可変長符号を復号化する復号化手段と、を備えたものである。
【0016】
上記発明によれば、分割手段は画像をN×Mのブロックに分割し、符号化手段はN×Mのブロックの画像を可変長符号化し、回転用符号情報付加手段は符号化手段で可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加し、先頭アドレス算出手段は回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、記憶手段は回転用符号情報が付加された可変長符号および前記先頭アドレスを記憶し、読み出しアドレス算出手段は指定される回転角度に応じて、前記先頭アドレスおよび前記回転用符号情報に基づいて前記記憶手段の読み出しアドレスを算出し、読み出し手段は算出された読み出しアドレスに基づき、記憶手段から可変長符号をプラス方向またはマイナス方向に読み出し、復号化手段は読み出された可変長符号を復号化する。
【0017】
請求項5にかかる画像符号化・復号化方法によれば、画像をN×Mのブロックに分割する工程と、前記N×Mのブロックの画像を可変長符号化する工程と、前記可変長符号化された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する工程と、前記可変長符号および前記先頭アドレスを前記記憶手段に記憶する工程と、指定される回転角度に応じて、前記先頭アドレスに基づいて前記記憶手段の読み出しアドレスを算出する工程と、前記算出された読み出しアドレスに基づき、前記記憶手段から前記可変長符号をプラス方向またはマイナス方向に読み出す工程と、前記読み出された可変長符号を復号化する工程と、を含むものである。
【0018】
上記発明によれば、画像をN×Mのブロックに分割し、N×Mのブロックの画像を可変長符号化し、可変長符号化された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、可変長符号および先頭アドレスを記憶手段に記憶し、指定される回転角度に応じて、先頭アドレスに基づいて記憶手段の読み出しアドレスを算出し、算出された読み出しアドレスに基づき、記憶手段から可変長符号をプラス方向またはマイナス方向に読み出し、読み出された可変長符号を復号化する。
【0019】
請求項6にかかる画像符号化・復号化方法は、画像をN×Mのブロックに分割する工程と、前記N×Mのブロックの画像を可変長符号化する工程と、前記可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加する工程と、前記回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、前記画像のライン単位に先頭アドレスを算出する工程と、前記回転用符号情報が付加された可変長符号および前記先頭アドレスを記憶する工程と、指定される回転角度に応じて、前記先頭アドレスおよび前記回転用符号情報に基づいて前記記憶手段の読み出しアドレスを算出する工程と、前記算出された読み出しアドレスに基づき、前記記憶手段から前記可変長符号をプラス方向またはマイナス方向に読み出す工程と、前記読み出された可変長符号を復号化する工程と、を含むものである。
【0020】
上記発明によれば、画像をN×Mのブロックに分割し、N×Mのブロックの画像を可変長符号化し、可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加し、回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、回転用符号情報が付加された可変長符号および先頭アドレスを記憶し、指定される回転角度に応じて、先頭アドレスおよび回転用符号情報に基づいて記憶手段の読み出しアドレスを算出し、算出された読み出しアドレスに基づき、記憶手段から可変長符号をプラス方向またはマイナス方向に読み出し、読み出された可変長符号を復号化する。
【0021】
請求項7にかかるコンピュータが読み取り可能な記録媒体は、請求項5または請求項6に記載の発明の各工程をコンピュータに実行させるためのプログラムを記録したものである。上記発明によれば、コンピュータにより、記録媒体に記録されたプログラムを実行して、請求項5または請求項6に記載の発明の各工程を実現する。
【0022】
【発明の実施の形態】
添付図面を参照して、本発明にかかる画像符号化装置、画像符号化・復号化装置、および画像符号化・復号化方法の好適な実施の形態を詳細に説明する。
【0023】
図1は、本発明にかかる画像符号化装置の構成を示すブロック図である。図1に示す画像符号化装置は、ラインバッファ1、N×Nバッファ2、WAVELET処理装置3,エントロピー符号装置4、回転用符号情報付加装置5、アドレス生成装置6、ラインアドレス記録装置7、およびメモリ8を備えている。
【0024】
上記ラインバッファ1は、N×N(例えば、4×4)ブロックの画像をライン分格納する。N×Nバッファ2は、N×N(例えば、4×4)ブロックの画像を格納する。画像としては、CMYK系、RGB系、およびYUV系のいずれでも良い。
【0025】
WAVELET処理装置3は、WAVELET変換するためのものであり、図2(a)に示すように2×2の画素a,b,c,dのブロックを、図2(b)に示すように、1ブロックが以下のように1つの低周波数成分LLと3つの高周波成分LH、HL、HHに分解し、この演算を繰り返すことにより、4×4の画素のブロックについて、図2(c)に示すような階層を生成する。
【0026】
LL=((a+b)/2+(c+b)/2)/2
HL=(a+b)/2−(c−d)/2
LH=((a−b)+(c−d))/2
HH=(a−b)−(c−d)
【0027】
エントロピー符号装置4は、WAVELET処理装置3で、WAVELET変換されたWAVELETデータをエントロピー符号化する。エントロピー符号化としては、例えば、ハフマン符号化などを用いることができる。
【0028】
回転用符号情報付加装置5は、エントロピー符号装置4で符号化した可変長符号の符号長を算出し、符号長を表す固定長のFLAG(図3に示す例では、LENGTH)を回転用符号情報として付加する。図3は符号フォーマットの一例を示す図である。同図において、DCは図2(c)のLLLLなど最も低周波の生データであり、AC HUFFMAN CODEは、その他の周波数バンドをハフマン符号などのエントロピー符号により符号化したものである。また、LENGTHは可変長符号の符号長を表す固定長のFLAG(回転用符号情報)である。
【0029】
メモリ8は、回転用符号情報が付加された可変長符号およびラインアドレス記録装置7に記録された各ライン0〜nの先頭アドレスLINEADDRESSが記憶される。図4はメモリ8の構成例を示す図である。同図に示す如く、メモリ8には、回転用符号情報が付加された可変長符号が画像のライン単位(ブロック単位)に格納される。
【0030】
アドレス生成装置6は、メモリ8に回転用符号情報が付加された可変長符号をライン単位(ブロック単位)で記憶する際の各ライン0〜Nの先頭アドレスLINEADDRESSを生成する。ラインアドレス記録装置7は、図5に示すように、各ライン0〜nの先頭アドレスLINEADDRESSを記録する。これによりデコード時に、可変長符号のメモリ8内のアドレスを知ることができる。このライン先頭アドレスLINEADDRESSはエンコード終了後、可変長符号と同様にメモリ8に格納される。
【0031】
図1の画像符号化装置のエンコード時の処理を図6のフローチャートを参照して説明する。図6は図1の画像符号化装置のエンコード時の処理を説明するためのフローチャートを示す。
【0032】
図6において、まず、アドレス生成装置6は、ラインアドレス記録装置7のラインの先頭アドレスLINEAD(0)=0ライン先頭アドレスとして、0アドレス(一番先頭のライン)をセットする(ステップS1)。ついで、アドレス生成装置6は、アドレスレジスタの値ADDRESSに0ライン先頭アドレス(一番先頭のライン)をセットする(ステップS2)。
【0033】
アドレス生成装置6は、垂直カウンタVCNTおよび水平カウンタHCNTをクリアする(ステップS3,S4)。そして、ラインバッファ1からN×Nバッファ2にN×Nブロックの画像をリードする(ステップS5)。WAVELET処理装置3は、N×Nバッファ2のN×Nブロックの画像に対してWAVELET処理を行う(ステップS6)。つづいて、エントロピー符号装置4は、WAVELET処理されたWAVELETデータをエントロピー符号化する(ステップS7)。
【0034】
回転用符号情報付加装置5は、エントロピー符号装置4で可変長符号化された可変長符号に回転用符号情報(符号長を表す固定長のFLAG)を付加し(図4参照)、アドレス生成装置6で生成されたメモリ8のアドレスADDRESSにライトする(ステップS8)。続いて、アドレス生成装置6は、アドレスレジスタの値ADDRESS=ADDRESS+符号長(回転用符号情報)として、アドレスレジスタの値ADDRESSを更新する。アドレス生成装置6は、水平カウンタHCNT=HCNT+1として、水平カウンタHCNTをカウントUPする(ステップS10)。そして、アドレス生成装置6は、水平カウンタHCNTが水平方向のBLOCK数を超えていないか否かを判定する(ステップS11)。水平カウンタHCNTが水平方向のBLOCK数を超えていない場合には、ステップS5に戻り、水平カウンタHCNTが水平方向のBLOCK数を超えるまで同じ処理を繰り返す。他方、水平カウンタHCNTが水平方向のBLOCK数を超えた場合、すなわち、1つのラインの処理が終了した場合には、アドレス生成装置6は、垂直カウンタVCNT=VCNT+1として、垂直カウンタVCNTをカウントUPする(ステップS12)。これにより次のラインの処理が行われることになる。
【0035】
アドレス生成装置6は、LINEAD(VCNT)=ADDRESSとして、垂直カウンタVCNTが示すラインの先頭アドレスLINEAD(VCNT)をアドレス生成装置6のアドレスレジスタの示す値ADDRESSで更新する(ステップS13)。そして、アドレス生成装置6は垂直カウンタVCNTが垂直方向のBLOCK数を超えていないか否かを判定する(ステップS14)。垂直カウンタVCNTが垂直方向のBLOCK数を超えていない場合には、ステップS4に戻り、垂直カウンタVCNTが垂直方向のBLOCK数を超えるまで同じ処理を繰り返す。他方、垂直カウンタVCNTが垂直方向のBLOCK数を超えた場合には、アドレス記録装置7に記録した各ライン0〜nの先頭アドレスLINEADDRESSをメモリ8へ転送してメモリ8に記憶する(ステップS15)。
【0036】
上記画像符号化装置によれば、WAVELET処理装置3は、N×Nバッファ2に格納されたN×Nのブロックの画像をWAVELET変換し、エントロピー符号装置4は、変換されたWAVELETデータを可変長符号化し、回転用符号情報付加装置5は可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加し、アドレス生成装置6は回転用符号情報が付加された可変長符号をメモリ8に記憶する際に、画像のライン単位に先頭アドレスを算出し、メモリ8に回転用符号情報が付加された可変長符号および先頭アドレスを記憶することとしたので、デコード時に、90°,180°,および270°の回転処理を行う場合に、ラインの先頭および終点からブロック単位での可変長符号の読み出しが可能となり、符号のまま90°,180°,および270°の回転処理を行うことが可能となる。
【0037】
図7は、本発明にかかる画像復号化装置の構成を示すブロック図である。同図に示す画像復号化装置は、メモリ11、ラインアドレス記録装置12、アドレス生成装置13、符号切り出し装置14、エントロピー復号装置15、IWAVELET処理装置16、N×Nバッファ17、およびラインバッファ18を備える。
【0038】
メモリ11は、上述の回転用符号情報が付加された可変長符号と各ライン0〜nの先頭アドレスLINEADDRESSが格納される。メモリ11に格納される回転用符号情報が付加された可変長符号と各ライン0〜nの先頭アドレスLINEADDRESSは、図1の画像符号化装置のメモリ8に格納された回転用符号情報が付加された可変長符号と各ライン0〜nの先頭アドレスLINEADDRESSが不図示の転送手段で転送されて格納される。
【0039】
ラインアドレス記録装置12は、メモリ11からライン先頭アドレスLINEADDRESSを読み込み、90°、180°、および270°の回転時などに、アドレス生成装置13に各ライン0〜nの先頭アドレスLINEADDRESSを転送する。アドレス生成装置13は、図8〜図10のように各回転(0°、90°、180°、270°)する場合に、メモリ11にアクセスするためのアドレス(読み出しアドレス)を生成する。符号切り出し装置14は、アドレス生成装置13で生成されるアドレスに従ってメモリ11から可変長符号を切り出す。
【0040】
エントロピー復号装置15は、符号切り出し装置14で切り出された可変長符号をエントロピー復号化する。IWAVELET処理装置16は、エントロピー復号装置15で復号化されたWAVELETデータを復号化して画像を生成する。N×Nバッファ17は、N×Nブロックの画像を格納する。画像データとしては、CMYK系、RGB系、およびYUV系のいずれでも良い。上記ラインバッファ1は、N×Nブロックの画像をライン分格納する。
【0041】
以下、図7の画像復号化装置が、デコード時に、可変長符号を0゜回転、90゜回転、180゜回転、および270゜回転する場合の処理を説明する。まず、画像復号化装置が、デコード時に画像を回転させない場合(0゜回転)の処理を図11を参照して説明する。図11は、画像復号化装置が、デコード時に可変長符号を回転させない場合(0゜回転)の処理を説明するためのフローチャートを示す。
【0042】
図11において、まず、メモリ11から各ラインの先頭アドレスLINEAD(0〜垂直ブロック数+1)をリードしてアドレス記録装置12へ転送する(ステップS21)。アドレス生成装置13は、垂直カウンタVCNTをクリアし(ステップS22)、また、水平カウンタHCNTをクリアする(ステップS23)。
【0043】
つづいて、アドレス生成装置13は、アドレスレジスタの値ADDRESS=LINEAD(VCNT)として、垂直カウンタVCNTの示すラインの先頭アドレスLINEAD(VCNT)をアドレスレジスタへセットする(ステップS24)。そして、符号切り出し装置14は、メモリ11から可変長符号を、図12に示す如く、指定されるアドレスADDRESSからプラス方向に固定長ビット(例えば、64ビット)切り取る(ステップS25)。
【0044】
エントロピー復号装置15は、符号切り出し装置14で切り取った可変長符号をエントロピー復号化する(ステップS26)。この場合、エントロピー復号装置15は、符号化方向と同じ方向からリードしているので、切り取った符号を順次復号化する。IWAVELET処理装置16は、エントロピー復号装置16で復号化したWAVELETデータに対してWAVELET処理を行う(ステップS27)。IWAVELET処理装置16でIWAVELET処理されたN×N(4×4)のブロックの画像をN×Nバッファ17に格納した後、ラインバッファ18へ転送する(ステップS28)。
【0045】
アドレス生成装置13は、水平カウンタHCNT=HCNT+1として、水平カウンタHCNTをカウントUPし(ステップS29)、アドレスレジスタの値ADDRESS=ADDRESS+符号長(回転用符号情報)として、アドレスレジスタの値ADDRESSを更新する(ステップS30)。アドレス生成装置13は、水平カウンタHCNTが水平方向のBLOCK数を超えているか否か判定するステップS31)。水平カウンタHCNTが水平方向のBLOCK数を超えていない場合には、ステップS25に戻り、水平カウンタHCNTが水平方向のBLOCK数を超えるまで同じ処理を繰り返す。他方、ステップS31で、水平カウンタHCNTが水平方向のBLOCK数を超えている場合には、1ラインの読み出しが終了したので、垂直カウンタVCNT=VCNT+1として、垂直カウンタVCNTをカウントUPする(ステップS32)。これにより、次のラインの読み出しが行われる。
【0046】
そして、アドレス生成装置13は、垂直カウンタVCNTが垂直方向のBLOCK数を超えているか否かを判定する(ステップS33)。垂直カウンタVCNTが垂直方向のBLOCK数を超えていない場合は、ステップS23に戻り、垂直カウンタVCNTが垂直方向のBLOCK数を超えるまで同じ処理を繰り返す。他方、ステップS33で、垂直カウンタVCNTが垂直方向のBLOCK数を超えている場合には、処理を終了する。
【0047】
図13はデコード時に画像を回転させない場合(0゜回転)における、メモリ11からの読み出し順と、ラインバッファ18への書き込み順を示している。同図の黒四角は読み出し方向および書き込み方向を示している。同図に示すように、デコード時に画像を回転させない場合(0゜回転)は、読み出し方向と書き込み方向が同じとなる。
【0048】
図7の画像復号化装置が、デコード時に画像を90゜回転させる場合の処理を図14を参照して説明する。図14は画像復号化装置がデコード時に画像を90゜回転する場合の処理を説明するためのフローチャートを示す。
【0049】
図14において、まず、メモリ11から各ライン0〜Nの先頭アドレスLINEADDRESS(0〜垂直ブロック数+1)をリードしてラインアドレス記録装置12へ転送する(ステップS41)。アドレス生成装置13は水平カウンタHCNTをクリアし(ステップS42)、また、垂直カウンタVCNTをクリアする(ステップS43)。アドレス生成装置13は、アドレスレジスタの値ADDRESS=LINEAD(VCNT)として、垂直カウンタVCNTの示すラインの先頭アドレスLINEAD(VCNT)をアドレスレジスタへセットする(ステップS44)。
【0050】
符号切り出し装置14は、メモリ11から可変長符号を、図12に示す如く、指定されるADDRESSからプラス方向に固定長ビット(64ビット)切り取る(ステップS45)。エントロピー復号装置15は、符号切り出し装置14で切り取った可変長符号をエントロピー復号化する(ステップS46)。この場合、符号化方向と同じ方向でリードしているので順次復号化する。IWAVELET処理装置16は、エントロピー復号装置15で復号化したWAVELETデータをIWAVELET処理を行う(ステップS47)。IWAVELET処理装置16でIWAVELET処理されたN×N(4×4)のブロックの画像データをN×Nバッファ17に格納した後、ラインバッファ18へ転送する(ステップS48)。
【0051】
アドレス生成装置13は、LINEAD(VCNT)=LINEAD(VCNT)+符号長(回転用符号情報)として、垂直カウンタVCNTの示すラインの先頭アドレスの値を更新する(ステップS49)。ついで、アドレス生成装置13は、垂直カウンタVCNT=VCNT+1として、垂直カウンタVCNTをカウントUPする(ステップS50)。
【0052】
そして、アドレス生成装置13は垂直カウンタVCNTが垂直方向のBLOCK数を超えているか否かを判定する(ステップS51)。アドレス生成装置13は、垂直カウンタVCNTが垂直方向のBLOCK数を超えていない場合にはステップS45に移行して、垂直カウンタVCNTが垂直方向のBLOCK数を超えるまで同じ処理を繰り返す。他方、アドレス生成装置13は垂直カウンタVCNTが垂直方向のBLOCK数を超えている場合には、水平カウンタHCNT=HCNT=水平カウンタHCNT+1として、水平カウンタHCNTをカウントUPする(ステップS52)。
【0053】
アドレス生成装置13は、水平カウンタHCNTが水平方向のBLOCK数を超えているか否かを判定する(ステップS53)。水平カウンタHCNTが水平方向のBLOCK数を超えていない場合にはステップS43に移行して、水平カウンタHCNTが水平方向のBLOCK数を超えるまで同じ処理を繰り返す一方、水平カウンタHCNTが水平方向のBLOCK数を超えている場合には、当該フローを終了する。これにより、90゜回転した画像が得られる。
【0054】
図15はデコード時に画像を90゜回転させる場合における、メモリ11からの読み出し順と、ラインバッファ18への書き込み順を示している。同図の黒四角は読み出し方向および書き込み方向を示している。同図に示すように、デコード時に画像を90゜回転させる場合は、読み出し方向と書き込み方向が異なる。図8はデコード時に画像を90゜回転させる場合の具体例を示す。ここでは、画像全体を○1〜○16のブロックに分割している。同図(a)は回転前のブロックの配置を示し、同図(b)は90゜回転後の配置を示す。回転画像を作るためのブロックの読み出しおよび書き込み順序は、上述の図15のようになる。
【0055】
図7の画像復号化装置が、デコード時に180゜回転する場合の処理を図16を参照して説明する。図16は、図7の画像復号化装置が、デコード時に画像を180゜回転する場合の処理を説明するためのフローチャートを示す。
【0056】
図16において、まず、メモリ11から各ライン0〜nの先頭アドレスLINEAD(0〜垂直ブロック数+1)をリードしてアドレス記録装置12へ転送する(ステップS61)。アドレス生成装置13は、垂直カウンタVCNTに垂直BLOCK数+1の値をセットする(ステップS62)。続いて、アドレス生成装置13は、水平カウンタHCNTをクリアする(ステップS63)。
【0057】
そして、アドレス生成装置13は、アドレスレジスタの値ADDRESS=LINEAD(VCNT)として、垂直カウンタVCNTの示すラインの先頭アドレスをアドレス生成装置13のアドレスレジスタへセットする(ステップS64)。符号切り出し装置14は、メモリ11から符号を、図12に示す如く、指定されるADDRESSからマイナス方向に固定長ビット(64ビット)切り取る(ステップS65)。そして、図17に示すように、切り取られた固定長の符号の後ろに付加された符号長をリードし、実際の符号(HUFFMAN CODE)を切り取る(ステップS66)。エントロピー復号装置15は、符号切り出し装置14で切り取った可変長符号に対してエントロピー復号化を行う(ステップS67)。この場合、符号化方向と同じ方向のであるので順次復号化する。
【0058】
IWAVELET処理装置16は、エントロピー復号装置16で復号化したWAVELETデータに対して、IWAVELET処理を行う(ステップS68)。IWVELET処理されたN×N(4×4)のブロックの画像を、N×Nバッファ17に格納した後、ラインバッファ18へ転送する(ステップS69)。アドレス生成装置13は、水平カウンタHCNT=HCNT+1として、水平カウンタHCNTをカウントUPする(ステップS70)。そして、アドレス生成装置13はアドレスレジスタの値ADDRESS=ADDRESS−符号長として、アドレスレジスタの値ADDRESSを更新する(ステップS71)。そして、アドレス生成装置13は水平カウンタHCNTが水平方向のBLOCK数を超えているか否かを判定する(ステップS72)。
【0059】
水平カウンタHCNTが水平方向のBLOCK数を超えていない場合にはステップS65に戻り、水平カウンタHCNTが水平方向のBLOCK数を超えるまで同じ処理を繰り返す。他方、水平カウンタHCNTが水平方向のBLOCK数を超えている場合には、アドレス生成装置13は、垂直カウンタVCNT=VCNT−1として、垂直カウンタVCNTをカウントDOWNする(ステップS73)。そして、アドレス生成装置13は垂直カウンタVCNTが0を超えているか否かを判断する(ステップS74)。垂直カウンタVCNTが0を超えていない場合にはステップS73に戻り、垂直カウンタVCNTが0を超えるまで同じ処理を繰り返す。他方、垂直カウンタVCNTが0を超えている場合には当該フローを終了する。これにより、180゜回転した画像が得られる。
【0060】
図18はデコード時に画像を180゜回転させる場合における、メモリ11からの読み出し順と、ラインバッファ18への書き込み順を示している。同図の黒四角は読み出し方向および書き込み方向を示している。同図に示すように、デコード時に画像を180゜回転させる場合は、読み出し方向と書き込み方向が異なる。図9は、画像を180゜回転させる場合の具体例を示す。ここでは、画像全体を○1〜○16のブロックに分割している。同図(a)は回転前のブロックの配置を示し、同図(b)は180゜回転後の配置を示す。回転画像を作るためのブロックの読み出しおよび書き込み順序は、上述の図18のようになる。
【0061】
図7の画像復号化装置が、デコード時に270゜回転する場合の処理を図19を参照して説明する。図19は図7の画像復号化装置がデコード時に270゜回転する場合の処理を説明するためのフローチャートを示す。
【0062】
図19において、メモリ11から各ラインの先頭アドレスLINEADDRESS(0〜垂直ブロック数+1)をリードしてラインアドレス記録装置12へ転送する(ステップS81)。アドレス生成装置13は、水平カウンタHCNTをクリアする(ステップS82)。そして、垂直カウンタVCNTに「1」の値をセットする(ステップS83)。アドレス生成装置13は、アドレスレジスタの値ADDRESS=LINEAD(VCNT)として、垂直カウンタVCNTの示すラインの先頭アドレスをアドレス生成装置13のアドレスレジスタへセットする(ステップS84)。符号切り出し装置14は、メモリ11から符号を、図12に示す如く、指定されるADDRESSからマイナス方向に固定長ビット(64ビット)切り取る(ステップS85)。そして、図17に示すように、切り取られた固定長の符号の後ろに付加された符号長をリードし、実際の符号(HUFFMAN CODE)を切り取る(ステップS86)。エントロピー復号装置15は、符号切り出し装置14で切り取った可変長符号に対して、エントロピー復号化を行う(ステップS87)。この場合、符号化方向と同じ方向であるので順次復号化する。
【0063】
IWAVELET処理装置16は、エントロピー復号装置15で復号化した
WAVELETデータに対してIWAVELET処理を行う(ステップS88)。IWAVELET処理装置16でIWAVELET処理されたN×N(4×4)のブロックの画像をN×Nバッファ17に格納した後、ラインバッファ18へ転送する(ステップS89)。
【0064】
アドレス生成装置13は、先頭ラインアドレスLINEAD(VCNT)=LINEAD(VCNT)−符号長(回転用符号情報)として、垂直カウンタVCNTの示すラインの先頭アドレス値を更新する(ステップS90)。そして、アドレス生成装置13は、垂直カウンタVCNT=VCNT+1として、垂直カウンタVCNTをカウントUPする(ステップS91)。つづいて、アドレス生成装置13は、垂直カウンタVCNTが垂直方向のBLOCK数を超えているか否かを判定する(ステップS92)。垂直カウンタVCNTが垂直方向のBLOCK数を超えていない場合にはステップS84に戻り、垂直カウンタVCNTが垂直方向のBLOCK数を超えるまで同じ処理を繰り返す。
【0065】
他方、垂直カウンタVCNTが垂直方向のBLOCK数を超えている場合には、アドレス生成装置13は、水平カウンタHCNT=HCNT+1として、水平カウンタHCNTをカウントUPする(ステップS93)。そして、アドレス生成装置13は水平カウンタHCNTが水平方向のBLOCK数を超えているか否かを判定する(ステップS94)。水平カウンタHCNTが水平方向のBLOCK数を超えていない場合にはステップS83に戻り、水平カウンタHCNTが水平方向のBLOCK数を超えるまで同じ処理を繰り返す。他方、水平カウンタHCNTが水平方向のBLOCK数を超えている場合には当該フローを終了する。これにより、270゜回転した画像が得られる。
【0066】
図20はデコード時に画像を270゜回転させる場合における、メモリ11からの読み出し順と、ラインバッファ18への書き込み順を示している。同図の黒四角は読み出し方向および書き込み方向を示している。同図に示すように、デコード時に画像を270゜回転させる場合は、読み出し方向と書き込み方向が異なる。図10は、画像を270゜回転させる場合の具体例を示す。ここでは、画像全体を○1〜○16のブロックに分割している。同図(a)は回転前のブロックの配置を示し、同図(b)は270゜回転後の配置を示す。回転画像を生成するためのブロックの読み出しおよび書き込み順序は、上述の図20のようになる。
【0067】
上記画像復号化装置によれば、アドレス生成装置14は、指定される回転角度に応じて、メモリ11に記憶された先頭アドレスおよび回転用符号情報に基づいてメモリ11の読み出しアドレスを算出し、符号切り出し装置14は、読み出しアドレスに基づき、メモリ11から可変長符号をプラス方向またはマイナス方向に読み出し、エントロピー復号装置15は、可変長符号をエントロピー復号化し、IWAVELET処理装置16は、エントロピー復号化された情報をIWAVELET変換することとしたので、90°,180°,および270°の回転処理を行う場合に、ラインの先頭および終点からブロック単位での可変長符号の読み出しが可能となり、画像を符号のまま90°,180°,および270°の回転処理を行うことが可能となる。
【0068】
上述の画像符号化・復号化方法(図6、図11、図14、図16,および図19参照)は、予め用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することにより実現しても良い。このプログラムは、ハードディスク、フロッピーディスク、CD−ROM、MO、DVD等のコンピュータで読取可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、このプログラムは、上記記録媒体を介して、また伝送媒体として、インターネット等のネットワークを介して配布することができる。
【0069】
なお、上記した実施の形態では、画像符号化装置(図1参照)と画像復号化装置(図7参照)を別個に構成した例を示したが、図21に示すように、メモリ10を共通にして(メモリ8とメモリ11を共通にする)、一体に構成し画像符号化・復号化装置を構築することにしても良い。図21において、図1および図7と同等機能を有する部分は同一符号を付してある。
【0070】
また、上記した実施の形態では、画像ブロックのサイズとして4×4を使用したが、本発明はこれに限られるものではなく、他のサイズとしても良い。本発明は、上記した実施の形態に限定されるものではなく、発明の要旨を変更しない範囲で適宜変形可能である。
【0071】
【発明の効果】
以上説明したように、請求項1にかかる画像符号化装置によれば、分割手段は画像をN×Mのブロックに分割し、符号化手段はN×Mのブロックの画像を可変長符号化し、先頭アドレス算出手段は符号化手段で可変長符号化された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、記憶手段は可変長符号および先頭アドレスを記憶することとしたので、デコード時に、回転処理(例えば、90°,180°,および270°の回転)行う場合に、ラインの先頭および終点からの可変長符号の読み出しが可能となり、符号のまま回転処理を行うことが可能な画像符号化装置を提供することができるという効果を奏する。
【0072】
請求項2にかかる画像符号化装置によれば、分割手段は画像をN×Mのブロックに分割し、符号化手段は記N×Mのブロックの画像を可変長符号化し、回転用符号情報付加手段は符号化手段で可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加し、先頭アドレス算出手段は回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、記憶手段は回転用符号情報が付加された可変長符号および先頭アドレスを記憶することとしたので、デコード時に、回転処理(例えば、90°,180°,および270°の回転)行う場合に、ラインの先頭および終点からブロック単位での可変長符号の読み出しが可能となり、符号のまま回転処理を行うことが可能な画像符号化装置を提供することができるという効果を奏する。
【0073】
請求項3にかかる画像符号化・復号化装置によれば、分割手段は画像をN×Mのブロックに分割し、符号化手段はN×Mのブロックの画像を可変長符号化し、先頭アドレス算出手段は符号化手段で可変長符号化された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、記憶手段は可変長符号および先頭アドレスを記憶し、読み出しアドレス読出手段は指定される回転角度に応じて、先頭アドレスに基づいて記憶手段の読み出しアドレスを算出し、読み出し手段は算出された読み出しアドレスに基づき、記憶手段から可変長符号をプラス方向またはマイナス方向に読み出し、復号化手段は読み出された可変長符号を復号化することとしたので、デコード時に回転処理(例えば、90°,180°,および270°の回転)行う場合に、ラインの先頭および終点からの可変長符号の読み出しが可能となり、符号のまま回転処理を行うことが可能な画像符号化・復号化装置を提供することができるという効果を奏する。
【0074】
請求項4にかかる画像符号化・復号化装置によれば、分割手段は画像をN×Mのブロックに分割し、符号化手段はN×Mのブロックの画像を可変長符号化し、回転用符号情報付加手段は符号化手段で可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加し、先頭アドレス算出手段は回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、記憶手段は回転用符号情報が付加された可変長符号および前記先頭アドレスを記憶し、読み出しアドレス算出手段は指定される回転角度に応じて、前記先頭アドレスおよび前記回転用符号情報に基づいて前記記憶手段の読み出しアドレスを算出し、読み出し手段は算出された読み出しアドレスに基づき、記憶手段から可変長符号をプラス方向またはマイナス方向に読み出し、復号化手段は読み出された可変長符号を復号化することとしたので、デコード時に、回転処理(例えば、90°,180°,および270°の回転)行う場合に、ラインの先頭および終点からブロック単位での可変長符号の読み出しが可能となり、符号のまま回転処理を行うことが可能な画像符号化・復号化装置を提供することができるという効果を奏する。
【0075】
請求項5にかかる画像符号化・復号化方法によれば、画像をN×Mのブロックに分割し、N×Mのブロックの画像を可変長符号化し、可変長符号化された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、可変長符号および先頭アドレスを記憶手段に記憶し、指定される回転角度に応じて、先頭アドレスに基づいて記憶手段の読み出しアドレスを算出し、算出された読み出しアドレスに基づき、記憶手段から可変長符号をプラス方向またはマイナス方向に読み出し、読み出された可変長符号を復号化することとしたので、デコード時に回転処理(例えば、90°,180°,および270°の回転)行う場合に、ラインの先頭および終点から可変長符号の読み出しが可能となり、符号のまま回転処理を行うことが可能な画像符号化・復号化方法を提供することができるという効果を奏する。
【0076】
請求項6にかかる画像符号化・復号化方法によれば、画像をN×Mのブロックに分割し、N×Mのブロックの画像を可変長符号化し、可変長符号化された可変長符号に当該可変長符号の符号長を示す回転用符号情報を付加し、回転用符号情報が付加された可変長符号を記憶手段に記憶する際に、画像のライン単位に先頭アドレスを算出し、回転用符号情報が付加された可変長符号および先頭アドレスを記憶し、指定される回転角度に応じて、先頭アドレスおよび回転用符号情報に基づいて記憶手段の読み出しアドレスを算出し、算出された読み出しアドレスに基づき、記憶手段から可変長符号をプラス方向またはマイナス方向に読み出し、読み出された可変長符号を復号化することとしたので、デコード時に、回転処理(例えば、90°,180°,および270°の回転)行う場合に、ラインの先頭および終点からブロック単位での可変長符号の読み出しが可能となり、符号のまま回転処理を行うことが可能な画像符号化・復号化方法を提供することができるという効果を奏する。
【0077】
請求項7にかかるコンピュータが読み取り可能な記録媒体によれば、請求項5または請求項6に記載の発明の各ステップをコンピュータに実行させるためのプログラムを記録したので、請求項5または請求項6の画像符号化・復号化方法をコンピュータによって実行できるという効果を奏する。
【図面の簡単な説明】
【図1】
本発明にかかる画像符号化装置の構成を示すブロック図である
【図2】
WAVELET変換を説明するための説明図である。
【図3】
符号フォーマットの一例を示す図である。
【図4】
図1のメモリの構成例を示す図である。
【図5】
図1のラインアドレス記録装置が各ライン0〜nの先頭アドレスLINEADDRESSを記録する際のフォーマットの一例を示す図である。
【図6】
図1の画像符号化装置のENCODE時の処理を説明するためのフローチャートである。
【図7】
本発明にかかる画像復号化装置の構成を示すブロック図である。
【図8】
デコード時に画像を90゜回転させる場合の具体例を説明するための説明図である。
【図9】
デコード時に画像を180゜回転させる場合の具体例を説明するための説明図である。
【図10】
デコード時に画像を270゜回転させる場合の具体例を説明するための説明図である。
【図11】
図7の画像復号化装置が、デコード時に画像を回転させない場合(0゜回転)の処理を説明するためのフローチャートを示す。
【図12】
メモリから可変長符号を読み出す際の読み出し方向を説明するための説明図である。
【図13】
図7の画像復号化装置がデコード時に画像を回転させない場合(0゜回転)の処理を説明するためのフローチャートである。
【図14】
図7の画像復号化装置が、デコード時に画像を90゜回転させる場合の処理を説明するためのフローチャートを示す。
【図15】
デコード時に画像を90゜回転させる場合における、メモリからの読み出し順と、ラインバッファへの書き込み順を説明するための説明図である。
【図16】
図7の画像復号化装置がデコード時に画像を180゜回転させる場合の処理を説明するためのフローチャートである。
【図17】
符号切り取り装置が符号(HUFFMAN CODE)を切り取る工程を説明するための説明図である。
【図18】
デコード時に画像を180゜回転させる場合における、メモリからの読み出し順と、ラインバッファへの書き込み順を説明するための説明図である。
【図19】
図7の画像復号化装置がデコード時に画像を270゜回転させる場合の処理を説明するためのフローチャートである。
【図20】
デコード時に画像を270゜回転させる場合における、メモリからの読み出し順と、ラインバッファへの書き込み順を説明するための説明図である。
【図21】
本発明にかかる画像符号化・復号化装置の構成を示すブロック図である。
【符号の説明】
1 ラインバッファ
2 N×Nバッファ
3 WAVELET処理装置
4 エントロピー符号装置
5 回転用符号情報付加装置
6 アドレス生成装置
7 ラインアドレス記録装置
8 メモリ
11 メモリ
12 ラインアドレス記録装置
13 アドレス生成装置
14 符号切り出し装置
15 エントロピー復号装置
16 IWAVELET処理装置
17 N×Nバッファ
18 ラインバッファ
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000004003A JP2001197496A (ja) | 2000-01-12 | 2000-01-12 | 画像符号化装置、画像符号化・復号化装置、画像符号化・復号化方法、およびコンピュータが実行可能なプログラムを記録した記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000004003A JP2001197496A (ja) | 2000-01-12 | 2000-01-12 | 画像符号化装置、画像符号化・復号化装置、画像符号化・復号化方法、およびコンピュータが実行可能なプログラムを記録した記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001197496A JP2001197496A (ja) | 2001-07-19 |
JP2001197496A5 true JP2001197496A5 (ja) | 2005-06-09 |
Family
ID=18532849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000004003A Pending JP2001197496A (ja) | 2000-01-12 | 2000-01-12 | 画像符号化装置、画像符号化・復号化装置、画像符号化・復号化方法、およびコンピュータが実行可能なプログラムを記録した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2001197496A (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4773223B2 (ja) * | 2006-02-08 | 2011-09-14 | 株式会社リコー | 画像処理装置、画像処理方法、コンピュータ読み取り可能な記録媒体 |
JP5509957B2 (ja) | 2010-03-18 | 2014-06-04 | 株式会社リコー | 画像処理装置および画像処理方法、ならびに、画像形成装置 |
JP6411250B2 (ja) * | 2015-03-12 | 2018-10-24 | 株式会社東芝 | 画像処理装置、及び画像処理方法 |
-
2000
- 2000-01-12 JP JP2000004003A patent/JP2001197496A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5558767B2 (ja) | 画像処理装置及びその処理方法 | |
US6985630B2 (en) | Image processing apparatus and method, program and storage medium | |
JPH0771185B2 (ja) | 画像データ変換方法 | |
US8175401B2 (en) | Image processing apparatus and computer readable medium storing program therefor | |
JP4610450B2 (ja) | 固定長圧縮画像と属性情報のパッキングデータを処理する画像処理装置 | |
JP2001197496A5 (ja) | ||
JP2002027255A (ja) | 画像処理装置及び画像処理方法 | |
JPH0215782A (ja) | 画像符号化方式 | |
JP3619025B2 (ja) | 符号化方法及び符号化装置 | |
JP2002271791A (ja) | 画像符号化装置、画像符号化・復号化装置、画像符号化・復号化方法、およびその方法を実行するためのプログラム | |
JP2001197496A (ja) | 画像符号化装置、画像符号化・復号化装置、画像符号化・復号化方法、およびコンピュータが実行可能なプログラムを記録した記録媒体 | |
JP2003189109A (ja) | 画像処理装置及び方法、並びにコンピュータ・プログラム | |
US6069980A (en) | Adaptive character image generation and synthesis | |
US20040096115A1 (en) | Method for image compression by modified Huffman coding | |
JP3866568B2 (ja) | 画像圧縮方法 | |
JP2004165733A (ja) | 画像変換装置及び画像変換方法並びに記録媒体 | |
JP2007129455A (ja) | 画像符号化装置、画像符号化方法、画像符号化プログラムおよび画像符号化プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP2010028796A (ja) | 画像形成装置、画像変換装置および画像形成方法 | |
JP2006086579A (ja) | 画像処理装置、プログラム、及び記憶媒体 | |
JP4219079B2 (ja) | 画像処理装置 | |
JP2001217722A (ja) | 情報符号化装置及び情報符号化方法及びコンピュータ読み取り可能な記憶媒体 | |
JP2004080815A (ja) | 画像処理装置、画像処理方法および記録媒体 | |
JP2004080095A (ja) | 画像処理装置及び画像処理方法 | |
JP2005277758A (ja) | 画像復号装置 | |
JP6428232B2 (ja) | 画像処理装置及び画像合成方法 |