(57)【要約】【課題】処理効率を向上させることができるようにする。【解決手段】サブマクロブロックＳＭＢ０のブロックＢ１が予測対象のブロックである場合、サブマクロブロックＳＢＭ０のブロックＢ１に隣接するテンプレートのうち、上部領域Ｕと左上部領域ＬＵに含まれる隣接画素の画素値としては、復号画像の画素値を用いるように設定される。一方、サブマクロブロックＳＢＭ０のブロックＢ１に隣接するテンプレートのうち、左部領域Ｌに含まれる隣接画素の画素値としては、予測画像の画素値を用いるように設定される。本発明は、例えば、H．264/AVC方式で符号化する画像符号化装置に適用することができる。【選択図】図１０
2010268259.tif 000002
【特許請求の範囲】
【請求項１】
画像の所定のブロックを構成するブロックに隣接する隣接画素を用いて、前記ブロックの予測を行う予測手段と、
前記隣接画素が前記所定のブロック内に属する場合、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素が前記所定のブロック外に存在する場合、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定する隣接画素設定手段と、
前記ブロックの画像を符号化する符号化手段とを
備える画像処理装置。
【請求項２】
前記予測手段は、前記隣接画素をテンプレートとして用いて、前記ブロックについて、前記テンプレートのマッチングによる前記予測を行う
請求項１に記載の画像処理装置。
【請求項３】
前記予測手段は、前記隣接画素をテンプレートとして用いて、前記ブロックの色差信号についても、前記テンプレートのマッチングによる前記予測を行う
請求項１に記載の画像処理装置。
【請求項４】
前記予測手段は、前記隣接画素の画素値を用いて、前記ブロックについて、前記予測として、イントラ予測を行う
請求項１に記載の画像処理装置。
【請求項５】
２×２の前記ブロックで構成される前記所定のブロックにおいて、
前記ブロックの位置が、前記所定のブロック内において左上の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、上部の隣接画素、および左部の隣接画素すべてについて、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素の画素値として設定する
請求項１に記載の画像処理装置。
【請求項６】
２×２の前記ブロックで構成される前記所定のブロックにおいて、
前記ブロックの位置が、前記所定のブロック内において右上の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、および上部の隣接画素について、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素のうち、前記所定のブロック内に属する左部の隣接画素について、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定する
請求項１に記載の画像処理装置。
【請求項７】
２×２の前記ブロックで構成される前記所定のブロックにおいて、
前記ブロックの位置が、前記所定のブロック内において左下の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、および左部の隣接画素について、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素のうち、前記所定のブロック内に属する上部の隣接画素について、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定する
請求項１に記載の画像処理装置。
【請求項８】
２×２の前記ブロックで構成される前記所定のブロックにおいて、
前記ブロックの位置が、前記所定のブロック内において右下の位置である場合、前記隣接画素のうち、前記所定のブロック内に属する左上部の隣接画素、上部の隣接画素、および左部の隣接画素すべてについて、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定する
請求項１に記載の画像処理装置。
【請求項９】
上下２つの前記ブロックで構成される前記所定のブロックにおいて、
前記ブロックの位置が、前記所定のブロック内において上部の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、上部の隣接画素、および左部の隣接画素すべてについて、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定する
請求項１に記載の画像処理装置。
【請求項１０】
上下２つの前記ブロックで構成される前記所定のブロックにおいて、
前記ブロックの位置が、前記所定のブロック内において下部の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、および左部の隣接画素について、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素のうち、前記所定のブロック内に属する上部の隣接画素について、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定する
請求項１に記載の画像処理装置。
【請求項１１】
左右２つの前記ブロックで構成される前記所定のブロックにおいて、
前記ブロックの位置が、前記所定のブロック内において左部の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、上部の隣接画素、および左部の隣接画素すべてについて、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定する
請求項１に記載の画像処理装置。
【請求項１２】
左右２つの前記ブロックで構成される前記所定のブロックにおいて、
前記ブロックの位置が、前記所定のブロック内において右部の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、および上部の隣接画素について、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素のうち、前記所定のブロック内に属する左部の隣接画素について、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定する
請求項１に記載の画像処理装置。
【請求項１３】
画像の所定のブロックを構成するブロックに隣接する隣接画素を用いて、前記ブロックの予測を行う画像処理装置が、
前記隣接画素が前記所定のブロック内に属する場合、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素が前記所定のブロック外に存在する場合、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、
設定された前記隣接画素を用いて、前記ブロックの予測を行い、
前記ブロックの画像を符号化するステップを
含む画像処理方法。
【請求項１４】
画像の所定のブロックを構成するブロックに隣接する隣接画素を用いて、前記ブロックの予測を行う画像処理装置のコンピュータに、
前記隣接画素が前記所定のブロック内に属する場合、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素が前記所定のブロック外に存在する場合、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、
設定された前記隣接画素を用いて、前記ブロックの予測を行い、
前記ブロックの画像を符号化するステップを
含む処理を実行させるためのプログラム。
【請求項１５】
符号化されているブロックの画像を復号する復号手段と、
画像の所定のブロックを構成する前記ブロックに隣接する隣接画素を用いて、前記ブロックの予測を行う予測手段と、
前記隣接画素が前記所定のブロック内に属する場合、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素が前記所定のブロック外に存在する場合、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定する隣接画素設定手段と、
復号された前記ブロックの画像と、前記予測手段により前記予測が行われた前記ブロックの画像とを加算する演算手段と
備える画像処理装置。
【請求項１６】
前記予測手段は、前記隣接画素をテンプレートとして用いて、前記ブロックについて、前記テンプレートのマッチングによる前記予測を行う
請求項１５に記載の画像処理装置。
【請求項１７】
前記予測手段は、前記隣接画素をテンプレートとして用いて、前記ブロックの色差信号についても、前記テンプレートのマッチングによる前記予測を行う
請求項１５に記載の画像処理装置。
【請求項１８】
前記予測手段は、前記隣接画素を用いて、前記ブロックについて、前記予測として、イントラ予測を行う
請求項１５に記載の画像処理装置。
【請求項１９】
２×２の前記ブロックで構成される前記所定のブロックにおいて、
前記ブロックの位置が、前記所定のブロック内において左上の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、上部の隣接画素、および左部の隣接画素すべてについて、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定する
請求項１５に記載の画像処理装置。
【請求項２０】
２×２の前記ブロックで構成される前記所定のブロックにおいて、
前記ブロックの位置が、前記所定のブロック内において右上の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、および上部の隣接画素について、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素のうち、前記所定のブロック内に属する左部の隣接画素について、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定する
請求項１５に記載の画像処理装置。
【請求項２１】
２×２の前記ブロックで構成される前記所定のブロックにおいて、
前記ブロックの位置が、前記所定のブロック内において左下の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、および左部の隣接画素について、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素のうち、前記所定のブロック内に属する上部の隣接画素について、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定する
請求項１５に記載の画像処理装置。
【請求項２２】
２×２の前記ブロックで構成される前記所定のブロックにおいて、
前記ブロックの位置が、前記所定のブロック内において右下の位置である場合、前記隣接画素のうち、前記所定のブロック内に属する左上部の隣接画素、上部の隣接画素、および左部の隣接画素すべてについて、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定する
請求項１５に記載の画像処理装置。
【請求項２３】
上下２つの前記ブロックで構成される前記所定のブロックにおいて、
前記ブロックの位置が、前記所定のブロック内において上部の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、上部の隣接画素、および左部の隣接画素すべてについて、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定する
請求項１５に記載の画像処理装置。
【請求項２４】
上下２つの前記ブロックで構成される前記所定のブロックにおいて、
前記ブロックの位置が、前記所定のブロック内において下部の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、および左部の隣接画素について、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素のうち、前記所定のブロック内に属する上部の隣接画素について、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定する
請求項１５に記載の画像処理装置。
【請求項２５】
左右２つの前記ブロックで構成される前記所定のブロックにおいて、
前記ブロックの位置が、前記所定のブロック内において左部の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、上部の隣接画素、および左部の隣接画素すべてについて、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定する
請求項１５に記載の画像処理装置。
【請求項２６】
左右２つの前記ブロックで構成される前記所定のブロックにおいて、
前記ブロックの位置が、前記所定のブロック内において右部の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、および上部の隣接画素について、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素のうち、前記所定のブロック内に属する左部の隣接画素について、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定する
請求項１５に記載の画像処理装置。
【請求項２７】
画像の所定のブロックを構成するブロックに隣接する隣接画素を用いて、前記ブロックの予測を行う画像処理装置が、
符号化されている前記ブロックの画像を復号し、
前記隣接画素が前記所定のブロック内に属する場合、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素が前記所定のブロック外に存在する場合、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、
設定された前記隣接画素を用いて、前記ブロックの予測を行い、
復号された前記ブロックの画像と、前記予測が行われた前記ブロックの画像とを加算するステップを
含む画像処理方法。
【請求項２８】
画像の所定のブロックを構成するブロックに隣接する隣接画素を用いて、前記ブロックの予測を行う画像処理装置のコンピュータに、
符号化されている前記ブロックの画像を復号し、
前記隣接画素が前記所定のブロック内に属する場合、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素が前記所定のブロック外に存在する場合、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、
設定された前記隣接画素を用いて、前記ブロックの予測を行い、
復号された前記ブロックの画像と、前記予測が行われた前記ブロックの画像とを加算するステップを
含む処理を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および方法、並びにプログラムに関し、特に、隣接画素を用いる予測処理において、パイプライン処理を行うことができるようにした画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
近年、画像情報をデジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮する符号化方式を採用して画像を圧縮符号する装置が普及しつつある。この符号化方式には、例えば、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) において、符号化効率の改善に関する検討が継続され行なわれている。
【０００８】
このH．264/AVC方式が、従来のMPEG2方式などに比して高い符号化効率を実現する要因の１つとして、イントラ予測処理を挙げることができる。
【０００９】
H．264/AVC方式において、輝度信号のイントラ予測モードには、９種類の４×４画素および８×８画素のブロック単位、並びに４種類の１６×１６画素のマクロブロック単位の予測モードがある。また、色差信号のイントラ予測モードには、４種類の８×８画素のブロック単位の予測モードがある。この色差信号のイントラ予測モードは、輝度信号のイントラ予測モードと独立に設定が可能である。
【００１０】
輝度信号の４×４画素および８×８画素のイントラ予測モードについては、４×４画素および８×８画素の輝度信号のブロック毎に１つのイントラ予測モードが定義される。輝度信号の１６×１６画素のイントラ予測モードと色差信号のイントラ予測モードについては、１つのマクロブロックに対して１つの予測モードが定義される。
【００１１】
近年、このH．264/AVC方式におけるイントラ予測の効率をさらに改善する方法が、例えば、非特許文献１に提案されている。
【００１２】
図１を参照して、非特許文献１に提案されているイントラ予測方式としてのイントラテンプレートマッチング方式を説明する。図１の例においては、符号化対象の対象フレーム上に、４×４画素の対象ブロックＡと、対象フレームにおいて、すでに符号化済みの画素だけで構成される所定の探索範囲Ｅが示されている。
【００１３】
対象ブロックＡには、すでに符号化済みの画素で構成されるテンプレート領域Ｂが隣接している。例えば、テンプレート領域Ｂは、符号化処理をラスタスキャン順に行う場合には、図１に示されるように、対象ブロックＡの左および上側に位置する領域であり、フレームメモリに復号画像が蓄積されている領域である。
【００１４】
イントラテンプレートマッチング方式においては、対象フレーム上の所定の探索範囲Ｅ内において、テンプレート領域Ｂを用い、例えば、SAD(Sum of Absolute Difference) 等のコスト関数値を最小とするようにマッチング処理が行われる。その結果、テンプレート領域Ｂの画素値と相関が最も高くなる領域Ｂ’が探索され、探索された領域Ｂ’に対応するブロックＡ’を、対象ブロックＡに対する予測画像として、対象ブロックＡに対する動きベクトルが探索される。
【００１５】
このように、イントラテンプレートマッチング方式による動きベクトル探索処理は、テンプレートマッチング処理に復号画像を用いている。したがって、所定の探索範囲Ｅを予め定めておくことにより、符号化側と復号側において同一の処理を行うことが可能であり、復号側に、動きベクトルの情報を送る必要がない。これにより、イントラ予測の効率が改善される。
【００１６】
ところで、H．264/AVC方式の動き予測補償においては、以下のようにすることで、予測効率を向上させている。
【００１７】
例えば、MPEG2方式においては、線形内挿処理により１／２画素精度の動き予測・補償処理が行われている。これに対して、H．264/AVC方式においては、６タップのFIR (Finite Impulse Response Filter)フィルタを用いた１／４画素精度の予測・補償処理が行われている。
【００１８】
また、MPEG2方式においては、フレーム動き補償モードの場合には、１６×１６画素を単位として動き予測・補償処理が行われている。フィールド動き補償モードの場合には、第１フィールドと第２フィールドのそれぞれに対し、１６×８画素を単位として動き予測・補償処理が行われている。
【００１９】
これに対して、H．264/AVC方式においては、ブロックサイズを可変にして、動き予測・補償を行うことができる。すなわち、H．264/AVC方式においては、１６×１６画素で構成される１つのマクロブロックを、１６×１６、１６×８、８×１６、あるいは８×８のいずれかのパーティションに分割して、それぞれ独立した動きベクトル情報を持つことが可能である。また、８×８パーティションに関しては、８×８、８×４、４×８、あるいは４×４のいずれかのサブパーティションに分割し、それぞれ独立した動きベクトル情報を持つことが可能である。
【００２０】
しかしながら、H．264/AVC方式においては、上述した１／４画素精度、およびブロック可変の動き予測・補償処理が行われることにより、膨大な動きベクトル情報が生成されてしまい、これをこのまま符号化してしまうと、符号化効率の低下を招いていた。
【００２１】
そこで、これから符号化されようとしている対象ブロックの予測動きベクトル情報を、既に符号化済の、隣接するブロックの動きベクトル情報を用いてメディアンオペレーションにより生成する方法などにより、符号化効率の低下を抑えることが提案されている。
【００２２】
なお、このようなメディアン予測を用いても、画像圧縮情報における動きベクトル情報の占める割合は少なくない。これに対して、非特許文献２に記載のインターテンプレートマッチング方式が提案されている。この方式とは、符号化対象の画像の領域に対して所定の位置関係で隣接すると共に復号画像の一部であるテンプレート領域の復号画像と相関が高い画像の領域を、復号画像から探索して、探索された領域と所定の位置関係とに基づいて予測を行う方式である。
【００２３】
図２を参照して、非特許文献２に提案されているインターテンプレートマッチング方式を説明する。
【００２４】
図２の例においては、符号化対象の対象フレーム（ピクチャ）と、動きベクトルを探索する際に参照される参照フレームが示されている。対象フレームには、これから符号化されようとしている対象ブロックＡと、対象ブロックＡに対して隣接するとともに、すでに符号化済みの画素で構成されるテンプレート領域Ｂが示されている。例えば、テンプレート領域Ｂは、符号化処理をラスタスキャン順に行う場合には、図２に示されるように、対象ブロックＡの左および上側に位置する領域であり、フレームメモリに復号画像が蓄積されている領域である。
【００２５】
インターテンプレートマッチング方式においては、参照フレーム上の所定の探索範囲Ｅ内で、例えば、SAD 等をコスト関数値としてテンプレートマッチング処理が行われ、テンプレート領域Ｂの画素値と相関が最も高くなる領域Ｂ’が探索される。そして、探索された領域Ｂ’に対応するブロックＡ’が、対象ブロックＡに対する予測画像とされ、対象ブロックＡに対する動きベクトルＰが探索される。
【００２６】
このインターテンプレートマッチング方式では、マッチングに復号画像を用いているため、探索範囲を予め定めておくことで、符号化側と復号側において同一の処理を行うことが可能である。すなわち、復号側においても上述したような予測・補償処理を行うことにより、符号化側からの画像圧縮情報の中に動きベクトル情報を持つ必要がないため、符号化効率の低下を抑えることが可能である。
【００２７】
ところで、また、H．264/AVC方式においては、マクロブロックサイズが１６画素×１６画素と定義されているが、マクロブロックサイズを１６画素×１６画素とするのは、次世代符号化方式の対象となるような、UHD(Ultra High Definition ; 4000画素×2000画素)といった大きな画枠に対しては最適ではない。
【００２８】
そこで、非特許文献３などにおいては、マクロブロックサイズを、例えば、３２画素×３２画素といった大きさにすることが提案されている。
【先行技術文献】
【非特許文献】
【００２９】
【非特許文献１】“Intra Prediction by Template Matching”, T.K. Tan et al, ICIP2006
【非特許文献２】“Inter Frame Coding with Template Matching Averaging”, Y. Suzuki et al, ICIP2007
【非特許文献３】“Video Coding Using Extended Block Sizes”, Study Group 16 Contribution 123 , ITU , January 2009
【発明の概要】
【発明が解決しようとする課題】
【００３０】
ここで、図３を参照して、イントラまたはインターテンプレートマッチング予測処理において、４×４画素ブロック単位で処理を行う場合を考える。
【００３１】
図３の例においては、１６×１６画素のマクロブロックが示されており、マクロブロックには、マクロブロック内において左上に位置する、８×８画素で構成されるサブマクロブロックが示されている。このサブマクロブロックは、それぞれ４×４画素で構成される、左上のブロック０、右上のブロック１、左下のブロック２、右下のブロック３により構成されている。
【００３２】
例えば、ブロック１におけるテンプレートマッチング予測処理を行う際には、ブロック１に対して、左上部および上部に隣接する左上部および上部テンプレート領域Ｐ１と、左部に隣接する左部テンプレート領域Ｐ２に含まれる画素の画素値が必要となる。
【００３３】
ここで、左上部および上部テンプレート領域Ｐ１に含まれる画素は、すでに復号画像として得られているが、左部テンプレート領域Ｐ２に含まれる画素の画素値を得るためには、ブロック０に対する復号画像が必要とされる。
【００３４】
すなわち、ブロック０に対するテンプレートマッチング予測処理、差分処理、直交変換処理、量子化処理、逆量子化処理、および逆直交変換処理などが終了されなければ、ブロック１に対する処理を開始することが困難であった。したがって、従来のテンプレートマッチング予測処理においては、ブロック０とブロック１において、パイプライン処理を行うことが困難であった。
【００３５】
このことは、テンプレートマッチング予測処理のみならず、同じように隣接画素を用いた予測処理であるH．264/AVC方式におけるイントラ予測処理についても同様に言うことができる。
【００３６】
本発明は、このような状況に鑑みてなされたものであり、隣接画素を用いる予測処理において、パイプライン処理を行うことができるようにするものである。
【課題を解決するための手段】
【００３７】
本発明の第１の側面の画像処理装置は、画像の所定のブロックを構成するブロックに隣接する隣接画素を用いて、前記ブロックの予測を行う予測手段と、前記隣接画素が前記所定のブロック内に属する場合、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素が前記所定のブロック外に存在する場合、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定する隣接画素設定手段と、前記ブロックの画像を符号化する符号化手段とを備える。
【００３８】
前記予測手段は、前記隣接画素をテンプレートとして用いて、前記ブロックについて、前記テンプレートのマッチングによる前記予測を行うことができる。
【００３９】
前記予測手段は、前記隣接画素をテンプレートとして用いて、前記ブロックの色差信号についても、前記テンプレートのマッチングによる前記予測を行うことができる。
【００４０】
前記予測手段は、前記隣接画素の画素値を用いて、前記ブロックについて、前記予測として、イントラ予測を行うことができる。
【００４１】
２×２の前記ブロックで構成される前記所定のブロックにおいて、前記ブロックの位置が、前記所定のブロック内において左上の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、上部の隣接画素、および左部の隣接画素すべてについて、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素の画素値として設定することができる。
【００４２】
２×２の前記ブロックで構成される前記所定のブロックにおいて、前記ブロックの位置が、前記所定のブロック内において右上の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、および上部の隣接画素について、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素のうち、前記所定のブロック内に属する左部の隣接画素について、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定することができる。
【００４３】
２×２の前記ブロックで構成される前記所定のブロックにおいて、前記ブロックの位置が、前記所定のブロック内において左下の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、および左部の隣接画素について、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素のうち、前記所定のブロック内に属する上部の隣接画素について、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定することができる。
【００４４】
２×２の前記ブロックで構成される前記所定のブロックにおいて、前記ブロックの位置が、前記所定のブロック内において右下の位置である場合、前記隣接画素のうち、前記所定のブロック内に属する左上部の隣接画素、上部の隣接画素、および左部の隣接画素すべてについて、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定することができる。
【００４５】
上下２つの前記ブロックで構成される前記所定のブロックにおいて、前記ブロックの位置が、前記所定のブロック内において上部の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、上部の隣接画素、および左部の隣接画素すべてについて、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定することができる。
【００４６】
上下２つの前記ブロックで構成される前記所定のブロックにおいて、前記ブロックの位置が、前記所定のブロック内において下部の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、および左部の隣接画素について、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素のうち、前記所定のブロック内に属する上部の隣接画素について、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定することができる。
【００４７】
左右２つの前記ブロックで構成される前記所定のブロックにおいて、前記ブロックの位置が、前記所定のブロック内において左部の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、上部の隣接画素、および左部の隣接画素すべてについて、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定することができる。
【００４８】
左右２つの前記ブロックで構成される前記所定のブロックにおいて、前記ブロックの位置が、前記所定のブロック内において右部の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、および上部の隣接画素について、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素のうち、前記所定のブロック内に属する左部の隣接画素について、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定することができる。
【００４９】
本発明の第１の側面の画像処理方法は、画像の所定のブロックを構成するブロックに隣接する隣接画素を用いて、前記ブロックの予測を行う画像処理装置が、前記隣接画素が前記所定のブロック内に属する場合、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素が前記所定のブロック外に存在する場合、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、設定された前記隣接画素を用いて、前記ブロックの予測を行い、前記ブロックの画像を符号化するステップを含む。
【００５０】
本発明の第１の側面のプログラムは、画像の所定のブロックを構成するブロックに隣接する隣接画素を用いて、前記ブロックの予測を行う画像処理装置のコンピュータに、前記隣接画素が前記所定のブロック内に属する場合、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素が前記所定のブロック外に存在する場合、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、設定された前記隣接画素を用いて、前記ブロックの予測を行い、前記ブロックの画像を符号化するステップを含む処理を実行させる。
【００５１】
本発明の第２の側面の画像処理装置は、符号化されているブロックの画像を復号する復号手段と、画像の所定のブロックを構成する前記ブロックに隣接する隣接画素を用いて、前記ブロックの予測を行う予測手段と、前記隣接画素が前記所定のブロック内に属する場合、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素が前記所定のブロック外に存在する場合、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定する隣接画素設定手段と、復号された前記ブロックの画像と、前記予測手段により前記予測が行われた前記ブロックの画像とを加算する演算手段と備える。
【００５２】
前記予測手段は、前記隣接画素をテンプレートとして用いて、前記ブロックについて、前記テンプレートのマッチングによる前記予測を行うことができる。
【００５３】
前記予測手段は、前記隣接画素をテンプレートとして用いて、前記ブロックの色差信号についても、前記テンプレートのマッチングによる前記予測を行うことができる。
【００５４】
前記予測手段は、前記隣接画素の画素値を用いて、前記ブロックについて、前記予測として、イントラ予測を行うことができる。
【００５５】
２×２の前記ブロックで構成される前記所定のブロックにおいて、前記ブロックの位置が、前記所定のブロック内において左上の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、上部の隣接画素、および左部の隣接画素すべてについて、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素の画素値として設定することができる。
【００５６】
２×２の前記ブロックで構成される前記所定のブロックにおいて、前記ブロックの位置が、前記所定のブロック内において右上の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、および上部の隣接画素について、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素のうち、前記所定のブロック内に属する左部の隣接画素について、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定することができる。
【００５７】
２×２の前記ブロックで構成される前記所定のブロックにおいて、前記ブロックの位置が、前記所定のブロック内において左下の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、および左部の隣接画素について、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素のうち、前記所定のブロック内に属する上部の隣接画素について、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定することができる。
【００５８】
２×２の前記ブロックで構成される前記所定のブロックにおいて、前記ブロックの位置が、前記所定のブロック内において右下の位置である場合、前記隣接画素のうち、前記所定のブロック内に属する左上部の隣接画素、上部の隣接画素、および左部の隣接画素すべてについて、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定することができる。
【００５９】
上下２つの前記ブロックで構成される前記所定のブロックにおいて、前記ブロックの位置が、前記所定のブロック内において上部の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、上部の隣接画素、および左部の隣接画素すべてについて、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定することができる。
【００６０】
上下２つの前記ブロックで構成される前記所定のブロックにおいて、前記ブロックの位置が、前記所定のブロック内において下部の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、および左部の隣接画素について、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素のうち、前記所定のブロック内に属する上部の隣接画素について、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定することができる。
【００６１】
左右２つの前記ブロックで構成される前記所定のブロックにおいて、前記ブロックの位置が、前記所定のブロック内において左部の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、上部の隣接画素、および左部の隣接画素すべてについて、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定することができる。
【００６２】
左右２つの前記ブロックで構成される前記所定のブロックにおいて、前記ブロックの位置が、前記所定のブロック内において右部の位置である場合、前記隣接画素のうち、前記所定のブロック外に存在する左上部の隣接画素、および上部の隣接画素について、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素のうち、前記所定のブロック内に属する左部の隣接画素について、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定することができる。
【００６３】
本発明の第２の画像処理方法は、画像の所定のブロックを構成するブロックに隣接する隣接画素を用いて、前記ブロックの予測を行う画像処理装置が、符号化されている前記ブロックの画像を復号し、前記隣接画素が前記所定のブロック内に属する場合、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素が前記所定のブロック外に存在する場合、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、設定された前記隣接画素を用いて、前記ブロックの予測を行い、復号された前記ブロックの画像と、前記予測が行われた前記ブロックの画像とを加算するステップを含む。
【００６４】
本発明の第２のプログラムは、画像の所定のブロックを構成するブロックに隣接する隣接画素を用いて、前記ブロックの予測を行う画像処理装置のコンピュータに、符号化されている前記ブロックの画像を復号し、前記隣接画素が前記所定のブロック内に属する場合、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素が前記所定のブロック外に存在する場合、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定し、設定された前記隣接画素を用いて、前記ブロックの予測を行い、復号された前記ブロックの画像と、前記予測が行われた前記ブロックの画像とを加算するステップを含む処理を実行させる。
【００６５】
本発明の第１の側面においては、画像の所定のブロックを構成するブロックに隣接する隣接画素が前記所定のブロック内に属する場合、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素が前記所定のブロック外に存在する場合、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定される。そして、設定された前記隣接画素を用いて、前記ブロックの予測が行われ、前記ブロックの画像が符号化される。
【００６６】
本発明の第２の側面においては、符号化されている所定のブロックを構成するブロックの画像が復号され、前記ブロックに隣接する隣接画素が前記所定のブロック内に属する場合、前記隣接画素の予測画像を、前記予測に用いる前記隣接画素として設定し、前記隣接画素が前記所定のブロック外に存在する場合、前記隣接画素の復号画像を、前記予測に用いる前記隣接画素として設定される。そして、設定された前記隣接画素を用いて、前記ブロックの予測が行われ、復号された前記ブロックの画像と、前記予測が行われた前記ブロックの画像とが加算される。
【００６７】
なお、上述の画像処理装置のそれぞれは、独立した装置であっても良いし、１つの画像符号化装置または画像復号装置を構成している内部ブロックであってもよい。
【発明の効果】
【００６８】
本発明の第１の側面によれば、画像を符号化することができる。また、本発明の第１の側面によれば、隣接画素を用いる予測処理において、パイプライン処理を行うことができる。
【００６９】
本発明の第２の側面によれば、画像を復号することができる。また、本発明の第２の側面によれば、隣接画素を用いる予測処理において、パイプライン処理を行うことができる。
【図面の簡単な説明】
【００７０】
【図１】イントラテンプレートマッチング方式について説明する図である。
【図２】インターテンプレートマッチング方式について説明する図である。
【図３】従来のテンプレートを説明する図である。
【図４】本発明を適用した画像符号化装置の一実施の形態の構成を示すブロック図である。
【図５】可変ブロックサイズ動き予測・補償処理を説明する図である。
【図６】１／４画素精度の動き予測・補償処理を説明する図である。
【図７】マルチ参照フレームの動き予測・補償方式について説明する図である。
【図８】動きベクトル情報の生成方法の例を説明する図である。
【図９】イントラテンプレート動き予測・補償部の詳細な構成例を示すブロック図である。
【図１０】対象ブロックの予測に用いられるテンプレートの例を示す図である。
【図１１】２×２ブロックで構成されるマクロブロックにおける対象ブロックのテンプレートの例を示す図である。
【図１２】上下２ブロックで構成されるマクロブロックにおける対象ブロックのテンプレートの例を示す図である。
【図１３】左右２ブロックで構成されるマクロブロックにおける対象ブロックのテンプレートの例を示す図である。
【図１４】図２の画像符号化装置の符号化処理を説明するフローチャートである。
【図１５】図１４のステップＳ２１の予測処理を説明するフローチャートである。
【図１６】１６×１６画素のイントラ予測モードの場合の処理順序を説明する図である。
【図１７】輝度信号の４×４画素のイントラ予測モードの種類を示す図である。
【図１８】輝度信号の４×４画素のイントラ予測モードの種類を示す図である。
【図１９】４×４画素のイントラ予測の方向を説明する図である。
【図２０】４×４画素のイントラ予測を説明する図である。
【図２１】輝度信号の４×４画素のイントラ予測モードの符号化を説明する図である。
【図２２】輝度信号の８×８画素のイントラ予測モードの種類を示す図である。
【図２３】輝度信号の８×８画素のイントラ予測モードの種類を示す図である。
【図２４】輝度信号の１６×１６画素のイントラ予測モードの種類を示す図である。
【図２５】輝度信号の１６×１６画素のイントラ予測モードの種類を示す図である。
【図２６】１６×１６画素のイントラ予測を説明する図である。
【図２７】色差信号のイントラ予測モードの種類を示す図である。
【図２８】図１５のステップＳ３１のイントラ予測処理を説明するフローチャートである。
【図２９】図１５のステップＳ３２のインター動き予測処理を説明するフローチャートである。
【図３０】図１５のステップＳ３３のイントラテンプレート動き予測処理を説明するフローチャートである。
【図３１】図１５のステップＳ３５のインターテンプレート動き予測処理を説明するフローチャートである。
【図３２】図３０のステップＳ６１または図３１のステップＳ７１のテンプレート画素設定処理を説明するフローチャートである。
【図３３】テンプレート画素設定による効果について説明する図である。
【図３４】本発明を適用した画像復号装置の一実施の形態の構成を示すブロック図である。
【図３５】図３４の画像復号装置の復号処理を説明するフローチャートである。
【図３６】図３５のステップＳ１３８の予測処理を説明するフローチャートである。
【図３７】本発明を適用した画像符号化装置の他の実施の形態の構成を示すブロック図である。
【図３８】イントラ予測部の詳細な構成例を示すブロック図である。
【図３９】図１４のステップＳ２１の予測処理の他の例を説明するフローチャートである。
【図４０】図３９のステップＳ２０１のイントラ予測処理を説明するフローチャートである。
【図４１】本発明を適用した画像復号装置の他の実施の形態の構成を示すブロック図である。
【図４２】図３５のステップＳ１３８の予測処理の他の例を説明するフローチャートである。
【図４３】コンピュータのハードウエアの構成例を示すブロック図である。
【発明を実施するための形態】
【００７１】
以下、図を参照して本発明の実施の形態について説明する。なお、説明は以下の順序で行う。
１．第１の実施の形態（隣接画素設定：テンプレートマッチング予測の例）
２．第１の実施の形態（隣接画素設定：イントラ予測の例）
【００７２】
＜１．第１の実施の形態＞
［画像符号化装置の構成例］
図４は、本発明を適用した画像処理装置としての画像符号化装置の一実施の形態の構成を表している。
【００７３】
この画像符号化装置１は、特に言及しない場合、例えば、H．264及びMPEG-4 Part10（Advanced Video Coding）（以下H．264/AVCと記す）方式で画像を圧縮符号化する。すなわち、実際には、画像符号化装置１においては、図１または図２で上述したテンプレートマッチング方式も用いられるので、テンプレートマッチング方式以外は、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()を次の式（１）のように定義する。
【０１０６】
【数１】
2010268259.tif 000003
なお、入力画像が８ビット精度である場合、max_pixの値は255となる。
【０１０７】
位置ｂおよびｄにおける画素値は、６タップのFIRフィルタを用いて、次の式（２）のように生成される。
【数２】
2010268259.tif 000004
【０１０８】
位置ｃにおける画素値は、水平方向および垂直方向に６タップのFIRフィルタを適用し、次の式（３）のように生成される。
【数３】
2010268259.tif 000005
なお、Clip処理は、水平方向および垂直方向の積和処理の両方を行った後、最後に１度のみ実行される。
【０１０９】
位置ｅ１乃至ｅ３は、次の式（４）のように線形内挿により生成される。
【数４】
2010268259.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                                                ・・・（６）
【０１２０】
なお、実際には、動きベクトル情報の水平方向、垂直方向のそれぞれの成分に対して、独立に処理が行われる。
【０１２１】
このように、予測動きベクトル情報を生成し、隣接するブロックとの相関で生成された予測動きベクトル情報と動きベクトル情報との差分を、圧縮画像のヘッダ部に付加することにより、動きベクトル情報を低減することができる。
【０１２２】
ところで、このようなメディアン予測を用いても、画像圧縮情報における動きベクトル情報の占める割合は少なくない。そこで、画像符号化装置１においては、符号化対象の画像の領域に対して所定の位置関係で隣接する隣接画素で構成されるテンプレートを利用することで、動きベクトルを復号側に送る必要のないテンプレート予測モードの動き予測補償処理も行う。その際、画像符号化装置１においては、そのテンプレートに用いる隣接画素が次のように設定される。
【０１２３】
［イントラＴＰ動き予測・補償部の詳細な構成例］
図９は、イントラＴＰ動き予測・補償部の詳細な構成例を示すブロック図である。
【０１２４】
図９の例の場合、イントラＴＰ動き予測・補償部２５は、対象ブロックアドレスバッファ４１、テンプレートアドレス算出部４２、およびテンプレートマッチング予測・補償部４３により構成される。
【０１２５】
イントラ予測部２４からの対象ブロックアドレスは、対象ブロックアドレスバッファ４１に供給される。また、図示されないが、イントラ予測部２４からのイントラ予測する画像は、テンプレートマッチング予測・補償部４３に供給される。
【０１２６】
対象ブロックアドレスバッファ４１は、イントラ予測部２４から供給される予測の対象ブロックアドレスを蓄積する。テンプレートアドレス算出部４２は、対象ブロックアドレスバッファ４１に蓄積される対象ブロックアドレスを用いて、テンプレートを構成する隣接画素のアドレスを算出する。テンプレートアドレス算出部４２は、算出した隣接画素のアドレスを、テンプレートアドレスとして、テンプレート画素設定部２８およびテンプレートマッチング予測・補償部４３に供給する。
【０１２７】
テンプレート画素設定部２８は、テンプレートアドレス算出部４２からのテンプレートアドレスに基づいて、復号画像と予測画像のどちらをテンプレートの隣接画素として用いるかを決定し、その情報を、テンプレートマッチング予測・補償部４３に供給する。
【０１２８】
テンプレートマッチング予測・補償部４３は、対象ブロックアドレスバッファ４１に蓄積される対象ブロックアドレスを読み出す。テンプレートマッチング予測・補償部４３には、イントラ予測部２４からのイントラ予測する画像、テンプレートアドレス算出部４２からのテンプレートアドレス、およびテンプレート画素設定部２８からの隣接画素の情報が供給されている。
【０１２９】
テンプレートマッチング予測・補償部４３は、フレームメモリ２２から参照画像を読み出し、テンプレート画素設定部２８により隣接画素が設定されたテンプレートを用いて、テンプレート予測モードの動き予測を行い、予測画像を生成する。この予測画像は、図示せぬ内蔵バッファに蓄積される。
【０１３０】
具体的には、テンプレートマッチング予測・補償部４３は、テンプレートアドレスを参照して、テンプレート画素設定部２８により復号画素を用いることが設定されたテンプレートの隣接画素の画素値を、フレームメモリ２２から読み出す。また、テンプレートマッチング予測・補償部４３は、テンプレートアドレスを参照して、テンプレート画素設定部２８により予測画素を用いることが設定されたテンプレートの隣接画素の画素値を、内蔵バッファから読み出す。そして、テンプレートマッチング予測・補償部４３により、フレームメモリ２２から読み出された参照画像の中から、フレームメモリ２２または内蔵バッファから読み出された隣接画素で構成されるテンプレートと相関のある領域が探索される。さらに、探索された領域に隣接するブロックが、予測対象のブロックに対応するブロックとして、予測画像が求められる。
【０１３１】
また、テンプレートマッチング予測・補償部４３は、イントラ予測部２４からのイントラ予測する画像も用いて、テンプレート予測モードのコスト関数値を算出し、予測画像とともに、イントラ予測部２４に供給する。
【０１３２】
なお、その説明は省略するが、インターＴＰ動き予測・補償部２７も、図９に示したイントラＴＰ動き予測・補償部２５と基本的に同様に構成される。したがって、以下、インターＴＰ動き予測・補償部２７の説明にも、図９の機能ブロックを用いる。
【０１３３】
すなわち、インターＴＰ動き予測・補償部２７も、イントラＴＰ動き予測・補償部２５と同様に、対象ブロックアドレスバッファ４１、テンプレートアドレス算出部４２、およびテンプレートマッチング予測・補償部４３により構成される。
【０１３４】
［隣接画素設定処理の例］
図１０は、対象ブロックの予測に用いられるテンプレートの例を示している。図１０の例の場合、１６×１６画素のマクロブロックＭＢが示されており、マクロブロックＭＢは、８×８画素からなる４つのサブマクロブロックＳＢ０乃至ＳＢ３で構成される。また、各サブマクロブロックＳＭＢは、４×４画素からなる４つのブロックＢ０乃至Ｂ３で構成される。
【０１３５】
なお、この例のマクロブロックＭＢにおいて、処理は、サブマクロブロックＳＢ０乃至ＳＢ３の順（ラスタスキャン順）に行われ、各サブマクロブロックＳＭＢにおいて、処理は、ブロックＢ０乃至Ｂ３の順（ラスタスキャン順）に行われるものとする。
【０１３６】
ここで、対象ブロックの予測に用いられるテンプレートは、対象ブロックに所定の位置関係で隣接する領域からなり、その領域に含まれる画素の画素値が予測に用いられる。所定の位置関係とは、例えば、対象ブロックの上部、左上部、および左部などであり、以下、テンプレートを、上部領域Ｕ、左上部領域ＬＵ，および左部領域Ｌの３つの領域に分けて説明する。
【０１３７】
図１０の例においては、サブマクロブロックＳＭＢ０のブロックＢ１が予測対象のブロックである場合とサブマクロブロックＳＢＭ３のブロックＢ１が予測対象のブロックである場合が示されている。
【０１３８】
サブマクロブロックＳＭＢ０のブロックＢ１が予測対象のブロックである場合、サブマクロブロックＳＢＭ０のブロックＢ１に隣接するテンプレートのうち、上部領域Ｕと左上部領域ＬＵは、マクロブロックＭＢおよびサブマクロブロックＳＭＢ０外に存在する。すなわち、上部領域Ｕと左上部領域ＬＵに含まれる隣接画素の復号画像が既に生成されているので、テンプレート画素設定部２８は、上部領域Ｕと左上部領域ＬＵに含まれる隣接画素として、復号画像を用いることを設定する。
【０１３９】
これに対して、左部領域Ｌは、マクロブロックＭＢおよびサブマクロブロックＳＭＢ０内に属する。すなわち、左部領域Ｌに含まれる隣接画素の復号画像はまだ処理されていないので、テンプレート画素設定部２８は、左部領域Ｌに含まれる隣接画素として、予測画像を用いることを設定する。
【０１４０】
このように、テンプレート画素設定部２８は、対象ブロックのテンプレートを構成する隣接画素が、対象ブロックのマクロブロック（サブマクロブロック）内に属するか否かに応じてその隣接画素として、復号画像または予測画像どちらかを用いることを設定する。
【０１４１】
すなわち、画像符号化装置１のテンプレート予測モードにおいては、対象ブロックのテンプレートを構成する隣接画素として、復号画像だけでなく、必要に応じて、予測画像も用いられる。具体的には、その隣接画素が対象ブロックのマクロブロック（またはサブマクロブロック）内に属する場合には、予測画像が用いられる。
【０１４２】
これにより、サブマクロブロックＳＭＢ０においては、ブロックＢ０の復号画像が生成される処理である補償処理まで待たなくても、ブロックＢ１の処理を開始することができる。
【０１４３】
なお、サブマクロブロックＳＢＭ３のブロックＢ１が予測対象のブロックである場合、サブマクロブロックＳＢＭ３のブロックＢ１に隣接するテンプレートのうち、上部領域Ｕと左上部領域ＬＵは、サブマクロブロックＳＭＢ３外に存在する。ただし、これらの上部領域Ｕと左上部領域ＬＵは、マクロブロックＭＢ内に存在する。
【０１４４】
この場合については、隣接画素として、復号画像を用いるようにしてもよいし、予測画像を用いるようにしてもよい。後者の場合、サブマクロブロックＳＭＢ１の補償処理の終了を待たずに、サブマクロブロックＳＭＢ３の処理を開始することが可能であるため、より高速な処理を行うことができる。
【０１４５】
なお、これ以降、対象ブロックからなるブロックを、マクロブロックとして説明するが、サブマクロブロックの場合も含まれるものとする。
【０１４６】
図１１は、マクロブロックにおける対象ブロックの位置に応じたテンプレートの例を示す図である。
【０１４７】
図１１Ａの例においては、マクロブロックにおいて、ラスタスキャン順に１番目の位置であるブロックＢ０が対象ブロックである場合の例が示されている。すなわち、対象ブロックが、マクロブロックにおける左上に位置する場合である。この場合、対象ブロックＢ０に対して、テンプレートのうち、上部領域Ｕ、左上部領域ＬＵ、および左部領域Ｌに含まれるすべての隣接画素として、復号画像を用いることが設定される。
【０１４８】
図１１Ｂの例においては、マクロブロックにおいて、ラスタスキャン順に２番目の位置であるブロックＢ１が対象ブロックである場合の例が示されている。すなわち、対象ブロックが、マクロブロックにおける右上に位置する場合である。この場合、対象ブロックＢ１に対して、テンプレートのうち、上部領域Ｕ、および左上部領域ＬＵに含まれる隣接画素として、復号画像を用いることが設定される。また、対象ブロックＢ１に対して、テンプレートのうち、左部領域Ｌに含まれる隣接画素として、予測画像を用いることが設定される。
【０１４９】
図１１Ｃの例においては、マクロブロックにおいて、ラスタスキャン順に３番目の位置であるブロックＢ２が対象ブロックである場合の例が示されている。すなわち、対象ブロックが、マクロブロックにおける左下に位置する場合である。この場合、対象ブロックＢ２に対して、テンプレートのうち、左上部領域ＬＵ、および左部領域Ｌに含まれる隣接画素として、復号画像を用いることが設定される。また、対象ブロックＢ２に対して、テンプレートのうち、上部領域Ｕに含まれる隣接画素として、予測画像を用いることが設定される。
【０１５０】
図１１Ｄの例においては、マクロブロックにおいて、ラスタスキャン順に４番目の位置であるブロックＢ３が対象ブロックである場合の例が示されている。すなわち、対象ブロックが、マクロブロックにおける左上に位置する場合である。この場合、対象ブロックＢ３に対して、テンプレートのうち、上部領域Ｕ、左上部領域ＬＵ、および左部領域Ｌに含まれるすべての隣接画素として、予測画像を用いることが設定される。
【０１５１】
なお、上記説明においては、マクロブロック（またはサブマクロブロック）を４分割した例を説明したが、これに限定されない。例えば、マクロブロック（またはサブマクロブロック）を２分割した場合にも、テンプレートを構成する画素は復号画像または予測画像から同様に設定される。
【０１５２】
図１２は、マクロブロックが上下２つのブロックで構成される場合の例を示す図である。図１２の例においては、１６×１６画素のマクロブロックが示されており、マクロブロックは、８×１６画素からなる上下２つのブロックＢ０およびＢ１で構成されている。
【０１５３】
図１２Ａの例においては、マクロブロックにおいて、ラスタスキャン順に１番目の位置であるブロックＢ０が対象ブロックである場合の例が示されている。すなわち、対象ブロックが、マクロブロックにおける上部に位置する場合である。この場合、対象ブロックＢ０に対して、テンプレートのうち、上部領域Ｕ、左上部領域ＬＵ、および左部領域Ｌに含まれるすべての隣接画素として、復号画像を用いることが設定される。
【０１５４】
図１２Ｂの例においては、マクロブロックにおいて、ラスタスキャン順に２番目の位置であるブロックＢ１が対象ブロックである場合の例が示されている。すなわち、対象ブロックが、マクロブロックにおける下部に位置する場合である。この場合、対象ブロックＢ１に対して、テンプレートのうち、左上部領域ＬＵ、および左部領域Ｌに含まれる隣接画素として、復号画像を用いることが設定される。また、対象ブロックＢ１に対して、テンプレートのうち、上部領域Ｕに含まれる隣接画素として、予測画像を用いることが設定される。
【０１５５】
図１３は、マクロブロックが上下２つのブロックで構成される場合の例を示す図である。図１３の例においては、１６×１６画素のマクロブロックが示されており、マクロブロックは、１６×８画素からなる左右２つのブロックＢ０およびＢ１で構成されている。
【０１５６】
図１３Ａの例においては、マクロブロックにおいて、ラスタスキャン順に１番目の位置であるブロックＢ０が対象ブロックである場合の例が示されている。すなわち、対象ブロックが、マクロブロックにおける左部に位置する場合である。この場合、対象ブロックＢ０に対して、テンプレートのうち、上部領域Ｕ、左上部領域ＬＵ、および左部領域Ｌに含まれるすべての隣接画素として、復号画像を用いることが設定される。
【０１５７】
図１３Ｂの例においては、マクロブロックにおいて、ラスタスキャン順に２番目の位置であるブロックＢ１が対象ブロックである場合の例が示されている。すなわち、対象ブロックが、マクロブロックにおける右部に位置する場合である。この場合、対象ブロックＢ１に対して、テンプレートのうち、上部領域Ｕ、および左上部領域ＬＵに含まれる隣接画素として、復号画像を用いることが設定される。また、対象ブロックＢ１に対して、テンプレートのうち、左部領域Ｌに含まれる隣接画素として、予測画像を用いることが設定される。
【０１５８】
以上のように、マクロブロック内の対象ブロックの予測に用いられるテンプレートを構成する隣接画素として、隣接画素がマクロブロックに属するか否かに応じて、復号画像または予測画像を用いることを設定するようにした。これにより、マクロブロック内のブロックに対する処理をパイプライン処理により実現することが可能になり、処理効率が向上される。この効果の詳細については、図３３を参照して後述する。
【０１５９】
［符号化処理の説明］
次に、図１４のフローチャートを参照して、図４の画像符号化装置１の符号化処理について説明する。
【０１６０】
ステップＳ１１において、Ａ／Ｄ変換部１１は入力された画像をＡ／Ｄ変換する。ステップＳ１２において、画面並べ替えバッファ１２は、Ａ／Ｄ変換部１１より供給された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
【０１６１】
ステップＳ１３において、演算部１３は、ステップＳ１２で並び替えられた画像と予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部２６から、イントラ予測する場合はイントラ予測部２４から、それぞれ予測画像選択部２９を介して演算部１３に供給される。
【０１６２】
差分データは元の画像データに較べてデータ量が小さくなっている。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
【０１６３】
ステップＳ１４において、直交変換部１４は演算部１３から供給された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。ステップＳ１５において、量子化部１５は変換係数を量子化する。この量子化に際しては、後述するステップＳ２５の処理で説明されるように、レートが制御される。
【０１６４】
以上のようにして量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップＳ１６において、逆量子化部１８は量子化部１５により量子化された変換係数を量子化部１５の特性に対応する特性で逆量子化する。ステップＳ１７において、逆直交変換部１９は逆量子化部１８により逆量子化された変換係数を直交変換部１４の特性に対応する特性で逆直交変換する。
【０１６５】
ステップＳ１８において、演算部２０は、予測画像選択部２９を介して入力される予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像（演算部１３への入力に対応する画像）を生成する。ステップＳ１９においてデブロックフィルタ２１は、演算部２０より出力された画像をフィルタリングする。これによりブロック歪みが除去される。ステップＳ２０においてフレームメモリ２２は、フィルタリングされた画像を記憶する。なお、フレームメモリ２２にはデブロックフィルタ２１によりフィルタ処理されていない画像も演算部２０から供給され、記憶される。
【０１６６】
ステップＳ２１において、イントラ予測部２４、イントラＴＰ動き予測・補償部２５、動き予測・補償部２６、およびインターＴＰ動き予測・補償部２７は、それぞれ画像の予測処理を行う。すなわち、ステップＳ２１において、イントラ予測部２４は、イントラ予測モードのイントラ予測処理を行い、イントラＴＰ動き予測・補償部２５は、イントラテンプレート予測モードの動き予測・補償処理を行う。また、動き予測・補償部２６は、インター予測モードの動き予測・補償処理を行い、インターＴＰ動き予測・補償部２７は、インターテンプレート予測モードの動き予測・補償処理を行う。なお、このとき、イントラＴＰ動き予測・補償部２５およびインターＴＰ動き予測・補償部２７においては、テンプレート画素設定部２８により隣接画素が設定されたテンプレートが利用される。
【０１６７】
ステップＳ２１における予測処理の詳細は、図１５を参照して後述するが、この処理により、候補となる全ての予測モードでの予測処理がそれぞれ行われ、候補となる全ての予測モードでのコスト関数値がそれぞれ算出される。そして、算出されたコスト関数値に基づいて、イントラ予測モードとイントラテンプレート予測モードの中から、最適イントラ予測モードが選択され、最適イントラ予測モードで生成された予測画像とそのコスト関数値が予測画像選択部２９に供給される。また、算出されたコスト関数値に基づいて、インター予測モードとインターテンプレート予測モードの中から、最適インター予測モードが決定され、最適インター予測モードで生成された予測画像とそのコスト関数値が、予測画像選択部２９に供給される。
【０１６８】
ステップＳ２２において、予測画像選択部２９は、イントラ予測部２４および動き予測・補償部２６より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちの一方を、最適予測モードに決定する。そして、予測画像選択部２９は、決定した最適予測モードの予測画像を選択し、演算部１３，２０に供給する。この予測画像が、上述したように、ステップＳ１３，Ｓ１８の演算に利用される。
【０１６９】
なお、この予測画像の選択情報は、イントラ予測部２４または動き予測・補償部２６に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部２４は、最適イントラ予測モードを示す情報（すなわち、イントラ予測モード情報またはイントラテンプレート予測モード情報）を、可逆符号化部１６に供給する。
【０１７０】
最適インター予測モードの予測画像が選択された場合、動き予測・補償部２６は、最適インター予測モードを示す情報と、必要に応じて、最適インター予測モードに応じた情報を可逆符号化部１６に出力する。最適インター予測モードに応じた情報としては、動きベクトル情報やフラグ情報、参照フレーム情報などがあげられる。さらに具体的には、最適インター予測モードとして、インター予測モードによる予測画像が選択されているときには、動き予測・補償部２６は、インター予測モード情報、動きベクトル情報、参照フレーム情報を可逆符号化部１６に出力する。
【０１７１】
一方、最適インター予測モードとして、インターテンプレート予測モードによる予測画像が選択されているときには、動き予測・補償部２６は、インターテンプレート予測モード情報のみを可逆符号化部１６に出力する。すなわち、インターテンプレート予測モード情報による符号化の場合には、動きベクトル情報などは、復号側に送る必要がないので、可逆符号化部１６に出力されない。したがって、圧縮画像中における動きベクトル情報を低減することができる。
【０１７２】
ステップＳ２３において、可逆符号化部１６は量子化部１５より出力された量子化された変換係数を符号化する。すなわち、差分画像が可変長符号化、算術符号化等の可逆符号化され、圧縮される。このとき、上述したステップＳ２２において可逆符号化部１６に入力された、イントラ予測部２４からの最適イントラ予測モード情報、または、動き予測・補償部２６からの最適インター予測モードに応じた情報なども符号化され、ヘッダ情報に付加される。
【０１７３】
ステップＳ２４において蓄積バッファ１７は差分画像を圧縮画像として蓄積する。蓄積バッファ１７に蓄積された圧縮画像が適宜読み出され、伝送路を介して復号側に伝送される。
【０１７４】
ステップＳ２５においてレート制御部３０は、蓄積バッファ１７に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部１５の量子化動作のレートを制御する。
【０１７５】
［予測処理の説明］
次に、図１５のフローチャートを参照して、図１４のステップＳ２１における予測処理を説明する。
【０１７６】
画面並べ替えバッファ１２から供給される処理対象の画像がイントラ処理されるブロックの画像である場合、参照される復号済みの画像がフレームメモリ２２から読み出され、スイッチ２３を介してイントラ予測部２４に供給される。これらの画像に基づいて、ステップＳ３１において、イントラ予測部２４は処理対象のブロックの画素を、候補となる全てのイントラ予測モードでイントラ予測する。なお、参照される復号済みの画素としては、デブロックフィルタ２１によりデブロックフィルタリングされていない画素が用いられる。
【０１７７】
ステップＳ３１におけるイントラ予測処理の詳細は、図２８を参照して後述するが、この処理により、候補となる全てのイントラ予測モードでイントラ予測が行われ、候補となる全てのイントラ予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、全てのイントラ予測モードの中から、最適とされる、１つのイントラ予測モードが選択される。
【０１７８】
画面並べ替えバッファ１２から供給される処理対象の画像がインター処理される画像である場合、参照される画像がフレームメモリ２２から読み出され、スイッチ２３を介して動き予測・補償部２６に供給される。これらの画像に基づいて、ステップＳ３２において、動き予測・補償部２６はインター動き予測処理を行う。すなわち、動き予測・補償部２６は、フレームメモリ２２から供給される画像を参照して、候補となる全てのインター予測モードの動き予測処理を行う。
【０１７９】
ステップＳ３２におけるインター動き予測処理の詳細は、図２９を参照して後述するが、この処理により、候補となる全てのインター予測モードで動き予測処理が行われ、候補となる全てのインター予測モードに対してコスト関数値が算出される。
【０１８０】
また、画面並べ替えバッファ１２から供給される処理対象の画像がイントラ処理されるブロックの画像である場合、イントラ予測部２４は、画面並べ替えバッファ１２から読み出されたイントラ予測する画像をイントラＴＰ動き予測・補償部２５に供給する。このとき、予測対象のブロックの情報（アドレス）もイントラＴＰ動き予測・補償部２５に供給される。これに対応して、ステップＳ３３において、イントラＴＰ動き予測・補償部２５は、イントラテンプレート予測モードで、イントラテンプレート動き予測処理を行う。
【０１８１】
ステップＳ３３におけるイントラテンプレート動き予測処理の詳細は、図３０を参照して後述するが、この処理により、テンプレートの隣接画素が設定される。そして、設定されたテンプレートが用いられてイントラテンプレート予測モードで動き予測処理が行われ、イントラテンプレート予測モードに対してコスト関数値が算出される。そして、イントラテンプレート予測モードの動き予測処理により生成された予測画像とそのコスト関数値がイントラ予測部２４に供給される。
【０１８２】
ステップＳ３４において、イントラ予測部２４は、ステップＳ３１において選択されたイントラ予測モードに対してのコスト関数値と、ステップＳ３３において算出されたイントラテンプレート予測モードに対してのコスト関数値を比較する。そして、イントラ予測部２４は、最小値を与える予測モードを、最適イントラ予測モードとして決定し、最適イントラ予測モードで生成された予測画像とそのコスト関数値を、予測画像選択部２９に供給する。
【０１８３】
さらに、画面並べ替えバッファ１２から供給される処理対象の画像がインター処理される画像である場合、動き予測・補償部２６は、画面並べ替えバッファ１２から読み出されたインター予測する画像をインターＴＰ動き予測・補償部２７に供給する。このとき、予測対象のブロックの情報（アドレス）も、インターＴＰ動き予測・補償部２７に供給される。これに対応して、インターＴＰ動き予測・補償部２７は、ステップＳ３５において、インターテンプレート予測モードで、インターテンプレート動き予測処理を行う。
【０１８４】
ステップＳ３５におけるインターテンプレート動き予測処理の詳細は、図３１を参照して後述するが、この処理により、テンプレートの隣接画素が設定され、設定されたテンプレートが用いられてインターテンプレート予測モードで動き予測処理が行われ、インターテンプレート予測モードに対してコスト関数値が算出される。そして、インターテンプレート予測モードの動き予測処理により生成された予測画像とそのコスト関数値が動き予測・補償部２６に供給される。
【０１８５】
ステップＳ３６において、動き予測・補償部２６は、ステップＳ３２において選択された最適なインター予測モードに対してコスト関数値と、ステップＳ３５において算出されたインターテンプレート予測モードに対してのコスト関数値を比較する。そして、動き予測・補償部２６は、最小値を与える予測モードを、最適インター予測モードとして決定し、動き予測・補償部２６は、最適インター予測モードで生成された予測画像とそのコスト関数値を、予測画像選択部２９に供給する。
【０１８６】
［Ｈ．２６４／ＡＶＣ方式におけるイントラ予測処理の説明］
次に、Ｈ．２６４／ＡＶＣ方式で定められているイントラ予測の各モードについて説明する。
【０１８７】
まず、輝度信号に対するイントラ予測モードについて説明する。輝度信号のイントラ予測モードには、９種類の４×４画素のブロック単位、並びに４種類の１６×１６画素のマクロブロック単位の予測モードがある。
【０１８８】
図１６の例において、各ブロックに付されている数字−１乃至２５は、その各ブロックのビットストリーム順（すなわち、復号側での処理順）を表している。輝度信号については、マクロブロックが４×４画素に分割されて、４×４画素のＤＣＴが行われる。そして、１６×１６画素のイントラ予測モードの場合のみ、−１のブロックに示されるように、各ブロックの直流成分を集めて、４×４行列が生成され、これに対して、さらに、直交変換が施される。
【０１８９】
なお、色差信号については、マクロブロックが４×４画素に分割され、４×４画素のＤＣＴが行われた後に、１６および１７の各ブロックに示されるように、各ブロックの直流成分を集めて、２×２行列が生成され、これに対して、さらに、直交変換が施される。
【０１９０】
また、ハイプロファイルについては、８次のDCTブロックに対して、８×８画素のブロック単位の予測モードが定められているが、この方式については、次に説明する４×４画素のイントラ予測モードの方式に準じる。
【０１９１】
図１７および図１８は、９種類の輝度信号の４×４画素のイントラ予測モード(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]は、次の式（３３）のように生成される。
【数５】
2010268259.tif 000007
【０２２５】
p[x,-1] (x=0, … ,7) は “available” であるが、 p[-1,y] (y=0, … ,7) が “unavailable” である場合には、予測値pred8x8L[x,y]は、次の式（３４）のように生成される。
【数６】
2010268259.tif 000008
【０２２６】
p[x,-1] (x=0, … ,7) は “unavailable” であるが、 p[-1,y] (y=0, … ,7) が “available” である場合には、予測値pred8x8L[x,y]は、次の式（３５）のように生成される。
【数７】
2010268259.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)は、次の式（６１）のように生成される。
【数８】
2010268259.tif 000010
【０２４５】
また、P(x,-1); x,y=-1,0,…,15が “unavailable” である場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（６２）のように生成される。
【数９】
2010268259.tif 000011
【０２４６】
P(-1,y); x,y=-1,0,…,15が “unavailable” である場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（６３）のように生成される。
【数１０】
2010268259.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)は、次の式（６４）のように生成される。
【数１１】
2010268259.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)は、次の式（６５）のように生成される。
【数１２】
2010268259.tif 000014
【０２５３】
また、P(-1,y) ; x,y=-1,0,…,7が “unavailable” である場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（６６）のように生成される。
【数１３】
2010268259.tif 000015
【０２５４】
また、P(x,-1) ; x,y=-1,0,…,7が “unavailable”である場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（６７）のように生成される。
【数１４】
2010268259.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)は、次の式（７０）のように生成される。
【数１５】
2010268259.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 モードにおいては、全ての予測モードに対して、予測画像を生成するのみで、符号化処理および復号処理を行う必要がないため、演算量が少なくて済む。
【０２７１】
イントラ予測部２４は、ステップＳ４３において、４×４画素、８×８画素、および１６×１６画素の各イントラ予測モードに対して、それぞれ最適モードを決定する。すなわち、上述したように、イントラ４×４予測モードおよびイントラ８×８予測モードの場合には、予測モードの種類が９種類あり、イントラ１６×１６予測モードの場合には、予測モードの種類が４種類ある。したがって、イントラ予測部２４は、ステップＳ４２において算出されたコスト関数値に基づいて、それらの中から、最適イントラ４×４予測モード、最適イントラ８×８予測モード、最適イントラ１６×１６予測モードを決定する。
【０２７２】
イントラ予測部２４は、ステップＳ４４において、４×４画素、８×８画素、および１６×１６画素の各イントラ予測モードに対して決定された各最適モードの中から、ステップＳ４２において算出されたコスト関数値に基づいて、１つのイントラ予測モードを選択する。すなわち、４×４画素、８×８画素、および１６×１６画素に対して決定された各最適モードの中から、コスト関数値が最小値であるモードを１つ選択する。
【０２７３】
［インター動き予測処理の説明］
次に、図２９のフローチャートを参照して、図１５のステップＳ３２のインター動き予測処理について説明する。
【０２７４】
動き予測・補償部２６は、ステップＳ５１において、図５を参照して上述した１６×１６画素乃至４×４画素からなる８種類の各インター予測モードに対して動きベクトルと参照画像をそれぞれ決定する。すなわち、各インター予測モードの処理対象のブロックについて、動きベクトルと参照画像がそれぞれ決定される。
【０２７５】
動き予測・補償部２６は、ステップＳ５２において、１６×１６画素乃至４×４画素からなる８種類の各インター予測モードについて、ステップＳ５１で決定された動きベクトルに基づいて、参照画像に動き予測と補償処理を行う。この動き予測と補償処理により、各インター予測モードでの予測画像が生成される。
【０２７６】
動き予測・補償部２６は、ステップＳ５３において、１６×１６画素乃至４×４画素からなる８種類の各インター予測モードに対して決定された動きベクトルについて、圧縮画像に付加するための動きベクトル情報を生成する。このとき、図８を参照して上述した動きベクトルの生成方法が用いられて、動きベクトル情報が生成される。
【０２７７】
生成された動きベクトル情報は、次のステップＳ５４におけるコスト関数値算出の際にも用いられ、最終的に予測画像選択部２９により対応する予測画像が選択された場合には、予測モード情報および参照フレーム情報とともに、可逆符号化部１６へ出力される。
【０２７８】
動き予測・補償部２６は、ステップＳ５４において、１６×１６画素乃至４×４画素からなる８種類の各インター予測モードに対して、上述した式（７１）または式（７２）で示されるコスト関数値を算出する。ここで算出されたコスト関数値は、上述した図１５のステップＳ３６で最適インター予測モードを決定する際に用いられる。
【０２７９】
［イントラテンプレート動き予測処理の説明］
次に、図３０のフローチャートを参照して、図１５のステップＳ３３のイントラテンプレート動き予測処理について説明する。
【０２８０】
イントラ予測部２４からの対象ブロックアドレスが、イントラＴＰ動き予測・補償部２５の対象ブロックアドレスバッファ４１に蓄積される。イントラＴＰ動き予測・補償部２５およびテンプレート画素設定部２８は、ステップＳ６１において、イントラテンプレート予測モードの対象ブロックに対して、テンプレートの隣接画素を設定する処理である隣接画素設定処理を行う。この隣接画素設定処理の詳細は、図３２を参照して後述する。この処理により、イントラテンプレート予測モードの対象ブロックに対するテンプレートを構成する隣接画素として、復号画像または予測画像のどちらが用いられるのかが設定される。
【０２８１】
ステップＳ６２において、イントラＴＰ動き予測・補償部２５のテンプレートマッチング予測・補償部４３は、イントラテンプレート予測モードの動き予測、補償処理を行う。すなわち、テンプレートマッチング予測・補償部４３には、対象ブロックアドレスバッファ４１の対象ブロックアドレス、テンプレートアドレス算出部４２からのテンプレートアドレス、およびテンプレート画素設定部２８からの隣接画素の情報が供給される。これらの情報を参照し、テンプレート画素設定部２８により隣接画素が設定されたテンプレートを用いて、テンプレートマッチング予測・補償部４３は、図１を参照して上述したイントラテンプレート予測モードの動き予測を行い、予測画像を生成する。
【０２８２】
具体的には、テンプレートマッチング予測・補償部４３は、同フレーム内の所定の探索範囲の参照画像をフレームメモリ２２から読み出す。また、テンプレートマッチング予測・補償部４３は、テンプレートアドレスを参照して、テンプレート画素設定部２８により復号画素を用いることが設定されたテンプレートの隣接画素の画素値を、フレームメモリ２２から読み出す。さらに、テンプレートマッチング予測・補償部４３は、テンプレートアドレスを参照して、テンプレート画素設定部２８により予測画素を用いることが設定されたテンプレートの隣接画素の画素値を、内蔵バッファから読み出す。
【０２８３】
そして、テンプレートマッチング予測・補償部４３は、同フレーム内の所定の探索範囲において、テンプレート画素設定部２８により隣接画素が設定されたテンプレートと相関が最も高くなるような領域を探索する。テンプレートマッチング予測・補償部４３は、探索された領域に対応するブロックを、対象ブロックに対応するブロックとし、そのブロックの画素値により、予測画像を生成する。この予測画像は、内蔵バッファに蓄積される。
【０２８４】
ステップＳ６３において、テンプレートマッチング予測・補償部４３は、イントラ予測部２４からのイントラ予測する画像も用いて、イントラテンプレート予測モードに対して、上述した式（７１）または式（７２）で示されるコスト関数値を算出する。テンプレートマッチング予測・補償部４３は、生成された予測画像と算出されたコスト関数値をイントラ予測部２４に供給する。このコスト関数値は、上述した図１５のステップＳ３４で最適イントラ予測モードを決定する際に用いられる。
【０２８５】
なお、特に言及していないが、イントラテンプレート予測モードにおけるブロックおよびテンプレートのサイズは任意である。すなわち、イントラ予測部２４と同様に、各イントラ予測モードのブロックサイズを候補としてイントラテンプレート予測モードを行うこともできるし、１つの予測モードのブロックサイズに固定して行うこともできる。対象となるブロックサイズに応じて、テンプレートサイズは、可変としてもよいし、固定することもできる。
【０２８６】
［インターテンプレート動き予測処理の説明］
次に、図３１のフローチャートを参照して、図１５のステップＳ３５のインターテンプレート動き予測処理について説明する。
【０２８７】
動き予測・補償部２６からの対象ブロックアドレスが、インターＴＰ動き予測・補償部２７の対象ブロックアドレスバッファ４１に蓄積される。インターＴＰ動き予測・補償部２７およびテンプレート画素設定部２８は、ステップＳ７１において、インターテンプレート予測モードの対象ブロックに対して、テンプレートの隣接画素を設定する処理である隣接画素設定処理を行う。この隣接画素設定処理の詳細は、図３２を参照して後述する。この処理により、インターテンプレート予測モードの対象ブロックに対するテンプレートを構成する隣接画素として、復号画像または予測画像のどちらが用いられるのかが設定される。
【０２８８】
ステップＳ７２において、インターＴＰ動き予測・補償部２７のテンプレートマッチング予測・補償部４３は、インターテンプレート予測モードの動き予測、補償処理を行う。すなわち、テンプレートマッチング予測・補償部４３には、対象ブロックアドレスバッファ４１の対象ブロックアドレス、テンプレートアドレス算出部４２からのテンプレートアドレス、およびテンプレート画素設定部２８からの隣接画素の情報が供給される。これらの情報を参照し、テンプレート画素設定部２８により隣接画素が設定されたテンプレートを用いて、テンプレートマッチング予測・補償部４３は、図２を参照して上述したインターテンプレート予測モードの動き予測を行い、予測画像を生成する。
【０２８９】
具体的には、テンプレートマッチング予測・補償部４３は、参照フレームにおける所定の探索範囲の参照画像をフレームメモリ２２から読み出す。また、テンプレートマッチング予測・補償部４３は、テンプレートアドレスを参照して、テンプレート画素設定部２８により復号画素を用いることが設定されたテンプレートの隣接画素の画素値を、フレームメモリ２２から読み出す。さらに、テンプレートマッチング予測・補償部４３は、テンプレートアドレスを参照して、テンプレート画素設定部２８により予測画素を用いることが設定されたテンプレートの隣接画素の画素値を、内蔵バッファから読み出す。
【０２９０】
そして、テンプレートマッチング予測・補償部４３は、参照フレームにおける所定の探索範囲において、テンプレート画素設定部２８により隣接画素が設定されたテンプレートと相関が最も高くなるような領域を探索する。テンプレートマッチング予測・補償部４３は、探索された領域に対応するブロックを、対象ブロックに対応するブロックとし、そのブロックの画素値により、予測画像を生成する。
【０２９１】
そして、テンプレートマッチング予測・補償部４３は、ステップＳ７３において、動き予測・補償部２６からのインターする画像も用いて、インターテンプレート予測モードに対して、上述した式（７１）または式（７２）で示されるコスト関数値を算出する。テンプレートマッチング予測・補償部４３は、生成された予測画像と算出されたコスト関数値を、動き予測・補償部２６に供給する。このコスト関数値は、上述した図１５のステップＳ３６で最適インター予測モードを決定する際に用いられる。
【０２９２】
なお、特に言及していないが、インターテンプレート予測モードにおけるブロックおよびテンプレートのサイズは任意である。すなわち、動き予測・補償部２６と同様に、図５で上述した１６×１６画素乃至４×４画素からなる８種類のブロックサイズから、１つのブロックサイズを固定して行うこともできるし、すべてのブロックサイズを候補として行うこともできる。ブロックサイズに応じて、テンプレートサイズは、可変としてもよいし、固定することもできる。
【０２９３】
［隣接画素設定処理の説明］
次に、図３２のフローチャートを参照して、図３０のステップＳ６１における隣接画素設定処理について説明する。なお、図３２の例においては、イントラＴＰ動き予測・補償部２５が行う処理について説明するが、インターＴＰ動き予測・補償部２７が図３１のステップＳ７１において行う隣接画素設定処理も基本的に同様の処理であるので、その説明は省略される。
【０２９４】
イントラ予測部２４からの対象ブロックアドレスが、イントラＴＰ動き予測・補償部２５の対象ブロックアドレスバッファ４１に蓄積されている。テンプレートアドレス算出部４２は、ステップＳ８１において、対象ブロックアドレスバッファ４１に蓄積される対象ブロックアドレスを用いて、テンプレートを構成する隣接画素のアドレスを算出する。テンプレートアドレス算出部４２は、それをテンプレートアドレスとして、テンプレート画素設定部２８およびテンプレートマッチング予測・補償部４３に供給する。
【０２９５】
ここで、図３２の例においては、例えば、テンプレートを、上部領域、左上部領域、および左部領域に分けて説明する。上部領域は、テンプレートのうち、ブロックまたはマクロブロックなどに対して上に隣接する領域である。左上部領域は、テンプレートのうち、ブロックまたはマクロブロックなどに対して左上に隣接する領域である。左部領域は、テンプレートのうち、ブロックまたはマクロブロックなどに対して左に隣接する領域である。
【０２９６】
テンプレート画素設定部２８は、ステップＳ８２において、テンプレートアドレス算出部４２からのテンプレートアドレスに基づいて、まず、上部領域に含まれる隣接画素が、対象ブロックの対象マクロブロックまたは対象サブマクロブロック内に存在するか否かを判定する。なお、その説明は省略されるが、処理単位によっては、対象マクロブロック内についてだけ判定される場合もある。
【０２９７】
ステップＳ８２において、上部領域に含まれる隣接画素が、対象マクロブロック内に存在すると判定された場合、処理は、ステップＳ８３に進む。テンプレート画素設定部２８は、ステップＳ８３において、予測に用いる隣接画素として、復号画像を設定する。
【０２９８】
一方、ステップＳ８２において、上部領域に含まれる隣接画素が、対象マクロブロックまたは対象サブマクロブロック外に存在すると判定された場合、処理は、ステップＳ８４に進む。テンプレート画素設定部２８は、ステップＳ８４において、予測に用いる隣接画素として、予測画像を設定する。
【０２９９】
ステップＳ８５において、テンプレート画素設定部２８は、テンプレートにおけるすべての領域（上部領域、左上部領域、および左部領域）についての処理が終了したか否かを判定する。ステップＳ８５において、テンプレートにおけるすべての領域についての処理がまだ終了していないと判定された場合、処理は、ステップＳ８２に戻り、それ以降の処理が繰り返される。
【０３００】
また、ステップＳ８５において、テンプレートにおけるすべての領域についての処理が終了したと判定された場合、隣接画素設定処理は終了される。このとき、テンプレート画素設定２８により設定されたテンプレートを構成する隣接画素の情報は、テンプレートマッチング予測・補償部４３に供給され、図３０のステップＳ６２の処理に用いられる。
【０３０１】
［隣接画素設定による効果例］
上述した隣接画素設定による効果について、図３３のタイミングチャートを参照して説明する。図３３の例においては、各ブロックに対して、＜予測処理＞、＜差分処理＞、＜直交変換＞、＜量子化＞、＜逆量子化＞、＜逆直交変換＞、＜補償処理＞が順に行われる例が示されている。
【０３０２】
図３３Ａは、従来のテンプレートを利用した場合の処理のタイミングチャートを示している。図３３Ｂは、テンプレート画素設定部２８により隣接画素が設定されたテンプレートを利用した場合に可能なパイプライン処理のタイミングチャートを示している。
【０３０３】
従来のテンプレートを利用する装置においては、上述した図１０のブロックＢ１の処理を行う場合、ブロックＢ０の復号画像の画素値がテンプレートの一部として用いられるため、その画素値が生成されるのを待たなければならない。
【０３０４】
したがって、図３３Ａに示されるように、ブロックＢ０に対して、＜予測処理＞、＜差分処理＞、＜直交変換＞、＜量子化＞、＜逆量子化＞、＜逆直交変換＞、＜補償処理＞が順に終了し、復号画像がメモリに書き込まれるまで、ブロックＢ１の＜予測処理＞ができない。すなわち、従来においては、ブロックＢ０とブロックＢ１の処理をパイプライン処理まで行うことが困難であった。
【０３０５】
これに対して、テンプレート画素設定部２８により設定されたテンプレートを利用した場合には、ブロックＢ１のテンプレートの左部領域Ｌを構成する隣接画素として、ブロックＢ０の復号画像の代わりに、ブロックＢ０の予測画像が用いられる。ブロックＢ０の予測画像は、ブロックＢ０の＜予測処理＞により生成される。
【０３０６】
したがって、ブロックＢ１の処理を行う際に、ブロックＢ０の復号画素の生成を待つ必要がない。これにより、例えば、図３３Ｂに示されるように、ブロックＢ０に対して、＜予測処理＞が終了した後、ブロックＢ０に対しての＜差分処理＞と並行して、ブロックＢ１に対しての＜予測処理＞を行うことができる。すなわち、ブロックＢ０とブロックＢ１の処理を、パイプライン処理で行うことができる。
【０３０７】
以上により、マクロブロックやサブマクロブロック内における処理効率を向上させることができる。なお、図３３の例においては、２つのブロックでパイプライン処理を行う例を説明したが、もちろん、３つのブロックでも、４つのブロックでも同様にパイプライン処理を行うことができる。
【０３０８】
なお、上記説明においては、対象ブロックサイズが、４×４画素、８×８画素、８×１６画素、１６×８画素の場合について説明したが、本発明の適用範囲は、これに限らない。
【０３０９】
すなわち、ブロックサイズが８×４画素または４×８画素の場合については、図１２または図１３を参照して上述した例と同様の処理を行うことで、８×８画素のサブマクロブロック内において、パイプライン処理を行うことができる。また、ブロックサイズが２×２画素、２×４画素、および４×２の場合については、４×４画素のブロック内で図１１の例と同様の処理を行うことで、４×４画素のブロック内において、パイプライン処理を行うことができる。
【０３１０】
なお、ここで、テンプレートマッチングを行うブロックの大きさが、例えば、２×２画素の場合、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３０２や記憶部３０８に、あらかじめインストールしておくことができる。
【０４３３】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０４３４】
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０４３５】
１  画像符号化装置，  １６  可逆符号化部，  ２４  イントラ予測部，  ２５  イントラテンプレート動き予測・補償部，  ２６  動き予測・補償部，  ２７  インターテンプレート動き予測・補償部，  ２８  テンプレート画素設定部，  ４１  対象ブロックアドレスバッファ，  ４２  テンプレートアドレス算出部，  ４３  テンプレートマッチング予測・補償部，  １０１  画像復号装置，  １１２  可逆復号部，  １２１  イントラ予測部，  １２２  イントラテンプレート動き予測・補償部，  １２３  動き予測・補償部，  １２４  インターテンプレート動き予測・補償部，  １２５  テンプレート画素設定部，  １２６  スイッチ，  １５１  画像符号化装置，  １６１  イントラ予測部，  １６２  隣接画素設定部，  １７１  対象ブロックアドレスバッファ，  １７２  隣接画素アドレス算出部，  １７３  予測部，  ２０１  画像復号装置，  ２１１  イントラ予測部，  ２１２  隣接画素設定部
【図１】
2010268259.tif 000018
【図２】
2010268259.tif 000019
【図３】
2010268259.tif 000020
【図４】
2010268259.tif 000021
【図５】
2010268259.tif 000022
【図６】
2010268259.tif 000023
【図７】
2010268259.tif 000024
【図８】
2010268259.tif 000025
【図９】
2010268259.tif 000026
【図１０】
2010268259.tif 000027
【図１１】
2010268259.tif 000028
【図１２】
2010268259.tif 000029
【図１３】
2010268259.tif 000030
【図１４】
2010268259.tif 000031
【図１５】
2010268259.tif 000032
【図１６】
2010268259.tif 000033
【図１７】
2010268259.tif 000034
【図１８】
2010268259.tif 000035
【図１９】
2010268259.tif 000036
【図２０】
2010268259.tif 000037
【図２１】
2010268259.tif 000038
【図２２】
2010268259.tif 000039
【図２３】
2010268259.tif 000040
【図２４】
2010268259.tif 000041
【図２５】
2010268259.tif 000042
【図２６】
2010268259.tif 000043
【図２７】
2010268259.tif 000044
【図２８】
2010268259.tif 000045
【図２９】
2010268259.tif 000046
【図３０】
2010268259.tif 000047
【図３１】
2010268259.tif 000048
【図３２】
2010268259.tif 000049
【図３３】
2010268259.tif 000050
【図３４】
2010268259.tif 000051
【図３５】
2010268259.tif 000052
【図３６】
2010268259.tif 000053
【図３７】
2010268259.tif 000054
【図３８】
2010268259.tif 000055
【図３９】
2010268259.tif 000056
【図４０】
2010268259.tif 000057
【図４１】
2010268259.tif 000058
【図４２】
2010268259.tif 000059
【図４３】
2010268259.tif 000060