JP4036665B2 - Image encoding method and image decoding method - Google Patents

Image encoding method and image decoding method Download PDF

Info

Publication number
JP4036665B2
JP4036665B2 JP2002075296A JP2002075296A JP4036665B2 JP 4036665 B2 JP4036665 B2 JP 4036665B2 JP 2002075296 A JP2002075296 A JP 2002075296A JP 2002075296 A JP2002075296 A JP 2002075296A JP 4036665 B2 JP4036665 B2 JP 4036665B2
Authority
JP
Japan
Prior art keywords
tile
unit
image
information
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.)
Expired - Fee Related
Application number
JP2002075296A
Other languages
Japanese (ja)
Other versions
JP2002359745A (en
JP2002359745A5 (en
Inventor
典男 伊藤
伸也 長谷川
寛 草尾
裕之 堅田
友子 青野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2002075296A priority Critical patent/JP4036665B2/en
Publication of JP2002359745A publication Critical patent/JP2002359745A/en
Publication of JP2002359745A5 publication Critical patent/JP2002359745A5/ja
Application granted granted Critical
Publication of JP4036665B2 publication Critical patent/JP4036665B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、ディジタル画像処理の分野に属し、画像データを高能率に符号化する画像符号化方法及びこの画像符号化方法で符号化された符号化データを復号する画像復号方法に関するものである。
【0002】
【従来の技術】
自然画像をデジタルデータに変換してコンピュータ処理するための画像フォーマットとして、フラッシュ・ピックスフォーマット(FlashPix Format Specification Version 1.0)が提案されている。
【0003】
このフォーマットでは、表示・印刷装置の能力やユーザーの要求に応じて必要な解像度のデータを素早く取り出すために、複数の解像度のデータを同時に保持している。また、画像の拡大縮小や編集の際に画像データ内の必要な部分だけを処理することで負荷を軽減できるよう、画像をタイル単位に分割して保持している。
【0004】
フラッシュ・ピックスフォーマットに従って画像を符号化する符号化装置について、図32を用いて説明する。図32(a)は画像の縮小及びタイル分割を示す図であり、図32(b)は符号化装置の一例を示すブロック図である。
【0005】
フラッシュ・ピックスでは最初に図32(a)の画像1〜4に示す1/1〜1/8サイズの画像を生成し、各画像1〜4に対してそれぞれタイル分割及び圧縮を行うという点に特徴がある。
【0006】
まず、図32(a)の画像1を図32(b)の符号化装置で符号化する場合について説明する。ここで、図32(a)の画像1〜4の破線はタイルの境界を表わしている。
【0007】
原画像は、タイル分割部3201で64画素×64画素から成るタイルに分割され、続いてJPEG圧縮部3202でタイル毎に圧縮処理される。各タイル毎の符号化データはタイル分割部3201からのタイル分割情報と合わせて符号化データ統合部3203で一つに統合され、符号化データ1が出力される。
【0008】
次に、図32(a)の画像2について説明する。原画像が1/2縮小部3204で縦横とも1/2に縮小された後、同様にタイル分割部3205、JPEG圧縮部3206、符号化データ統合部3207を経て、符号化データ2となる。
【0009】
図32(a)の縮小画像群(画像2〜4)を生成する縮小処理は、縮小画像全体が1タイル内に収まる大きさになるまで繰り返される。図32(a)の例では、画像3のサイズは、1つのタイルに収まっておらず、さらに1/2縮小処理が行われ、1つのタイル内におさまる画像4のサイズが得られたところで縮小処理を終了する。
【0010】
画像3の符号化データは1/2縮小部3208、タイル分割部3209、JPEG圧縮部3210、符号化データ統合部3211により生成され、画像4の符号化データは1/2縮小部3212、タイル分割部3213、JPEG圧縮部3214、符号化データ統合部3215により生成される。
【0011】
この方式では、1/1サイズ画像の符号化データとは別に、縮小した別解像度の画像についてもそれぞれ符号化データを保持するために、符号化データ量が約1.4倍に増大してしまう点、符号化時には、各解像度で圧縮処理を行うため処理量が大きい点が問題となる。
【0012】
一方、フラッシュ・ピックスとは別に、ウェーブレット(Wavelet)変換による画像圧縮方式があり、この方式では原画像のサイズに対して圧縮を行った一つの符号化データから異なる解像度の画像データを容易に復号することができるので、複数解像度に対応することによる符号化データ量の増大の問題は発生しない。
【0013】
すなわち、前述のフラッシュ・ピックスで符号化データ量が1.4倍となったのに対し、1倍の符号化データ量で複数解像度を復号する要求に答えることができる。
【0014】
ウェーブレット変換圧縮では、図33の基本ブロック図に示す処理が行われる。原画像はウェーブレット変換部3301でウェーブレット変換されたサブバンド分割データとなり、量子化部3302で量子化され、エントロピー符号化部3303でエントロピー符号化された後、符号化データとなる。
【0015】
図33中のウェーブレット変換部3301をより詳細に示したブロック図を図34に、ウェーブレット変換による画像変換を図35に示す。これらは3回の2次元サブバンド分割を行った場合の例である。
【0016】
図35(a)の原画像は、図34の水平方向のローパスフィルタ3401と水平方向のハイパスフィルタ3402とにより、2つの水平方向サブバンドに分割され、各々1/2サブサンプリング部3407、3408によって1/2に間引かれる。
【0017】
分割された2つの水平方向サブバンドは、それぞれ垂直方向についてもローパスフィルタ3403、3405とハイパスフィルタ3404、3406とによるサブバンド分割と、1/2サブサンプリング部3409〜3412によるサブサンプリングとが行われ、この時点で4つのサブバンドに変換される。
【0018】
このうち、水平方向高域、垂直方向高域のサブバンド(図34のヌ)、水平方向高域、垂直方向低域のサブバンド(図34のリ)、水平方向低域、垂直方向高域のサブバンド(図34のチ)は、それぞれ図35(b)のチ、リ、ヌに示すウェーブレット変換係数となる。
【0019】
残りの水平方向、垂直方向とも低域のサブバンド3413についてのみ、再帰的にサブバンド分割を繰り返していく。
【0020】
この再起的なサブバンド分割は、水平方向ローパスフィルタ3414、3426、水平方向ハイパスフィルタ3415、3427、垂直方向ローパスフィルタ3416、3418、3428、3430、垂直方向ハイパスフィルタ3417、3419、3429、3431、及び1/2サブサンプリング部3420〜3425、3432〜3437によってなされる。
【0021】
尚、図34のイ〜トのサブバンドは、図35(b)のイ〜トに対応する。
【0022】
このようにして得られた図35(b)のウェーブレット変換係数を、サブバンド毎に図33の量子化部3302で量子化し、さらに同図のエントロピー符号化部3303でエントロピー符号化して符号化データを得る。尚、エントロピー符号化部3303ではハフマン符号化や算術符号化を用いることができる。
【0023】
一方、ウェーブレット変換の復号は、図36に示すように、符号化データをエントロピー復号部3601でエントロピー復号し、逆量子化部3602で逆量子化した後、逆ウェーブレット変換部3603でサブバンド合成して復号画像を得る。
【0024】
ウェーブレット変換を用いた符号化の特徴として、図35(b)に示すように、解像度に応じた階層構造を持つ点があり、このため復号の際に符号化データの一部、若しくは全体を用いて、異なる解像度の画像を容易に復号することができる。
【0025】
すなわち、図35(b)のイ,ロ,ハ,ニのサブバンドを復号すれば、原画像の1/4の画像を復号することができ、これに加えてホ,ヘ,トを復号すれば、1/2の画像を復号することができ、全てのサブバンドを復号すれば、1/1サイズの画像を復号することができる。
【0026】
ここで、図34におけるH−LP、H−HP、V−LP、V−HPフィルタの動作について、図37を用いて説明する。なお、図37(b)は図37(a)の円で囲った部分を拡大したものである。
【0027】
図37(a)の原画像に対してウェーブレット変換を行うために、原画像右上端近くの画素3701に対するタップ数9ビットの水平方向フィルタの出力を求める場合、フィルタの演算対象は3702に示した領域になる。
【0028】
しかしこの場合、フィルタ演算対象3702の一部は原画像の外にはみ出しており、この部分には画素データが存在しない。垂直フィルタについても同様の問題が生じる。
【0029】
このように、変換対象画像の周辺部では、フィルタのタップ数に応じて画像外部のデータも必要となる。さらにサブバンド分割を繰り返すと、フィルタがはみ出す領域は広くなる。
【0030】
この問題は、一般にはある規則に従って画像を端部で折り返す等の方法で処理される。
【0031】
【発明が解決しようとする課題】
フラッシュ・ピックスのように、複数の解像度の画像に対する符号化データを別々に持つ場合、拡大・縮小などの画像データ処理時の負荷を軽減することができるが、符号化データサイズが約1.4倍に増大する欠点がある。
【0032】
一方、ウェーブレット変換符号化を用いると、原画像のサイズに対して圧縮を行った一つの符号化データのみから複数の解像度データを容易に復号できるため、符号化データサイズは増大しない。
【0033】
しかしながら、フラッシュ・ピックスで用いられている、画像をタイルに分割しタイル単位に符号化する方式(特定の画像領域が画像処理の対象となる場合に、必要な画像タイルのみを画像処理の対象とすることで処理にかかる負荷を軽減できる)をウェーブレット変換符号化方式に適用した場合、ウェーブレット変換に使用するフィルタがタイル境界からはみ出すために、問題が生ずる。
【0034】
すなわち、フラッシュ・ピックスのようなJPEG符号化を利用するものは、符号化処理がタイル内で閉じているためにタイル単位の符号化が容易であったのに対し、ウェーブレット変換符号化では処理がタイルの周囲にはみ出るため、タイル単位での符号化処理・管理が困難になるという問題があった。
【0035】
さらに、従来のウェーブレット変換符号化では、図33のウェーブレット変換部3301の出力、すなわち図35(b)のウェーブレット変換係数を全て保持するメモリが必要であり、この際ウェーブレット変換係数は原画像と同一の解像度を有するため、メモリ必要量が大きくなるという問題があった。この問題は高解像度の画像を扱う場合により顕著となる。
【0036】
本発明はかかる課題に鑑みてなされたものであり、複数の解像度の復号及びタイルによる管理をウェーブレット変換を用いて実現することにより、高機能、高効率の符号化を小規模なハードウェア構成で可能とするものである。
【0037】
【課題を解決するための手段】
本発明の画像符号化方法は、画像データをN画素×M画素のタイルに分割し、各タイルに対応する符号化対象データとして、タイル内のN画素×M画素を出力するステップと、前記各タイルに対応する符号化対象データの周囲に所定のデータを外挿してサブバンド分割を行い、各タイルをそれぞれ独立にウェーブレット符号化するステップと、任意のタイルを独立して、前記サブバンド単位で復号するための管理情報を生成するステップと、前記管理情報を前記符号化情報に付加して、ビットストリームを生成するステップとを具備し、前記管理情報は、各タイルの符号化情報のビットストリーム上での位置を示す情報と、各サブバンドを管理・識別する情報とを含み、前記符号化情報とは独立した位置にまとめて配置されることを特徴とする。
【0038】
本発明の画像復号方法は、画像データをタイルに分割し、各タイルをそれぞれ独立にウェーブレット符号化した符号化情報と、符号化情報を管理するための管理情報とからなるビットストリームを入力とし、必要とするタイル及び解像度に応じた復号画像を復号する画像復号方法であって、前記管理情報は、各タイルもしくは解像度に対応する符号化情報のサイズを含み、前記符号化情報とは独立した位置にまとめて配置され、復号するタイルあるいは解像度に対応する符号化情報の格納位置を前記サイズをもとに解析するステップと、前記格納位置をもとに、ウェーブレット復号を行うステップと、前記ウェーブレット復号されたタイル単位の復号画像を連結するステップとを備えた、画像復号方法である。
【0039】
【発明の実施の形態】
以下、本発明の実施の形態を詳細に説明する。図1は本発明の実施形態1の画像符号化方法を説明するためのブロック図である。
【0040】
図2(a)に示すような原画像の画像データは、まずタイル分割部101で予め決められたN画素×M画素のタイルに分割される。分割された画像を図2(b)に示す。タイル分割部101では、各タイルに対応するデータとしてタイル内のN画素×M画素の画像を出力する。
【0041】
分割されたタイルのうち、図2(b)のタイルiについて、その後の処理を説明する。タイルiの画像データを、ウェーブレット変換部102でサブバンド分割する。
【0042】
ここで、タイルの周辺近くをサブバンド分割処理する際には、タイル周囲のデータを外挿する。すなわち、図37(b)に示したように、ウェーブレット変換に用いるフィルタの演算対象範囲3702がタイル外にはみ出す場合、タイルの外側のデータが必要となるため、ウェーブレット変換部102では、データを外挿してサブバンド分割する。
【0043】
外挿方法としては、例えば図2(c)に示すように、タイル内の画像を折り返して鏡像を生成する手法を用いる。続いて、量子化部103でウェーブレット変換係数を量子化し、エントロピー符号化部104でエントロピー符号化して、タイルiの符号化データを得る。
【0044】
エントロピー符号化には、ハフマン符号化や算術符号化を用いることができる。このウェーブレット変換部102、量子化部103、エントロピー符号化部104をまとめてウェーブレット変換符号化部105と呼ぶ。
【0045】
一方、管理情報生成部106は、タイル分割部101から得られた各タイルの空間的な位置に関するタイル分割情報と、ウェーブレット変換符号化部105から得られた各サブバンドの情報とを用いて、タイル及びサブバンドを管理・識別するための管理情報を生成する。この管理情報は、符号化データ統合部107で利用される。
【0046】
符号化データ統合部107は、管理情報生成部106より出力される管理情報を使用して、エントロピー符号化部104より出力される符号化情報を整理・統合し、かつ管理情報をビットストリーム中に付加して、最終的な符号化データを作成する。
【0047】
ここで、符号化データをサブバンド及びタイルに従って管理するのは、画像を復号する際に、図32(a)に示した例のような異なった解像度の画像や、画像中の特定のタイルのみを復号することを可能にするためである。
【0048】
このように作成された符号化データのビットストリームの一例を図3に示す。ビットストリームは、ビットストリーム全体の情報を管理するヘッダーと、各タイル毎の符号化情報とから構成され、各タイル毎の符号化情報は、タイル毎の情報を管理するタイルヘッダーと、画像タイルを前記ウェーブレット変換符号化部105で符号化したタイル毎の符号化情報とから構成される。
【0049】
タイルヘッダーには、各サブバンドに対応するビット位置の情報が記述されており、ここを参照することで必要なサブバンドに対応するビット列がどこにあるかを知ることができる。
【0050】
勿論、本発明によるビットストリームの構成は、図3に示すものに限定されるものではない。例えば、図3と同じ構成である図4(a)に示したものに対し、図4(b)のように各タイルのサブバンド情報を別々に分離した後、これを並び換え、それぞれのサブバンド情報にタイルヘッダを付加して独立したタイルとする構成としても良い。このようにすると、縮小画像のタイルだけにアクセスすることで、縮小された全体画像を素早く再現することが可能となる。
【0051】
次に、本発明の実施形態2の画像符号化方法について説明する。ここで、実施形態2の画像符号化方法の構成は、図1とともに上述した実施形態1のブロック図と同じであり、タイル分割部101の動作のみが異なっている。このため、以下ではこのタイル分割部101の動作について、図5を用いて説明する。
【0052】
実施形態1のタイル分割部101では、N×M画素のタイルに原画像を分割した後、特定のタイルをウェーブレット変換部102に出力する際に、タイル内部の画像データのみを出力として切り出していたが、実施形態2におけるタイル分割部101は、原画像に適当な窓関数を乗じることでデータを切り出して出力するものを用いる。
【0053】
例えば、図5のタイルijを切り出す場合、原画像データに対して水平方向に窓関数FXi、続いて垂直方向に窓関数FYjを乗じた結果を、タイル分割部101の出力とする。尚、iは水平方向のタイル番号、jは垂直方法のタイル番号である。
【0054】
これにより、図5中の斜線部の画像に、窓関数に応じた重みを乗じた結果が、タイル分割部101の出力となる。ここで窓関数としては、全区間を通じた総和が1となるようなものを用いる。
【0055】
すなわち、
ΣFXi(x)=1(0≦x≦w)
ΣFYj(y)=1(0≦y≦h)
を満たす窓関数を用いる。
【0056】
ただし、wは原画像の幅、hは原画像の高さを表し、x、y軸は原画像の左上角を原点Oとし、それぞれ右向き、下向きに取られているものとする。
【0057】
また、FXi(x)の総和はiに対して、FXj(Y)の総和はjに対して取られているものとする。図5のFXi−1、FXi、FY1、FYj、FYj+1は、このような条件を満たす関数の一部を表したのもである。
【0058】
この窓関数によるデータ切り出しの結果、タイル分割部101の出力には、タイルij内部の画素だけでなく、周囲の画素も窓関数の値に応じた重みで符号化対象データの中に含まれることになる。
【0059】
次に、上述した実施形態1の画像符号化方法で符号化されたデータを復号する画像復号方法について、本発明の実施形態3として説明する。図6は実施形態3の画像復号方法を説明するためのブロック図である。
【0060】
入力となる符号化データは、実施形態1で説明した画像符号化方法で符号化されたものである。管理情報分離部401は符号化データの中からタイル分割に関する管理情報・サブバンドに関する管理情報を分離して取り出す。
【0061】
取り出された管理情報に基づき、符号化データ抽出部402ではユーザの要求に応じて、符号化情報中の必要となるタイル及びサブバンドの符号化情報部分を判定し抽出する。尚、図3に示したビットストリームの例では、管理情報はヘッダー及びタイルヘッダーにある。
【0062】
抽出された符号化情報は、エントロピー復号部403でエントロピー復号され、逆量子化部404で逆量子化され、復号対象のタイルに対応するウェーブレット変換係数が得られる。
【0063】
ウェーブレット変換係数は、逆ウェーブレット変換部405で逆ウェーブレット変換され、対象タイルの復号画像が得られる。このエントロピー復号部403、逆量子化部404、逆ウェーブレット変換部405をまとめてウェーブレット変換復号部406と呼ぶ。
【0064】
さらに、タイル連結部407で、管理情報生成部401からのタイル分割情報に基づき、復号されたタイル群を連結して、所望の領域・解像度の復号画像を得る。
【0065】
図3に示したビットストリームの例を用いて説明すると、低い解像度の全体画像(全タイル)を復号する場合、各タイルヘッダーのサブバンド情報を参照しながら、低解像度のサブバンドに相当する符号化データ部分である1−a、2−a、…、i−a、…を、タイル毎に順次ウェーブレット変換復号部406でウェーブレット変換復号する。
【0066】
そして、得られた低解像度のタイルをタイル連結部407で連結すれば、低解像度の全体画像を得ることができる。
【0067】
また、低解像度復号画像から、ある特定のタイルiを拡大して、最高解像度で表示したい場合、タイルiに相当する符号化情報である第iタイル符号化情報全体を復号すれば良い。
【0068】
すなわち、既に抽出済みの符号化情報i−aに加えてi−bを抽出し、i−aとあわせて復号すれば、所望の復号画像が得られる。勿論、全部の符号化情報(全てのタイル、全てのサブバンド)を復号すれば、高解像度でかつ全ての領域の復号画像を得ることができる。
【0069】
以上のように、ユーザの要求に応じて任意の解像度、任意のタイルの画像を容易に復号することができる。
【0070】
次に、本発明の実施形態4の画像復号方法について説明する。入力となる符号化データは、実施形態2で説明した画像符号化方法により符号化されたものである。ここで、実施形態4の画像復号方法の構成は、図6とともに上述した実施形態3と同じであり、タイル連結部407の動作のみが異なっている。このため、以下ではこのタイル分割部407の動作について、図7を用いて説明する。
【0071】
実施形態2の画像符号化方法では、各タイルの符号化対象画素がタイルの周辺画素を含むため、ウェーブレット変換復号部406で復号されたタイルの復号データの大きさは、タイルの大きさよりも大きくなる。
【0072】
図7においては、タイルは2画素×2画素で構成され、またタイルの復号データの大きさは4画素×4画素である。この場合、タイルijの復号データは図7の斜線部となり、隣接するタイルと1画素の幅だけ重なり合う。
【0073】
タイル連結部407では、タイルの連結の際に、復号データが重なり合う位置については、復号データを足しあわせて画素値を求める。例えば、図7の画素aについては、
a(i−1,j−1)+a(i,j−1)+a(i−1,j)+a(i,j)
によって、画素値を計算する。
【0074】
ここで、a(i,j)は画素aの位置におけるタイルijの復号データを表すものとする。
【0075】
次に、本発明の実施形態5の画像符号化方法について説明する。図8は実施形態5の画像符号化方法を説明するためのブロック図である。
【0076】
実施形態5の画像符号化方法が、図1とともに上述した実施形態1の画像符号化方法と異なっている点は、タイルをウェーブレット変換符号化する際に、タイル周囲を無条件に外挿するのではなく、対象タイルの周囲の別のタイルが存在していればそれを利用する点である。
【0077】
実施形態1の場合と同様、図9(a)に示すように、タイル分割部501で分割された原画像のうち、タイルiについてその後の処理を説明する。タイルiの画像データをウェーブレット変換部503で変換するにあたり、ウェーブレット変換に使用するフィルタがタイルiからはみ出る領域に周囲の画素が存在する場合は、その画素のデータも用いてタイルiをウェーブレット変換する。
【0078】
すなわち、図9(a)のタイルiをウェーブレット変換するために、まず図9(a)のタイルiの周囲のタイル、イ〜チの中から、図9(b)中に斜線で示したウェーブレット変換に必要な周囲画素領域をタイルiに付加した後、タイルiのウェーブレット変換を行う。
【0079】
この付加処理を行うのが周囲画素追加部502で、タイル分割部501から得られるタイル分割情報に基づき、符号化対象のタイルの周囲に別タイルが存在するか否かを判断し、タイルが存在する場合に必要な画素を付加する。
【0080】
上記の例において、周辺画素追加部502は周囲の全てのタイルを追加してタイル画像データを出力するため、これが入力されるウェーブレット変換部503では、タイル単体の画像を処理する実施形態1におけるウェーブレット変換部102に比べて大きな画像を変換する必要がある。
【0081】
変換画像が大きくなると、これを使用した機器は大きな作業領域が必要となり、コストアップと動作速度低下につながる。そこで、前記変換画像をより小さくするような別モードは有効であり、これを次に示す。
【0082】
これは、図9(c),(d)に示すように、周辺画素追加部502で追加する領域をx方向もしくはy方向に制限し、ウェーブレット変換部503へ入力するタイル画像データを小さくするものである。
【0083】
例えば、図9(c)の場合では、符号化対象のタイルの上下に別タイルが存在する場合に必要な画素を付加する。符号化対象のタイルの左右については、タイル内の画像を折り返して鏡像を生成する手法を用いる。また、図9(d)の場合は、図9(c)の場合と上下、左右が逆になる。
【0084】
ウェーブレット変換を行う手法としては、図9(b),(c),(d)のいずれか一つだけを用いてサブバンド分割を繰り返す手法、あるいはサブバンド毎に図9(b),(c),(d)の画素追加方法を切替える手法がある。
【0085】
尚、このウェーブレット変換部503の出力として必要となるのは、符号化対象タイルiのウェーブレット変換係数のみであり、周囲画素追加部502で追加された画素はタイルi内部の画素のウェーブレット変換係数を算出するためにのみ利用される。
【0086】
続いて、量子化部504で量子化を行い、エントロピー符号化部505でエントロピー符号化を行って、タイルiの符号化情報を得る。このウェーブレット変換部503、量子化部504、エントロピー符号化部505をまとめてウェーブレット変換符号化部506と呼ぶ。
【0087】
一方、管理情報生成部507は、タイル分割部501から得られた各タイルの空間的な位置に関するタイル分割情報と、ウェーブレット変換符号化部506から得られた各サブバンドの情報とを用いて、タイル及びサブバンドを管理・識別するための管理情報を生成する。この管理情報は、符号化データ統合部508で利用される。
【0088】
符号化データ統合部508は、管理情報生成部507より出力される管理情報を使用して、エントロピー符号化部505より出力される符号化情報を整理・統合し、かつ管理情報をビットストリーム中に付加して、例えば図3に示した一例のように、最終的な符号化データを作成する。
【0089】
さらに、本発明の実施形態6の画像符号化方法について説明する。実施形態6の画像符号化方法の構成は、図8とともに上述した実施形態5と同じであり、周囲画素追加部502の動作のみが異なっている。このため、以下ではこの周囲画素追加部502の動作について、図10を用いて説明する。
【0090】
図10におけるタイルiの処理を例として説明する。実施形態5として説明した周囲画素追加部502では、タイルiが入力となった場合に、タイルi内の画素のウェーブレット変換係数算出に必要となる画素、すなわちフィルタがはみ出す範囲の画素を全てタイルiに付加していた。この範囲を図10中に斜線で示した周辺画素範囲とする。
【0091】
しかし、一般にタイルiから大きく離れた画素がタイルi内のウェーブレット変換係数に及ぼす影響はかなり小さいため、本実施形態では、付加すべき周辺画素に適当な重みづけ関数を乗じた結果を、タイルiに付加することにより、付加する画素数を減らし演算量を削減する。
【0092】
重みづけ関数には、タイルiに近い部分では1、離れるに従って0に近づくような関数を使用する。図10に示す重みづけ関数はその一例である。図10の例では、重みづけ関数を乗じた結果、実際に付加される画素は網点を施した有効画素部分だけであり、その外部はウェーブレット変換に必要な画素ではあるが0とみなされ付加されない。
【0093】
尚、重みづけ関数としては、図10に示したもののほか、タイルiからの距離がある基準内であれば1、それより離れていれば0となるような階段関数も使用することができる。
【0094】
次に、本発明の実施形態7の画像符号化方法について説明する。図11は実施形態7の画像符号化方法を説明するためのブロック図である。
【0095】
実施形態7の画像符号化方法が、図1とともに上述した実施形態1及び図8とともに上述した実施形態5の画像符号化方法と異なっている点は、原画像をタイル化する前に、原画像全体に対してウェーブレット変換部701でウェーブレット変換を行い、その後でウェーブレット変換部701の出力であるウェーブレット変換係数をタイル単位に並び替えてタイルを構成する点である。
【0096】
図11において、原画像はタイル化される前にウェーブレット変換部701でウェーブレット変換される。次に、タイル構成部702で、空間上で同一のタイルに対応しているウェーブレット変換係数を集めてタイルを構成する並べ替えを行う。
【0097】
ウェーブレット変換部701でウェーブレット変換されて得られたサブバンドの例を図12(a)に示す。この場合、図12(a)の中で最も低い周波数のサブバンド中の係数b0は、他のサブバンド中の係数部分b1,b2,b3,b4,b5,b6,b7,b8,b9と空間的に対応関係にある。
【0098】
ここで、b1〜b3は1×1、b4〜b6は2×2、b7〜b9は4×4個の係数で構成されている。これらb0〜b9をそれぞれのサブバンドから抜き出してきて、図12(b)に示す形に構成したものを1つのタイルとして、その他のウェーブレット変換係数についても全てタイル単位に並べ替えることにより、実施形態5で原画像をタイルに分割してからウェーブレット変換した場合と同様の結果が得られる。
【0099】
尚、b0は一つの係数である必要はなく、k個×l個の係数で構成される係数のブロックであっても構わない。この場合、b1〜b3はk×l、b4〜b6は2k×2l、b7〜b9は4k×4l個の係数で構成されることになる。
【0100】
タイル構成部702から出力されるタイル化されたウェーブレット変換係数は、量子化部703で量子化され、エントロピー符号化部704でエントロピー符号化されて符号化情報となる。
【0101】
一方、管理情報生成部706は、タイル構成部702から得られた各タイルの空間的な位置に関するタイル分割情報と、ウェーブレット変換符号化部705から得られた各サブバンドの情報とを用いて、タイル及びサブバンドを管理・識別するための管理情報を生成する。この管理情報は、符号化データ統合部707で利用される。
【0102】
符号化データ統合部707は、管理情報生成部706より出力される管理情報を使用して、エントロピー符号化部704より出力される符号化情報を整理・統合し、かつ管理情報をビットストリーム中に付加して、例えば図3に示した一例のように、最終的な符号化データを作成する。
【0103】
尚、タイル構成部702は、量子化部703の前段に配置しているが、これに限定されるものではなく、例えば量子化部703の後段に配置しても良い。
【0104】
また、上述した実施形態5乃至7のいずれかの画像符号化方法により符号化されたデータを復号する画像復号方法について、本発明の実施形態8として説明する。図13は実施形態8の画像復号方法を説明するためのブロック図である。入力となる符号化データは、実施形態5乃至7のいずれかの画像符号化方法で符号化された符号化データである。
【0105】
図13において、符号化データの中から、管理情報分離部901でタイル分割に関する管理情報・サブバンドに関する管理情報を分離して取り出し、取り出された管理情報に基づき、符号化データ抽出部902でユーザの要求に応じて、符号化情報中の必要となる符号化情報部分を判定し抽出する。すなわち、必要なタイル及び解像度に対応する符号化データを抽出する。
【0106】
抽出された符号化情報は、タイルを単位としてエントロピー復号部903でエントロピー復号され、逆量子化部904で逆量子化され、復号に必要なタイルに対応するウェーブレット変換係数が得られる。
【0107】
ウェーブレット変換係数は、逆ウェーブレット変換部905で逆ウェーブレット変換され、周囲の画素のデータを含んだ復号画像が得られる。このエントロピー復号部903、逆量子化部904、逆ウェーブレット変換部905をまとめてウェーブレット変換復号部906と呼ぶ。
【0108】
さらに、タイル統合部907で、管理情報分離部901からの管理情報に基づいて、復号されたタイル群を統合する。ここでは、各タイルの復号画像で空間的に重なる部分は重畳させて全体の復号画像を得る。
【0109】
すなわち、図5とともに上述した実施形態2では、タイルの周辺画素を含めてウェーブレット変換している。また、実施形態5の画像符号化方法においては、図9(b)に示すように、ウェーブレット変換時にタイルの周辺画素を用いており、同様に図10とともに上述した実施形態6でも、周囲の画素を用いている。
【0110】
また、実施形態7の画像符号化方法では、タイルの周辺画素を用いる処理は明示されていないが、原画像全体をウェーブレット変換した際に、原理的に実施形態5と等価な処理がなされている。
【0111】
このため、図13のウェーブレット変換復号部906でウェーブレット変換復号した際に、周辺画素のデータが発生し、タイル統合部907では復号したタイルの周辺画素を隣接タイルに重畳させることになる。重畳には画素間の加算を用いる。
【0112】
次に、本発明の実施形態9の画像復号方法について説明する。これは、実施形態8の画像復号方法と同じく、実施形態5乃至7のいずれかの画像符号化方法で符号化された符号化データを入力とする画像復号方法である。図14は実施形態9の画像復号方法を説明するためのブロック図である。
【0113】
図14において、符号化データの中から、管理情報分離部1001でタイル分割に関する管理情報・サブバンドに関する管理情報を分離して取り出し、取り出された管理情報をに基づき、符号化データ抽出部1002でユーザの要求に応じて、符号化情報中の必要となる符号化データ部分を判定し抽出する。すなわち、必要なタイル及び解像度に相当する符号化情報を抽出する。
【0114】
抽出された符号化情報は、タイルを単位としてエントロピー復号部1003でエントロピー復号され、逆量子化部1004で逆量子化され、復号に必要なタイルに対応するウェーブレット変換係数が得られる。ここで、ウェーブレット変換係数並べ換え部1005でウェーブレット変換係数をタイル化する前の状態に並べ換える。
【0115】
すなわち、図12(b)に示すタイル単位に分割されているウェーブレット変換係数を、図12(a)に示す状態に並べ換える。全てのタイルの処理が完了した時点で、図12(a)のウェーブレット変換係数全体が得られる。
【0116】
並べ換えられたウェーブレット変換係数は、一回の逆ウェーブレット変換で復号することができるため、ウェーブレット変換係数を逆ウェーブレット変換部1006で逆ウェーブレット変換すれば、全体の復号画像を得ることができる。
【0117】
このエントロピー復号部1003、逆量子化部1004、逆ウェーブレット変換部1006をまとめてウェーブレット変換復号部1007と呼ぶ。尚、ウェーブレット変換係数並べ換え部1005は、逆量子化部1004の後段に配置しているが、これに限定されるものではなく、例えば逆量子化部1004の前段に配置しても良い。
【0118】
次に、本発明の実施形態10の画像符号化方法について説明する。図15(e)は実施形態1、実施形態2、実施形態5、実施形態6の画像符号化方法におけるウェーブレット変換部(図1の102、図8の503)に対応する部分を示したブロック図である。
【0119】
図15(e)のメモリ1102は、ウェーブレット変換部1101でサブバンド分割されたウェーブレット変換係数を格納するためのものである。この際、メモリ1102には、現在ウェーブレット変換部1101で処理中のタイルに対応するウェーブレット変換係数のみを格納し、タイルのウェーブレット変換が終了したら、データを次の工程である量子化部(図1の103、図8の504)に引き渡す。
【0120】
従って、メモリ1102に格納すべきデータ量は、画像全体に対応するものではなく、1タイルをウェーブレット変換するのに必要なデータ量に抑えることができる。
【0121】
すなわち、タイル化を行わないウェーブレット変換では、図15(a)に示すように、変換対象が画像全体となり、ウェーブレット変換部1101の出力である図15(b)のウェーブレット変換係数の全てをメモリに格納する必要があったのに対し、例えば図15(c)に示すように、タイル化を行うことによって、図15(d)に対応するウェーブレット変換係数が格納できるメモリのみを用意すればよいことになり、必要メモリ量の大幅な削減が可能となる。
【0122】
画像復号方法でも同様な効果が期待できる。本発明の実施形態11の画像復号方法について説明する。図16(e)は実施形態3、実施形態4、実施形態8として上述した画像復号方法のうち、逆ウェーブレット変換部(図6の405、図13の905)に対応する部分を示したブロック図である。
【0123】
図16(e)のメモリ1201には、まず一つのタイルを復号するのに必要なウェーブレット変換係数が格納され、逆ウェーブレット変換部1202でサブバンド合成が行われる。
【0124】
従って、復号対象画像を図16(b)とした場合、タイル化しないウェーブレット変換では、メモリに格納すべきデータ量が、図16(a)に示す全てのウェーブレット変換係数であるのに対し、図16(d)に示すように、タイル分割された画像を復号する場合は、本実施形態のメモリ1201に格納すべきデータ量は、図16(c)に対応するウェーブレット変換係数ですみ、必要なメモリ量が大幅に削減される。
【0125】
以上、説明してきた本発明のいずれの実施形態においても、符号化におけるウェーブレット変換時に複数のサブバンド分割フィルタを用いて、適応的に切り替えることによって構成することができる。
【0126】
ここで、サブバンド分割フィルタとは、上述の従来例として説明したサブバンド分割に用いるローパスフィルタおよびハイパスフィルタである。ウェーブレット変換ではサブバンド分割が繰り返されるが、この時各サブバンド分割で用いるフィルタにはタップ数や係数値によって種々の種類がある。
【0127】
従って、各サブバンド分割で適切なフィルタを用いれば、ウェーブレット変換係数で必要となる符号化対象画像の周辺画素の必要量を、サブバンド毎に制御できることになり、処理量と画質とのバランスをとった最適なウェーブレット変換を行うことができる。
【0128】
このような画像符号化方法に対応した画像復号方法では、ウェーブレット変換時に用いたサブバンド分割フィルタに対応するサブバンド合成フィルタを用い、各サブバンド合成でフィルタを切り替えながら逆ウェーブレット変換が行われる。
【0129】
次に、本発明の実施形態12の画像符号化方法について説明する。本実施形態においては、入力された画像は予め定められた複数の符号化方式のうちの1つの方式で符号化することができるものである。
【0130】
図17は実施形態12の画像符号化方法の一例を説明するためのブロック図であり、本実施例においては、実施形態1の方式と実施形態7の方式とを切替えて符号化するものである。
【0131】
図17において、タイルウェーブレット符号化部1601は、入力画像をタイル単位にウェーブレット符号化し、符号化情報を出力する。また、該タイルウェーブレット符号化部1601は、タイル分割情報、サブバンド情報およびフラグ情報を出力する。
【0132】
管理情報生成部1603は、該タイル分割情報、該サブバンド情報、該フラグ情報を入力とし、これらを組合せて管理情報を生成、出力する。符号化データ結合部107では、該符号化情報と管理情報とを足し合わせた符号化データを出力する。
【0133】
タイルウェーブレット符号化部1601において、入力された原画像はタイル分割部101で分割され、分割画像が第1スイッチ1604の端子0に入力される。また、第1スイッチ1601の端子1には原画像がそのまま入力される。これらの出力の一方が、第1スイッチ1604を介してウェーブレット符号化部1607に入力される。
【0134】
ウェーブレット符号化部1607は、入力された画像に対してウェーブレット符号化する。第1のウェーブレット変換部1608の出力は、第2スイッチ1605を介して直接量子化部103に入力されるか、さらにタイル構成部702を介して量子化部103に入力される。
【0135】
尚、上記第1のウェーブレット変換部1608の動作は、図1とともに上述した実施形態1におけるウェーブレット変換部102と同じであるため、その説明は省略する。
【0136】
そして、フラグ発生部1602にて実施形態1の符号化方式か実施形態7の符号化方式のどちらを使用するかを表すフラグを出力し、同時に第1スイッチ1604、第2スイッチ1605、第3スイッチ1606を制御する。
【0137】
各スイッチ1604,1605,1606が端子0に結合されれば、実施形態1の方式で符号化したのと同等の処理を行い、端子1に結合されれば実施形態7の方式で符号化したのと同等の処理を行う。
【0138】
尚、タイル構成部702の動作は、図11とともに上述した実施形態7のものと同じであるので、その説明は省略する。
【0139】
以上のように、本実施例によれば、タイル単位に符号化を行うことができ、また、画像毎に処理の簡単な実施形態1の方式で符号化するか、処理は若干複雑になるが、タイル境界にひずみの発生しない実施形態7の方式で符号化するかを、選択的に切替えることができる。
【0140】
また、図18は実施形態12の画像符号化方法の別の一例を説明するためのブロック図であり、本実施例においては、実施形態1の方式と実施形態5の方式とを切替えて符号化することができるものである。
【0141】
本実施例の画像符号化方法は、図18に示すように、図17において実施形態7に関わるタイル構成部702を削除し、実施形態5に関わる周辺画素追加部502と第2のウェーブレット符号化部1705とを追加し、さらにこれらを切替えるためのスイッチが変更されている。同図のタイルウェーブレット符号化部1701及びウェーブレット符号化部1702以外の動作は、図17のものと同じなので、その説明は省略する。
【0142】
ウェーブレット符号化部1702は、入力された画像のウェーブレット符号化を行い、符号化情報を出力する。入力は2種類あり、一方は第1のウェーブレット変換部1608に接続され、他方は第2のウェーブレット変換部1705に接続されている。
【0143】
画像が第1のウェーブレット変換部1608に入力された場合、ウェーブレット変換部1702はウェーブレット符号化部1607と同じ動作をする。一方、画像が第2のウェーブレット変換部1705に入力された場合は、該第2のウェーブレット変換部1705の処理がウェーブレット変換部503と同じであるため、ウェーブレット符号化部1702はウェーブレット符号化部506と同じ動作をする。
【0144】
タイルウェーブレット符号化部1701において、入力された画像はタイル単位に分割され第1スイッチ1703に入力される。他方では、該分割された画像にその周辺の画像が足し合わされ、第2スイッチ1704に入力される。フラグ発生部1706は、ウェーブレット符号化部1702にて第1のウェーブレット変換部1608を使用するか、第2のウェーブレット変換部1705を利用するかを選択し、これを示すフラグを出力する。
【0145】
同時に、第1スイッチ1703もしくは第2スイッチ1704の一方のみをオンするような制御を行う。すなわち、第1スイッチ1703がオンの場合は、分割された画像は第1のウェーブレット変換部1608に入力され、実施形態1の方式で符号化したのと同等の処理を行う。第2スイッチ1704がオンの場合は、分割された画像とその周辺の画像とが第2のウェーブレット変換部1705に入力され、実施形態5の方式で符号化したのと同等の処理を行う。
【0146】
これによって、タイル単位に符号化を行うことができ、また、画像毎に処理の簡単な実施形態1の方式で符号化するか、処理は若干複雑になるが、タイル境界にひずみの発生しない実施形態5の方式で符号化するかを、選択的に切替えて符号化することができる。
【0147】
さらに、図19は実施形態12の画像符号化方法の別の一例を説明するためのブロック図であり、本実施例においては、実施形態1の方式、実施形態5の方式、及び実施形態7の方式を切替えて符号化することができるものである。
【0148】
本実施例の画像符号化方法は、図19に示すように、図18において実施形態7に関わるタイル構成部702が追加され、またこれらを切替えるためのスイッチが変更されている。同図のタイルウェーブレット符号化部1801及びウェーブレット符号化部1807以外の動作は、図17のものと同じなので、その説明は省略する。
【0149】
ウェーブレット符号化部1807は、入力された画像のウェーブレット符号化を行い、符号化情報を出力する。第1のウェーブレット変換部1608の出力は第3スイッチ1805を介して直接量子化部103に入力されるか、さらにタイル構成部702を介して量子化部103に入力される。第2のウェーブレット変換部1705の出力は直接量子化部103に入力される。
【0150】
タイルウェーブレット符号化部1801において、入力された画像は直接第1スイッチ1803の端子0に入力されるか、タイルに分割された後第1スイッチ1803の端子1に入力されるか、あるいは該分割されたタイルにその周辺の画素が足し合わされた画像が第1スイッチ1803の端子2に入力される。
【0151】
これらの画像が、第2スイッチ1804を介して第1のウェーブレット変換部1608もしくは第2のウェーブレット変換部1705に入力され、量子化部103およびエントロピー符号化部104を経て、符号化情報として出力される。
【0152】
フラグ発生部1802は、第1スイッチ1803、第2スイッチ1804、第3スイッチ1805、第4スイッチ1806を制御し、0、1、2の3つのモードを切替える。各スイッチ1803、1804、1805、1806の端子に示す番号は、このモード番号を示す。
【0153】
例えば、第1スイッチ1803が端子0に接続されると、残りのスイッチ1804、1805、1806も端子0に接続される。このため、各スイッチ1803、1804、1805、1806が端子0に接続された場合は、実施形態7の方式で符号化したのと同等の処理を行う。
【0154】
また、各スイッチ1803、1804、1805、1806が端子1に接続された場合は、実施形態1の方式で符号化したのと同等の処理を行い、第1スイッチ1803、第2スイッチ1804、第4スイッチ1806が端子2に接続された場合には、実施形態5の方式で符号化したのと同等の処理を行う。
【0155】
これによって、タイル単位に符号化を行うことができ、また、画像毎に処理の簡単な実施形態1の方式で符号化するか、処理は若干複雑になるが、タイル境界にひずみの発生しない実施形態5もしくは実施形態7の方式で符号化するかを、選択的に切替えて符号化することができる。
【0156】
次に、本発明の実施形態13の画像復号方法について説明する。これは、実施形態12として上述した画像符号化方法で符号化されたデータを復号する画像復号方法である。本実施形態においては、入力される符号化データは予め定められた複数の復号方式の中から一つを選んで復号される。
【0157】
図20は実施形態13の画像復号方法の一例を説明するためのブロック図であり、本実施例の画像復号方法においては、実施形態1の方式と実施形態7の方式とを切替えて符号化した符号化データを復号することができるものである。
【0158】
図20において、管理情報分離部401にて分離された符号化情報と管理情報とが、それぞれタイルウェーブレット復号部1901に入力される。タイルウェーブレット復号部1901は、該符号化情報と管理情報とを用いて、タイル単位に復号を行い、復号画像を出力する。
【0159】
該符号化情報は、ウェーブレット復号部1902に入力され、ウェーブレット復号される。該ウェーブレット復号部1902で復号された画像は、第2スイッチ1904を介して直接出力されるか、さらにタイル連結部407を介して出力される。
【0160】
ウェーブレット復号部1902において、逆量子化部404の出力は第1スイッチ1903を介して、直接第1の逆ウェーブレット変換部1906に入力されるか、さらにウェーブレット係数並べ換え部1005を介して、該第1の逆ウェーブレット変換部に入力される。
【0161】
尚、上記第1の逆ウェーブレット変換部1906の動作は、図6とともに上述した実施形態3における逆ウェーブレット変換部405と同じであるため、その説明は省略する。
【0162】
フラグ抽出部1905では、管理情報から第1スイッチ1903と第2スイッチ1904とを制御するフラグを抽出する。各スイッチ1903、1904が端子0に接続された場合は、実施形態3の画像復号方法と同じ動作を行い、端子1に接続された場合は、実施形態9の画像復号方法と同じ動作を行う。
【0163】
尚、タイル構成部407の動作は、図6とともに上述した実施形態3のものと同じであるので、その説明は省略する。
【0164】
以上のように、本実施例によれば、タイル単位に復号することができ、また、画像毎に処理の簡単な実施形態3の方式で復号するか、処理は若干複雑になるが、タイル境界にひずみの発生しない実施形態9の方式で復号するかを、選択的に切替えることができる。
【0165】
また、図21は実施形態13の画像復号方法の別の一例を説明するためのブロック図であり、本実施例の画像復号方法において、実施形態1の方式と実施形態5の方式とを切替えて符号化した符号化データを復号することができるものである。
【0166】
図21において、タイルウェーブレット復号部2001及びウェーブレット復号部2002以外の部分の動作は、図20のものと同じなので、その説明は省略する。
【0167】
ウェーブレット復号部2002は、入力される符号化情報をウェーブレット復号する。この時、逆量子化部404の出力は、第1スイッチ2004を介して、第1の逆ウェーブレット変換部1906か、第2の逆ウェーブレット変換部2003に入力される。
【0168】
該逆第1のウェーブレット変換部1906の出力は、タイル連結部407へ入力され、第2のウェーブレット変換部2003の出力は、タイル統合部907ヘ入力される。
【0169】
尚、上記第2の逆ウェーブレット変換部2003の動作は、図13とともに上述した実施形態8における逆ウェーブレット変換部905と同じであるため、その説明は省略する。
【0170】
タイルウェーブレット復号部2001において、ウェーブレット復号部2002で入力される符号化情報をウェーブレット復号し、該ウェーブレット復号部2002の出力は、タイル連結部407もしくはタイル統合部907のいずれかに連結され、復号画像が再生される。
【0171】
一方、フラグ抽出部2005では、入力された管理情報からフラグを抽出し、該抽出されたフラグにより第1スイッチ2004が切り替わる。第1スイッチ2004が端子0に接続された場合、実施形態3の画像復号方法と同じ動作を行い、端子1に接続された場合は、実施形態8の画像復号方法と同じ動作をする。
【0172】
これによって、タイル単位に復号することができ、また、画像毎に処理の簡単な実施形態3の方式で復号するか、処理は若干複雑になるが、タイル境界にひずみの発生しない実施形態8の方式で復号するかを、選択的に切替えることができる。
【0173】
さらに、図22は実施形態13の画像復号方法の別の一例を説明するためのブロック図であり、本実施例の画像復号方法においては、実施形態1の方式、実施形態5の方式、及び実施形態7の方式を切替えて符号化した符号化データを復号することができるものである。
【0174】
本実施例の画像復号方法は、図22に示すように、図21において、ウェーブレット係数並べ換え部1005が追加され、またこれらを切替えるスイッチが変更されている。同図において、タイルウェーブレット復号部2101及びウェーブレット復号部2102以外の部分の動作は、図20のものと同じなので、その説明は省略する。
【0175】
ウェーブレット復号部2102は、入力される符号化情報をウェーブレット復号する。この時、逆量子化部404の出力は、第1スイッチ2103の端子0を介して、第1の逆ウェーブレット変換部1906に直接入力されるか、第1スイッチ2103の端子1とウェーブレット係数並べ換え部1005とを介して、第1の逆ウェーブレット変換部1906に入力されるか、第1スイッチ2103の端子2を介して、第2の逆ウェーブレット変換部2003に入力される。
【0176】
該第1の逆ウェーブレット変換部1906の出力は、第2スイッチ2104を介して、タイル連結部407へ入力されるか、直接復号画像が出力される。第2の逆ウェーブレット変換部2003の出力は、タイル統合部907ヘ入力される。その他の部分の動作は、ウェーブレット復号部2002と同じなので、その説明は省略する。
【0177】
タイルウェーブレット復号部2101において、フラグ抽出部2105は管理情報からフラグを抽出する。該抽出されたフラグ情報により、第1スイッチ2103、第2スイッチ2104が制御される。また、残りの管理情報は、タイル連結部407とタイル統合部907とに入力される。
【0178】
各スイッチ2103、2104が端子0に接続された場合、実施形態3の画像復号方法と同じ動作を行い、端子1に接続された場合、実施形態9の画像復号方法と同じ動作を行い、第1スイッチ2103が端子2に接続された場合は、第2スイッチ2104の接続先に関わらず、実施形態8の画像復号方法と同じ動作を行う。
【0179】
これによって、タイル単位に復号することができ、また、画像毎に処理の簡単な実施形態3の方式で符号化するか、処理は若干複雑になるが、タイル境界にひずみの発生しない実施形態8もしくは実施形態9の方式で復号するかを、選択的に切替えることができる。
【0180】
次に、本発明の実施形態14の画像符号化方法について説明する。本実施形態においては、タイルを管理するための管理情報にタイルを区別する情報を追加し、目的のタイルの符号化情報を高速に復号できるようにするものである。
【0181】
図23は実施形態14の画像符号化方法の一例を説明するためのブロック図である。図23において、入力された原画像は、タイルウェーブレット符号化部2201でタイル単位に符号化され、管理のための情報(例えば、タイル分割情報、フラグ情報、サブバンド情報)と符号化情報とが生成される。
【0182】
ID生成部2202では、各タイルを区別するためのID情報が生成される。管理情報生成部2203は、該管理のための情報と該ID情報とを足し合わせて、管理情報を生成する。符号化データ結合部2204は、該符号化情報と管理情報とを結合し、さらに各タイルの先頭にタイルの先頭を示すスタートコードを加えて、符号化データを生成する。
【0183】
符号化データのフォーマットの一例としては、図24(a)に示すように、各タイルの情報がそのタイルのスタートコードと管理情報(タイルヘッダー)と符号化情報とから構成される。タイルウェーブレット符号化部2201は、実施形態1、実施形態2、実施形態5、実施形態6、実施形態7、実施形態10、実施形態12、実施形態14における画像符号化方法を使用することができる。
【0184】
ここで、原画像を分割したタイルを区別するため、左上から順に1、2...とID情報を割り当てれば、タイルは任意の順序で符号化でき、また符号化の後に順序を入れ換えることも可能となる。もし、タイルの符号化する順序が予め決められていれば、ID生成部2202を省略することができる。
【0185】
それぞれのタイルは、スタートコードから始まるため、これを目印に各タイルがどこにあるのかを識別することができる。この代わりに、そのタイルのデータ量(符号化情報とタイルヘッダーとを合わせたもの)を用いた場合も、各タイルがどこにあるのかを識別することができる。
【0186】
また、図25は実施形態14の画像符号化方法の別の例を説明するためのブロック図であり、図23に示した画像符号化方法にタイルのサイズ計算を行うデータ量計測部2301を付加したもので、このデータ量計測部2301及び管理情報生成部2302以外の部分の動作説明は省略する。
【0187】
図25において、データ量計測部2301は、タイル毎に符号化されたデータ量を計測して、これを出力する。管理情報生成部2302は、管理のための情報、ID情報、及びタイルのデータ量を足し合わせて、管理情報を生成する。
【0188】
符号化データのフォーマットの一例としては、図24(b)に示すように、各タイルの先頭に該タイルの符号化情報のデータ量が配置され、続いて他の管理情報(タイルヘッダー)と符号化情報とが続く。尚、タイルのデータ量は、必ずしも各タイルの先頭に配置する必要はなく、例えば先頭にまとめることもできる。
【0189】
さらに、図26は実施形態14の画像符号化方法の別の例を説明するためのブロック図であり、図25に示した画像符号化方法に符号化データ並べ変え部2401を追加したもので、他の部分の動作説明は省略する。
【0190】
図26において、符号化データ並べ換え部2401は、符号化データ結合部2204で作成された符号化データから、各タイルのデータ量を抜き出し、これらを符号化データの先頭に配置してから、残りを順番に並べて符号化データを出力する。
【0191】
符号化データのフォーマットの一例としては、図24(c)に示すように、先頭に配置された全てのタイルのデータ量を足し合わせることで、容易に目的のタイルの位置を計算することができる。
【0192】
また、図27に示す構成でも同様の効果をあげることができる。図27は実施形態14の画像符号化方法の別の例を説明するためのブロック図であり、図25に示した画像符号化方法に符号化データ蓄積バッファ2501及び管理情報蓄積バッファ2502を追加したもので、この符号化データ蓄積バッファ2501、管理情報蓄積バッファ2502、及び符号化データ結合部2503以外の動作説明は省略する。
【0193】
図27において、タイルウェーブレット符号化部2201より出力される符号化情報は、符号化データ蓄積バッファ2501で一旦蓄積される。管理情報蓄積バッファ2502は、管理情報生成部2302で生成された各タイルの管理情報を蓄積し、該管理情報からタイルのデータ量を抜き出してから、これを符号化データ結合部2503に出力し、次いで残りの管理情報を出力する。
【0194】
符号化データ結合部2503では、該入力された全タイルのデータ量を最初に出力し、残りの管理情報及び符号化情報を結合して出力する。
【0195】
以上のように、本実施形態によれば、符号化データの中から復号するタイルの符号化情報を高速に検索し、復号することが可能となる。
【0196】
次に、本発明の実施形態15の画像復号方法について説明する。図28は実施形態15の画像復号方法説明するためのブロック図であり、本実施形態は、上述した実施形態14の画像符号化方法で符号化されたデータを復号する画像復号方法である。
【0197】
図28において、復号タイル決定部2603は、ユーザの指示により復号するタイルのIDを決定する。管理情報分離部2606は、符号化データから各タイルの先頭を示すスタートコードを検索し、タイルに関する管理情報と符号化情報とを分離する。
【0198】
データ読み飛ばし制御部2602は、上記管理情報に基づいて、これから復号するタイルのタイルIDが該決定されたタイルIDかどうかを判定し、これが該タイルIDならば、第1スイッチ2605及び第2スイッチ2604をオンにする。こうして、タイルウェーブレット復号部2601は、特定のタイルのみを復号することが可能となる。
【0199】
タイルの管理情報にそのタイルのデータ量が記述されている場合は、管理情報分離部2606は各タイルの先頭を検索する必要はなく、記述されているデータ量分だけ読み飛ばせば良い。尚、タイルウェーブレット復号部2601は、実施形態3、実施形態4、実施形態8、実施形態9、実施形態11、実施形態13、実施形態15の画像復号方法を使用することができる。
【0200】
以上のように、本実施形態によれば、全ての符号化データを復号せずに、タイルの先頭の管理情報のみを復号することで、目的のタイルを素早く復号することができる。
【0201】
次に、本発明の実施形態16の画像符号化方法について説明する。本実施形態においては、タイルを管理するための管理情報に周辺のタイルの情報も追加し、周辺のタイルの符号化情報も高速に復号できるようにするものである。
【0202】
図29(a)は実施形態16の画像符号化方法の一例を説明するためのブロック図である。本実施例の画像符号化方法は、図23に示した実施形態14に周辺タイルID決定部2801を追加したものであり、また、管理情報生成部2802の動作が異なっている。このため、周辺タイルID決定部2801及び管理情報生成部2802以外の部分の説明は省略する。
【0203】
尚、タイルウェーブレット符号化部2801は、実施形態5、実施形態6、実施形態7、実施形態10、実施形態12、実施形態14の画像符号化方法を使用することができる。
【0204】
図29(a)において、周辺タイルID決定部2801は、タイル分割情報、フラグ情報、サブバンド情報、ID生成部2202で生成されたタイルIDから復号時に必要な周辺のタイルIDを決定する。管理情報作成部2802は、タイル分割情報、フラグ情報、サブバンド情報、タイルIDに該周辺のタイルIDを足し合わせた管理情報を生成する。
【0205】
尚、周辺タイルID決定部2801にて決定される複数のタイルIDは、符号化に必要な全てのタイルIDである必要はなく、例えば図29(b)に示すように、符号化するタイルの左上、左下に位置するタイルのタイルIDに限定しても良い。
【0206】
符号化データのフォーマットの一例としては、図24(a)において管理情報(タイルヘッダー)がタイルIDと周辺タイルのIDとを含む構成が考えられる。
【0207】
また、図30は実施形態16の画像符号化方法の別の例を説明するためのブロック図であり、管理情報に周辺タイルの位置情報も含めることによって、復号時にタイル化された符号化情報の検索を高速化しようとするものである。本実施例の画像符号化方法は、図27に示した実施形態14から管理情報蓄積バッファ2502を削除し、データ量格納部2901、相対位置計算部2902、情報蓄積バッファ2904を追加したものである。
【0208】
このデータ量格納部2901、相対位置計算部2902、情報蓄積バッファ2904、及び管理情報生成部2903、ID生成部2905以外の動作は、上述のものと同様であるので、その説明は省略する。
【0209】
図30において、タイルウェーブレット符号化部2201から出力される符号化情報は、全て符号化データ蓄積バッファ2501に蓄積され、また該タイルウェーブレット符号化部2201から出力されるタイル分割情報、フラグ情報、サブバンド情報の各情報は、全て情報蓄積バッファ2904に蓄積される。データ量計測部2301で出力された各タイルの符号化情報のデータ量は、全てデータ量格納部2901に格納される。
【0210】
ID生成部2905は、各タイルを区別するためのID情報を出力し、情報蓄積バッファ2904、データ量格納部2901、及び符号化データ蓄積バッファ2501が蓄積している情報を、タイル単位に出力するよう制御する。データ量格納部2901は、入力されたタイルIDに基づいて、そのタイルのデータ量を管理情報生成部2903に出力し、該タイルIDを持つタイルとその周辺タイルの相対位置を計算するのに必要なタイルのデータ量を相対位置計算部2902へ出力する。
【0211】
相対位置計算部2902では、入力された各タイルのデータ量を用いて、符号化するタイルに対する周辺タイルの符号化情報の存在する相対位置を計算し、その結果を出力する。管理情報生成部2903は、入力されるタイルID情報、タイル分割情報、フラグ情報、サブバンド情報、タイルデータ量、該周辺タイルの相対位置などから管理情報を生成し、符号化データ結合部2503ヘ出力する。
【0212】
このように、全ての符号化データを復号せずに、タイルの先頭の管理情報のみを復号することで、目的のタイルと復号に必要な周辺のタイルを素早く復号できるような符号化データを生成することが可能となる。
【0213】
次に、本発明の実施形態19の画像復号方法について説明する。図31は実施形態19の画像復号方法説明するためのブロック図であり、本実施形態は、上述した実施形態18の画像符号化方法で符号化されたデータを復号する画像復号方法である。
【0214】
本実施形態は、図28に示した実施形態15にバッファ3001を追加したもので、このバッファ3001及びデータ読み飛ばし制御部3002以外の動作は、図28のものと同じであるため、その説明は省略する。
【0215】
図31において、入力された符号化データは、一時バッファ3001に格納され、順次出力される。データ読み飛ばし制御部3002は、入力された管理情報に基づいて、これから復号するタイルのIDを抽出し、これが該決定されたタイルIDもしくは周辺タイルのタイルIDならば、第1スイッチ2605及び第2スイッチ2604をオンにする。
【0216】
上記管理情報が復号に必要な周辺タイルのタイルIDを含んでいるならば、バッファ3001から該周辺タイルの符号化情報を出力するよう制御する。こうして、タイルウェーブレット復号部2601は、特定のタイルとその周辺とを復号することができる。
【0217】
ここで、管理情報に含まれる復号された周辺タイルIDが周辺のタイル数より小さい予め決められた個数(例えば、図29(b)の網点で示したタイル)である場合、復号に必要な他の位置のタイルID(図29(b)の白いタイル)は、上記復号された周辺タイルIDより決定される。
【0218】
尚、タイルウェーブレット復号部2601は、実施形態8、実施形態9、実施形態11、実施形態13、実施形態15の画像復号方法を使用することができる。
【0219】
これによって、全ての符号化データを復号せずに、タイルの先頭の管理情報のみを復号することで、目的のタイルと復号に必要な周辺のタイルとを素早く復号することが可能となる。
【0220】
以上のとおり、本実施形態の画像符号化方法及び画像復号方法を用いれば、符号化データ量を増大させることなしに、ユーザの要求に応じた解像度の復号画像を容易に復号することが可能となる。これは、JPEGを用いるフラッシュ・ピックスが複数の解像度に対応するために、符号化データ量が1.4倍に増大するのに比して大きな利点である。
【0221】
また、画像をタイルに分割して特定領域のみの復号を可能とする際に、ウェーブレット変換による符号化は、タイル内に閉じた処理が原理的に困難であり、タイル分割処理に不向きであったのに対し、本発明ではウェーブレット変換を用いながら、タイル単位での符号化・復号処理を可能にしている。
【0222】
すなわち、画像をタイル単位に符号化することによって、画像の一部を復号したい場合に、画像全体を復号しなくとも、その領域を含むタイルを復号すれば良いため、ランダムアクセス機能を向上させることができる。
【0223】
【発明の効果】
本発明の画像符号化方法及び画像復号方法によれば、画像を復号する際に異なる解像度で復号したり、画像中の特定のタイルのみを復号することができる。また、低解像度の画像を復号したい時は、低い解像度のサブバンド情報のみにアクセスすることで、縮小された全体画像をすばやく再現することができる。
【0224】
さらに、各タイルに対応する符号化情報の格納位置を示す情報を、符号化情報とは独立した位置に置いて管理することによって、容易に目的のタイルの位置を計算することができる。また、全ての符号化情報の復号を行わなくても、符号化情報とは独立して配置された管理情報を用いることで、目的のタイルをすばやく復号することができる。
【図面の簡単な説明】
【図1】 本発明の実施形態1の画像符号化方法説明するためのブロック図である。
【図2】 本発明の実施形態1の画像符号化方法を説明する説明図である。
【図3】 本発明の実施形態1の画像符号化方法におけるビットストリームの一例を示す説明図である。
【図4】 本発明の実施形態1の画像符号化方法におけるビットストリームの別の例を示す説明図である。
【図5】 本発明の実施形態2の画像符号化方法を説明する説明図である。
【図6】 本発明の実施形態3の画像復号方法説明するためのブロック図である。
【図7】 本発明の実施形態4の画像復号方法を説明する説明図である。
【図8】 本発明の実施形態5の画像符号化方法説明するためのブロック図である。
【図9】 本発明の実施形態5の画像符号化方法を説明する説明図である。
【図10】 本発明の実施形態6の画像符号化方法を説明する説明図である。
【図11】 本発明の実施形態7の画像符号化方法説明するためのブロック図である。
【図12】 本発明の実施形態7の画像符号化方法を説明する説明図である。
【図13】 本発明の実施形態8の画像復号方法説明するためのブロック図である。
【図14】 本発明の実施形態9の画像復号方法説明するためのブロック図である。
【図15】 本発明の実施形態10の画像符号化方法説明するためのブロック図、及びその動作を説明する説明図である。
【図16】 本発明の実施形態11の画像復号方法説明するためのブロック図、及びその動作を説明する説明図である。
【図17】 本発明の実施形態12の画像符号化方法の一例を説明するためのブロック図である。
【図18】 本発明の実施形態12の画像符号化方法の別の例を説明するためのブロック図である。
【図19】 本発明の実施形態12の画像符号化方法の別の例を説明するためのブロック図である。
【図20】 本発明の実施形態13の画像復号方法の一例を説明するためのブロック図である。
【図21】 本発明の実施形態13の画像復号方法の別の例を説明するためのブロック図である。
【図22】 本発明の実施形態13の画像復号方法の別の例を説明するためのブロック図である。
【図23】 本発明の実施形態14の画像符号化方法の一例を説明するためのブロック図である。
【図24】 本発明の実施形態14の画像符号化方法におけるビットストリームの一例を説明するための説明図である。
【図25】 本発明の実施形態14の画像符号化方法の別の例を説明するためのブロック図である。
【図26】 本発明の実施形態14の画像符号化方法の別の例を説明するためのブロック図である。
【図27】 本発明の実施形態14の画像符号化方法の別の例を説明するためのブロック図である。
【図28】 本発明の実施形態15の画像復号方法説明するためのブロック図である。
【図29】 本発明の実施形態16の画像符号化方法の一例を説明するためのブロック図、及びその動作を説明する説明図である。
【図30】 本発明の実施形態16の画像符号化方法の別の例を説明するためのブロック図である。
【図31】 本発明の実施形態17の画像復号方法説明するためのブロック図である。
【図32】 従来の技術を説明するためのブロック図、及びその動作を説明する説明図である。
【図33】 従来の技術を示すブロック図である。
【図34】 従来の技術を示すブロック図である。
【図35】 従来の技術を説明する説明図である。
【図36】 従来の技術を示すブロック図である。
【図37】 従来の技術を説明する説明図である。
【符号の説明】
101…タイル分割部、102…ウェーブレット変換部、103…量子化部、104…エントロピー符号化部、105…ウェーブレット変換符号化部、106…管理情報生成部、107…符号化データ統合部、401…管理情報分離部、402…符号化データ抽出部、403…エントロピー符号化部、404…逆量子化部、405…逆ウェーブレット変換部、406…ウェーブレット変換復号部、407…タイル連結部、501…タイル分割部、502…周囲画素追加部、503…ウェーブレット変換部、504…量子化部、505…エントロピー符号化部、506…ウェーブレット変換符号化部、507…管理情報生成部、508…符号化データ統合部、701…ウェーブレット変換部、702…タイル構成部、703…量子化部、704…エントロピー符号化部、705…ウェーブレット変換符号化部、706…管理情報生成部、707…符号化データ統合部、901…管理情報分離部、902…符号化データ抽出部、903…エントロピー復号部、904…逆量子化部、905…逆ウェーブレット変換部、906…ウェーブレット変換復号部、907…タイル統合部、1001…管理情報分離部、1002…符号化データ抽出部、1003…エントロピー復号部、1004…逆量子化部、1005…ウェーブレット変換係数並べ換え部、1006…逆ウェーブレット変換部、1007…ウェーブレット変換復号部、1101…ウェーブレット変換復号部、1102…メモリ、1201…メモリ、1202…逆ウェーブレット変換部、1601、1701、1801、2101、2201…タイルウェーブレット符号化部、1602、1706、1802、1905、2005、2105…フラグ発生部、1603、2203、2302、2802、2903…管理情報生成部、1604、1703、1803、1903、2004、2103、2605第1スイッチ、1605、1704、1804、1904、2104、2604…第2スイッチ、1606、1805…第3スイッチ、1607、1702、1807…ウェーブレット符号化部、1608…第1のウェーブレット符号化部、1705…第2のウェーブレット符号化部、1806…第4スイッチ、2204、2503…符号化データ結合部、1901、2001、2601…タイルウェーブレット復号部、1902、2002、2102…ウェーブレット復号部、1906…第1の逆ウェーブレット変換部、2003…第2の逆ウェーブレット変換部、2202、2905…ID作成部、2301…データ量計測部、2401…符号化データ並べ変え部、2501…符号化データ蓄積バッファ、2502…管理情報蓄積バッファ、2602、3002…データ読み飛ばし制御部、2603…復号タイル決定部、2801…周辺タイルID決定部、2901…データ量格納部、2902…相対位置計算部、3001…バッファ、2606…管理情報分離部、2904…情報蓄積バッファ、3201、3205、3209、3213…タイル分割部、3204、3208、3212…1/2縮小部、3202、3206、3210、3214…JPEG圧縮部、3203、3207、3211、3215…符号化データ統合部、3301…ウェーブレット変換部、3302…量子化部、3303…エントロピー復号部、3304…ウェーブレット変換符号化部、3401、3414、3426…水平方向ローパスフィルタ、3402、3415、3427…水平方向ハイパスフィルタ、3403、3405、3416、3434、3428、3430…垂直方向ロー、パスフィルタ、3404、3406、3417、3419、3429、3431…垂直方向ハイパスフィルタ、3407〜3412、3420〜3425、3432〜3437…1/2サブサンプリング部、3613…水平方向低域・垂直方向低域のサブバンド、3601…エントロピー復号部、3602…逆量子化部、3603…逆ウェーブレット変換部、3604…ウェーブレット変換復号部、3701…フィルタ適用画素、3702…フィルタ演算対象範囲
[0001]
BACKGROUND OF THE INVENTION
The present invention belongs to the field of digital image processing, and relates to an image encoding method for encoding image data with high efficiency and an image decoding method for decoding encoded data encoded by this image encoding method.
[0002]
[Prior art]
As an image format for converting natural images into digital data and performing computer processing, a flash pix format (FlashPix Format Specification Version 1.0) has been proposed.
[0003]
In this format, data of a plurality of resolutions are simultaneously held in order to quickly extract data of a necessary resolution according to the capability of the display / printing apparatus and the user's request. In addition, the image is divided and held in units of tiles so that the load can be reduced by processing only necessary portions in the image data when the image is enlarged or reduced or edited.
[0004]
An encoding apparatus for encoding an image in accordance with the flash pix format will be described with reference to FIG. FIG. 32A is a diagram illustrating image reduction and tile division, and FIG. 32B is a block diagram illustrating an example of an encoding device.
[0005]
In the flash picks, first, 1/1 to 1/8 size images shown in images 1 to 4 in FIG. 32A are generated, and tile division and compression are performed on each image 1 to 4, respectively. There are features.
[0006]
First, the case where the image 1 of FIG. 32A is encoded by the encoding device of FIG. 32B will be described. Here, broken lines in images 1 to 4 in FIG. 32A represent tile boundaries.
[0007]
The original image is divided into tiles each having 64 pixels × 64 pixels by the tile dividing unit 3201, and then compressed for each tile by the JPEG compression unit 3202. The encoded data for each tile is integrated into one by the encoded data integration unit 3203 together with the tile division information from the tile division unit 3201, and the encoded data 1 is output.
[0008]
Next, the image 2 in FIG. 32A will be described. After the original image is reduced to 1/2 in both vertical and horizontal directions by the 1/2 reduction unit 3204, similarly, the encoded data 2 is obtained through the tile division unit 3205, the JPEG compression unit 3206, and the encoded data integration unit 3207.
[0009]
The reduction processing for generating the reduced image group (images 2 to 4) in FIG. 32A is repeated until the size of the entire reduced image is within one tile. In the example of FIG. 32A, the size of the image 3 does not fit in one tile, and is further reduced by ½ reduction processing when the size of the image 4 that fits in one tile is obtained. The process ends.
[0010]
The encoded data of image 3 is generated by a 1/2 reduction unit 3208, a tile division unit 3209, a JPEG compression unit 3210, and an encoded data integration unit 3211. The encoded data of image 4 is generated by a 1/2 reduction unit 3212, tile division. Generated by the unit 3213, the JPEG compression unit 3214, and the encoded data integration unit 3215.
[0011]
In this method, in addition to the encoded data of the 1/1 size image, the encoded data is also held for each of the reduced resolution images, so that the encoded data amount increases by about 1.4 times. On the other hand, at the time of encoding, a problem arises in that the amount of processing is large because compression processing is performed at each resolution.
[0012]
On the other hand, apart from flash pix, there is an image compression method by wavelet transform. In this method, image data with different resolution can be easily decoded from one encoded data that is compressed for the size of the original image. Therefore, there is no problem of an increase in the amount of encoded data due to support for multiple resolutions.
[0013]
That is, while the encoded data amount has increased by 1.4 times with the above-described flash pix, it is possible to respond to a request for decoding a plurality of resolutions with an encoded data amount of 1 ×.
[0014]
In the wavelet transform compression, the processing shown in the basic block diagram of FIG. 33 is performed. The original image becomes subband division data wavelet transformed by the wavelet transform unit 3301, quantized by the quantization unit 3302, entropy coded by the entropy coding unit 3303, and becomes coded data.
[0015]
FIG. 34 is a block diagram showing the wavelet transformation unit 3301 in FIG. 33 in more detail, and FIG. 35 shows image transformation by wavelet transformation. These are examples when three-dimensional two-dimensional subband division is performed.
[0016]
The original image in FIG. 35A is divided into two horizontal subbands by a horizontal low-pass filter 3401 and a horizontal high-pass filter 3402 in FIG. 34, and is divided by ½ subsampling units 3407 and 3408, respectively. Decimated by half.
[0017]
The divided two horizontal sub-bands are also sub-band divided by the low-pass filters 3403 and 3405 and the high-pass filters 3404 and 3406 and sub-sampling by the 1/2 sub-sampling units 3409 to 3412 in the vertical direction. At this point, it is converted into four subbands.
[0018]
Of these, the horizontal high band, the vertical high band subband (Fig. 34), the horizontal high band, the vertical low band (Fig. 34), the horizontal low band, the vertical high band. The subbands (H in FIG. 34) are wavelet transform coefficients indicated by H, R, and N in FIG. 35B, respectively.
[0019]
Subband division is repeated recursively only for the remaining low-frequency subband 3413 in both the horizontal and vertical directions.
[0020]
This recursive subband splitting includes horizontal low-pass filters 3414, 3426, horizontal high-pass filters 3415, 3427, vertical low-pass filters 3416, 3418, 3428, 3430, vertical high-pass filters 3417, 3419, 3429, 3431, and This is done by 1/2 sub-sampling units 3420-3425, 3432-3437.
[0021]
Note that the sub-bands (i) to (e) in FIG. 34 correspond to (i) to (b) in FIG.
[0022]
The wavelet transform coefficient of FIG. 35B obtained in this way is quantized by the quantization unit 3302 of FIG. 33 for each subband, and further entropy-encoded by the entropy encoding unit 3303 of FIG. Get. The entropy encoding unit 3303 can use Huffman encoding or arithmetic encoding.
[0023]
On the other hand, as shown in FIG. 36, wavelet transform decoding is performed by entropy decoding encoded data by an entropy decoding unit 3601, dequantizing by an inverse quantization unit 3602, and then subband synthesis by an inverse wavelet transform unit 3603. To obtain a decoded image.
[0024]
As a feature of encoding using wavelet transform, as shown in FIG. 35 (b), there is a point having a hierarchical structure corresponding to the resolution. For this reason, part or all of the encoded data is used for decoding. Thus, images with different resolutions can be easily decoded.
[0025]
That is, if the subbands a, b, c, and d in FIG. 35B are decoded, a quarter of the original image can be decoded, and in addition to this, h, f, and g can be decoded. For example, a 1/2 image can be decoded, and if all subbands are decoded, a 1/1 size image can be decoded.
[0026]
Here, the operation of the H-LP, H-HP, V-LP, and V-HP filters in FIG. 34 will be described with reference to FIG. FIG. 37 (b) is an enlarged view of a portion surrounded by a circle in FIG. 37 (a).
[0027]
In order to perform wavelet transform on the original image of FIG. 37A, when obtaining the output of a horizontal filter with a tap number of 9 bits for the pixel 3701 near the upper right end of the original image, the calculation target of the filter is indicated by 3702 Become an area.
[0028]
However, in this case, a part of the filter calculation target 3702 protrudes outside the original image, and no pixel data exists in this part. Similar problems arise with vertical filters.
[0029]
As described above, in the peripheral portion of the conversion target image, data outside the image is required according to the number of taps of the filter. If the subband division is repeated further, the region where the filter protrudes becomes wider.
[0030]
This problem is generally handled by a method such as folding an image at an end according to a certain rule.
[0031]
[Problems to be solved by the invention]
In the case of having separately encoded data for images of a plurality of resolutions such as flash pix, the load at the time of image data processing such as enlargement / reduction can be reduced, but the encoded data size is about 1.4. There is a disadvantage that doubles.
[0032]
On the other hand, when wavelet transform coding is used, a plurality of resolution data can be easily decoded from only one piece of coded data obtained by compressing the size of the original image, so that the coded data size does not increase.
[0033]
However, the method used in flash picks to divide an image into tiles and encode them in tile units (when a specific image area is the target of image processing, only the necessary image tiles are subject to image processing. If this is applied to the wavelet transform coding method, the filter used for the wavelet transform protrudes from the tile boundary.
[0034]
In other words, those using JPEG encoding such as Flash Picks are easy to encode in units of tiles because the encoding process is closed in the tile, whereas in wavelet transform encoding, the processing is easy. Since it protrudes around the tile, there is a problem that encoding processing and management in tile units becomes difficult.
[0035]
Furthermore, the conventional wavelet transform coding requires a memory that holds all the output of the wavelet transform unit 3301 in FIG. 33, that is, the wavelet transform coefficients in FIG. 35B. At this time, the wavelet transform coefficients are the same as the original image. Therefore, there is a problem that the required amount of memory becomes large. This problem becomes more prominent when dealing with high-resolution images.
[0036]
The present invention has been made in view of such a problem, and realizes high-function, high-efficiency coding with a small-scale hardware configuration by realizing the decoding of a plurality of resolutions and management by tile using wavelet transform. It is possible.
[0037]
[Means for Solving the Problems]
  The image encoding method of the present invention divides image data into tiles of N pixels × M pixels, and outputs N pixels × M pixels in the tile as encoding target data corresponding to each tile; The subband division is performed by extrapolating predetermined data around the encoding target data corresponding to the tile, and each tile is independently wavelet-encoded. Generating management information for decoding; and adding the management information to the encoded information to generate a bitstream, wherein the management information is a bitstream of encoded information of each tile. Information that indicates the position above and information that manages and identifies each subband.Therefore, they are arranged together at a position independent of the encoded information.It is characterized by that.
[0038]
  Image decoding of the present inventionMethodIs the image dataTheEach tile, and each tile is independentNiEncoded information obtained by wavelet encoding;Manage encoding informationA bitstream consisting of management information forAs an input, the decoded image corresponding to the required tile and resolutionAn image decoding method for decoding, comprising:The management information includes the size of the encoding information corresponding to each tile or resolution, and is collectively arranged at a position independent of the encoding information, and the storage position of the encoding information corresponding to the tile or resolution to be decoded is described above. Analyzing based on size, and based on the storage location,Performing wavelet decoding and said wavelet decodingTataIlunitConcatenated decoded imagesDoStep andAn image decoding method provided.
[0039]
DETAILED DESCRIPTION OF THE INVENTION
  Hereinafter, embodiments of the present invention will be described in detail. FIG. 1 shows an image encoding according to the first embodiment of the present invention.How to explainIt is a block diagram.
[0040]
The image data of the original image as shown in FIG. 2A is first divided into tiles of N pixels × M pixels determined in advance by the tile dividing unit 101. The divided image is shown in FIG. The tile dividing unit 101 outputs an image of N pixels × M pixels in the tile as data corresponding to each tile.
[0041]
Of the divided tiles, the subsequent processing will be described for the tile i in FIG. The wavelet transform unit 102 divides the image data of the tile i into subbands.
[0042]
Here, when subband division processing is performed near the periphery of the tile, data around the tile is extrapolated. That is, as shown in FIG. 37 (b), when the calculation target range 3702 of the filter used for the wavelet transformation protrudes outside the tile, data outside the tile is required. Insert and sub-band.
[0043]
As an extrapolation method, for example, as shown in FIG. 2C, a method of generating a mirror image by folding an image in a tile is used. Subsequently, the quantization unit 103 quantizes the wavelet transform coefficient, and the entropy encoding unit 104 performs entropy encoding to obtain encoded data of the tile i.
[0044]
For entropy coding, Huffman coding or arithmetic coding can be used. The wavelet transform unit 102, the quantization unit 103, and the entropy coding unit 104 are collectively referred to as a wavelet transform coding unit 105.
[0045]
On the other hand, the management information generation unit 106 uses the tile division information regarding the spatial position of each tile obtained from the tile division unit 101 and the information on each subband obtained from the wavelet transform coding unit 105, Management information for managing and identifying tiles and subbands is generated. This management information is used by the encoded data integration unit 107.
[0046]
The encoded data integration unit 107 uses the management information output from the management information generation unit 106 to organize and integrate the encoded information output from the entropy encoding unit 104, and to manage the management information in the bitstream. In addition, final encoded data is created.
[0047]
Here, encoded data is managed according to subbands and tiles when decoding an image, only images with different resolutions such as the example shown in FIG. 32A, or specific tiles in the image. This makes it possible to decrypt
[0048]
An example of the bit stream of the encoded data created in this way is shown in FIG. The bitstream is composed of a header that manages information of the entire bitstream and encoding information for each tile. The encoding information for each tile includes a tile header that manages information for each tile, and an image tile. It is composed of encoded information for each tile encoded by the wavelet transform encoding unit 105.
[0049]
In the tile header, information on bit positions corresponding to each subband is described. By referring to this, it is possible to know where a bit string corresponding to a necessary subband is located.
[0050]
Of course, the configuration of the bitstream according to the present invention is not limited to that shown in FIG. For example, the subband information of each tile is separated separately as shown in FIG. 4 (b) with respect to the one shown in FIG. 4 (a) having the same configuration as FIG. The tile information may be added to the band information to form an independent tile. In this way, it is possible to quickly reproduce the reduced overall image by accessing only the tiles of the reduced image.
[0051]
  Next, image coding according to Embodiment 2 of the present inventionMethodWill be described. Here, the image coding of the second embodimentMethodThe configuration is the same as the block diagram of the first embodiment described above with reference to FIG. 1, and only the operation of the tile dividing unit 101 is different. Therefore, hereinafter, the operation of the tile dividing unit 101 will be described with reference to FIG.
[0052]
In the tile dividing unit 101 of the first embodiment, after dividing an original image into tiles of N × M pixels, when outputting a specific tile to the wavelet transform unit 102, only the image data inside the tile is cut out as an output. However, the tile dividing unit 101 according to the second embodiment uses a unit that cuts out and outputs data by multiplying the original image by an appropriate window function.
[0053]
For example, when the tile ij in FIG. 5 is cut out, the result of multiplying the original image data by the window function FXi in the horizontal direction and then the window function FYj in the vertical direction is set as the output of the tile dividing unit 101. Note that i is a tile number in the horizontal direction, and j is a tile number in the vertical method.
[0054]
As a result, the result of multiplying the hatched image in FIG. 5 by the weight according to the window function is the output of the tile dividing unit 101. Here, as the window function, a window function having a total sum of 1 through all sections is used.
[0055]
That is,
ΣFXi (x) = 1 (0 ≦ x ≦ w)
ΣFYj (y) = 1 (0 ≦ y ≦ h)
Use a window function that satisfies
[0056]
However, w represents the width of the original image, h represents the height of the original image, and the x and y axes are assumed to have the upper left corner of the original image as the origin O, and are taken rightward and downward, respectively.
[0057]
Further, it is assumed that the sum of FXi (x) is taken for i and the sum of FXj (Y) is taken for j. FXi−1, FXi, FY1, FYj, and FYj + 1 in FIG. 5 represent a part of functions that satisfy such conditions.
[0058]
As a result of the data extraction by the window function, the output of the tile dividing unit 101 includes not only the pixels inside the tile ij but also surrounding pixels in the encoding target data with weights according to the value of the window function. become.
[0059]
  Next, the image coding of the first embodiment described aboveMethodImage decoding to decode data encoded withMethodWill be described as Embodiment 3 of the present invention. FIG. 6 shows image decoding according to the third embodiment.How to explainIt is a block diagram.
[0060]
  The input encoded data is the image encoding described in the first embodiment.MethodIt is encoded with. A management information separation unit 401 separates and extracts management information related to tile division and management information related to subbands from the encoded data.
[0061]
Based on the extracted management information, the encoded data extraction unit 402 determines and extracts encoded information portions of necessary tiles and subbands in the encoded information in response to a user request. In the example of the bit stream shown in FIG. 3, the management information is in the header and the tile header.
[0062]
The extracted encoded information is entropy-decoded by the entropy decoding unit 403 and dequantized by the inverse quantization unit 404 to obtain wavelet transform coefficients corresponding to the decoding target tile.
[0063]
The wavelet transform coefficient is subjected to inverse wavelet transform by the inverse wavelet transform unit 405, and a decoded image of the target tile is obtained. The entropy decoding unit 403, the inverse quantization unit 404, and the inverse wavelet transform unit 405 are collectively referred to as a wavelet transform decoding unit 406.
[0064]
Further, the tile connecting unit 407 connects the decoded tile groups based on the tile division information from the management information generating unit 401 to obtain a decoded image having a desired region / resolution.
[0065]
Referring to the example of the bitstream shown in FIG. 3, when decoding an entire image (all tiles) with a low resolution, a code corresponding to a subband with a low resolution while referring to the subband information of each tile header. .., Ia,..., Which are converted data parts, are wavelet transform decoded sequentially by the wavelet transform decoding unit 406 for each tile.
[0066]
Then, if the obtained low resolution tiles are connected by the tile connecting unit 407, an entire image with a low resolution can be obtained.
[0067]
In addition, when it is desired to enlarge a specific tile i from the low-resolution decoded image and display it at the highest resolution, the entire i-th tile encoded information that is encoded information corresponding to the tile i may be decoded.
[0068]
That is, if i-b is extracted in addition to the already extracted encoded information ia and decoded together with ia, a desired decoded image can be obtained. Of course, if all the encoded information (all tiles, all subbands) is decoded, it is possible to obtain decoded images of all regions with high resolution.
[0069]
As described above, an image of an arbitrary resolution and an arbitrary tile can be easily decoded according to a user request.
[0070]
  Next, image decoding according to the fourth embodiment of the present invention.MethodWill be described. The input encoded data is the image encoding described in the second embodiment.MethodIt is encoded by. Here, the image decoding of Embodiment 4MethodThe configuration is the same as that of the third embodiment described above with reference to FIG. 6, and only the operation of the tile connecting unit 407 is different. Therefore, hereinafter, the operation of the tile dividing unit 407 will be described with reference to FIG.
[0071]
  Image coding according to Embodiment 2MethodThen, since the pixel to be encoded of each tile includes the peripheral pixels of the tile, the size of the decoded data of the tile decoded by the wavelet transform decoding unit 406 is larger than the size of the tile.
[0072]
In FIG. 7, the tile is composed of 2 pixels × 2 pixels, and the size of the decoded data of the tile is 4 pixels × 4 pixels. In this case, the decoded data of the tile ij is a hatched portion in FIG. 7 and overlaps with the adjacent tile by the width of one pixel.
[0073]
The tile connecting unit 407 obtains a pixel value by adding the decoded data at the position where the decoded data overlaps when the tiles are connected. For example, for pixel a in FIG.
a (i-1, j-1) + a (i, j-1) + a (i-1, j) + a (i, j)
To calculate the pixel value.
[0074]
Here, a (i, j) represents the decoded data of the tile ij at the position of the pixel a.
[0075]
  Next, image coding according to Embodiment 5 of the present inventionMethodWill be described. FIG. 8 shows image encoding according to the fifth embodiment.How to explainIt is a block diagram.
[0076]
  Image coding of embodiment 5MethodIs the image coding of the first embodiment described above with reference to FIG.MethodThe difference is that when a tile is wavelet transform encoded, it is not extrapolated around the tile unconditionally, but another tile around the target tile is used if it exists. is there.
[0077]
As in the case of the first embodiment, as shown in FIG. 9A, the subsequent processing is described for the tile i in the original image divided by the tile dividing unit 501. When the image data of the tile i is converted by the wavelet transform unit 503, if a surrounding pixel exists in a region where the filter used for the wavelet transform protrudes from the tile i, the tile i is also wavelet transformed using the data of the pixel. .
[0078]
That is, in order to perform wavelet transform on the tile i in FIG. 9A, first, the wavelet indicated by hatching in FIG. 9B is selected from the tiles around the tile i in FIG. 9A. After the surrounding pixel area necessary for the conversion is added to the tile i, the wavelet conversion of the tile i is performed.
[0079]
This additional processing is performed by the surrounding pixel adding unit 502. Based on the tile division information obtained from the tile dividing unit 501, it is determined whether another tile exists around the encoding target tile, and the tile exists. In this case, necessary pixels are added.
[0080]
In the above example, the peripheral pixel adding unit 502 adds all the surrounding tiles and outputs tile image data. Therefore, the wavelet transform unit 503 to which the peripheral pixel adding unit 502 is input receives the wavelet according to the first embodiment that processes an image of a single tile. It is necessary to convert a large image as compared with the conversion unit 102.
[0081]
When the converted image becomes large, a device using the converted image requires a large work area, leading to an increase in cost and a decrease in operation speed. Therefore, another mode in which the converted image is made smaller is effective and will be described below.
[0082]
As shown in FIGS. 9C and 9D, the area added by the peripheral pixel adding unit 502 is limited to the x direction or the y direction, and the tile image data input to the wavelet transform unit 503 is reduced. It is.
[0083]
For example, in the case of FIG. 9C, necessary pixels are added when different tiles exist above and below the encoding target tile. For the left and right sides of the tile to be encoded, a method of generating a mirror image by folding the image in the tile is used. In the case of FIG. 9D, the top and bottom and the left and right are reversed from the case of FIG. 9C.
[0084]
As a method of performing wavelet transform, a method of repeating subband division using only one of FIGS. 9B, 9C, and 9D, or FIGS. 9B and 9C for each subband. ) And (d) are methods for switching the pixel addition method.
[0085]
Note that only the wavelet transform coefficient of the encoding target tile i is required as an output of the wavelet transform unit 503, and the pixels added by the surrounding pixel adding unit 502 are the wavelet transform coefficients of the pixels inside the tile i. Used only to calculate.
[0086]
Subsequently, quantization is performed by the quantization unit 504, and entropy coding is performed by the entropy coding unit 505, thereby obtaining coding information of the tile i. The wavelet transform unit 503, the quantization unit 504, and the entropy coding unit 505 are collectively referred to as a wavelet transform coding unit 506.
[0087]
On the other hand, the management information generation unit 507 uses the tile division information regarding the spatial position of each tile obtained from the tile division unit 501 and the information on each subband obtained from the wavelet transform coding unit 506, Management information for managing and identifying tiles and subbands is generated. This management information is used by the encoded data integration unit 508.
[0088]
The encoded data integration unit 508 uses the management information output from the management information generation unit 507 to organize and integrate the encoded information output from the entropy encoding unit 505, and to manage the management information in the bitstream. In addition, final encoded data is created as in the example shown in FIG. 3, for example.
[0089]
  Furthermore, the image coding according to the sixth embodiment of the present inventionMethodWill be described. Image coding according to Embodiment 6MethodThis configuration is the same as that of the fifth embodiment described above with reference to FIG. 8, and only the operation of the surrounding pixel adding unit 502 is different. Therefore, hereinafter, the operation of the surrounding pixel adding unit 502 will be described with reference to FIG.
[0090]
The processing of tile i in FIG. 10 will be described as an example. In the surrounding pixel adding unit 502 described as the fifth embodiment, when the tile i is input, all the pixels that are necessary for calculating the wavelet transform coefficient of the pixel in the tile i, that is, the pixels in the range where the filter protrudes are included in the tile i. It was added to. This range is a peripheral pixel range indicated by hatching in FIG.
[0091]
However, since the influence of a pixel far away from the tile i on the wavelet transform coefficient in the tile i is generally small, in the present embodiment, the result obtained by multiplying the peripheral pixel to be added by an appropriate weighting function is obtained. By adding to, the number of pixels to be added is reduced and the amount of calculation is reduced.
[0092]
As the weighting function, a function is used such that the portion close to the tile i is 1 and the distance is close to 0. The weighting function shown in FIG. 10 is an example. In the example of FIG. 10, as a result of multiplication by the weighting function, the pixels actually added are only effective pixel portions with halftone dots, and the outside is a pixel necessary for wavelet transform but is regarded as 0 and added. Not.
[0093]
As the weighting function, besides the one shown in FIG. 10, a step function that can be 1 if the distance from the tile i is within a certain standard and 0 if it is further away can be used.
[0094]
  Next, image coding according to Embodiment 7 of the present inventionMethodWill be described. FIG. 11 shows the image encoding according to the seventh embodiment.How to explainIt is a block diagram.
[0095]
  Image coding according to Embodiment 7MethodIs the image coding of the first embodiment described above with reference to FIG. 1 and the fifth embodiment described above with reference to FIG.MethodThe difference is that the wavelet transform unit 701 performs wavelet transform on the entire original image before tiling the original image, and then arranges the wavelet transform coefficients, which are the output of the wavelet transform unit 701, in tile units. It is a point which constitutes a tile instead.
[0096]
In FIG. 11, the original image is wavelet transformed by a wavelet transform unit 701 before being tiled. Next, the tile configuration unit 702 performs sorting to collect the wavelet transform coefficients corresponding to the same tile in space and configure the tiles.
[0097]
FIG. 12A shows an example of subbands obtained by wavelet transform by the wavelet transform unit 701. FIG. In this case, the coefficient b0 in the subband of the lowest frequency in FIG. 12A is the space between the coefficient parts b1, b2, b3, b4, b5, b6, b7, b8, b9 in the other subbands. In correspondence.
[0098]
Here, b1 to b3 are composed of 1 × 1, b4 to b6 are composed of 2 × 2, and b7 to b9 are composed of 4 × 4 coefficients. An embodiment in which these b0 to b9 are extracted from the respective sub-bands, and are configured in the form shown in FIG. 12B as one tile, and all other wavelet transform coefficients are rearranged in units of tiles. The result similar to that obtained when the original image is divided into tiles in step 5 and then wavelet transformed is obtained.
[0099]
Note that b0 does not have to be one coefficient, and may be a block of coefficients composed of k × 1 coefficients. In this case, b1 to b3 are composed of k × l, b4 to b6 are composed of 2k × 2l, and b7 to b9 are composed of 4k × 4l coefficients.
[0100]
The tiled wavelet transform coefficient output from the tile construction unit 702 is quantized by the quantization unit 703 and entropy-encoded by the entropy encoding unit 704 to become encoded information.
[0101]
On the other hand, the management information generation unit 706 uses the tile division information regarding the spatial position of each tile obtained from the tile configuration unit 702 and the information on each subband obtained from the wavelet transform coding unit 705. Management information for managing and identifying tiles and subbands is generated. This management information is used by the encoded data integration unit 707.
[0102]
The encoded data integration unit 707 uses the management information output from the management information generation unit 706 to organize and integrate the encoded information output from the entropy encoding unit 704, and the management information in the bitstream In addition, final encoded data is created as in the example shown in FIG. 3, for example.
[0103]
Note that the tile configuration unit 702 is arranged before the quantization unit 703, but the present invention is not limited to this. For example, the tile configuration unit 702 may be arranged after the quantization unit 703.
[0104]
  In addition, the image encoding according to any one of the fifth to seventh embodiments described above.MethodImage decoding to decode data encoded byMethodWill be described as Embodiment 8 of the present invention. FIG. 13 shows image decoding according to the eighth embodiment.How to explainIt is a block diagram. The encoded data to be input is the image encoding according to any one of the fifth to seventh embodiments.MethodIt is the encoded data encoded by.
[0105]
In FIG. 13, management information separation unit 901 separates management information related to tile division and management information related to subbands from the encoded data, and based on the extracted management information, the encoded data extraction unit 902 extracts the user information. In response to the request, a necessary encoded information part in the encoded information is determined and extracted. That is, encoded data corresponding to a necessary tile and resolution is extracted.
[0106]
The extracted encoded information is entropy-decoded by the entropy decoding unit 903 in units of tiles, dequantized by the inverse quantization unit 904, and wavelet transform coefficients corresponding to tiles necessary for decoding are obtained.
[0107]
The wavelet transform coefficient is subjected to inverse wavelet transform by the inverse wavelet transform unit 905, and a decoded image including data of surrounding pixels is obtained. The entropy decoding unit 903, the inverse quantization unit 904, and the inverse wavelet transform unit 905 are collectively referred to as a wavelet transform decoding unit 906.
[0108]
Further, the tile integration unit 907 integrates the decoded tile group based on the management information from the management information separation unit 901. Here, the spatially overlapped portion of the decoded image of each tile is superimposed to obtain the entire decoded image.
[0109]
  That is, in the second embodiment described above with reference to FIG. 5, wavelet transform is performed including the peripheral pixels of the tile. Also, the image coding according to the fifth embodimentMethodAs shown in FIG. 9B, the peripheral pixels of the tile are used at the time of wavelet transform. Similarly, the peripheral pixels are also used in the sixth embodiment described above with reference to FIG.
[0110]
  Also, the image coding according to the seventh embodimentMethodHowever, the process using the peripheral pixels of the tile is not clearly described, but when the entire original image is wavelet transformed, the process equivalent to the fifth embodiment is performed in principle.
[0111]
For this reason, when wavelet transform decoding is performed by the wavelet transform decoding unit 906 in FIG. 13, peripheral pixel data is generated, and the tile integration unit 907 superimposes the peripheral pixels of the decoded tile on adjacent tiles. For the superposition, addition between pixels is used.
[0112]
  Next, image decoding according to Embodiment 9 of the present inventionMethodWill be described. This is the image decoding of the eighth embodiment.MethodSimilarly to the image coding according to any one of Embodiments 5 to 7MethodDecoding using encoded data encoded withMethodIt is. FIG. 14 shows image decoding according to the ninth embodiment.How to explainIt is a block diagram.
[0113]
In FIG. 14, the management information separation unit 1001 separates and extracts management information related to tile division and management information related to subbands from the encoded data, and the encoded data extraction unit 1002 extracts the management information based on the extracted management information. In accordance with a user request, a necessary encoded data portion in the encoded information is determined and extracted. That is, encoding information corresponding to a necessary tile and resolution is extracted.
[0114]
The extracted encoding information is entropy-decoded by the entropy decoding unit 1003 in units of tiles, and dequantized by the inverse quantization unit 1004, and wavelet transform coefficients corresponding to tiles necessary for decoding are obtained. Here, the wavelet transform coefficient rearrangement unit 1005 rearranges the wavelet transform coefficients to the state before tiling.
[0115]
That is, the wavelet transform coefficients divided into tile units shown in FIG. 12B are rearranged into the state shown in FIG. When all the tiles have been processed, the entire wavelet transform coefficient shown in FIG. 12A is obtained.
[0116]
Since the rearranged wavelet transform coefficients can be decoded by a single inverse wavelet transform, if the wavelet transform coefficients are inversely wavelet transformed by the inverse wavelet transform unit 1006, the entire decoded image can be obtained.
[0117]
The entropy decoding unit 1003, the inverse quantization unit 1004, and the inverse wavelet transform unit 1006 are collectively referred to as a wavelet transform decoding unit 1007. The wavelet transform coefficient rearranging unit 1005 is arranged at the subsequent stage of the inverse quantization unit 1004, but is not limited to this, and may be disposed, for example, before the inverse quantization unit 1004.
[0118]
  Next, image coding according to Embodiment 10 of the present inventionMethodWill be described. FIG. 15 (e) shows the image coding of the first embodiment, the second embodiment, the fifth embodiment, and the sixth embodiment.Method10 is a block diagram showing a portion corresponding to a wavelet transform unit (102 in FIG. 1, 503 in FIG. 8).
[0119]
A memory 1102 in FIG. 15E is for storing the wavelet transform coefficients that are sub-band divided by the wavelet transform unit 1101. At this time, only the wavelet transform coefficient corresponding to the tile currently being processed by the wavelet transform unit 1101 is stored in the memory 1102, and when the wavelet transform of the tile is completed, the data is converted into a quantization unit (FIG. 1) as the next step. 103 and 504) of FIG.
[0120]
Therefore, the amount of data to be stored in the memory 1102 does not correspond to the entire image, and can be suppressed to the amount of data necessary to wavelet transform one tile.
[0121]
That is, in the wavelet transform without tiling, as shown in FIG. 15A, the conversion target is the entire image, and all the wavelet transform coefficients of FIG. 15B, which is the output of the wavelet transform unit 1101, are stored in the memory. For example, as shown in FIG. 15C, it is necessary to prepare only a memory that can store the wavelet transform coefficients corresponding to FIG. 15D by performing tiling as shown in FIG. Thus, the required memory amount can be greatly reduced.
[0122]
  Image decodingMethodBut the same effect can be expected. Image decoding according to the eleventh embodiment of the present inventionMethodWill be described. FIG. 16E illustrates the image decoding described above as the third, fourth, and eighth embodiments.MethodIt is the block diagram which showed the part corresponding to an inverse wavelet transformation part (405 of FIG. 6, 905 of FIG. 13) among these.
[0123]
First, wavelet transform coefficients necessary to decode one tile are stored in the memory 1201 in FIG. 16E, and subband synthesis is performed by the inverse wavelet transform unit 1202.
[0124]
Therefore, when the decoding target image is shown in FIG. 16B, in the wavelet transform that is not tiled, the amount of data to be stored in the memory is all the wavelet transform coefficients shown in FIG. As shown in FIG. 16D, when decoding a tiled image, the amount of data to be stored in the memory 1201 of this embodiment is the wavelet transform coefficient corresponding to FIG. The amount of memory is greatly reduced.
[0125]
As described above, any of the embodiments of the present invention described above can be configured by adaptively switching using a plurality of subband division filters at the time of wavelet transform in encoding.
[0126]
Here, the sub-band division filter is a low-pass filter and a high-pass filter used for the sub-band division described as the conventional example. In the wavelet transform, subband division is repeated. At this time, there are various types of filters used in each subband division depending on the number of taps and coefficient values.
[0127]
Therefore, if an appropriate filter is used for each subband division, the necessary amount of peripheral pixels of the image to be encoded required by the wavelet transform coefficient can be controlled for each subband, and the balance between the processing amount and the image quality can be controlled. The optimal wavelet transform can be performed.
[0128]
  Such image codingMethodDecoding corresponding toMethodThen, using a subband synthesis filter corresponding to the subband division filter used at the time of wavelet transformation, the inverse wavelet transformation is performed while switching the filters in each subband synthesis.
[0129]
  Next, image coding according to the twelfth embodiment of the present inventionMethodWill be described. In the present embodiment, the input image can be encoded by one of a plurality of predetermined encoding methods.
[0130]
  FIG. 17 shows image encoding according to the twelfth embodiment.MethodExampleTo explainIt is a block diagram, and in the present embodiment, encoding is performed by switching between the system of the first embodiment and the system of the seventh embodiment.
[0131]
In FIG. 17, a tile wavelet encoding unit 1601 performs wavelet encoding on an input image in units of tiles, and outputs encoding information. Further, the tile wavelet encoding unit 1601 outputs tile division information, subband information, and flag information.
[0132]
The management information generation unit 1603 receives the tile division information, the subband information, and the flag information as inputs, and generates and outputs management information by combining them. The encoded data combining unit 107 outputs encoded data obtained by adding the encoded information and management information.
[0133]
In the tile wavelet encoding unit 1601, the input original image is divided by the tile dividing unit 101, and the divided image is input to the terminal 0 of the first switch 1604. Further, the original image is input as it is to the terminal 1 of the first switch 1601. One of these outputs is input to the wavelet encoding unit 1607 via the first switch 1604.
[0134]
The wavelet encoding unit 1607 performs wavelet encoding on the input image. The output of the first wavelet transform unit 1608 is directly input to the quantization unit 103 via the second switch 1605 or is further input to the quantization unit 103 via the tile configuration unit 702.
[0135]
The operation of the first wavelet transform unit 1608 is the same as that of the wavelet transform unit 102 in the first embodiment described above with reference to FIG.
[0136]
Then, the flag generation unit 1602 outputs a flag indicating whether the encoding system of the first embodiment or the encoding system of the seventh embodiment is used, and at the same time, the first switch 1604, the second switch 1605, and the third switch 1606 is controlled.
[0137]
If each switch 1604, 1605, 1606 is coupled to the terminal 0, the same processing as that of the encoding in the first embodiment is performed, and if it is coupled to the terminal 1, the encoding in the seventh embodiment is performed. Performs the same processing as
[0138]
The operation of the tile configuring unit 702 is the same as that of the seventh embodiment described above with reference to FIG.
[0139]
As described above, according to the present embodiment, encoding can be performed in units of tiles, and encoding is performed for each image by the method of the first embodiment that is easy to process, or the processing is slightly complicated. It is possible to selectively switch whether encoding is performed according to the method of the seventh embodiment in which no distortion occurs at the tile boundary.
[0140]
  FIG. 18 shows image encoding according to the twelfth embodiment.MethodAnother example ofTo explainFIG. 4 is a block diagram, and in the present example, encoding can be performed by switching between the system of the first embodiment and the system of the fifth embodiment.
[0141]
  Image coding of this embodimentMethod18, the tile configuration unit 702 related to the seventh embodiment in FIG. 17 is deleted, the peripheral pixel adding unit 502 and the second wavelet encoding unit 1705 related to the fifth embodiment are added, and The switch for switching between these has been changed. Operations other than the tile wavelet encoding unit 1701 and the wavelet encoding unit 1702 in FIG.
[0142]
The wavelet encoding unit 1702 performs wavelet encoding on the input image and outputs encoding information. There are two types of inputs, one connected to the first wavelet transform unit 1608 and the other connected to the second wavelet transform unit 1705.
[0143]
When an image is input to the first wavelet transform unit 1608, the wavelet transform unit 1702 performs the same operation as the wavelet encoding unit 1607. On the other hand, when the image is input to the second wavelet transform unit 1705, the processing of the second wavelet transform unit 1705 is the same as that of the wavelet transform unit 503, and therefore the wavelet encoding unit 1702 is the wavelet encoding unit 506. Behaves the same as
[0144]
In the tile wavelet encoding unit 1701, the input image is divided into tile units and input to the first switch 1703. On the other hand, the peripheral image is added to the divided image and input to the second switch 1704. The flag generation unit 1706 selects whether the wavelet encoding unit 1702 uses the first wavelet transform unit 1608 or the second wavelet transform unit 1705, and outputs a flag indicating this.
[0145]
At the same time, control is performed such that only one of the first switch 1703 and the second switch 1704 is turned on. That is, when the first switch 1703 is on, the divided image is input to the first wavelet transform unit 1608, and processing equivalent to that encoded by the method of the first embodiment is performed. When the second switch 1704 is on, the divided image and the surrounding image are input to the second wavelet transform unit 1705, and processing equivalent to that performed by the method of the fifth embodiment is performed.
[0146]
As a result, encoding can be performed on a tile-by-tile basis, and encoding can be performed for each image by the method of the first embodiment that is easy to process, or the processing is slightly complicated, but no distortion occurs at the tile boundary. It is possible to selectively switch the encoding according to the method of the fifth mode.
[0147]
  Further, FIG. 19 shows the image encoding of the twelfth embodiment.MethodAnother example ofTo explainFIG. 4 is a block diagram, and in the present example, encoding can be performed by switching between the scheme of the first embodiment, the scheme of the fifth embodiment, and the scheme of the seventh embodiment.
[0148]
  Image coding of this embodimentMethodAs shown in FIG. 19, a tile configuration unit 702 according to the seventh embodiment is added in FIG. 18, and a switch for switching these is changed. Operations other than the tile wavelet encoding unit 1801 and the wavelet encoding unit 1807 in FIG.
[0149]
A wavelet encoding unit 1807 performs wavelet encoding of the input image and outputs encoding information. The output of the first wavelet transform unit 1608 is directly input to the quantization unit 103 via the third switch 1805 or is further input to the quantization unit 103 via the tile configuration unit 702. The output of the second wavelet transform unit 1705 is directly input to the quantization unit 103.
[0150]
In the tile wavelet encoding unit 1801, the input image is directly input to the terminal 0 of the first switch 1803, or is input to the terminal 1 of the first switch 1803 after being divided into tiles, or the divided image is divided. An image in which the surrounding pixels are added to the tile is input to the terminal 2 of the first switch 1803.
[0151]
These images are input to the first wavelet transform unit 1608 or the second wavelet transform unit 1705 via the second switch 1804, and output as encoded information via the quantizer 103 and the entropy encoder 104. The
[0152]
The flag generating unit 1802 controls the first switch 1803, the second switch 1804, the third switch 1805, and the fourth switch 1806, and switches the three modes 0, 1, and 2. The numbers shown on the terminals of the respective switches 1803, 1804, 1805, and 1806 indicate the mode numbers.
[0153]
For example, when the first switch 1803 is connected to the terminal 0, the remaining switches 1804, 1805, and 1806 are also connected to the terminal 0. For this reason, when each of the switches 1803, 1804, 1805, and 1806 is connected to the terminal 0, processing equivalent to that encoded by the method of the seventh embodiment is performed.
[0154]
When each of the switches 1803, 1804, 1805, and 1806 is connected to the terminal 1, the same processing as that performed in the method of the first embodiment is performed, and the first switch 1803, the second switch 1804, the fourth switch When the switch 1806 is connected to the terminal 2, the same processing as that performed by the method of the fifth embodiment is performed.
[0155]
As a result, encoding can be performed on a tile-by-tile basis, and encoding can be performed for each image by the method of the first embodiment that is easy to process, or the processing is slightly complicated, but no distortion occurs at the tile boundary. It is possible to selectively switch whether encoding is performed according to the scheme of the fifth or seventh embodiment.
[0156]
  Next, image decoding according to the thirteenth embodiment of the present invention.MethodWill be described. This is the image encoding described above as the twelfth embodiment.MethodImage decoding to decode data encoded withMethodIt is. In the present embodiment, input encoded data is decoded by selecting one of a plurality of predetermined decoding methods.
[0157]
  FIG. 20 illustrates image decoding according to the thirteenth embodiment.MethodExampleTo explainIt is a block diagram and the image decoding of a present ExampleMethodIn the method, encoded data encoded by switching between the method of the first embodiment and the method of the seventh embodiment can be decoded.
[0158]
In FIG. 20, the encoded information and the management information separated by the management information separation unit 401 are input to the tile wavelet decoding unit 1901, respectively. The tile wavelet decoding unit 1901 performs decoding in tile units using the encoded information and management information, and outputs a decoded image.
[0159]
The encoded information is input to the wavelet decoding unit 1902 and subjected to wavelet decoding. The image decoded by the wavelet decoding unit 1902 is directly output via the second switch 1904 or further output via the tile connecting unit 407.
[0160]
In the wavelet decoding unit 1902, the output of the inverse quantization unit 404 is input directly to the first inverse wavelet transform unit 1906 via the first switch 1903 or further through the wavelet coefficient rearrangement unit 1005. To the inverse wavelet transform unit.
[0161]
The operation of the first inverse wavelet transform unit 1906 is the same as that of the inverse wavelet transform unit 405 in the third embodiment described above with reference to FIG.
[0162]
  The flag extraction unit 1905 extracts a flag for controlling the first switch 1903 and the second switch 1904 from the management information. When the switches 1903 and 1904 are connected to the terminal 0, the image decoding according to the third embodiment is performed.MethodWhen the same operation is performed and the terminal 1 is connected, the image decoding according to the ninth embodiment is performed.MethodPerforms the same operation as.
[0163]
The operation of the tile configuring unit 407 is the same as that of the third embodiment described above with reference to FIG.
[0164]
As described above, according to the present embodiment, decoding can be performed in units of tiles, and decoding can be performed for each image by the method of the third embodiment in which processing is simple or processing is slightly complicated. It is possible to selectively switch whether decoding is performed according to the method of the ninth embodiment in which no distortion occurs.
[0165]
  FIG. 21 shows image decoding according to the thirteenth embodiment.MethodAnother example ofTo explainIt is a block diagram and the image decoding of a present ExampleMethodThe encoded data encoded by switching between the method of the first embodiment and the method of the fifth embodiment can be decoded.
[0166]
In FIG. 21, the operations of the parts other than the tile wavelet decoding unit 2001 and the wavelet decoding unit 2002 are the same as those in FIG.
[0167]
The wavelet decoding unit 2002 performs wavelet decoding on the input encoded information. At this time, the output of the inverse quantization unit 404 is input to the first inverse wavelet transform unit 1906 or the second inverse wavelet transform unit 2003 via the first switch 2004.
[0168]
The output of the inverse first wavelet transform unit 1906 is input to the tile connection unit 407, and the output of the second wavelet transform unit 2003 is input to the tile integration unit 907.
[0169]
The operation of the second inverse wavelet transform unit 2003 is the same as that of the inverse wavelet transform unit 905 in the eighth embodiment described above with reference to FIG.
[0170]
The tile wavelet decoding unit 2001 performs wavelet decoding on the encoded information input by the wavelet decoding unit 2002, and the output of the wavelet decoding unit 2002 is connected to either the tile connection unit 407 or the tile integration unit 907, and the decoded image Is played.
[0171]
  On the other hand, the flag extraction unit 2005 extracts a flag from the input management information, and the first switch 2004 is switched by the extracted flag. When the first switch 2004 is connected to the terminal 0, the image decoding according to the third embodiment is performed.MethodWhen the same operation is performed and the terminal 1 is connected, the image decoding according to the eighth embodiment is performed.MethodBehaves the same as
[0172]
As a result, decoding can be performed in units of tiles, and decoding can be performed for each image by the method of the third embodiment in which processing is simple, or the processing is slightly complicated, but distortion in the tile boundary does not occur. It is possible to selectively switch whether the decoding is performed by the method.
[0173]
  Furthermore, FIG. 22 shows image decoding according to the thirteenth embodiment.MethodAnother example ofTo explainIt is a block diagram and the image decoding of a present ExampleMethodIn the method, encoded data encoded by switching the method of the first embodiment, the method of the fifth embodiment, and the method of the seventh embodiment can be decoded.
[0174]
  Image decoding of this embodimentMethodAs shown in FIG. 22, in FIG. 21, a wavelet coefficient rearranging unit 1005 is added, and a switch for switching them is changed. In the figure, the operations of the parts other than the tile wavelet decoding unit 2101 and the wavelet decoding unit 2102 are the same as those in FIG.
[0175]
The wavelet decoding unit 2102 performs wavelet decoding on the input encoded information. At this time, the output of the inverse quantization unit 404 is directly input to the first inverse wavelet transform unit 1906 via the terminal 0 of the first switch 2103, or the terminal 1 of the first switch 2103 and the wavelet coefficient rearrangement unit The first inverse wavelet transform unit 1906 or the second inverse wavelet transform unit 2003 via the terminal 2 of the first switch 2103.
[0176]
The output of the first inverse wavelet transform unit 1906 is input to the tile connecting unit 407 via the second switch 2104 or a decoded image is directly output. The output of the second inverse wavelet transform unit 2003 is input to the tile integration unit 907. Since the operation of other parts is the same as that of the wavelet decoding unit 2002, the description thereof is omitted.
[0177]
In the tile wavelet decoding unit 2101, the flag extraction unit 2105 extracts a flag from the management information. The first switch 2103 and the second switch 2104 are controlled by the extracted flag information. The remaining management information is input to the tile connecting unit 407 and the tile integrating unit 907.
[0178]
  When the switches 2103 and 2104 are connected to the terminal 0, the image decoding according to the third embodiment is performed.MethodWhen the same operation is performed and the terminal 1 is connected, the image decoding according to the ninth embodiment is performed.MethodWhen the first switch 2103 is connected to the terminal 2, the image decoding according to the eighth embodiment is performed regardless of the connection destination of the second switch 2104.MethodPerforms the same operation as.
[0179]
In this way, decoding can be performed in units of tiles, and encoding is performed for each image by the method of the third embodiment, which is easy to process, or the processing is slightly complicated, but distortion does not occur at the tile boundary. Alternatively, it is possible to selectively switch whether the decoding is performed according to the method of the ninth embodiment.
[0180]
  Next, image coding according to Embodiment 14 of the present inventionMethodWill be described. In the present embodiment, information for distinguishing tiles is added to management information for managing tiles so that encoding information of a target tile can be decoded at high speed.
[0181]
  FIG. 23 shows image coding according to the fourteenth embodiment.MethodExampleTo explainIt is a block diagram. In FIG. 23, an input original image is encoded in tile units by a tile wavelet encoding unit 2201, and information for management (for example, tile division information, flag information, subband information) and encoding information are included. Generated.
[0182]
The ID generation unit 2202 generates ID information for distinguishing each tile. The management information generation unit 2203 adds management information and the ID information to generate management information. The encoded data combining unit 2204 combines the encoded information and the management information, and further adds a start code indicating the head of the tile to the head of each tile to generate encoded data.
[0183]
  As an example of the format of the encoded data, as shown in FIG. 24A, the information of each tile is composed of the start code of the tile, management information (tile header), and encoded information. The tile wavelet encoding unit 2201 performs image encoding in the first embodiment, the second embodiment, the fifth embodiment, the sixth embodiment, the seventh embodiment, the tenth embodiment, the twelfth embodiment, and the fourteenth embodiment.MethodCan be used.
[0184]
Here, in order to distinguish the tiles obtained by dividing the original image, 1, 2,. . . And ID information are assigned, tiles can be encoded in an arbitrary order, and the order can be changed after encoding. If the order of encoding the tiles is determined in advance, the ID generation unit 2202 can be omitted.
[0185]
Since each tile starts with a start code, it is possible to identify where each tile is located using this as a mark. Instead, when the data amount of the tile (a combination of the encoding information and the tile header) is used, it is possible to identify where each tile is located.
[0186]
  FIG. 25 shows image encoding according to the fourteenth embodiment.MethodAnother example ofTo explainFIG. 24 is a block diagram showing the image encoding shown in FIG.MethodIn addition, a data amount measuring unit 2301 for calculating the size of the tile is added, and description of operations other than the data amount measuring unit 2301 and the management information generating unit 2302 is omitted.
[0187]
In FIG. 25, the data amount measuring unit 2301 measures the amount of data encoded for each tile and outputs this. The management information generation unit 2302 generates management information by adding the information for management, ID information, and the amount of tile data.
[0188]
As an example of the format of the encoded data, as shown in FIG. 24B, the data amount of the encoded information of the tile is arranged at the head of each tile, and subsequently, the other management information (tile header) and the code Followed by conversion information. Note that the data amount of tiles does not necessarily have to be arranged at the head of each tile, and can be collected at the head, for example.
[0189]
  Further, FIG. 26 shows the image encoding of the fourteenth embodiment.MethodAnother example ofTo explainFIG. 26 is a block diagram showing the image encoding shown in FIG.MethodThe encoded data rearranging unit 2401 is added to the above, and the description of the operation of other parts is omitted.
[0190]
In FIG. 26, the encoded data rearranging unit 2401 extracts the data amount of each tile from the encoded data created by the encoded data combining unit 2204, arranges these at the head of the encoded data, and then performs the rest. Arrange in order and output encoded data.
[0191]
As an example of the format of the encoded data, as shown in FIG. 24C, the position of the target tile can be easily calculated by adding the data amounts of all the tiles arranged at the head. .
[0192]
  The same effect can be obtained with the configuration shown in FIG. FIG. 27 shows image encoding according to the fourteenth embodiment.MethodAnother example ofTo explainFIG. 26 is a block diagram showing the image encoding shown in FIG.MethodIn addition, an encoded data storage buffer 2501 and a management information storage buffer 2502 are added, and description of operations other than the encoded data storage buffer 2501, the management information storage buffer 2502, and the encoded data combining unit 2503 is omitted.
[0193]
In FIG. 27, the encoded information output from the tile wavelet encoding unit 2201 is temporarily stored in the encoded data storage buffer 2501. The management information accumulation buffer 2502 accumulates the management information of each tile generated by the management information generation unit 2302, extracts the tile data amount from the management information, and outputs this to the encoded data combination unit 2503. Next, the remaining management information is output.
[0194]
The encoded data combining unit 2503 first outputs the data amount of all the input tiles, and combines and outputs the remaining management information and encoded information.
[0195]
As described above, according to the present embodiment, it is possible to search and decode the encoded information of the tile to be decoded from the encoded data at high speed.
[0196]
  Next, image decoding according to the fifteenth embodiment of the present invention.MethodWill be described. FIG. 28 shows image decoding according to the fifteenth embodiment.MethodTheTo explainIt is a block diagram, and the present embodiment is the image coding of the fourteenth embodiment described aboveMethodImage decoding to decode data encoded withMethodIt is.
[0197]
In FIG. 28, the decoding tile determination unit 2603 determines the tile ID to be decoded according to the user's instruction. The management information separation unit 2606 retrieves a start code indicating the head of each tile from the encoded data, and separates the management information and the encoded information regarding the tile.
[0198]
Based on the management information, the data skip control unit 2602 determines whether the tile ID of a tile to be decoded is the determined tile ID. If this tile ID is the tile ID, the first switch 2605 and the second switch Turn on 2604. In this way, the tile wavelet decoding unit 2601 can decode only a specific tile.
[0199]
  When the data amount of the tile is described in the tile management information, the management information separation unit 2606 does not need to search the head of each tile, and it is only necessary to skip the amount of data described. The tile wavelet decoding unit 2601 performs image decoding according to the third, fourth, eighth, ninth, eleventh, eleventh, thirteenth, and fifteenth embodiments.MethodCan be used.
[0200]
As described above, according to the present embodiment, it is possible to quickly decode a target tile by decoding only the management information at the head of the tile without decoding all the encoded data.
[0201]
  Next, image coding according to Embodiment 16 of the present inventionMethodWill be described. In the present embodiment, peripheral tile information is also added to management information for managing tiles, and encoded information of peripheral tiles can be decoded at high speed.
[0202]
  FIG. 29A shows the image encoding according to the sixteenth embodiment.MethodExampleTo explainIt is a block diagram. Image coding of this embodimentMethodFIG. 23 is obtained by adding a peripheral tile ID determination unit 2801 to the fourteenth embodiment shown in FIG. 23, and the operation of the management information generation unit 2802 is different. For this reason, description of parts other than the peripheral tile ID determination unit 2801 and the management information generation unit 2802 is omitted.
[0203]
  Note that the tile wavelet encoding unit 2801 performs image encoding according to the fifth, sixth, seventh, tenth, twelfth, and fourteenth embodiments.MethodCan be used.
[0204]
In FIG. 29A, the peripheral tile ID determination unit 2801 determines peripheral tile IDs necessary for decoding from tile division information, flag information, subband information, and tile IDs generated by the ID generation unit 2202. The management information creation unit 2802 generates management information in which tile division information, flag information, subband information, and tile ID are added to the surrounding tile ID.
[0205]
Note that the plurality of tile IDs determined by the peripheral tile ID determination unit 2801 do not have to be all tile IDs necessary for encoding. For example, as shown in FIG. You may limit to tile ID of the tile located in the upper left and lower left.
[0206]
As an example of the format of the encoded data, a configuration in which the management information (tile header) includes a tile ID and peripheral tile IDs in FIG.
[0207]
  FIG. 30 shows the image encoding according to the sixteenth embodiment.MethodAnother example ofTo explainIt is a block diagram, and seeks to speed up the search for encoded information tiled at the time of decoding by including position information of neighboring tiles in management information. Image coding of this embodimentMethodIn FIG. 27, the management information storage buffer 2502 is deleted from the fourteenth embodiment shown in FIG. 27, and a data amount storage unit 2901, a relative position calculation unit 2902, and an information storage buffer 2904 are added.
[0208]
Since the operations other than the data amount storage unit 2901, the relative position calculation unit 2902, the information accumulation buffer 2904, the management information generation unit 2903, and the ID generation unit 2905 are the same as those described above, description thereof will be omitted.
[0209]
In FIG. 30, all the encoded information output from the tile wavelet encoding unit 2201 is stored in the encoded data storage buffer 2501, and the tile division information, flag information, and sub information output from the tile wavelet encoding unit 2201 are stored. All pieces of band information are stored in the information storage buffer 2904. The data amount of the encoded information of each tile output from the data amount measuring unit 2301 is all stored in the data amount storage unit 2901.
[0210]
The ID generation unit 2905 outputs ID information for distinguishing each tile, and outputs information stored in the information storage buffer 2904, the data amount storage unit 2901, and the encoded data storage buffer 2501 in units of tiles. Control as follows. The data amount storage unit 2901 outputs the data amount of the tile to the management information generation unit 2903 based on the input tile ID, and is necessary for calculating the relative position of the tile having the tile ID and the surrounding tile. The data amount of the tile is output to the relative position calculation unit 2902.
[0211]
The relative position calculation unit 2902 calculates the relative position where the encoding information of the neighboring tiles exists with respect to the tile to be encoded, using the input data amount of each tile, and outputs the result. The management information generation unit 2903 generates management information from the input tile ID information, tile division information, flag information, subband information, tile data amount, relative position of the surrounding tiles, etc. Output.
[0212]
In this way, by decoding only the management information at the head of the tile without decoding all the encoded data, the encoded data can be generated so that the target tile and surrounding tiles necessary for decoding can be quickly decoded. It becomes possible to do.
[0213]
  Next, the image decoding according to the nineteenth embodiment of the present invention.MethodWill be described. FIG. 31 shows image decoding according to the nineteenth embodiment.MethodTheTo explainIt is a block diagram, and the present embodiment is the image coding according to the eighteenth embodiment described above.MethodImage decoding to decode data encoded withMethodIt is.
[0214]
In this embodiment, a buffer 3001 is added to the fifteenth embodiment shown in FIG. 28, and the operations other than the buffer 3001 and the data read skip controller 3002 are the same as those in FIG. Omitted.
[0215]
In FIG. 31, input encoded data is stored in a temporary buffer 3001 and sequentially output. The data skip control unit 3002 extracts the ID of the tile to be decoded based on the input management information, and if this is the determined tile ID or the tile ID of the surrounding tile, the first switch 2605 and the second switch Switch 2604 is turned on.
[0216]
If the management information includes tile IDs of peripheral tiles necessary for decoding, control is performed so that encoded information of the peripheral tiles is output from the buffer 3001. In this way, the tile wavelet decoding unit 2601 can decode a specific tile and its surroundings.
[0217]
Here, when the decoded peripheral tile ID included in the management information is a predetermined number smaller than the number of peripheral tiles (for example, tiles indicated by halftone dots in FIG. 29B), it is necessary for decoding. Tile IDs at other positions (white tiles in FIG. 29B) are determined from the decoded peripheral tile IDs.
[0218]
  The tile wavelet decoding unit 2601 performs image decoding according to the eighth, ninth, eleventh, thirteenth, and fifteenth embodiments.MethodCan be used.
[0219]
Thus, by decoding only the management information at the head of the tile without decoding all the encoded data, it becomes possible to quickly decode the target tile and surrounding tiles necessary for decoding.
[0220]
  As described above, the image encoding of this embodimentMethodAnd image decodingMethodBy using, it becomes possible to easily decode a decoded image having a resolution according to a user's request without increasing the amount of encoded data. This is a significant advantage compared to an increase in the amount of encoded data by 1.4 times because the flash pix using JPEG supports multiple resolutions.
[0221]
In addition, when dividing an image into tiles and enabling decoding of only a specific area, the encoding by wavelet transform is difficult in principle to be closed in the tile, and is unsuitable for tile division processing. On the other hand, in the present invention, encoding / decoding processing in units of tiles is possible using wavelet transform.
[0222]
In other words, by encoding the image in units of tiles, if it is desired to decode a part of the image, it is only necessary to decode the tile including that area without decoding the entire image, thereby improving the random access function. Can do.
[0223]
【The invention's effect】
According to the image encoding method and the image decoding method of the present invention, when decoding an image, it is possible to decode at different resolutions, or to decode only a specific tile in the image. Further, when it is desired to decode a low resolution image, only the low resolution subband information can be accessed to quickly reproduce the reduced overall image.
[0224]
Furthermore, by managing information indicating the storage position of the encoded information corresponding to each tile at a position independent of the encoded information, the position of the target tile can be easily calculated. Moreover, even if it does not decode all encoding information, the target tile can be quickly decoded by using the management information arranged independently of the encoding information.
[Brief description of the drawings]
FIG. 1 shows image coding according to the first embodiment of the present invention.MethodTheTo explainIt is a block diagram.
[Fig. 2] Image coding according to the first embodiment of the present invention.MethodIt is explanatory drawing explaining these.
[Fig. 3] Image coding according to the first embodiment of the present invention.MethodIt is explanatory drawing which shows an example of the bit stream in.
FIG. 4 is an image encoding according to the first embodiment of the present invention.MethodIt is explanatory drawing which shows another example of the bit stream in.
FIG. 5 is an image coding according to the second embodiment of the present invention.MethodIt is explanatory drawing explaining these.
[Fig. 6] Image decoding according to Embodiment 3 of the present invention.MethodTheTo explainIt is a block diagram.
[Fig. 7] Image decoding according to the fourth embodiment of the present invention.MethodIt is explanatory drawing explaining these.
[Fig. 8] Image coding according to Embodiment 5 of the present invention.MethodTheTo explainIt is a block diagram.
[Fig. 9] Image coding according to Embodiment 5 of the present invention.MethodIt is explanatory drawing explaining these.
[Fig. 10] Image coding according to Embodiment 6 of the present invention.MethodIt is explanatory drawing explaining these.
[Fig. 11] Image coding according to Embodiment 7 of the present invention.MethodTheTo explainIt is a block diagram.
FIG. 12 is an image encoding according to a seventh embodiment of the present invention.MethodIt is explanatory drawing explaining these.
FIG. 13 is an image decoding according to the eighth embodiment of the present invention.MethodTheTo explainIt is a block diagram.
FIG. 14 is an image decoding according to the ninth embodiment of the present invention.MethodTheTo explainIt is a block diagram.
FIG. 15 is an image encoding according to the tenth embodiment of the present invention.MethodTheTo explainIt is a block diagram and explanatory drawing explaining the operation | movement.
FIG. 16 is an image decoding according to the eleventh embodiment of the present invention.MethodTheTo explainIt is a block diagram and explanatory drawing explaining the operation | movement.
FIG. 17 is an image encoding according to a twelfth embodiment of the present invention.MethodExampleTo explainIt is a block diagram.
FIG. 18 is an image encoding according to a twelfth embodiment of the present invention.MethodAnother example ofTo explainIt is a block diagram.
FIG. 19 is an image encoding according to a twelfth embodiment of the present invention.MethodAnother example ofTo explainIt is a block diagram.
FIG. 20 is an image decoding according to the thirteenth embodiment of the present invention.MethodExampleTo explainIt is a block diagram.
FIG. 21 shows image decoding according to the thirteenth embodiment of the present invention.MethodAnother example ofTo explainIt is a block diagram.
FIG. 22 is an image decoding according to the thirteenth embodiment of the present invention.MethodAnother example ofTo explainIt is a block diagram.
FIG. 23: Image coding according to the fourteenth embodiment of the present inventionMethodExampleTo explainIt is a block diagram.
[Fig. 24] Image coding according to Embodiment 14 of the present invention.MethodExample of bitstream inTo explainIt is explanatory drawing.
FIG. 25: Image coding according to the fourteenth embodiment of the present inventionMethodAnother example ofTo explainIt is a block diagram.
[Fig. 26] Image coding according to Embodiment 14 of the present invention.MethodAnother example ofTo explainIt is a block diagram.
FIG. 27: Image coding according to the fourteenth embodiment of the present inventionMethodAnother example ofTo explainIt is a block diagram.
FIG. 28 shows image decoding according to the fifteenth embodiment of the present invention.MethodTheTo explainIt is a block diagram.
FIG. 29 is an image encoding according to the sixteenth embodiment of the present invention.MethodExampleTo explainIt is a block diagram and explanatory drawing explaining the operation | movement.
FIG. 30 is an image encoding according to the sixteenth embodiment of the present invention.MethodAnother example ofTo explainIt is a block diagram.
FIG. 31 is an image decoding according to the seventeenth embodiment of the present invention.MethodTheTo explainIt is a block diagram.
FIG. 32 shows conventional technology.To explainIt is a block diagram and explanatory drawing explaining the operation | movement.
FIG. 33 is a block diagram showing a conventional technique.
FIG. 34 is a block diagram showing a conventional technique.
FIG. 35 is an explanatory diagram for explaining a conventional technique.
FIG. 36 is a block diagram showing a conventional technique.
FIG. 37 is an explanatory diagram for explaining a conventional technique.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 101 ... Tile division part, 102 ... Wavelet transformation part, 103 ... Quantization part, 104 ... Entropy coding part, 105 ... Wavelet transformation coding part, 106 ... Management information generation part, 107 ... Encoded data integration part, 401 ... Management information separation unit, 402 ... encoded data extraction unit, 403 ... entropy coding unit, 404 ... inverse quantization unit, 405 ... inverse wavelet transform unit, 406 ... wavelet transform decoding unit, 407 ... tile concatenation unit, 501 ... tile Dividing unit, 502 ... Ambient pixel adding unit, 503 ... Wavelet transform unit, 504 ... Quantizing unit, 505 ... Entropy coding unit, 506 ... Wavelet transform coding unit, 507 ... Management information generating unit, 508 ... Integrated encoded data , 701... Wavelet transform unit, 702... Tile configuration unit, 703. Entropy encoding unit, 705 ... wavelet transform encoding unit, 706 ... management information generation unit, 707 ... encoded data integration unit, 901 ... management information separation unit, 902 ... encoded data extraction unit, 903 ... entropy decoding unit, 904 ... dequantization unit, 905 ... inverse wavelet transform unit, 906 ... wavelet transform decoding unit, 907 ... tile integration unit, 1001 ... management information separation unit, 1002 ... encoded data extraction unit, 1003 ... entropy decoding unit, 1004 ... inverse Quantization unit, 1005... Wavelet transform coefficient rearrangement unit, 1006... Inverse wavelet transform unit, 1007... Wavelet transform decoding unit, 1101... Wavelet transform decoding unit, 1102. 1701, 1801, 2101 2201 ... Tile wavelet encoding unit, 1602, 1706, 1802, 1905, 2005, 2105 ... Flag generation unit, 1603, 2203, 2302, 2802, 2903 ... Management information generation unit, 1604, 1703, 1803, 1903, 2004, 2103 , 2605 1st switch, 1605, 1704, 1804, 1904, 2104, 2604 ... 2nd switch, 1606, 1805 ... 3rd switch, 1607, 1702, 1807 ... wavelet encoding unit, 1608 ... first wavelet encoding unit 1705 ... 2nd wavelet encoding unit, 1806 ... 4th switch, 2204, 2503 ... encoded data combining unit, 1901, 2001, 2601 ... tile wavelet decoding unit, 1902, 2002, 2102 ... wavelet ..., 1906... 1st inverse wavelet transform unit, 2003... 2nd inverse wavelet transform unit, 2202 and 2905... ID creation unit, 2301... Data amount measurement unit, 2401. ... encoded data storage buffer, 2502 ... management information storage buffer, 2602, 3002 ... data skip control unit, 2603 ... decoding tile determination unit, 2801 ... peripheral tile ID determination unit, 2901 ... data amount storage unit, 2902 ... relative position Calculation unit, 3001 ... buffer, 2606 ... management information separation unit, 2904 ... information storage buffer, 3201, 3205, 3209, 3213 ... tile division unit, 3204, 3208, 3212 ... 1/2 reduction unit, 3202, 3206, 3210, 3214 ... JPEG compression unit, 3203, 3207, 3211, 215: Encoded data integration unit, 3301 ... Wavelet transform unit, 3302 ... Quantization unit, 3303 ... Entropy decoding unit, 3304 ... Wavelet transform coding unit, 3401, 3414, 3426 ... Horizontal low-pass filter, 3402, 3415, 3427 ... horizontal high-pass filters, 3403, 3405, 3416, 3434, 3428, 3430 ... vertical low-pass filters, 3404, 3406, 3417, 3419, 3429, 3431 ... vertical high-pass filters, 3407 to 3412, 3420 to 3425, 3432 to 3437: 1/2 sub-sampling unit, 3613: sub-band of horizontal low band / vertical low band, 3601 ... entropy decoding unit, 3602 ... inverse quantization unit, 3603 ... inverse wavelet transform unit, 3604 Wavelet transform decoding unit, 3701 ... filter application pixel, 3702 ... filter calculation target range.

Claims (3)

画像データをN画素×M画素のタイルに分割し、各タイルに対応する符号化対象データとして、タイル内のN画素×M画素を出力するステップと、
前記各タイルに対応する符号化対象データの周囲に所定のデータを外挿してサブバンド分割を行い、各タイルをそれぞれ独立にウェーブレット符号化するステップと、
任意のタイルを独立して、前記サブバンド単位で復号するための管理情報を生成するステップと、
前記管理情報を前記符号化情報に付加して、ビットストリームを生成するステップとを具備し、
前記管理情報は、各タイルの符号化情報のビットストリーム上での位置を示す情報と、各サブバンドを管理・識別する情報とを含み、前記符号化情報とは独立した位置にまとめて配置されることを特徴とする画像符号化方法。
Dividing the image data into tiles of N pixels × M pixels and outputting N pixels × M pixels in the tile as encoding target data corresponding to each tile;
Extrapolating predetermined data around the encoding target data corresponding to each tile to perform subband division, and independently performing wavelet encoding on each tile;
Generating management information for independently decoding arbitrary tiles in units of subbands;
Adding the management information to the encoded information to generate a bitstream;
Arrangement wherein the management information includes information indicating a position in the bit stream of the coded information for each tile, seen including a management-information identifying each subband, are summarized in a position independent from said coded information picture coding method characterized in that it is.
画像データをタイルに分割し、各タイルをそれぞれ独立にウェーブレット符号化した符号化情報と、符号化情報を管理するための管理情報とからなるビットストリームを入力し、必要とするタイル及び解像度に応じた復号画像を復号する画像復号方法であって、
前記管理情報は、各タイルもしくは解像度に対応する符号化情報のサイズを含み、前記符号化情報とは独立した位置にまとめて配置され、
復号するタイルあるいは解像度に対応する符号化情報の格納位置を前記サイズをもとに解析するステップと、
前記格納位置をもとに、ウェーブレット復号を行うステップと、
前記ウェーブレット復号されたタイル単位の復号画像を連結するステップとを備えた、
画像復号方法。
Dividing the image data into tiles, tiles and resolution of each tile type and c Eburetto coded coding information independently, a bit stream composed of a management information for managing the encoded information requires An image decoding method for decoding a decoded image according to
The management information includes the size of encoding information corresponding to each tile or resolution, and is collectively arranged at a position independent of the encoding information,
Analyzing the storage position of the encoded information corresponding to the tile or resolution to be decoded based on the size;
Performing wavelet decoding based on the storage location ;
And a step of connecting the decoded image of the wavelet decoded tile units,
Image decoding method.
請求項2に記載の画像復号方法において、The image decoding method according to claim 2, wherein
前記復号するタイルあるいは解像度に対応する符号化情報の格納位置を前記サイズをもとに解析するステップは、復号するタイルもしくは解像度に対応する符号化情報の格納位置を前記サイズを足し合わせて得る画像復号方法。  The step of analyzing the storage position of the encoding information corresponding to the tile to be decoded or the resolution based on the size is an image obtained by adding the storage position of the encoding information corresponding to the tile to be decoded or the resolution to the size Decryption method.
JP2002075296A 1997-09-19 2002-03-19 Image encoding method and image decoding method Expired - Fee Related JP4036665B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002075296A JP4036665B2 (en) 1997-09-19 2002-03-19 Image encoding method and image decoding method

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP25461697 1997-09-19
JP10-18782 1998-01-30
JP1878298 1998-01-30
JP9-254616 1998-01-30
JP2002075296A JP4036665B2 (en) 1997-09-19 2002-03-19 Image encoding method and image decoding method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2000343053A Division JP3614361B2 (en) 1997-09-19 2000-11-10 Image decoding device

Publications (3)

Publication Number Publication Date
JP2002359745A JP2002359745A (en) 2002-12-13
JP2002359745A5 JP2002359745A5 (en) 2005-08-04
JP4036665B2 true JP4036665B2 (en) 2008-01-23

Family

ID=27282363

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002075296A Expired - Fee Related JP4036665B2 (en) 1997-09-19 2002-03-19 Image encoding method and image decoding method

Country Status (1)

Country Link
JP (1) JP4036665B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4988623B2 (en) * 2008-02-19 2012-08-01 京セラドキュメントソリューションズ株式会社 Image encoding apparatus and image decoding apparatus

Also Published As

Publication number Publication date
JP2002359745A (en) 2002-12-13

Similar Documents

Publication Publication Date Title
JP3213584B2 (en) Image encoding device and image decoding device
TW278299B (en)
JP4116304B2 (en) Digital image compression method
KR101465817B1 (en) Signaling and use of chroma sample positioning information
US6560369B1 (en) Conversion of wavelet coded formats depending on input and output buffer capacities
US7529417B2 (en) Apparatus, method and storage medium for image encoding/decoding using shape-based coefficient interpolation
US7298910B2 (en) Wavelet inverse transform method and apparatus and wavelet decoding method and apparatus
JP3614361B2 (en) Image decoding device
JPH08294119A (en) Image coder/decoder
JP2000013593A (en) Device and method for generating images
JP2008306510A (en) Image coding method, image coding device, image decoding method and image decoding device
JP4036665B2 (en) Image encoding method and image decoding method
JP4841504B2 (en) Image coding apparatus and method
JP2002152744A (en) Method for expanding conversion coded image
JP4194472B2 (en) Image processing method and apparatus
JP2005223852A (en) Image-encoding device and method, and image-decoding device and method
CA2400487C (en) Image decoder
JP4514464B2 (en) Image encoding apparatus and image decoding apparatus, and image display apparatus and method using them
JP4194311B2 (en) Moving picture encoding apparatus, moving picture decoding apparatus, and methods thereof
JPH07222149A (en) Method and device for processing picture
JPH07336681A (en) Picture converting device
JP2001309378A (en) Method and device for encoding and decoding moving video simultaneously having spatial hierarchical structure and picture hierarchical structure
JPH08307865A (en) Image processing method
JP2003023633A (en) Image decoding method and device
AU4522000A (en) Digital image coding

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20041210

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041224

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041224

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071030

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111109

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111109

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121109

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121109

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131109

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees