(57)【要約】【課題】２次予測に伴う予測効率の低下を抑制することができるようにする。【解決手段】隣接画素予測部８３は、対象隣接画素と参照隣接画素の差分を用いて、対象ブロックについてイントラ予測を行い、残差信号による予測画像を生成し、２次残差生成部８２に出力する。２次残差生成部８２は、１次残差と残差信号による予測画像との差分である２次残差をスイッチ８４に出力する。スイッチ８４は、動きベクトル精度判定部７７により動き予測・補償部７５からの動きベクトル情報が整数画素精度であると判定された場合のみ、２次残差生成部８２側の一方の端子を選択し、２次残差生成部８２からの２次残差を動き予測・補償部７５に出力する。本発明は、例えば、H．264/AVC方式で符号化する画像符号化装置に適用することができる。【選択図】図７
2010258739.tif 000002
【特許請求の範囲】
【請求項１】
対象フレームにおける対象ブロックの動きベクトル情報の精度が整数画素精度である場合、前記対象ブロックと参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックとの差分情報、および前記対象ブロックに隣接する対象隣接画素と前記参照ブロックに隣接する参照隣接画素との差分情報の間で２次予測処理を行い、２次差分情報を生成する２次予測手段と、
前記２次予測手段により生成された前記２次差分情報を符号化する符号化手段と
を備える画像処理装置。
【請求項２】
前記対象画像差分情報の符号化と、前記２次予測手段により生成された前記２次差分情報の符号化のどちらが符号化効率がよいかを判定する符号化効率判定手段を
さらに備え、
前記符号化効率判定手段により前記２次差分情報の符号化が符号化効率がよいと判定された場合のみ、前記符号化手段は、前記２次差分情報とともに、前記２次予測処理を行うことを示す２次予測フラグを符号化する
請求項１に記載の画像処理装置。
【請求項３】
前記２次予測処理におけるイントラ予測モードが垂直予測モードである場合、前記対象ブロックの動きベクトル情報の垂直方向の精度が小数画素精度であっても、前記２次予測手段は、前記２次予測処理を行う
請求項２に記載の画像処理装置。
【請求項４】
前記２次予測処理におけるイントラ予測モードが水平予測モードである場合、前記対象ブロックの動きベクトル情報の水平方向の精度が小数画素精度であっても、前記２次予測手段は、前記２次予測処理を行う
請求項２に記載の画像処理装置。
【請求項５】
前記２次予測処理におけるイントラ予測モードがDC予測モードである場合、前記対象ブロックの動きベクトル情報の垂直方向および水平方向の少なくとも一方の精度が小数画素精度であっても、前記２次予測手段は、前記２次予測処理を行う
請求項２に記載の画像処理装置。
【請求項６】
前記２次予測手段は、
前記対象隣接画素と前記参照隣接画素との差分情報を用いて予測を行い、前記対象ブロックに対するイントラ予測画像を生成する隣接画素予測手段と、
前記対象ブロックと前記参照ブロックとの差分情報、および前記隣接画素予測手段により生成された前記イントラ予測画像を差分して、前記２次差分情報を生成する２次差分生成手段と
を備える請求項１に記載の画像処理装置。
【請求項７】
画像処理装置が、
対象フレームにおける対象ブロックの動きベクトル情報の精度が整数画素精度である場合、前記対象ブロックと参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックとの差分情報、および前記対象ブロックに隣接する対象隣接画素と前記参照ブロックに隣接する参照隣接画素との差分情報の間で２次予測処理を行い、２次差分情報を生成し、
前記２次予測処理により生成された前記２次差分情報を符号化するステップ
を含む画像処理方法。
【請求項８】
対象フレームにおける対象ブロックの動きベクトル情報の精度が整数画素精度である場合、前記対象ブロックと参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックとの差分情報、および前記対象ブロックに隣接する対象隣接画素と前記参照ブロックに隣接する参照隣接画素との差分情報の間で２次予測処理を行い、２次差分情報を生成し、
前記２次予測処理により生成された前記２次差分情報を符号化するステップ
を含む処理をコンピュータに行わせるためのプログラム。
【請求項９】
符号化された対象フレームにおける対象ブロックの画像と、参照フレームにおいて前記対象ブロックについて検出された動きベクトル情報を復号する復号手段と、
前記復号手段により復号された前記動きベクトル情報が整数画素精度である場合、前記対象ブロックに隣接する対象隣接画素と、前記参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素との差分情報を用いて２次予測処理を行い、予測画像を生成する２次予測手段と、
前記対象ブロックの画像、前記２次予測手段により生成された前記予測画像、および前記動きベクトル情報から求められる前記参照ブロックの画像を加算して、前記対象ブロックの復号画像を生成する演算手段と
を備える画像処理装置。
【請求項１０】
前記２次予測手段は、前記復号手段により復号される前記２次予測処理を行うことを示す２次予測フラグを取得し、前記２次予測フラグに応じて、前記２次予測処理を行う
請求項９に記載の画像処理装置。
【請求項１１】
前記復号手段により復号される前記２次予測処理におけるイントラ予測モードが垂直予測モードである場合、前記対象ブロックの動きベクトル情報の垂直方向の精度が小数画素精度であっても、前記２次予測手段は、前記２次予測フラグに応じて、前記２次予測処理を行う
請求項１０に記載の画像処理装置。
【請求項１２】
前記復号手段により復号される前記２次予測処理におけるイントラ予測モードが水平予測モードである場合、前記対象ブロックの動きベクトル情報の水平方向の精度が小数画素精度であっても、前記２次予測手段は、前記２次予測フラグに応じて、前記２次予測処理を行う
請求項１０に記載の画像処理装置。
【請求項１３】
前記復号手段により復号される前記２次予測処理におけるイントラ予測モードがDC予測モードである場合、前記対象ブロックの動きベクトル情報の垂直方向および水平方向の少なくとも一方の精度が小数画素精度であっても、前記２次予測手段は、前記２次予測フラグに応じて、前記２次予測処理を行う
請求項１０に記載の画像処理装置。
【請求項１４】
画像処理装置が、
符号化された対象フレームにおける対象ブロックの画像と、参照フレームにおいて前記対象ブロックについて検出された動きベクトル情報を復号し、
復号された前記動きベクトル情報が整数画素精度である場合、前記対象ブロックに隣接する対象隣接画素と、前記参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素との差分情報を用いて２次予測処理を行い、予測画像を生成し、
前記対象ブロックの画像、生成された前記予測画像、および前記動きベクトル情報から求められる前記参照ブロックの画像を加算して、前記対象ブロックの復号画像を生成するステップ
を含む画像処理方法。
【請求項１５】
符号化された対象フレームにおける対象ブロックの画像と、参照フレームにおいて前記対象ブロックについて検出された動きベクトル情報を復号し、
復号された前記動きベクトル情報が整数画素精度である場合、前記対象ブロックに隣接する対象隣接画素と、前記参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素との差分情報を用いて２次予測処理を行い、予測画像を生成し、
前記対象ブロックの画像、生成された前記予測画像、および前記動きベクトル情報から求められる前記参照ブロックの画像を加算して、前記対象ブロックの復号画像を生成するステップ
を含む処理をコンピュータに行わせるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置および方法、並びにプログラムに関し、特に、２次予測に伴う予測効率の低下を抑制するようにした画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
近年、画像情報をデジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮する符号化方式を採用して画像を圧縮符号する装置が普及しつつある。この符号化方式には、例えば、MPEG（Moving Picture Experts Group）などがある。
【０００３】
特に、MPEG2(ISO/IEC 13818-2)は、汎用画像符号化方式として定義されており、飛び越し走査画像及び順次走査画像の双方、並びに標準解像度画像及び高精細画像を網羅する標準である。例えば、MPEG2は、プロフェッショナル用途及びコンシューマ用途の広範なアプリケーションに現在広く用いられている。MPEG2圧縮方式を用いることにより、例えば720×480画素を持つ標準解像度の飛び越し走査画像であれば4乃至8Mbpsの符号量（ビットレート）が割り当てられる。また、MPEG2圧縮方式を用いることにより、例えば1920×1088画素を持つ高解像度の飛び越し走査画像であれば18乃至22 Mbpsの符号量（ビットレート）が割り当てられる。これにより、高い圧縮率と良好な画質の実現が可能である。
【０００４】
MPEG2は主として放送用に適合する高画質符号化を対象としていたが、MPEG1より低い符号量（ビットレート）、つまりより高い圧縮率の符号化方式には対応していなかった。携帯端末の普及により、今後そのような符号化方式のニーズは高まると思われ、これに対応してMPEG4符号化方式の標準化が行われた。画像符号化方式に関しては、1998年12月にISO/IEC 14496-2としてその規格が国際標準に承認された。
【０００５】
さらに、近年、当初テレビ会議用の画像符号化を目的として、H．26L (ITU-T Q6/16 VCEG）という標準の規格化が進んでいる。H．26LはMPEG2やMPEG4といった従来の符号化方式に比べ、その符号化、復号化により多くの演算量が要求されるものの、より高い符号化効率が実現されることが知られている。また、現在、MPEG4の活動の一環として、このH．26Lをベースに、H．26Lではサポートされない機能をも取り入れ、より高い符号化効率を実現する標準化がJoint Model of Enhanced-Compression Video Codingとして行われている。標準化のスケジュールとしては、2003年3月にはH．264及びMPEG-4 Part10 （Advanced Video Coding、以下H．264/AVCと記す）という国際標準となっている。
【０００６】
さらに、その拡張として、RGBや4:2:2、4:4:4といった、業務用に必要な符号化ツールや、MPEG-2で規定されていた8x8DCTや量子化マトリクスをも含んだFRExt (Fidelity Range Extension) の標準化が2005年2月に完了している。これにより、H．264/AVCを用いて、映画に含まれるフィルムノイズをも良好に表現することが可能な符号化方式となって、Blu-Ray Disc（商標）等の幅広いアプリケーションに用いられる運びとなった。
【０００７】
しかしながら、昨今、ハイビジョン画像の4倍の、4000×2000画素程度の画像を圧縮したいといった、更なる高圧縮率符号化に対するニーズが高まっている。あるいは、インターネットのような、限られた伝送容量の環境において、ハイビジョン画像を配信したいといった、更なる高圧縮率符号化に対するニーズが高まっている。このため、先述の、ITU-T傘下のVCEG (=Video Coding Expert Group) において、符号化効率の改善に関する検討が継続され行なわれている。
【０００８】
例えば、MPEG2方式においては、線形内挿処理により１／２画素精度の動き予測・補償処理が行われている。一方、H．264/AVC方式においては、６タップのFIR (Finite Impulse Response Filter)フィルタを用いた１／４画素精度の予測・補償処理が行われている。
【０００９】
すなわち、H．264/AVC方式においては、１／２画素精度の補間処理は６タップのFIRにより行われ、１／４画素精度の補間処理は線形補間により行われる。
【００１０】
この１／４画素精度の予測・補償処理に対して、近年、H．264/AVC方式の効率をさらに向上させようという検討が行われている。このための符号化方式の１つとして、非特許文献１においては、１／８画素精度の動き予測が提案されている。
【００１１】
すなわち、非特許文献１において、１／２画素精度の補間処理はフィルタ[-3,12,-39,158,158,-39,12,-3]/256により行われる。また、１／４画素精度の補間処理はフィルタ[-3,12,-37,229,71,-21,6,-1]/256により行われ、１／８画素精度の補間処理は線形補間により行われる。
【００１２】
このように、より高い画素精度の補間処理を用いた動き予測を行うことにより、特に、解像度が高いテクスチャを持ち、比較的ゆっくりした動きのシーケンスにおいては、予測精度を向上させ、符号化効率の向上を実現することができる。
【００１３】
ところで、また、非特許文献２においては、インター予測において、更なる符号化効率を向上させる２次予測方式が提案されている。次に、この２次予測方式について図１を参照して説明する。
【００１４】
図１の例においては、対象フレームと参照フレームが示されており、対象フレームには、対象ブロックＡが示されている。
【００１５】
参照フレームと対象フレームにおいて対象ブロックＡに対して動きベクトルmv(mv_x,mv_y)が求められた場合に、対象ブロックＡと、対象ブロックＡに動きベクトルmvで対応付けられるブロックの差分情報（残差）が算出される。
【００１６】
２次予測方式においては、対象ブロックＡに関する差分情報だけでなく、対象ブロックＡに隣接する隣接画素群Ｒと、隣接画素群Ｒに動きベクトルmvで対応付けられる隣接画素群Ｒ１との差分情報も算出される。
【００１７】
すなわち、対象ブロックＡの左上の座標(x,y)から、隣接画素群Ｒの各座標が求められる。また、対象ブロックＡに動きベクトルmvで対応付けられるブロックの左上の座標(x+mv_x,y+mv_y)から、隣接画素群Ｒ１の各座標が求められる。これらの座標値により、隣接画素群の差分情報が算出される。
【００１８】
２次予測方式においては、このように算出された対象ブロックに関する差分情報と、隣接画素に関する差分情報との間で、H．264/AVC方式におけるイントラ予測が行われ、これにより、２次差分情報が生成される。生成された２次差分情報が直交変換、量子化され、圧縮画像とともに符号化されて、復号側に送られる。
【先行技術文献】
【非特許文献】
【００１９】
【非特許文献１】”Motion compensated prediction with 1/8-pel displacement vector resolution”,VCEG-AD09,ITU-Telecommunications Standardization Sector STUDY GROUP Question 6 Video coding Experts Group(VCEG), 23-27 Oct 2006
【００２０】
【非特許文献２】”Second Order Prediction (SOP) in P Slice”, Sijia Chen , JinpengWang , Shangwen Li and, Lu Yu ,VCEG-AD09,ITU-Telecommunications Standardization Sector STUDY GROUP Question 6 Video coding Experts Group(VCEG), 16-18 July 2008
【発明の概要】
【発明が解決しようとする課題】
【００２１】
しかしながら、図１を参照して上述した２次予測方法を適用する場合に、動きベクトル情報が小数画素精度を持つと、隣接画素群の画素値に対しても線形補間が施されてしまう。このため、２次予測に関する精度が低下してしまう。
【００２２】
本発明は、このような状況に鑑みてなされたものであり、２次予測に伴う予測効率の低下を抑制するものである。
【課題を解決するための手段】
【００２３】
本発明の第１の側面の画像処理装置は、対象フレームにおける対象ブロックの動きベクトル情報の精度が整数画素精度である場合、前記対象ブロックと参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックとの差分情報、および前記対象ブロックに隣接する対象隣接画素と前記参照ブロックに隣接する参照隣接画素との差分情報の間で２次予測処理を行い、２次差分情報を生成する２次予測手段と、前記２次予測手段により生成された前記２次差分情報を符号化する符号化手段とを備える。
【００２４】
前記対象画像差分情報の符号化と、前記２次予測手段により生成された前記２次差分情報の符号化のどちらが符号化効率がよいかを判定する符号化効率判定手段をさらに備え、前記符号化効率判定手段により前記２次差分情報の符号化が符号化効率がよいと判定された場合のみ、前記符号化手段は、前記２次差分情報とともに、前記２次予測処理を行うことを示す２次予測フラグを符号化する
ことができる。
【００２５】
前記２次予測処理におけるイントラ予測モードが垂直予測モードである場合、前記対象ブロックの動きベクトル情報の垂直方向の精度が小数画素精度であっても、前記２次予測手段は、前記２次予測処理を行うことができる。
【００２６】
前記２次予測処理におけるイントラ予測モードが水平予測モードである場合、前記対象ブロックの動きベクトル情報の水平方向の精度が小数画素精度であっても、前記２次予測手段は、前記２次予測処理を行うことができる。
【００２７】
前記２次予測処理におけるイントラ予測モードがDC予測モードである場合、前記対象ブロックの動きベクトル情報の垂直方向および水平方向の少なくとも一方の精度が小数画素精度であっても、前記２次予測手段は、前記２次予測処理を行うことができる。
【００２８】
前記２次予測手段は、前記対象隣接画素と前記参照隣接画素との差分情報を用いて予測を行い、前記対象ブロックに対するイントラ予測画像を生成する隣接画素予測手段と、前記対象ブロックと前記参照ブロックとの差分情報、および前記隣接画素予測手段により生成された前記イントラ予測画像を差分して、前記２次差分情報を生成する２次差分生成手段とを備えることができる。
【００２９】
本発明の第１の側面の画像処理方法は、画像処理装置が、対象フレームにおける対象ブロックの動きベクトル情報の精度が整数画素精度である場合、前記対象ブロックと参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックとの差分情報、および前記対象ブロックに隣接する対象隣接画素と前記参照ブロックに隣接する参照隣接画素との差分情報の間で２次予測処理を行い、２次差分情報を生成し、前記２次予測処理により生成された前記２次差分情報を符号化するステップを含む。
【００３０】
本発明の第１の側面のプログラムは、対象フレームにおける対象ブロックの動きベクトル情報の精度が整数画素精度である場合、前記対象ブロックと参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックとの差分情報、および前記対象ブロックに隣接する対象隣接画素と前記参照ブロックに隣接する参照隣接画素との差分情報の間で２次予測処理を行い、２次差分情報を生成し、前記２次予測処理により生成された前記２次差分情報を符号化するステップを含む処理をコンピュータに行わせる。
【００３１】
本発明の第２の側面の画像処理装置は、符号化された対象フレームにおける対象ブロックの画像と、参照フレームにおいて前記対象ブロックについて検出された動きベクトル情報を復号する復号手段と、前記復号手段により復号された前記動きベクトル情報が整数画素精度である場合、前記対象ブロックに隣接する対象隣接画素と、前記参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素との差分情報を用いて２次予測処理を行い、予測画像を生成する２次予測手段と、前記対象ブロックの画像、前記２次予測手段により生成された前記予測画像、および前記動きベクトル情報から求められる前記参照ブロックの画像を加算して、前記対象ブロックの復号画像を生成する演算手段とを備える。
【００３２】
前記２次予測手段は、前記復号手段により復号される前記２次予測処理を行うことを示す２次予測フラグを取得し、前記２次予測フラグに応じて、前記２次予測処理を行うことができる。
【００３３】
前記復号手段により復号される前記２次予測処理におけるイントラ予測モードが垂直予測モードである場合、前記対象ブロックの動きベクトル情報の垂直方向の精度が小数画素精度であっても、前記２次予測手段は、前記２次予測フラグに応じて、前記２次予測処理を行うことができる。
【００３４】
前記復号手段により復号される前記２次予測処理におけるイントラ予測モードが水平予測モードである場合、前記対象ブロックの動きベクトル情報の水平方向の精度が小数画素精度であっても、前記２次予測手段は、前記２次予測フラグに応じて、前記２次予測処理を行うことができる。
【００３５】
前記復号手段により復号される前記２次予測処理におけるイントラ予測モードがDC予測モードである場合、前記対象ブロックの動きベクトル情報の垂直方向および水平方向の少なくとも一方の精度が小数画素精度であっても、前記２次予測手段は、前記２次予測フラグに応じて、前記２次予測処理を行うことができる。
【００３６】
本発明の第２の側面の画像処理方法は、画像処理装置が、符号化された対象フレームにおける対象ブロックの画像と、参照フレームにおいて前記対象ブロックについて検出された動きベクトル情報を復号し、復号された前記動きベクトル情報が整数画素精度である場合、前記対象ブロックに隣接する対象隣接画素と、前記参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素との差分情報を用いて２次予測処理を行い、予測画像を生成し、前記対象ブロックの画像、生成された前記予測画像、および前記動きベクトル情報から求められる前記参照ブロックの画像を加算して、前記対象ブロックの復号画像を生成するステップを含む。
【００３７】
本発明の第２の側面のプログラムは、符号化された対象フレームにおける対象ブロックの画像と、参照フレームにおいて前記対象ブロックについて検出された動きベクトル情報を復号し、復号された前記動きベクトル情報が整数画素精度である場合、前記対象ブロックに隣接する対象隣接画素と、前記参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素との差分情報を用いて２次予測処理を行い、予測画像を生成し、前記対象ブロックの画像、生成された前記予測画像、および前記動きベクトル情報から求められる前記参照ブロックの画像を加算して、前記対象ブロックの復号画像を生成するステップを含む処理をコンピュータに行わせる。
【００３８】
本発明の第１の側面においては、対象フレームにおける対象ブロックの動きベクトル情報の精度が整数画素精度である場合、前記対象ブロックと参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックとの差分情報、および前記対象ブロックに隣接する対象隣接画素と前記参照ブロックに隣接する参照隣接画素との差分情報の間で２次予測処理が行われ、２次差分情報が生成される。そして、前記２次予測処理により生成された前記２次差分情報が符号化される。
【００３９】
本発明の第２の側面においては、符号化された対象フレームにおける対象ブロックの画像と、参照フレームにおいて前記対象ブロックについて検出された動きベクトル情報が復号され、復号された前記動きベクトル情報が整数画素精度である場合、前記対象ブロックに隣接する対象隣接画素と、前記参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素との差分情報が用いられて２次予測処理が行われ、予測画像が生成される。そして、前記対象ブロックの画像、生成された前記予測画像、および前記動きベクトル情報から求められる前記参照ブロックの画像が加算されて、前記対象ブロックの復号画像が生成される。
【００４０】
なお、上述の画像処理装置のそれぞれは、独立した装置であっても良いし、１つの画像符号化装置または画像復号装置を構成している内部ブロックであってもよい。
【発明の効果】
【００４１】
本発明の第１の側面によれば、画像を符号化することができる。また、本発明の第１の側面によれば、２次予測に伴う予測効率の低下を抑制することができる。
【００４２】
本発明の第２の側面によれば、画像を復号することができる。また、本発明の第２の側面によれば、２次予測に伴う予測効率の低下を抑制することができる。
【図面の簡単な説明】
【００４３】
【図１】インター予測における２次予測方式を説明する図である。
【図２】本発明を適用した画像符号化装置の一実施の形態の構成を示すブロック図である。
【図３】可変ブロックサイズ動き予測・補償処理を説明する図である。
【図４】１／４画素精度の動き予測・補償処理を説明する図である。
【図５】マルチ参照フレームの動き予測・補償方式について説明する図である。
【図６】動きベクトル情報の生成方法の例を説明する図である。
【図７】図２の２次予測部の構成例を示すブロック図である。
【図８】２次予測の場合における小数画素精度の動きベクトルによる予測効率の低下を説明する図である。
【図９】２次予測の場合における小数画素精度の動きベクトルによる予測効率の低下を説明する図である。
【図１０】図２の画像符号化装置の符号化処理を説明するフローチャートである。
【図１１】図１０のステップＳ２１の予測処理を説明するフローチャートである。
【図１２】１６×１６画素のイントラ予測モードの場合の処理順序を説明する図である。
【図１３】輝度信号の４×４画素のイントラ予測モードの種類を示す図である。
【図１４】輝度信号の４×４画素のイントラ予測モードの種類を示す図である。
【図１５】４×４画素のイントラ予測の方向を説明する図である。
【図１６】４×４画素のイントラ予測を説明する図である。
【図１７】輝度信号の４×４画素のイントラ予測モードの符号化を説明する図である。
【図１８】輝度信号の８×８画素のイントラ予測モードの種類を示す図である。
【図１９】輝度信号の８×８画素のイントラ予測モードの種類を示す図である。
【図２０】輝度信号の１６×１６画素のイントラ予測モードの種類を示す図である。
【図２１】輝度信号の１６×１６画素のイントラ予測モードの種類を示す図である。
【図２２】１６×１６画素のイントラ予測を説明する図である。
【図２３】色差信号のイントラ予測モードの種類を示す図である。
【図２４】図１１のステップＳ３１のイントラ予測処理を説明するフローチャートである。
【図２５】図１１のステップＳ３２のインター動き予測処理を説明するフローチャートである。
【図２６】図２５のステップＳ５２の動き予測・補償処理を説明するフローチャートである。
【図２７】本発明を適用した画像復号装置の一実施の形態の構成を示すブロック図である。
【図２８】図２７の２次予測部の構成例を示すブロック図である。
【図２９】図２７の画像復号装置の復号処理を説明するフローチャートである。
【図３０】図２９のステップＳ１３８の予測処理を説明するフローチャートである。
【図３１】図３０のステップＳ１８０の２次インター予測処理を説明するフローチャートである。
【図３２】コンピュータのハードウエアの構成例を示すブロック図である。
【発明を実施するための形態】
【００４４】
以下、図を参照して本発明の実施の形態について説明する。
【００４５】
［画像符号化装置の構成例］
図２は、本発明を適用した画像処理装置としての画像符号化装置の一実施の形態の構成を表している。
【００４６】
この画像符号化装置５１は、例えば、H．264及びMPEG-4 Part10（Advanced Video Coding）（以下H．264/AVCと記す）方式で画像を圧縮符号化する。
【００４７】
図２の例において、画像符号化装置５１は、Ａ／Ｄ変換部６１、画面並べ替えバッファ６２、演算部６３、直交変換部６４、量子化部６５、可逆符号化部６６、蓄積バッファ６７、逆量子化部６８、逆直交変換部６９、演算部７０、デブロックフィルタ７１、フレームメモリ７２、スイッチ７３、イントラ予測部７４、動き予測・補償部７５、２次予測部７６、動きベクトル精度判定部７７、予測画像選択部７８、およびレート制御部７９により構成されている。
【００４８】
Ａ／Ｄ変換部６１は、入力された画像をＡ／Ｄ変換し、画面並べ替えバッファ６２に出力し、記憶させる。画面並べ替えバッファ６２は、記憶した表示の順番のフレームの画像を、ＧＯＰ（Group of Picture）に応じて、符号化のためのフレームの順番に並べ替える。
【００４９】
演算部６３は、画面並べ替えバッファ６２から読み出された画像から、予測画像選択部７８により選択されたイントラ予測部７４からの予測画像または動き予測・補償部７５からの予測画像を減算し、その差分情報を直交変換部６４に出力する。直交変換部６４は、演算部６３からの差分情報に対して、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、その変換係数を出力する。量子化部６５は直交変換部６４が出力する変換係数を量子化する。
【００５０】
量子化部６５の出力となる、量子化された変換係数は、可逆符号化部６６に入力され、ここで可変長符号化、算術符号化等の可逆符号化が施され、圧縮される。
【００５１】
可逆符号化部６６は、イントラ予測を示す情報をイントラ予測部７４から取得し、インター予測モードを示す情報などを動き予測・補償部７５から取得する。なお、イントラ予測を示す情報およびインター予測を示す情報は、以下、それぞれ、イントラ予測モード情報およびインター予測モード情報とも称する。
【００５２】
可逆符号化部６６は、量子化された変換係数を符号化するとともに、イントラ予測を示す情報、インター予測モードを示す情報などを符号化し、圧縮画像におけるヘッダ情報の一部とする。可逆符号化部６６は、符号化したデータを蓄積バッファ６７に供給して蓄積させる。
【００５３】
例えば、可逆符号化部６６においては、可変長符号化または算術符号化等の可逆符号化処理が行われる。可変長符号化としては、H．264/AVC方式で定められているCAVLC（Context-Adaptive Variable Length Coding）などがあげられる。算術符号化としては、CABAC（Context-Adaptive Binary Arithmetic Coding）などがあげられる。
【００５４】
蓄積バッファ６７は、可逆符号化部６６から供給されたデータを、H．264/AVC方式で符号化された圧縮画像として、例えば、後段の図示せぬ記録装置や伝送路などに出力する。
【００５５】
また、量子化部６５より出力された、量子化された変換係数は、逆量子化部６８にも入力され、逆量子化された後、さらに逆直交変換部６９において逆直交変換される。逆直交変換された出力は演算部７０により予測画像選択部７８から供給される予測画像と加算されて、局部的に復号された画像となる。デブロックフィルタ７１は、復号された画像のブロック歪を除去した後、フレームメモリ７２に供給し、蓄積させる。フレームメモリ７２には、デブロックフィルタ７１によりデブロックフィルタ処理される前の画像も供給され、蓄積される。
【００５６】
スイッチ７３はフレームメモリ７２に蓄積された参照画像を動き予測・補償部７５またはイントラ予測部７４に出力する。
【００５７】
この画像符号化装置５１においては、例えば、画面並べ替えバッファ６２からのＩピクチャ、Ｂピクチャ、およびＰピクチャが、イントラ予測（イントラ処理とも称する）する画像として、イントラ予測部７４に供給される。また、画面並べ替えバッファ６２から読み出されたＢピクチャおよびＰピクチャが、インター予測（インター処理とも称する）する画像として、動き予測・補償部７５に供給される。
【００５８】
イントラ予測部７４は、画面並べ替えバッファ６２から読み出されたイントラ予測する画像とフレームメモリ７２から供給された参照画像に基づいて、候補となる全てのイントラ予測モードのイントラ予測処理を行い、予測画像を生成する。
【００５９】
その際、イントラ予測部７４は、候補となる全てのイントラ予測モードに対してコスト関数値を算出し、算出したコスト関数値が最小値を与えるイントラ予測モードを、最適イントラ予測モードとして選択する。
【００６０】
イントラ予測部７４は、最適イントラ予測モードで生成された予測画像とそのコスト関数値を、予測画像選択部７８に供給する。イントラ予測部７４は、予測画像選択部７８により最適イントラ予測モードで生成された予測画像が選択された場合、最適イントラ予測モードを示す情報を、可逆符号化部６６に供給する。可逆符号化部６６は、この情報を符号化し、圧縮画像におけるヘッダ情報の一部とする。
【００６１】
動き予測・補償部７５は、候補となる全てのインター予測モードの動き予測・補償処理を行う。すなわち、動き予測・補償部７５には、画面並べ替えバッファ６２から読み出されたインター処理する画像と、スイッチ７３を介してフレームメモリ７２から参照画像が供給される。動き予測・補償部７５は、インター処理する画像と参照画像に基づいて、候補となる全てのインター予測モードの動きベクトルを検出し、動きベクトルに基づいて参照画像に補償処理を施し、予測画像を生成する。
【００６２】
動き予測・補償部７５は、検出された動きベクトル情報、インター処理する画像の情報（アドレスなど）、およびインター処理する画像と生成された予測画像の差分である１次残差を、２次予測部７６に供給する。また、動き予測・補償部７５は、検出された動きベクトル情報を、動きベクトル精度判定部７７にも供給する。
【００６３】
２次予測部７６は、動き予測・補償部７５からの動きベクトル情報とインター処理する画像の情報に基づいて、インター処理する対象の対象ブロックに隣接する対象隣接画素をフレームメモリ７２から読み出す。また、２次予測部７６は、動きベクトル情報により対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素をフレームメモリ７２から読み出す。
【００６４】
２次予測部７６は、参照隣接判定部７７による判定結果に応じて、２次予測処理を行う。ここで、２次予測処理とは、１次残差、および対象隣接画素と参照隣接画素の差分の間で予測を行い、２次差分情報（２次残差）を生成する処理である。２次予測部７６は、２次予測処理により生成した２次残差を、動き予測・補償部７５に出力する。また、２次予測部７６は、参照隣接判定部７７による判定結果と、２次予測のイントラ予測モードの種類が特定の組み合わせの場合にも、２次予測処理を行い、２次残差を生成して、動き予測・補償部７５に出力する。
【００６５】
動きベクトル精度判定部７７は、動き予測・補償部７５からの動きベクトル情報の精度が、整数画素精度であるか、または小数画素精度であるかを判定し、その判定結果を、２次予測部７６に供給する。
【００６６】
動き予測・補償部７５は、２次予測部７６からの２次残差を比較することで、２次予測における最適なイントラ予測モードを決定する。また、動き予測・補償部７５は、２次残差と１次残差を比較することで、２次予測処理を行うか否か（すなわち、２次残差を符号化するか、または１次残差を符号化するか）を決定する。なお、これらの処理は、候補となる全てのインター予測モードに対して行われる。
【００６７】
そして、動き予測・補償部７５は、候補となる全てのインター予測モードに対してコスト関数値を算出する。このとき、１次残差および２次残差のうち、インター予測モード毎に決定された残差が用いられて、コスト関数値が算出される。動き予測・補償部７５は、算出したコスト関数値のうち、最小値を与える予測モードを、最適インター予測モードとして決定する。
【００６８】
動き予測・補償部７５は、最適インター予測モードで生成された予測画像（またはインターする画像と２次残差の差分）、およびそのコスト関数値を、予測画像選択部７８に供給する。動き予測・補償部７５は、予測画像選択部７８により最適インター予測モードで生成された予測画像が選択された場合、最適インター予測モードを示す情報を可逆符号化部６６に出力する。
【００６９】
このとき、動きベクトル情報、参照フレーム情報、２次予測を行うことを示す２次予測フラグ、および２次予測におけるイントラ予測モードの情報なども可逆符号化部６６に出力される。可逆符号化部６６は、動き予測・補償部７５からの情報をやはり可変長符号化、算術符号化といった可逆符号化処理し、圧縮画像のヘッダ部に挿入する。
【００７０】
予測画像選択部７８は、イントラ予測部７４または動き予測・補償部７５より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードから、最適予測モードを決定する。そして、予測画像選択部７８は、決定された最適予測モードの予測画像を選択し、演算部６３，７０に供給する。このとき、予測画像選択部７８は、予測画像の選択情報を、イントラ予測部７４または動き予測・補償部７５に供給する。
【００７１】
レート制御部７９は、蓄積バッファ６７に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部６５の量子化動作のレートを制御する。
【００７２】
［H．264/AVC方式の説明］
図３は、H．264/AVC方式における動き予測・補償のブロックサイズの例を示す図である。H．264/AVC方式においては、ブロックサイズを可変にして、動き予測・補償が行われる。
【００７３】
図３の上段には、左から、１６×１６画素、１６×８画素、８×１６画素、および８×８画素のパーティションに分割された１６×１６画素で構成されるマクロブロックが順に示されている。また、図３の下段には、左から、８×８画素、８×４画素、４×８画素、および４×４画素のサブパーティションに分割された８×８画素のパーティションが順に示されている。
【００７４】
すなわち、H．264/AVC方式においては、１つのマクロブロックを、１６×１６画素、１６×８画素、８×１６画素、あるいは８×８画素のいずれかのパーティションに分割して、それぞれ独立した動きベクトル情報を持つことが可能である。また、８×８画素のパーティションに関しては、８×８画素、８×４画素、４×８画素、あるいは４×４画素のいずれかのサブパーティションに分割し、それぞれ独立した動きベクトル情報を持つことが可能である。
【００７５】
図４は、H．264/AVC方式における１／４画素精度の予測・補償処理を説明する図である。H．264/AVC方式においては、６タップのFIR (Finite Impulse Response Filter)フィルタを用いた１／４画素精度の予測・補償処理が行われている。
【００７６】
図４の例において、位置Ａは、整数精度画素の位置、位置ｂ，ｃ，ｄは、１／２画素精度の位置、位置ｅ１，ｅ２，ｅ３は、１／４画素精度の位置を示している。まず、以下においては、Clip()を次の式（１）のように定義する。
【００７７】
【数１】
2010258739.tif 000003
なお、入力画像が８ビット精度である場合、max_pixの値は255となる。
【００７８】
位置ｂおよびｄにおける画素値は、６タップのFIRフィルタを用いて、次の式（２）のように生成される。
【数２】
2010258739.tif 000004
【００７９】
位置ｃにおける画素値は、水平方向および垂直方向に６タップのFIRフィルタを適用し、次の式（３）のように生成される。
【数３】
2010258739.tif 000005
なお、Clip処理は、水平方向および垂直方向の積和処理の両方を行った後、最後に１度のみ実行される。
【００８０】
位置ｅ１乃至ｅ３は、次の式（４）のように線形内挿により生成される。
【数４】
2010258739.tif 000006
【００８１】
図５は、H．264/AVC方式におけるマルチ参照フレームの予測・補償処理を説明する図である。H．264/AVC方式においては、マルチ参照フレーム(Multi-Reference Frame) の動き予測・補償方式が定められている。
【００８２】
図５の例においては、いまから符号化される対象フレームＦnと、符号化済みのフレームＦn-5,…,Ｆn-1が示されている。フレームＦn-1は、時間軸上、対象フレームＦnの１つ前のフレームであり、フレームＦn-2は、対象フレームＦnの２つ前のフレームであり、フレームＦn-3は、対象フレームＦnの３つ前のフレームである。また、フレームＦn-4は、対象フレームＦnの４つ前のフレームであり、フレームＦn-5は、対象フレームＦnの５つ前のフレームである。一般的には、対象フレームＦnに対して時間軸上に近いフレームほど、小さい参照ピクチャ番号（ref_id）が付加される。すなわち、フレームＦn-1が一番参照ピクチャ番号が小さく、以降、Fn-2,…, Ｆn-5の順に参照ピクチャ番号が小さい。
【００８３】
対象フレームＦnには、ブロックＡ1とブロックＡ2が示されており、ブロックＡ1は、２つ前のフレームＦn-2のブロックＡ1’と相関があるとされて、動きベクトルＶ1が探索されている。また、ブロックＡ2は、４つ前のフレームＦn-4のブロックＡ1’と相関があるとされて、動きベクトルＶ2が探索されている。
【００８４】
以上のように、H．264/AVC方式においては、複数の参照フレームをメモリに格納しておき、１枚のフレーム（ピクチャ）において、異なる参照フレームを参照することが可能である。すなわち、例えば、ブロックＡ1がフレームＦn-2を参照し、ブロックＡ2がフレームＦn-4を参照しているというように、１枚のピクチャにおいて、ブロック毎にそれぞれ独立した参照フレーム情報（参照ピクチャ番号（ref_id））を持つことができる。
【００８５】
ここで、ブロックとは、図３を参照して上述した１６×１６画素、１６×８画素、８×１６画素、および８×８画素のパーティションのいずれかを示す。８×８サブブロック内における参照フレームは同一でなければならない。
【００８６】
H．264/AVC方式においては、図３乃至図５を参照して上述した動き予測・補償処理が行われることにより、膨大な動きベクトル情報が生成され、これをこのまま符号化することは、符号化効率の低下を招いてしまう。これに対して、H．264/AVC方式においては、図６に示す方法により、動きベクトルの符号化情報の低減が実現されている。
【００８７】
図６は、H．264/AVC方式による動きベクトル情報の生成方法について説明する図である。
【００８８】
図６の例において、これから符号化される対象ブロックＥ（例えば、１６×１６画素）と、既に符号化済みであり、対象ブロックＥに隣接するブロックＡ乃至Ｄが示されている。
【００８９】
すなわち、ブロックＤは、対象ブロックＥの左上に隣接しており、ブロックＢは、対象ブロックＥの上に隣接しており、ブロックＣは、対象ブロックＥの右上に隣接しており、ブロックＡは、対象ブロックＥの左に隣接している。なお、ブロックＡ乃至Ｄが区切られていないのは、それぞれ、図３で上述した１６×１６画素乃至４×４画素のうちのいずれかの構成のブロックであることを表している。
【００９０】
例えば、Ｘ（＝Ａ，Ｂ，Ｃ，Ｄ，Ｅ）に対する動きベクトル情報を、mvXで表す。まず、対象ブロックＥに対する予測動きベクトル情報pmvEは、ブロックＡ，Ｂ，Ｃに関する動きベクトル情報を用いて、メディアン予測により次の式（５）のように生成される。
【００９１】
pmvE = med(mvA,mvB,mvC)                                          ・・・（５）
ブロックＣに関する動きベクトル情報が、画枠の端であったり、あるいは、まだ符号化されていないなどの理由により、利用可能でない（unavailableである）場合がある。この場合には、ブロックＣに関する動きベクトル情報は、ブロックＤに関する動きベクトル情報で代用される。
【００９２】
対象ブロックＥに対する動きベクトル情報として、圧縮画像のヘッダ部に付加されるデータmvdEは、pmvEを用いて、次の式（６）のように生成される。
mvdE = mvE - pmvE                                                ・・・（６）
【００９３】
なお、実際には、動きベクトル情報の水平方向、垂直方向のそれぞれの成分に対して、独立に処理が行われる。
【００９４】
このように、予測動きベクトル情報を生成し、隣接するブロックとの相関で生成された予測動きベクトル情報と動きベクトル情報との差分であるデータmvdを、圧縮画像のヘッダ部に付加することにより、動きベクトル情報を低減することができる。
【００９５】
［２次予測部の構成例］
図７は、２次予測部の詳細な構成例を示すブロック図である。
【００９６】
図７の例においては、２次予測部７６は、１次残差バッファ８１、２次残差生成部８２、隣接画素予測部８３、およびスイッチ８４により構成される。
【００９７】
１次残差バッファ８１は、動き予測・補償部７５からのインター処理する画像と生成された予測画像の差分である１次残差を蓄積する。
【００９８】
２次残差生成部８２は、隣接画素予測部８３から、差分によるイントラ予測画像（すなわち、残差信号の予測画像）が入力されると、それに対応する１次残差を、１次残差バッファ８１から読み出す。２次残差生成部８２は、１次残差と残差信号の予測画像との差分である２次残差を生成し、生成した２次残差を、スイッチ８４に出力する。
【００９９】
隣接画素予測部８３には、動き予測・補償部７５から、検出された動きベクトル情報、インター処理する画像の情報（アドレス）が入力される。隣接画素予測部８３は、動き予測・補償部７５からの動きベクトル情報と、符号化対象の対象ブロックの情報（アドレス）に基づいて、対象ブロックに隣接する対象隣接画素をフレームメモリ７２から読み出す。また、隣接画素予測部８３は、対象ブロックに動きベクトル情報で対応付けられる参照ブロックに隣接する参照隣接画素をフレームメモリ７２から読み出す。隣接画素予測部８３は、対象隣接画素と参照隣接画素の差分を用いて、対象ブロックについてイントラ予測を行い、差分によるイントラ画像を生成する。生成された差分によるイントラ画像（残差信号の予測画像）は、２次残差生成部８２に出力される。
【０１００】
スイッチ８４は、動きベクトル精度判定部７７により動き予測・補償部７５からの動きベクトル情報が整数画素精度であると判定された場合、２次残差生成部８２側の一方の端子を選択し、２次残差生成部８２からの２次残差を動き予測・補償部７５に出力する。
【０１０１】
一方、スイッチ８４は、動きベクトル精度判定部７７により動き予測・補償部７５からの動きベクトル情報が小数画素精度であると判定された場合、２次残差生成部８２側ではない他方の端子を選択し、何も出力しない。
【０１０２】
このように、図７の２次予測部７６においては、動きベクトル情報が小数画素精度であると判定された場合、予測効率が低下するとして、２次残差が選択されない、すなわち、２次予測が行われない。
【０１０３】
なお、図７の例の隣接画素予測部８３におけるイントラ予測を行う回路は、イントラ予測部７４との回路を共用することが可能である。
【０１０４】
［小数画素精度の動きベクトルによる予測効率の低下の説明］
次に、図８および図９を参照して、２次予測の場合における小数画素精度の動きベクトルによる予測効率の低下について説明する。
【０１０５】
図８および図９の例においては、垂直予測（Vertical Prediction）の例として、４×４画素で構成される対象ブロックＥと、対象ブロックＥの上部に隣接する隣接画素Ａ,Ｂ,Ｃ,Ｄが示されている。
【０１０６】
対象ブロックＥに対して、イントラ予測モードのうち、垂直予測モードが選択されるのは、隣接画素Ａ,Ｂ,Ｃ,Ｄが高域成分を有し、対象ブロックＥにおいても、矢印Ｈに示される水平方向に高域成分が含まれている場合である。すなわち、この高周波成分を保存するために、垂直予測モードが選択される。その結果、垂直予測モードのイントラ予測により、水平方向の高周波成分が保存されるので、より高い予測効率が実現される。
【０１０７】
しかしながら、動きベクトル情報が小数画素精度を持つ場合、隣接画素群の画素値に対しても線形補間が施されてしまう。すなわち、非特許文献２に記載の２次予測が行われた場合、図１に示された参照フレームにおいては、参照ブロックのみならず、その隣接画素群に対しても１／４画素精度の内挿処理が施され、矢印Ｈに示される水平方向の高域成分が失われてしまう。このため、隣接ブロックには、水平方向に高域成分が含まれないが、対象ブロックＥには高域成分が含まれるというミスマッチが生じてしまい、その結果、予測効率の低下を招いてしまう。
【０１０８】
そこで、２次予測部７６においては、動きベクトル情報が整数画素精度であると判定された場合のみ、２次予測が行われる（すなわち、２次残差が選ばれる）。これにより、２次予測に伴う予測効率の低下を引き起こすことが抑制される。
【０１０９】
また、非特許文献２に記載の方法の場合、動き予測ブロック毎に２次予測を行う、行わないに関するフラグを圧縮画像とともに復号側に送る必要がある。これに対して、図２の画像符号化装置５１によれば、動きベクトル情報が小数画素精度である場合には、そのフラグを復号側に送る必要がない。したがって、より高い符号化効率を達成することができる。
【０１１０】
なお、上記説明においては、動きベクトル情報の精度に応じて、２次予測を行う例を説明したが、以下に説明するように、動きベクトル情報の精度とイントラ予測モードの種類の組み合わせに応じて２次予測を行うようにすることもできる。なお、４×４画素のイントラ予測モードについての詳細は、図１３および図１４で後述される。
【０１１１】
図９に示されるように、水平方向の動きベクトル情報が小数画素精度を持つ場合、矢印Ｈに示される水平方向の内挿処理により、画素の水平方向の高域成分が失われる。一方、垂直方向の動きベクトル情報が小数画素精度を持つ場合、矢印Ｖに示される垂直方向の内挿処理では、画素の水平方向の高域成分が失われない。
【０１１２】
したがって、垂直予測モード（モード０：Vertical Prediction mode）に関しては、矢印Ｈに示される水平方向には高域成分が必要であるので、水平方向に整数画素精度の動きベクトル情報を持っている必要がある。これに対して、矢印Ｖに示される垂直方向に小数画素精度の動きベクトル情報を持っていたとしても、水平方向の高域成分は失われない。すなわち、垂直予測モードに関しては、水平方向に整数画素精度の動きベクトル情報を持っていれば、垂直方向の動きベクトルが小数精度であったとしても、２次予測を行うことができる。
【０１１３】
また、水平予測モード（モード１：horizontal Prediction mode）に関しては、矢印Ｖに示される垂直方向には高域成分が必要であるので、垂直方向に整数画素精度の動きベクトル情報を持っている必要がある。これに対して、矢印Ｈに示される水平方向に小数画素精度の動きベクトル情報を持っていたとしても、垂直方向の高域成分は失われない。すなわち、水平予測モードに関しては、垂直方向に整数画素精度の動きベクトル情報を持っていれば、水平方向の動きベクトルが小数画素精度であったとしても、２次予測を行うことができる。
【０１１４】
さらに、DC予測モード（モード２：DC Prediction mode）に関しては、予測方法自体が隣接画素値の平均値を求める予測方法であり、予測方法自体により隣接画素の持つ高域成分が失われている。したがって、DC予測モードに関しては、矢印Ｈに示される水平方向、および矢印Ｖに示される垂直方向の少なくとも一方の動きベクトル情報が、小数画素精度であったとしても、２次予測を行うことができる。
【０１１５】
［画像符号化装置の符号化処理の説明］
次に、図１０のフローチャートを参照して、図２の画像符号化装置５１の符号化処理について説明する。
【０１１６】
ステップＳ１１において、Ａ／Ｄ変換部６１は入力された画像をＡ／Ｄ変換する。ステップＳ１２において、画面並べ替えバッファ６２は、Ａ／Ｄ変換部６１より供給された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
【０１１７】
ステップＳ１３において、演算部６３は、ステップＳ１２で並び替えられた画像と予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部７５から、イントラ予測する場合はイントラ予測部７４から、それぞれ予測画像選択部７８を介して演算部６３に供給される。
【０１１８】
差分データは元の画像データに較べてデータ量が小さくなっている。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
【０１１９】
ステップＳ１４において、直交変換部６４は演算部６３から供給された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。ステップＳ１５において、量子化部６５は変換係数を量子化する。この量子化に際しては、後述するステップＳ２５の処理で説明されるように、レートが制御される。
【０１２０】
以上のようにして量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップＳ１６において、逆量子化部６８は量子化部６５により量子化された変換係数を量子化部６５の特性に対応する特性で逆量子化する。ステップＳ１７において、逆直交変換部６９は逆量子化部６８により逆量子化された変換係数を直交変換部６４の特性に対応する特性で逆直交変換する。
【０１２１】
ステップＳ１８において、演算部７０は、予測画像選択部７８を介して入力される予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像（演算部６３への入力に対応する画像）を生成する。ステップＳ１９においてデブロックフィルタ７１は、演算部７０より出力された画像をフィルタリングする。これによりブロック歪みが除去される。ステップＳ２０においてフレームメモリ７２は、フィルタリングされた画像を記憶する。なお、フレームメモリ７２にはデブロックフィルタ７１によりフィルタ処理されていない画像も演算部７０から供給され、記憶される。
【０１２２】
ステップＳ２１において、イントラ予測部７４および動き予測・補償部７５は、それぞれ画像の予測処理を行う。すなわち、ステップＳ２１において、イントラ予測部７４は、イントラ予測モードのイントラ予測処理を行う。動き予測・補償部７５は、インター予測モードの動き予測・補償処理を行う。
【０１２３】
このとき、動きベクトル精度判定部７７により、対象ブロックの動きベクトル情報の精度が整数画素精度であるか小数画素精度であるかが判定され、２次予測部７６により、その判定結果に応じて、２次予測が行われて、２次残差が生成される。そして、動き予測・補償部７５において、１次残差と２次残差のうち、符号化効率がよい残差が決定される。
【０１２４】
なお、２次予測が行われた場合には、２次予測を行うことを示す２次予測フラグや２次予測におけるイントラ予測モードを示す情報を復号側に送る必要がある。これらの情報は、後述するステップＳ２２において最適インター予測モードの予測画像が選択された場合に、最適インター予測モード情報などとともに、可逆符号化部６６に供給される。
【０１２５】
ステップＳ２１における予測処理の詳細は、図１１を参照して後述するが、この処理により、候補となる全てのイントラ予測モードでの予測処理がそれぞれ行われ、候補となる全てのイントラ予測モードでのコスト関数値がそれぞれ算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードが選択され、最適イントラ予測モードのイントラ予測により生成された予測画像とそのコスト関数値が予測画像選択部７８に供給される。
【０１２６】
また、この処理により、候補となる全てのインター予測モードでの予測処理がそれぞれ行われ、決定された残差が用いられて、候補となる全てのインター予測モードでのコスト関数値がそれぞれ算出される。算出されたコスト関数値に基づいて、インター予測モードの中から、最適インター予測モードが決定され、最適インター予測モードで生成された予測画像とそのコスト関数値が、予測画像選択部７８に供給される。なお、最適インター予測モードについて、２次予測が行われた場合には、予測画像として、インターする画像と２次残差の差分が予測画像選択部７８に供給される。
【０１２７】
ステップＳ２２において、予測画像選択部７８は、イントラ予測部７４および動き予測・補償部７５より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちの一方を、最適予測モードに決定する。そして、予測画像選択部７８は、決定した最適予測モードの予測画像を選択し、演算部６３，７０に供給する。この予測画像（２次予測が行われた場合、インターする画像と２次差分情報との差分）が、上述したように、ステップＳ１３，Ｓ１８の演算に利用される。
【０１２８】
なお、この予測画像の選択情報は、イントラ予測部７４または動き予測・補償部７５に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部７４は、最適イントラ予測モードを示す情報（すなわち、イントラ予測モード情報）を、可逆符号化部６６に供給する。
【０１２９】
最適インター予測モードの予測画像が選択された場合、動き予測・補償部７５は、最適インター予測モードを示す情報と、必要に応じて、最適インター予測モードに応じた情報を可逆符号化部６６に出力する。最適インター予測モードに応じた情報としては、２次予測を行うことを示す２次予測フラグ、２次予測におけるイントラ予測モードを示す情報、および参照フレーム情報などがあげられる。
【０１３０】
ステップＳ２３において、可逆符号化部６６は量子化部６５より出力された量子化された変換係数を符号化する。すなわち、差分画像（２次予測の場合、２次差分画像）が可変長符号化、算術符号化等の可逆符号化され、圧縮される。このとき、上述したステップＳ２２において可逆符号化部６６に入力された、イントラ予測部７４からのイントラ予測モード情報、または、動き予測・補償部７５からの最適インター予測モードに応じた情報なども符号化され、ヘッダ情報に付加される。
【０１３１】
ステップＳ２４において蓄積バッファ６７は差分画像を圧縮画像として蓄積する。蓄積バッファ６７に蓄積された圧縮画像が適宜読み出され、伝送路を介して復号側に伝送される。
【０１３２】
ステップＳ２５においてレート制御部７９は、蓄積バッファ６７に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部６５の量子化動作のレートを制御する。
【０１３３】
［予測処理の説明］
次に、図１１のフローチャートを参照して、図１０のステップＳ２１における予測処理を説明する。
【０１３４】
画面並べ替えバッファ６２から供給される処理対象の画像がイントラ処理されるブロックの画像である場合、参照される復号済みの画像がフレームメモリ７２から読み出され、スイッチ７３を介してイントラ予測部７４に供給される。これらの画像に基づいて、ステップＳ３１において、イントラ予測部７４は処理対象のブロックの画素を、候補となる全てのイントラ予測モードでイントラ予測する。なお、参照される復号済みの画素としては、デブロックフィルタ７１によりデブロックフィルタリングされていない画素が用いられる。
【０１３５】
ステップＳ３１におけるイントラ予測処理の詳細は、図２４を参照して後述するが、この処理により、候補となる全てのイントラ予測モードでイントラ予測が行われ、候補となる全てのイントラ予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードが選択され、最適イントラ予測モードのイントラ予測により生成された予測画像とそのコスト関数値が予測画像選択部７８に供給される。
【０１３６】
画面並べ替えバッファ６２から供給される処理対象の画像がインター処理される画像である場合、参照される画像がフレームメモリ７２から読み出され、スイッチ７３を介して動き予測・補償部７５に供給される。これらの画像に基づいて、ステップＳ３２において、動き予測・補償部７５はインター動き予測処理を行う。すなわち、動き予測・補償部７５は、フレームメモリ７２から供給される画像を参照して、候補となる全てのインター予測モードの動き予測処理を行う。
【０１３７】
なお、このとき、動きベクトル精度判定部７７は、動き予測・補償部７５により求められた対象ブロックの動きベクトル情報の精度が整数画素精度であるか小数画素精度であるかを判定する。２次予測部７６は、動きベクトル精度の判定結果やイントラ予測モードに応じて、２次予測を行う。すなわち、２次予測部７６は、対象隣接画素と参照隣接画素の差分を用いて、対象ブロックのイントラ予測画像を生成し、動き予測・補償部７５により求められた１次残差とイントラ予測画像との差分である２次残差を、動き予測・補償部７５に出力する。これに対応して、動き予測・補償部７５は、１次残差と２次残差のうち符号化効率がよい残差を決定し、これ以降の処理に用いる。
【０１３８】
ステップＳ３２におけるインター動き予測処理の詳細は、図２５を参照して後述する。この処理により、候補となる全てのインター予測モードで動き予測処理が行われ、１次差分または２次差分が用いられて、候補となる全てのインター予測モードに対してコスト関数値が算出される。
【０１３９】
ステップＳ３３において、動き予測・補償部７５は、ステップＳ３２において算出されたインター予測モードに対してのコスト関数値を比較する。動き予測・補償部７５は、最小値を与える予測モードを、最適インター予測モードとして決定し、最適インター予測モードで生成された予測画像とそのコスト関数値を、予測画像選択部７８に供給する。
【０１４０】
［Ｈ．２６４／ＡＶＣ方式におけるイントラ予測処理の説明］
次に、Ｈ．２６４／ＡＶＣ方式で定められているイントラ予測の各モードについて説明する。
【０１４１】
まず、輝度信号に対するイントラ予測モードについて説明する。輝度信号のイントラ予測モードには、イントラ４×４予測モード、イントラ８×８予測モード、およびイントラ１６×１６予測モードの３通りの方式が定められている。これは、ブロック単位を定めるモードであり、マクロブロック毎に設定される。また、色差信号に対しては、マクロブロック毎に輝度信号とは独立したイントラ予測モードを設定することが可能である。
【０１４２】
さらに、イントラ４×４予測モードの場合、４×４画素の対象ブロック毎に、９種類の予測モードから１つの予測モードを設定することができる。イントラ８×８予測モードの場合、８×８画素の対象ブロック毎に、９種類の予測モードから１つの予測モードを設定することができる。また、イントラ１６×１６予測モードの場合、１６×１６画素の対象マクロブロックに対して、４種類の予測モードから１つの予測モードを設定することができる。
【０１４３】
なお、以下、イントラ４×４予測モード、イントラ８×８予測モード、およびイントラ１６×１６予測モードは、それぞれ、４×４画素のイントラ予測モード、８×８画素のイントラ予測モード、および１６×１６画素のイントラ予測モードとも適宜称する。
【０１４４】
図１２の例において、各ブロックに付されている数字−１乃至２５は、その各ブロックのビットストリーム順（復号側における処理順）を表している。なお、輝度信号については、マクロブロックが４×４画素に分割されて、４×４画素のＤＣＴが行われる。そして、イントラ１６×１６予測モードの場合のみ、−１のブロックに示されるように、各ブロックの直流成分を集めて、４×４行列が生成され、これに対して、さらに、直交変換が施される。
【０１４５】
一方、色差信号については、マクロブロックが４×４画素に分割され、４×４画素のＤＣＴが行われた後に、１６および１７の各ブロックに示されるように、各ブロックの直流成分を集めて、２×２行列が生成され、これに対して、さらに、直交変換が施される。
【０１４６】
なお、このことは、イントラ８×８予測モードに関しては、ハイプロファイルまたはそれ以上のプロファイルで、対象マクロブロックに、８×８直交変換が施される場合についてのみ適用可能である。
【０１４７】
図１３および図１４は、９種類の輝度信号の４×４画素のイントラ予測モード(Intra_4x4_pred_mode)を示す図である。平均値（ＤＣ）予測を示すモード２以外の８種類の各モードは、それぞれ、図１５の番号０，１，３乃至８で示される方向に対応している。
【０１４８】
９種類のIntra_4x4_pred_modeについて、図１６を参照して説明する。図１６の例において、画素ａ乃至ｐは、イントラ処理される対象ブロックの画素を表し、画素値Ａ乃至Ｍは、隣接ブロックに属する画素の画素値を表している。すなわち、画素ａ乃至ｐは、画面並べ替えバッファ６２から読み出された処理対象の画像であり、画素値Ａ乃至Ｍは、フレームメモリ７２から読み出され、参照される復号済みの画像の画素値である。
【０１４９】
図１３および図１４に示す各イントラ予測モードの場合、画素ａ乃至ｐの予測画素値は、隣接ブロックに属する画素の画素値Ａ乃至Ｍを用いて、以下のように生成される。なお、画素値が“available”であるとは、画枠の端であったり、あるいは、まだ符号化されていないなどの理由がなく、利用可能であることを表す。これに対して、画素値が“unavailable”であるとは、画枠の端であったり、あるいは、まだ符号化されていないなどの理由により利用可能ではないことを表す。
【０１５０】
モード０はVertical Prediction modeであり、画素値Ａ乃至Ｄが “available” の場合のみ適用される。この場合、画素ａ乃至ｐの予測画素値は、次の式（７）のように生成される。
画素ａ, ｅ, ｉ, ｍの予測画素値  ＝  Ａ
画素ｂ, ｆ, ｊ, ｎの予測画素値  ＝  Ｂ
画素ｃ, ｇ, ｋ, ｏの予測画素値  ＝  Ｃ
画素ｄ, ｈ, ｌ, ｐの予測画素値  ＝  Ｄ                            ・・・（７）
【０１５１】
モード１はHorizontal Prediction modeであり、画素値Ｉ乃至Ｌが “available” の場合のみ適用される。この場合、画素ａ乃至ｐの予測画素値は、次の式（８）のように生成される。
画素ａ, ｂ, ｃ, ｄの予測画素値  ＝  Ｉ
画素ｅ, ｆ, ｇ, ｈの予測画素値  ＝  Ｊ
画素ｉ, ｊ, ｋ, ｌの予測画素値  ＝  Ｋ
画素ｍ, ｎ, ｏ, ｐの予測画素値  ＝  Ｌ                            ・・・（８）
【０１５２】
モード２はDC Prediction modeであり、画素値Ａ,Ｂ,Ｃ,Ｄ,Ｉ,Ｊ,Ｋ,Ｌが全て “available” である時、予測画素値は式（９）のように生成される。
（Ａ＋Ｂ＋Ｃ＋Ｄ＋Ｉ＋Ｊ＋Ｋ＋Ｌ＋４）  ＞＞  ３                  ・・・（９）
【０１５３】
また、画素値Ａ,Ｂ,Ｃ,Ｄが全て “unavailable” である時、予測画素値は式（１０）のように生成される。
（Ｉ＋Ｊ＋Ｋ＋Ｌ＋２）  ＞＞  ２                                ・・・（１０）
【０１５４】
また、画素値Ｉ,Ｊ,Ｋ,Ｌが全て “unavailable” である時、予測画素値は式（１１）のように生成される。
（Ａ＋Ｂ＋Ｃ＋Ｄ＋２）  ＞＞  ２                                ・・・（１１）
【０１５５】
なお、画素値Ａ,Ｂ,Ｃ,Ｄ,Ｉ,Ｊ,Ｋ,Ｌが全て“unavailable” である時、１２８を予測画素値として用いる。
【０１５６】
モード３はDiagonal_Down_Left Prediction modeであり、画素値Ａ,Ｂ,Ｃ,Ｄ,Ｉ,Ｊ,Ｋ,Ｌ,Ｍが“available”の場合のみ適用される。この場合、画素ａ乃至ｐの予測画素値は、次の式（１２）のように生成される。
画素ａの予測画素値                  ＝  （Ａ＋２Ｂ＋Ｃ＋２）  ＞＞  ２
画素ｂ，ｅの予測画素値              ＝  （Ｂ＋２Ｃ＋Ｄ＋２）  ＞＞  ２
画素ｃ，ｆ，ｉの予測画素値          ＝  （Ｃ＋２Ｄ＋Ｅ＋２）  ＞＞  ２
画素ｄ，ｇ，ｊ，ｍの予測画素値      ＝  （Ｄ＋２Ｅ＋Ｆ＋２）  ＞＞  ２
画素ｈ，ｋ，ｎの予測画素値          ＝  （Ｅ＋２Ｆ＋Ｇ＋２）  ＞＞  ２
画素ｌ，ｏの予測画素値              ＝  （Ｆ＋２Ｇ＋Ｈ＋２）  ＞＞  ２
画素ｐの予測画素値                  ＝  （Ｇ＋３Ｈ＋２）      ＞＞  ２
・・・（１２）
【０１５７】
モード４はDiagonal_Down_Right Prediction modeであり、画素値Ａ,Ｂ,Ｃ,Ｄ,Ｉ,Ｊ,Ｋ,Ｌ,Ｍが “available” の場合のみ適用される。この場合、画素ａ乃至ｐの予測画素値は、次の式（１３）のように生成される。
画素ｍの予測画素値                  ＝  （Ｊ＋２Ｋ＋Ｌ＋２）  ＞＞  ２
画素ｉ，ｎの予測画素値              ＝  （Ｉ＋２Ｊ＋Ｋ＋２）  ＞＞  ２
画素ｅ，ｊ，ｏの予測画素値          ＝  （Ｍ＋２Ｉ＋Ｊ＋２）  ＞＞  ２
画素ａ，ｆ，ｋ，ｐの予測画素値      ＝  （Ａ＋２Ｍ＋Ｉ＋２）  ＞＞  ２
画素ｂ，ｇ，ｌの予測画素値          ＝  （Ｍ＋２Ａ＋Ｂ＋２）  ＞＞  ２
画素ｃ，ｈの予測画素値              ＝  （Ａ＋２Ｂ＋Ｃ＋２）  ＞＞  ２
画素ｄの予測画素値                  ＝  （Ｂ＋２Ｃ＋Ｄ＋２）  ＞＞  ２
・・・（１３）
【０１５８】
モード５はDiagonal_Vertical_Right Prediction modeであり、画素値Ａ,Ｂ,Ｃ,Ｄ,Ｉ,Ｊ,Ｋ,Ｌ,Ｍが“available”の場合のみ適用される。この場合、画素ａ乃至ｐの予測画素値は、次の式（１４）のように生成される。
画素ａ，ｊの予測画素値              ＝  （Ｍ＋Ａ＋１）        ＞＞  １
画素ｂ，ｋの予測画素値              ＝  （Ａ＋Ｂ＋１）        ＞＞  １
画素ｃ，ｌの予測画素値              ＝  （Ｂ＋Ｃ＋１）        ＞＞  １
画素ｄの予測画素値                  ＝  （Ｃ＋Ｄ＋１）        ＞＞  １
画素ｅ，ｎの予測画素値              ＝  （Ｉ＋２Ｍ＋Ａ＋２）  ＞＞  ２
画素ｆ，ｏの予測画素値              ＝  （Ｍ＋２Ａ＋Ｂ＋２）  ＞＞  ２
画素ｇ，ｐの予測画素値              ＝  （Ａ＋２Ｂ＋Ｃ＋２）  ＞＞  ２
画素ｈの予測画素値                  ＝  （Ｂ＋２Ｃ＋Ｄ＋２）  ＞＞  ２
画素ｉの予測画素値                  ＝  （Ｍ＋２Ｉ＋Ｊ＋２）  ＞＞  ２
画素ｍの予測画素値                  ＝  （Ｉ＋２Ｊ＋Ｋ＋２）  ＞＞  ２
・・・（１４）
【０１５９】
モード６はHorizontal_Down Prediction modeであり、画素値Ａ,Ｂ,Ｃ,Ｄ,Ｉ,Ｊ,Ｋ,Ｌ,Ｍが“available”の場合のみ適用される。この場合、画素ａ乃至ｐの予測画素値は、次の式（１５）のように生成される。
画素ａ，ｇの予測画素値              ＝  （Ｍ＋Ｉ＋１）        ＞＞  １
画素ｂ，ｈの予測画素値              ＝  （Ｉ＋２Ｍ＋Ａ＋２）  ＞＞  ２
画素ｃの予測画素値                  ＝  （Ｍ＋２Ａ＋Ｂ＋２）  ＞＞  ２
画素ｄの予測画素値                  ＝  （Ａ＋２Ｂ＋Ｃ＋２）  ＞＞  ２
画素ｅ，ｋの予測画素値              ＝  （Ｉ＋Ｊ＋１）        ＞＞  １
画素ｆ，ｌの予測画素値              ＝  （Ｍ＋２Ｉ＋Ｊ＋２）  ＞＞  ２
画素ｉ，ｏの予測画素値              ＝  （Ｊ＋Ｋ＋１）        ＞＞  １
画素ｊ，ｐの予測画素値              ＝  （Ｉ＋２Ｊ＋Ｋ＋２）  ＞＞  ２
画素ｍの予測画素値                  ＝  （Ｋ＋Ｌ＋１）        ＞＞  １
画素ｎの予測画素値                  ＝  （Ｊ＋２Ｋ＋Ｌ＋２）  ＞＞  ２
・・・（１５）
【０１６０】
モード７は、Vertical_Left Prediction modeであり、画素値Ａ,Ｂ,Ｃ,Ｄ,Ｉ,Ｊ,Ｋ,Ｌ,Ｍが“available”の場合のみ適用される。この場合、画素ａ乃至ｐの予測画素値は、次の式（１６）のように生成される。
画素ａの予測画素値                  ＝  （Ａ＋Ｂ＋１）        ＞＞  １
画素ｂ，ｉの予測画素値              ＝  （Ｂ＋Ｃ＋１）        ＞＞  １
画素ｃ，ｊの予測画素値              ＝  （Ｃ＋Ｄ＋１）        ＞＞  １
画素ｄ，ｋの予測画素値              ＝  （Ｄ＋Ｅ＋１）        ＞＞  １
画素ｌの予測画素値                  ＝  （Ｅ＋Ｆ＋１）        ＞＞  １
画素ｅの予測画素値                  ＝  （Ａ＋２Ｂ＋Ｃ＋２）  ＞＞  ２
画素ｆ，ｍの予測画素値              ＝  （Ｂ＋２Ｃ＋Ｄ＋２）  ＞＞  ２
画素ｇ，ｎの予測画素値              ＝  （Ｃ＋２Ｄ＋Ｅ＋２）  ＞＞  ２
画素ｈ，ｏの予測画素値              ＝  （Ｄ＋２Ｅ＋Ｆ＋２）  ＞＞  ２
画素ｐの予測画素値                  ＝  （Ｅ＋２Ｆ＋Ｇ＋２）  ＞＞  ２
・・・（１６）
【０１６１】
モード８は、Horizontal_Up Prediction modeであり、画素値Ａ,Ｂ,Ｃ,Ｄ,Ｉ,Ｊ,Ｋ,Ｌ,Ｍが“available”の場合のみ適用される。この場合、画素ａ乃至ｐの予測画素値は、次の式（１７）のように生成される。
画素ａの予測画素値                  ＝  （Ｉ＋Ｊ＋１）        ＞＞  １
画素ｂの予測画素値                  ＝  （Ｉ＋２Ｊ＋Ｋ＋２）  ＞＞  ２
画素ｃ，ｅの予測画素値              ＝  （Ｊ＋Ｋ＋１）        ＞＞  １
画素ｄ，ｆの予測画素値              ＝  （Ｊ＋２Ｋ＋Ｌ＋２）  ＞＞  ２
画素ｇ，ｉの予測画素値              ＝  （Ｋ＋Ｌ＋１）        ＞＞  １
画素ｈ，ｊの予測画素値              ＝  （Ｋ＋３Ｌ＋２）      ＞＞  ２
画素ｋ，ｌ，ｍ，ｎ，ｏ，ｐの予測画素値  ＝  Ｌ
・・・（１７）
【０１６２】
次に、図１７を参照して、輝度信号の４×４画素のイントラ予測モード(Intra_4x4_pred_mode)の符号化方式について説明する。図１７の例において、４×４画素からなり、符号化対象となる対象ブロックＣが示されており、対象ブロックＣに隣接する４×４画素からなるブロックＡおよびブロックＢが示されている。
【０１６３】
この場合、対象ブロックＣにおけるIntra_4x4_pred_modeと、ブロックＡおよびブロックＢにおけるIntra_4x4_pred_modeとは高い相関があると考えられる。この相関性を用いて、次のように符号化処理を行うことにより、より高い符号化効率を実現することができる。
【０１６４】
すなわち、図１７の例において、ブロックＡおよびブロックＢにおけるIntra_4x4_pred_modeを、それぞれ、Intra_4x4_pred_modeAおよびIntra_4x4_pred_modeBとして、MostProbableModeを次の式（１８）と定義する。
MostProbableMode=Min(Intra_4x4_pred_modeA, Intra_4x4_pred_modeB)
・・・（１８）
【０１６５】
すなわち、ブロックＡおよびブロックＢのうち、より小さなmode_numberを割り当てられている方をMostProbableModeとする。
【０１６６】
ビットストリーム中には、対象ブロックＣに対するパラメータとして、prev_intra4x4_pred_mode_flag[luma4x4BlkIdx] および rem_intra4x4_pred_mode[luma4x4BlkIdx] という２つの値が定義されており、次の式（１９）に示される擬似コードに基づく処理により、復号処理が行われ、対象ブロックＣに対するIntra_4x4_pred_mode、Intra4x4PredMode[luma4x4BlkIdx] の値を得ることができる。
【０１６７】
if(prev_intra4x4_pred_mode_flag[luma4x4BlkIdx])
Intra4x4PredMode[luma4x4BlkIdx] = MostProbableMode
else
if(rem_intra4x4_pred_mode[luma4x4BlkIdx] < MostProbableMode)
Intra4x4PredMode[luma4x4BlkIdx]=rem_intra4x4_pred_mode[luma4x4BlkIdx]
else
Intra4x4PredMode[luma4x4BlkIdx]=rem_intra4x4_pred_mode[luma4x4BlkIdx] + 1
・・・（１９）
【０１６８】
次に、８×８画素のイントラ予測モードについて説明する。図１８および図１９は、９種類の輝度信号の８×８画素のイントラ予測モード(Intra_8x8_pred_mode)を示す図である。
【０１６９】
対象の８×８ブロックにおける画素値を、p[x,y](0≦x≦7;0≦y≦7)とし、隣接ブロックの画素値をp[-1,-1],…,p[-1,15],p[-1,0],…,[p-1,7]のように表すものとする。
【０１７０】
８×８画素のイントラ予測モードについては、予測値を生成するに先立ち、隣接画素にローパスフィルタリング処理が施される。ここで、ローパスフィルタリング処理前の画素値を、p[-1,-1],…,p[-1,15],p[-1,0],…p[-1,7]、処理後の画素値をp'[-1,-1],…,p'[-1,15],p'[-1,0],…p'[-1,7]と表すとする。
【０１７１】
まず、p'[0,-1]は、p[-1,-1] が “available” である場合には、次の式（２０）のように算出され、“not available” である場合には、次の式（２１）のように算出される。
p'[0,-1] = (p[-1,-1] + 2*p[0,-1] + p[1,-1] + 2) >> 2
・・・（２０）
p'[0,-1] = (3*p[0,-1] + p[1,-1] + 2) >> 2
・・・（２１）
【０１７２】
p'[x,-1] (x=0,…,7)は、次の式（２２）のように算出される。
p'[x,-1] = (p[x-1,-1] + 2*p[x,-1] + p[x+1,-1] + 2) >>2
・・・（２２）
【０１７３】
p'[x,-1] (x=8,…,15)は、p[x,-1] (x=8,…,15) が “available” である場合には、次の式（２３）のように算出される。
p'[x,-1] = (p[x-1,-1] + 2*p[x,-1] + p[x+1,-1] + 2) >>2
p'[15,-1] = (p[14,-1] + 3*p[15,-1] + 2) >>2
・・・（２３）
【０１７４】
p'[-1,-1]は、p[-1,-1]が “available” である場合には、以下のように算出される。すなわち、p'[-1,-1]は、p[0,-1]及びp[-1,0]の双方がavailableである場合には、式（２４）のように算出され、p[-1,0] が “unavailable” である場合には、式（２５）のように算出される。また、p'[-1,-1]は、p[0,-1] が “unavailable” である場合には、式（２６）のように算出される。
p'[-1,-1] = (p[0,-1] + 2*p[-1,-1] + p[-1,0] + 2) >>2
・・・（２４）
p'[-1,-1] = (3*p[-1,-1] + p[0,-1] + 2) >>2
・・・（２５）
p'[-1,-1] = (3*p[-1,-1] + p[-1,0] + 2) >>2
・・・（２６）
【０１７５】
p'[-1,y] (y=0, … ,7) は、p[-1,y] (y=0, … ,7) が “available” の時、以下のように算出される。すなわち、まず、p'[-1,0]は、p[-1,-1]が “available” である場合には、次の式（２７）のように算出され、“unavailable” である場合には、式（２８）のように算出される。
p'[-1,0] = (p[-1,-1] + 2*p[-1,0] + p[-1,1] + 2) >>2
・・・（２７）
p'[-1,0] = (3*p[-1,0] + p[-1,1] + 2) >>2
・・・（２８）
【０１７６】
また、p'[-1,y] (y=1,…,6)は、次の式（２９）のように算出され、p'[-1,7]は、式（３０）のように算出される。
p[-1,y] = (p[-1,y-1] + 2*p[-1,y] + p[-1,y+1] + 2) >>2
・・・（２９）
p'[-1,7] = (p[-1,6] + 3*p[-1,7] + 2) >>2
・・・（３０）
【０１７７】
このように算出されたp'を用いて、図１８および図１９に示される各イントラ予測モードにおける予測値は以下のように生成される。
【０１７８】
モード０はVertical Prediction modeであり、p[x,-1] (x=0, … ,7) が “available” である時のみ適用される。予測値pred8x8L[x,y]は、次の式（３１）のように生成される。
pred8x8L[x,y] = p'[x,-1] x,y=0,...,7
・・・（３１）
【０１７９】
モード１はHorizontal Prediction modeであり、p[-1,y] (y=0, … ,7) が “available” である時のみ適用される。予測値pred8x8L[x,y]は、次の式（３２）のように生成される。
pred8x8L[x,y] = p'[-1,y] x,y=0,...,7
・・・（３２）
【０１８０】
モード２はDC Prediction modeであり、予測値pred8x8L[x,y]は以下の通り生成される。すなわち、p[x,-1] (x=0, … ,7) および p[-1,y] (y=0, … ,7) の両方が “available” である場合には、予測値pred8x8L[x,y]は、次の式（３３）のように生成される。
【数５】
2010258739.tif 000007
【０１８１】
p[x,-1] (x=0, … ,7) は “available” であるが、 p[-1,y] (y=0, … ,7) が “unavailable” である場合には、予測値pred8x8L[x,y]は、次の式（３４）のように生成される。
【数６】
2010258739.tif 000008
【０１８２】
p[x,-1] (x=0, … ,7) は “unavailable” であるが、 p[-1,y] (y=0, … ,7) が “available” である場合には、予測値pred8x8L[x,y]は、次の式（３５）のように生成される。
【数７】
2010258739.tif 000009
【０１８３】
p[x,-1] (x=0, … ,7) および p[-1,y] (y=0, … ,7) の両方が “unavailable” である場合には、予測値pred8x8L[x,y]は、次の式（３６）のように生成される。
pred8x8L[x,y] = 128
・・・（３６）
ただし、式（３６）は、8ビット入力の場合を表している。
【０１８４】
モード３はDiagonal_Down_Left_prediction modeであり、予測値pred8x8L[x,y]は以下の通り生成される。すなわち、Diagonal_Down_Left_prediction modeは、p[x,-1], x=0,…,15が “available” の時のみ適用され、x=7かつy=7である予測画素値は、次の式（３７）のように生成され、その他の予測画素値は、次の式（３８）のように生成される。
pred8x8L[x,y] = (p'[14,-1] + 3*p[15,-1] + 2) >> 2
・・・（３７）
red8x8L[x,y] = (p'[x+y,-1] + 2*p'[x+y+1,-1] + p'[x+y+2,-1] + 2) >> 2
・・・（３８）
【０１８５】
モード４はDiagonal_Down_Right_prediction modeであり、予測値pred8x8L[x,y]は以下の通り生成される。すなわち、Diagonal_Down_Right_prediction modeは、p[x,-1],x=0,…,7及びp[-1,y],y=0,…,7が “available”の時のみ適用され、x > y である予測画素値は、次の式（３９）のように生成され、x < y である予測画素値は、次の式（４０）のように生成される。また、x = y である予測画素値は、次の式（４１）のように生成される。
pred8x8L[x,y] = (p'[x-y-2,-1] + 2*p'[x-y-1,-1] + p'[x-y,-1] + 2) >> 2
・・・（３９）
pred8x8L[x,y] = (p'[-1,y-x-2] + 2*p'[-1,y-x-1] + p'[-1,y-x] + 2) >> 2
・・・（４０）
pred8x8L[x,y] = (p'[0,-1] + 2*p'[-1,-1] + p'[-1,0] + 2) >> 2
・・・（４１）
【０１８６】
モード５はVertical_Right_prediction modeであり、予測値pred8x8L[x,y]は以下の通り生成される。すなわち、Vertical_Right_prediction modeは、p[x,-1],x=0,…,7及びp[-1,y],y=-1,…,7が “available”の時のみ適用される。今、zVRを、次の式（４２）のように定義する。
zVR = 2*x - y
・・・（４２）
【０１８７】
この時、zVRが、0,2,4,6,8,10,12,14の場合には、画素予測値は、次の式（４３）のように生成され、zVRが1,3,5,7,9,11,13の場合には、画素予測値は、次の式（４４）のように生成される。
pred8x8L[x,y] = (p'[x-(y>>1)-1,-1] + p'[x-(y>>1),-1] + 1) >> 1
・・・（４３）
pred8x8L[x,y]
= (p'[x-(y>>1)-2,-1] + 2*p'[x-(y>>1)-1,-1] + p'[x-(y>>1),-1] + 2) >> 2
・・・（４４）
【０１８８】
また、zVRが-1の場合には、画素予測値は、次の式（４５）のように生成され、これ以外の場合、すなわち、zVRが-2,-3,-4,-5,-6,-7の場合には、画素予測値は、次の式（４６）のように生成される。
pred8x8L[x,y] = (p'[-1,0] + 2*p'[-1,-1] + p'[0,-1] + 2) >> 2
・・・（４５）
pred8x8L[x,y] = (p'[-1,y-2*x-1] + 2*p'[-1,y-2*x-2] + p'[-1,y-2*x-3] + 2) >> 2
・・・（４６）
【０１８９】
モード６はHorizontal_Down_prediction modeであり、予測値pred8x8L[x,y]は以下の通り生成される。すなわち、Horizontal_Down_prediction modeは、p[x,-1],x=0,…,7及びp[-1,y],y=-1,…,7が “available”の時のみ適用される。今、zVRを次の式（４７）のように定義するものとする。
zHD = 2*y - x
・・・（４７）
【０１９０】
この時、zHDが0,2,4,6,8,10,12,14の場合には、予測画素値は、次の式（４８）のように生成され、zHDが1,3,5,7,9,11,13の場合には、予測画素値は、次の式（４９）のように生成される。
pred8x8L[x,y] = (p'[-1,y-(x>>1)-1] + p'[-1,y-(x>>1) + 1] >> 1
・・・（４８）
pred8x8L[x,y]
= (p'[-1,y-(x>>1)-2] + 2*p'[-1,y-(x>>1)-1] + p'[-1,y-(x>>1)] + 2) >> 2
・・・（４９）
【０１９１】
また、zHDが-1の場合には、予測画素値は、次の式（５０）のように生成され、zHDがこれ以外の値の場合、すなわち、-2,-3,-4,-5,-6,-7の場合には、予測画素値は、次の式（５１）のように生成される。
pred8x8L[x,y] = (p'[-1,0] + 2*p[-1,-1] + p'[0,-1] + 2) >> 2
・・・（５０）
pred8x8L[x,y] = (p'[x-2*y-1,-1] + 2*p'[x-2*y-2,-1] + p'[x-2*y-3,-1] + 2) >> 2
・・・（５１）
【０１９２】
モード７はVertical_Left_prediction modeであり、予測値pred8x8L[x,y]は以下の通り生成される。すなわち、Vertical_Left_prediction modeは、p[x,-1], x=0,…,15が “available” の時のみ適用され、y=0,2,4,6の場合、予測画素値は、次の式（５２）のように生成され、それ以外の場合、すなわち、y=1,3,5,7の場合、予測画素値は、次の式（５３）のように生成される。
pred8x8L[x,y] = (p'[x+(y>>1),-1] + p'[x+(y>>1)+1,-1] + 1) >> 1
・・・（５２）
pred8x8L[x,y]
= (p'[x+(y>>1),-1] + 2*p'[x+(y>>1)+1,-1] + p'[x+(y>>1)+2,-1] + 2) >> 2
・・・（５３）
【０１９３】
モード８はHorizontal_Up_prediction modeであり、予測値pred8x8L[x,y]は以下の通り生成される。すなわち、Horizontal_Up_prediction modeは、p[-1,y], y=0,…,7 が “available” の時のみ適用される。以下では、zHUを次の式（５４）のように定義する。
zHU = x + 2*y
・・・（５４）
【０１９４】
zHUの値が0,2,4,6,8,10,12の場合、予測画素値は、次の式（５５）のように生成され、zHUの値が1,3,5,7,9,11の場合、予測画素値は、次の式（５６）のように生成される。
pred8x8L[x,y] = (p'[-1,y+(x>>1)] + p'[-1,y+(x>>1)+1] + 1) >> 1
・・・（５５）
pred8x8L[x,y] = (p'[-1,y+(x>>1)]
・・・（５６）
【０１９５】
また、zHUの値が13の場合、予測画素値は、次の式（５７）のように生成され、それ以外の場合、すなわち、zHUの値が13より大きい場合、予測画素値は、次の式（５８）のように生成される。
pred8x8L[x,y] = (p'[-1,6] + 3*p'[-1,7] + 2) >> 2
・・・（５７）
pred8x8L[x,y] = p'[-1,7]
・・・（５８）
【０１９６】
次に、１６×１６画素のイントラ予測モードについて説明する。図２０および図２１は、４種類の輝度信号の１６×１６画素のイントラ予測モード(Intra_16x16_pred_mode)を示す図である。
【０１９７】
４種類のイントラ予測モードについて、図２２を参照して説明する。図２２の例において、イントラ処理される対象マクロブロックＡが示されており、P(x,y);x,y=-1,0,…,15は、対象マクロブロックＡに隣接する画素の画素値を表している。
【０１９８】
モード０は、Vertical Prediction modeであり、P(x,-1); x,y=-1,0,…,15が “available” である時のみ適用される。この場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（５９）のように生成される。
Pred(x,y) = P(x,-1);x,y=0,…,15
・・・（５９）
【０１９９】
モード１はHorizontal Prediction modeであり、P(-1,y); x,y=-1,0,…,15が “available” である時のみ適用される。この場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（６０）のように生成される。
Pred(x,y) = P(-1,y);x,y=0,…,15
・・・（６０）
【０２００】
モード２はDC Prediction modeであり、P(x,-1)およびP(-1,y); x,y=-1,0,…,15が全て “available” である場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（６１）のように生成される。
【数８】
2010258739.tif 000010
【０２０１】
また、P(x,-1); x,y=-1,0,…,15が “unavailable” である場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（６２）のように生成される。
【数９】
2010258739.tif 000011
【０２０２】
P(-1,y); x,y=-1,0,…,15が “unavailable” である場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（６３）のように生成される。
【数１０】
2010258739.tif 000012
【０２０３】
P(x,-1)およびP(-1,y); x,y=-1,0,…,15が全て “unavailable” である場合には、予測画素値として１２８を用いる。
【０２０４】
モード３はPlane Prediction modeであり、P(x,-1)及びP(-1,y); x,y=-1,0,…,15が全て “available” の場合のみ適用される。この場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（６４）のように生成される。
【数１１】
2010258739.tif 000013
【０２０５】
次に、色差信号に対するイントラ予測モードについて説明する。図２３は、４種類の色差信号のイントラ予測モード(Intra_chroma_pred_mode)を示す図である。色差信号のイントラ予測モードは、輝度信号のイントラ予測モードと独立に設定が可能である。色差信号に対するイントラ予測モードは、上述した輝度信号の１６×１６画素のイントラ予測モードに順ずる。
【０２０６】
ただし、輝度信号の１６×１６画素のイントラ予測モードが、１６×１６画素のブロックを対象としているのに対し、色差信号に対するイントラ予測モードは、８×８画素のブロックを対象としている。さらに、上述した図２０と図２３に示されるように、両者においてモード番号は対応していない。
【０２０７】
ここで、図２２を参照して上述した輝度信号の１６×１６画素のイントラ予測モードの対象マクロブロックＡの画素値および隣接する画素値の定義に準じる。例えば、イントラ処理される対象マクロブロックＡ（色差信号の場合は、８×８画素）に隣接する画素の画素値をP(x,y);x,y=-1,0,…,7とする。
【０２０８】
モード０はDC Prediction modeであり、P(x,-1)およびP(-1,y); x,y=-1,0,…,7が全て “available” である場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（６５）のように生成される。
【数１２】
2010258739.tif 000014
【０２０９】
また、P(-1,y) ; x,y=-1,0,…,7が “unavailable” である場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（６６）のように生成される。
【数１３】
2010258739.tif 000015
【０２１０】
また、P(x,-1) ; x,y=-1,0,…,7が “unavailable”である場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（６７）のように生成される。
【数１４】
2010258739.tif 000016
【０２１１】
モード１はHorizontal Prediction modeであり、P(-1,y) ; x,y=-1,0,…,7が “available” の場合にのみ適用される。この場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（６８）のように生成される。
Pred(x,y) = P(-1,y);x,y=0,…,7
・・・（６８）
【０２１２】
モード２はVertical Prediction modeであり、P(x,-1) ; x,y=-1,0,…,7が “available” の場合にのみ適用される。この場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（６９）のように生成される。
Pred(x,y) = P(x,-1);x,y=0,…,7
・・・（６９）
【０２１３】
モード３はPlane Prediction modeであり、P(x,-1)及びP(-1,y) ; x,y=-1,0,…,7 が “available” の場合にのみ適用される。この場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（７０）のように生成される。
【数１５】
2010258739.tif 000017
【０２１４】
以上のように、輝度信号のイントラ予測モードには、９種類の４×４画素および８×８画素のブロック単位、並びに４種類の１６×１６画素のマクロブロック単位の予測モードがある。このブロック単位のモードは、マクロブロック単位毎に設定される。色差信号のイントラ予測モードには、４種類の８×８画素のブロック単位の予測モードがある。この色差信号のイントラ予測モードは、輝度信号のイントラ予測モードと独立に設定が可能である。
【０２１５】
また、輝度信号の４×４画素のイントラ予測モード（イントラ４×４予測モード）および８×８画素のイントラ予測モード（イントラ８×８予測モード）については、４×４画素および８×８画素の輝度信号のブロック毎に１つのイントラ予測モードが設定される。輝度信号の１６×１６画素のイントラ予測モード（イントラ１６×１６予測モード）と色差信号のイントラ予測モードについては、１つのマクロブロックに対して１つの予測モードが設定される。
【０２１６】
なお、予測モードの種類は、上述した図１５の番号０，１，３乃至８で示される方向に対応している。予測モード２は平均値予測である。
【０２１７】
［イントラ予測処理の説明］
次に、図２４のフローチャートを参照して、これらの予測モードに対して行われる処理である、図１１のステップＳ３１におけるイントラ予測処理を説明する。なお、図２４の例においては、輝度信号の場合を例として説明する。
【０２１８】
イントラ予測部７４は、ステップＳ４１において、４×４画素、８×８画素、および１６×１６画素の各イントラ予測モードに対してイントラ予測を行う。
【０２１９】
具体的には、イントラ予測部７４は、処理対象のブロックの画素を、フレームメモリ７２から読み出され、スイッチ７３を介して供給される復号済みの画像を参照して、イントラ予測する。このイントラ予測処理が、各イントラ予測モードで行われることで、各イントラ予測モードでの予測画像が生成される。なお、参照される復号済みの画素としては、デブロックフィルタ７１によりデブロックフィルタリングされていない画素が用いられる。
【０２２０】
イントラ予測部７４は、ステップＳ４２において、４×４画素、８×８画素、および１６×１６画素の各イントラ予測モードに対するコスト関数値を算出する。ここで、コスト関数値としては、High Complexity モードか、Low Complexity モードのいずれかの手法に基づいて行う。これらのモードは、H．264/AVC方式における参照ソフトウエアであるＪＭ(Joint Model)で定められている。
【０２２１】
すなわち、High Complexity モードにおいては、ステップＳ４１の処理として、候補となる全ての予測モードに対して、仮に符号化処理までが行われる。そして、次の式（７１）で表わされるコスト関数値が各予測モードに対して算出され、その最小値を与える予測モードが最適予測モードであるとして選択される。
【０２２２】
Cost(Mode) = D + λ・R                                          ・・・（７１）
Dは、原画像と復号画像の差分（歪）、Rは、直交変換係数まで含んだ発生符号量、λは、量子化パラメータQPの関数として与えられるラグランジュ乗数である。
【０２２３】
一方、Low Complexity モードにおいては、ステップＳ４１の処理として、候補となる全ての予測モードに対して、予測画像の生成、および、動きベクトル情報や予測モード情報、フラグ情報などのヘッダビットまでが算出される。そして、次の式（７２）で表わされるコスト関数値が各予測モードに対して算出され、その最小値を与える予測モードが最適予測モードであるとして選択される。
【０２２４】
Cost(Mode) = D + QPtoQuant(QP)・Header_Bit                      ・・・（７２）
Dは、原画像と復号画像の差分（歪）、Header_Bitは、予測モードに対するヘッダビット、QPtoQuantは、量子化パラメータQPの関数として与えられる関数である。
【０２２５】
Low Complexity モードにおいては、全ての予測モードに対して、予測画像を生成するのみで、符号化処理および復号処理を行う必要がないため、演算量が少なくて済む。
【０２２６】
イントラ予測部７４は、ステップＳ４３において、４×４画素、８×８画素、および１６×１６画素の各イントラ予測モードに対して、それぞれ最適モードを決定する。すなわち、上述したように、イントラ４×４予測モードおよびイントラ８×８予測モードの場合には、予測モードの種類が９種類あり、イントラ１６×１６予測モードの場合には、予測モードの種類が４種類ある。したがって、イントラ予測部７４は、ステップＳ４２において算出されたコスト関数値に基づいて、それらの中から、最適イントラ４×４予測モード、最適イントラ８×８予測モード、最適イントラ１６×１６予測モードを決定する。
【０２２７】
イントラ予測部７４は、ステップＳ４４において、４×４画素、８×８画素、および１６×１６画素の各イントラ予測モードに対して決定された各最適モードの中から、ステップＳ４２において算出されたコスト関数値に基づいて、最適イントラ予測モードを選択する。すなわち、４×４画素、８×８画素、および１６×１６画素に対して決定された各最適モードの中から、コスト関数値が最小値であるモードを、最適イントラ予測モードとして選択する。そして、イントラ予測部７４は、最適イントラ予測モードで生成された予測画像とそのコスト関数値とを、予測画像選択部７８に供給する。
【０２２８】
［インター動き予測処理の説明］
次に、図２５のフローチャートを参照して、図１１のステップＳ３２のインター動き予測処理について説明する。
【０２２９】
動き予測・補償部７５は、ステップＳ５１において、図３を参照して上述した１６×１６画素乃至４×４画素からなる８種類の各インター予測モードに対して動きベクトルと参照画像をそれぞれ決定する。すなわち、各インター予測モードの処理対象のブロックについて、動きベクトルと参照画像がそれぞれ決定される。
【０２３０】
動き予測・補償部７５は、ステップＳ５２において、１６×１６画素乃至４×４画素からなる８種類の各インター予測モードについて、ステップＳ５１で決定された動きベクトルに基づいて、参照画像に動き予測と補償処理を行う。この動き予測と補償処理の詳細は、図２６を参照して後述する。
【０２３１】
ステップＳ５２の処理により、動きベクトルの精度が小数画素であるか否か、または動きベクトルの精度およびイントラ予測モードの組み合わせが特定の組み合わせであるか否かが判定される。そして、判定結果に応じて、対象画像と予測画像の差分である１次残差と対象隣接画素と参照隣接画素の差分の間で予測が行われることで、２次残差が生成される。そして、１次残差と２次残差を比較することで、最終的に、２次予測処理を行うか否かが決定される。
【０２３２】
２次予測を行うと決定された場合、１次残差の代わりに２次残差が後述するステップＳ５４のコスト関数値の算出に用いられる。この場合、２次予測を行うことを示す２次予測フラグと２次予測におけるイントラ予測モードを示す情報も動き予測・補償部７５に出力される。
【０２３３】
動き予測・補償部７５は、ステップＳ５３において、１６×１６画素乃至４×４画素からなる８種類の各インター予測モードに対して決定された動きベクトルについて、動きベクトル情報mvdEを生成する。このとき、図６を参照して上述した動きベクトルの生成方法が用いられる。
【０２３４】
生成された動きベクトル情報は、次のステップＳ５４におけるコスト関数値算出の際にも用いられ、最終的に予測画像選択部７８により対応する予測画像が選択された場合には、予測モード情報および参照フレーム情報とともに、可逆符号化部６６へ出力される。
【０２３５】
モード判定部８６は、ステップＳ５４において、１６×１６画素乃至４×４画素からなる８種類の各インター予測モードに対して、上述した式（７１）または式（７２）で示されるコスト関数値を算出する。ここで算出されたコスト関数値は、上述した図１１のステップＳ３３で最適インター予測モードを決定する際に用いられる。
【０２３６】
［動き予測・補償処理の説明］
次に、図２６のフローチャートを参照して、図２５のステップＳ５２の動き予測・補償処理について説明する。図２６の例においては、４×４画素ブロックのイントラ予測モードを用いる例が示されている。
【０２３７】
図２５のステップＳ５１において対象ブロックについて求められた動きベクトル情報は、動きベクトル精度判定部７７および隣接画素予測部８３に入力される。また、隣接画素予測部８３には、動きベクトル情報とともに、対象ブロックの情報（アドレスなど）も入力される。
【０２３８】
動きベクトル精度判定部７７は、ステップＳ７１において、動きベクトル情報が水平および垂直ともに小数画素精度であるか否かを判定する。ステップＳ７１において、動きベクトル情報が水平および垂直ともに小数画素精度ではないと判定された場合、ステップＳ７２において、動きベクトル精度判定部７７は、動きベクトル情報が水平および垂直ともに整数画素精度であるか否かを判定する。
【０２３９】
ステップＳ７２において、動きベクトル情報が水平および垂直ともに整数画素精度であると判定された場合、その判定結果は、スイッチ８４に出力され、処理は、ステップＳ７３に進む。
【０２４０】
ステップＳ７３において、動き予測・補償部７５は、１６×１６画素乃至４×４画素からなる８種類の各インター予測モードについて、図２５のステップＳ５１で決定された動きベクトルに基づいて、参照画像に動き予測と補償処理を行う。この動き予測と補償処理により、対象ブロックについて、参照ブロックの画素値により、各インター予測モードでの予測画像が生成され、対象ブロックとその予測画像の差分である１次差分が１次残差バッファ８１に出力される。
【０２４１】
ステップＳ７４において、隣接画素予測部８３は、図１３および図１４で上述した９種類のイントラ予測モードのうち、１つのイントラ予測モードを選択する。そして、ステップＳ７４において選択されたイントラ予測モードについて、以降のステップＳ７５およびＳ７６において、２次予測処理が行われる。
【０２４２】
すなわち、ステップＳ７５において、隣接画素予測部８３は、選択したイントラ予測モードで、差分を用いたイントラ予測処理を行い、ステップＳ７６において、２次残差生成部８２は、２次残差を生成する。
【０２４３】
ステップＳ７５の具体的な処理として、隣接画素予測部８３は、動き予測・補償部７５からの動きベクトル情報と対象ブロックの情報に基づいて、対象ブロックに隣接する対象隣接画素および参照ブロックに隣接する参照隣接画素をフレームメモリ７２から読み出す。
【０２４４】
隣接画素予測部８３は、選択したイントラ予測モードで、対象隣接画素と参照隣接画素の差分を用いて、対象ブロックについてイントラ予測を行い、差分によるイントラ予測画像を生成する。生成された差分によるイントラ予測画像（残差信号の予測画像）は、２次残差生成部８２に出力される。
【０２４５】
ステップＳ７６の具体的な処理として、２次残差生成部８２は、隣接画素予測部８３から、差分によるイントラ予測画像（残差信号の予測画像）が入力されると、それに対応する１次残差を、１次残差バッファ８１から読み出す。２次残差生成部８２は、１次残差と残差信号のイントラ予測画像との差分である２次残差を生成し、生成された２次残差を、スイッチ８４に出力する。スイッチ８４は、ステップＳ７２における判定結果に応じて、２次残差生成部８２からの２次残差を、動き予測・補償部７５に出力する。
【０２４６】
隣接画素予測部８３は、ステップＳ７７において、すべてのイントラ予測モードに対しての処理が終了したかを判定し、終了していないと判定した場合、ステップＳ７４に戻り、それ以降の処理を繰り返す。すなわち、ステップＳ７４において、他のイントラ予測モードが選択され、それ以降の処理が繰り返される。
【０２４７】
ステップＳ７７において、すべてのイントラ予測モードに対しての処理が終了したと判定された場合、処理は、ステップＳ８４に進む。
【０２４８】
一方、ステップＳ７２において、動きベクトル情報が水平および垂直ともに整数画素精度ではない、すなわち、どちらか一方が小数画素精度であると判定された場合、その判定結果は、スイッチ８４に出力され、処理は、ステップＳ７８に進む。
【０２４９】
ステップＳ７８において、動き予測・補償部７５は、１６×１６画素乃至４×４画素からなる８種類の各インター予測モードについて、図２５のステップＳ５１で決定された動きベクトルに基づいて、参照画像に動き予測と補償処理を行う。この動き予測と補償処理により、対象ブロックについて、各インター予測モードでの予測画像が生成され、対象ブロックとその予測画像の差分である１次差分が１次残差バッファ８１に出力される。
【０２５０】
隣接画素予測部８３は、ステップＳ７９において、図１３および図１４で上述した９種類のイントラ予測モードのうち、１つのイントラ予測モードを選択する。隣接画素予測部８３は、ステップＳ８０において、動きベクトル情報と選択したイントラ予測モードが特定の組み合わせであるか否かを判定する。
【０２５１】
ステップＳ８０において、動きベクトル情報と選択したイントラ予測モードが特定の組み合わせではないと判定された場合、処理は、ステップＳ７９に戻り、他のイントラ予測モードが選択され、それ以降の処理が繰り返される。
【０２５２】
また、ステップＳ８０において、動きベクトル情報と選択したイントラ予測モードが特定の組み合わせであると判定された場合、処理は、ステップＳ８１に進む。
【０２５３】
すなわち、隣接画素予測部８３は、水平方向または垂直方向の動きベクトルの精度が小数画素精度であるので、基本的には、ステップＳ８１およびＳ８２の処理である２次予測処理を行わない。ただし、隣接画素予測部８３においては、例外として、動きベクトルの精度とイントラ予測モードの組み合わせが、図８および図９を参照して上述した特定の組み合わせである場合のみ、２次予測処理が行われる。
【０２５４】
具体的には、垂直方向の動きベクトル情報が小数画素精度であったとしても、イントラ予測モードが垂直予測モードである場合には、ステップＳ８０において、特定の組み合わせであると判定され、処理は、ステップＳ８１に進む。すなわち、イントラ予測モードが垂直予測モードである場合には、水平方向の動きベクトル情報が整数画素精度でありさえすれば、２次予測処理が行われる。
【０２５５】
また、水平方向の動きベクトル情報が小数画素精度であったとしても、イントラ予測モードが水平予測モードである場合には、ステップＳ８０において、特定の組み合わせであると判定され、処理は、ステップＳ８１に進む。すなわち、イントラ予測モードが水平予測モードである場合には、垂直方向の動きベクトル情報が整数画素精度でありさえすれば、２次予測処理が行われる。
【０２５６】
さらに、水平方向または垂直方向の動きベクトル情報が小数画素精度であったとしても、イントラ予測モードがDC予測モードである場合には、ステップＳ８０において、特定の組み合わせであると判定され、処理は、ステップＳ８１に進む。すなわち、イントラ予測モードがDC予測モードである場合には、水平方向または垂直方向の動きベクトル情報がどちらも整数画素精度でなくてもで、２次予測処理が行われる。
【０２５７】
ステップＳ８１において、隣接画素予測部８３は、選択したイントラ予測モードで、差分を用いたイントラ予測処理を行う。生成された差分によるイントラ画像は、残差信号の予測画像として、２次残差生成部８２に出力される。
【０２５８】
ステップＳ８２において、２次残差生成部８２は、２次残差を生成する。生成された２次残差は、スイッチ８４に出力される。スイッチ８４は、ステップＳ７２における判定結果に応じて、２次残差生成部８２からの２次残差を、動き予測・補償部７５に出力する。なお、ステップＳ８１およびＳ８２の処理は、ステップＳ７５およびＳ７６の処理と同じ処理である。
【０２５９】
隣接画素予測部８３は、ステップＳ８３において、すべてのイントラ予測モードに対しての処理が終了したかを判定し、終了していないと判定した場合、ステップＳ７９に戻り、それ以降の処理を繰り返す。
【０２６０】
ステップＳ８３において、すべてのイントラ予測モードに対しての処理が終了したと判定された場合、処理は、ステップＳ８４に進む。
【０２６１】
ステップＳ８４において、動き予測・補償部７５は、２次予測部７６からの各イントラ予測モードの２次残差を比較し、その中で最も符号化効率がよいとされる２次残差のイントラ予測モードを、対象ブロックのイントラ予測モードとして決定する。すなわち、対象ブロックのイントラ予測モードとして、２次残差の値が最も小さいイントラ予測モードが決定される。
【０２６２】
ステップ８５において、動き予測・補償部７５は、さらに、決定されたイントラ予測モードの２次残差と１次残差を比較し、２次予測を用いるか否かを決定する。すなわち、２次残差の方が符号化効率がよいと判定された場合、２次予測を用いると決定され、インターする画像と２次残差の差分が、予測画像としてインター予測の候補となる。また、１次残差の方が符号化効率がよいと判定された場合、２次予測を用いないと決定され、ステップＳ７３またはＳ７８で求められた予測画像がインター予測の候補となる。
【０２６３】
すなわち、２次残差が１次残差より、より高い符号化効率を与える場合のみ、２次残差が符号化されて、復号側に送られる。
【０２６４】
なお、ステップＳ８５においては、残差そのものの値を比較し、値の小さいものを符号化効率がよいとして判定してもよいし、上述した式（７１）または式（７２）で示されるコスト関数値を算出することで符号化効率がよいものを判定するようにしてもよい。
【０２６５】
一方、ステップＳ７１において、動きベクトル情報が、水平および垂直ともに小数画素精度であると判定された場合、その判定結果は、スイッチ８４に出力され、処理は、ステップＳ８６に進む。
【０２６６】
ステップＳ８６において、動き予測・補償部７５は、１６×１６画素乃至４×４画素からなる８種類の各インター予測モードについて、図２５のステップＳ５１で決定された動きベクトルに基づいて、参照画像に動き予測と補償処理を行う。この動き予測と補償処理により、各インター予測モードでの予測画像が生成され、インター予測の候補となる。
【０２６７】
なお、図２６の例においては、動きベクトル情報の精度とともに、イントラ予測モードに応じて２次予測処理を行うか否かを判定する例を説明したが、もちろん、動きベクトル情報の精度だけに応じて２次予測処理を行うか否かを判定することも可能である。
【０２６８】
また、図２６の例においては、水平および垂直方向の動きベクトル情報がどちらも小数画素精度である場合、２次予測処理を行わない例を説明したが、この場合にも、イントラ予測モードがDC予測モードであれば、２次予測を行うようにすることも可能である。
【０２６９】
以上のように、動きベクトル情報の精度が小数画素精度である場合、２次予測を行わないようにしたので、２次予測に伴う符号化効率の低下を抑制することができる。
【０２７０】
また、動きベクトル情報の精度と２次予測のイントラ予測モードが特定の組み合わせの場合には、動きベクトル情報の精度が小数画素精度であったとしても、その組み合わせに応じて、２次予測を行うようにしたので、符号化効率を向上させることができる。
【０２７１】
符号化された圧縮画像は、所定の伝送路を介して伝送され、画像復号装置により復号される。
【０２７２】
［画像復号装置の構成例］
図２７は、本発明を適用した画像処理装置としての画像復号装置の一実施の形態の構成を表している。
【０２７３】
画像復号装置１０１は、蓄積バッファ１１１、可逆復号部１１２、逆量子化部１１３、逆直交変換部１１４、演算部１１５、デブロックフィルタ１１６、画面並べ替えバッファ１１７、Ｄ／Ａ変換部１１８、フレームメモリ１１９、スイッチ１２０、イントラ予測部１２１、動き予測・補償部１２２、２次予測部１２３、およびスイッチ１２４により構成されている。
【０２７４】
蓄積バッファ１１１は伝送されてきた圧縮画像を蓄積する。可逆復号部１１２は、蓄積バッファ１１１より供給された、図２の可逆符号化部６６により符号化された情報を、可逆符号化部６６の符号化方式に対応する方式で復号する。逆量子化部１１３は可逆復号部１１２により復号された画像を、図２の量子化部６５の量子化方式に対応する方式で逆量子化する。逆直交変換部１１４は、図２の直交変換部６４の直交変換方式に対応する方式で逆量子化部１１３の出力を逆直交変換する。
【０２７５】
逆直交変換された出力は演算部１１５によりスイッチ１２４から供給される予測画像と加算されて復号される。デブロックフィルタ１１６は、復号された画像のブロック歪を除去した後、フレームメモリ１１９に供給し、蓄積させるとともに、画面並べ替えバッファ１１７に出力する。
【０２７６】
画面並べ替えバッファ１１７は、画像の並べ替えを行う。すなわち、図２の画面並べ替えバッファ６２により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。Ｄ／Ａ変換部１１８は、画面並べ替えバッファ１１７から供給された画像をＤ／Ａ変換し、図示せぬディスプレイに出力し、表示させる。
【０２７７】
スイッチ１２０は、インター処理される画像と参照される画像をフレームメモリ１１９から読み出し、動き予測・補償部１２２に出力するとともに、イントラ予測に用いられる画像をフレームメモリ１１９から読み出し、イントラ予測部１２１に供給する。
【０２７８】
イントラ予測部１２１には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報が可逆復号部１１２から供給される。イントラ予測部１２１は、この情報に基づいて、予測画像を生成し、生成した予測画像を、スイッチ１２４に出力する。
【０２７９】
動き予測・補償部１２２には、ヘッダ情報を復号して得られた情報のうち、予測モード情報、動きベクトル情報、参照フレーム情報などが可逆復号部１１２から供給される。インター予測モードを示す情報が供給された場合、動き予測・補償部１２２は、動きベクトル情報が整数画素精度であるか否かを判定する。なお、動き予測・補償部１２２には、対象ブロックに対して２次予測処理が適用されている場合には、２次予測を行うことを示す２次予測フラグと、２次予測におけるイントラ予測モード情報も可逆復号部１２２から供給される。
【０２８０】
動きベクトル情報が整数画素精度である場合、さらに、動き予測・補償部１２２は、可逆復号部１１２からの２次予測フラグを参照して、２次予測処理が適用されているか否かを判定する。動き予測・補償部１２２は、２次予測処理が適用されていると判定した場合、２次予測部１２３を制御し、２次予測におけるイントラ予測モード情報が示すイントラ予測モードで、２次予測を行わせる。
【０２８１】
動き予測・補償部１２２は、動きベクトル情報と参照フレーム情報に基づいて画像に動き予測と補償処理を施し、予測画像を生成する。すなわち、対象ブロックの予測画像は、参照フレームにおいて、対象ブロックに動きベクトルで対応付けられる参照ブロックの画素値が用いられて生成される。そして、動き予測・補償部１２２は、生成された予測画像と２次予測部１２３からの予測差分値を加算して、それをスイッチ１２４に出力する。
【０２８２】
一方、動きベクトル情報が小数画素精度である場合、または、２次予測処理が適用されていない場合、動き予測・補償部１２２は、動きベクトル情報と参照フレーム情報に基づいて画像に動き予測と補償処理を施し、予測画像を生成する。動き予測・補償部１２２は、インター予測モードにより生成された予測画像をスイッチ１２４に出力する。
【０２８３】
２次予測部１２３は、フレームメモリ１１９から読み出される対象隣接画素と参照隣接画素の差分を用いて、２次予測を行う。すなわち、２次予測部１２３は、可逆復号部１１２から供給される２次予測におけるイントラ予測モードの情報を取得し、その情報が示すイントラ予測モードで、対象ブロックについてイントラ予測を行い、イントラ予測画像を生成する。生成されたイントラ予測画像は、予測差分値として、動き予測・補償部１２２に出力される。
【０２８４】
スイッチ１２４は、動き予測・補償部１２２またはイントラ予測部１２１により生成された予測画像（または、予測画像と予測差分値）を選択し、演算部１１５に供給する。
【０２８５】
［２次予測部の構成例］
図２８は、２次予測部の詳細な構成例を示すブロック図である。
【０２８６】
図２８の例においては、２次予測部１２３は、対象ブロックに対する隣接画素バッファ１４１、参照ブロックに対する隣接画素バッファ１４２、隣接画素差分算出部１４３、および予測差分値生成部１４４により構成される。
【０２８７】
動き予測・補償部１２２は、動きベクトル情報が整数画素精度である場合、対象ブロックの情報（アドレス）を、対象ブロックに対する隣接画素バッファ１４１に供給し、参照ブロックの情報（アドレス）を、参照ブロックに対する隣接画素バッファ１４２に供給する。なお、参照ブロックに対する隣接画素バッファ１４２に供給される情報は、対象ブロックの情報と動きベクトル情報であってもよい。
【０２８８】
対象ブロックに対する隣接画素バッファ１４１には、対象ブロックのアドレスに対応して、対象ブロックに対する隣接画素がフレームメモリ１１９から読み出され、蓄積される。
【０２８９】
参照ブロックに対する隣接画素バッファ１４２には、参照ブロックのアドレスに対応して、参照ブロックに対する隣接画素がフレームメモリ１１９から読み出され、蓄積される。
【０２９０】
隣接画素差分算出部１４３は、対象ブロックに対する隣接画素バッファ１４１から、対象ブロックに対する隣接画素を読み出す。また、隣接画素差分算出部１４３は、参照ブロックに対する隣接画素バッファ１４２から、対象ブロックに動きベクトルで対応付けられる参照ブロックに対する隣接画素を読み出す。隣接画素差分算出部１４３は、対象ブロックに対する隣接画素と参照ブロックに対する隣接画素との差分である隣接画素差分値を、図示せぬ内蔵バッファに蓄積する。
【０２９１】
予測差分値生成部１４４は、可逆復号部１１２から取得される２次予測におけるイントラ予測モードで、隣接画素差分算出部１４３の内蔵バッファに蓄積された隣接画素差分値を用いて、２次予測として、イントラ予測を行い、予測差分値を生成する。予測差分値生成部１４４は、生成した予測差分値を、動き予測・補償部１２２に出力する。
【０２９２】
なお、図２８の例の予測差分値生成部１４４における２次予測としてイントラ予測を行う回路は、イントラ予測部１２１との回路を共用することが可能である。
【０２９３】
次に、動き予測・補償部１２２および２次予測部１２３の動作を説明する。
【０２９４】
動き予測・補償部１２２は、対象ブロックに関する動きベクトル情報を取得する。この値が小数画素精度である場合、対象ブロックに対しては２次予測が行われてないため、通常のインター予測処理が行われる。
【０２９５】
一方、動きベクトル情報の値が整数画素精度である場合、対象ブロックに対して２次予測がおこなわれているかどうかは、可逆復号部１１２により復号される２次予測フラグにより判定される。２次予測が行われている場合には、画像復号装置１０１において、２次予測に基づくインター予測処理が行われ、２次予測が行われていない場合には、画像復号装置１０１において、通常のインター予測処理が行われる。
【０２９６】
ここで、対象ブロックの画素値[A]、参照ブロックの画素値[A']、対象ブロックの隣接画素値［B］、および参照ブロックの隣接画素値[B']とする。また、modeを９種類のイントラ予測モードのうちのどれかであるとして、イントラ予測によって生成される値を、Ipred(X)[mode]と表すとすると、画像符号化装置５１において符号化される２次残差[Res]は、次の式（７３）で表される。
[Res] = (A-A') - Ipred(B-B')[mode]                              ・・・（７３）
【０２９７】
この式（７３）を変形すると、式（７４）になる。
A = [Res] + A' + Ipred(B-B')[mode]                              ・・・（７４）
【０２９８】
すなわち、画像復号装置１０１において、予測差分値Ipred(B-B')[mode]は、２次予測部１２３において生成されて、動き予測・補償部１２２に出力される。また、参照ブロックの画素値[A']は、動き予測・補償部１２２において生成される。そして、これらが、演算部１１５に出力され、２次残差[Res]と加算され、その結果、式（７４）に示されるように、対象ブロックの画素値[A]が求められる。
【０２９９】
［画像復号装置の復号処理の説明］
次に、図２９のフローチャートを参照して、画像復号装置１０１が実行する復号処理について説明する。
【０３００】
ステップＳ１３１において、蓄積バッファ１１１は伝送されてきた画像を蓄積する。ステップＳ１３２において、可逆復号部１１２は、蓄積バッファ１１１から供給される圧縮画像を復号する。すなわち、図２の可逆符号化部６６により符号化されたＩピクチャ、Ｐピクチャ、並びにＢピクチャが復号される。
【０３０１】
このとき、符号化されていれば、動きベクトル情報、参照フレーム情報、予測モード情報、２次予測フラグ、および２次予測におけるイントラ予測モードを示す情報なども復号される。
【０３０２】
すなわち、予測モード情報がイントラ予測モード情報である場合、予測モード情報は、イントラ予測部１２１に供給される。予測モード情報がインター予測モード情報である場合、予測モード情報と対応する動きベクトル情報および参照フレーム情報は、動き予測・補償部１２２に供給される。このとき、図２の可逆符号化部６６により符号化されていれば、２次予測フラグは、動き予測・補償部１２２に供給され、２次予測におけるイントラ予測モードを示す情報は、２次予測部１２３に供給される。
【０３０３】
ステップＳ１３３において、逆量子化部１１３は可逆復号部１１２により復号された変換係数を、図２の量子化部６５の特性に対応する特性で逆量子化する。ステップＳ１３４において逆直交変換部１１４は逆量子化部１１３により逆量子化された変換係数を、図２の直交変換部６４の特性に対応する特性で逆直交変換する。これにより図２の直交変換部６４の入力（演算部６３の出力）に対応する差分情報が復号されたことになる。
【０３０４】
ステップＳ１３５において、演算部１１５は、後述するステップＳ１４１の処理で選択され、スイッチ１２４を介して入力される予測画像を差分情報と加算する。これにより元の画像が復号される。ステップＳ１３６においてデブロックフィルタ１１６は、演算部１１５より出力された画像をフィルタリングする。これによりブロック歪みが除去される。ステップＳ１３７においてフレームメモリ１１９は、フィルタリングされた画像を記憶する。
【０３０５】
ステップＳ１３８において、イントラ予測部１２１または動き予測・補償部１２２、は、可逆復号部１１２から供給される予測モード情報に対応して、それぞれ画像の予測処理を行う。
【０３０６】
すなわち、可逆復号部１１２からイントラ予測モード情報が供給された場合、イントラ予測部１２１は、イントラ予測モードのイントラ予測処理を行う。可逆復号部１１２からインター予測モード情報が供給された場合、動き予測・補償部１２２は、インター予測モードの動き予測・補償処理を行う。なお、このとき、動き予測・補償部１２２においては、動きベクトル情報の精度や２次予測フラグを参照して、２次予測に基づくインター予測処理、または通常のインター予測処理が行われる。
【０３０７】
ステップＳ１３８における予測処理の詳細は、図３０を参照して後述する。この処理により、イントラ予測部１２１により生成された予測画像または動き予測・補償部１２２により生成された予測画像（あるいは予測画像と予測差分値）がスイッチ１２４に供給される。
【０３０８】
ステップＳ１３９において、スイッチ１２４は予測画像を選択する。すなわち、イントラ予測部１２１により生成された予測画像、または動き予測・補償部１２２により生成された予測画像が供給される。したがって、供給された予測画像が選択されて演算部１１５に供給され、上述したように、ステップＳ１３４において逆直交変換部１１４の出力と加算される。
【０３０９】
ステップＳ１４０において、画面並べ替えバッファ１１７は並べ替えを行う。すなわち画像符号化装置５１の画面並べ替えバッファ６２により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
【０３１０】
ステップＳ１４１において、Ｄ／Ａ変換部１１８は、画面並べ替えバッファ１１７からの画像をＤ／Ａ変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
【０３１１】
［予測処理の説明］
次に、図３０のフローチャートを参照して、図２９のステップＳ１３８の予測処理を説明する。
【０３１２】
イントラ予測部１２１は、ステップＳ１７１において、対象ブロックがイントラ符号化されているか否かを判定する。可逆復号部１１２からイントラ予測モード情報がイントラ予測部１２１に供給されると、イントラ予測部１２１は、ステップ１７１において、対象ブロックがイントラ符号化されていると判定し、処理は、ステップＳ１７２に進む。
【０３１３】
イントラ予測部１２１は、ステップＳ１７２において、イントラ予測モード情報を取得し、ステップＳ１７３において、イントラ予測を行う。
【０３１４】
すなわち、処理対象の画像がイントラ処理される画像である場合、必要な画像がフレームメモリ１１９から読み出され、スイッチ１２０を介してイントラ予測部１２１に供給される。ステップＳ１７３において、イントラ予測部１２１は、ステップＳ１７２で取得したイントラ予測モード情報に従ってイントラ予測し、予測画像を生成する。生成した予測画像は、スイッチ１２４に出力される。
【０３１５】
一方、ステップＳ１７１において、イントラ符号化されていないと判定された場合、処理は、ステップＳ１７４に進む。
【０３１６】
ステップＳ１７４において、動き予測・補償部１２２は、可逆復号部１１２からの予測モード情報などを取得する。
【０３１７】
処理対象の画像がインター処理される画像である場合、可逆復号部１１２からインター予測モード情報、参照フレーム情報、動きベクトル情報が動き予測・補償部１２２に供給される。この場合、ステップＳ１７４において、動き予測・補償部１２２は、インター予測モード情報、参照フレーム情報、動きベクトル情報を取得する。
【０３１８】
動き予測・補償部１２２は、取得した動きベクトル情報を参照して、ステップＳ１７５において、対象ブロックについての動きベクトル情報は整数画素精度であるか否かを判定する。なお、いまの場合、水平および垂直方向のどちらか一方の動きベクトル情報が整数画素精度であれば、ステップＳ１７５において、整数画素精度であると判定されるものとする。
【０３１９】
ステップＳ１７５において、対象ブロックについての動きベクトル情報が整数画素精度ではないと判定された場合、すなわち、水平および垂直方向の両方の動きベクトル情報が、小数画素精度であると判定され、処理は、ステップＳ１７６に進む。
【０３２０】
ステップＳ１７６において、動き予測・補償部１２２は、通常のインター予測を行う。すなわち、処理対象の画像がインター予測処理される画像である場合、必要な画像がフレームメモリ１６９から読み出され、スイッチ１７０を介して動き予測・補償部１２２に供給される。ステップＳ１７６において動き予測・補償部１２２は、ステップＳ１７４で取得した動きベクトルに基づいて、インター予測モードの動き予測をし、予測画像を生成する。生成した予測画像は、スイッチ１２４に出力される。
【０３２１】
また、ステップＳ１７５において、対象ブロックについての動きベクトル情報が整数画素精度であると判定された場合、処理は、ステップＳ１７７に進む。
【０３２２】
なお、画像符号化装置５１により符号化されていれば、２次予測フラグが動き予測・補償部１２２に供給され、２次予測におけるイントラ予測モードを示す情報が２次予測部１２３に供給される。
【０３２３】
動き予測・補償部１２２は、ステップＳ１７７において、可逆復号部１１２から供給された２次予測フラグを取得し、ステップＳ１７８において、対象ブロックに対して２次予測処理が適用されているか否かを判定する。
【０３２４】
ステップＳ１７８において、対象ブロックに対して２次予測処理が適用されていないと判定された場合、処理は、ステップＳ１７６に進み、通常のインター予測処理が行われる。ステップＳ１７８において、対象ブロックに対して２次予測処理が適用されていると判定された場合、処理は、ステップＳ１７９に進む。
【０３２５】
動き予測・補償部１２２は、ステップＳ１７９において、２次予測部１２３に、可逆復号部１１２から供給された２次予測におけるイントラ予測モードを示す情報を取得させる。これに対応して、２次予測部１２３は、ステップＳ１８０において、２次予測に基づくインター予測処理として、２次インター予測処理を行う。この２次インター予測処理は、図３１を参照して後述する。
【０３２６】
ステップＳ１８０の処理により、インター予測が行われて予測画像が生成されるとともに、２次予測が行われて予測差分値が生成され、それらが加算されて、スイッチ１２４に出力される。
【０３２７】
次に、図３１のフローチャートを参照して、図３０のステップＳ１８０における２次インター予測処理について説明する。
【０３２８】
ステップＳ１９１において、動き予測・補償部１２２は、図３０のステップＳ１７４で取得した動きベクトルに基づいて、インター予測モードの動き予測をし、予測画像を生成する。
【０３２９】
また、動き予測・補償部１２２は、対象ブロックのアドレスを、対象ブロックに対する隣接画素バッファ１４１に供給し、参照ブロックのアドレスを、参照ブロックに対する隣接画素バッファ１４２に供給する。対象ブロックに対する隣接画素バッファ１４１には、対象ブロックのアドレスに対応して、対象ブロックに対する隣接画素がフレームメモリ１１９から読み出され、蓄積される。参照ブロックに対する隣接画素バッファ１４２には、参照ブロックのアドレスに対応して、参照ブロックに対する隣接画素がフレームメモリ１１９から読み出され、蓄積される。
【０３３０】
隣接画素差分算出部１４３は、対象ブロックに対する隣接画素バッファ１４１から、対象ブロックに対する隣接画素を読み出し、参照ブロックに対する隣接画素バッファ１４２から、対象ブロックに対応する参照ブロックに対する隣接画素を読み出す。ステップＳ１９２において、隣接画素差分算出部１４３は、対象ブロックに対する隣接画素と参照ブロックに対する隣接画素との差分である隣接画素差分値を算出し、内蔵するバッファに蓄積する。
【０３３１】
ステップＳ１９３において、予測差分値生成部１４４は、予測差分値を生成する。すなわち、予測差分値生成部１４４は、図３０のステップＳ１７９において取得された２次予測におけるイントラ予測モードで、隣接画素差分算出部１４３のバッファに蓄積された隣接画素差分値を用いて、イントラ予測を行い、予測差分値を生成する。生成された予測差分値は、動き予測・補償部１２２に出力される。
【０３３２】
ステップＳ１９４において、動き予測・補償部１２２は、ステップＳ１９１において生成した予測画像と、予測差分値生成部１４４からの予測差分値を加算し、スイッチ１２４に出力する。
【０３３３】
この予測画像と予測差分値は、図２９のステップＳ１３９においてスイッチ１２４により、予測画像として演算部１１５に出力される。そして、この予測画像と予測差分値が、図２９のステップＳ１３５において、演算部１１５により、逆直交変換部１１４からの差分情報と加算されることで、対象ブロックの画像が復号される。
【０３３４】
以上のように、画像符号化装置５１および画像復号装置１０１において、動きベクトルの精度が小数画素精度の場合には、２次予測を行わないようにしたので、２次予測に伴う符号化効率の低下を抑制することができる。
【０３３５】
また、小数画素精度の場合には、２次予測フラグを送る必要がないので、２次予測の場合の符号化効率を向上させることができる。さらに、小数画素精度の場合には、２次予測フラグを見に行く必要がないので、その処理を減らすことができ、画像復号装置１０１の処理効率が上がる。
【０３３６】
なお、上記説明においては、H．264/AVC方式のイントラ４×４予測モードを例に説明したが、本発明は、これに限らず、ブロックベースの動き予測・補償を行うあらゆる符号化装置および復号装置について適用可能である。また、本発明は、イントラ８×８予測モード、イントラ１６×１６予測モード、および色差信号に対するイントラ予測モードへの適用も可能である。
【０３３７】
さらに、本発明は、H．264/AVC方式のように、１／４画素精度の動き予測を行う場合のみならず、MPEGのように、１／２画素精度の動き予測を行う場合にも適用することができる。あるいは、本発明は、非特許文献１に記載のように、１／８画素精度の動き予測を行う場合にも適用することができる。
【０３３８】
以上においては、符号化方式としてH．264/AVC方式を用いるようにしたが、その他の符号化方式／復号方式を用いることもできる。
【０３３９】
なお、本発明は、例えば、MPEG、H．26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報（ビットストリーム）を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本発明は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本発明は、それらの画像符号化装置および画像復号装置などに含まれる動き予測補償装置にも適用することができる。
【０３４０】
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
【０３４１】
図３２は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【０３４２】
コンピュータにおいて、CPU(Central Processing Unit)３０１、ROM(Read Only Memory)３０２、RAM(Random Access Memory)３０３は、バス３０４により相互に接続されている。
【０３４３】
バス３０４には、さらに、入出力インタフェース３０５が接続されている。入出力インタフェース３０５には、入力部３０６、出力部３０７、記憶部３０８、通信部３０９、およびドライブ３１０が接続されている。
【０３４４】
入力部３０６は、キーボード、マウス、マイクロフォンなどよりなる。出力部３０７は、ディスプレイ、スピーカなどよりなる。記憶部３０８は、ハードディスクや不揮発性のメモリなどよりなる。通信部３０９は、ネットワークインタフェースなどよりなる。ドライブ３１０は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア３１１を駆動する。
【０３４５】
以上のように構成されるコンピュータでは、CPU３０１が、例えば、記憶部３０８に記憶されているプログラムを入出力インタフェース３０５及びバス３０４を介してRAM３０３にロードして実行することにより、上述した一連の処理が行われる。
【０３４６】
コンピュータ（CPU３０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア３１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供することができる。
【０３４７】
コンピュータでは、プログラムは、リムーバブルメディア３１１をドライブ３１０に装着することにより、入出力インタフェース３０５を介して、記憶部３０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部３０９で受信し、記憶部３０８にインストールすることができる。その他、プログラムは、ROM３０２や記憶部３０８に、あらかじめインストールしておくことができる。
【０３４８】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０３４９】
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０３５０】
５１  画像符号化装置，  ６６  可逆符号化部，  ７４  イントラ予測部，  ７５  動き予測・補償部，  ７６  ２次予測部，  ７７  動きベクトル精度判定部，  ７８  予測画像選択部，  ８１  １次残差バッファ，  ８２  ２次残差生成部，  ８３  隣接画素予測部，  ８４  スイッチ，  １０１  画像復号装置，  １１２  可逆復号部，  １２１  イントラ予測部，  １２２  動き予測・補償部，  １２３  ２次予測部，  １２４  スイッチ，  １４１  対象ブロックに対する隣接画素バッファ，  １４２  参照ブロックに対する隣接画素バッファ，  １４３  隣接画素差分算出部，  １４４  予測差分値生成部
【図１】
2010258739.tif 000018
【図２】
2010258739.tif 000019
【図３】
2010258739.tif 000020
【図４】
2010258739.tif 000021
【図５】
2010258739.tif 000022
【図６】
2010258739.tif 000023
【図７】
2010258739.tif 000024
【図８】
2010258739.tif 000025
【図９】
2010258739.tif 000026
【図１０】
2010258739.tif 000027
【図１１】
2010258739.tif 000028
【図１２】
2010258739.tif 000029
【図１３】
2010258739.tif 000030
【図１４】
2010258739.tif 000031
【図１５】
2010258739.tif 000032
【図１６】
2010258739.tif 000033
【図１７】
2010258739.tif 000034
【図１８】
2010258739.tif 000035
【図１９】
2010258739.tif 000036
【図２０】
2010258739.tif 000037
【図２１】
2010258739.tif 000038
【図２２】
2010258739.tif 000039
【図２３】
2010258739.tif 000040
【図２４】
2010258739.tif 000041
【図２５】
2010258739.tif 000042
【図２６】
2010258739.tif 000043
【図２７】
2010258739.tif 000044
【図２８】
2010258739.tif 000045
【図２９】
2010258739.tif 000046
【図３０】
2010258739.tif 000047
【図３１】
2010258739.tif 000048
【図３２】
2010258739.tif 000049