(57)【要約】【課題】参照ブロックに隣接する隣接画素が画枠外に存在する場合にも２次予測を行うことができるようにする。【解決手段】参照隣接画素決定部８３には、参照隣接判定部７７から、参照隣接画素が参照フレームの画枠内に存在するか否かの判定結果が入力される。参照隣接画素決定部８３は、参照隣接画素が参照フレームの画枠内に存在する場合、隣接画素の画素値をH．264/AVC方式の定義に基づき決定する。一方、参照隣接画素決定部８３は、参照隣接画素が参照フレームの画枠内に存在しない場合、存在しない隣接画素について端点処理を行って、参照隣接画素の画素値を決定する。本発明は、例えば、H．264/AVC方式で符号化する画像符号化装置に適用することができる。【選択図】図８
2010258741.tif 000002
【特許請求の範囲】
【請求項１】
対象フレームにおける対象ブロックのアドレス、参照フレームにおいて前記対象ブロックについて検出された動きベクトル情報、および前記対象ブロックに隣接する対象隣接画素の相対アドレスを用いて、前記参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素が画枠内に存在するか否かを判定する参照隣接判定手段と、
前記参照隣接画素判定手段により前記参照隣接画素が前記画枠内に存在しないと判定された場合、前記参照隣接画素に対して端点処理を行い、前記対象ブロックと前記参照ブロックとの差分情報および前記対象隣接画素と前記端点処理が行われた前記参照隣接画素との差分情報の間で予測を行うことで２次差分情報を生成する２次予測手段と、
前記２次予測手段により生成された前記２次差分情報を符号化する符号化手段と
を備える画像処理装置。
【請求項２】
前記参照隣接判定手段は、前記対象ブロックのアドレス(x,y)、前記動きベクトル情報(dx,dy)、前記対象隣接画素の相対アドレス(δx,δy)として、前記参照隣接画素の相対アドレス(x+dx+δx,y+dy+δy)を算出し、算出した前記参照隣接画素の相対アドレス(x+dx+δx,y+dy+δy)が前記画枠内に存在するか否かを判定する
請求項１に記載の画像処理装置。
【請求項３】
前記２次予測手段は、画素値がｎビットで表される場合、
x+dx+δx < 0 、または、y+dy+δy < 0 
が成り立つ前記参照隣接画素に対して、その画素値を２n-1とする前記端点処理を行う
請求項２に記載の画像処理装置。
【請求項４】
前記２次予測手段は、前記画枠の水平方向の画素数をWIDTHとして、
x+dx+δx > WIDTH - 1 
が成り立つ場合、前記参照隣接画素の画素値として、アドレス(WIDTH - 1, y+dy+δy)により指し示される画素値を用いる前記端点処理を行う
請求項２に記載の画像処理装置。
【請求項５】
前記２次予測手段は、前記画枠の垂直方向の画素数をHEIGHTとして、
y+dy+δy > HEIGHT - 1 
が成り立つ場合、前記参照隣接画素の画素値として、アドレス(x+dx+δx, HEIGHT - 1)により指し示される画素値を用いる前記端点処理を行う
請求項２に記載の画像処理装置。
【請求項６】
前記２次予測手段は、前記画枠の水平方向の画素数をWIDTHとし、前記画枠の垂直方向の画素数をHEIGHTとして、
x+dx+δx > WIDTH - 1 、かつ、y+dy+δy > HEIGHT - 1 
が成り立つ場合、前記参照隣接画素の画素値として、アドレス(WIDTH - 1, HEIGHT - 1)により指し示される画素値を用いる前記端点処理を行う
請求項２に記載の画像処理装置。
【請求項７】
前記２次予測手段は、前記画枠内に存在しない前記参照隣接画素に対して、前記画枠の境界を対称にして鏡像処理により画素値を生成する前記端点処理を行う
請求項２に記載の画像処理装置。
【請求項８】
前記２次予測手段は、
前記参照隣接画素判定手段により前記参照隣接画素が前記画枠内に存在しないと判定された場合、前記参照隣接画素に対して端点処理を行う参照隣接画素決定手段と、
前記対象隣接画素と前記端点処理が行われた前記参照隣接画素との差分情報を用いて予測を行い、前記対象ブロックに対するイントラ予測画像を生成する隣接画素予測手段と、
前記対象ブロックと前記参照ブロックとの差分情報、および前記隣接画素予測手段により生成された前記イントラ予測画像を差分して、前記２次差分情報を生成する２次差分生成手段と
を備える請求項１に記載の画像処理装置。
【請求項９】
前記２次予測手段は、前記参照隣接画素判定手段により前記参照隣接画素が前記画枠内に存在すると判定された場合、前記対象ブロックと前記参照ブロックとの差分情報および前記対象隣接画素と前記参照隣接画素との差分情報の間で予測を行うことで２次差分情報を生成する
請求項１に記載の画像処理装置。
【請求項１０】
画像処理装置が、
対象フレームにおける対象ブロックのアドレス、参照フレームにおいて前記対象ブロックについて検出された動きベクトル情報、および前記対象ブロックに隣接する対象隣接画素の相対アドレスを用いて、前記参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素が画枠内に存在するか否かを判定し、
前記参照隣接画素が前記画枠内に存在しないと判定された場合、前記参照隣接画素に対して端点処理を行い、前記対象ブロックと前記参照ブロックとの差分情報および前記対象隣接画素と前記端点処理が行われた前記参照隣接画素との差分情報の間で予測を行うことで２次差分情報を生成し、
生成された前記２次差分情報を符号化するステップを
含む画像処理方法。
【請求項１１】
対象フレームにおける対象ブロックのアドレス、参照フレームにおいて前記対象ブロックについて検出された動きベクトル情報、および前記対象ブロックに隣接する対象隣接画素の相対アドレスを用いて、前記参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素が画枠内に存在するか否かを判定し、
前記参照隣接画素が前記画枠内に存在しないと判定された場合、前記参照隣接画素に対して端点処理を行い、前記対象ブロックと前記参照ブロックとの差分情報および前記対象隣接画素と前記端点処理が行われた前記参照隣接画素との差分情報の間で予測を行うことで２次差分情報を生成し、
生成された前記２次差分情報を符号化するステップを
含む処理をコンピュータに行わせるためのプログラム。
【請求項１２】
符号化された対象フレームにおける対象ブロックの画像と、参照フレームにおいて前記対象ブロックに対して検出された動きベクトル情報を復号する復号手段と、
前記対象ブロックのアドレス、前記動きベクトル情報、および前記対象ブロックに隣接する対象隣接画素の相対アドレスを用いて、前記参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素が画枠内に存在するか否かを判定する参照隣接判定手段と、
前記参照隣接判定手段により前記参照隣接画素が前記画枠内に存在しないと判定された場合、前記参照隣接画素に対して端点処理を行い、前記対象隣接画素と前記端点処理が行われた前記参照隣接画素との差分情報を用いて２次予測を行うことで予測画像を生成する２次予測手段と、
前記対象ブロックの画像、前記２次予測手段により生成された前記予測画像、および前記動きベクトル情報から求められる前記参照ブロックの画像を加算して、前記対象ブロックの復号画像を生成する演算手段と
を備える画像処理装置。
【請求項１３】
前記参照隣接判定手段は、前記対象ブロックのアドレス(x,y)、前記動きベクトル情報(dx,dy)、前記対象隣接画素の相対アドレス(δx,δy)として、前記参照隣接画素の相対アドレス(x+dx+δx,y+dy+δy)を算出し、算出した前記参照隣接画素の相対アドレス(x+dx+δx,y+dy+δy)が前記画枠内に存在するか否かを判定する
請求項１２に記載の画像処理装置。
【請求項１４】
前記２次予測手段は、画素値がｎビットで表される場合、
x+dx+δx < 0 、または、y+dy+δy < 0 
が成り立つ前記参照隣接画素に対して、その画素値を２n-1とする前記端点処理を行う
請求項１３に記載の画像処理装置。
【請求項１５】
前記２次予測手段は、前記画枠の水平方向の画素数をWIDTHとして、
x+dx+δx > WIDTH - 1 
が成り立つ場合、前記参照隣接画素の画素値として、アドレス(WIDTH - 1, y+dy+δy)により指し示される画素値を用いる前記端点処理を行う
請求項１３に記載の画像処理装置。
【請求項１６】
前記２次予測手段は、前記画枠の垂直方向の画素数をHEIGHTとして、
y+dy+δy > HEIGHT - 1 
が成り立つ場合、前記参照隣接画素の画素値として、アドレス(x+dx+δx, HEIGHT - 1)により指し示される画素値を用いる前記端点処理を行う
請求項１３に記載の画像処理装置。
【請求項１７】
前記２次予測手段は、前記画枠の水平方向の画素数をWIDTHとし、前記画枠の垂直方向の画素数をHEIGHTとして、
x+dx+δx > WIDTH - 1 、かつ、y+dy+δy > HEIGHT - 1 
が成り立つ場合、前記参照隣接画素の画素値として、アドレス(WIDTH - 1, HEIGHT - 1)により指し示される画素値を用いる前記端点処理を行う
請求項１３に記載の画像処理装置。
【請求項１８】
前記２次予測手段は、前記画枠内に存在しない前記参照隣接画素に対して、前記画枠の境界を対称にして鏡像処理により画素値を生成する前記端点処理を行う
請求項１３に記載の画像処理装置。
【請求項１９】
前記２次予測手段は、
前記参照隣接画素判定手段により前記参照隣接画素が前記画枠内に存在しないと判定された場合、前記参照隣接画素に対して端点処理を行う参照隣接画素決定手段と、
前記対象隣接画素と前記端点処理が行われた前記参照隣接画素との差分情報を用いて２次予測を行うことで予測画像を生成する予測画像生成手段と
を備える請求項１２に記載の画像処理装置。
【請求項２０】
前記２次予測手段は、前記参照隣接画素判定手段により前記参照隣接画素が前記画枠内に存在すると判定された場合、前記対象隣接画素と前記参照隣接画素との差分情報を用いて予測を行い、前記予測画像を生成する
請求項１２に記載の画像処理装置。
【請求項２１】
画像処理装置が、
符号化された対象フレームにおける対象ブロックの画像と、参照フレームにおいて前記対象ブロックに対して検出された動きベクトル情報を復号し、
前記対象ブロックのアドレス、前記動きベクトル情報、および前記対象ブロックに隣接する対象隣接画素の相対アドレスを用いて、前記参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素が画枠内に存在するか否かを判定し、
前記参照隣接画素が前記画枠内に存在しないと判定された場合、前記参照隣接画素に対して端点処理を行い、前記対象隣接画素と前記端点処理が行われた前記参照隣接画素との差分情報を用いて２次予測を行うことで予測画像を生成し、
前記対象ブロックの画像、生成された前記予測画像、および前記動きベクトル情報から求められる前記参照ブロックの画像を加算して、前記対象ブロックの復号画像を生成するステップを
含む画像処理方法。
【請求項２２】
符号化された対象フレームにおける対象ブロックの画像と、参照フレームにおいて前記対象ブロックに対して検出された動きベクトル情報を復号し、
前記対象ブロックのアドレス、前記動きベクトル情報、および前記対象ブロックに隣接する対象隣接画素の相対アドレスを用いて、前記参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素が画枠内に存在するか否かを判定し、
前記参照隣接画素が前記画枠内に存在しないと判定された場合、前記参照隣接画素に対して端点処理を行い、前記対象隣接画素と前記端点処理が行われた前記参照隣接画素との差分情報を用いて２次予測を行うことで予測画像を生成し、
前記対象ブロックの画像、生成された前記予測画像、および前記動きベクトル情報から求められる前記参照ブロックの画像を加算して、前記対象ブロックの復号画像を生成するステップを
含む処理をコンピュータに行わせるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置および方法、並びにプログラムに関し、特に、参照ブロックに隣接する隣接画素が画枠外に存在する場合にも２次予測を行うことができるようにした画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
近年、画像情報をデジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮する符号化方式を採用して画像を圧縮符号する装置が普及しつつある。この符号化方式には、例えば、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) において、符号化効率の改善に関する検討が継続され行なわれている。
【０００８】
例えば、非特許文献１においては、インター予測において、更なる符号化効率を向上させる２次予測方式が提案されている。この２次予測方式について図１を参照して説明する。
【０００９】
図１の例においては、対象フレームと参照フレームが示されており、対象フレームには、対象ブロックＡが示されている。
【００１０】
参照フレームと対象フレームにおいて対象ブロックＡに対して動きベクトルmv(mv_x,mv_y)が求められた場合に、対象ブロックＡと、対象ブロックＡに動きベクトルmvで対応付けられるブロックＢの差分情報（残差）が算出される。
【００１１】
２次予測方式においては、対象ブロックＡに関する差分情報だけでなく、対象ブロックＡに隣接する隣接画素群Ａ´と、隣接画素群Ａ´に動きベクトルmvで対応付けられる隣接画素群Ｂ´との差分情報も算出される。
【００１２】
すなわち、対象ブロックＡの左上のアドレス(x,y)から、隣接画素群Ａ´の各画素のアドレスが求められる。また、対象ブロックＡに動きベクトルmv(mv_x,mv_y)で対応付けられるブロックＢの左上のアドレス(x+mv_x,y+mv_y)から、隣接画素群Ｂ´の各画素のアドレスが求められる。これらのアドレスが用いられて、隣接画素群Ｂ´の差分情報が算出される。
【００１３】
２次予測方式においては、このように算出された対象ブロックに関する差分情報と、隣接画素に関する差分情報との間で、H．264/AVC方式におけるイントラ予測が行われ、これにより、２次差分情報が生成される。生成された２次差分情報が直交変換、量子化され、圧縮画像とともに符号化されて、復号側に送られる。
【先行技術文献】
【非特許文献】
【００１４】
【非特許文献１】”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
【発明の概要】
【発明が解決しようとする課題】
【００１５】
ここで、対象ブロックＡは、対象フレームの画枠の中に必ず存在するが、参照ブロックＢが参照フレームの画枠内に存在するか否かは、対象ブロックＡのアドレスと動きベクトルの値によって決まる。
【００１６】
例えば、図２の例においては、参照フレームにおいて、対象ブロックＡについて動きベクトルmv1とmv2が検出されている。動きベクトルmv1により対象ブロックＡに対応付けられる参照ブロックＢ１は、その一部が画枠の下部において外にはみ出しており、それに対応して、参照ブロックＢ１に隣接する隣接画素群Ｂ１´もその一部が画枠の下部において外にはみ出している。
【００１７】
また、動きベクトルmv2により対象ブロックＡに対応付けられる参照ブロックＢ２は、画枠内に存在するが、参照ブロックＢ２に隣接する隣接画素群Ｂ２´は、その一部が画枠の右部において外にはみ出している。
【００１８】
すなわち、参照ブロックが画枠内に存在するか否かだけでなく、参照ブロックに隣接する隣接画素群が画枠内に存在するかも、対象ブロックＡのアドレスと動きベクトルの値によって決定される。そして、このように画枠内に存在しない画素は、参照画素として、利用可能“available”ではないとされる。
【００１９】
このように、非特許文献１に記載の２次予測方法を適用する場合、参照ブロックに隣接する隣接画素が利用可能ではないことがあり、この場合、２次予測を行うことが困難であった。
【００２０】
すなわち、非特許文献１に記載の２次予測方法では、H．264/AVC方式のイントラ予測を転用して、２次予測を行っている。H．264/AVC方式のイントラ予測では、隣接画素の利用可能の判定を行う必要がないため、２次予測における隣接画素の利用可能の判定については、H．264/AVC方式のイントラ予測を転用することができなかった。
【００２１】
したがって、２次予測においては、隣接画素の利用可能の判定に関してのみ、その回路を追加する必要があった。
【００２２】
本発明は、このような状況に鑑みてなされたものであり、参照ブロックに隣接する隣接画素が画枠外に存在する場合にも２次予測を行うことができるようにするものである。
【課題を解決するための手段】
【００２３】
本発明の第１の側面の画像処理装置は、対象フレームにおける対象ブロックのアドレス、参照フレームにおいて前記対象ブロックについて検出された動きベクトル情報、および前記対象ブロックに隣接する対象隣接画素の相対アドレスを用いて、前記参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素が画枠内に存在するか否かを判定する参照隣接判定手段と、前記参照隣接画素判定手段により前記参照隣接画素が前記画枠内に存在しないと判定された場合、前記参照隣接画素に対して端点処理を行い、前記対象ブロックと前記参照ブロックとの差分情報および前記対象隣接画素と前記端点処理が行われた前記参照隣接画素との差分情報の間で予測を行うことで２次差分情報を生成する２次予測手段と、前記２次予測手段により生成された前記２次差分情報を符号化する符号化手段とを備える。
【００２４】
前記参照隣接判定手段は、前記対象ブロックのアドレス(x,y)、前記動きベクトル情報(dx,dy)、前記対象隣接画素の相対アドレス(δx,δy)として、前記参照隣接画素の相対アドレス(x+dx+δx,y+dy+δy)を算出し、算出した前記参照隣接画素の相対アドレス(x+dx+δx,y+dy+δy)が前記画枠内に存在するか否かを判定することができる。
【００２５】
前記２次予測手段は、画素値がｎビットで表される場合、
x+dx+δx < 0 、または、y+dy+δy < 0 
が成り立つ前記参照隣接画素に対して、その画素値を２n-1とする前記端点処理を行うことができる。
【００２６】
前記２次予測手段は、前記画枠の水平方向の画素数をWIDTHとして、
x+dx+δx > WIDTH - 1 
が成り立つ場合、前記参照隣接画素の画素値として、アドレス(WIDTH - 1, y+dy+δy)により指し示される画素値を用いる前記端点処理を行うことができる。
【００２７】
前記２次予測手段は、前記画枠の垂直方向の画素数をHEIGHTとして、
y+dy+δy > HEIGHT - 1 
が成り立つ場合、前記参照隣接画素の画素値として、アドレス(x+dx+δx, HEIGHT - 1)により指し示される画素値を用いる前記端点処理を行うことができる。
【００２８】
前記２次予測手段は、前記画枠の水平方向の画素数をWIDTHとし、前記画枠の垂直方向の画素数をHEIGHTとして、
x+dx+δx > WIDTH - 1 、かつ、y+dy+δy > HEIGHT - 1 
が成り立つ場合、前記参照隣接画素の画素値として、アドレス(WIDTH - 1, HEIGHT - 1)により指し示される画素値を用いる前記端点処理を行うことができる。
【００２９】
前記２次予測手段は、前記画枠内に存在しない前記参照隣接画素に対して、前記画枠の境界を対称にして鏡像処理により画素値を生成する前記端点処理を行うことができる。
【００３０】
前記２次予測手段は、前記参照隣接画素判定手段により前記参照隣接画素が前記画枠内に存在しないと判定された場合、前記参照隣接画素に対して端点処理を行う参照隣接画素決定手段と、前記対象隣接画素と前記端点処理が行われた前記参照隣接画素との差分情報を用いて予測を行い、前記対象ブロックに対するイントラ予測画像を生成する隣接画素予測手段と、前記対象ブロックと前記参照ブロックとの差分情報、および前記隣接画素予測手段により生成された前記イントラ予測画像を差分して、前記２次差分情報を生成する２次差分生成手段とを備えることができる。
【００３１】
前記２次予測手段は、前記参照隣接画素判定手段により前記参照隣接画素が前記画枠内に存在すると判定された場合、前記対象ブロックと前記参照ブロックとの差分情報および前記対象隣接画素と前記参照隣接画素との差分情報の間で予測を行うことで２次差分情報を生成することができる。
【００３２】
本発明の第１の側面の画像処理方法は、画像処理装置が、対象フレームにおける対象ブロックのアドレス、参照フレームにおいて前記対象ブロックについて検出された動きベクトル情報、および前記対象ブロックに隣接する対象隣接画素の相対アドレスを用いて、前記参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素が画枠内に存在するか否かを判定し、前記参照隣接画素が前記画枠内に存在しないと判定された場合、前記参照隣接画素に対して端点処理を行い、前記対象ブロックと前記参照ブロックとの差分情報および前記対象隣接画素と前記端点処理が行われた前記参照隣接画素との差分情報の間で予測を行うことで２次差分情報を生成し、生成された前記２次差分情報を符号化するステップを含む。
【００３３】
本発明の第１の側面のプログラムは、対象フレームにおける対象ブロックのアドレス、参照フレームにおいて前記対象ブロックについて検出された動きベクトル情報、および前記対象ブロックに隣接する対象隣接画素の相対アドレスを用いて、前記参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素が画枠内に存在するか否かを判定し、前記参照隣接画素が前記画枠内に存在しないと判定された場合、前記参照隣接画素に対して端点処理を行い、前記対象ブロックと前記参照ブロックとの差分情報および前記対象隣接画素と前記端点処理が行われた前記参照隣接画素との差分情報の間で予測を行うことで２次差分情報を生成し、生成された前記２次差分情報を符号化するステップを含む処理をコンピュータに行わせる。
【００３４】
本発明の第２の側面の画像処理装置は、符号化された対象フレームにおける対象ブロックの画像と、参照フレームにおいて前記対象ブロックに対して検出された動きベクトル情報を復号する復号手段と、前記対象ブロックのアドレス、前記動きベクトル情報、および前記対象ブロックに隣接する対象隣接画素の相対アドレスを用いて、前記参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素が画枠内に存在するか否かを判定する参照隣接判定手段と、前記参照隣接判定手段により前記参照隣接画素が前記画枠内に存在しないと判定された場合、前記参照隣接画素に対して端点処理を行い、前記対象隣接画素と前記端点処理が行われた前記参照隣接画素との差分情報を用いて２次予測を行うことで予測画像を生成する２次予測手段と、前記対象ブロックの画像、前記２次予測手段により生成された前記予測画像、および前記動きベクトル情報から求められる前記参照ブロックの画像を加算して、前記対象ブロックの復号画像を生成する演算手段とを備える。
【００３５】
前記参照隣接判定手段は、前記対象ブロックのアドレス(x,y)、前記動きベクトル情報(dx,dy)、前記対象隣接画素の相対アドレス(δx,δy)として、前記参照隣接画素の相対アドレス(x+dx+δx,y+dy+δy)を算出し、算出した前記参照隣接画素の相対アドレス(x+dx+δx,y+dy+δy)が前記画枠内に存在するか否かを判定することができる。
【００３６】
前記２次予測手段は、画素値がｎビットで表される場合、
x+dx+δx < 0 、または、y+dy+δy < 0 
が成り立つ前記参照隣接画素に対して、その画素値を２n-1とする前記端点処理を行うことができる。
【００３７】
前記２次予測手段は、前記画枠の水平方向の画素数をWIDTHとして、
x+dx+δx > WIDTH - 1 
が成り立つ場合、前記参照隣接画素の画素値として、アドレス(WIDTH - 1, y+dy+δy)により指し示される画素値を用いる前記端点処理を行うことができる。
【００３８】
前記２次予測手段は、前記画枠の垂直方向の画素数をHEIGHTとして、
y+dy+δy > HEIGHT - 1 
が成り立つ場合、前記参照隣接画素の画素値として、アドレス(x+dx+δx, HEIGHT - 1)により指し示される画素値を用いる前記端点処理を行うことができる。
【００３９】
前記２次予測手段は、前記画枠の水平方向の画素数をWIDTHとし、前記画枠の垂直方向の画素数をHEIGHTとして、
x+dx+δx > WIDTH - 1 、かつ、y+dy+δy > HEIGHT - 1 
が成り立つ場合、前記参照隣接画素の画素値として、アドレス(WIDTH - 1, HEIGHT - 1)により指し示される画素値を用いる前記端点処理を行うことができる。
【００４０】
前記２次予測手段は、前記画枠内に存在しない前記参照隣接画素に対して、前記画枠の境界を対称にして鏡像処理により画素値を生成する前記端点処理を行うことができる。
【００４１】
前記２次予測手段は、前記参照隣接画素判定手段により前記参照隣接画素が前記画枠内に存在しないと判定された場合、前記参照隣接画素に対して端点処理を行う参照隣接画素決定手段と、前記対象隣接画素と前記端点処理が行われた前記参照隣接画素との差分情報を用いて２次予測を行うことで予測画像を生成する予測画像生成手段とを備えることができる。
【００４２】
前記２次予測手段は、前記参照隣接画素判定手段により前記参照隣接画素が前記画枠内に存在すると判定された場合、前記対象隣接画素と前記参照隣接画素との差分情報を用いて予測を行い、前記予測画像を生成することができる。
【００４３】
本発明の第２の側面の画像処理方法は、画像処理装置が、符号化された対象フレームにおける対象ブロックの画像と、参照フレームにおいて前記対象ブロックに対して検出された動きベクトル情報を復号し、前記対象ブロックのアドレス、前記動きベクトル情報、および前記対象ブロックに隣接する対象隣接画素の相対アドレスを用いて、前記参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素が画枠内に存在するか否かを判定し、前記参照隣接画素が前記画枠内に存在しないと判定された場合、前記参照隣接画素に対して端点処理を行い、前記対象隣接画素と前記端点処理が行われた前記参照隣接画素との差分情報を用いて２次予測を行うことで予測画像を生成し、前記対象ブロックの画像、生成された前記予測画像、および前記動きベクトル情報から求められる前記参照ブロックの画像を加算して、前記対象ブロックの復号画像を生成するステップを含む。
【００４４】
本発明の第２の側面のプログラムは、符号化された対象フレームにおける対象ブロックの画像と、参照フレームにおいて前記対象ブロックに対して検出された動きベクトル情報を復号し、前記対象ブロックのアドレス、前記動きベクトル情報、および前記対象ブロックに隣接する対象隣接画素の相対アドレスを用いて、前記参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素が画枠内に存在するか否かを判定し、前記参照隣接画素が前記画枠内に存在しないと判定された場合、前記参照隣接画素に対して端点処理を行い、前記対象隣接画素と前記端点処理が行われた前記参照隣接画素との差分情報を用いて２次予測を行うことで予測画像を生成し、前記対象ブロックの画像、生成された前記予測画像、および前記動きベクトル情報から求められる前記参照ブロックの画像を加算して、前記対象ブロックの復号画像を生成するステップを含む処理をコンピュータに行わせる。
【００４５】
本発明の第１の側面においては、対象フレームにおける対象ブロックのアドレス、参照フレームにおいて前記対象ブロックについて検出された動きベクトル情報、および前記対象ブロックに隣接する対象隣接画素の相対アドレスを用いて、前記参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素が画枠内に存在するか否かが判定される。そして、前記参照隣接画素が前記画枠内に存在しないと判定された場合、前記参照隣接画素に対して端点処理が行われ、前記対象ブロックと前記参照ブロックとの差分情報および前記対象隣接画素と前記端点処理が行われた前記参照隣接画素との差分情報の間で予測を行うことで２次差分情報が生成され、生成された前記２次差分情報が符号化される。
【００４６】
本発明の第２の側面においては、符号化された対象フレームにおける対象ブロックの画像と、参照フレームにおいて前記対象ブロックに対して検出された動きベクトル情報を復号し、前記対象ブロックのアドレス、前記動きベクトル情報、および前記対象ブロックに隣接する対象隣接画素の相対アドレスを用いて、前記参照フレームにおいて前記動きベクトル情報により前記対象ブロックに対応付けられる参照ブロックに隣接する参照隣接画素が画枠内に存在するか否かが判定される。そして、前記参照隣接画素が前記画枠内に存在しないと判定された場合、前記参照隣接画素に対して端点処理が行われ、前記対象隣接画素と前記端点処理が行われた前記参照隣接画素との差分情報を用いて２次予測を行うことで予測画像が生成され、前記対象ブロックの画像、生成された前記予測画像、および前記動きベクトル情報から求められる前記参照ブロックの画像が加算されて、前記対象ブロックの復号画像が生成される。
【００４７】
なお、上述の画像処理装置のそれぞれは、独立した装置であっても良いし、１つの画像符号化装置または画像復号装置を構成している内部ブロックであってもよい。
【発明の効果】
【００４８】
本発明の第１の側面によれば、画像を符号化することができる。また、本発明の第１の側面によれば、参照ブロックに隣接する隣接画素が画枠外に存在する場合でも、２次予測を行うことができる。
【００４９】
本発明の第２の側面によれば、画像を復号することができる。また、本発明の第２の側面によれば、参照ブロックに隣接する隣接画素が画枠外に存在する場合でも、２次予測を行うことができる。
【図面の簡単な説明】
【００５０】
【図１】インター予測における２次予測方式を説明する図である。
【図２】参照ブロックに隣接する隣接画素群について説明する図である。
【図３】本発明を適用した画像符号化装置の一実施の形態の構成を示すブロック図である。
【図４】可変ブロックサイズ動き予測・補償処理を説明する図である。
【図５】１／４画素精度の動き予測・補償処理を説明する図である。
【図６】マルチ参照フレームの動き予測・補償方式について説明する図である。
【図７】動きベクトル情報の生成方法の例を説明する図である。
【図８】図３の２次予測部の構成例を示すブロック図である。
【図９】２次予測部および参照隣接判定部の動作を説明する図である。
【図１０】参照隣接画素の設定を説明する図である。
【図１１】参照隣接画素の設定を説明する図である。
【図１２】端点処理の例を説明する図である。
【図１３】図３の画像符号化装置の符号化処理を説明するフローチャートである。
【図１４】図１３のステップＳ２１の予測処理を説明するフローチャートである。
【図１５】１６×１６画素のイントラ予測モードの場合の処理順序を説明する図である。
【図１６】輝度信号の４×４画素のイントラ予測モードの種類を示す図である。
【図１７】輝度信号の４×４画素のイントラ予測モードの種類を示す図である。
【図１８】４×４画素のイントラ予測の方向を説明する図である。
【図１９】４×４画素のイントラ予測を説明する図である。
【図２０】輝度信号の４×４画素のイントラ予測モードの符号化を説明する図である。
【図２１】輝度信号の８×８画素のイントラ予測モードの種類を示す図である。
【図２２】輝度信号の８×８画素のイントラ予測モードの種類を示す図である。
【図２３】輝度信号の１６×１６画素のイントラ予測モードの種類を示す図である。
【図２４】輝度信号の１６×１６画素のイントラ予測モードの種類を示す図である。
【図２５】１６×１６画素のイントラ予測を説明する図である。
【図２６】色差信号のイントラ予測モードの種類を示す図である。
【図２７】図１４のステップＳ３１のイントラ予測処理を説明するフローチャートである。
【図２８】図１４のステップＳ３２のインター動き予測処理を説明するフローチャートである。
【図２９】図２８のステップＳ５３の参照隣接画素決定処理を説明するフローチャートである。
【図３０】図２８のステップＳ５４の２次予測処理を説明するフローチャートである。
【図３１】本発明を適用した画像復号装置の一実施の形態の構成を示すブロック図である。
【図３２】図３１の２次予測部の構成例を示すブロック図である。
【図３３】図３１の画像復号装置の復号処理を説明するフローチャートである。
【図３４】図３３のステップＳ１３８の予測処理を説明するフローチャートである。
【図３５】図３４のステップＳ１７９の２次インター予測処理を説明するフローチャートである。
【図３６】コンピュータのハードウエアの構成例を示すブロック図である。
【発明を実施するための形態】
【００５１】
以下、図を参照して本発明の実施の形態について説明する。
【００５２】
［画像符号化装置の構成例］
図３は、本発明を適用した画像処理装置としての画像符号化装置の一実施の形態の構成を表している。
【００５３】
この画像符号化装置５１は、例えば、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()を次の式（１）のように定義する。
【００８４】
【数１】
2010258741.tif 000003
なお、入力画像が８ビット精度である場合、max_pixの値は255となる。
【００８５】
位置ｂおよびｄにおける画素値は、６タップのFIRフィルタを用いて、次の式（２）のように生成される。
【数２】
2010258741.tif 000004
【００８６】
位置ｃにおける画素値は、水平方向および垂直方向に６タップのFIRフィルタを適用し、次の式（３）のように生成される。
【数３】
2010258741.tif 000005
なお、Clip処理は、水平方向および垂直方向の積和処理の両方を行った後、最後に１度のみ実行される。
【００８７】
位置ｅ１乃至ｅ３は、次の式（４）のように線形内挿により生成される。
【数４】
2010258741.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                                                ・・・（６）
【０１００】
なお、実際には、動きベクトル情報の水平方向、垂直方向のそれぞれの成分に対して、独立に処理が行われる。
【０１０１】
このように、予測動きベクトル情報を生成し、隣接するブロックとの相関で生成された予測動きベクトル情報と動きベクトル情報との差分であるデータmvdEを、圧縮画像のヘッダ部に付加することにより、動きベクトル情報を低減することができる。
【０１０２】
［２次予測部の構成例］
図８は、２次予測部の詳細な構成例を示すブロック図である。
【０１０３】
図８の例においては、２次予測部７６は、参照ブロックアドレス算出部８１、参照隣接アドレス算出部８２、参照隣接画素決定部８３、対象隣接画素読み出し部８４、隣接画素差分算出部８５、イントラ予測部８６、および対象ブロック差分バッファ８７により構成される。
【０１０４】
動きベクトル予測・補償部７５は、対象ブロックに対する動きベクトル(dx,dy)を、参照ブロックアドレス算出部８１に供給する。動きベクトル予測・補償部７５は、対象ブロックアドレス(x,y)を、参照ブロックアドレス算出部８１および対象隣接画素読み出し部８４に供給する。動きベクトル予測・補償部７５は、対象ブロックと参照ブロック（予測画像）の差分である１次残差を、対象ブロック差分バッファ８７に供給する。
【０１０５】
参照ブロックアドレス算出部８１は、動きベクトル予測・補償部７５からの対象ブロックアドレス(x,y)と、対象ブロックに対する動きベクトル(dx,dy)から、参照ブロックアドレス(x+dx,y+dy)を決定する。参照ブロックアドレス算出部８１は、決定した参照ブロックアドレス(x+dx,y+dy)を、参照隣接アドレス算出部８２に供給する。
【０１０６】
参照隣接アドレス算出部８２は、参照ブロックアドレス(x+dx,y+dy)と対象ブロックに隣接する対象隣接画素の相対アドレスを基に、参照隣接画素の相対アドレスである参照隣接アドレスを算出する。参照隣接アドレス算出部８２は、算出した参照隣接アドレス(x+dx+δx,y+dy+δy)を、参照隣接判定部７７に供給する。
【０１０７】
参照隣接画素決定部８３には、参照隣接判定部７７から、参照隣接画素が参照フレームの画枠内に存在するか否かの判定結果が入力される。参照隣接画素決定部８３は、参照隣接画素が参照フレームの画枠内に存在する場合、フレームメモリ７２より、H．264/AVC方式で定義されている隣接画素を読み出し、それを図示せぬ内蔵バッファに蓄積する。
【０１０８】
一方、参照隣接画素決定部８３は、参照隣接画素が参照フレームの画枠内に存在しない場合、存在しない隣接画素について端点処理を行って、参照隣接画素の画素値を決定し、それを、フレームメモリ７２から読み出して、図示せぬ内蔵バッファに蓄積する。ここで、端点処理とは、例えば、参照フレームの画枠内に存在する他の画素値を、画枠内に存在しない隣接画素の画素値とする処理であり、図１２を参照して詳しく後述される。
【０１０９】
対象隣接画素読み出し部８４は、動き予測・補償部７５からの対象ブロックアドレス(x,y)を用いて、フレームメモリ７２から、対象ブロックの画素値を読み出し、それを図示せぬ内蔵バッファに蓄積する。
【０１１０】
隣接画素差分算出部８５は、対象隣接画素読み出し部８４の内蔵バッファから、対象隣接画素[A']を読み出し、また、参照隣接画素決定部８５の内蔵バッファから、対象隣接画素に対応する参照隣接画素[B']を読み出す。隣接画素差分算出部８５は、各内蔵バッファから読み出された対象隣接画素[A']と参照隣接画素[B']の差分を算出し、隣接画素に対する残差[A'-B']として、図示せぬ内蔵バッファに蓄積する。
【０１１１】
イントラ予測部８６は、隣接画素差分算出部８５の内蔵バッファから、隣接画素に対する残差[A'-B']を読み出し、対象ブロック差分バッファ８７から、対象ブロックに対する１次残差[A-B]を読み出す。イントラ予測部８６は、隣接画素に対する残差[A'-B']を用いて、各イントラ予測モード[mode]で対象ブロックについてイントラ予測を行い、イントラ予測画像Ipred(A'-B')[mode]を生成する。
【０１１２】
そして、イントラ予測部８６は、対象ブロックに対する１次残差と、対象ブロックについて予測されたイントラ予測画像との差分である２次残差を生成し、生成した２次残差と、そのときのイントラ予測モードの情報を、動き予測・補償部７５に供給する。
【０１１３】
なお、図８の例のイントラ予測部８６における２次予測としてイントラ予測を行う回路は、イントラ予測部７４との回路を共用することが可能である。
【０１１４】
［２次予測部および参照隣接判定部の動作の説明］
次に、図９を参照して、２次予測部７６および参照隣接判定部７７の動作について説明する。なお、以下、対象ブロックのブロックサイズが４×４画素である場合を例に説明する。
【０１１５】
図９の例においては、対象フレームと参照フレームが示されており、対象フレームには、対象ブロックＡと、対象ブロックＡに隣接する対象隣接画素Ａ´が示されている。また、対象フレームと参照フレームの間には、参照フレームにおいて、対象フレームＡについて求められた動きベクトルmv(dx,dy)が示されている。
【０１１６】
さらに、参照フレームには、その動きベクトルmv(dx,dy)により対象ブロックＡに対応付けられている参照ブロックＢと、参照ブロックＢに隣接する参照隣接画素Ｂ´が示されている。なお、図において、対象隣接画素Ａ´および参照隣接画素Ｂ´は、対象ブロックＡおよび参照ブロックＢの画素と区別するため、ハッチがなされている。
【０１１７】
まず、２次予測部７６においては、図１を参照して上述した２次予測処理が行われる。その際、参照ブロックＢに対する参照隣接画素Ｂ´は、参照隣接判定部７７により画枠内に存在するか否かが判定され、２次予測部７６により以下のように設定される。
【０１１８】
すなわち、図９に示されるように、対象ブロックＡにおいて左上に位置する画素のアドレス（座標）を(x,y)と定義した場合、動きベクトルmv(dx,dy)により、参照ブロックＢにおいて左上に位置する画素のアドレスは(x+dx,y+dy)と定義される。
【０１１９】
このとき、次の式（７）を用いて、対象隣接画素Ａ´のアドレスは、(x+δx,y+δy)と定義され、対象隣接画素Ｂ´のアドレスは、(x+dx+δx,y+dy+δy)と定義される。
(δx,δy) = {(-1,-1),(0,-1),(1,-1),(2,-1),(3,-1),(4,-1),(5,-1),
(6,-1),(7,-1),(-1,0),(-1,1),(-1,2),(-1,3)}
・・・（７）
【０１２０】
これらのアドレスを用いて、次に、図１０および図１１を参照して、参照ブロックＢに対する参照隣接画素Ｂ´の設定について説明する。なお、対象ブロックＡに対する対象隣接画素Ａ´の定義は、H．264/AVC方式の定義に準ずる。すなわち、その詳細は、図１３および図１４を参照して後述される。
【０１２１】
まず、図１０Ａの例においては、参照フレームの画枠の左側に、参照ブロックＢに隣接する参照隣接画素Ｂ´の一部がはみ出している例が示されている。図１０Ｂの例においては、参照フレームの画枠の上側に、参照ブロックＢに隣接する参照隣接画素Ｂ´の一部がはみ出している例が示されている。
【０１２２】
これらの場合、すなわち、次の式（８）が成り立つ参照隣接画素Ｂ´に対しては、２次予測部７６は、その画素値を２n-1と設定する。ここで、画素値はｎビットで表されるものとし、８ビットの場合、その画素値は、128となる。
x+dx+δx < 0  または  y+dy+δy > 0
・・・（８）
【０１２３】
次に、図１１Ａの例においては、参照フレームの画枠の下側に、参照ブロックＢの一部とともに参照隣接画素Ｂ´の一部がはみ出している例が示されている。図１１Ｂの例においては、参照フレームの画枠の右側に、参照ブロックＢに隣接する参照隣接画素Ｂ´の一部がはみ出している例が示されている。
【０１２４】
ここで、対象フレームおよび参照フレームの画枠サイズが、WIDTH×HEIGHTであるとする。画枠サイズがWIDTH×HEIGHTである場合において、図１１Ａに示されるようなとき、すなわち、次の式（９）が成り立つときには、２次予測部７６は、アドレス(WIDTH - 1, y+dy+δy)により指し示される画素を参照隣接画素として設定する。
x+dx+δx > WIDTH - 1                                              ・・・（９）
【０１２５】
また、画枠サイズがWIDTH×HEIGHTである場合において、図１１Ｂに示されるようなとき、すなわち、次の式（１０）が成り立つときには、２次予測部７６は、アドレス（x+dx+δx,HEIGHT - 1）により指し示される画素を参照隣接画素として設定する。
y+dy+δy > HEIGHT - 1                                          ・・・（１０）
【０１２６】
さらに、画枠サイズがWIDTH×HEIGHTである場合において、式（９）および式（１０）の両方が成り立つときには、２次予測部７６は、アドレス（WIDTH - 1,HEIGHT - 1）により指し示される画素を参照隣接画素として設定する。
【０１２７】
すなわち、２次予測部７６の参照隣接画素を設定する処理は、図１１Ａおよび図１１Ｂの矢印に示されるように、画枠からはみ出した参照隣接画素に関しては、端点処理の１つである、画枠に存在する参照隣接画素と同一の値を用いる処理に他ならない。この処理は、ホールド処理と呼ばれる。なお、このホールド処理の代わりに、端点処理の他の１つであるミラー処理を適用してもよい。
【０１２８】
次に、図１２を参照して、端点処理であるホールド処理およびミラー処理について説明する。なお、図１２Ａの例においては、ホールド処理の例として、また、図１２Ｂの例においては、ミラー処理の例として、図１１Ｂに示されるＥの範囲が拡大してそれぞれ示されている。
【０１２９】
画枠境界より図中左側の参照隣接画素は、画枠内に存在し、例えば、画枠境界側から順に、a0,a1,a2の画素値を有している。しかしながら、画枠境界より図中右側の参照隣接画素は、画枠外に存在する。
【０１３０】
このため、図１２Ａに示されるホールド処理においては、画枠外の参照隣接画素の画素値は、画枠境界に１番近い画枠内の参照隣接画素の画素値a0が用いられて仮想的に生成される。
【０１３１】
また、図１２Ｂに示されるミラー処理においては、画枠境界を中心として鏡像としての仮想画素値が存在するものとして処理が行われる。
【０１３２】
すなわち、ミラー処理においては、画枠外の画枠境界側から１番近い参照隣接画素の画素値は、画枠境界に１番近い画枠内の参照隣接画素の画素値a0が用いられて仮想的に生成される。画枠外の画枠境界側から２番目に近い参照隣接画素の画素値は、画枠境界に２番目に近い画枠内の参照隣接画素の画素値a1が用いられて仮想的に生成される。画枠外の画枠境界側から３番目に近い参照隣接画素の画素値は、画枠境界に３番目に近い画枠内の参照隣接画素の画素値a2が用いられて仮想的に生成される。
【０１３３】
なお、上記説明においては、イントラ４×４予測を例に説明したが、イントラ８×８予測の場合には、上述した式（７）の代わりに、次の式（１１）のように定義することで、同様の処理を行うことができる。
(δx,δy) = {(-1,-1),(0,-1),(1,-1),(2,-1),(3,-1),(4,-1),(5,-1),
(6,-1),(7,-1),(8,-1),(9,-1),(10,-1),(11,-1),(12,-1),
(13,-1),(14,-1),(15,-1),(-1,0),(-1,1),(-1,2),(-1,3),
(-1,4),(-1,5),(-1,6),(-1,7)}
・・・（１１）
【０１３４】
イントラ１６×１６予測の場合には、後述する図２４に示されるように、隣接画素のうち、ブロックに対して右上に位置する隣接画素の画素値はイントラ予測に用いられない。したがって、上述した式（７）の代わりに、次の式（１２）のように定義することで、同様の処理を行うことができる。
(δx,δy) = {(-1,-1),(0,-1),(1,-1),(2,-1),(3,-1),(4,-1),(5,-1),
(6,-1),(7,-1),(8,-1),(9,-1),(10,-1),(11,-1),(12,-1),
(13,-1),(14,-1),(15,-1),(-1,0),(-1,1),(-1,2),(-1,3),
(-1,4),(-1,5),(-1,6),(-1,7),(-1,8),(-1,9),(-1,10),
(-1,11),(-1,12),(-1,13),(-1,14),(-1,15)}
・・・（１２）
【０１３５】
色差信号に関しても、イントラ１６×１６予測の場合と同様に、隣接画素のうち、ブロックに対して右上に位置する隣接画素の画素値はイントラ予測に用いられない。したがって、上述した式（７）の代わりに、次の式（１３）のように定義することで、同様の処理を行うことができる。
(δx,δy) = {(-1,-1),(0,-1),(1,-1),(2,-1),(3,-1),(4,-1),(5,-1),
(6,-1),(7,-1),(-1,0),(-1,1),(-1,2),(-1,3),
(-1,4),(-1,5),(-1,6),(-1,7)}
・・・（１３）
【０１３６】
以上のように、画像符号化装置５１においては、参照隣接画素が画枠外に存在するか否かを判定し、参照隣接画素が画枠外に存在する場合に、その画素に対して、ホールドまたはミラーの端点処理を行うようにした。
【０１３７】
これにより、参照隣接画素が画枠外に存在する場合でも２次予測処理を行うことができ、その結果、符号化効率を向上させることができる。
【０１３８】
［画像符号化装置の符号化処理の説明］
次に、図１３のフローチャートを参照して、図３の画像符号化装置５１の符号化処理について説明する。
【０１３９】
ステップＳ１１において、Ａ／Ｄ変換部６１は入力された画像をＡ／Ｄ変換する。ステップＳ１２において、画面並べ替えバッファ６２は、Ａ／Ｄ変換部６１より供給された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
【０１４０】
ステップＳ１３において、演算部６３は、ステップＳ１２で並び替えられた画像と予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部７５から、イントラ予測する場合はイントラ予測部７４から、それぞれ予測画像選択部７８を介して演算部６３に供給される。
【０１４１】
差分データは元の画像データに較べてデータ量が小さくなっている。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
【０１４２】
ステップＳ１４において、直交変換部６４は演算部６３から供給された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。ステップＳ１５において、量子化部６５は変換係数を量子化する。この量子化に際しては、後述するステップＳ２５の処理で説明されるように、レートが制御される。
【０１４３】
以上のようにして量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップＳ１６において、逆量子化部６８は量子化部６５により量子化された変換係数を量子化部６５の特性に対応する特性で逆量子化する。ステップＳ１７において、逆直交変換部６９は逆量子化部６８により逆量子化された変換係数を直交変換部６４の特性に対応する特性で逆直交変換する。
【０１４４】
ステップＳ１８において、演算部７０は、予測画像選択部７８を介して入力される予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像（演算部６３への入力に対応する画像）を生成する。ステップＳ１９においてデブロックフィルタ７１は、演算部７０より出力された画像をフィルタリングする。これによりブロック歪みが除去される。ステップＳ２０においてフレームメモリ７２は、フィルタリングされた画像を記憶する。なお、フレームメモリ７２にはデブロックフィルタ７１によりフィルタ処理されていない画像も演算部７０から供給され、記憶される。
【０１４５】
ステップＳ２１において、イントラ予測部７４および動き予測・補償部７５は、それぞれ画像の予測処理を行う。すなわち、ステップＳ２１において、イントラ予測部７４は、イントラ予測モードのイントラ予測処理を行う。動き予測・補償部７５は、インター予測モードの動き予測・補償処理を行う。
【０１４６】
このとき、参照隣接判定部７７により参照ブロックに隣接する隣接画素が、参照フレームの画枠内に存在するか否かが判定され、２次予測部７６により、その判定結果に応じて、参照隣接画素に端点処理が施された後に、２次予測が行われて、２次残差が生成される。そして、動き予測・補償部７５において、１次残差と２次残差のうち、符号化効率がよい残差が決定される。
【０１４７】
なお、２次予測が行われた場合には、２次予測を行うことを示す２次予測フラグや２次予測におけるイントラ予測モードを示す情報を復号側に送る必要がある。これらの情報は、後述するステップＳ２２において最適インター予測モードの予測画像が選択された場合に、最適インター予測モード情報などとともに、可逆符号化部６６に供給される。
【０１４８】
ステップＳ２１における予測処理の詳細は、図１４を参照して後述するが、この処理により、候補となる全てのイントラ予測モードでの予測処理がそれぞれ行われ、候補となる全てのイントラ予測モードでのコスト関数値がそれぞれ算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードが選択され、最適イントラ予測モードのイントラ予測により生成された予測画像とそのコスト関数値が予測画像選択部７８に供給される。
【０１４９】
また、この処理により、候補となる全てのインター予測モードでの予測処理がそれぞれ行われ、決定された残差が用いられて、候補となる全てのインター予測モードでのコスト関数値がそれぞれ算出される。算出されたコスト関数値に基づいて、インター予測モードの中から、最適インター予測モードが決定され、最適インター予測モードで生成された予測画像とそのコスト関数値が、予測画像選択部７８に供給される。なお、最適インター予測モードについて、２次予測が行われた場合には、予測画像として、インターする画像と２次残差の差分が予測画像選択部７８に供給される。
【０１５０】
ステップＳ２２において、予測画像選択部７８は、イントラ予測部７４および動き予測・補償部７５より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちの一方を、最適予測モードに決定する。そして、予測画像選択部７８は、決定した最適予測モードの予測画像を選択し、演算部６３，７０に供給する。この予測画像（２次予測が行われた場合、インターする画像と２次残差との差分）が、上述したように、ステップＳ１３，Ｓ１８の演算に利用される。
【０１５１】
なお、この予測画像の選択情報は、イントラ予測部７４または動き予測・補償部７５に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部７４は、最適イントラ予測モードを示す情報（すなわち、イントラ予測モード情報）を、可逆符号化部６６に供給する。
【０１５２】
最適インター予測モードの予測画像が選択された場合、動き予測・補償部７５は、最適インター予測モードを示す情報と、必要に応じて、最適インター予測モードに応じた情報を可逆符号化部６６に出力する。最適インター予測モードに応じた情報としては、２次予測を行うことを示す２次予測フラグ、２次予測におけるイントラ予測モードを示す情報、および参照フレーム情報などがあげられる。
【０１５３】
ステップＳ２３において、可逆符号化部６６は量子化部６５より出力された量子化された変換係数を符号化する。すなわち、差分画像（２次予測の場合、２次差分画像）が可変長符号化、算術符号化等の可逆符号化され、圧縮される。このとき、上述したステップＳ２２において可逆符号化部６６に入力された、イントラ予測部７４からのイントラ予測モード情報、または、動き予測・補償部７５からの最適インター予測モードに応じた情報なども符号化され、ヘッダ情報に付加される。
【０１５４】
ステップＳ２４において蓄積バッファ６７は差分画像を圧縮画像として蓄積する。蓄積バッファ６７に蓄積された圧縮画像が適宜読み出され、伝送路を介して復号側に伝送される。
【０１５５】
ステップＳ２５においてレート制御部７９は、蓄積バッファ６７に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部６５の量子化動作のレートを制御する。
【０１５６】
［予測処理の説明］
次に、図１４のフローチャートを参照して、図１３のステップＳ２１における予測処理を説明する。
【０１５７】
画面並べ替えバッファ６２から供給される処理対象の画像がイントラ処理されるブロックの画像である場合、参照される復号済みの画像がフレームメモリ７２から読み出され、スイッチ７３を介してイントラ予測部７４に供給される。これらの画像に基づいて、ステップＳ３１において、イントラ予測部７４は処理対象のブロックの画素を、候補となる全てのイントラ予測モードでイントラ予測する。なお、参照される復号済みの画素としては、デブロックフィルタ７１によりデブロックフィルタリングされていない画素が用いられる。
【０１５８】
ステップＳ３１におけるイントラ予測処理の詳細は、図２７を参照して後述するが、この処理により、候補となる全てのイントラ予測モードでイントラ予測が行われ、候補となる全てのイントラ予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードが選択され、最適イントラ予測モードのイントラ予測により生成された予測画像とそのコスト関数値が予測画像選択部７８に供給される。
【０１５９】
画面並べ替えバッファ６２から供給される処理対象の画像がインター処理される画像である場合、参照される画像がフレームメモリ７２から読み出され、スイッチ７３を介して動き予測・補償部７５に供給される。これらの画像に基づいて、ステップＳ３２において、動き予測・補償部７５はインター動き予測処理を行う。すなわち、動き予測・補償部７５は、フレームメモリ７２から供給される画像を参照して、候補となる全てのインター予測モードの動き予測処理を行う。
【０１６０】
なお、このとき、参照隣接判定部７７は、動き予測・補償部７５からの参照隣接画素のアドレスを用いて、参照隣接画素が、参照フレームの画枠内に存在するか否かを判定する。２次予測部７６は、参照隣接判定部７７からの判定結果に応じて、端点処理を行い、２次予測処理を行った結果の２次残差を、動き予測・補償部７５に出力する。これに対応して、動き予測・補償部７５は、１次残差と２次残差のうち符号化効率がよい残差を決定し、これ以降の処理に用いる。
【０１６１】
ステップＳ３２におけるインター動き予測処理の詳細は、図２８を参照して後述する。この処理により、候補となる全てのインター予測モードで動き予測処理が行われ、１次差分または２次差分が用いられて、候補となる全てのインター予測モードに対してコスト関数値が算出される。
【０１６２】
ステップＳ３３において、動き予測・補償部７５は、ステップＳ３２において算出されたインター予測モードに対してのコスト関数値を比較する。動き予測・補償部７５は、最小値を与える予測モードを、最適インター予測モードとして決定し、最適インター予測モードで生成された予測画像とそのコスト関数値を、予測画像選択部７８に供給する。
【０１６３】
［Ｈ．２６４／ＡＶＣ方式におけるイントラ予測処理の説明］
次に、Ｈ．２６４／ＡＶＣ方式で定められているイントラ予測の各モードについて説明する。
【０１６４】
まず、輝度信号に対するイントラ予測モードについて説明する。輝度信号のイントラ予測モードには、イントラ４×４予測モード、イントラ８×８予測モード、およびイントラ１６×１６予測モードの３通りの方式が定められている。これは、ブロック単位を定めるモードであり、マクロブロック毎に設定される。また、色差信号に対しては、マクロブロック毎に輝度信号とは独立したイントラ予測モードを設定することが可能である。
【０１６５】
さらに、イントラ４×４予測モードの場合、４×４画素の対象ブロック毎に、９種類の予測モードから１つの予測モードを設定することができる。イントラ８×８予測モードの場合、８×８画素の対象ブロック毎に、９種類の予測モードから１つの予測モードを設定することができる。また、イントラ１６×１６予測モードの場合、１６×１６画素の対象マクロブロックに対して、４種類の予測モードから１つの予測モードを設定することができる。
【０１６６】
なお、以下、イントラ４×４予測モード、イントラ８×８予測モード、およびイントラ１６×１６予測モードは、それぞれ、４×４画素のイントラ予測モード、８×８画素のイントラ予測モード、および１６×１６画素のイントラ予測モードとも適宜称する。
【０１６７】
図１５の例において、各ブロックに付されている数字−１乃至２５は、その各ブロックのビットストリーム順（復号側における処理順）を表している。なお、輝度信号については、マクロブロックが４×４画素に分割されて、４×４画素のＤＣＴが行われる。そして、イントラ１６×１６予測モードの場合のみ、−１のブロックに示されるように、各ブロックの直流成分を集めて、４×４行列が生成され、これに対して、さらに、直交変換が施される。
【０１６８】
一方、色差信号については、マクロブロックが４×４画素に分割され、４×４画素のＤＣＴが行われた後に、１６および１７の各ブロックに示されるように、各ブロックの直流成分を集めて、２×２行列が生成され、これに対して、さらに、直交変換が施される。
【０１６９】
なお、このことは、イントラ８×８予測モードに関しては、ハイプロファイルまたはそれ以上のプロファイルで、対象マクロブロックに、８×８直交変換が施される場合についてのみ適用可能である。
【０１７０】
図１６および図１７は、９種類の輝度信号の４×４画素のイントラ予測モード(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]は、次の式（４０）のように生成される。
【数５】
2010258741.tif 000007
【０２０４】
p[x,-1] (x=0, … ,7) は “available” であるが、 p[-1,y] (y=0, … ,7) が “unavailable” である場合には、予測値pred8x8L[x,y]は、次の式（４１）のように生成される。
【数６】
2010258741.tif 000008
【０２０５】
p[x,-1] (x=0, … ,7) は “unavailable” であるが、 p[-1,y] (y=0, … ,7) が “available” である場合には、予測値pred8x8L[x,y]は、次の式（４２）のように生成される。
【数７】
2010258741.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)は、次の式（６８）のように生成される。
【数８】
2010258741.tif 000010
【０２２４】
また、P(x,-1); x,y=-1,0,…,15が “unavailable” である場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（６９）のように生成される。
【数９】
2010258741.tif 000011
【０２２５】
P(-1,y); x,y=-1,0,…,15が “unavailable” である場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（７０）のように生成される。
【数１０】
2010258741.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)は、次の式（７１）のように生成される。
【数１１】
2010258741.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)は、次の式（７２）のように生成される。
【数１２】
2010258741.tif 000014
【０２３２】
また、P(-1,y) ; x,y=-1,0,…,7が “unavailable” である場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（７３）のように生成される。
【数１３】
2010258741.tif 000015
【０２３３】
また、P(x,-1) ; x,y=-1,0,…,7が “unavailable”である場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（７４）のように生成される。
【数１４】
2010258741.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)は、次の式（７７）のように生成される。
【数１５】
2010258741.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を生成する。このとき、図７を参照して上述した動きベクトルの生成方法が用いられる。
【０２６０】
生成された動きベクトル情報は、次のステップＳ５６におけるコスト関数値算出の際にも用いられ、最終的に予測画像選択部７８により対応する予測画像が選択された場合には、予測モード情報および参照フレーム情報とともに、可逆符号化部６６へ出力される。
【０２６１】
モード判定部８６は、ステップＳ５６において、１６×１６画素乃至４×４画素からなる８種類の各インター予測モードに対して、上述した式（７８）または式（７９）で示されるコスト関数値を算出する。ここで算出されたコスト関数値は、上述した図１４のステップＳ３３で最適インター予測モードを決定する際に用いられる。
【０２６２】
［参照隣接画素決定処理の説明］
次に、図２９のフローチャートを参照して、図２８のステップＳ５３の参照隣接画素決定処理について説明する。
【０２６３】
動き予測・補償部７５からの対象ブロックアドレス(x,y)は、参照ブロックアドレス算出部８１および対象隣接画素読み出し部８４に供給される。ステップＳ６１において、参照ブロックアドレス算出部８１は、対象ブロックアドレス(x,y)を取得する。
【０２６４】
また、図２８のステップＳ５１において対象ブロックについて求められた動きベクトル情報(dx,dy)は、参照ブロックアドレス算出部８１に入力される。ステップＳ６２において、参照ブロックアドレス算出部８１は、対象ブロックアドレス(x,y)と、動きベクトル情報(dx,dy)から、参照ブロックアドレス(x+dx,y+dy)を算出し、それを、参照隣接アドレス算出部８２に供給する。
【０２６５】
ステップＳ６３において、参照隣接アドレス算出部８２は、参照ブロックに対する参照隣接画素のアドレスである参照隣接アドレス(x+dx+δx,y+dy+δy)を算出し、それを参照隣接判定部７７に供給する。
【０２６６】
ステップＳ６４において、参照隣接アドレス(x+dx+δx,y+dy+δy)に基づいて、参照隣接判定部７７は、参照隣接画素は画枠内に存在するか否かを判定し、その判定結果を、参照隣接画素決定部８３に供給する。ステップＳ６４において、参照隣接画素は画枠内に存在しないと判定された場合、参照隣接画素決定部８３は、ステップ６５において、存在しない隣接画素について、図１２を参照して上述した端点処理を行って、参照隣接画素の画素値を決定する。そして、参照隣接画素決定部８３は、決定した画素値をフレームメモリ７２から読み出して、それを参照隣接画素の画素値として、図示せぬ内蔵バッファに蓄積する。
【０２６７】
一方、ステップＳ６４において、参照隣接画素は画枠内に存在すると判定された場合、処理は、ステップＳ６６に進む。参照隣接画素決定部８３は、ステップＳ６６において、通常の定義により隣接画素を決定し、フレームメモリ７２より読み出す。すなわち、参照隣接画素決定部８３は、H．264/AVC方式で定義されている参照隣接画素の画素値をフレームメモリ７２より読み出し、それを図示せぬ内蔵バッファに蓄積する。
【０２６８】
次に、図３０のフローチャートを参照して、図２８のステップＳ５４における２次予測処理について説明する。なお、図３０の例においては、４×４画素のイントラ予測を例に説明される。
【０２６９】
参照隣接画素決定部８２の内蔵バッファには、参照隣接画素の画素値が蓄積されている。また、対象隣接画素読み出し部８４は、動き予測・補償部７５からの対象ブロックアドレス(x,y)を用いて、フレームメモリ７２から、対象ブロックの画素値を読み出し、それを図示せぬ内蔵バッファに蓄積している。
【０２７０】
隣接画素差分算出部８５は、対象隣接画素読み出し部８４の内蔵バッファから、対象隣接画素[A']を読み出し、また、参照隣接画素決定部８５の内蔵バッファから、対象隣接画素に対応する参照隣接画素[B']を読み出す。隣接画素差分算出部８５は、ステップＳ７１において、各内蔵バッファから読み出された対象隣接画素[A']と参照隣接画素[B']の差分を算出し、隣接画素に対する残差[A'-B']として、図示せぬ内蔵バッファに蓄積する。
【０２７１】
イントラ予測部８６は、ステップＳ７２において、図１３および図１４で上述した９種類のイントラ予測モードのうち、１つのイントラ予測モードを選択する。イントラ予測部８６は、ステップＳ７３において、選択したイントラ予測モードで、差分（残差）を用いたイントラ予測処理を行う。
【０２７２】
すなわち、イントラ予測部８６は、隣接画素差分算出部８５の内蔵バッファから、隣接画素に対する残差[A'-B']を読み出す。そして、イントラ予測部８６は、読み出した隣接画素に対する残差[A'-B']を用いて、選択したイントラ予測モード[mode]で対象ブロックについてイントラ予測を行い、イントラ予測画像Ipred(A'-B')[mode]を生成する。
【０２７３】
ステップＳ７４において、イントラ予測部８６は、２次残差を生成する。すなわち、２次残差生成部８２は、差分によるイントラ予測画像Ipred(A'-B')[mode]を生成すると、それに対応する１次残差(A-B)を、対象ブロック差分バッファ８７から読み出す。２次残差生成部８２は、１次残差とイントラ予測画像Ipred(A'-B')[mode]との差分である２次残差を生成し、生成された２次残差を、動き予測・補償部７５に出力する。このとき、対応する２次予測におけるイントラ予測モードの情報も、動き予測・補償部７５に出力される。
【０２７４】
隣接画素予測部８３は、ステップＳ７５において、すべてのイントラ予測モードに対しての処理が終了したかを判定し、終了していないと判定した場合、ステップＳ７２に戻り、それ以降の処理を繰り返す。すなわち、ステップＳ７２において、他のイントラ予測モードが選択され、それ以降の処理が繰り返される。
【０２７５】
ステップＳ７５において、すべてのイントラ予測モードに対しての処理が終了したと判定された場合、処理は、ステップＳ７６に進む。
【０２７６】
ステップＳ７６において、動き予測・補償部７５は、２次予測部７６からの各イントラ予測モードの２次残差を比較し、その中で最も符号化効率がよいとされる２次残差のイントラ予測モードを、対象ブロックのイントラ予測モードとして決定する。すなわち、対象ブロックのイントラ予測モードとして、２次残差の値が最も小さいイントラ予測モードが決定される。
【０２７７】
ステップ７７において、動き予測・補償部７５は、さらに、決定されたイントラ予測モードの２次残差と１次残差を比較し、２次予測を用いるか否かを決定する。すなわち、２次残差の方が符号化効率がよいと判定された場合、２次予測を用いると決定され、インターする画像と２次残差の差分が、予測画像としてインター予測の候補となる。また、１次残差の方が符号化効率がよいと判定された場合、２次予測を用いないと決定され、図２８のステップＳ５２で求められた予測画像がインター予測の候補となる。
【０２７８】
すなわち、２次残差が１次残差より、より高い符号化効率を与える場合のみ、２次残差が符号化されて、復号側に送られる。
【０２７９】
なお、ステップＳ７７においては、残差そのものの値を比較し、値の小さいものを符号化効率がよいとして判定してもよいし、上述した式（７８）または式（７９）で示されるコスト関数値を算出することで符号化効率がよいものを判定するようにしてもよい。
【０２８０】
以上のように、参照隣接画素が画枠の外である場合、端点処理を行って参照隣接画素の画素値を決定するようにしたので、参照隣接画素が画枠の外である場合にも２次予測を行うことができる。これにより、符号化効率を向上させることができる。
【０２８１】
符号化された圧縮画像は、所定の伝送路を介して伝送され、画像復号装置により復号される。
【０２８２】
［画像復号装置の構成例］
図３１は、本発明を適用した画像処理装置としての画像復号装置の一実施の形態の構成を表している。
【０２８３】
画像復号装置１０１は、蓄積バッファ１１１、可逆復号部１１２、逆量子化部１１３、逆直交変換部１１４、演算部１１５、デブロックフィルタ１１６、画面並べ替えバッファ１１７、Ｄ／Ａ変換部１１８、フレームメモリ１１９、スイッチ１２０、イントラ予測部１２１、動き予測・補償部１２２、２次予測部１２３、参照隣接判定部１２４、およびスイッチ１２５により構成されている。
【０２８４】
蓄積バッファ１１１は伝送されてきた圧縮画像を蓄積する。可逆復号部１１２は、蓄積バッファ１１１より供給された、図３の可逆符号化部６６により符号化された情報を、可逆符号化部６６の符号化方式に対応する方式で復号する。逆量子化部１１３は可逆復号部１１２により復号された画像を、図３の量子化部６５の量子化方式に対応する方式で逆量子化する。逆直交変換部１１４は、図３の直交変換部６４の直交変換方式に対応する方式で逆量子化部１１３の出力を逆直交変換する。
【０２８５】
逆直交変換された出力は演算部１１５によりスイッチ１２５から供給される予測画像と加算されて復号される。デブロックフィルタ１１６は、復号された画像のブロック歪を除去した後、フレームメモリ１１９に供給し、蓄積させるとともに、画面並べ替えバッファ１１７に出力する。
【０２８６】
画面並べ替えバッファ１１７は、画像の並べ替えを行う。すなわち、図３の画面並べ替えバッファ６２により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。Ｄ／Ａ変換部１１８は、画面並べ替えバッファ１１７から供給された画像をＤ／Ａ変換し、図示せぬディスプレイに出力し、表示させる。
【０２８７】
スイッチ１２０は、インター処理される画像と参照される画像をフレームメモリ１１９から読み出し、動き予測・補償部１２２に出力するとともに、イントラ予測に用いられる画像をフレームメモリ１１９から読み出し、イントラ予測部１２１に供給する。
【０２８８】
イントラ予測部１２１には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報が可逆復号部１１２から供給される。イントラ予測部１２１は、この情報に基づいて、予測画像を生成し、生成した予測画像を、スイッチ１２５に出力する。
【０２８９】
動き予測・補償部１２２には、ヘッダ情報を復号して得られた情報のうち、予測モード情報、動きベクトル情報、参照フレーム情報などが可逆復号部１１２から供給される。なお、動き予測・補償部１２２には、対象ブロックに対して２次予測処理が適用されている場合には、２次予測を行うことを示す２次予測フラグと、２次予測におけるイントラ予測モード情報も可逆復号部１２２から供給される。
【０２９０】
動き予測・補償部１２２は、可逆復号部１１２からの２次予測フラグを参照して、２次予測処理が適用されているか否かを判定する。動き予測・補償部１２２は、２次予測処理が適用されていると判定した場合、２次予測部１２３に出力し、２次予測部１２３に２次予測を行わせる。
【０２９１】
また、動き予測・補償部１２２は、動きベクトル情報と参照フレーム情報に基づいて画像に動き予測と補償処理を施し、予測画像を生成する。すなわち、対象ブロックの予測画像は、参照フレームにおいて、対象ブロックに動きベクトルで対応付けられる参照ブロックの画素値が用いられて生成される。そして、動き予測・補償部１２２は、生成した予測画像と、２次予測部１２３からの予測差分値を加算して、予測画像として、スイッチ１２５に出力する。
【０２９２】
２次予測部１２３は、フレームメモリ１１９から読み出される対象隣接画素と参照隣接画素の差分を用いて、２次予測を行う。すなわち、２次予測部１２３は、可逆復号部１１２からの２次予測におけるイントラ予測モードで、対象ブロックについてイントラ予測を行い、イントラ予測画像を生成し、予測差分値として、動き予測・補償部１２２に出力する。
【０２９３】
一方、２次予測処理が適用されていない場合、動き予測・補償部１２２は、動きベクトル情報と参照フレーム情報に基づいて画像に動き予測と補償処理を施し、予測画像を生成する。動き予測・補償部１２２は、インター予測モードにより生成された予測画像をスイッチ１２５に出力する。
【０２９４】
スイッチ１２５は、動き予測・補償部１２２またはイントラ予測部１２１により生成された予測画像（または、予測画像と予測差分値）を選択し、演算部１１５に供給する。
【０２９５】
［２次予測部の構成例］
図３２は、２次予測部の詳細な構成例を示すブロック図である。
【０２９６】
図３２の例においては、２次予測部１２３は、参照ブロックアドレス算出部１３１、参照隣接アドレス算出部１３２、参照隣接画素決定部１３３、対象隣接画素読み出し部１３４、隣接画素差分算出部１３５、およびイントラ予測部１３６により構成される。
【０２９７】
なお、図３２の参照ブロックアドレス算出部１３１、参照隣接アドレス算出部１３２、参照隣接画素決定部１３３、対象隣接画素読み出し部１３４、および隣接画素差分算出部１３５は、基本的に、図８の参照ブロックアドレス算出部８１、参照隣接アドレス算出部８２、参照隣接画素決定部８３、対象隣接画素読み出し部８４、および隣接画素差分算出部８５とそれぞれ同様の処理を行う。
【０２９８】
すなわち、動きベクトル予測・補償部１２２は、対象ブロックに対する動きベクトル(dx,dy)を、参照ブロックアドレス算出部１３１に供給する。動きベクトル予測・補償部１２２は、対象ブロックアドレス(x,y)を、参照ブロックアドレス算出部１３１および対象隣接画素読み出し部１３４に供給する。
【０２９９】
参照ブロックアドレス算出部１３１は、動きベクトル予測・補償部１２２からの対象ブロックアドレス(x,y)と、対象ブロックに対する動きベクトル(dx,dy)から、参照ブロックアドレス(x+dx,y+dy)を決定する。参照ブロックアドレス算出部１３１は、決定した参照ブロックアドレス(x+dx,y+dy)を、参照隣接アドレス算出部１３２に供給する。
【０３００】
参照隣接アドレス算出部１３２は、参照ブロックアドレス(x+dx,y+dy) と対象ブロックに隣接する対象隣接画素の相対アドレスを基に、参照隣接画素の相対アドレスである参照隣接アドレスを算出する。参照隣接アドレス算出部１３２は、算出した参照隣接アドレス(x+dx+δx,y+dy+δy)を、参照隣接判定部１２４に供給する。
【０３０１】
参照隣接画素決定部１３３には、参照隣接判定部１２４から、参照隣接画素が参照フレームの画枠内に存在するか否かの判定結果が入力される。参照隣接画素決定部１３３は、参照隣接画素が参照フレームの画枠内に存在する場合、フレームメモリ１１９より、H．264/AVC方式で定義されている隣接画素を読み出し、それを図示せぬ内蔵バッファに蓄積する。
【０３０２】
一方、参照隣接画素決定部１３３は、参照隣接画素が参照フレームの画枠内に存在しない場合、存在しない隣接画素について、図１２を参照して上述した端点処理を行って、参照隣接画素の画素値を決定する。そして、参照隣接画素決定部１３３は、決定した画素値を、フレームメモリ１１９から読み出して、図示せぬ内蔵バッファに蓄積する。
【０３０３】
対象隣接画素読み出し部１３４は、動き予測・補償部１２２からの対象ブロックアドレス(x,y)を用いて、フレームメモリ１１９から、対象ブロックの画素値を読み出し、それを図示せぬ内蔵バッファに蓄積する。
【０３０４】
隣接画素差分算出部１３５は、対象隣接画素読み出し部１３４の内蔵バッファから、対象隣接画素[A']を読み出し、また、参照隣接画素決定部１３５の内蔵バッファから、対象隣接画素に対応する参照隣接画素[B']を読み出す。隣接画素差分算出部１３５は、各内蔵バッファから読み出された対象隣接画素[A']と参照隣接画素[B']の差分を算出し、隣接画素差分値[A'-B']として、図示せぬ内蔵バッファに蓄積する。
【０３０５】
イントラ予測部１３６は、隣接画素差分算出部１３５の内蔵バッファから、隣接画素に対する残差[A'-B']を読み出す。イントラ予測部１３６は、隣接画素差分値[A'-B']を用いて、可逆復号部１１２からのイントラ予測モード[mode]で対象ブロックについてイントラ予測を行い、イントラ予測画像Ipred(A'-B')[mode]を生成する。イントラ予測部１３６は、生成したイントラ予測画像を、差分予測値として、動き予測・補償部１２２に出力する。
【０３０６】
なお、図３２の例のイントラ予測部１３６における２次予測としてイントラ予測を行う回路は、イントラ予測部１２２との回路を共用することが可能である。
【０３０７】
次に、動き予測・補償部１２２および２次予測部１２３の動作を説明する。
【０３０８】
動き予測・補償部１２２においては、対象ブロックに対して２次予測がおこなわれているかどうかは、可逆復号部１１２により復号される２次予測フラグにより判定される。２次予測が行われている場合には、画像復号装置１０１において、２次予測に基づくインター予測処理が行われ、２次予測が行われていない場合には、画像復号装置１０１において、通常のインター予測処理が行われる。
【０３０９】
ここで、画像符号化装置５１において２次予測とは、上述したように、２次残差Res_2ndを次の式（８０）のように生成する処理である。
Res_2nd = (A - B) - Ipred(A'-B')[mode]                          ・・・（８０）
なお、Ipred()[mode]は、()の画素値を入力として、イントラ予測モードmodeにより生成した予測画像を示す。
【０３１０】
この式（８０）を変形して、画像復号装置１０１における処理は、次の式（８１）に示す処理となる。
A = Res_2nd + B + Ipred(A'-B')[mode]                           ・・・（８１）
【０３１１】
ここで、２次残差Res_2ndは、画像復号装置１０１においては、逆量子化および逆直交変換の結果得られる値、換言するに、逆直交変換部１１４から、演算部１１５に入力される値である。
【０３１２】
すなわち、画像復号装置１０１においては、２次予測部１２３により、予測差分値Ipred(B-B')[mode]が生成され、動き予測・補償部１２２により、参照ブロックの画素値[B]が生成され、それらが演算部１１５に出力される。この結果、式（８１）に示されるように、演算部１１５の出力として、対象ブロックの画素値[A]が求められる。
【０３１３】
［画像復号装置の復号処理の説明］
次に、図３３のフローチャートを参照して、画像復号装置１０１が実行する復号処理について説明する。
【０３１４】
ステップＳ１３１において、蓄積バッファ１１１は伝送されてきた画像を蓄積する。ステップＳ１３２において、可逆復号部１１２は、蓄積バッファ１１１から供給される圧縮画像を復号する。すなわち、図３の可逆符号化部６６により符号化されたＩピクチャ、Ｐピクチャ、並びにＢピクチャが復号される。
【０３１５】
このとき、符号化されていれば、動きベクトル情報、参照フレーム情報、予測モード情報、２次予測フラグ、および２次予測におけるイントラ予測モードを示す情報なども復号される。
【０３１６】
すなわち、予測モード情報がイントラ予測モード情報である場合、予測モード情報は、イントラ予測部１２１に供給される。予測モード情報がインター予測モード情報である場合、予測モード情報と対応する動きベクトル情報および参照フレーム情報は、動き予測・補償部１２２に供給される。このとき、図３の可逆符号化部６６により符号化されていれば、２次予測フラグは、動き予測・補償部１２２に供給され、２次予測におけるイントラ予測モードを示す情報は、２次予測部１２３に供給される。
【０３１７】
ステップＳ１３３において、逆量子化部１１３は可逆復号部１１２により復号された変換係数を、図３の量子化部６５の特性に対応する特性で逆量子化する。ステップＳ１３４において逆直交変換部１１４は逆量子化部１１３により逆量子化された変換係数を、図３の直交変換部６４の特性に対応する特性で逆直交変換する。これにより図３の直交変換部６４の入力（演算部６３の出力）に対応する差分情報が復号されたことになる。
【０３１８】
ステップＳ１３５において、演算部１１５は、後述するステップＳ１４１の処理で選択され、スイッチ１２５を介して入力される予測画像を差分情報と加算する。これにより元の画像が復号される。ステップＳ１３６においてデブロックフィルタ１１６は、演算部１１５より出力された画像をフィルタリングする。これによりブロック歪みが除去される。ステップＳ１３７においてフレームメモリ１１９は、フィルタリングされた画像を記憶する。
【０３１９】
ステップＳ１３８において、イントラ予測部１２１または動き予測・補償部１２２、は、可逆復号部１１２から供給される予測モード情報に対応して、それぞれ画像の予測処理を行う。
【０３２０】
すなわち、可逆復号部１１２からイントラ予測モード情報が供給された場合、イントラ予測部１２１は、イントラ予測モードのイントラ予測処理を行う。可逆復号部１１２からインター予測モード情報が供給された場合、動き予測・補償部１２２は、インター予測モードの動き予測・補償処理を行う。なお、このとき、動き予測・補償部１２２においては、２次予測フラグを参照して、２次予測に基づくインター予測処理、または通常のインター予測処理が行われる。
【０３２１】
ステップＳ１３８における予測処理の詳細は、図３４を参照して後述する。この処理により、イントラ予測部１２１により生成された予測画像または動き予測・補償部１２２により生成された予測画像（あるいは予測画像と予測差分値）がスイッチ１２５に供給される。
【０３２２】
ステップＳ１３９において、スイッチ１２５は予測画像を選択する。すなわち、イントラ予測部１２１により生成された予測画像、または動き予測・補償部１２２により生成された予測画像が供給される。したがって、供給された予測画像が選択されて演算部１１５に供給され、上述したように、ステップＳ１３４において逆直交変換部１１４の出力と加算される。
【０３２３】
ステップＳ１４０において、画面並べ替えバッファ１１７は並べ替えを行う。すなわち画像符号化装置５１の画面並べ替えバッファ６２により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
【０３２４】
ステップＳ１４１において、Ｄ／Ａ変換部１１８は、画面並べ替えバッファ１１７からの画像をＤ／Ａ変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
【０３２５】
［予測処理の説明］
次に、図３４のフローチャートを参照して、図３３のステップＳ１３８の予測処理を説明する。
【０３２６】
イントラ予測部１２１は、ステップＳ１７１において、対象ブロックがイントラ符号化されているか否かを判定する。可逆復号部１１２からイントラ予測モード情報がイントラ予測部１２１に供給されると、イントラ予測部１２１は、ステップ１７１において、対象ブロックがイントラ符号化されていると判定し、処理は、ステップＳ１７２に進む。
【０３２７】
イントラ予測部１２１は、ステップＳ１７２において、イントラ予測モード情報を取得し、ステップＳ１７３において、イントラ予測を行う。
【０３２８】
すなわち、処理対象の画像がイントラ処理される画像である場合、必要な画像がフレームメモリ１１９から読み出され、スイッチ１２０を介してイントラ予測部１２１に供給される。ステップＳ１７３において、イントラ予測部１２１は、ステップＳ１７２で取得したイントラ予測モード情報に従ってイントラ予測し、予測画像を生成する。生成した予測画像は、スイッチ１２５に出力される。
【０３２９】
一方、ステップＳ１７１において、イントラ符号化されていないと判定された場合、処理は、ステップＳ１７４に進む。
【０３３０】
ステップＳ１７４において、動き予測・補償部１２２は、可逆復号部１１２からの予測モード情報などを取得する。
【０３３１】
処理対象の画像がインター処理される画像である場合、可逆復号部１１２からインター予測モード情報、参照フレーム情報、動きベクトル情報、および２次予測フラグが動き予測・補償部１２２に供給される。この場合、ステップＳ１７４において、動き予測・補償部１２２は、インター予測モード情報、参照フレーム情報、動きベクトル情報を取得する。
【０３３２】
また、動き予測・補償部１２２は、ステップＳ１７５において、２次予測フラグを取得し、ステップＳ１７６において、対象ブロックに対して２次予測処理が適用されているか否かを判定する。ステップＳ１７６において、対象ブロックに対して２次予測処理が適用されていないと判定された場合、処理は、ステップＳ１７７に進む。
【０３３３】
ステップＳ１７７において、動き予測・補償部１２２は、通常のインター予測を行う。すなわち、処理対象の画像がインター予測処理される画像である場合、必要な画像がフレームメモリ１６９から読み出され、スイッチ１７０を介して動き予測・補償部１２２に供給される。ステップＳ１７７において動き予測・補償部１２２は、ステップＳ１７４で取得した動きベクトルに基づいて、インター予測モードの動き予測をし、予測画像を生成する。生成した予測画像は、スイッチ１２５に出力される。
【０３３４】
ステップＳ１７６において、対象ブロックに対して２次予測処理が適用されていると判定された場合、処理は、ステップＳ１７８に進む。
【０３３５】
なお、画像符号化装置５１により２次予測が適用されていれば、可逆復号部１１２において、２次予測に関するイントラ予測モードを示す情報も復号され、２次予測部１２３に供給される。
【０３３６】
２次予測部１２３は、ステップＳ１７８において、可逆復号部１１２から供給された２次予測におけるイントラ予測モードを示す情報を取得し、これに対応して、ステップＳ１７９において、２次予測に基づくインター予測処理として、２次インター予測処理を行う。この２次インター予測処理は、図３５を参照して後述する。
【０３３７】
ステップＳ１７９の処理により、インター予測が行われて予測画像が生成されるとともに、２次予測が行われて予測差分値が生成され、それらが加算されて、スイッチ１２５に出力される。
【０３３８】
次に、図３５のフローチャートを参照して、図３４のステップＳ１７９における２次インター予測処理について説明する。
【０３３９】
ステップＳ１９１において、動き予測・補償部１２２は、図３４のステップＳ１７４で取得した動きベクトルに基づいて、インター予測モードの動き予測をし、インター予測画像を生成する。すなわち、ステップＳ１９１の処理により、対象ブロックの予測画像が、参照フレームにおいて対象ブロックに動きベクトルで対応付けられる参照ブロックの画素値が用いられて生成される。
【０３４０】
また、動き予測・補償部１２２は、対象ブロックアドレス(x,y)および動きベクトル(dx,dy)を、参照ブロックアドレス算出部１３１に供給し、対象ブロックアドレス(x,y)を、対象隣接画素読み出し部１３４に供給する。
【０３４１】
ステップＳ１９２において、２次予測部１２３および参照隣接判定部１２４は、参照隣接画素決定処理を行う。この参照隣接画素決定処理の詳細は、図２９を参照して上述した処理と同様の処理であり、繰り返しになるので、その説明を省略する。
【０３４２】
ステップＳ１９２の処理により、参照ブロックに隣接する参照隣接画素が、参照フレームの画枠内に存在するか否かが判定され、その判定結果に応じて端点処理が施されることで、参照隣接画素の画素値が決定される。決定された参照隣接画素の画素値は、参照隣接画素決定部１３３の内蔵バッファに蓄積される。
【０３４３】
また、対象隣接画素読み出し部１３４は、動き予測・補償部１２２からの対象ブロックアドレス(x,y)を用いて、フレームメモリ１１９から、対象ブロックの画素値を読み出し、それを図示せぬ内蔵バッファに蓄積している。
【０３４４】
隣接画素差分算出部１３５は、対象隣接画素読み出し部１３４の内蔵バッファから、対象隣接画素[A']を読み出し、また、参照隣接画素決定部１３３の内蔵バッファから、対象隣接画素に対応する参照隣接画素[B']を読み出す。隣接画素差分算出部１３５は、ステップＳ１９３において、各内蔵バッファから読み出された対象隣接画素[A']と参照隣接画素[B']の差分である隣接画素差分値[A'-B'] を算出し、図示せぬ内蔵バッファに蓄積する。
【０３４５】
イントラ予測部１３６は、ステップＳ１９４において、図３４のステップＳ１７８において取得した２次予測におけるイントラ予測モードで、差分を用いたイントラ予測処理を行い、予測差分値Ipred(A'-B')[mode]を生成する。
【０３４６】
すなわち、イントラ予測部１３６は、隣接画素差分算出部１３５の内蔵バッファから、隣接画素差分値[A'-B']を読み出す。そして、イントラ予測部１３６は、読み出した隣接画素差分値[A'-B']を用いて、取得したイントラ予測モード[mode]で対象ブロックについてイントラ予測を行い、予測差分値Ipred(A'-B')[mode]を生成する。生成された予測差分値は、動き予測・補償部１２２に出力される。
【０３４７】
ステップＳ１９５において、動き予測・補償部１２２は、ステップＳ１９１において生成したインター予測画像と、イントラ予測部１３６からの予測差分値を加算し、予測画像として、スイッチ１２５に出力する。
【０３４８】
このインター予測画像と予測差分値は、図３３のステップＳ１３９においてスイッチ１２５により、予測画像として演算部１１５に出力される。そして、このインター予測画像と予測差分値が、図３３のステップＳ１３５において、演算部１１５により、逆直交変換部１１４からの差分情報と加算されることで、対象ブロックの画像が復号される。
【０３４９】
以上のように、画像符号化装置５１および画像復号装置１０１において、参照隣接画素が画枠外の場合に、端点処理を行い、参照隣接画素を決定するようにしたので、参照隣接画素が画枠外の場合でも、２次予測を行うことができる。
【０３５０】
これにより、符号化効率を向上させることができる。
【０３５１】
なお、上記説明においては、H．264/AVC方式のイントラ４×４予測モードを例に説明したが、本発明は、これに限らず、ブロックベースの動き予測・補償を行うあらゆる符号化装置および復号装置について適用可能である。また、本発明は、イントラ８×８予測モード、イントラ１６×１６予測モード、および色差信号に対するイントラ予測モードへの適用も可能である。
【０３５２】
以上においては、符号化方式としてH．264/AVC方式を用いるようにしたが、その他の符号化方式／復号方式を用いることもできる。
【０３５３】
なお、本発明は、例えば、MPEG、H．26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報（ビットストリーム）を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本発明は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本発明は、それらの画像符号化装置および画像復号装置などに含まれる動き予測補償装置にも適用することができる。
【０３５４】
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
【０３５５】
図３６は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【０３５６】
コンピュータにおいて、CPU(Central Processing Unit)３０１、ROM(Read Only Memory)３０２、RAM(Random Access Memory)３０３は、バス３０４により相互に接続されている。
【０３５７】
バス３０４には、さらに、入出力インタフェース３０５が接続されている。入出力インタフェース３０５には、入力部３０６、出力部３０７、記憶部３０８、通信部３０９、およびドライブ３１０が接続されている。
【０３５８】
入力部３０６は、キーボード、マウス、マイクロフォンなどよりなる。出力部３０７は、ディスプレイ、スピーカなどよりなる。記憶部３０８は、ハードディスクや不揮発性のメモリなどよりなる。通信部３０９は、ネットワークインタフェースなどよりなる。ドライブ３１０は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア３１１を駆動する。
【０３５９】
以上のように構成されるコンピュータでは、CPU３０１が、例えば、記憶部３０８に記憶されているプログラムを入出力インタフェース３０５及びバス３０４を介してRAM３０３にロードして実行することにより、上述した一連の処理が行われる。
【０３６０】
コンピュータ（CPU３０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア３１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供することができる。
【０３６１】
コンピュータでは、プログラムは、リムーバブルメディア３１１をドライブ３１０に装着することにより、入出力インタフェース３０５を介して、記憶部３０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部３０９で受信し、記憶部３０８にインストールすることができる。その他、プログラムは、ROM３０２や記憶部３０８に、あらかじめインストールしておくことができる。
【０３６２】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０３６３】
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０３６４】
５１  画像符号化装置，  ６６  可逆符号化部，  ７４  イントラ予測部，  ７５  動き予測・補償部，  ７６  ２次予測部，  ７７  参照隣接判定部，  ７８  予測画像選択部，  ８１  参照ブロックアドレス算出部，  ８２  参照隣接アドレス算出部，  ８３  参照隣接画素決定部，  ８４  対象隣接画素読み出し部，  ８５  隣接ブロック差分算出部，  ８６  イントラ予測部，  ８７  対象画素差分バッファ，  １０１  画像復号装置，  １１２  可逆復号部，  １２１  イントラ予測部，  １２２  動き予測・補償部，  １２３  ２次予測部，  １２４  参照隣接判定部，  １２５  スイッチ，  １３１  参照ブロックアドレス算出部，１３２  参照隣接アドレス算出部，  １３３  参照隣接画素決定部，  １３４  対象隣接画素読み出し部，  １３５  隣接画素差分算出部，  １３６  イントラ予測部
【図１】
2010258741.tif 000018
【図２】
2010258741.tif 000019
【図３】
2010258741.tif 000020
【図４】
2010258741.tif 000021
【図５】
2010258741.tif 000022
【図６】
2010258741.tif 000023
【図７】
2010258741.tif 000024
【図８】
2010258741.tif 000025
【図９】
2010258741.tif 000026
【図１０】
2010258741.tif 000027
【図１１】
2010258741.tif 000028
【図１２】
2010258741.tif 000029
【図１３】
2010258741.tif 000030
【図１４】
2010258741.tif 000031
【図１５】
2010258741.tif 000032
【図１６】
2010258741.tif 000033
【図１７】
2010258741.tif 000034
【図１８】
2010258741.tif 000035
【図１９】
2010258741.tif 000036
【図２０】
2010258741.tif 000037
【図２１】
2010258741.tif 000038
【図２２】
2010258741.tif 000039
【図２３】
2010258741.tif 000040
【図２４】
2010258741.tif 000041
【図２５】
2010258741.tif 000042
【図２６】
2010258741.tif 000043
【図２７】
2010258741.tif 000044
【図２８】
2010258741.tif 000045
【図２９】
2010258741.tif 000046
【図３０】
2010258741.tif 000047
【図３１】
2010258741.tif 000048
【図３２】
2010258741.tif 000049
【図３３】
2010258741.tif 000050
【図３４】
2010258741.tif 000051
【図３５】
2010258741.tif 000052
【図３６】
2010258741.tif 000053