以下、添付する図面を参照して本発明の実施形態を説明する。
[第1の実施形態]
以下、本発明の第1の実施形態を、図面を用いて詳細に説明する。図1は本実施形態に係る動画像符号化装置を示すブロック図である。
本実施形態では、動画像符号化装置が使用する画像の符号化方式として、MotionJPEG2000符号化方式を例にとって説明するが、これに限定されない。また、形状符号化方式として、MPEG−4符号化方式を例にとって説明するがこれに限定されない。
図1において、1は入力された画像データをブロック単位に分割するブロック分割部であり、2は分割されたブロックに対して離散ウェーブレット変換を施すDWT部である。3は離散ウェーブレット変換で得られたサブバンド係数を量子化する量子化部である。4は量子化結果で領域外のサブバンド係数を補填する係数補填部である。5はJPEG2000符号化方式のEBCOT符号化をビットプレーン毎に行うエントロピー符号化部であり、6はビットレートを調整するビット切り捨て部である。7は入力された形状情報をブロック単位に分割するブロック分割部であり、8はブロック分割された形状情報をDWT部2の周波数帯に合わせて縮小を行う縮小部である。9はMPEG−4符号化方式の形状符号化方式で符号化するエントロピー符号化部である。10は必要なヘッダを生成し、ビット切り捨て部6とエントロピー符号化部9の出力から符号化データを形成する符号形成部である。
上記のように構成された動画像符号化装置における動画像符号化動作を以下で説明する。
本実施形態では、動画像データをフレーム単位に入力する。同時に別途抽出された形状情報を入力するものとするが、内部で形状情報の抽出を行ってももちろん構わない。ここで、形状情報は、画像データが示す物体内部に含まれるか物体外部であるかを示す識別データであり2値で表される。図22(a)に入力される動画像データを図22(b)にその形状情報を示す。
ブロック分割部1には動画像データが入力され、ブロック分割部7には形状情報が入力され、それぞれ1フレーム分を保持してブロックに分割し、後段にブロック単位で出力する。ブロック分割部1でブロック分割された動画像データはDWT部2に入力される。DWT部2で行う離散ウェーブレット変換は適用回数を2回とし7分割する場合を例にとって説明するが、これに限定されない。
ブロック分割された形状情報はエントロピー符号化部9と縮小部8に入力される。エントロピー符号化部9ではMPEG−4符号化方式の形状符号化方式で符号化され、符号形成部10に出力される。
縮小部8では入力された形状情報を、DWT部2での適用回数に従って、縮小する。本実施形態で説明する適用回数が2回であれば、1/2、1/4の縮小を行った形状情報を生成する。すなわち適用回数をTとすると(1/2)N(但し、N=1・・・T)の縮小画像を生成する。縮小された形状符号化はそれぞれの周波数帯に対応しており、これを並べた状態を図22(c)に示す。
図2にDWT部2の詳細なブロック図を示す。図2において、50、69は水平方向のローパスフィルタ処理を行うHLPF部、53、72は水平方向のハイパスフィルタ処理を行うHHPF部、57、63、76、82は垂直方向のローパスフィルタ処理を行うVLPF部、60、66、79、85は垂直方向のハイパスフィルタ処理を行うVHPF部である。56、75は形状情報の水平方向の1/2サブサンプリングを行うサブサンプリング部、51、54、70、73はフィルタの出力を水平方向に1/2サブサンプリングするサブサンプリング部、58、61、64、67、77、80、83、86は垂直方向に1/2サブサンプリングするサブサンプリング部、52、55、59、62、65、68、71、74、78、81、84、87はフィルタ処理結果を格納するメモリである。
DWT部2には、ブロック分割部1から画像データが、ブロック分割部7から縮小されていない形状情報が、縮小部8から(1/2)に縮小された形状情報が入力される。画像データはHLPF部50とHHPF部53に入力され、水平方向にフィルタ処理が施される。例えば、JPEG2000で使用される9−7フィルタを使用する例を取って説明する。すなわち、領域外の部分に関しては仮想的に画素値を補い、水平方向に7タップのローパスフィルタと9タップのハイパスフィルタを施す。但し、これに限定されない。
図3に各フィルタ部の詳細なブロック図を示す。図3において、タップ数はそれぞれのフィルタに依存するがここでは9タップの場合を例にとって説明する。
100は形状情報の9画素分のデータを蓄積するラッチ群であり、101は画像データの9画素分のデータを蓄積するラッチ群である。102は入力された形状情報から境界を判定する境界判定器であり、103は境界判定器102の結果とラッチ群101の画像データからフィルタ処理を行うためのデータを生成する補填器であり、104は補填器103からの出力を係数ごとに格納するラッチ群である。105はフィルタ演算を行うフィルタ演算部である。
形状情報とフィルタ処理を行う画素値はラッチ群100とラッチ群101に入力される。境界判定器102は形状情報から領域内外を分ける境界を検出し、その状況を補填器103に入力する。補填器103はフィルタの中央の画素とそれに隣接する領域内画素値に関してはそのままとして、それ以外の画素値を補填する。それ以外の画素について領域内の画素値を用いて境界を境に点対称で補填を行う。
ここで、形状情報に基づく領域内外の判定と、画素値の補填について図5乃至図8を参照して説明する。図5は、入力される画像のデータ例を示す。水平方向に9画素がある状態を示しており、太枠で囲まれた画素が中央であり、その画素値をAとする。灰色の部分が領域外を表わす。中央から左方向に画素値をB、C、D、E、とし、中央から左方向に画素値をF、G、H、Iとする。第1列では中央の画素Aの左右から領域外となっており、これより境界は中央画素の両脇にあると考えられる。第2列は画素Bの左側と画素Aの右側にあると考えられ、以下、同様に境界を検出することができる。
この境界を境に点対称に拡張・補填を行う。その様子を図6に示す。図6では小文字は複写された結果を表し、aはAを複写した値を表し、以下、bとB、cとC、dとD、eとE、fとF、gとG、hとH、iとIはそれぞれを複写した値を表している。第1列では両方向に向かってAの画素値を複写する。第2列では画素Aの右側に画素Bの値を複写する。Bの左側に対しては画素Aの値を複写する。画素Aの2つ右側には画素Aを画素Bの左側に複写した画素aを複写する。以下同様にして9タップの全てに画素を補填する。以下、第3列以降も同様にして補填を行う。
また、境界の形状によっては複数の領域が存在する場合が生じる。図7にその一例を表す。第1列では画素Aの領域のほかに画素G、H、Iからなる領域も存在する。これらに関しても中央の両隣の境界を検出して補填を行う。その結果を図8に示す。第1列では画素Aを含む領域と画素G、H、Iを含む領域は離れているため、中央の画素Aの左右から領域外として補填が行われ、全て画素Aを複写した画素aとなる。第2列以下でも同様に中央の画素を含む領域の両側に境界があるものとして補填が行われている。
図3に戻って、補填器103で上記のように補填した結果がラッチ群104に格納されている。フィルタ演算器105はそれぞれの重みを積算し、それらの値を加算して出力することで、図6や図8の画素Aに対する変換値が出力される。
図2に戻って、変換の結果はサブサンプリング部51、54で水平方向に1/2にサブサンプリングされ、メモリ52、55に格納される。
入力された形状情報はサブサンプリング部56で水平方向に1/2にサブサンプリングされ、VLPF部57、63とVHPF部60、66に入力される。各フィルタ部は上記のHLPF部50、HHPF部53と同様に領域外の値を補填・拡張しながらフィルタ処理を行い、それぞれサブサンプリング部58、61、64、67に入力され、垂直方向に1/2サブサンプリングされてメモリ59、62、65、68に格納される。メモリ59、62、65、68は周波数帯1LL、1LH、1HL、1HHの内容が格納される。
適用回数を2回としたので、1LLに対して同様の変換を施す。HLPF部69、HHPF部72に入力されるサイズは入力に対して縦横1/2に縮小されたものであり、それに合わせて縮小部8から縦横1/2に縮小した形状情報を入力することが異なるが処理は同じである。その結果、メモリ78、81、84、87に周波数帯2LL、2HL、2LH、2HHの内容が格納される。それぞれの周波数帯の関係を図23に示す。
図1に戻って、DWT部2で生成された各周波数帯のサブバンド係数は量子化部3で量子化され、係数補填部4に入力される。係数補填部4は縮小部8から縮小された形状情報を入力し、領域外のサブバンド係数を領域内のサブバンド係数で補填する。
図4は係数補填部4の詳細なブロック図である。同図において、121は形状情報を格納するラッチであり、122はサブバンド係数を格納するラッチであり、124はラッチ121の内容に従って入力を切換えるセレクタである。123はセレクタ124の出力を格納するラッチである。125は係数の置換を検出する形状情報更新器である。121〜125までの各ブロックは、周波数帯の垂直方向のサイズに対応した数(A〜Z)を用意するものとする。126はメモリであり、水平方向に対して補間処理を行った結果を格納する。127はメモリであり、形状情報更新器125の出力を1ブロック分格納する。
また、ラッチ121−a〜z、ラッチ122−a〜z、ラッチ123−a〜z、セレクタ124−a〜zは水平方向のサイズに対応した数に対応している。ラッチ123−A〜Z、ラッチ123−a〜zは処理に先立って0にリセットされている。
上記の構成で、周波数帯1LLを対象として説明を行うが他の周波数帯についても処理は同様である。量子化部3から周波数帯毎にサブバンド係数の量子化結果がライン毎に画素単位でラスター順に入力される。図30に入力される量子化結果を示す。A〜Iの文字が入っている部分は領域内の量子化結果であり、空白の部分は領域外の量子化結果である。入力された量子化結果はラッチ122−A〜Zに格納される。それに対応する縮小された形状情報が同様にライン毎に画素単位でラスター順にラッチ121−A〜Zに格納される。セレクタ124−A〜Zはラッチ121−A〜Zの値が領域内であることを示していれば、ラッチ122−A〜Zの値を出力し、領域外であることを示していれば、ラッチ123A〜Zの値を出力する。その結果はメモリ125に格納される。
すなわち、水平方向で左側に領域内のサブバンド係数があればその値を次の領域内のサブバンド係数またはブロックの右端まで繰り返し、左側に領域内のサブバンド係数がなければ0を次の領域内のサブバンド係数またはブロックの右端まで繰り返す。メモリ125にはこのようにして水平方向に補填を行った結果が格納される。図31に図30に入力される量子化結果に対するメモリ125に格納された結果を示す。
一方、形状情報更新器125(−A〜Z)には、ラッチ121、ラッチ122、セレクタ124の出力が入力される。形状情報更新器125は、ラッチ121からの入力が領域内であればそのまま領域内を表す値を、領域外であればラッチ122の内容とセレクタ124の出力を比較し、値が同じであれば領域外を表す値を、値が異なれば領域内を表す値を出力する。メモリ127にはこのようにして水平方向に補填を行って修正された形状情報が格納される。
また、メモリ126以下のブロックでは垂直方向に補填を行う。メモリ126からラインの画素毎に上から下に向けてサブバンド係数が入力される。ラッチ121−a〜zについても縮小部8から1/2に縮小された形状情報をラインの画素毎に上から下に向けて入力され格納される。セレクタ124−a〜zはメモリ127から読み出された修正された形状情報に従って、ラッチ121−a〜zの値が領域内であればラッチ122−a〜zの値を出力し、領域外であればラッチ123a〜zの値を出力する。
すなわち、垂直方向で上側に領域内のサブバンド係数があればその値を次の領域内のサブバンド係数またはブロックの下端まで繰り返し、上側に領域内のサブバンド係数がなければ0を次の領域内のサブバンド係数またはブロックの下端まで繰り返す。その結果はエントロピー符号化部5に入力される。図32に図30に入力される量子化結果に対するエントロピー符号化部5に出力された結果を示す。
図2に戻って、エントロピー符号化部5は入力された量子化結果をビットプレーン毎にEBCOT符号化し、ビット切り捨て部6に入力する。ビット切り捨て部6は不図示のバッファ等の容量からレート制御を行うため、出力するビットプレーンの数を決定して、当該のビットプレーンの符号化データを符号形成部10へ出力する。符号形成部10は必要なヘッダとエントロピー符号化部9から出力された形状情報の符号化データと、ビット切り捨て部6から出力された符号化データを多重化して出力する。
このような一連の選択動作により、形状に対応した画像データを符号化することが可能になり、離散ウェーブレット変換部で形状を考慮した拡張を行い、係数補填部でサブバンド係数を領域外に繰り返しで補填することで、補填による影響を抑制し、高速に処理するといった効果が得られる。
なお、本実施形態においては画像の符号化方式をJPEG2000符号化方式としたが他の符号化方式、たとえば、MPEG−4のStill Texture Object符号化などの静止画像符号化方式を採用してもかまわない。また、形状情報の符号化をMPEG−4符号化方式としたが、JBIGやMMRなどの符号化方式であってもよい。
また、本実施形態の各部または全部の機能をソフトウェアで記述し、CPU等の演算装置によって実行させてもよい。
[第2の実施形態]
図9は、本発明の第2の実施に係る動画像復号装置の構成を示すブロック図である。本実施形態では第1の実施形態で生成された符号化データを復号する場合を例にとって説明するが、これに限定されない。
400はヘッダを解析し、解析結果に基づいて、後段を制御し、入力された符号化データをビット切り捨て部404とエントロピー復号部401に入力する符号解析部である。401はMPEG−4符号化方式の形状符号化方式で復号するエントロピー復号部である。402は復号して得られた形状情報を格納するフレームメモリである。403は復号された形状情報を逆DWT部407の周波数帯に合わせて縮小を行う縮小部である。404は復号するビット数を調整するビット切り捨て部である。405はJPEG2000符号化方式のEBCOT符号化によってビットプレーン毎に復号を行うエントロピー復号部である。406は量子化されたサブバンド係数を逆量子化する逆量子化部である。407は逆量子化したブロックに対して形状情報に基づいて逆離散ウェーブレット変換を施す逆DWT部である。408は復号して得られた画像データを格納するフレームメモリである。
上記のように構成された動画像復号装置における動画像復号動作を以下で説明する。
本実施形態では、動画像データの符号化データがフレーム単位に入力される。入力された符号化データは符号解析部400に入力される。付加されたヘッダを解析し、符号化の特性を把握し、後段の各部の初期化等を行う。また符号解析部400は入力された符号化データから形状情報に関する符号化データと画像データに関する符号化データとを分離し、前者をエントロピー復号部401に、後者をビット切り捨て部404に出力する。
エントロピー復号部401は、MPEG−4符号化方式の形状符号化方式に従って復号し、形状情報を生成し、フレームメモリ402に格納する。同時に縮小部403に入力する。縮小部403は符号解析部400で解析されて得られた離散ウェーブレット変換の適用回数に従って、形状情報の縮小画像を生成して保持する。本実施形態では第1の実施形態で生成された符号化データを復号するので、適用回数は2回である。縮小された形状情報は逆DWT部407に入力される。
一方、画像データに関する符号化データはビット切り捨て部404に入力される。ビット切り捨て部404はエントロピー復号部405やその他の状況から復号するビット数を調整する。エントロピー復号部405はビットプレーン毎にEBCOT符号化に従って復号し、逆量子化部406に入力する。逆量子化部406は入力された値に対して所定の逆量子化を行い、サブバンド係数を再生し、逆DWT部407に入力される。
図10に逆DWT部407の詳細なブロック図を示す。図10において、450、451、452、453、472、473、474、475は垂直方向に2倍のアップサンプリングするアップサンプリング部、454、456、476、478は垂直方向のローパスフィルタを行うVLPF部、455、457、477、479は垂直方向のハイパスフィルタを行うVHPF部、458、459、460、461、469、470、480、481、482、483、492、493はフィルタ処理結果を格納するメモリ、462、463、471、484、485、494は周波数合成を行う合成部である。464、465、486、487はフィルタの出力を水平方向に2倍のアップサンプリングするアップサンプリング部、467、490は水平方向のローパスフィルタを行うHLPF部、468、491は水平方向のハイパスフィルタを行うHHPF部、である。466、489は形状情報の垂直方向の2倍のアップサンプリングを行うアップサンプリング部である。
逆DWT部407へは、図9の逆量子化部406からサブバンド係数が、縮小部403から(1/4)に縮小された形状情報と(1/2)に縮小された形状情報が入力される。またブロックの周波数帯2LL、2LH、2HL、2HHのサブバンド係数がアップサンプリング部450、451、452、453にそれぞれ入力される。アップサンプリング部450、451、452、453は垂直方向に2倍のアップサンプリングするために各係数の間に0値を挿入する。アップサンプリングされたそれぞれのサブバンド係数は(1/4)に縮小された形状情報と共にVLPF部454、VHPF部455、VLPF部456、VHPF部457に入力される。
各部のフィルタは第1の実施形態で図3に表したような構成のフィルタで構成されており、逆離散ウェーブレット変換の係数に従って、補填を行いながらフィルタ処理を行う。求められた結果はメモリ458、459,460、461にそれぞれ格納される。合成部462はメモリ458、459からそれぞれの係数値を読み出し、逆離散ウェーブレット変換で規定されている周波数での合成を行う。同様に、合成部463はメモリ460、461からそれぞれの係数値を読み出し、逆離散ウェーブレット変換で規定されている周波数での合成を行う。
アップサンプリング部464、465は水平方向に2倍のアップサンプリングするために間に各係数間に0値を挿入する。一方、入力された(1/4)に縮小された形状情報はアップサンプリング部466に入力され、形状情報の係数単位での繰り返しによって垂直方向に2倍にアップサンプリングする。アップサンプリング部464、465でアップサンプリングされたそれぞれのサブバンド係数は、アップサンプリング部466で拡大された形状情報と共にHLPF部467、HHPF部468に入力される。HLPF部467、HHPF部468も図3のフィルタ部の構成をとっており、求められた結果はメモリ469、470にそれぞれ格納される。合成部471はメモリ469、470からそれぞれの係数値を読み出し、逆離散ウェーブレット変換で規定されている周波数での合成を行う。これにより、周波数帯1LLを算出する。
同様に周波数帯1LH.1HL、1HHを図9の逆量子化部406から入力してフィルタ処理を行い、最終的に合成部494で画素値を得る。図9に戻って、求められた画素値はフレームメモリ408に格納され、フレームメモリ402に格納された形状情報と共に外部に出力される。
このような一連の選択動作により、離散ウェーブレット変換部で形状を考慮した拡張を行って符号化された符号化データを復号することが可能になり、符号化データを劣化なく復号することが可能となる。さらにビット切り捨てを行うことで、適宜情報量を減らして高速な処理を行うことも可能となる。
[第3の実施形態]
図11は、本発明の第3の実施に係る動画像符号化装置の構成を示すブロック図である。図11において第1の実施形態の図1と同様の機能を果たす部分に関しては同じ番号を付与し、説明を省略する。
200は形状情報を格納するフレームメモリであり、201は動き補償部207で求められた動きベクトルで求められる形状情報の予測データとの差分を求める差分部である。202は動き補償部207で求められた動きベクトルで求められる画像データの予測データとの差分を求める差分部である。203は量子化部3の逆量子化を行う逆量子化部であり、204はDWT部2の逆変換を行う逆DWT部である。205は予測データとの加算を行う加算部である。
206は動き補償の参照のために復号画像を格納しておくフレームメモリである。207はフレームメモリ206に格納された復号画像と入力画像とから動き予測を行い、動きベクトルと予測データを算出する動き補償部である。208は量子化結果で領域外のサブバンド係数を補填する係数補填部である。209は必要なヘッダを生成し、動きベクトルを符号化し、エントロピー符号化部5とエントロピー符号化部9の出力から符号化データを形成する符号形成部である。
上記のように構成された動画像符号化装置における動画像符号化動作を以下で説明する。
本実施形態では、動画像データがフレーム単位に入力される。同時に別途抽出された形状情報が入力されるものであるが、形状情報は装置内部において動画像データから抽出してもよい。
第1の実施形態と同様にブロック分割部1は動画像データを、ブロック分割部7は形状情報を入力し、1フレーム分を保持してブロックに分割し、後段にブロック単位で出力する。ブロック分割部1でブロック分割された動画像データは動き補償部207と差分部202に入力される。
動き補償部207は入力された画像データとフレームメモリ206に格納された1枚以上の復号画像のデータとを比較し、予測誤差を最小とする動きベクトルとその予測データを生成する。生成された動きベクトルは符号形成部209に入力される。
一方、ブロック分割部7でブロック分割された形状情報は差分部201、縮小部8、フレームメモリ200に入力される。フレームメモリ200に格納される形状情報は他のフレームの形状情報を動き補償するために使用される。差分部201では動き補償部507で算出された動きベクトルに基づいてフレームメモリ500に格納された符号化済みの形状情報から形状情報の予測データを求め、差分を求める。
エントロピー符号化部9では差分部501から出力された差分をMPEG−4符号化方式の形状符号化方式で符号化され、符号形成部209に出力される。
縮小部8では入力された形状情報を、DWT部2での適用回数に従って、縮小する。
差分部202で動き補償部207で算出された予測データを引く。第1の実施形態と同様にDWT部2ではブロック分割部7から形状情報を、縮小部8から縮小された形状情報を、差分部202からイントラ符号化時には画素値を、動き補償時は予測誤差を入力し、形状情報を参照して補填・拡張を行いつつ、離散ウェーブレット変換を行う。量子化部3で量子化を行い、係数補填部208と逆量子化部203に入力される。
図12に係数補填部208の詳細なブロック図を示す。同図において、250は形状情報を格納するラッチ群であり、251はサブバンド係数を格納するラッチ群である。各ラッチ群は各ブロックの周波数帯の水平方向のサイズに対応した数のラッチを用意するものとする。252は水平方向の境界を判定する境界判定器であり、253は境界判定器252の指示に従って入力を加算する加算器である。254は加算器253の出力を2で除算する除算器である。255はラッチ群251または除算器254の出力を境界判定器252の出力によって選択するセレクタである。256はメモリであり、水平方向に対して補間処理を行った結果を格納する。257は係数の置換を検出する形状情報更新器である。
258はメモリであり、形状情報更新器257の出力を1ブロック分格納する。259は形状情報を格納するラッチ群であり、260はサブバンド係数を格納するラッチ群である。各ラッチ群は各ブロックの周波数帯の垂直方向のサイズに対応した数のラッチを用意するものとする。261は垂直方向の境界を判定する境界判定器であり、262は境界判定器261の指示に従って入力を加算する加算器である。263は加算器262の出力を2で除算する除算器である。262はラッチ群260または除算器263の出力を境界判定器261の出力によって選択するセレクタである。
上記の構成で、周波数帯1LLを対象として説明を行うが他の周波数帯についても処理は同様である。量子化部3から周波数帯毎にサブバンド係数の量子化結果がライン毎に画素単位でラスター順に入力される。入力された量子化結果はラッチ群251に格納される。それに対応する縮小された形状情報が同様にライン毎に画素単位でラスター順にラッチ群250に格納される。境界判定器252はラッチ群250を参照して領域内外の境界を判定する。図33に入力される量子化結果を示す。A〜Iの文字が入っている部分は領域内の量子化結果であり、空白の部分は領域外の量子化結果である。
続いて、ラッチ群250、251の両方から左から右方向へ画素単位で加算器253とセレクタ255にそれぞれの値が入力される。加算器253は、境界判定器252からの入力に応じて画像の左端または領域の右側の境界である場合に動作し、ラッチ251から画像の左端または領域の右側の境界の値と次の領域または画像の右端の値とを加算する。除算器254は加算器253の出力を2で割り、セレクタ255に入力する。セレクタ255はラッチ群250からの出力に基づいて領域内であればラッチ群251からの出力を選択して出力し、そうでなければ除算器254の出力を選択して出力する。その結果はメモリ256に格納される。メモリ256にはこのようにして水平方向に補填を行った結果が格納される。図34に図33に入力される量子化結果に対するメモリ256に格納された結果を示す。ここで、bはAとCの平均であり、cはDとAの平均である。また、fはAとGの平均であり、gはAとHの平均であり、pはCとAの平均である。空白の部分は不定である。
読み出された形状情報は同時に形状情報更新器257に入力される。形状情報更新器257は読み出された形状情報が領域内であればそのまま領域内を表す値を出力する。領域外であれば、境界判定器252から入力されたサブバンド係数に対して両端に領域の境界があるのであれば領域内を表す値を出力し、片方または両方の方向に領域の境界がなければ、領域外を表す値を出力する。形状情報更新器257の出力はメモリ258に格納される。
メモリ256及びメモリ258に1ブロック分のデータが格納されたら、続いて、後段で垂直方向の補填を行う。メモリ256からラインの画素毎に上から下に向けてサブバンド係数がラッチ群260に垂直方向の1ライン分が上から下の順で格納される。同様にラッチ群259にメモリ258から形状情報がラインの画素毎に上から下に向けて入力され、格納される。境界判定器261はラッチ群259を参照して領域内外の境界を判定する。
続いて、ラッチ群260から左から右方向へ画素単位で加算器253とセレクタ255にそれぞれの値が入力される。加算器262は画像の上端または領域の下側の境界である時に加算器262を動作させ、加算器262にラッチ260から画像の上端または領域の下側の境界の値と次の領域または画像の下端の値を入力して加算する。除算器263は加算器262の出力を2で割り、セレクタ264に入力する。セレクタ264はラッチ群259からの出力に基づいて領域内であればラッチ群260からの出力を選択して出力し、そうでなければ除算器263の出力を選択して出力する。その結果はエントロピー符号化部5に入力される。図35に図33に入力される量子化結果に対するエントロピー符号化部5に出力された結果を示す。nはCとCの平均であり、mはBとpの平均である。
図11に戻って、エントロピー符号化部5で符号化されて得られた符号化データは符号形成部209に入力される。
符号形成部209でヘッダ情報を付加し、動きベクトルを符号化して、形状情報の符号化データ、量子化された係数の符号化データと共に出力する。
同時に量子化部3の出力は逆量子化部203で逆量子化され、逆DWT部204で離散ウェーブレット変換の逆変換を施し、加算部205で予測データを加算してフレームメモリ206に格納する。
このような一連の選択動作により、形状に対応した画像データを符号化することが可能になり、離散ウェーブレット変換部で形状を考慮した拡張を行い、係数補填部でサブバンド係数を領域外に平均値で補填することで、補填による影響を抑制し、高速に処理するといった効果がある。また、動き補償符号化を行うことで符号化効率を向上させることもできる。
なお、本実施形態においては画像の符号化方式をJPEG2000符号化方式としたが他の符号化方式、たとえば、MPEG−4のStill Texture Object符号化などの静止画像符号化方式やでももちろんかまわない。また、形状情報の符号化をMPEG−4符号化方式としたが、JBIGやMMRなどの符号化方式であってももちろん構わない。
また、本実施形態の各部または全部の機能をソフトウェアで記述し、CPU等の演算装置によって処理をさせてももちろんかまわない。
[第4の実施形態]
図13は、本発明の第4の実施に係る動画像符号化装置の構成を示すブロック図である。図13において、300は装置全体の制御、及び種々の処理を行う中央演算装置(CPU)、301は本装置の制御に必要なオペレーティングシステム(OS)、ソフトウェア、演算に必要な記憶領域を提供するメモリである。302は種々の装置をつなぎ、データ、制御信号をやり取りするバスである。303は装置の起動、各種条件の設定、再生の指示を行うための端末である。304はソフトウェアを蓄積する記憶装置である。
305はストリームを蓄積する記憶装置である。記憶装置304および、305はシステムから切り離して移動できるメディアで構成することもできる。306は動画像を撮像するカメラである。307は画像を表示するモニタであり、309は通信回路であり、LAN、公衆回線、無線回線、放送電波等で構成されている。308は通信回路309を介してストリームを送受信する通信インターフェースである。
メモリ301には装置全体を制御し、各種ソフトウェアを動作させるためのOS501や動作させるソフトウェア(502〜505)を格納し、画像データを格納する画像エリア506、生成した符号化データを格納する符号エリア507、各種演算や符号化の際のパラメータ等や透かしに関するデータ等を格納しておくワーキングエリア508が存在する。
このような構成において動画像符号化処理について説明する。カメラ306から入力された画像データを符号化し、通信回路309に出力する場合を例にとって説明する。
メモリ301のメモリの使用、格納状況を図14に示す。メモリ301には装置全体を制御し、各種ソフトウェアを動作させるためのOS501、動画像符号化する動画像符号化ソフトウェア502、動画像からオブジェクトを抽出するオブジェクト抽出ソフトウェア503、通信する通信ソフトウェア504、カメラ306から動画像をフレーム単位で入力する画像入力ソフトウェア505が格納されている。ここで、動画像符号化ソフトウェアはMotion JPEG2000符号化方式を例にとって説明するが、これに限定されない。
処理に先立ち、端末303から装置全体に対して起動が指示され、各部が初期化される。すると記憶装置304に格納されているソフトウェアがバス302を介してメモリ301に展開され、起動される。このような構成において、処理に先立ち、メモリ301上の符号エリア507、ワーキングエリア508は0でクリアする。
画像入力ソフトウェア505はカメラ306で撮像された画像データを1フレームずつ、メモリ301上の画像エリア506に格納する。その後、オブジェクト抽出ソフトウェア503は画像エリア506の画像からオブジェクトを抽出し、その形状情報を画像エリア506に格納する。以後、特に、画像エリア506の画像データと形状情報の格納については言及しない。
次に、CPU300による動画像符号化ソフトウェア502が画像データを符号化する処理動作について図15に示すフローチャートに従って説明する。
まずステップS1にて、MotionJPEG2000符号化方式で必要なヘッダを生成して、メモリ301上の符号エリア507に格納する。通信ソフトウェア504は、符号エリア507に符号化データが格納されたら、通信インターフェース308を介して通信回線309に送出し、送出後、符号エリア507の該当する領域をクリアする。以後、特に、符号エリア507の符号化データの送信については言及しない。
ステップS2にて、符号化処理の終了判定を行う。端末303から符号化処理の終了が入力されれば全ての処理を終了する。そうでなければステップS3に進む。ステップS3にて、画像入力ソフトウェア505に同期して、メモリ301上の画像エリア506から画像データを読み込む。ステップS4にて、オブジェクト抽出ソフトウェア503に同期して、メモリ301上の画像エリア506から形状情報を読み込む。
ステップS5にて、1フレームに含まれる全てのブロックについて処理が終了したか否かを判定し、終了していればステップS2に戻り、次のフレームの処理を行う。そうでなければステップS6に進む。ステップS6にて、入力された形状情報から1つのブロックを選択し、をMPEG−4符号化方式の形状符号化方式で符号化し、符号化データをメモリ301上の符号エリア507に格納する。ステップS7にて、入力された画像データから1つのブロックを選択し、形状に適応した離散ウェーブレット変換を施し、その変換係数をメモリ301上のワーキングエリア508に格納する。
ステップS7における形状適応離散ウェーブレット変換の処理について、図16に示すフローチャートを参照して説明する。
ステップS51にて、画像エリア506の画像データから符号化するブロックを切り出す。ステップS52にて、画像エリア506の形状情報から符号化する形状情報のブロックを入力する。ステップS53にて、形状適応離散ウェーブレット変換処理の終了判定を行う。所定の適用回数が終了したかを判定し、所定の適用回数になったらこの処理を終了して図15のステップS8に進む。終了していなければステップS55へ移行する。
ステップS55にて、ステップS51で切り出されたブロックまたは画像エリア506に格納された周波数帯のデータに対して、ステップS52で画像エリア506に格納された形状情報画像エリア506に格納された形状情報、または縮小されてステップS68で画像エリア506に格納された形状情報を参照して水平方向のローパスフィルタ処理を行う。
図17にステップS55の形状適応離散ウェーブレット変換のフィルタ処理についてフローチャートを用いて説明する。図17では係数やその方向が各種のフィルタで異なるだけで基本的な手順は同じである。
ステップS80にて、全ての係数について処理が終了したか判定し、終了していなければステップS81に進み、終了していれば図16のサブサンプリングの処理に進む。ステップS81にて、中央の値が領域外か否かを判定し、領域外であれば、フィルタ演算を行わないため、ステップS80に戻る。そうでなければステップS82に進む。ステップS82にて、中央の値が境界を含むか否かを判定し、境界を含まないのであれば、補填・拡張処理を行わないため、ステップS84に進む。
ステップS83にて、領域外の値を第1の実施形態と同様に点対称で補填を行う。ステップS84にて、各値に重みを乗じ、加算して、その値をメモリ301上のワーキングエリア508に格納し、ステップS80に戻り、次の係数の処理を行う。
図16に戻って、ステップS56にて、ステップS55でワーキングエリア508に格納されたデータに対して、水平方向のサブサンプリングを行い、その値をメモリ301上のワーキングエリア508に格納する。
ステップS57にて、ステップS51で切り出されたブロックまたは画像エリア506に格納された周波数帯のデータに対して、ステップS52で画像エリア506に格納された形状情報、または縮小されてステップS68で画像エリア506に格納された形状情報を参照して水平方向のハイパスフィルタ処理を行い、その値をメモリ301上のワーキングエリア508に格納する。
ステップS58にて、ステップS57でワーキングエリア508に格納されたデータに対して、水平方向のサブサンプリングを行い、その値をメモリ301上のワーキングエリア508に格納する。ステップS59にて、ステップS52で切り出されたりまたは縮小されて画像エリア506に格納されたりした形状情報から水平方向にサブサンプリングして縮小された形状情報を作成し、これをメモリ301上のワーキングエリア508に格納する。
ステップS60にて、ステップS56でサブサンプリング処理され、ワーキングエリア508に格納された周波数帯のデータに対して、ステップS59で縮小されてワーキングエリア508に格納された形状情報を参照して垂直方向のローパスフィルタ処理を行い、その結果をメモリ301上のワーキングエリア508に格納する。ステップS61にて、ステップS60にてフィルタ処理されワーキングエリア508に格納されたデータに対して、垂直方向のサブサンプリングを行い、その値をメモリ301上の画像エリア506に格納する。これはLLに該当する。
ステップS62にて、ステップS56でサブサンプリング処理され、ワーキングエリア508に格納された周波数帯のデータに対して、ステップS59で縮小されてワーキングエリア508に格納された形状情報を参照して垂直方向のハイパスフィルタ処理を行い、その結果をメモリ301上のワーキングエリア508に格納する。ステップS63にて、ステップS62にてフィルタ処理されワーキングエリア508に格納されたデータに対して、垂直方向のサブサンプリングを行い、その値をメモリ301上の画像エリア506に格納する。これはLHに該当する。
ステップS64にて、ステップS58でサブサンプリング処理され、ワーキングエリア508に格納された周波数帯のデータに対して、ステップS59で縮小されてワーキングエリア508に格納された形状情報を参照して垂直方向のローパスフィルタ処理を行い、その結果をメモリ301上のワーキングエリア508に格納する。ステップS65にて、ステップS64にてフィルタ処理されワーキングエリア508に格納されたデータに対して、垂直方向のサブサンプリングを行い、その値をメモリ301上の画像エリア506に格納する。これはHLに該当する。
ステップS66にて、ステップS58でサブサンプリング処理され、ワーキングエリア508に格納された周波数帯のデータに対して、ステップS59で縮小されてワーキングエリア508に格納された形状情報を参照して垂直方向のハイパスフィルタ処理を行い、その結果をメモリ301上のワーキングエリア508に格納する。ステップS67にて、ステップS66にてフィルタ処理されワーキングエリア508に格納されたデータに対して、垂直方向のサブサンプリングを行い、その値をメモリ301上の画像エリア506に格納する。これはHHに該当する。
ステップS68にて、ステップS59で切り出されてワーキングエリア508に格納された形状情報から垂直方向にサブサンプリングして縮小された形状情報を作成し、これをメモリ301上の画像エリア506に格納する。ステップS55からステップS68を行うことによって離散ウェーブレット変換を1回適用した周波数帯とそれに適応する形状情報をメモリ301上の画像エリア506に得ることができる。ステップS53にて所望する適用回数に至らない場合は、入力する画像データ及び、形状情報を直前で求め、画像エリア506に格納されているLLに対して行うことで所望する周波数帯の全てを得ることができる。ステップS53で所望する適用回数に達した場合は図15のステップS8に進む。
図15に戻って、ステップS8にて、メモリ301上の画像に格納された各周波数帯のサブバンド係数に対して量子化を行い、その結果をワーキングエリア508に格納する。
ステップS9にて、ステップS7で画像エリア506に格納した形状情報を参照して、ステップS9でワーキングエリア508に格納された量子化値で領域外の値を補填する。図36に入力される量子化結果を示す。A〜Iの文字が入っている部分は領域内の量子化結果であり、空白の部分は領域外の量子化結果である。図18に係数補填の処理について詳細なフローチャートを示して説明する。ステップS100にて、ブロック内の全ての水平ラインについて補填処理が終了したか否かを判定し、処理が終了していなければステップS101に進み、終了していればステップS108に進む。
ステップS101にて、画像エリア506に格納された形状情報を用いて、処理する周波数帯の水平のラインで全てのサブバンド係数が領域外か否かを判定し、全てが領域外であればステップS100に進み、次の水平ラインの処理を行う。ステップS102にて、処理する水平のラインで全てのサブバンド係数の処理を終了したか否かを判定し、水平ラインの全てのサブバンド係数を処理したのであれば、ステップS100に進み、次の水平ラインの処理を行う。そうでなければステップS103に進む。
ステップS103にて、注目している量子化値が同一周波数帯の同一位置に該当する形状情報を参照して領域外か否かを判定する。領域内と判定された場合はステップS104に進み、そうでなければステップS105に進む。
ステップS104にて、同一位置の形状情報をメモリ301上のワーキングエリア508に格納して、次のサブバンド係数の処理を行うためにステップS102に進む。ステップS105にて、ワーキングエリア508に格納されている形状情報を参照して、注目サブバンド係数より左側に領域が存在するか否かを判定し、存在すればステップS106に進み、存在しなければステップS107に進む。
ステップS106にて、左方向で領域内の最も近い量子化値でワーキングエリア508内の量子化値で当該位置の量子化値を置換し、ワーキングエリア508の同一位置の形状情報に領域内を表す値を格納して、次のサブバンド係数の処理を行うためにステップS102に進む。
ステップS107にて、右方向で領域内の最も近い量子化値でワーキングエリア508内の量子化値で当該位置の量子化値を置換し、ワーキングエリア508の同一位置の形状情報に領域内を表す値を格納して、次のサブバンド係数の処理を行うためにステップS102に進む。図37に図36に入力される量子化結果に対するワーキングエリア508に格納された結果を示す。小文字は大文字の値を複写することを示している。
ステップS108以下で、垂直方向の補填処理を行う。ステップS108にて、ブロック内の全ての垂直ラインについて補填処理が終了したか否かを判定し、処理が終了していなければステップS109に進み、終了していれば図15のステップS10に進む。
ステップS109にて、画像エリア506に格納された形状情報を用いて、処理する垂直のラインで全てのサブバンド係数が領域外か否かを判定し、全てが領域外であればステップS108に進み、次の垂直ラインの処理を行う。そうでなければ、ステップS110にて、処理する垂直のラインで全てのサブバンド係数の処理を終了したか否かを判定し、垂直ラインの全てのサブバンド係数を処理したのであれば、ステップS108に進み、次の垂直ラインの処理を行う。そうでなければステップS111に進む。
ステップS111にて、注目している量子化値がステップS104、ステップS106、ステップS107でワーキングエリア508に格納した形状情報での同一位置に該当する形状情報を参照して領域外か否かを判定する。領域内と判定された場合はステップS110に進み、次のサブバンド係数の処理を行う。そうでなければステップS112に進む。
ステップS112にて、ステップS104、ステップS106、ステップS107でワーキングエリア508に格納した形状情報を参照して、注目サブバンド係数より上側に領域が存在するか否かを判定し、存在すればステップS113に進み、存在しなければステップS114に進む。
ステップS113にて、上方向で領域内の最も近い量子化値でワーキングエリア508内の量子化値で当該位置の量子化値を置換し、次のサブバンド係数の処理を行うためにステップS110に進む。ステップS114にて、下方向で領域内の最も近い量子化値でワーキングエリア508内の量子化値で当該位置の量子化値を置換し、次のサブバンド係数の処理を行うためにステップS110に進む。図38に図36に入力される量子化結果に対するワーキングエリア508に格納された結果を示す。
図15に戻り、ステップS10にて、ステップS9で補填され、ワーキングエリア508に格納されている量子化値を符号化し、メモリ301上の符号エリア507に格納する。ステップS11にて、メモリ301上に格納されたステップS1のヘッダ、ステップS6で格納された形状情報の符号化データ、ステップS10で符号化された量子化値の符号化データを多重化し、メモリ301上の符号エリア507に格納しておく。その後、ワーキングエリア508、画像エリア506のデータをクリアし、次のブロックの処理を行うためにステップS5に進む。端末303で処理の終了が指示されたら、全てのソフトウェアを停止する。
このような一連の選択動作により、形状に対応した画像データを符号化することが可能になり、離散ウェーブレット変換部で形状を考慮した拡張を行い、係数補填部でサブバンド係数を領域外に近傍の値で補填することで、補填による影響を抑制し、領域外の値(例えば0)で補填を行わないため、符号化効率の向上が行えるといった効果がある。なお、本実施形態においては画像の符号化方式をJPEG2000符号化方式としたが他の符号化方式、たとえば、MPEG−4のStill Texture Object符号化などの静止画像符号化方式などでももちろんかまわない。また、動き補償符号化を行うことで符号化効率を向上させることもできる。
また、形状情報の符号化をMPEG−4符号化方式としたが、JBIGやMMRなどの符号化方式であってももちろん構わない。
本実施形態では通信ソフトウェア504を起動し、符号エリア507内の符号化データを通信インターフェース308を介して通信回線309に送信する例について説明したが、記憶装置305に格納してももちろんかまわない。
また、本実施形態の各部または全部の機能をハードウェアで構成してももちろんかまわない。
また、図18の係数補填処理で水平方向の補填を行った後に垂直方向の補填を行ったが、これに限定されず、垂直方向の補填を行った後に水平方向の補填を行ってももちろんかまわない。
[第5の実施形態]
本実施形態では、図13の構成を用いて、第4の実施形態で生成された符号化データの復号動作について説明する。記憶装置305に格納されている符号化データを復号してモニタ307に表示する場合を例にとって説明する。
本実施形態では、動画像データの符号化データをフレーム単位に入力する。メモリ301のメモリの使用、格納状況を図19に示す。第4の実施形態と同様にメモリ301にはOS501、画像エリア506、符号エリア507、ワーキングエリア508が存在する。その他に、動画像を復号する動画像復号ソフトウェア601、通信する通信ソフトウェア504、モニタ307に動画像を表示する画像表示ソフトウェア602が格納されている。
第4の実施形態と同様に各部の初期化が行われ、記憶装置304に格納されているソフトウェアが起動される。CPU300による動画像復号ソフトウェア601が復号する動作について図20に示すフローチャートに従って説明する。
動画像復号ソフトウェア601は、ステップS201にて、記憶装置305から動画像データの符号化データのヘッダに入力し、メモリ301上の符号エリア507に格納した後、符号化の特性を把握し、メモリ301上のワーキングエリア508に各初期値等を格納する。
ステップS202にて、終了判定を行なう。記憶装置305の符号化データの全てを復号するか、端末303から中断の指示が合った場合、全てのメモリ領域をクリアし、ソフトウェアの動作を終了する。そうでなければステップS203に進み、次のフレームの処理を行う。ステップS203にて、動画像データの符号化データを記憶装置305からフレーム単位に入力し、メモリ301上の符号エリア507に格納する。ステップS204にて、フレーム内の全ブロックに対して復号が終了したか否かを判定し、終了していればステップS210に進み、そうでなければステップS205に進む。
ステップS205にて、符号エリア507から形状情報に関する符号化データを読み出し、復号する。本実施形態ではMPEG−4符号化方式の形状符号化方式に従って復号し、形状情報を生成し、画像エリア506に格納する。生成された形状情報は領域内外を表す画素あたり1ビットの情報である。
ステップS206にて、画像エリア506の形状情報に対して、ステップS201で解析した結果から離散ウェーブレット変換の適用回数nを読み出し、n段階の縮小画像を生成して、画像エリア506に格納しておく。ステップS207にて、符号エリア507から画像データに関する符号化データを読み出し、復号して、量子化されたサブバンド係数を求めて、ワーキングエリア508に格納する。
ステップS208にて、ワーキングエリア508の量子化されたサブバンド係数を読み込み、逆量子化を施し、サブバンド係数を再生して、ワーキングエリア508の同じ領域に戻す。ステップS209にて、ワーキングエリア508の再生されたサブバンド係数を読み込み、画像エリアの形状情報に適応した逆離散ウェーブレット変換を施し、その変換係数をメモリ301上のワーキングエリア508に格納する。
ステップS209における逆形状適応離散ウェーブレット変換の処理について、図21に示すフローチャートを参照して説明する。ステップS251にて、ワーキングエリア508のサブバンド係数を読み込む。ステップS252にて、画像エリア506の形状情報から復号したブロックに対応する縮小された形状情報を入力する。
ステップS253にて、形状適応逆離散ウェーブレット変換処理の終了判定を行う。所定の適用回数が終了したかを判定し、所定の適用回数になったらこの処理を終了して図20のステップS204に進む。ステップS254にて、逆量子化されてワーキングエリア508に格納された周波数帯LLのデータに対して、垂直方向のアップサンプリングを行い、その値をメモリ301上のワーキングエリア508に格納する。
ステップS255にて、ステップS254でアップサンプリングされたLLの周波数帯のデータに対して、ステップS252で画像エリア506に格納された形状情報を参照して垂直方向のローパスフィルタ処理を行い、結果をワーキングエリア508に格納する。本フィルタ処理は第4の実施形態の図17に示したフローチャートに従って処理される。以後の各フィルタ処理も同様である。
ステップS256にて、逆量子化されてワーキングエリア508に格納された周波数帯LHのデータに対して、垂直方向のアップサンプリングを行い、その値をメモリ301上のワーキングエリア508に格納する。
ステップS257にて、ステップS256でアップサンプリングされたLHの周波数帯のデータに対して、ステップS252で画像エリアに格納された形状情報を参照して垂直方向のハイパスフィルタ処理を行い、結果をワーキングエリア508に格納する。ステップS258にて、逆離散ウェーブレット変換で規定されている周波数での合成を行い、ワーキングエリア508に格納する。
ステップS259にて、逆量子化されてワーキングエリア508に格納された周波数帯HLのデータに対して、垂直方向のアップサンプリングを行い、その値をメモリ301上のワーキングエリア508に格納する。ステップS260にて、ステップS259でアップサンプリングされたHLの周波数帯のデータに対して、ステップS252で画像エリア506に格納された形状情報を参照して垂直方向のローパスフィルタ処理を行い、結果をワーキングエリア508に格納する。
ステップS261にて、逆量子化されてワーキングエリア508に格納された周波数帯HHのデータに対して、垂直方向のアップサンプリングを行い、その値をメモリ301上のワーキングエリア508に格納する。ステップS262にて、ステップS261でアップサンプリングされたHHの周波数帯のデータに対して、ステップS252で画像エリア506に格納された形状情報を参照して垂直方向のハイパスフィルタ処理を行い、結果をワーキングエリア508に格納する。
ステップS263にて、逆離散ウェーブレット変換で規定されている周波数での合成を行い、ワーキングエリア508に格納する。ステップS264にて、ワーキングエリア508に格納された縮小された形状情報は形状情報の係数単位での繰り返しによって水平方向に2倍にアップサンプリングされてワーキングエリア508に格納される。
ステップS265にて、ステップS258でワーキングエリア508に格納された周波数帯LLのデータと周波数帯LHを合成したデータに対して、水平方向のアップサンプリングを行い、その値をメモリ301上のワーキングエリア508に格納する。ステップS266にて、ステップS265でアップサンプリングされたデータに対して、ステップS264でワーキングエリア508に格納された垂直方向にアップサンプリングされた形状情報を参照して水平方向のローパスフィルタ処理を行い、結果をワーキングエリア508に格納する。
ステップS267にて、ステップS263でワーキングエリア508に格納された周波数帯LHのデータと周波数帯HHを合成したデータに対して、水平方向のアップサンプリングを行い、その値をメモリ301上のワーキングエリア508に格納する。ステップS268にて、ステップS267でアップサンプリングされたデータに対して、ステップS264でワーキングエリア508に格納された水平方向にアップサンプリングされた形状情報を参照して水平方向のハイパスフィルタ処理を行い、結果をワーキングエリア508に格納する。
ステップS269にて、逆離散ウェーブレット変換で規定されている周波数での合成を行い、画像エリア506に格納して、次の周波数帯の処理に進むため、ステップS253に進む。ステップS253にて、所定の適用回数が終了していたらこの処理を終了して図20のステップS204に進む。
図20に戻って、ステップS204にて、フレーム内の全ブロックについて処理が終了した場合、ステップS210に進む。ステップS210にて、形状情報を参照しながら、対象となる画像データを切り出し、画像エリア506に格納する。ステップS211にて、ステップS210で画像エリア506に格納された画像データを出力する。ステップS211にて、出力された画像データは画像表示ソフトウェア602によってモニタ307上に表示される。
このような一連の選択動作により、ソフトウェアにて離散ウェーブレット変換部で形状を考慮した拡張を行って符号化された符号化データを復号することが可能になり、符号化データを劣化なく復号することが可能になった。
なお、本実施形態では形状情報の符号化をMPEG−4符号化方式とし、画像の符号化方式をJPEG2000符号化方式としたが、他の符号化方式、例えば形状情報はJBIGやMMRなどの符号化方式、画像データはMPEG−4のStill Texture Object符号化などの静止画像符号化方式などでももちろんかまわない。
本実施形態では蓄積装置から符号化データを読み出す例について説明したが、通信ソフトウェア504を起動し、符号エリア507内の符号化データを通信インターフェース308を介して通信回線309から受信してももちろんかまわない。
また、本実施形態の各部または全部の機能をハードウェアで構成してももちろんかまわない。
[第6の実施形態]
上記の実施形態においては、画像データのうち、動画像データの符号化・復号化処理について説明した。本発明の適用対象は動画像データに限定されるものではなく、静止画像についても同様にして適用可能である。そこで、本実施形態では、本発明に対応する静止画像符号化装置の実施形態について説明する。
図27は本発明をファクシミリ通信装置に適用した例である。10001は原稿を読み取るスキャナであり、カラー原稿、グレースケール原稿等を読み込み、光電変換とデジタル化によって入力画像を生成する。10002はフレームメモリであり、生成された入力画像を蓄積する。10003はディスプレイ部であり、フレームメモリ10002に蓄積された画像データを表示する。
10004はデジタイザ部であり、不図示のユーザがディスプレイ部10003に表示された画像を見ながら必要とする部分を指示する。10005は境界処理部であり、デジタイザ部10004で指示された領域の内部を符号化対象領域として決定し、その領域を形状情報メモリ10006に格納する。形状情報メモリ10006は領域内を1、領域外を0としてそれぞれの画素値を形状情報として格納する。
10007は本発明を適用した静止画符号化装置である。10008は通信インターフェースであり、通信回路10009に送信するためのパケット化などを行い、通信回路10009に送信する。通信回路10009はLAN、公衆回線などで構成される通信回路である。
スキャナ部10001で読み込まれた画像データはフレームメモリ10002に格納される。フレームメモリ10002に格納された画像データは、ディスプレイ部10003に表示され、不図示のユーザがデジタイザ部10004を用いて、必要とする部分の輪郭がなぞられる。また、境界処理部10005は対象領域を決定し、対象領域の内部の画素を1、そうでない画素を0とした2値画像情報を生成し、形状情報として形状情報メモリ10006に格納する。形状情報メモリ10006に格納された形状情報と、フレームメモリ10002に格納された画像データとが、静止画像符号化装置10007に入力される。静止画像符号化装置10007では、画像データの符号化が行われ、符号化データが通信インターフェース10008に入力される。ここでパケット化等が行われて、通信回線10009を介して宛先装置に送信される。
図28は本実施形態に対応する、図27の静止画像符号化装置10007の構成の一例を示すブロック図である。ここで静止画像符号化装置10007が使用する画像の符号化方式として、例えばJPEG2000符号化方式を採用することができるが、これに限定されない。また、形状情報の符号化方式として、例えばMMR符号化方式を採用することができるが、同様にこれに限定されない。
図28においては、図1に記載した動画像符号化装置と基本的な構成は同一である。しかし、図28においては、図1におけるブロック分割部7を備えていないので、縮小部8は、形状情報メモリ10006から入力される形状情報を、DWT部2の周波数帯に合わせて縮小を行う。また、エントロピー符号化部9では、MMR符号化方式により符号化を行う。
他の処理については、フレームについての処理として基本的に第1の実施形態において記載した動画像符号化装置における処理と同様であるので、ここでの記載は省略する。
[第7の実施形態]
第6の実施形態においては、本発明の実施形態のうち、静止画像データの符号化処理について説明した。本実施形態では、更に静止画データを復号する静止画像復号化装置の実施形態について説明する。
図29は本発明をファクシミリ通信装置に適用した例である。通信回路10010はLAN、公衆回線などで構成される通信回路である。10011は通信インターフェースであり、通信回路10010から受信されたパケットデータ等を解析し、符号化データを再構成する。10012は本実施形態に対応する静止画復号装置である。10013は復号された形状情報を格納する形状情報メモリである。10014は描画部であり、形状情報メモリ10013に格納された形状情報を参照して、静止画復号装置で復号された静止画像を描画する。10015は描画された画像データを格納するフレームメモリである。10016はフレームメモリ10015の内容を印字するプリンタ部である。
通信回線10010から受信されたパケット化されたデータは通信インターフェース10011に入力され、符号化データを再構成する。再構成された符号化データは静止画像復号装置100012に入力される。なお、図29の静止画像復号装置10012の構成の一例に対応するブロック図は図9に示したものと同様であり、静止画像復号装置10012における処理も図9に関連して記載した第2の実施形態における説明と同様であるので、ここでの説明は省略する。
なお、図9において、フレームメモリ402に格納された形状情報は、図29の形状情報メモリ10013に格納される。また、描画部10014は形状情報メモリ10013に格納された形状情報に従って、フレームメモリ408から画像データを読み出し、印刷フォーマットに描画する。描画された画像データはフレームメモリ10015に格納される。フレームメモリ10015に格納された画像データはプリンタ部10016で印字されて出力される。
[その他の実施形態]
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。