(57)【要約】  本発明は、処理効率を向上させることができるようにする画像処理装置および方法に関する。  対象ブロックがブロックＢ１である場合、対象ブロックの上部および左上部に隣接する画素ＵＢ１および画素ＬＵＢ1と、ブロックＢ０の左部に隣接する画素ＬＢ０がテンプレートに設定される。対象ブロックがブロックＢ２である場合、対象ブロックの左上部および左部に隣接する画素ＬＵＢ２および画素ＬＢ２と、ブロックＢ０の上部に隣接する画素ＵＢ０がテンプレートに設定される。対象ブロックがブロックＢ３である場合、ブロックＢ０の左上部に隣接する画素ＬＵＢ０と、ブロックＢ１の上部に隣接する画素ＵＢ１と、ブロックＢ２の左部に隣接する画素ＬＢ２がテンプレートに設定される。本発明は、例えば、H．264/AVC方式で符号化する画像符号化装置に適用することができる。
2010095560.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と記す）という国際標準となっている。【０００６】
ところで、MPEG2方式においては、線形内挿処理により１／２画素精度の動き予測・補償処理が行われている。これに対して、H．264/AVC方式においては、６タップのFIR (Finite Impulse Response Filter)フィルタを用いた１／４画素精度の予測・補償処理が行われている。【０００７】
また、MPEG2方式においては、フレーム動き補償モードの場合には、１６×１６画素を単位として動き予測・補償処理が行われている。フィールド動き補償モードの場合には、第１フィールドと第２フィールドのそれぞれに対し、１６×８画素を単位として動き予測・補償処理が行われている。【０００８】
これに対して、H．264/AVC方式においては、ブロックサイズを可変にして、動き予測・補償を行うことができる。すなわち、H．264/AVC方式においては、１６×１６画素で構成される１つのマクロブロックを、１６×１６、１６×８、８×１６、あるいは８×８のいずれかのパーティションに分割して、それぞれ独立した動きベクトル情報を持つことが可能である。また、８×８パーティションに関しては、８×８、８×４、４×８、あるいは４×４のいずれかのサブパーティションに分割し、それぞれ独立した動きベクトル情報を持つことが可能である。【０００９】
しかしながら、H．264/AVC方式においては、上述した１／４画素精度、およびブロック可変の動き予測・補償処理が行われることにより、膨大な動きベクトル情報が生成されてしまい、これをこのまま符号化してしまうと、符号化効率の低下を招いていた。そこで、これから符号化されようとしている対象ブロックの予測動きベクトル情報を、既に符号化済の、隣接するブロックの動きベクトル情報を用いてメディアンオペレーションにより生成する方法などにより、符号化効率の低下を抑えることが提案されている。【００１０】
しかしながら、このようなメディアン予測を用いても、画像圧縮情報における動きベクトル情報の占める割合は少なくない。これに対して、特許文献１に記載の方式が提案されている。その方式とは、符号化対象の画像の領域に対して所定の位置関係で隣接すると共に復号画像の一部であるテンプレート領域の復号画像と相関が高い画像の領域を、復号画像から探索して、探索された領域と所定の位置関係とに基づいて予測を行う方式である。【００１１】
この方式は、テンプレートマッチング方式と称され、マッチングに復号画像を用いているため、探索範囲を予め定めておくことで、符号化装置と復号装置において同一の処理を行うことが可能である。すなわち、復号装置においても上述したような予測・補償処理を行うことにより、符号化装置からの画像圧縮情報の中に動きベクトル情報を持つ必要がないため、符号化効率の低下を抑えることが可能である。【００１２】
テンプレートマッチング方式は、イントラ予測にもインター予測にも用いることができ、以下、それぞれ、イントラテンプレートマッチング予測処理およびインターテンプレートマッチング予測処理とも称する。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００７−４３６５１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
ところで、図１を参照して、イントラまたはインターテンプレートマッチング予測処理において、８×８画素ブロック単位で処理を行う場合を考える。図１の例においては、１６×１６画素のマクロブロックが示されている。マクロブロックは、それぞれ８×８画素で構成される、左上のブロック０、右上のブロック１、左下のブロック２、および、右下のブロック３により構成されている。【００１５】
例えば、ブロック１におけるテンプレートマッチング予測処理を行う際には、ブロック１に対して、上部、左上部、および左部に隣接すると共に復号画像の一部である隣接画素Ｐ１、Ｐ２、およびＰ３がテンプレート領域として用いられる。【００１６】
すなわち、ブロック０の符号化処理が終了しないと、テンプレート領域のうち、隣接画素Ｐ３が利用可能（available）にならないので、ブロック１におけるテンプレートマッチング予測処理を行うことができない。したがって、従来のテンプレートマッチング予測処理においては、マクロブロック内でのブロック０とブロック１の予測処理を、並行処理またはパイプライン処理で行うことが困難であった。【００１７】
同様のことは、イントラまたはインターテンプレートマッチング予測処理を、８×８画素サブブロック内において、４×４ブロックを単位として行う場合にも言える。【００１８】
本発明は、このような状況に鑑みてなされたものであり、テンプレートマッチング予測処理における処理効率を向上させるものである。
【課題を解決するための手段】
【００１９】
本発明の第１の側面の画像処理装置は、画像の所定のブロックを構成するブロックの動きベクトルの算出に用いられるテンプレートの画素を、前記ブロックのうちのいずれかに対して所定の位置関係で隣接するとともに復号画像から生成される画素の中から、前記所定のブロック内における前記ブロックのアドレスに応じて設定するテンプレート画素設定手段と、前記テンプレート画素設定手段により設定された前記画素からなる前記テンプレートを利用して、前記ブロックの動きベクトルを算出するテンプレート動き予測補償手段とを備える。【００２０】
前記テンプレート動き予測補償手段により算出された前記動きベクトルを利用して、前記ブロックを符号化する符号化手段をさらに備えることができる。【００２１】
前記テンプレート画素設定手段は、前記所定のブロックにおいて左上に位置する左上ブロックに対しては、前記左上ブロックの左部、上部、および左上部に隣接する画素を前記テンプレートとして設定することができる。【００２２】
前記テンプレート画素設定手段は、前記所定のブロックにおいて右上に位置する右上ブロックに対しては、前記右上ブロックの上部および左上部に隣接する画素と、前記所定のブロックにおいて左上に位置する左上ブロックの左部に隣接する画素とを前記テンプレートとして設定することができる。【００２３】
前記テンプレート画素設定手段は、前記所定のブロックにおいて左下に位置する左下ブロックに対しては、前記左下ブロックの左上部および左部に隣接する画素と、前記所定のブロックにおいて左上に位置する左上ブロックの上部に隣接する画素とを前記テンプレートとして設定することができる。【００２４】
前記テンプレート画素設定手段は、前記所定のブロックにおいて右下に位置する右下ブロックに対しては、前記所定のブロックにおいて左上に位置する左上ブロックの左上部に隣接する画素と、前記所定のブロックにおいて右上に位置する右上ブロックの上部に隣接する画素と、前記所定のブロックにおいて左下に位置する左下ブロックの左部に隣接する画素とを前記テンプレートとして設定することができる。【００２５】
前記テンプレート画素設定手段は、前記所定のブロックにおいて右下に位置する右下ブロックに対しては、前記所定のブロックにおいて右上に位置する右上ブロックの上部および左上部に隣接する画素と、前記所定のブロックにおいて左下に位置する左下ブロックの左部に隣接する画素とを前記テンプレートとして設定することができる。【００２６】
前記テンプレート画素設定手段は、前記所定のブロックにおいて右下に位置する右下ブロックに対しては、前記所定のブロックにおいて右上に位置する右上ブロックの上部に隣接する画素と、前記所定のブロックにおいて左下に位置する左下ブロックの左上部および左部に隣接する画素とを前記テンプレートとして設定することができる。【００２７】
本発明の第１の側面の画像処理方法は、画像処理装置が、画像の所定のブロックを構成するブロックの動きベクトルの算出に用いられるテンプレートの画素を、前記ブロックのいずれかに対して所定の位置関係で隣接するとともに復号画像から生成される画素の中から、前記所定のブロック内における前記ブロックのアドレスに応じて設定し、設定された前記画素からなる前記テンプレートを利用して、前記ブロックの動きベクトルを算出するステップを含む。【００２８】
本発明の第２の側面の画像処理装置は、符号化されているブロックの画像を復号する復号手段と、画像の所定のブロックを構成する前記ブロックの動きベクトルの算出に用いられるテンプレートの画素を、前記ブロックのいずれかに対して所定の位置関係で隣接するとともに復号画像から生成される画素の中から、前記所定のブロック内における前記ブロックのアドレスに応じて設定するテンプレート画素設定手段と、前記テンプレート画素設定手段により設定された前記画素からなる前記テンプレートを利用して、前記ブロックの動きベクトルを算出するテンプレート動き予測手段と、前記復号手段により復号された前記画像と、前記テンプレート動き予測手段により算出された前記動きベクトルを用いて、前記ブロックの予測画像を生成する動き補償手段とを備える。【００２９】
前記テンプレート画素設定手段は、前記所定のブロックにおいて左上に位置する左上ブロックに対しては、前記左上ブロックの左部、上部、および左上部に隣接する画素を前記テンプレートとして設定することができる。【００３０】
前記テンプレート画素設定手段は、前記所定のブロックにおいて右上に位置する右上ブロックに対しては、前記右上ブロックの上部および左上部に隣接する画素と、前記所定のブロックにおいて左上に位置する左上ブロックの左部に隣接する画素とを前記テンプレートとして設定することができる。【００３１】
前記テンプレート画素設定手段は、前記所定のブロックにおいて左下に位置する左下ブロックに対しては、前記左下ブロックの左上部および左部に隣接する画素と、前記所定のブロックにおいて左上に位置する左上ブロックの上部に隣接する画素とを前記テンプレートとして設定することができる。【００３２】
前記テンプレート画素設定手段は、前記所定のブロックにおいて右下に位置する右下ブロックに対しては、前記所定のブロックにおいて左上に位置する左上ブロックの左上部に隣接する画素と、前記所定のブロックにおいて右上に位置する右上ブロックの上部に隣接する画素と、前記所定のブロックにおいて左下に位置する左下ブロックの左部に隣接する画素とを前記テンプレートとして設定することができる。【００３３】
前記テンプレート画素設定手段は、前記所定のブロックにおいて右下に位置する右下ブロックに対しては、前記所定のブロックにおいて右上に位置する右上ブロックの上部および左上部に隣接する画素と、前記所定のブロックにおいて左下に位置する左下ブロックの左部に隣接する画素とを前記テンプレートとして設定することができる。【００３４】
本発明の第２の画像処理方法は、画像処理装置が、符号化されているブロックの画像を復号し、画像の所定のブロックを構成する前記ブロックの動きベクトルの算出に用いられるテンプレートの画素を、前記ブロックのいずれかに対して所定の位置関係で隣接するとともに復号画像から生成される画素の中から、前記所定のブロック内における前記ブロックのアドレスに応じて設定し、設定された前記画素からなる前記テンプレートを利用して、前記ブロックの動きベクトルを算出し、復号された前記画像と、算出された前記動きベクトルを用いて、前記ブロックの予測画像を生成するステップを含む。【００３５】
本発明の第１の側面においては、画像の所定のブロックを構成するブロックの動きベクトルの算出に用いられるテンプレートの画素が、前記ブロックのいずれかに対して所定の位置関係で隣接するとともに復号画像から生成される画素の中から、前記所定のブロック内における前記ブロックのアドレスに応じて設定される。そして、設定された前記画素からなる前記テンプレートを利用して、前記ブロックの動きベクトルが算出される。【００３６】
本発明の第２の側面においては、符号化されているブロックの画像が復号され、画像の所定のブロックを構成する前記ブロックの動きベクトルの算出に用いられるテンプレートの画素が、前記ブロックのいずれかに対して所定の位置関係で隣接するとともに復号画像から生成される画素の中から、前記所定のブロック内における前記ブロックのアドレスに応じて設定され、設定された前記画素からなる前記テンプレートを利用して、前記ブロックの動きベクトルが算出される。そして、復号された前記画像と、算出された前記動きベクトルを用いて、前記ブロックの予測画像が生成される。【００３７】
なお、上述の画像処理装置のそれぞれは、独立した装置であっても良いし、１つの画像符号化装置または画像復号装置を構成している内部ブロックであってもよい。
【発明の効果】
【００３８】
本発明の第１の側面によれば、画像のブロックの動きベクトルを算出することができる。また、本発明の第１の側面によれば、予測処理効率を向上させることができる。【００３９】
本発明の第２の側面によれば、画像を復号することができる。また、本発明の第２の側面によれば、予測処理効率を向上させることができる。
【図面の簡単な説明】
【００４０】
【図１】従来のテンプレートを説明する図である。
【図２】本発明を適用した画像符号化装置の一実施の形態の構成を示すブロック図である。
【図３】可変ブロックサイズ動き予測・補償処理を説明する図である。
【図４】１／４画素精度の動き予測・補償処理を説明する図である。
【図５】マルチ参照フレームの動き予測・補償方式について説明する図である。
【図６】動きベクトル情報の生成方法の例を説明する図である。
【図７】テンプレート予測モードに関する処理を行う各部の詳細な構成例を示すブロック図である。
【図８】ブロックサイズが８×８画素の場合のテンプレート画素設定の例を示す図である。
【図９】テンプレート画素設定の他の例を示す図である。
【図１０】ブロックサイズが４×４画素の場合のテンプレート画素設定の例を示す図である。
【図１１】テンプレート画素設定の他の例を示す図である。
【図１２】図２の画像符号化装置の符号化処理を説明するフローチャートである。
【図１３】図１２のステップＳ２１の予測処理を説明するフローチャートである。
【図１４】１６×１６画素のイントラ予測モードの場合の処理順序を説明する図である。
【図１５】輝度信号の４×４画素のイントラ予測モードの種類を示す図である。
【図１６】輝度信号の４×４画素のイントラ予測モードの種類を示す図である。
【図１７】４×４画素のイントラ予測の方向を説明する図である。
【図１８】４×４画素のイントラ予測を説明する図である。
【図１９】輝度信号の４×４画素のイントラ予測モードの符号化を説明する図である。
【図２０】輝度信号の１６×１６画素のイントラ予測モードの種類を示す図である。
【図２１】輝度信号の１６×１６画素のイントラ予測モードの種類を示す図である。
【図２２】１６×１６画素のイントラ予測を説明する図である。
【図２３】色差信号のイントラ予測モードの種類を示す図である。
【図２４】図１３のステップＳ３１のイントラ予測処理を説明するフローチャートである。
【図２５】図１３のステップＳ３２のインター動き予測処理を説明するフローチャートである。
【図２６】図１３のステップＳ３３のイントラテンプレート動き予測処理を説明するフローチャートである。
【図２７】イントラテンプレートマッチング方式について説明する図である。
【図２８】図１３のステップＳ３５のインターテンプレート動き予測処理を説明するフローチャートである。
【図２９】インターテンプレートマッチング方式について説明する図である。
【図３０】図２６のステップＳ６１または図２８のステップＳ７１のテンプレート画素設定処理を説明するフローチャートである。
【図３１】テンプレート画素設定による効果について説明する図である。
【図３２】本発明を適用した画像復号装置の一実施の形態の構成を示すブロック図である。
【図３３】図３２の画像復号装置の復号処理を説明するフローチャートである。
【図３４】図３３のステップＳ１３８の予測処理を説明するフローチャートである。
【図３５】拡張されたブロックサイズの例を示す図である。
【図３６】コンピュータのハードウエアの構成例を示すブロック図である。
【図３７】本発明を適用したテレビジョン受像機の主な構成例を示すブロック図である。
【図３８】本発明を適用した携帯電話機の主な構成例を示すブロック図である。
【図３９】本発明を適用したハードディスクレコーダの主な構成例を示すブロック図である。
【図４０】本発明を適用したカメラの主な構成例を示すブロック図である。
【発明を実施するための形態】
【００４１】
以下、図を参照して本発明の実施の形態について説明する。
【００４２】
［画像符号化装置の構成例］
図２は、本発明を適用した画像処理装置としての画像符号化装置の一実施の形態の構成を表している。
【００４３】
この画像符号化装置１は、例えば、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()を次の式（１）のように定義する。
【００７３】
【数１】
2010095560.tif 000003
なお、入力画像が８ビット精度である場合、max_pixの値は255となる。
【００７４】
位置ｂおよびｄにおける画素値は、６タップのFIRフィルタを用いて、次の式（２）のように生成される。
【数２】
2010095560.tif 000004
【００７５】
位置ｃにおける画素値は、水平方向および垂直方向に６タップのFIRフィルタを適用し、次の式（３）のように生成される。
【数３】
2010095560.tif 000005
なお、Clip処理は、水平方向および垂直方向の積和処理の両方を行った後、最後に１度のみ実行される。
【００７６】
位置ｅ１乃至ｅ３は、次の式（４）のように線形内挿により生成される。
【数４】
2010095560.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                                    ・・・（６）
【００８７】
なお、実際には、動きベクトル情報の水平方向、垂直方向のそれぞれの成分に対して、独立に処理が行われる。
【００８８】
このように、予測動きベクトル情報を生成し、隣接するブロックとの相関で生成された予測動きベクトル情報と動きベクトル情報との差分を、圧縮画像のヘッダ部に付加することにより、動きベクトル情報を低減することができる。
【００８９】
ところで、このようなメディアン予測を用いても、画像圧縮情報における動きベクトル情報の占める割合は少なくない。そこで、画像符号化装置１においては、符号化対象の画像の領域に対して所定の位置関係で隣接すると共に復号画像の一部であるテンプレートを利用することから、動きベクトルを復号側に送る必要のないテンプレート予測モードの動き予測補償処理も行う。その際、画像符号化装置１においては、そのテンプレートに用いる画素が設定される。
【００９０】
［各部の詳細な構成例］
図７は、上述したテンプレート予測モードに関する処理を行う各部の詳細な構成例を示すブロック図である。図７の例においては、イントラＴＰ動き予測・補償部２５、インターＴＰ動き予測・補償部２７、およびテンプレート画素設定部２８の詳細な構成例が示されている。
【００９１】
図７の例の場合、イントラＴＰ動き予測・補償部２５は、 ブロックアドレス算出部４１、動き予測部４２、および動き補償部４３により構成される。ブロックアドレス算出部４１は、符号化対象の対象ブロックの、そのマクロブロック内におけるアドレスを算出し、算出したアドレスの情報を、ブロック分類部６１に供給する。
【００９２】
動き予測部４２には、画面並べ替えバッファ１２から読み出されたイントラ予測する画像と、フレームメモリ２２から供給される参照画像が入力される。また、動き予測部４２には、対象ブロックＴＰ設定部６２および参照ブロックＴＰ設定部６３により設定された対象ブロックおよび参照ブロックのテンプレートの情報が入力される。
【００９３】
動き予測部４２は、イントラ予測する画像と参照画像を用い、対象ブロックＴＰ設定部６２および参照ブロックＴＰ設定部６３により設定された対象ブロックおよび参照ブロックのテンプレートの画素値を利用して、イントラテンプレート予測モードの動き予測を行う。このとき、算出された動きベクトルと参照画像は、動き補償部４３に供給される。
【００９４】
動き補償部４３は、動き予測部４２により算出された動きベクトルと参照画像を用いて、動き補償処理を行い、予測画像を生成する。さらに、動き補償部４３は、イントラテンプレート予測モードに対してコスト関数値を算出し、算出したコスト関数値と予測画像を、イントラ予測部２４に供給する。
【００９５】
インターＴＰ動き予測・補償部２７は、ブロックアドレス算出部５１、動き予測部５２、および動き補償部５３により構成される。ブロックアドレス算出部５１は、符号化対象の対象ブロックの、そのマクロブロック内におけるアドレスを算出し、算出したアドレスの情報を、ブロック分類部６１に供給する。
【００９６】
動き予測部５２には、画面並べ替えバッファ１２から読み出されたインター予測する画像と、フレームメモリ２２から供給される参照画像が入力される。また、動き予測部５２には、対象ブロックＴＰ設定部６２および参照ブロックＴＰ設定部６３により設定された対象ブロックおよび参照ブロックのテンプレートの情報が入力される。
【００９７】
動き予測部５２は、インター予測する画像と参照画像を用い、対象ブロックＴＰ設定部６２および参照ブロックＴＰ設定部６３により設定された対象ブロックおよび参照ブロックのテンプレートの画素値を利用して、インターテンプレート予測モードの動き予測を行う。このとき、算出された動きベクトルと参照画像は、動き補償部５３に供給される。
【００９８】
動き補償部５３は、動き予測部５２により算出された動きベクトルと参照画像を用いて、動き補償処理を行い、予測画像を生成する。さらに、動き補償部５３は、インターテンプレート予測モードに対してコスト関数値を算出し、算出したコスト関数値と予測画像を、動き予測・補償部２６に供給する。
【００９９】
テンプレート画素設定部２８は、ブロック分類部６１、対象ブロックテンプレート設定部６２、および参照ブロックテンプレート設定部６３により構成される。なお、以下、対象ブロックテンプレート設定部６２および参照ブロックテンプレート設定部６３を、それぞれ、対象ブロックＴＰ設定部６２および参照ブロックＴＰ設定部６３と称する。
【０１００】
ブロック分類部６１は、イントラまたはインターテンプレート予測モードによる処理対象の対象ブロックが、そのマクロブロック内の左上のブロック、右上のブロック、左下のブロック、および右下のブロックのどのブロックであるかを分類する。ブロック分類部６１は、対象ブロックがどのブロックであるかという情報を、対象ブロックＴＰ設定部６２および参照ブロックＴＰ設定部６３に供給する。
【０１０１】
対象ブロックＴＰ設定部６２は、対象ブロックに対して、マクロブロック内における対象ブロックの位置がどの位置であるかに応じて、テンプレートを構成する画素の設定を行う。設定された対象ブロックにおけるテンプレートの情報は、動き予測部４２または動き予測部５２に供給される。
【０１０２】
参照ブロックＴＰ設定部６３は、参照ブロックに対して、マクロブロック内における対象ブロックの位置がどの位置であるかに応じて、テンプレートを構成する画素の設定を行う。すなわち、参照ブロックＴＰ設定部６３は、対象ブロックと同位置における画素を、参照ブロックに対するテンプレートを構成する画素に設定する。設定された参照ブロックにおけるテンプレートの情報は、動き予測部４２または動き予測部５２に供給される。
【０１０３】
［テンプレート画素設定処理の例］
図８のA乃至図８のDは、対象ブロックのマクロブロック内の位置に応じたテンプレートの例を示している。図８のA乃至図８のDの例の場合、１６×１６画素のマクロブロックＭＢが示されており、マクロブロックＭＢは、８×８画素からなる４つのブロックＢ０乃至Ｂ３からなる。また、この例においては、処理は、ブロックＢ０乃至Ｂ３の順、すなわち、ラスタスキャン順に行われるものとする。
【０１０４】
ブロックＢ０は、マクロブロックＭＢ内の左上に位置するブロックであり、ブロックＢ１は、マクロブロックＭＢ内の右上に位置するブロックである。また、ブロックＢ２は、マクロブロックＭＢ内の左下に位置するブロックであり、ブロックＢ３は、マクロブロックＭＢ内の右下に位置するブロックである。
【０１０５】
すなわち、図８のAは、対象ブロックがブロックＢ０である場合のテンプレートの例を示している。図８のBは、対象ブロックがブロックＢ１である場合のテンプレートの例を示している。図８のCは、対象ブロックがブロックＢ２である場合のテンプレートの例を示している。図８のDは、対象ブロックがブロックＢ３である場合のテンプレートの例を示している。
【０１０６】
ブロック分類部６１は、イントラまたはインターテンプレート予測モードによる処理対象の対象ブロックが、マクロブロックＭＢ内のどの位置にあるか、すなわち、ブロックＢ０乃至Ｂ３のうちどのブロックであるかを分類する。
【０１０７】
対象ブロックＴＰ設定部６２および参照ブロックＴＰ設定部６３は、対象ブロックがマクロブロックＭＢ内のどの位置にあるか（どのブロックであるか）に応じて、対象ブロックおよび参照ブロックに対するテンプレートを構成する画素をそれぞれ設定する。
【０１０８】
すなわち、対象ブロックがブロックＢ０である場合、図８のAに示されるように、対象ブロックの上部、左上部、および左部にそれぞれ隣接する画素ＵＢ０、画素ＬＵＢ０、および画素ＬＢ０がテンプレートに設定される。そして、設定された画素ＵＢ０、画素ＬＵＢ０、および画素ＬＢ０で構成されるテンプレートの画素値が、マッチングに用いられる。
【０１０９】
対象ブロックがブロックＢ１である場合、図８のBに示されるように、対象ブロックの上部および左上部に隣接する画素ＵＢ１および画素ＬＵＢ1と、ブロックＢ０の左部に隣接する画素ＬＢ０がテンプレートに設定される。そして、設定された画素ＵＢ１、画素ＬＵＢ１、および画素ＬＢ０で構成されるテンプレートの画素値が、マッチングに用いられる。
【０１１０】
対象ブロックがブロックＢ２である場合、図８のCに示されるように、対象ブロックの左上部および左部に隣接する画素ＬＵＢ２および画素ＬＢ２と、ブロックＢ０の上部に隣接する画素ＵＢ０がテンプレートに設定される。そして、設定された画素ＵＢ０、画素ＬＵＢ２、および画素ＬＢ２で構成されるテンプレートの画素値が、マッチングに用いられる。
【０１１１】
対象ブロックがブロックＢ３である場合、図８のDに示されるように、ブロックＢ０の左上部に隣接する画素ＬＵＢ０と、ブロックＢ１の上部に隣接する画素ＵＢ１と、ブロックＢ２の左部に隣接する画素ＬＢ２がテンプレートに設定される。そして、設定された画素ＵＢ１、画素ＬＵＢ０、および画素ＬＢ２で構成されるテンプレートの画素値が、マッチングに用いられる。
【０１１２】
なお、対象ブロックがブロックＢ３である場合には、図８のDのテンプレートの例に限らず、図９のAまたは図９のBに示されるテンプレートを利用することもできる。
【０１１３】
すなわち、対象ブロックがブロックＢ３である場合には、図９のAに示されるように、ブロックＢ１の左上部に隣接する画素ＬＵＢ１および上部に隣接する画素ＵＢ１と、ブロックＢ２の左部に隣接する画素ＬＢ２がテンプレートに設定される。そして、設定された画素ＵＢ１、画素ＬＵＢ１、および画素ＬＢ２で構成されるテンプレートの画素値が、マッチングに用いられる。
【０１１４】
あるいは、対象ブロックがブロックＢ３である場合には、図９のBに示されるように、ブロックＢ１の上部に隣接する画素ＵＢ１と、ブロックＢ２の左上部に隣接する画素ＬＵＢ２および左部に隣接する画素ＬＢ２がテンプレートに設定される。そして、設定された画素ＵＢ１、画素ＬＵＢ２、および画素ＬＢ２で構成されるテンプレートの画素値が、マッチングに用いられる。
【０１１５】
ここで、テンプレートに設定される候補の画素ＵＢ０、画素ＬＵＢ０、画素ＬＢ０、画素ＬＵＢ１、画素ＵＢ１、画素ＬＵＢ２、および画素ＬＢ２は、どの画素もマクロブロックＭＢに所定の位置関係で隣接する画素である。
【０１１６】
以上のように、テンプレートを構成する画素として、常に、対象ブロックのマクロブロックに隣接する画素を利用することにより、マクロブロックＭＢ内のブロックＢ０乃至Ｂ３に対する処理を、並列処理またはパイプライン処理により実現することが可能になる。この効果の詳細については、図３１のA乃至図３１のCを参照して後述する。
【０１１７】
［テンプレート画素設定処理の他の例］
図１０のA乃至図１０のEは、ブロックサイズが４×４の場合のテンプレートの例を示している。図１０のAの例の場合、１６×１６画素のマクロブロックＭＢが示されており、マクロブロックＭＢは、４×４画素からなる１６のブロックＢ０乃至Ｂ１５からなる。そのうち、サブマクロブロックＳＭＢ０は、ブロックＢ０乃至Ｂ３で構成され、サブマクロブロックＳＭＢ１は、ブロックＢ４乃至Ｂ７で構成されている。また、サブマクロブロックＳＭＢ２は、ブロックＢ８乃至Ｂ１１で構成され、サブマクロブロックＳＭＢ３は、ブロックＢ１２乃至Ｂ１５で構成されている。
【０１１８】
なお、ブロックＢ０、ブロックＢ４、ブロックＢ８、およびブロックＢ１２における処理は、基本的に同じ処理であり、ブロックＢ１、ブロックＢ５、ブロックＢ９、およびブロックＢ１３における処理は、基本的に同じ処理である。ブロックＢ２、ブロックＢ６、ブロックＢ１０、およびブロックＢ１４における処理は、基本的に同じ処理であり、ブロックＢ３、ブロックＢ７、ブロックＢ１１、およびブロックＢ１５における処理は、基本的に同じ処理である。したがって、以下においては、ブロックＢ０乃至Ｂ３で構成される８×８画素のサブマクロブロックＳＭＢ０を例に説明する。
【０１１９】
すなわち、図１０のBは、サブマクロブロックＳＭＢ０内において、対象ブロックがブロックＢ０である場合のテンプレートの例を示している。図１０のCは、サブマクロブロックＳＭＢ０内において、対象ブロックがブロックＢ１である場合のテンプレートの例を示している。図１０のDは、サブマクロブロックＳＭＢ０内において、対象ブロックがブロックＢ２である場合のテンプレートの例を示している。図１０のEは、サブマクロブロックＳＭＢ０内において、対象ブロックがブロックＢ３である場合のテンプレートの例を示している。
【０１２０】
以下、処理の順であるラスタスキャン順に説明する。対象ブロックがブロックＢ０である場合、図１０のBに示されるように、対象ブロックの上部、左上部、および左部にそれぞれ隣接する画素ＵＢ０、画素ＬＵＢ０、および画素ＬＢ０がテンプレートに設定される。そして、設定された画素ＵＢ０、画素ＬＵＢ０、および画素ＬＢ０で構成されるテンプレートの画素値が、マッチングに用いられる。
【０１２１】
対象ブロックがブロックＢ１である場合、図１０のCに示されるように、対象ブロックの上部および左上部に隣接する画素ＵＢ１および画素ＬＵＢ1と、ブロックＢ０の左部に隣接する画素ＬＢ０がテンプレートに設定される。そして、設定された画素ＵＢ１、画素ＬＵＢ１、および画素ＬＢ０で構成されるテンプレートの画素値が、マッチングに用いられる。
【０１２２】
対象ブロックがブロックＢ２である場合、図１０のDに示されるように、対象ブロックの左上部および左部に隣接する画素ＬＵＢ２および画素ＬＢ２と、ブロックＢ０の上部に隣接する画素ＵＢ０がテンプレートに設定される。そして、設定された画素ＵＢ０、画素ＬＵＢ２、および画素ＬＢ２で構成されるテンプレートの画素値が、マッチングに用いられる。
【０１２３】
対象ブロックがブロックＢ３である場合、図１０のEに示されるように、ブロックＢ０の左上部に隣接する画素ＬＵＢ０と、ブロックＢ１の上部に隣接する画素ＵＢ１と、ブロックＢ２の左部に隣接する画素ＬＢ２がテンプレートに設定される。そして、設定された画素ＵＢ１、画素ＬＵＢ０、および画素ＬＢ２で構成されるテンプレートの画素値が、マッチングに用いられる。
【０１２４】
なお、対象ブロックがブロックＢ３である場合には、図１０のEのテンプレートの例に限らず、図１１のAまたは図１１のBに示されるテンプレートを利用することもできる。
【０１２５】
すなわち、対象ブロックがブロックＢ３である場合には、図１１のAに示されるように、ブロックＢ１の左上部に隣接する画素ＬＵＢ１および上部に隣接する画素ＵＢ１と、ブロックＢ２の左部に隣接する画素ＬＢ２がテンプレートに設定される。そして、設定された画素ＵＢ１、画素ＬＵＢ１、および画素ＬＢ２で構成されるテンプレートの画素値が、マッチングに用いられる。
【０１２６】
あるいは、対象ブロックがブロックＢ３である場合には、図１１のBに示されるように、ブロックＢ１の上部に隣接する画素ＵＢ１と、ブロックＢ２の左上部に隣接する画素ＬＵＢ２および左部に隣接する画素ＬＢ２がテンプレートに設定される。そして、設定された画素ＵＢ１、画素ＬＵＢ２、および画素ＬＢ２で構成されるテンプレートの画素値が、マッチングに用いられる。
【０１２７】
ここで、テンプレートに設定される候補の画素ＵＢ０、画素ＬＵＢ０、画素ＬＢ０、画素ＬＵＢ１、画素ＵＢ１、画素ＬＵＢ２、および画素ＬＢ２は、どの画素もサブマクロブロックＳＭＢ０に所定の位置関係で隣接する画素である。
【０１２８】
以上のように、テンプレートを構成する画素として、常に、対象ブロックのサブマクロブロックに隣接する画素を利用するようにした。これにより、サブマクロブロックＳＭＢ０内のブロックＢ０乃至Ｂ３に対する処理を、並列処理またはパイプライン処理により実現することが可能になる。
【０１２９】
［符号化処理の説明］
次に、図１２のフローチャートを参照して、図１の画像符号化装置１の符号化処理について説明する。
【０１３０】
ステップＳ１１において、Ａ／Ｄ変換部１１は入力された画像をＡ／Ｄ変換する。ステップＳ１２において、画面並べ替えバッファ１２は、Ａ／Ｄ変換部１１より供給された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
【０１３１】
ステップＳ１３において、演算部１３は、ステップＳ１２で並び替えられた画像と予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部２６から、イントラ予測する場合はイントラ予測部２４から、それぞれ予測画像選択部２９を介して演算部１３に供給される。
【０１３２】
差分データは元の画像データに較べてデータ量が小さくなっている。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
【０１３３】
ステップＳ１４において、直交変換部１４は演算部１３から供給された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。ステップＳ１５において、量子化部１５は変換係数を量子化する。この量子化に際しては、後述するステップＳ２５の処理で説明されるように、レートが制御される。
【０１３４】
以上のようにして量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップＳ１６において、逆量子化部１８は量子化部１５により量子化された変換係数を量子化部１５の特性に対応する特性で逆量子化する。ステップＳ１７において、逆直交変換部１９は逆量子化部１８により逆量子化された変換係数を直交変換部１４の特性に対応する特性で逆直交変換する。
【０１３５】
ステップＳ１８において、演算部２０は、予測画像選択部２９を介して入力される予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像（演算部１３への入力に対応する画像）を生成する。ステップＳ１９においてデブロックフィルタ２１は、演算部２０より出力された画像をフィルタリングする。これによりブロック歪みが除去される。ステップＳ２０においてフレームメモリ２２は、フィルタリングされた画像を記憶する。なお、フレームメモリ２２にはデブロックフィルタ２１によりフィルタ処理されていない画像も演算部２０から供給され、記憶される。
【０１３６】
ステップＳ２１において、イントラ予測部２４、イントラＴＰ動き予測・補償部２５、動き予測・補償部２６、およびインターＴＰ動き予測・補償部２７は、それぞれ画像の予測処理を行う。すなわち、ステップＳ２１において、イントラ予測部２４は、イントラ予測モードのイントラ予測処理を行い、イントラＴＰ動き予測・補償部２５は、イントラテンプレート予測モードの動き予測・補償処理を行う。また、動き予測・補償部２６は、インター予測モードの動き予測・補償処理を行い、インターＴＰ動き予測・補償部２７は、インターテンプレート予測モードの動き予測・補償処理を行う。なお、このとき、イントラＴＰ動き予測・補償部２５およびインターＴＰ動き予測・補償部２７においては、テンプレート画素設定部２８により設定されたテンプレートが利用される。
【０１３７】
ステップＳ２１における予測処理の詳細は、図１３を参照して後述するが、この処理により、候補となる全ての予測モードでの予測処理がそれぞれ行われ、候補となる全ての予測モードでのコスト関数値がそれぞれ算出される。そして、算出されたコスト関数値に基づいて、イントラ予測モードとイントラテンプレート予測モードの中から、最適イントラ予測モードが選択され、最適イントラ予測モードで生成された予測画像とそのコスト関数値が予測画像選択部２９に供給される。また、算出されたコスト関数値に基づいて、インター予測モードとインターテンプレート予測モードの中から、最適インター予測モードが決定され、最適インター予測モードで生成された予測画像とそのコスト関数値が、予測画像選択部２９に供給される。
【０１３８】
ステップＳ２２において、予測画像選択部２９は、イントラ予測部２４および動き予測・補償部２６より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちの一方を、最適予測モードに決定する。そして、予測画像選択部２９は、決定した最適予測モードの予測画像を選択し、演算部１３，２０に供給する。この予測画像が、上述したように、ステップＳ１３，Ｓ１８の演算に利用される。
【０１３９】
なお、この予測画像の選択情報は、イントラ予測部２４または動き予測・補償部２６に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部２４は、最適イントラ予測モードを示す情報（すなわち、イントラ予測モード情報またはイントラテンプレート予測モード情報）を、可逆符号化部１６に供給する。
【０１４０】
最適インター予測モードの予測画像が選択された場合、動き予測・補償部２６は、最適インター予測モードを示す情報と、必要に応じて、最適インター予測モードに応じた情報を可逆符号化部１６に出力する。最適インター予測モードに応じた情報としては、動きベクトル情報やフラグ情報、参照フレーム情報などがあげられる。さらに具体的には、最適インター予測モードとして、インター予測モードによる予測画像が選択されているときには、動き予測・補償部２６は、インター予測モード情報、動きベクトル情報、参照フレーム情報を可逆符号化部１６に出力する。
【０１４１】
一方、最適インター予測モードとして、インターテンプレート予測モードによる予測画像が選択されているときには、動き予測・補償部２６は、インターテンプレート予測モード情報のみを可逆符号化部１６に出力する。すなわち、インターテンプレート予測モード情報による符号化の場合には、動きベクトル情報などは、復号側に送る必要がないので、可逆符号化部１６に出力されない。したがって、圧縮画像中における動きベクトル情報を低減することができる。
【０１４２】
ステップＳ２３において、可逆符号化部１６は量子化部１５より出力された量子化された変換係数を符号化する。すなわち、差分画像が可変長符号化、算術符号化等の可逆符号化され、圧縮される。このとき、上述したステップＳ２２において可逆符号化部１６に入力された、イントラ予測部２４からの最適イントラ予測モード情報、または、動き予測・補償部２６からの最適インター予測モードに応じた情報なども符号化され、ヘッダ情報に付加される。
【０１４３】
ステップＳ２４において蓄積バッファ１７は差分画像を圧縮画像として蓄積する。蓄積バッファ１７に蓄積された圧縮画像が適宜読み出され、伝送路を介して復号側に伝送される。
【０１４４】
ステップＳ２５においてレート制御部３０は、蓄積バッファ１７に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部１５の量子化動作のレートを制御する。
【０１４５】
［予測処理の説明］
次に、図１３のフローチャートを参照して、図１２のステップＳ２１における予測処理を説明する。
【０１４６】
画面並べ替えバッファ１２から供給される処理対象の画像がイントラ処理されるブロックの画像である場合、参照される復号済みの画像がフレームメモリ２２から読み出され、スイッチ２３を介してイントラ予測部２４に供給される。これらの画像に基づいて、ステップＳ３１において、イントラ予測部２４は処理対象のブロックの画素を、候補となる全てのイントラ予測モードでイントラ予測する。なお、参照される復号済みの画素としては、デブロックフィルタ２１によりデブロックフィルタリングされていない画素が用いられる。
【０１４７】
ステップＳ３１におけるイントラ予測処理の詳細は、図２４を参照して後述するが、この処理により、候補となる全てのイントラ予測モードでイントラ予測が行われ、候補となる全てのイントラ予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、全てのイントラ予測モードの中から、最適とされる、１つのイントラ予測モードが選択される。
【０１４８】
画面並べ替えバッファ１２から供給される処理対象の画像がインター処理される画像である場合、参照される画像がフレームメモリ２２から読み出され、スイッチ２３を介して動き予測・補償部２６に供給される。これらの画像に基づいて、ステップＳ３２において、動き予測・補償部２６はインター動き予測処理を行う。すなわち、動き予測・補償部２６は、フレームメモリ２２から供給される画像を参照して、候補となる全てのインター予測モードの動き予測処理を行う。
【０１４９】
ステップＳ３２におけるインター動き予測処理の詳細は、図２５を参照して後述するが、この処理により、候補となる全てのインター予測モードで動き予測処理が行われ、候補となる全てのインター予測モードに対してコスト関数値が算出される。
【０１５０】
また、画面並べ替えバッファ１２から供給される処理対象の画像がイントラ処理されるブロックの画像である場合、フレームメモリ２２から読み出された参照される復号済みの画像は、イントラ予測部２４を介してイントラＴＰ動き予測・補償部２５にも供給される。これらの画像に基づいて、ステップＳ３３において、イントラＴＰ動き予測・補償部２５は、イントラテンプレート予測モードで、イントラテンプレート動き予測処理を行う。
【０１５１】
ステップＳ３３におけるイントラテンプレート動き予測処理の詳細は、図２６を参照して後述するが、この処理により、イントラテンプレート予測モードで動き予測処理が行われ、イントラテンプレート予測モードに対してコスト関数値が算出される。そして、イントラテンプレート予測モードの動き予測処理により生成された予測画像とそのコスト関数値がイントラ予測部２４に供給される。
【０１５２】
ステップＳ３４において、イントラ予測部２４は、ステップＳ３１において選択されたイントラ予測モードに対してのコスト関数値と、ステップＳ３３において算出されたイントラテンプレート予測モードに対してのコスト関数値を比較する。そして、イントラ予測部２４は、最小値を与える予測モードを、最適イントラ予測モードとして決定し、最適イントラ予測モードで生成された予測画像とそのコスト関数値を、予測画像選択部２９に供給する。
【０１５３】
さらに、画面並べ替えバッファ１２から供給される処理対象の画像がインター処理される画像である場合、フレームメモリ２２から読み出された参照される画像は、動き予測・補償部２６を介してインターＴＰ動き予測・補償部２７にも供給される。これらの画像に基づいて、インターＴＰ動き予測・補償部２７は、ステップＳ３５において、インターテンプレート予測モードで、インターテンプレート動き予測処理を行う。
【０１５４】
ステップＳ３５におけるインターテンプレート動き予測処理の詳細は、図２８を参照して後述するが、この処理により、インターテンプレート予測モードで動き予測処理が行われ、インターテンプレート予測モードに対してコスト関数値が算出される。そして、インターテンプレート予測モードの動き予測処理により生成された予測画像とそのコスト関数値が動き予測・補償部２６に供給される。
【０１５５】
ステップＳ３６において、動き予測・補償部２６は、ステップＳ３２において選択された最適なインター予測モードに対してコスト関数値と、ステップＳ３５において算出されたインターテンプレート予測モードに対してのコスト関数値を比較する。そして、動き予測・補償部２６は、最小値を与える予測モードを、最適インター予測モードとして決定し、動き予測・補償部２６は、最適インター予測モードで生成された予測画像とそのコスト関数値を、予測画像選択部２９に供給する。
【０１５６】
［Ｈ．２６４／ＡＶＣ方式におけるイントラ予測処理の説明］
次に、Ｈ．２６４／ＡＶＣ方式で定められているイントラ予測の各モードについて説明する。
【０１５７】
まず、輝度信号に対するイントラ予測モードについて説明する。輝度信号のイントラ予測モードには、９種類の４×４画素のブロック単位、並びに４種類の１６×１６画素のマクロブロック単位の予測モードがある。
【０１５８】
図１４の例において、各ブロックに付されている数字−１乃至２５は、その各ブロックのビットストリーム順（すなわち、復号側での処理順）を表している。輝度信号については、マクロブロックが４×４画素に分割されて、４×４画素のＤＣＴが行われる。そして、１６×１６画素のイントラ予測モードの場合のみ、−１のブロックに示されるように、各ブロックの直流成分を集めて、４×４行列が生成され、これに対して、さらに、直交変換が施される。
【０１５９】
なお、色差信号については、マクロブロックが４×４画素に分割され、４×４画素のＤＣＴが行われた後に、１６および１７の各ブロックに示されるように、各ブロックの直流成分を集めて、２×２行列が生成され、これに対して、さらに、直交変換が施される。
【０１６０】
また、ハイプロファイルについては、８次のDCTブロックに対して、８×８画素のブロック単位の予測モードが定められているが、この方式については、次に説明する４×４画素のイントラ予測モードの方式に準じる。
【０１６１】
図１５および図１６は、９種類の輝度信号の４×４画素のイントラ予測モード(Intra_4x4_pred_mode)を示す図である。平均値（ＤＣ）予測を示すモード２以外の８種類の各モードは、それぞれ、図１７の番号０，１，３乃至８で示される方向に対応している。
【０１６２】
９種類のIntra_4x4_pred_modeについて、図１８を参照して説明する。図１８の例において、画素ａ乃至ｐは、イントラ処理される対象ブロックの画素を表し、画素値Ａ乃至Ｍは、隣接ブロックに属する画素の画素値を表している。すなわち、画素ａ乃至ｐは、画面並べ替えバッファ１２から読み出された処理対象の画像であり、画素値Ａ乃至Ｍは、フレームメモリ２２から読み出され、参照される復号済みの画像の画素値である。
【０１６３】
図１５および図１６の各イントラ予測モードの場合、画素ａ乃至ｐの予測画素値は、隣接ブロックに属する画素の画素値Ａ乃至Ｍを用いて、以下のように生成される。なお、画素値が”available”であるとは、画枠の端であったり、あるいは、まだ符号化されていないなどの理由がなく、利用可能であることを表す。これに対して、画素値が”unavailable”であるとは、画枠の端であったり、あるいは、まだ符号化されていないなどの理由により利用可能ではないことを表す。
【０１６４】
モード０はVertical Predictionであり、画素値Ａ乃至Ｄが ”available” の場合のみ適用される。この場合、画素ａ乃至ｐの予測画素値は、次の式（７）のように生成される。  画素ａ, ｅ, ｉ, ｍの予測画素値  ＝  Ａ
画素ｂ, ｆ, ｊ, ｎの予測画素値  ＝  Ｂ
画素ｃ, ｇ, ｋ, ｏの予測画素値  ＝  Ｃ
画素ｄ, ｈ, ｌ, ｐの予測画素値  ＝  Ｄ                ・・・（７）
【０１６５】
モード１はHorizontal Predictionであり、画素値Ｉ乃至Ｌが ”available” の場合のみ適用される。この場合、画素ａ乃至ｐの予測画素値は、次の式（８）のように生成される。
画素ａ, ｂ, ｃ, ｄの予測画素値  ＝  Ｉ
画素ｅ, ｆ, ｇ, ｈの予測画素値  ＝  Ｊ
画素ｉ, ｊ, ｋ, ｌの予測画素値  ＝  Ｋ
画素ｍ, ｎ, ｏ, ｐの予測画素値  ＝  Ｌ                ・・・（８）
【０１６６】
モード２はDC Predictionであり、画素値Ａ,Ｂ,Ｃ,Ｄ,Ｉ,Ｊ,Ｋ,Ｌが全て ”available” である時、予測画素値は式（９）のように生成される。
（Ａ＋Ｂ＋Ｃ＋Ｄ＋Ｉ＋Ｊ＋Ｋ＋Ｌ＋４）  ＞＞  ３      ・・・（９）
【０１６７】
また、画素値Ａ,Ｂ,Ｃ,Ｄが全て ”unavailable” である時、予測画素値は式（１０）のように生成される。
（Ｉ＋Ｊ＋Ｋ＋Ｌ＋２）  ＞＞  ２                    ・・・（１０）
【０１６８】
また、画素値Ｉ,Ｊ,Ｋ,Ｌが全て ”unavailable” である時、予測画素値は式（１１）のように生成される。
（Ａ＋Ｂ＋Ｃ＋Ｄ＋２）  ＞＞  ２                    ・・・（１１）
【０１６９】
なお、画素値Ａ,Ｂ,Ｃ,Ｄ,Ｉ,Ｊ,Ｋ,Ｌが全て”unavailable” である時、１２８を予測画素値として用いる。
【０１７０】
モード３はDiagonal_Down_Left Predictionであり、画素値Ａ,Ｂ,Ｃ,Ｄ,Ｉ,Ｊ,Ｋ,Ｌ,Ｍが”available”の場合のみ適用される。この場合、画素ａ乃至ｐの予測画素値は、次の式（１２）のように生成される。
画素ａの予測画素値                  ＝  （Ａ＋２Ｂ＋Ｃ＋２）  ＞＞  ２
画素ｂ，ｅの予測画素値              ＝  （Ｂ＋２Ｃ＋Ｄ＋２）  ＞＞  ２
画素ｃ，ｆ，ｉの予測画素値          ＝  （Ｃ＋２Ｄ＋Ｅ＋２）  ＞＞  ２
画素ｄ，ｇ，ｊ，ｍの予測画素値      ＝  （Ｄ＋２Ｅ＋Ｆ＋２）  ＞＞  ２
画素ｈ，ｋ，ｎの予測画素値          ＝  （Ｅ＋２Ｆ＋Ｇ＋２）  ＞＞  ２
画素ｌ，ｏの予測画素値              ＝  （Ｆ＋２Ｇ＋Ｈ＋２）  ＞＞  ２
画素ｐの予測画素値                  ＝  （Ｇ＋３Ｈ＋２）      ＞＞  ２
・・・（１２）
【０１７１】
モード４はDiagonal_Down_Right Predictionであり、画素値Ａ,Ｂ,Ｃ,Ｄ,Ｉ,Ｊ,Ｋ,Ｌ,Ｍが ”available” の場合のみ適用される。この場合、画素ａ乃至ｐの予測画素値は、次の式（１３）のように生成される。
画素ｍの予測画素値                  ＝  （Ｊ＋２Ｋ＋Ｌ＋２）  ＞＞  ２
画素ｉ，ｎの予測画素値              ＝  （Ｉ＋２Ｊ＋Ｋ＋２）  ＞＞  ２
画素ｅ，ｊ，ｏの予測画素値          ＝  （Ｍ＋２Ｉ＋Ｊ＋２）  ＞＞  ２
画素ａ，ｆ，ｋ，ｐの予測画素値      ＝  （Ａ＋２Ｍ＋Ｉ＋２）  ＞＞  ２
画素ｂ，ｇ，ｌの予測画素値          ＝  （Ｍ＋２Ａ＋Ｂ＋２）  ＞＞  ２
画素ｃ，ｈの予測画素値              ＝  （Ａ＋２Ｂ＋Ｃ＋２）  ＞＞  ２
画素ｄの予測画素値                  ＝  （Ｂ＋２Ｃ＋Ｄ＋２）  ＞＞  ２
・・・（１３）
【０１７２】
モード５はDiagonal_Vertical_Right Predictionであり、画素値Ａ,Ｂ,Ｃ,Ｄ,Ｉ,Ｊ,Ｋ,Ｌ,Ｍが”available”の場合のみ適用される。この場合、画素ａ乃至ｐの予測画素値は、次の式（１４）のように生成される。
画素ａ，ｊの予測画素値              ＝  （Ｍ＋Ａ＋１）        ＞＞  １
画素ｂ，ｋの予測画素値              ＝  （Ａ＋Ｂ＋１）        ＞＞  １
画素ｃ，ｌの予測画素値              ＝  （Ｂ＋Ｃ＋１）        ＞＞  １
画素ｄの予測画素値                  ＝  （Ｃ＋Ｄ＋１）        ＞＞  １
画素ｅ，ｎの予測画素値              ＝  （Ｉ＋２Ｍ＋Ａ＋２）  ＞＞  ２
画素ｆ，ｏの予測画素値              ＝  （Ｍ＋２Ａ＋Ｂ＋２）  ＞＞  ２
画素ｇ，ｐの予測画素値              ＝  （Ａ＋２Ｂ＋Ｃ＋２）  ＞＞  ２
画素ｈの予測画素値                  ＝  （Ｂ＋２Ｃ＋Ｄ＋２）  ＞＞  ２
画素ｉの予測画素値                  ＝  （Ｍ＋２Ｉ＋Ｊ＋２）  ＞＞  ２
画素ｍの予測画素値                  ＝  （Ｉ＋２Ｊ＋Ｋ＋２）  ＞＞  ２
・・・（１４）
【０１７３】
モード６はHorizontal_Down Predictionであり、画素値Ａ,Ｂ,Ｃ,Ｄ,Ｉ,Ｊ,Ｋ,Ｌ,Ｍが”available”の場合のみ適用される。この場合、画素ａ乃至ｐの予測画素値は、次の式（１５）のように生成される。
画素ａ，ｇの予測画素値              ＝  （Ｍ＋Ｉ＋１）        ＞＞  １
画素ｂ，ｈの予測画素値              ＝  （Ｉ＋２Ｍ＋Ａ＋２）  ＞＞  ２
画素ｃの予測画素値                  ＝  （Ｍ＋２Ａ＋Ｂ＋２）  ＞＞  ２
画素ｄの予測画素値                  ＝  （Ａ＋２Ｂ＋Ｃ＋２）  ＞＞  ２
画素ｅ，ｋの予測画素値              ＝  （Ｉ＋Ｊ＋１）        ＞＞  １
画素ｆ，ｌの予測画素値              ＝  （Ｍ＋２Ｉ＋Ｊ＋２）  ＞＞  ２
画素ｉ，ｏの予測画素値              ＝  （Ｊ＋Ｋ＋１）        ＞＞  １
画素ｊ，ｐの予測画素値              ＝  （Ｉ＋２Ｊ＋Ｋ＋２）  ＞＞  ２
画素ｍの予測画素値                  ＝  （Ｋ＋Ｌ＋１）        ＞＞  １
画素ｎの予測画素値                  ＝  （Ｊ＋２Ｋ＋Ｌ＋２）  ＞＞  ２
・・・（１５）
【０１７４】
モード７は、Vertical_Left Predictionであり、画素値Ａ,Ｂ,Ｃ,Ｄ,Ｉ,Ｊ,Ｋ,Ｌ,Ｍが”available”の場合のみ適用される。この場合、画素ａ乃至ｐの予測画素値は、次の式（１６）のように生成される。
画素ａの予測画素値                  ＝  （Ａ＋Ｂ＋１）        ＞＞  １
画素ｂ，ｉの予測画素値              ＝  （Ｂ＋Ｃ＋１）        ＞＞  １
画素ｃ，ｊの予測画素値              ＝  （Ｃ＋Ｄ＋１）        ＞＞  １
画素ｄ，ｋの予測画素値              ＝  （Ｄ＋Ｅ＋１）        ＞＞  １
画素ｌの予測画素値                  ＝  （Ｅ＋Ｆ＋１）        ＞＞  １
画素ｅの予測画素値                  ＝  （Ａ＋２Ｂ＋Ｃ＋２）  ＞＞  ２
画素ｆ，ｍの予測画素値              ＝  （Ｂ＋２Ｃ＋Ｄ＋２）  ＞＞  ２
画素ｇ，ｎの予測画素値              ＝  （Ｃ＋２Ｄ＋Ｅ＋２）  ＞＞  ２
画素ｈ，ｏの予測画素値              ＝  （Ｄ＋２Ｅ＋Ｆ＋２）  ＞＞  ２
画素ｐの予測画素値                  ＝  （Ｅ＋２Ｆ＋Ｇ＋２）  ＞＞  ２
・・・（１６）
【０１７５】
モード８は、Horizontal_Up Predictionであり、画素値Ａ,Ｂ,Ｃ,Ｄ,Ｉ,Ｊ,Ｋ,Ｌ,Ｍが”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_16x16_pred_mode)を示す図である。
【０１８３】
４種類のイントラ予測モードについて、図２２を参照して説明する。図２２の例において、イントラ処理される対象マクロブロックＡが示されており、P(x,y);x,y=-1,0,…,15は、対象マクロブロックＡに隣接する画素の画素値を表している。
【０１８４】
モード０は、Vertical Predictionであり、P(x,-1); x,y=-1,0,…,15が ”available” である時のみ適用される。この場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（２０）のように生成される。
Pred(x,y) = P(x,-1);x,y=0,…,15
・・・（２０）
【０１８５】
モード１はHorizontal Predictionであり、P(-1,y); x,y=-1,0,…,15が ”available” である時のみ適用される。この場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（２１）のように生成される。
Pred(x,y) = P(-1,y);x,y=0,…,15
・・・（２１）
【０１８６】
モード２はDC Predictionであり、P(x,-1)およびP(-1,y); x,y=-1,0,…,15が全て ”available” である場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（２２）のように生成される。
【数５】
2010095560.tif 000007
【０１８７】
また、P(x,-1); x,y=-1,0,…,15が ”unavailable” である場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（２３）のように生成される。
【数６】
2010095560.tif 000008
【０１８８】
P(-1,y); x,y=-1,0,…,15が ”unavailable” である場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（２４）のように生成される。
【数７】
2010095560.tif 000009
【０１８９】
P(x,-1)およびP(-1,y); x,y=-1,0,…,15が全て ”unavailable” である場合には、予測画素値として１２８を用いる。
【０１９０】
モード３はPlane Predictionであり、P(x,-1)及びP(-1,y); x,y=-1,0,…,15が全て ”available” の場合のみ適用される。この場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（２５）のように生成される。
【数８】
2010095560.tif 000010
【０１９１】
次に、色差信号に対するイントラ予測モードについて説明する。図２３は、４種類の色差信号のイントラ予測モード(Intra_chroma_pred_mode)を示す図である。色差信号のイントラ予測モードは、輝度信号のイントラ予測モードと独立に設定が可能である。色差信号に対するイントラ予測モードは、上述した輝度信号の１６×１６画素のイントラ予測モードに順ずる。
【０１９２】
ただし、輝度信号の１６×１６画素のイントラ予測モードが、１６×１６画素のブロックを対象としているのに対し、色差信号に対するイントラ予測モードは、８×８画素のブロックを対象としている。さらに、上述した図２０と図２３に示されるように、両者においてモード番号は対応していない。
【０１９３】
ここで、図２２を参照して上述した輝度信号の１６×１６画素のイントラ予測モードの対象マクロブロックＡの画素値および隣接する画素値の定義に準じる。例えば、イントラ処理される対象マクロブロックＡ（色差信号の場合は、８×８画素）に隣接する画素の画素値をP(x,y);x,y=-1,0,…,7とする。
【０１９４】
モード０はDC Predictionであり、P(x,-1)およびP(-1,y); x,y=-1,0,…,7が全て ”available” である場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（２６）のように生成される。
【数９】
2010095560.tif 000011
【０１９５】
また、P(-1,y) ; x,y=-1,0,…,7が ”unavailable” である場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（２７）のように生成される。
【数１０】
2010095560.tif 000012
【０１９６】
また、P(x,-1) ; x,y=-1,0,…,7が ”unavailable”である場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（２８）のように生成される。
【数１１】
2010095560.tif 000013
【０１９７】
モード１はHorizontal Predictionであり、P(-1,y) ; x,y=-1,0,…,7が ”available” の場合にのみ適用される。この場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（２９）のように生成される。
Pred(x,y) = P(-1,y);x,y=0,…,7
・・・（２９）
【０１９８】
モード２はVertical Predictionであり、P(x,-1) ; x,y=-1,0,…,7が ”available” の場合にのみ適用される。この場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（２８）のように生成される。
Pred(x,y) = P(x,-1);x,y=0,…,7
・・・（３０）
【０１９９】
モード３はPlane Predictionであり、P(x,-1)及びP(-1,y) ; x,y=-1,0,…,7 が ”available” の場合にのみ適用される。この場合、対象マクロブロックＡの各画素の予測画素値Pred(x,y)は、次の式（３１）のように生成される。
【数１２】
2010095560.tif 000014
【０２００】
以上のように、輝度信号のイントラ予測モードには、９種類の４×４画素および８×８画素のブロック単位、並びに４種類の１６×１６画素のマクロブロック単位の予測モードがある。また、色差信号のイントラ予測モードには、４種類の８×８画素のブロック単位の予測モードがある。この色差信号のイントラ予測モードは、輝度信号のイントラ予測モードと独立に設定が可能である。
【０２０１】
輝度信号の４×４画素および８×８画素のイントラ予測モードについては、４×４画素および８×８画素の輝度信号のブロック毎に１つのイントラ予測モードが定義される。輝度信号の１６×１６画素のイントラ予測モードと色差信号のイントラ予測モードについては、１つのマクロブロックに対して１つの予測モードが定義される。
【０２０２】
なお、予測モードの種類は、上述した図１７の番号０，１，３乃至８で示される方向に対応している。予測モード２は平均値予測である。
【０２０３】
［イントラ予測処理の説明］
次に、これらの予測モードに対して行われる処理である、図１３のステップＳ３１におけるイントラ予測処理を図２４のフローチャートを参照して説明する。なお、図２４の例においては、輝度信号の場合を例として説明する。
【０２０４】
イントラ予測部２４は、ステップＳ４１において、上述した輝度信号の４×４画素、８×８画素、および１６×１６画素の各イントラ予測モードに対してイントラ予測を行う。
【０２０５】
例えば、４×４画素のイントラ予測モードの場合について、上述した図１８を参照して説明する。画面並べ替えバッファ１２から読み出された処理対象の画像（例えば、画素ａ乃至ｐ）がイントラ処理されるブロックの画像である場合、参照される復号済みの画像（画素値Ａ乃至Ｍが示される画素）がフレームメモリ２２から読み出され、スイッチ２３を介してイントラ予測部２４に供給される。
【０２０６】
これらの画像に基づいて、イントラ予測部２４は、処理対象のブロックの画素をイントラ予測する。このイントラ予測処理が、各イントラ予測モードで行われることで、各イントラ予測モードでの予測画像が生成される。なお、参照される復号済みの画素（画素値Ａ乃至Ｍが示される画素）としては、デブロックフィルタ２１によりデブロックフィルタリングされていない画素が用いられる。
【０２０７】
イントラ予測部２４は、ステップＳ４２において、４×４画素、８×８画素、および１６×１６画素の各イントラ予測モードに対するコスト関数値を算出する。ここで、コスト関数値としては、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 モードにおいては、全ての予測モードに対して、予測画像を生成するのみで、符号化処理および復号処理を行う必要がないため、演算量が少なくて済む。
【０２１３】
イントラ予測部２４は、ステップＳ４３において、４×４画素、８×８画素、および１６×１６画素の各イントラ予測モードに対して、それぞれ最適モードを決定する。すなわち、上述したように、イントラ４×４予測モードおよびイントラ８×８予測モードの場合には、予測モードの種類が９種類あり、イントラ１６×１６予測モードの場合には、予測モードの種類が４種類ある。したがって、イントラ予測部２４は、ステップＳ４２において算出されたコスト関数値に基づいて、それらの中から、最適イントラ４×４予測モード、最適イントラ８×８予測モード、最適イントラ１６×１６予測モードを決定する。
【０２１４】
イントラ予測部２４は、ステップＳ４４において、４×４画素、８×８画素、および１６×１６画素の各イントラ予測モードに対して決定された各最適モードの中から、ステップＳ４２において算出されたコスト関数値に基づいて、１つのイントラ予測モードを選択する。すなわち、４×４画素、８×８画素、および１６×１６画素に対して決定された各最適モードの中から、コスト関数値が最小値であるモードを１つ選択する。
【０２１５】
［インター動き予測処理の説明］
次に、図２５のフローチャートを参照して、図１３のステップＳ３２のインター動き予測処理について説明する。
【０２１６】
動き予測・補償部２６は、ステップＳ５１において、図３を参照して上述した１６×１６画素乃至４×４画素からなる８種類の各インター予測モードに対して動きベクトルと参照画像をそれぞれ決定する。すなわち、各インター予測モードの処理対象のブロックについて、動きベクトルと参照画像がそれぞれ決定される。
【０２１７】
動き予測・補償部２６は、ステップＳ５２において、１６×１６画素乃至４×４画素からなる８種類の各インター予測モードについて、ステップＳ５１で決定された動きベクトルに基づいて、参照画像に動き予測と補償処理を行う。この動き予測と補償処理により、各インター予測モードでの予測画像が生成される。
【０２１８】
動き予測・補償部２６は、ステップＳ５３において、１６×１６画素乃至４×４画素からなる８種類の各インター予測モードに対して決定された動きベクトルについて、圧縮画像に付加するための動きベクトル情報を生成する。このとき、図６を参照して上述した動きベクトルの生成方法が用いられて、動きベクトル情報が生成される。
【０２１９】
生成された動きベクトル情報は、次のステップＳ５４におけるコスト関数値算出の際にも用いられ、最終的に予測画像選択部２９により対応する予測画像が選択された場合には、予測モード情報および参照フレーム情報とともに、可逆符号化部１６へ出力される。
【０２２０】
動き予測・補償部２６は、ステップＳ５４において、１６×１６画素乃至４×４画素からなる８種類の各インター予測モードに対して、上述した式（３２）または式（３３）で示されるコスト関数値を算出する。ここで算出されたコスト関数値は、上述した図１３のステップＳ３６で最適インター予測モードを決定する際に用いられる。
【０２２１】
［イントラテンプレート動き予測処理の説明］
次に、図２６のフローチャートを参照して、図１３のステップＳ３３のイントラテンプレート動き予測処理について説明する。
【０２２２】
ブロックアドレス算出部４１は、符号化対象の対象ブロックの、そのマクロブロック内におけるアドレスを算出し、算出したアドレスの情報を、テンプレート画素設定部２８に供給する。
【０２２３】
ブロックアドレス算出部４１からのアドレスの情報に基づいて、テンプレート画素設定部２８は、ステップＳ６１において、イントラテンプレート予測モードの対象ブロックに対して、テンプレート画素設定処理を行う。このテンプレート画素設定処理の詳細は、図３０を参照して後述する。この処理により、イントラテンプレート予測モードの対象ブロックに対するテンプレートを構成する画素が設定される。
【０２２４】
ステップＳ６２において、動き予測部４２と動き補償部４３は、イントラテンプレート予測モードの動き予測、補償処理を行う。すなわち、動き予測部４２には、画面並べ替えバッファ１２から読み出されたイントラ予測する画像と、フレームメモリ２２から供給される参照画像が入力される。また、動き予測部４２には、対象ブロックＴＰ設定部６２および参照ブロックＴＰ設定部６３により設定された対象ブロックおよび参照ブロックのテンプレートの情報が入力される。
【０２２５】
動き予測部４２は、イントラ予測する画像と参照画像を用い、ステップＳ６１の処理により設定された対象ブロックおよび参照ブロックのテンプレートの画素値を利用して、イントラテンプレート予測モードの動き予測を行う。このとき、算出された動きベクトルと参照画像は、動き補償部４３に供給される。動き補償部４３は、動き予測部４２により算出された動きベクトルと参照画像を用いて、動き補償処理を行い、予測画像を生成する。
【０２２６】
そして、動き補償部４３は、ステップＳ６３において、イントラテンプレート予測モードに対して、上述した式（３２）または式（３３）で示されるコスト関数値を算出する。動き補償部４３は、生成された予測画像と算出されたコスト関数値をイントラ予測部２４に供給する。このコスト関数値は、上述した図１３のステップＳ３４で最適イントラ予測モードを決定する際に用いられる。
【０２２７】
［イントラテンプレートマッチング方式の説明］
図２７は、イントラテンプレートマッチング方式を説明する図である。図２７の例においては、図示せぬ符号化対象の対象フレーム上に、４×４画素のブロックＡと、Ｘ×Ｙ（＝縦×横）画素からなる領域のうち、すでに符号化済みの画素だけで構成される所定の探索範囲Ｅが示されている。
【０２２８】
所定のブロックＡには、これから符号化されようとしている対象ブロックａが示されている。所定のブロックＡは、例えば、マクロブロックや、サブマクロブロックなどである。この対象ブロックａは、所定のブロックＡを構成する２×２画素のブロックのうち、左上に位置するブロックである。対象ブロックａには、すでに符号化済みの画素で構成されるテンプレート領域ｂが隣接している。例えば、テンプレート領域ｂは、符号化処理をラスタスキャン順に行う場合には、図２７に示されるように、対象ブロックａの左および上側に位置する領域であり、フレームメモリ２２に復号画像が蓄積されている領域である。
【０２２９】
イントラＴＰ動き予測・補償部２５は、対象フレーム上の所定の探索範囲Ｅ内において、例えば、SAD(Sum of Absolute Difference) 等をコスト関数としてテンプレートマッチング処理を行う。そして、イントラＴＰ動き予測・補償部２５は、テンプレート領域ｂの画素値と相関が最も高くなる領域ｂ’を探索する。イントラＴＰ動き予測・補償部２５は、探索された領域ｂ’に対応するブロックａ’を、対象ブロックａに対する予測画像として、対象ブロックａに対する動きベクトルを探索する。
【０２３０】
このように、イントラテンプレートマッチング方式による動きベクトル探索処理は、テンプレートマッチング処理に復号画像を用いている。したがって、所定の探索範囲Ｅを予め定めておくことにより、画像符号化装置１と後述する図３２の画像復号装置１０１において同一の処理を行うことが可能である。すなわち、画像復号装置１０１においても、イントラＴＰ動き予測・補償部１２２を構成することにより、対象サブブロックに対する動きベクトルの情報を画像復号装置１０１に送る必要がなくなるので、圧縮画像中における動きベクトル情報を低減することができる。
【０２３１】
そして、さらに、画像符号化装置１と画像復号装置１０１においては、図８のA乃至図８のDなどを参照して上述したように、対象ブロックａのテンプレート領域ｂが、所定のブロックＡ内の位置（アドレス）に応じて、所定のブロックＡの隣接画素の中から設定される。すなわち、対象ブロックａのテンプレート領域ｂは、対象ブロックａの隣接画素だけで構成するのではなく、対象ブロックａの所定のブロックＡ内の位置（アドレス）に応じて、所定のブロックＡの隣接画素の中から設定された画素で構成される。
【０２３２】
例えば、図２７に示されるように、対象ブロックａが所定のブロックＡ内の左上に位置している場合は、従来と変わらず、対象ブロックａに隣接する画素がテンプレート領域ｂとして用いられる。
【０２３３】
これに対して、対象ブロックａが所定のブロックＡ内の右上、左下、または右下に位置する場合において、従来のテンプレート領域ｂに、所定のブロックＡを構成するいずれかのブロックの画素が含まれることがある。この場合、対象ブロックａの隣接画素のうち、所定のブロックＡを構成するいずれかのブロックに含まれる画素に代わって、所定のブロックＡの隣接画素がテンプレート領域ｂの一部として設定される。これにより、所定のブロックＡ内において、各ブロックの処理を、パイプライン処理や並列処理で実現することが可能になり、処理効率を向上させることができる。
【０２３４】
なお、図２７において、対象サブブロックが２×２画素の場合を説明したが、これに限らず、任意の大きさのサブブロックに適用が可能であり、イントラテンプレート予測モードにおけるブロックおよびテンプレートのサイズは任意である。すなわち、イントラ予測部２４と同様に、各イントラ予測モードのブロックサイズを候補としてイントラテンプレート予測モードを行うこともできるし、１つの予測モードのブロックサイズに固定して行うこともできる。対象となるブロックサイズに応じて、テンプレートサイズは、可変としてもよいし、固定することもできる。
【０２３５】
［インターテンプレート動き予測処理の説明］
次に、図２８のフローチャートを参照して、図１３のステップＳ３５のインターテンプレート動き予測処理について説明する。
【０２３６】
ブロックアドレス算出部５１は、符号化対象の対象ブロックの、そのマクロブロック内におけるアドレスを算出し、算出したアドレスの情報を、テンプレート画素設定部２８に供給する。
【０２３７】
ブロックアドレス算出部５１からのアドレスの情報に基づいて、テンプレート画素設定部２８は、ステップＳ７１において、インターテンプレート予測モードの対象ブロックに対して、テンプレート画素設定処理を行う。このテンプレート画素設定処理の詳細は、図３０を参照して後述する。この処理により、インターテンプレート予測モードの対象ブロックに対するテンプレートを構成する画素が設定される。
【０２３８】
ステップＳ７２において、動き予測部５２と動き補償部５３は、インターテンプレート予測モードの動き予測、補償処理を行う。すなわち、動き予測部５２には、画面並べ替えバッファ１２から読み出されたインター予測する画像と、フレームメモリ２２から供給される参照画像が入力される。また、動き予測部５２には、対象ブロックＴＰ設定部６２および参照ブロックＴＰ設定部６３により設定された対象ブロックおよび参照ブロックのテンプレートの情報が入力される。
【０２３９】
動き予測部５２は、インター予測する画像と参照画像を用い、ステップＳ７１の処理により設定された対象ブロックおよび参照ブロックのテンプレートの画素値を利用して、インターテンプレート予測モードの動き予測を行う。このとき、算出された動きベクトルと参照画像は、動き補償部５３に供給される。動き補償部５３は、動き予測部５２により算出された動きベクトルと参照画像を用いて、動き補償処理を行い、予測画像を生成する。
【０２４０】
そして、動き補償部５３は、ステップＳ７３において、インターテンプレート予測モードに対して、上述した式（３２）または式（３３）で示されるコスト関数値を算出する。動き補償部５３は、生成された予測画像と算出されたコスト関数値を、動き予測・補償部２６に供給する。このコスト関数値は、上述した図１３のステップＳ３６で最適インター予測モードを決定する際に用いられる。
【０２４１】
［インターテンプレートマッチング方式の説明］
図２９は、インターテンプレートマッチング方式を説明する図である。
【０２４２】
図２９の例においては、符号化対象の対象フレーム（ピクチャ）と、動きベクトルを探索する際に参照される参照フレームが示されている。対象フレームには、これから符号化されようとしている対象ブロックＡと、対象ブロックＡに対して隣接するとともに、すでに符号化済みの画素で構成されるテンプレート領域Ｂが示されている。例えば、テンプレート領域Ｂは、符号化処理をラスタスキャン順に行う場合には、図２９に示されるように、対象ブロックＡの左および上側に位置する領域であり、フレームメモリ２２に復号画像が蓄積されている領域である。
【０２４３】
インターＴＰ動き予測・補償部２７は、参照フレーム上の所定の探索範囲Ｅ内において、例えば、SAD 等をコスト関数としてテンプレートマッチング処理を行い、テンプレート領域Ｂの画素値と相関が最も高くなる領域Ｂ’を探索する。そして、インターＴＰ動き予測・補償部２７は、探索された領域Ｂ’に対応するブロックＡ’を、対象ブロックＡに対する予測画像として、対象ブロックＡに対する動きベクトルＰを探索する。
【０２４４】
このように、インターテンプレートマッチング方式による動きベクトル探索処理は、テンプレートマッチング処理に復号画像を用いている。これにより、所定の探索範囲Ｅを予め定めておくことにより、画像符号化装置１と画像復号装置１０１において同一の処理を行うことが可能である。すなわち、画像復号装置１０１においても、インターＴＰ動き予測・補償部１２４を構成することにより、対象ブロックＡに対する動きベクトルＰの情報を画像復号装置１０１に送る必要がなくなるので、圧縮画像中における動きベクトル情報を低減することができる。
【０２４５】
そして、さらに、画像符号化装置１と画像復号装置１０１においては、対象ブロックＡが所定のブロックを構成するブロックである場合、このテンプレート領域Ｂは、所定のブロック内の位置（アドレス）に応じて、所定のブロックの隣接画素の中から設定される。なお、所定のブロックとは、例えば、マクロブロックや、サブマクロブロックなどである。
【０２４６】
図８のA乃至図８のDなどを参照して上述したように、例えば、対象ブロックＡが所定のブロック内の左上に位置している場合は、従来と変わらず、対象ブロックＡに隣接する画素がテンプレート領域Ｂとして用いられる。
【０２４７】
これに対して、対象ブロックＡが所定のブロック内の右上、左下、または右下に位置する場合において、従来のテンプレート領域Ｂに、所定のブロックを構成するいずれかのブロックの画素が含まれることがある。この場合、対象ブロックＡの隣接画素のうち、所定のブロックを構成するいずれかのブロックに含まれる画素に代わって、所定のブロックの隣接画素がテンプレート領域Ｂの一部として設定される。これにより、所定のブロック内における各ブロックの処理を、パイプライン処理や並列処理で実現することが可能になり、処理効率を向上させることができる。
【０２４８】
なお、インターテンプレート予測モードにおけるブロックおよびテンプレートのサイズは任意である。すなわち、動き予測・補償部２６と同様に、図３で上述した１６×１６画素乃至４×４画素からなる８種類のブロックサイズから、１つのブロックサイズを固定して行うこともできるし、すべてのブロックサイズを候補として行うこともできる。ブロックサイズに応じて、テンプレートサイズは、可変としてもよいし、固定することもできる。
【０２４９】
［テンプレート画素設定処理の説明］
次に、図３０のフローチャートを参照して、図２６のステップＳ６１または図２８のステップＳ７１のテンプレート画素設定処理について説明する。この処理は、対象ブロックＴＰ設定部６２および参照ブロックＴＰ設定部６３により、対象ブロックおよび参照ブロックに対して、それぞれ実行される処理であるが、図３０の例においては、対象ブロックＴＰ設定部６２の場合を説明する。
【０２５０】
なお、図３０の例においては、例えば、テンプレートを、上部テンプレート、左上部テンプレート、および左部テンプレートに分けて説明する。上部テンプレートは、テンプレートのうち、ブロックまたはマクロブロックなどに対して上に隣接する部分である。左上部テンプレートは、テンプレートのうち、ブロックまたはマクロブロックなどに対して左上に隣接する部分である。左部テンプレートは、テンプレートのうち、ブロックまたはマクロブロックなどに対して左に隣接する部分である。
【０２５１】
ブロックアドレス算出部４１またはブロックアドレス算出部５１から、符号化対象の対象ブロックの、そのマクロブロック内におけるアドレスの情報がブロック分類部６１に供給される。
【０２５２】
ブロック分類部６１は、対象ブロックが、そのマクロブロック内の左上のブロック、右上のブロック、左下のブロック、または右下のブロックのどのブロックであるかを分類する。すなわち、対象ブロックが、図８のA乃至図８のDのブロックＢ０、ブロックＢ１、ブロックＢ２のどのブロックであるかが分類される。そして、ブロック分類部６１は、対象ブロックがどのブロックであるかという情報を、対象ブロックＴＰ設定部６２に供給する。
【０２５３】
対象ブロックＴＰ設定部６２は、ブロック分類部６１からの情報を基に、ステップＳ８１において、対象ブロックのマクロブロック内での位置が、左上、右上、左下のうちのどれかであるか否かを判定する。ステップＳ８１において、対象ブロックのマクロブロック内での位置が、左上、右上、左下のうちのどれかであると判定された場合、対象ブロックＴＰ設定部６２は、ステップＳ８２において、左上部テンプレートとして、対象ブロックに隣接した画素を用いる。
【０２５４】
すなわち、対象ブロックのマクロブロック内での位置が左上（図８のAのブロックＢ０）である場合、左上部テンプレートとして、ブロックＢ０の左上部に隣接した画素ＬＵＢ０が用いられる。対象ブロックのマクロブロック内での位置が右上（図８のBのブロックＢ１）である場合、左上部テンプレートとして、ブロックＢ１の上部に隣接した画素ＬＵＢ１が用いられる。対象ブロックのマクロブロック内での位置が左下（図８のCのブロックＢ２）である場合、左上部テンプレートとして、ブロックＢ２の上部に隣接した画素ＬＵＢ２が用いられる。
【０２５５】
ステップＳ８１において、対象ブロックのマクロブロック内での位置が、左上、右上、左下のうちのどれでもないと判定された場合、対象ブロックＴＰ設定部６２は、ステップＳ８３において、左上部テンプレートとして、マクロブロックに隣接した画素を用いる。すなわち、対象ブロックのマクロブロック内での位置が右下（図８のDのブロックＢ３）である場合、左上部テンプレートとして、マクロブロック（具体的には、図８のDのブロックＢ１の左上部）に隣接した画素ＬＵＢ１が用いられる。
【０２５６】
次に、対象ブロックＴＰ設定部６２は、ステップＳ８４において、対象ブロックのマクロブロック内での位置が、左上または右上のどちらかであるか否かを判定する。ステップＳ８４において、対象ブロックのマクロブロック内での位置が、左上または右上のどちらかであると判定された場合、対象ブロックＴＰ設定部６２は、ステップＳ８５において、上部テンプレートとして、対象ブロックに隣接した画素を用いる。
【０２５７】
すなわち、対象ブロックのマクロブロック内での位置が左上（図８のAのブロックＢ０）である場合、上部テンプレートとして、ブロックＢ０の左上部に隣接した画素ＵＢ０が用いられる。対象ブロックのマクロブロック内での位置が右上（図８のBのブロックＢ１）である場合、上部テンプレートとして、ブロックＢ１の上部に隣接した画素ＵＢ１が用いられる。
【０２５８】
ステップＳ８４において、対象ブロックのマクロブロック内での位置が、左上または右上のどちらでもないと判定された場合、対象ブロックＴＰ設定部６２は、ステップＳ８６において、上部テンプレートとして、マクロブロックに隣接した画素を用いる。
【０２５９】
すなわち、対象ブロックのマクロブロック内での位置が左下（図８のCのブロックＢ２）である場合、上部テンプレートとして、マクロブロック（具体的には、図８のAのブロックＢ０の上部）に隣接した画素ＵＢ０が用いられる。対象ブロックのマクロブロック内での位置が右下（図８のDのブロックＢ３）である場合、上部テンプレートとして、マクロブロック（具体的には、図８のDのブロックＢ１の上部）に隣接した画素ＵＢ１が用いられる。
【０２６０】
対象ブロックＴＰ設定部６２は、ステップＳ８７において、対象ブロックのマクロブロック内での位置が、左上または左下のどちらかであるか否かを判定する。ステップＳ８７において、対象ブロックのマクロブロック内での位置が、左上または左下のどちらかであると判定された場合、対象ブロックＴＰ設定部６２は、ステップＳ８８において、左部テンプレートとして、対象ブロックに隣接した画素を用いる。
【０２６１】
すなわち、対象ブロックのマクロブロック内での位置が左上（図８のAのブロックＢ０）である場合、左部テンプレートとして、ブロックＢ０の左部に隣接した画素ＬＢ０が用いられる。対象ブロックのマクロブロック内での位置が左下（図８のCのブロックＢ２）である場合、左部テンプレートとして、ブロックＢ２の左部に隣接した画素ＬＢ２が用いられる。
【０２６２】
ステップＳ８７において、対象ブロックのマクロブロック内での位置が、左上または左下のどちらでもないと判定された場合、対象ブロックＴＰ設定部６２は、ステップＳ８９において、左部テンプレートとして、マクロブロックに隣接した画素を用いる。
【０２６３】
すなわち、対象ブロックのマクロブロック内での位置が右上（図８のBのブロックＢ１）である場合、左部テンプレートとして、マクロブロック（具体的には、ブロックＢ０の左部）に隣接した画素ＬＢ０が用いられる。対象ブロックのマクロブロック内での位置が右下（図８のDのブロックＢ３）である場合、左部テンプレートとして、マクロブロック（具体的には、ブロックＢ２の左部）に隣接した画素ＬＢ２が用いられる。
【０２６４】
以上のように、対象ブロックのマクロブロック内の位置に応じて、テンプレートを構成する画素として、対象ブロックに隣接する画素を用いるか、そのマクロブロックに隣接する画素を用いるかを設定するようにした。これにより、常に、対象ブロックのマクロブロックに隣接する画素をテンプレートとして利用することになり、マクロブロック内のブロックに対する処理を、並列処理またはパイプライン処理により実現することが可能になる。
【０２６５】
［テンプレート画素設定による効果例］
上述したテンプレート画素設定による効果について、図３１のA乃至図３１のCのタイミングチャートを参照して説明する。図３１のA乃至図３１のCの例においては、各ブロックに対して、＜メモリ読み出し＞、＜動き予測＞、＜動き補償＞、＜復号処理＞が順に行われる例が示されている。
【０２６６】
図３１のAは、従来のテンプレートを利用した場合の処理のタイミングチャートを示している。図３１のBは、テンプレート画素設定部２８により設定されたテンプレートを利用した場合に可能なパイプライン処理のタイミングチャートを示している。図３１のCは、テンプレート画素設定部２８により設定されたテンプレートを利用した場合に可能な並列処理のタイミングチャートを示している。
【０２６７】
従来のテンプレートを利用する装置においては、上述した図８のBのブロックＢ１の処理を行う場合、ブロックＢ０の復号画素の画素値がテンプレートの一部として用いられるため、その画素値が生成されるのを待たなければならない。
【０２６８】
したがって、図３１のAに示されるように、ブロックＢ０に対して、＜メモリ読み出し＞、＜動き予測＞、＜動き補償＞、＜復号処理＞が順に終了し、復号画素がメモリに書き込まれるまで、ブロックＢ１の＜メモリ読み出し＞ができない。すなわち、従来においては、ブロックＢ０とブロックＢ１の処理をパイプライン処理または並列処理で行うことが困難であった。
【０２６９】
これに対して、テンプレート画素設定部２８により設定されたテンプレートを利用した場合には、ブロックＢ１のテンプレートとして、ブロックＢ０の復号画素の代わりに、ブロックＢ０（マクロブロックＭＢ）の左部に隣接する画素ＬＢ０が用いられる。
【０２７０】
これにより、ブロックＢ１の処理を行う際に、ブロックＢ０の復号画素の生成を待つ必要がない。したがって、例えば、図３１のBに示されるように、ブロックＢ０に対して、＜メモリ読み出し＞、＜動き予測＞、＜動き補償＞が順に終了した後、ブロックＢ０に対しての＜復号処理＞と並行して、ブロックＢ１に対しての＜メモリ読み出し＞を行うことができる。すなわち、ブロックＢ０とブロックＢ１の処理を、パイプライン処理で行うことができる。
【０２７１】
あるいは、図３１のCに示されるように、ブロックＢ０に対しての＜メモリ読み出し＞と並行して、ブロックＢ１に対しての＜メモリ読み出し＞を行い、ブロックＢ０に対しての＜動き予測＞と並行して、ブロックＢ１に対しての＜動き予測＞を行うことができる。ブロックＢ０に対しての＜動き補償＞と並行して、ブロックＢ１に対しての＜動き補償＞を行い、ブロックＢ０に対しての＜復号処理＞と並行して、ブロックＢ１に対しての＜復号処理＞を行うことができる。すなわち、ブロックＢ０とブロックＢ１の処理を、並行処理で行うことができる。
【０２７２】
以上により、マクロブロック内における処理効率を向上させることができる。なお、図３１のA乃至図３１のCの例においては、２つのブロックで並列またはパイプライン処理を行う例を説明したが、もちろん、３つのブロックでも、４つのブロックでも同様に並列またはパイプライン処理を行うことができる。
【０２７３】
符号化された圧縮画像は、所定の伝送路を介して伝送され、画像復号装置により復号される。
【０２７４】
［画像復号装置の構成例］
図３２は、本発明を適用した画像処理装置としての画像復号装置の一実施の形態の構成を表している。
【０２７５】
画像復号装置１０１は、蓄積バッファ１１１、可逆復号部１１２、逆量子化部１１３、逆直交変換部１１４、演算部１１５、デブロックフィルタ１１６、画面並べ替えバッファ１１７、Ｄ／Ａ変換部１１８、フレームメモリ１１９、スイッチ１２０、イントラ予測部１２１、イントラテンプレート動き予測・補償部１２２、動き予測・補償部１２３、インターテンプレート動き予測・補償部１２４、テンプレート画素設定部１２５、およびスイッチ１２６により構成されている。
【０２７６】
なお、以下、イントラテンプレート動き予測・補償部１２２およびインターテンプレート動き予測・補償部１２４を、それぞれ、イントラＴＰ動き予測・補償部１２２およびインターＴＰ動き予測・補償部１２４と称する。
【０２７７】
蓄積バッファ１１１は伝送されてきた圧縮画像を蓄積する。可逆復号部１１２は、蓄積バッファ１１１より供給された、図２の可逆符号化部１６により符号化された情報を、可逆符号化部１６の符号化方式に対応する方式で復号する。逆量子化部１１３は可逆復号部１１２により復号された画像を、図２の量子化部１５の量子化方式に対応する方式で逆量子化する。逆直交変換部１１４は、図２の直交変換部１４の直交変換方式に対応する方式で逆量子化部１１３の出力を逆直交変換する。
【０２７８】
逆直交変換された出力は演算部１１５によりスイッチ１２６から供給される予測画像と加算されて復号される。デブロックフィルタ１１６は、復号された画像のブロック歪を除去した後、フレームメモリ１１９に供給し、蓄積させるとともに、画面並べ替えバッファ１１７に出力する。
【０２７９】
画面並べ替えバッファ１１７は、画像の並べ替えを行う。すなわち、図２の画面並べ替えバッファ１２により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。Ｄ／Ａ変換部１１８は、画面並べ替えバッファ１１７から供給された画像をＤ／Ａ変換し、図示せぬディスプレイに出力し、表示させる。
【０２８０】
スイッチ１２０は、インター処理される画像と参照される画像をフレームメモリ１１９から読み出し、動き予測・補償部１２３に出力するとともに、イントラ予測に用いられる画像をフレームメモリ１１９から読み出し、イントラ予測部１２１に供給する。
【０２８１】
イントラ予測部１２１には、ヘッダ情報を復号して得られたイントラ予測モードまたはイントラテンプレート予測モードを示す情報が可逆復号部１１２から供給される。イントラ予測モードを示す情報が供給された場合、イントラ予測部１２１は、この情報に基づいて、予測画像を生成する。イントラテンプレート予測モードを示す情報が供給された場合、イントラ予測部１２１は、イントラ予測に用いられる画像をイントラＴＰ動き予測・補償部１２２に供給し、イントラテンプレート予測モードでの動き予測・補償処理を行わせる。
【０２８２】
イントラ予測部１２１は、生成した予測画像またはイントラＴＰ動き予測・補償部１２２により生成された予測画像を、スイッチ１２６に出力する。
【０２８３】
イントラＴＰ動き予測・補償部１２２は、図２のイントラＴＰ動き予測・補償部２５と同様のイントラテンプレート予測モードの動き予測と補償処理を行う。すなわち、イントラＴＰ動き予測・補償部１２２は、フレームメモリ１１９からの画像を用い、イントラテンプレート予測モードの動き予測と補償処理を行い、予測画像を生成する。このとき、イントラＴＰ動き予測・補償部１２２においては、テンプレートとして、テンプレート画素設定部１２５により設定された画素からなるテンプレートが利用される。
【０２８４】
イントラテンプレート予測モードの動き予測・補償により生成された予測画像は、イントラ予測部１２１に供給される。
【０２８５】
動き予測・補償部１２３には、ヘッダ情報を復号して得られた情報（予測モード情報、動きベクトル情報、参照フレーム情報）が可逆復号部１１２から供給される。インター予測モードを示す情報が供給された場合、動き予測・補償部１２３は、動きベクトル情報と参照フレーム情報に基づいて画像に動き予測と補償処理を施し、予測画像を生成する。インター予測モードである情報が供給された場合、動き予測・補償部１２３は、フレームメモリ１１９から読み出されたインター符号化が行われる画像と参照される画像をインターＴＰ動き予測・補償部１２４に供給する。
【０２８６】
インターＴＰ動き予測・補償部１２４は、図２のインターＴＰ動き予測・補償部２７と同様のインターテンプレート予測モードの動き予測と補償処理を行う。すなわち、すなわち、インターＴＰ動き予測・補償部１２４は、フレームメモリ１１９からのインター符号化が行われる画像と参照される画像に基づいて、インターテンプレート予測モードの動き予測と補償処理を行い、予測画像を生成する。このとき、インターＴＰ動き予測・補償部１２４においては、テンプレートとして、テンプレート画素設定部１２５により設定された画素からなるテンプレートが利用される。
【０２８７】
インターテンプレート予測モードの動き予測・補償により生成された予測画像は、動き予測・補償部１２３に供給される。
【０２８８】
テンプレート画素設定部１２５は、イントラあるいはインターテンプレート予測モードの対象ブロックの動きベクトルを算出するためのテンプレートの画素を、対象ブロックのマクロブロック（またはサブマクロブロック）内でのアドレスに応じて設定する。設定したテンプレートの画素情報は、イントラＴＰ動き予測・補償部１２２またはインターＴＰ動き予測・補償部１２４に供給される。
【０２８９】
なお、イントラまたはインターテンプレート予測モードに関する処理を行うイントラＴＰ動き予測・補償部１２２、インターＴＰ動き予測・補償部１２４、およびテンプレート画素設定部１２５は、図２のイントラＴＰ動き予測・補償部２５、インターＴＰ動き予測・補償部２７、およびテンプレート画素設定部２８と基本的に同様に構成される。したがって、イントラＴＰ動き予測・補償部１２２、インターＴＰ動き予測・補償部１２４、およびテンプレート画素設定部１２５の説明にも上述した図７に示した機能ブロックを用いる。
【０２９０】
すなわち、イントラＴＰ動き予測・補償部１２２は、イントラＴＰ動き予測・補償部２５と同様に、ブロックアドレス算出部４１、動き予測部４２、および動き補償部４３により構成される。インターＴＰ動き予測・補償部１２４は、インターＴＰ動き予測・補償部２７と同様に、ブロックアドレス算出部５１、動き予測部５２、および動き補償部５３により構成される。テンプレート画素設定部１２５は、テンプレート画素設定部２８と同様に、ブロック分類部６１、対象ブロックテンプレート設定部６２、および参照ブロックテンプレート設定部６３により構成される。
【０２９１】
スイッチ１２６は、動き予測・補償部１２３またはイントラ予測部１２１により生成された予測画像を選択し、演算部１１５に供給する。
【０２９２】
［画像復号装置の復号処理の説明］
次に、図３３のフローチャートを参照して、画像復号装置１０１が実行する復号処理について説明する。
【０２９３】
ステップＳ１３１において、蓄積バッファ１１１は伝送されてきた画像を蓄積する。ステップＳ１３２において、可逆復号部１１２は、蓄積バッファ１１１から供給される圧縮画像を復号する。すなわち、図２の可逆符号化部１６により符号化されたＩピクチャ、Ｐピクチャ、並びにＢピクチャが復号される。
【０２９４】
このとき、動きベクトル情報、参照フレーム情報、予測モード情報（イントラ予測モード、イントラテンプレート予測モード、インター予測モード、またはインターテンプレート予測モードを示す情報）も復号される。
【０２９５】
すなわち、予測モード情報がイントラ予測モード情報またはインターテンプレート予測モード情報である場合、予測モード情報は、イントラ予測部１２１に供給される。予測モード情報がインター予測モードまたはインターテンプレート予測モードである場合、予測モード情報は、動き予測・補償部１２３に供給される。その際、対応する動きベクトル情報や参照フレーム情報があれば、それも、動き予測・補償部１２３に供給される。
【０２９６】
ステップＳ１３３において、逆量子化部１１３は可逆復号部１１２により復号された変換係数を、図２の量子化部１５の特性に対応する特性で逆量子化する。ステップＳ１３４において逆直交変換部１１４は逆量子化部１１３により逆量子化された変換係数を、図２の直交変換部１４の特性に対応する特性で逆直交変換する。これにより図２の直交変換部１４の入力（演算部１３の出力）に対応する差分情報が復号されたことになる。
【０２９７】
ステップＳ１３５において、演算部１１５は、後述するステップＳ１４１の処理で選択され、スイッチ１２６を介して入力される予測画像を差分情報と加算する。これにより元の画像が復号される。ステップＳ１３６においてデブロックフィルタ１１６は、演算部１１５より出力された画像をフィルタリングする。これによりブロック歪みが除去される。ステップＳ１３７においてフレームメモリ１１９は、フィルタリングされた画像を記憶する。
【０２９８】
ステップＳ１３８において、イントラ予測部１２１、イントラＴＰ動き予測・補償部１２２、動き予測・補償部１２３、またはインターＴＰ動き予測・補償部１２４は、可逆復号部１１２から供給される予測モード情報に対応して、それぞれ画像の予測処理を行う。
【０２９９】
すなわち、可逆復号部１１２からイントラ予測モード情報が供給された場合、イントラ予測部１２１は、イントラ予測モードのイントラ予測処理を行う。可逆復号部１１２からイントラテンプレート予測モード情報が供給された場合、イントラＴＰ動き予測・補償部１２２は、インターテンプレート予測モードの動き予測・補償処理を行う。また、可逆復号部１１２からインター予測モード情報が供給された場合、動き予測・補償部１２３は、インター予測モードの動き予測・補償処理を行う。可逆復号部１１２からインターテンプレート予測モード情報が供給された場合、インターＴＰ動き予測・補償部１２４は、インターテンプレート予測モードの動き予測・補償処理を行う。
【０３００】
ステップＳ１３８における予測処理の詳細は、図３４を参照して後述される。この処理により、イントラ予測部１２１により生成された予測画像、イントラＴＰ動き予測・補償部１２２により生成された予測画像、動き予測・補償部１２３により生成された予測画像、またはインターＴＰ動き予測・補償部１２４により生成された予測画像がスイッチ１２６に供給される。
【０３０１】
ステップＳ１３９において、スイッチ１２６は予測画像を選択する。すなわち、イントラ予測部１２１により生成された予測画像、イントラＴＰ動き予測・補償部１２２により生成された予測画像、動き予測・補償部１２３により生成された予測画像、またはインターＴＰ動き予測・補償部１２４により生成された予測画像が供給される。したがって、そのうちの供給された予測画像が選択されて演算部１１５に供給され、上述したように、ステップＳ１３４において逆直交変換部１１４の出力と加算される。
【０３０２】
ステップＳ１４０において、画面並べ替えバッファ１１７は並べ替えを行う。すなわち画像符号化装置１の画面並べ替えバッファ１２により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
【０３０３】
ステップＳ１４１において、Ｄ／Ａ変換部１１８は、画面並べ替えバッファ１１７からの画像をＤ／Ａ変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
【０３０４】
［画像復号装置の予測処理の説明］
次に、図３４のフローチャートを参照して、図３３のステップＳ１３８の予測処理を説明する。
【０３０５】
イントラ予測部１２１は、ステップＳ１７１において、対象ブロックがイントラ符号化されているか否かを判定する。可逆復号部１１２からイントラ予測モード情報またはイントラテンプレート予測モード情報がイントラ予測部１２１に供給される。これに対応して、イントラ予測部１２１は、ステップ１７１において、対象ブロックがイントラ符号化されていると判定し、処理は、ステップＳ１７２に進む。
【０３０６】
イントラ予測部１２１は、ステップＳ１７２において、イントラ予測モード情報またはイントラテンプレート予測モード情報を取得し、ステップＳ１７３において、イントラ予測モードであるか否かを判定する。ステップＳ１７３において、イントラ予測モードであると判定された場合、イントラ予測部１２１は、ステップＳ１７４において、イントラ予測を行う。
【０３０７】
すなわち、処理対象の画像がイントラ処理される画像である場合、必要な画像がフレームメモリ１１９から読み出され、スイッチ１２０を介してイントラ予測部１２１に供給される。ステップＳ１７４において、イントラ予測部１２１は、ステップＳ１７２で取得したイントラ予測モード情報に従ってイントラ予測し、予測画像を生成する。生成した予測画像は、スイッチ１２６に出力される。
【０３０８】
一方、ステップＳ１７２において、イントラテンプレート予測モード情報が取得された場合、ステップＳ１７３において、イントラ予測モード情報ではないと判定され、処理は、ステップＳ１７５に進む。
【０３０９】
処理対象の画像がイントラテンプレート予測処理される画像である場合、必要な画像がフレームメモリ１１９から読み出され、スイッチ１２０およびイントラ予測部１２１を介してイントラＴＰ動き予測・補償部１２２に供給される。また、ブロックアドレス算出部４１は、符号化対象の対象ブロックの、そのマクロブロック内におけるアドレスを算出し、算出したアドレスの情報を、テンプレート画素値設定部１２５に供給する。
【０３１０】
ブロックアドレス算出部４１からのアドレスの情報に基づいて、テンプレート画素値設定部１２５は、ステップＳ１７５において、イントラテンプレート予測モードの対象ブロックに対して、テンプレート画素設定処理を行う。このテンプレート画素設定処理の詳細は、図３０を参照して上述した処理と基本的に同様な処理であるので、その説明は省略される。この処理により、イントラテンプレート予測モードの対象ブロックに対するテンプレートを構成する画素が設定される。
【０３１１】
ステップＳ１７６において、動き予測部４２および動き補償部４３は、イントラテンプレート予測モードの動き予測、補償処理を行う。すなわち、動き予測部４２には、フレームメモリ１１９から必要な画像が入力される。また、動き予測部４２には、対象ブロックＴＰ設定部６２および参照ブロックＴＰ設定部６３により設定された対象ブロックおよび参照ブロックのテンプレートの情報が入力される。
【０３１２】
動き予測部４２は、フレームメモリ１１９からの画像を用い、ステップＳ１７５の処理により設定された対象ブロックおよび参照ブロックのテンプレートの画素値を利用して、イントラテンプレート予測モードの動き予測を行う。このとき、算出された動きベクトルと参照画像は、動き補償部４３に供給される。動き補償部４３は、動き予測部４２により算出された動きベクトルと参照画像を用いて、動き補償処理を行い、予測画像を生成する。生成した予測画像は、イントラ予測部１２１を介して、スイッチ１２６に出力される。
【０３１３】
一方、ステップＳ１７１において、イントラ符号化されていないと判定された場合、処理は、ステップＳ１７７に進む。ステップＳ１７７において、動き予測・補償部１２３は、可逆復号部１１２からの予測モード情報などを取得する。
【０３１４】
処理対象の画像がインター処理される画像である場合、可逆復号部１１２からインター予測モード情報、参照フレーム情報、動きベクトル情報が動き予測・補償部１２３に供給される。この場合、ステップＳ１７７において、動き予測・補償部１２３は、インター予測モード情報、参照フレーム情報、動きベクトル情報を取得する。
【０３１５】
そして、動き予測・補償部１２３は、ステップＳ１７８において、可逆復号部１１２からの予測モード情報が、インター予測モード情報であるか否かを判定する。ステップＳ１７８において、インター予測モード情報であると判定された場合、処理は、ステップＳ１７９に進む。
【０３１６】
動き予測・補償部１２３は、ステップＳ１７９において、インター動き予測を行う。すなわち、処理対象の画像がインター予測処理される画像である場合、必要な画像がフレームメモリ１１９から読み出され、スイッチ１２０を介して動き予測・補償部１２３に供給される。ステップＳ１７９において動き予測・補償部１２３は、ステップＳ１７７で取得した動きベクトルに基づいて、インター予測モードの動き予測をし、予測画像を生成する。生成した予測画像は、スイッチ１２６に出力される。
【０３１７】
一方、ステップＳ１７７において、インターテンプレート予測モード情報が取得された場合、ステップＳ１７８において、インター予測モード情報ではないと判定され、処理は、ステップＳ１８０に進む。
【０３１８】
処理対象の画像がインターテンプレート予測処理される画像である場合、必要な画像がフレームメモリ１１９から読み出され、スイッチ１２０および動き予測・補償部１２３を介してインターＴＰ動き予測・補償部１２４に供給される。また、ブロックアドレス算出部５１は、符号化対象の対象ブロックの、そのマクロブロック内におけるアドレスを算出し、算出したアドレスの情報を、テンプレート画素値設定部１２５に供給する。
【０３１９】
ブロックアドレス算出部５１からのアドレスの情報に基づいて、テンプレート画素値設定部１２５は、ステップＳ１８０において、インターテンプレート予測モードの対象ブロックに対して、テンプレート画素設定処理を行う。このテンプレート画素設定処理の詳細は、図３０を参照して上述した処理と基本的に同様な処理であるので、その説明は省略される。この処理により、インターテンプレート予測モードの対象ブロックに対するテンプレートを構成する画素が設定される。
【０３２０】
ステップＳ１８１において、動き予測部５２と動き補償部５３は、インターテンプレート予測モードの動き予測、補償処理を行う。すなわち、動き予測部５２には、フレームメモリ１１９から必要な画像が入力される。また、動き予測部５２には、対象ブロックＴＰ設定部６２および参照ブロックＴＰ設定部６３により設定された対象ブロックおよび参照ブロックのテンプレートの情報が入力される。
【０３２１】
動き予測部５２は、入力された画像を用い、ステップＳ１８０の処理により設定された対象ブロックおよび参照ブロックのテンプレートの画素値を利用して、インターテンプレート予測モードの動き予測を行う。このとき、算出された動きベクトルと参照画像は、動き補償部５３に供給される。動き補償部５３は、動き予測部５２により算出された動きベクトルと参照画像を用いて、動き補償処理を行い、予測画像を生成する。生成した予測画像は、動き予測・補償部１２３を介して、スイッチ１２６に出力される。
【０３２２】
以上のように、テンプレートを構成する画素として、常に、対象ブロックのマクロブロック（サブマクロブロック）に隣接する画素を利用するようにした。これにより、マクロブロック（サブマクロブロック）内の各ブロックに対する処理を、並列処理またはパイプライン処理により実現することが可能になる。したがって、テンプレート予測モードにおける予測効率を向上することができる。
【０３２３】
なお、上記説明においては、テンプレート予測モードの処理対象のブロックサイズが、８×８画素の場合と４×４画素の場合について説明したが、本発明の適用範囲は、これに限らない。
【０３２４】
すなわち、ブロックサイズが１６×８画素または８×１６画素の場合については、図８のA乃至図８のDを参照して上述した例と同様の処理を行うことで、マクロブロック内において、並列処理またはパイプライン処理を行うことができる。また、ブロックサイズが８×４画素または４×８画素の場合については、図１０のA乃至図１０のEを参照して上述した例と同様の処理を行うことで、８×８画素のサブマクロブロック内において、並列処理またはパイプライン処理を行うことができる。さらに、ブロックサイズが２×２画素、２×４画素、および４×２の場合については、４×４画素のブロック内で同様の処理を行うことで、４×４画素のブロック内において、並列処理またはパイプライン処理を行うことができる。
【０３２５】
なお、上記すべての場合、参照ブロックにおけるテンプレートは、対象ブロックにおけるそれと同一の相対位置におけるものが用いられる。また、本発明は、輝度信号のみならず、色差信号に対しても適用することができる。
【０３２６】
さらに、上記説明においては、マクロブロック内の処理をラスタスキャン順に行う例を説明したが、マクロブロック内の処理順はラスタスキャン順以外であってもよい。
【０３２７】
なお、上記説明においては、マクロブロックの大きさが、１６×１６画素の場合について説明してきたが、本発明は、”Video Coding Using Extended Block Sizes”,VCEG-AD09,ITU-Telecommunications Standardization Sector STUDY GROUP Question 16 - Contribution 123, Jan 2009に記載の拡張されたマクロブロックサイズに対しても適用することが可能である。
【０３２８】
図３５は、拡張されたマクロブロックサイズの例を示す図である。上記記載では、マクロブロックサイズが３２×３２画素に拡張されている。
【０３２９】
図３５の上段には、左から、３２×３２画素、３２×１６画素、１６×３２画素、および１６×１６画素のブロック（パーティション）に分割された３２×３２画素で構成されるマクロブロックが順に示されている。図３５の中段には、左から、１６×１６画素、１６×８画素、８×１６画素、および８×８画素のブロックに分割された１６×１６画素で構成されるブロックが順に示されている。また、図３５の下段には、左から、８×８画素、８×４画素、４×８画素、および４×４画素のブロックに分割された８×８画素のブロックが順に示されている。
【０３３０】
すなわち、３２×３２画素のマクロブロックは、図３５の上段に示される３２×３２画素、３２×１６画素、１６×３２画素、および１６×１６画素のブロックでの処理が可能である。
【０３３１】
また、上段の右側に示される１６×１６画素のブロックは、Ｈ．２６４／ＡＶＣ方式と同様に、中段に示される１６×１６画素、１６×８画素、８×１６画素、および８×８画素のブロックでの処理が可能である。
【０３３２】
さらに、中段の右側に示される８×８画素のブロックは、Ｈ．２６４／ＡＶＣ方式と同様に、下段に示される８×８画素、８×４画素、４×８画素、および４×４画素のブロックでの処理が可能である。
【０３３３】
このような階層構造を採用することにより、拡張されたマクロブロックサイズにおいては、１６×１６画素のブロック以下に関してＨ．２６４／ＡＶＣ方式と互換性を保ちながら、そのスーパーセットとして、より大きなブロックが定義されている。
【０３３４】
以上のように提案される拡張されたマクロブロックサイズにも本発明を適用することができる。
【０３３５】
以上においては、符号化方式としてH．264/AVC方式を用いるようにしたが、その他の符号化方式／復号方式を用いることもできる。
【０３３６】
なお、本発明は、例えば、MPEG、H．26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報（ビットストリーム）を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本発明は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本発明は、それらの画像符号化装置および画像復号装置などに含まれる動き予測補償装置にも適用することができる。
【０３３７】
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
【０３３８】
図３６は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【０３３９】
コンピュータにおいて、CPU(Central Processing Unit)２０１、ROM(Read Only Memory)２０２、RAM(Random Access Memory)２０３は、バス２０４により相互に接続されている。バス２０４には、さらに、入出力インタフェース２０５が接続されている。入出力インタフェース２０５には、入力部２０６、出力部２０７、記憶部２０８、通信部２０９、およびドライブ２１０が接続されている。
【０３４０】
入力部２０６は、キーボード、マウス、マイクロフォンなどよりなる。出力部２０７は、ディスプレイ、スピーカなどよりなる。記憶部２０８は、ハードディスクや不揮発性のメモリなどよりなる。通信部２０９は、ネットワークインタフェースなどよりなる。ドライブ２１０は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア２１１を駆動する。
【０３４１】
以上のように構成されるコンピュータでは、CPU２０１が、例えば、記憶部２０８に記憶されているプログラムを入出力インタフェース２０５及びバス２０４を介してRAM２０３にロードして実行することにより、上述した一連の処理が行われる。
【０３４２】
コンピュータ（CPU２０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア２１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供することができる。
【０３４３】
コンピュータでは、プログラムは、リムーバブルメディア２１１をドライブ２１０に装着することにより、入出力インタフェース２０５を介して、記憶部２０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部２０９で受信し、記憶部２０８にインストールすることができる。その他、プログラムは、ROM２０２や記憶部２０８に、あらかじめインストールしておくことができる。
【０３４４】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０３４５】
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【０３４６】
例えば、上述した画像符号化装置１や画像復号装置１０１は、任意の電子機器に適用することができる。以下にその例について説明する。
【０３４７】
図３７は、本発明を適用した画像復号装置を用いるテレビジョン受像機の主な構成例を示すブロック図である。
【０３４８】
図３７に示されるテレビジョン受像機３００は、地上波チューナ３１３、ビデオデコーダ３１５、映像信号処理回路３１８、グラフィック生成回路３１９、パネル駆動回路３２０、および表示パネル３２１を有する。
【０３４９】
地上波チューナ３１３は、地上アナログ放送の放送波信号を、アンテナを介して受信し、復調し、映像信号を取得し、それをビデオデコーダ３１５に供給する。ビデオデコーダ３１５は、地上波チューナ３１３から供給された映像信号に対してデコード処理を施し、得られたデジタルのコンポーネント信号を映像信号処理回路３１８に供給する。
【０３５０】
映像信号処理回路３１８は、ビデオデコーダ３１５から供給された映像データに対してノイズ除去などの所定の処理を施し、得られた映像データをグラフィック生成回路３１９に供給する。
【０３５１】
グラフィック生成回路３１９は、表示パネル３２１に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成し、生成した映像データや画像データをパネル駆動回路３２０に供給する。また、グラフィック生成回路３１９は、項目の選択などにユーザにより利用される画面を表示するための映像データ（グラフィック）を生成し、それを番組の映像データに重畳したりすることによって得られた映像データをパネル駆動回路３２０に供給するといった処理も適宜行う。
【０３５２】
パネル駆動回路３２０は、グラフィック生成回路３１９から供給されたデータに基づいて表示パネル３２１を駆動し、番組の映像や上述した各種の画面を表示パネル３２１に表示させる。
【０３５３】
表示パネル３２１はLCD（Liquid Crystal Display）などよりなり、パネル駆動回路３２０による制御に従って番組の映像などを表示させる。
【０３５４】
また、テレビジョン受像機３００は、音声A/D（Analog/Digital)変換回路３１４、音声信号処理回路３２２、エコーキャンセル／音声合成回路３２３、音声増幅回路３２４、およびスピーカ３２５も有する。
【０３５５】
地上波チューナ３１３は、受信した放送波信号を復調することにより、映像信号だけでなく音声信号も取得する。地上波チューナ３１３は、取得した音声信号を音声A/D変換回路３１４に供給する。
【０３５６】
音声A/D変換回路３１４は、地上波チューナ３１３から供給された音声信号に対してA/D変換処理を施し、得られたデジタルの音声信号を音声信号処理回路３２２に供給する。
【０３５７】
音声信号処理回路３２２は、音声A/D変換回路３１４から供給された音声データに対してノイズ除去などの所定の処理を施し、得られた音声データをエコーキャンセル／音声合成回路３２３に供給する。
【０３５８】
エコーキャンセル／音声合成回路３２３は、音声信号処理回路３２２から供給された音声データを音声増幅回路３２４に供給する。
【０３５９】
音声増幅回路３２４は、エコーキャンセル／音声合成回路３２３から供給された音声データに対してD/A変換処理、増幅処理を施し、所定の音量に調整した後、音声をスピーカ３２５から出力させる。
【０３６０】
さらに、テレビジョン受像機３００は、デジタルチューナ３１６およびMPEGデコーダ３１７も有する。
【０３６１】
デジタルチューナ３１６は、デジタル放送（地上デジタル放送、BS（Broadcasting Satellite）／CS（Communications Satellite）デジタル放送）の放送波信号を、アンテナを介して受信し、復調し、MPEG-TS（Moving Picture Experts Group-Transport Stream）を取得し、それをMPEGデコーダ３１７に供給する。
【０３６２】
MPEGデコーダ３１７は、デジタルチューナ３１６から供給されたMPEG-TSに施されているスクランブルを解除し、再生対象（視聴対象）になっている番組のデータを含むストリームを抽出する。MPEGデコーダ３１７は、抽出したストリームを構成する音声パケットをデコードし、得られた音声データを音声信号処理回路３２２に供給するとともに、ストリームを構成する映像パケットをデコードし、得られた映像データを映像信号処理回路３１８に供給する。また、MPEGデコーダ３１７は、MPEG-TSから抽出したEPG（Electronic Program Guide)データを図示せぬ経路を介してCPU３３２に供給する。
【０３６３】
テレビジョン受像機３００は、このように映像パケットをデコードするMPEGデコーダ３１７として、上述した画像復号装置１０１を用いる。したがって、MPEGデコーダ３１７は、画像復号装置１０１の場合と同様に、常に、対象ブロックのマクロブロックに隣接する画素をテンプレートとして利用することができる。これにより、マクロブロック内のブロックに対する処理を、並列処理またはパイプライン処理により実現することが可能になり、マクロブロック内における処理効率を向上させることができる。
【０３６４】
MPEGデコーダ３１７から供給された映像データは、ビデオデコーダ３１５から供給された映像データの場合と同様に、映像信号処理回路３１８において所定の処理が施される。そして、所定の処理が施された映像データは、グラフィック生成回路３１９において、生成された映像データ等が適宜重畳され、パネル駆動回路３２０を介して表示パネル３２１に供給され、その画像が表示される。
【０３６５】
MPEGデコーダ３１７から供給された音声データは、音声A/D変換回路３１４から供給された音声データの場合と同様に、音声信号処理回路３２２において所定の処理が施される。そして、所定の処理が施された音声データは、エコーキャンセル／音声合成回路３２３を介して音声増幅回路３２４に供給され、D/A変換処理や増幅処理が施される。その結果、所定の音量に調整された音声がスピーカ３２５から出力される。
【０３６６】
また、テレビジョン受像機３００は、マイクロホン３２６、およびA/D変換回路３２７も有する。
【０３６７】
A/D変換回路３２７は、音声会話用のものとしてテレビジョン受像機３００に設けられるマイクロホン３２６により取り込まれたユーザの音声の信号を受信する。A/D変換回路３２７は、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データをエコーキャンセル／音声合成回路３２３に供給する。
【０３６８】
エコーキャンセル／音声合成回路３２３は、テレビジョン受像機３００のユーザ（ユーザＡ）の音声のデータがA/D変換回路３２７から供給されている場合、ユーザＡの音声データを対象としてエコーキャンセルを行う。そして、エコーキャンセル／音声合成回路３２３は、エコーキャンセルの後、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路３２４を介してスピーカ３２５より出力させる。
【０３６９】
さらに、テレビジョン受像機３００は、音声コーデック３２８、内部バス３２９、SDRAM（Synchronous Dynamic Random Access Memory)３３０、フラッシュメモリ３３１、CPU３３２、USB（Universal Serial Bus) I/F３３３、およびネットワークI/F３３４も有する。
【０３７０】
A/D変換回路３２７は、音声会話用のものとしてテレビジョン受像機３００に設けられるマイクロホン３２６により取り込まれたユーザの音声の信号を受信する。A/D変換回路３２７は、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データを音声コーデック３２８に供給する。
【０３７１】
音声コーデック３２８は、A/D変換回路３２７から供給された音声データを、ネットワーク経由で送信するための所定のフォーマットのデータに変換し、内部バス３２９を介してネットワークI/F３３４に供給する。
【０３７２】
ネットワークI/F３３４は、ネットワーク端子３３５に装着されたケーブルを介してネットワークに接続される。ネットワークI/F３３４は、例えば、そのネットワークに接続される他の装置に対して、音声コーデック３２８から供給された音声データを送信する。また、ネットワークI/F３３４は、例えば、ネットワークを介して接続される他の装置から送信される音声データを、ネットワーク端子３３５を介して受信し、それを、内部バス３２９を介して音声コーデック３２８に供給する。
【０３７３】
音声コーデック３２８は、ネットワークI/F３３４から供給された音声データを所定のフォーマットのデータに変換し、それをエコーキャンセル／音声合成回路３２３に供給する。
【０３７４】
エコーキャンセル／音声合成回路３２３は、音声コーデック３２８から供給される音声データを対象としてエコーキャンセルを行い、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路３２４を介してスピーカ３２５より出力させる。
【０３７５】
SDRAM３３０は、CPU３３２が処理を行う上で必要な各種のデータを記憶する。
【０３７６】
フラッシュメモリ３３１は、CPU３３２により実行されるプログラムを記憶する。フラッシュメモリ３３１に記憶されているプログラムは、テレビジョン受像機３００の起動時などの所定のタイミングでCPU３３２により読み出される。フラッシュメモリ３３１には、デジタル放送を介して取得されたEPGデータ、ネットワークを介して所定のサーバから取得されたデータなども記憶される。
【０３７７】
例えば、フラッシュメモリ３３１には、CPU３３２の制御によりネットワークを介して所定のサーバから取得されたコンテンツデータを含むMPEG-TSが記憶される。フラッシュメモリ３３１は、例えばCPU３３２の制御により、そのMPEG-TSを、内部バス３２９を介してMPEGデコーダ３１７に供給する。
【０３７８】
MPEGデコーダ３１７は、デジタルチューナ３１６から供給されたMPEG-TSの場合と同様に、そのMPEG-TSを処理する。このようにテレビジョン受像機３００は、映像や音声等よりなるコンテンツデータを、ネットワークを介して受信し、MPEGデコーダ３１７を用いてデコードし、その映像を表示させたり、音声を出力させたりすることができる。
【０３７９】
また、テレビジョン受像機３００は、リモートコントローラ３５１から送信される赤外線信号を受光する受光部３３７も有する。
【０３８０】
受光部３３７は、リモートコントローラ３５１からの赤外線を受光し、復調して得られたユーザ操作の内容を表す制御コードをCPU３３２に出力する。
【０３８１】
CPU３３２は、フラッシュメモリ３３１に記憶されているプログラムを実行し、受光部３３７から供給される制御コードなどに応じてテレビジョン受像機３００の全体の動作を制御する。CPU３３２とテレビジョン受像機３００の各部は、図示せぬ経路を介して接続されている。
【０３８２】
USB I/F３３３は、USB端子３３６に装着されたUSBケーブルを介して接続される、テレビジョン受像機３００の外部の機器との間でデータの送受信を行う。ネットワークI/F３３４は、ネットワーク端子３３５に装着されたケーブルを介してネットワークに接続し、ネットワークに接続される各種の装置と音声データ以外のデータの送受信も行う。
【０３８３】
テレビジョン受像機３００は、MPEGデコーダ３１７として画像復号装置１０１を用いることにより、マクロブロック内における処理効率を向上させることができる。その結果として、テレビジョン受像機３００は、アンテナを介して受信した放送波信号や、ネットワークを介して取得したコンテンツデータから、より高精細な復号画像を得て、スムーズに表示することができる。
【０３８４】
図３８は、本発明を適用した画像符号化装置および画像復号装置を用いる携帯電話機の主な構成例を示すブロック図である。
【０３８５】
図３８に示される携帯電話機４００は、各部を統括的に制御するようになされた主制御部４５０、電源回路部４５１、操作入力制御部４５２、画像エンコーダ４５３、カメラI/F部４５４、LCD制御部４５５、画像デコーダ４５６、多重分離部４５７、記録再生部４６２、変復調回路部４５８、および音声コーデック４５９を有する。これらは、バス４６０を介して互いに接続されている。
【０３８６】
また、携帯電話機４００は、操作キー４１９、CCD（Charge Coupled Devices）カメラ４１６、液晶ディスプレイ４１８、記憶部４２３、送受信回路部４６３、アンテナ４１４、マイクロホン（マイク）４２１、およびスピーカ４１７を有する。
【０３８７】
電源回路部４５１は、ユーザの操作により終話および電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話機４００を動作可能な状態に起動する。
【０３８８】
携帯電話機４００は、CPU、ROMおよびRAM等でなる主制御部４５０の制御に基づいて、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
【０３８９】
例えば、音声通話モードにおいて、携帯電話機４００は、マイクロホン（マイク）４２１で集音した音声信号を、音声コーデック４５９によってデジタル音声データに変換し、これを変復調回路部４５８でスペクトラム拡散処理し、送受信回路部４６３でデジタルアナログ変換処理および周波数変換処理する。携帯電話機４００は、その変換処理により得られた送信用信号を、アンテナ４１４を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号（音声信号）は、公衆電話回線網を介して通話相手の携帯電話機に供給される。
【０３９０】
また、例えば、音声通話モードにおいて、携帯電話機４００は、アンテナ４１４で受信した受信信号を送受信回路部４６３で増幅し、さらに周波数変換処理およびアナログデジタル変換処理し、変復調回路部４５８でスペクトラム逆拡散処理し、音声コーデック４５９によってアナログ音声信号に変換する。携帯電話機４００は、その変換して得られたアナログ音声信号をスピーカ４１７から出力する。
【０３９１】
更に、例えば、データ通信モードにおいて電子メールを送信する場合、携帯電話機４００は、操作キー４１９の操作によって入力された電子メールのテキストデータを、操作入力制御部４５２において受け付ける。携帯電話機４００は、そのテキストデータを主制御部４５０において処理し、LCD制御部４５５を介して、画像として液晶ディスプレイ４１８に表示させる。
【０３９２】
また、携帯電話機４００は、主制御部４５０において、操作入力制御部４５２が受け付けたテキストデータやユーザ指示等に基づいて電子メールデータを生成する。携帯電話機４００は、その電子メールデータを、変復調回路部４５８でスペクトラム拡散処理し、送受信回路部４６３でデジタルアナログ変換処理および周波数変換処理する。携帯電話機４００は、その変換処理により得られた送信用信号を、アンテナ４１４を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号（電子メール）は、ネットワークおよびメールサーバ等を介して、所定のあて先に供給される。
【０３９３】
また、例えば、データ通信モードにおいて電子メールを受信する場合、携帯電話機４００は、基地局から送信された信号を、アンテナ４１４を介して送受信回路部４６３で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機４００は、その受信信号を変復調回路部４５８でスペクトラム逆拡散処理して元の電子メールデータを復元する。携帯電話機４００は、復元された電子メールデータを、LCD制御部４５５を介して液晶ディスプレイ４１８に表示する。
【０３９４】
なお、携帯電話機４００は、受信した電子メールデータを、記録再生部４６２を介して、記憶部４２３に記録する（記憶させる）ことも可能である。
【０３９５】
この記憶部４２３は、書き換え可能な任意の記憶媒体である。記憶部４２３は、例えば、RAMや内蔵型フラッシュメモリ等の半導体メモリであってもよいし、ハードディスクであってもよいし、磁気ディスク、光磁気ディスク、光ディスク、USBメモリ、またはメモリカード等のリムーバブルメディアであってもよい。もちろん、これら以外のものであってもよい。
【０３９６】
さらに、例えば、データ通信モードにおいて画像データを送信する場合、携帯電話機４００は、撮像によりCCDカメラ４１６で画像データを生成する。CCDカメラ４１６は、レンズや絞り等の光学デバイスと光電変換素子としてのCCDを有し、被写体を撮像し、受光した光の強度を電気信号に変換し、被写体の画像の画像データを生成する。その画像データを、カメラI/F部４５４を介して、画像エンコーダ４５３で、例えばMPEG２やMPEG４等の所定の符号化方式によって圧縮符号化することにより符号化画像データに変換する。
【０３９７】
携帯電話機４００は、このような処理を行う画像エンコーダ４５３として、上述した画像符号化装置１を用いる。したがって、画像エンコーダ４５３は、画像符号化装置１の場合と同様に、常に、対象ブロックのマクロブロックに隣接する画素をテンプレートとして利用することができる。これにより、マクロブロック内のブロックに対する処理を、並列処理またはパイプライン処理により実現することが可能になり、マクロブロック内における処理効率を向上させることができる。
【０３９８】
なお、携帯電話機４００は、このとき同時に、CCDカメラ４１６で撮像中にマイクロホン（マイク）４２１で集音した音声を、音声コーデック４５９においてアナログデジタル変換し、さらに符号化する。
【０３９９】
携帯電話機４００は、多重分離部４５７において、画像エンコーダ４５３から供給された符号化画像データと、音声コーデック４５９から供給されたデジタル音声データとを、所定の方式で多重化する。携帯電話機４００は、その結果得られる多重化データを、変復調回路部４５８でスペクトラム拡散処理し、送受信回路部４６３でデジタルアナログ変換処理および周波数変換処理する。携帯電話機４００は、その変換処理により得られた送信用信号を、アンテナ４１４を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号（画像データ）は、ネットワーク等を介して、通信相手に供給される。
【０４００】
なお、画像データを送信しない場合、携帯電話機４００は、CCDカメラ４１６で生成した画像データを、画像エンコーダ４５３を介さずに、LCD制御部４５５を介して液晶ディスプレイ４１８に表示させることもできる。
【０４０１】
また、例えば、データ通信モードにおいて、簡易ホームページ等にリンクされた動画像ファイルのデータを受信する場合、携帯電話機４００は、基地局から送信された信号を、アンテナ４１４を介して送受信回路部４６３で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機４００は、その受信信号を変復調回路部４５８でスペクトラム逆拡散処理して元の多重化データを復元する。携帯電話機４００は、多重分離部４５７において、その多重化データを分離して、符号化画像データと音声データとに分ける。
【０４０２】
携帯電話機４００は、画像デコーダ４５６において、符号化画像データを、MPEG２やMPEG４等の所定の符号化方式に対応した復号方式でデコードすることにより、再生動画像データを生成し、これを、LCD制御部４５５を介して液晶ディスプレイ４１８に表示させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる動画データが液晶ディスプレイ４１８に表示される。
【０４０３】
携帯電話機４００は、このような処理を行う画像デコーダ４５６として、上述した画像復号装置１０１を用いる。したがって、画像デコーダ４５６は、画像復号装置１０１の場合と同様に、常に、対象ブロックのマクロブロックに隣接する画素をテンプレートとして利用することができる。これにより、マクロブロック内のブロックに対する処理を、並列処理またはパイプライン処理により実現することが可能になり、マクロブロック内における処理効率を向上させることができる。
【０４０４】
このとき、携帯電話機４００は、同時に、音声コーデック４５９において、デジタルの音声データをアナログ音声信号に変換し、これをスピーカ４１７より出力させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる音声データが再生される。
【０４０５】
なお、電子メールの場合と同様に、携帯電話機４００は、受信した簡易ホームページ等にリンクされたデータを、記録再生部４６２を介して、記憶部４２３に記録する（記憶させる）ことも可能である。
【０４０６】
また、携帯電話機４００は、主制御部４５０において、撮像されてCCDカメラ４１６で得られた２次元コードを解析し、２次元コードに記録された情報を取得することができる。
【０４０７】
さらに、携帯電話機４００は、赤外線通信部４８１で赤外線により外部の機器と通信することができる。
【０４０８】
携帯電話機４００は、画像エンコーダ４５３として画像符号化装置１を用いることにより、例えばCCDカメラ４１６において生成された画像データを符号化して生成する符号化データの符号化効率を向上させるとともに、マクロブロック内における処理効率を向上させることができる。結果として、携帯電話機４００は、符号化効率のよい符号化データ（画像データ）を、スムーズに他の装置に提供することができる。
【０４０９】
また、携帯電話機４００は、画像デコーダ４５６として画像復号装置１０１を用いることにより、マクロブロック内における処理効率を向上させ、精度の高い予測画像を生成することができる。その結果として、携帯電話機４００は、例えば、簡易ホームページにリンクされた動画像ファイルから、より高精細な復号画像を得て、スムーズに表示することができる。
【０４１０】
なお、以上において、携帯電話機４００が、CCDカメラ４１６を用いるように説明したが、このCCDカメラ４１６の代わりに、CMOS（Complementary Metal Oxide Semiconductor）を用いたイメージセンサ（CMOSイメージセンサ）を用いるようにしてもよい。この場合も、携帯電話機４００は、CCDカメラ４１６を用いる場合と同様に、被写体を撮像し、被写体の画像の画像データを生成することができる。
【０４１１】
また、以上においては携帯電話機４００として説明したが、例えば、PDA（Personal Digital Assistants）、スマートフォン、UMPC（Ultra Mobile Personal Computer）、ネットブック、ノート型パーソナルコンピュータ等、この携帯電話機４００と同様の撮像機能や通信機能を有する装置であれば、どのような装置であっても携帯電話機４００の場合と同様に、画像符号化装置１および画像復号装置１０１を適用することができる。
【０４１２】
図３９は、本発明を適用した画像符号化装置および画像復号装置を用いるハードディスクレコーダの主な構成例を示すブロック図である。
【０４１３】
図３９に示されるハードディスクレコーダ（HDDレコーダ）５００は、チューナにより受信された、衛星や地上のアンテナ等より送信される放送波信号（テレビジョン信号）に含まれる放送番組のオーディオデータとビデオデータを、内蔵するハードディスクに保存し、その保存したデータをユーザの指示に応じたタイミングでユーザに提供する装置である。
【０４１４】
ハードディスクレコーダ５００は、例えば、放送波信号よりオーディオデータとビデオデータを抽出し、それらを適宜復号し、内蔵するハードディスクに記憶させることができる。また、ハードディスクレコーダ５００は、例えば、ネットワークを介して他の装置からオーディオデータやビデオデータを取得し、それらを適宜復号し、内蔵するハードディスクに記憶させることもできる。
【０４１５】
さらに、ハードディスクレコーダ５００は、例えば、内蔵するハードディスクに記録されているオーディオデータやビデオデータを復号してモニタ５６０に供給し、モニタ５６０の画面にその画像を表示させる。また、ハードディスクレコーダ５００は、モニタ５６０のスピーカよりその音声を出力させることができる。
【０４１６】
ハードディスクレコーダ５００は、例えば、チューナを介して取得された放送波信号より抽出されたオーディオデータとビデオデータ、または、ネットワークを介して他の装置から取得したオーディオデータやビデオデータを復号してモニタ５６０に供給し、モニタ５６０の画面にその画像を表示させる。また、ハードディスクレコーダ５００は、モニタ５６０のスピーカよりその音声を出力させることもできる。
【０４１７】
もちろん、この他の動作も可能である。
【０４１８】
図３９に示されるように、ハードディスクレコーダ５００は、受信部５２１、復調部５２２、デマルチプレクサ５２３、オーディオデコーダ５２４、ビデオデコーダ５２５、およびレコーダ制御部５２６を有する。ハードディスクレコーダ５００は、さらに、EPGデータメモリ５２７、プログラムメモリ５２８、ワークメモリ５２９、ディスプレイコンバータ５３０、OSD（On Screen Display）制御部５３１、ディスプレイ制御部５３２、記録再生部５３３、D/Aコンバータ５３４、および通信部５３５を有する。
【０４１９】
また、ディスプレイコンバータ５３０は、ビデオエンコーダ５４１を有する。記録再生部５３３は、エンコーダ５５１およびデコーダ５５２を有する。
【０４２０】
受信部５２１は、リモートコントローラ（図示せず）からの赤外線信号を受信し、電気信号に変換してレコーダ制御部５２６に出力する。レコーダ制御部５２６は、例えば、マイクロプロセッサなどにより構成され、プログラムメモリ５２８に記憶されているプログラムに従って、各種の処理を実行する。レコーダ制御部５２６は、このとき、ワークメモリ５２９を必要に応じて使用する。
【０４２１】
通信部５３５は、ネットワークに接続され、ネットワークを介して他の装置との通信処理を行う。例えば、通信部５３５は、レコーダ制御部５２６により制御され、チューナ（図示せず）と通信し、主にチューナに対して選局制御信号を出力する。
【０４２２】
復調部５２２は、チューナより供給された信号を、復調し、デマルチプレクサ５２３に出力する。デマルチプレクサ５２３は、復調部５２２より供給されたデータを、オーディオデータ、ビデオデータ、およびEPGデータに分離し、それぞれ、オーディオデコーダ５２４、ビデオデコーダ５２５、またはレコーダ制御部５２６に出力する。
【０４２３】
オーディオデコーダ５２４は、入力されたオーディオデータを、例えばMPEG方式でデコードし、記録再生部５３３に出力する。ビデオデコーダ５２５は、入力されたビデオデータを、例えばMPEG方式でデコードし、ディスプレイコンバータ５３０に出力する。レコーダ制御部５２６は、入力されたEPGデータをEPGデータメモリ５２７に供給し、記憶させる。
【０４２４】
ディスプレイコンバータ５３０は、ビデオデコーダ５２５またはレコーダ制御部５２６より供給されたビデオデータを、ビデオエンコーダ５４１により、例えばNTSC（National Television Standards Committee）方式のビデオデータにエンコードし、記録再生部５３３に出力する。また、ディスプレイコンバータ５３０は、ビデオデコーダ５２５またはレコーダ制御部５２６より供給されるビデオデータの画面のサイズを、モニタ５６０のサイズに対応するサイズに変換する。ディスプレイコンバータ５３０は、画面のサイズが変換されたビデオデータを、さらに、ビデオエンコーダ５４１によってNTSC方式のビデオデータに変換し、アナログ信号に変換し、ディスプレイ制御部５３２に出力する。
【０４２５】
ディスプレイ制御部５３２は、レコーダ制御部５２６の制御のもと、OSD（On Screen Display）制御部５３１が出力したOSD信号を、ディスプレイコンバータ５３０より入力されたビデオ信号に重畳し、モニタ５６０のディスプレイに出力し、表示させる。
【０４２６】
モニタ５６０にはまた、オーディオデコーダ５２４が出力したオーディオデータが、D/Aコンバータ５３４によりアナログ信号に変換されて供給されている。モニタ５６０は、このオーディオ信号を内蔵するスピーカから出力する。
【０４２７】
記録再生部５３３は、ビデオデータやオーディオデータ等を記録する記憶媒体としてハードディスクを有する。
【０４２８】
記録再生部５３３は、例えば、オーディオデコーダ５２４より供給されるオーディオデータを、エンコーダ５５１によりMPEG方式でエンコードする。また、記録再生部５３３は、ディスプレイコンバータ５３０のビデオエンコーダ５４１より供給されるビデオデータを、エンコーダ５５１によりMPEG方式でエンコードする。記録再生部５３３は、そのオーディオデータの符号化データとビデオデータの符号化データとをマルチプレクサにより合成する。記録再生部５３３は、その合成データをチャネルコーディングして増幅し、そのデータを、記録ヘッドを介してハードディスクに書き込む。
【０４２９】
記録再生部５３３は、再生ヘッドを介してハードディスクに記録されているデータを再生し、増幅し、デマルチプレクサによりオーディオデータとビデオデータに分離する。記録再生部５３３は、デコーダ５５２によりオーディオデータおよびビデオデータをMPEG方式でデコードする。記録再生部５３３は、復号したオーディオデータをD/A変換し、モニタ５６０のスピーカに出力する。また、記録再生部５３３は、復号したビデオデータをD/A変換し、モニタ５６０のディスプレイに出力する。
【０４３０】
レコーダ制御部５２６は、受信部５２１を介して受信されるリモートコントローラからの赤外線信号により示されるユーザ指示に基づいて、EPGデータメモリ５２７から最新のEPGデータを読み出し、それをOSD制御部５３１に供給する。OSD制御部５３１は、入力されたEPGデータに対応する画像データを発生し、ディスプレイ制御部５３２に出力する。ディスプレイ制御部５３２は、OSD制御部５３１より入力されたビデオデータをモニタ５６０のディスプレイに出力し、表示させる。これにより、モニタ５６０のディスプレイには、EPG（電子番組ガイド）が表示される。
【０４３１】
また、ハードディスクレコーダ５００は、インターネット等のネットワークを介して他の装置から供給されるビデオデータ、オーディオデータ、またはEPGデータ等の各種データを取得することができる。
【０４３２】
通信部５３５は、レコーダ制御部５２６に制御され、ネットワークを介して他の装置から送信されるビデオデータ、オーディオデータ、およびEPGデータ等の符号化データを取得し、それをレコーダ制御部５２６に供給する。レコーダ制御部５２６は、例えば、取得したビデオデータやオーディオデータの符号化データを記録再生部５３３に供給し、ハードディスクに記憶させる。このとき、レコーダ制御部５２６および記録再生部５３３が、必要に応じて再エンコード等の処理を行うようにしてもよい。
【０４３３】
また、レコーダ制御部５２６は、取得したビデオデータやオーディオデータの符号化データを復号し、得られるビデオデータをディスプレイコンバータ５３０に供給する。ディスプレイコンバータ５３０は、ビデオデコーダ５２５から供給されるビデオデータと同様に、レコーダ制御部５２６から供給されるビデオデータを処理し、ディスプレイ制御部５３２を介してモニタ５６０に供給し、その画像を表示させる。
【０４３４】
また、この画像表示に合わせて、レコーダ制御部５２６が、復号したオーディオデータを、D/Aコンバータ５３４を介してモニタ５６０に供給し、その音声をスピーカから出力させるようにしてもよい。
【０４３５】
さらに、レコーダ制御部５２６は、取得したEPGデータの符号化データを復号し、復号したEPGデータをEPGデータメモリ５２７に供給する。
【０４３６】
以上のようなハードディスクレコーダ５００は、ビデオデコーダ５２５、デコーダ５５２、およびレコーダ制御部５２６に内蔵されるデコーダとして画像復号装置１０１を用いる。したがって、ビデオデコーダ５２５、デコーダ５５２、およびレコーダ制御部５２６に内蔵されるデコーダは、画像復号装置１０１の場合と同様に、常に、対象ブロックのマクロブロックに隣接する画素をテンプレートとして利用することができる。これにより、マクロブロック内のブロックに対する処理を、並列処理またはパイプライン処理により実現することが可能になり、マクロブロック内における処理効率を向上させることができる。
【０４３７】
したがって、ハードディスクレコーダ５００は、処理効率を向上させて、精度の高い予測画像を生成することができる。その結果として、ハードディスクレコーダ５００は、例えば、チューナを介して受信されたビデオデータの符号化データや、記録再生部５３３のハードディスクから読み出されたビデオデータの符号化データや、ネットワークを介して取得したビデオデータの符号化データから、より高精細な復号画像を得て、スムーズにモニタ５６０に表示させることができる。
【０４３８】
また、ハードディスクレコーダ５００は、エンコーダ５５１として画像符号化装置１を用いる。したがって、エンコーダ５５１は、画像符号化装置１の場合と同様に、常に、対象ブロックのマクロブロックに隣接する画素をテンプレートとして利用することができる。これにより、マクロブロック内のブロックに対する処理を、並列処理またはパイプライン処理により実現することが可能になり、マクロブロック内における処理効率を向上させることができる。
【０４３９】
したがって、ハードディスクレコーダ５００は、例えば、処理効率を向上させて、ハードディスクに記録する符号化データの符号化効率を向上させることができる。その結果として、ハードディスクレコーダ５００は、高速に、ハードディスクの記憶領域をより効率よく使用することができる。
【０４４０】
なお、以上においては、ビデオデータやオーディオデータをハードディスクに記録するハードディスクレコーダ５００について説明したが、もちろん、記録媒体はどのようなものであってもよい。例えばフラッシュメモリ、光ディスク、またはビデオテープ等、ハードディスク以外の記録媒体を適用するレコーダであっても、上述したハードディスクレコーダ５００の場合と同様に、画像符号化装置１および画像復号装置１０１を適用することができる。
【０４４１】
図４０は、本発明を適用した画像復号装置および画像符号化装置を用いるカメラの主な構成例を示すブロック図である。
【０４４２】
図４０に示されるカメラ６００は、被写体を撮像し、被写体の画像をLCD６１６に表示させたり、それを画像データとして、記録メディア６３３に記録したりする。
【０４４３】
レンズブロック６１１は、光（すなわち、被写体の映像）を、CCD/CMOS６１２に入射させる。CCD/CMOS６１２は、CCDまたはCMOSを用いたイメージセンサであり、受光した光の強度を電気信号に変換し、カメラ信号処理部６１３に供給する。
【０４４４】
カメラ信号処理部６１３は、CCD/CMOS６１２から供給された電気信号を、Ｙ，Ｃｒ，Ｃｂの色差信号に変換し、画像信号処理部６１４に供給する。画像信号処理部６１４は、コントローラ６２１の制御の下、カメラ信号処理部６１３から供給された画像信号に対して所定の画像処理を施したり、その画像信号をエンコーダ６４１で例えばMPEG方式により符号化したりする。画像信号処理部６１４は、画像信号を符号化して生成した符号化データを、デコーダ６１５に供給する。さらに、画像信号処理部６１４は、オンスクリーンディスプレイ（OSD）６２０において生成された表示用データを取得し、それをデコーダ６１５に供給する。
【０４４５】
以上の処理において、カメラ信号処理部６１３は、バス６１７を介して接続されるDRAM（Dynamic Random Access Memory）６１８を適宜利用し、必要に応じて画像データや、その画像データが符号化された符号化データ等をそのDRAM６１８に保持させる。
【０４４６】
デコーダ６１５は、画像信号処理部６１４から供給された符号化データを復号し、得られた画像データ（復号画像データ）をLCD６１６に供給する。また、デコーダ６１５は、画像信号処理部６１４から供給された表示用データをLCD６１６に供給する。LCD６１６は、デコーダ６１５から供給された復号画像データの画像と表示用データの画像を適宜合成し、その合成画像を表示する。
【０４４７】
オンスクリーンディスプレイ６２０は、コントローラ６２１の制御の下、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを、バス６１７を介して画像信号処理部６１４に出力する。
【０４４８】
コントローラ６２１は、ユーザが操作部６２２を用いて指令した内容を示す信号に基づいて、各種処理を実行するとともに、バス６１７を介して、画像信号処理部６１４、DRAM６１８、外部インタフェース６１９、オンスクリーンディスプレイ６２０、およびメディアドライブ６２３等を制御する。FLASH ROM６２４には、コントローラ６２１が各種処理を実行する上で必要なプログラムやデータ等が格納される。
【０４４９】
例えば、コントローラ６２１は、画像信号処理部６１４やデコーダ６１５に代わって、DRAM６１８に記憶されている画像データを符号化したり、DRAM６１８に記憶されている符号化データを復号したりすることができる。このとき、コントローラ６２１は、画像信号処理部６１４やデコーダ６１５の符号化・復号方式と同様の方式によって符号化・復号処理を行うようにしてもよいし、画像信号処理部６１４やデコーダ６１５が対応していない方式により符号化・復号処理を行うようにしてもよい。
【０４５０】
また、例えば、操作部６２２から画像印刷の開始が指示された場合、コントローラ６２１は、DRAM６１８から画像データを読み出し、それを、バス６１７を介して外部インタフェース６１９に接続されるプリンタ６３４に供給して印刷させる。
【０４５１】
さらに、例えば、操作部６２２から画像記録が指示された場合、コントローラ６２１は、DRAM６１８から符号化データを読み出し、それを、バス６１７を介してメディアドライブ６２３に装着される記録メディア６３３に供給して記憶させる。
【０４５２】
記録メディア６３３は、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアである。記録メディア６３３は、もちろん、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触ICカード等であっても良い。
【０４５３】
また、メディアドライブ６２３と記録メディア６３３を一体化し、例えば、内蔵型ハードディスクドライブやSSD（Solid State Drive）等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
【０４５４】
外部インタフェース６１９は、例えば、USB入出力端子などで構成され、画像の印刷を行う場合に、プリンタ６３４と接続される。また、外部インタフェース６１９には、必要に応じてドライブ６３１が接続され、磁気ディスク、光ディスク、あるいは光磁気ディスクなどのリムーバブルメディア６３２が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて、FLASH ROM６２４にインストールされる。
【０４５５】
さらに、外部インタフェース６１９は、LANやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。コントローラ６２１は、例えば、操作部６２２からの指示に従って、DRAM６１８から符号化データを読み出し、それを外部インタフェース６１９から、ネットワークを介して接続される他の装置に供給させることができる。また、コントローラ６２１は、ネットワークを介して他の装置から供給される符号化データや画像データを、外部インタフェース６１９を介して取得し、それをDRAM６１８に保持させたり、画像信号処理部６１４に供給したりすることができる。
【０４５６】
以上のようなカメラ６００は、デコーダ６１５として画像復号装置１０１を用いる。したがって、デコーダ６１５は、画像復号装置１０１の場合と同様に、常に、対象ブロックのマクロブロックに隣接する画素をテンプレートとして利用することができる。これにより、マクロブロック内のブロックに対する処理を、並列処理またはパイプライン処理により実現することが可能になり、マクロブロック内における処理効率を向上させることができる。
【０４５７】
したがって、カメラ６００は、処理効率を向上させて、スムーズに精度の高い予測画像を生成することができる。その結果として、カメラ６００は、例えば、CCD/CMOS６１２において生成された画像データや、DRAM６１８または記録メディア６３３から読み出されたビデオデータの符号化データや、ネットワークを介して取得したビデオデータの符号化データから、より高精細な復号画像を得て、LCD６１６にスムーズに表示させることができる。
【０４５８】
また、カメラ６００は、エンコーダ６４１として画像符号化装置１を用いる。したがって、エンコーダ６４１は、画像符号化装置１の場合と同様に、常に、対象ブロックのマクロブロックに隣接する画素をテンプレートとして利用することができる。これにより、マクロブロック内のブロックに対する処理を、並列処理またはパイプライン処理により実現することが可能になり、マクロブロック内における処理効率を向上させることができる。
【０４５９】
したがって、カメラ６００は、例えば、処理効率を向上させて、ハードディスクに記録する符号化データの符号化効率を向上させることができる。その結果として、カメラ６００は、高速に、DRAM６１８や記録メディア６３３の記憶領域をより効率よく使用することができる。
【０４６０】
なお、コントローラ６２１が行う復号処理に画像復号装置１０１の復号方法を適用するようにしてもよい。同様に、コントローラ６２１が行う符号化処理に画像符号化装置１の符号化方法を適用するようにしてもよい。
【０４６１】
また、カメラ６００が撮像する画像データは動画像であってもよいし、静止画像であってもよい。
【０４６２】
もちろん、画像符号化装置１および画像復号装置１０１は、上述した装置以外の装置やシステムにも適用可能である。
【符号の説明】
【０４６３】
１  画像符号化装置，  １６  可逆符号化部，  ２４  イントラ予測部，  ２５  イントラテンプレート動き予測・補償部，  ２６  動き予測・補償部，  ２７  インターテンプレート動き予測・補償部，  ２８  テンプレート画素設定部，  ４１  ブロックアドレス算出部，  ４２  動き予測部，  ４３  動き補償部，  ５１  ブロックアドレス算出部，  ５２  動き予測部，  ５３  動き補償部，  ６１  ブロック分類部，  ６２  対象ブロックテンプレート設定部，６３  参照ブロックテンプレート設定部，  １０１  画像復号装置，  １１２  可逆復号部，  １２１  イントラ予測部，  １２２  イントラテンプレート動き予測・補償部，  １２３  動き予測・補償部，  １２４  インターテンプレート動き予測・補償部，  １２５  テンプレート画素設定部，  １２６  スイッチ
【図１】
2010095560.tif 000015
【図２】
2010095560.tif 000016
【図３】
2010095560.tif 000017
【図４】
2010095560.tif 000018
【図５】
2010095560.tif 000019
【図６】
2010095560.tif 000020
【図７】
2010095560.tif 000021
【図８】
2010095560.tif 000022
【図９】
2010095560.tif 000023
【図１０】
2010095560.tif 000024
【図１１】
2010095560.tif 000025
【図１２】
2010095560.tif 000026
【図１３】
2010095560.tif 000027
【図１４】
2010095560.tif 000028
【図１５】
2010095560.tif 000029
【図１６】
2010095560.tif 000030
【図１７】
2010095560.tif 000031
【図１８】
2010095560.tif 000032
【図１９】
2010095560.tif 000033
【図２０】
2010095560.tif 000034
【図２１】
2010095560.tif 000035
【図２２】
2010095560.tif 000036
【図２３】
2010095560.tif 000037
【図２４】
2010095560.tif 000038
【図２５】
2010095560.tif 000039
【図２６】
2010095560.tif 000040
【図２７】
2010095560.tif 000041
【図２８】
2010095560.tif 000042
【図２９】
2010095560.tif 000043
【図３０】
2010095560.tif 000044
【図３１】
2010095560.tif 000045
【図３２】
2010095560.tif 000046
【図３３】
2010095560.tif 000047
【図３４】
2010095560.tif 000048
【図３５】
2010095560.tif 000049
【図３６】
2010095560.tif 000050
【図３７】
2010095560.tif 000051
【図３８】
2010095560.tif 000052
【図３９】
2010095560.tif 000053
【図４０】
2010095560.tif 000054
【手続補正書】
【提出日】平成22年6月30日(2010.6.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像の所定のブロックを対象として、前記所定のブロックを分割した対象ブロックの位置関係を判定する判定手段と、
前記所定のブロックに所定の位置関係で隣接するとともに復号画像から生成される画素の中から、前記対象ブロックの動きベクトルを算出する際に用いるテンプレートの画素を、前記判定手段により判定された位置関係に応じて、設定するテンプレート画素設定手段と、
前記テンプレート画素設定手段により設定された前記画素からなる前記テンプレートを利用して、前記ブロックの動きベクトルを算出するテンプレート動き予測補償手段と
を備える画像処理装置。
【請求項２】
前記テンプレート動き予測補償手段により算出された前記動きベクトルを利用して、前記ブロックを符号化する符号化手段
をさらに備える請求項１に記載の画像処理装置。
【請求項３】
前記テンプレート画素設定手段は、前記所定のブロックにおいて左上に位置する左上対象ブロックに対しては、前記左上対象ブロックの左部、上部、および左上部に隣接する画素を前記テンプレートとして設定する
請求項１に記載の画像処理装置。
【請求項４】
前記テンプレート画素設定手段は、前記所定のブロックにおいて右上に位置する右上対象ブロックに対しては、前記右上対象ブロックの上部および左上部に隣接する画素と、前記所定のブロックにおいて左上に位置する左上対象ブロックの左部に隣接する画素とを前記テンプレートとして設定する
請求項３に記載の画像処理装置。
【請求項５】
前記テンプレート画素設定手段は、前記所定のブロックにおいて左下に位置する左下対象ブロックに対しては、前記左下対象ブロックの左上部および左部に隣接する画素と、前記所定のブロックにおいて左上に位置する左上対象ブロックの上部に隣接する画素とを前記テンプレートとして設定する
請求項４に記載の画像処理装置。
【請求項６】
前記テンプレート画素設定手段は、前記所定のブロックにおいて右下に位置する右下対象ブロックに対しては、前記所定のブロックにおいて左上に位置する左上対象ブロックの左上部に隣接する画素と、前記所定のブロックにおいて右上に位置する右上対象ブロックの上部に隣接する画素と、前記所定のブロックにおいて左下に位置する左下対象ブロックの左部に隣接する画素とを前記テンプレートとして設定する
請求項５に記載の画像処理装置。
【請求項７】
前記テンプレート画素設定手段は、前記所定のブロックにおいて右下に位置する右下対象ブロックに対しては、前記所定のブロックにおいて右上に位置する右上対象ブロックの上部および左上部に隣接する画素と、前記所定のブロックにおいて左下に位置する左下対象ブロックの左部に隣接する画素とを前記テンプレートとして設定する
請求項５に記載の画像処理装置。
【請求項８】
前記テンプレート画素設定手段は、前記所定のブロックにおいて右下に位置する右下対象ブロックに対しては、前記所定のブロックにおいて右上に位置する右上対象ブロックの上部に隣接する画素と、前記所定のブロックにおいて左下に位置する左下対象ブロックの左上部および左部に隣接する画素とを前記テンプレートとして設定する
請求項５に記載の画像処理装置。
【請求項９】
画像処理装置が、
画像の所定のブロックを対象として、前記所定のブロックを分割した対象ブロックの位置関係を判定し、
前記所定のブロックに所定の位置関係で隣接するとともに復号画像から生成される画素の中から、前記対象ブロックの動きベクトルを算出する際に用いるテンプレートの画素を、判定された位置関係に応じて、設定し、
設定された前記画素からなる前記テンプレートを利用して、前記ブロックの動きベクトルを算出するステップ
を含む画像処理方法。
【請求項１０】
符号化されているブロックの画像を復号する復号手段と、
画像の所定のブロックを対象として、前記所定のブロックを分割した対象ブロックの位置関係を判定する判定手段と、
前記所定のブロックに所定の位置関係で隣接するとともに復号画像から生成される画素の中から、前記対象ブロックの動きベクトルを算出する際に用いるテンプレートの画素を、前記判定手段により判定された位置関係に応じて、設定するテンプレート画素設定手段と、
前記テンプレート画素設定手段により設定された前記画素からなる前記テンプレートを利用して、前記ブロックの動きベクトルを算出するテンプレート動き予測手段と
前記復号手段により復号された前記画像と、前記テンプレート動き予測手段により算出された前記動きベクトルを用いて、前記ブロックの予測画像を生成する動き補償手段と
を備える画像処理装置。
【請求項１１】
前記テンプレート画素設定手段は、前記所定のブロックにおいて左上に位置する左上対象ブロックに対しては、前記左上対象ブロックの左部、上部、および左上部に隣接する画素を前記テンプレートとして設定する
請求項１０に記載の画像処理装置。
【請求項１２】
前記テンプレート画素設定手段は、前記所定のブロックにおいて右上に位置する右上対象ブロックに対しては、前記右上対象ブロックの上部および左上部に隣接する画素と、前記所定のブロックにおいて左上に位置する左上対象ブロックの左部に隣接する画素とを前記テンプレートとして設定する
請求項１１に記載の画像処理装置。
【請求項１３】
前記テンプレート画素設定手段は、前記所定のブロックにおいて左下に位置する左下対象ブロックに対しては、前記左下対象ブロックの左上部および左部に隣接する画素と、前記所定のブロックにおいて左上に位置する左上対象ブロックの上部に隣接する画素とを前記テンプレートとして設定する
請求項１２に記載の画像処理装置。
【請求項１４】
前記テンプレート画素設定手段は、前記所定のブロックにおいて右下に位置する右下対象ブロックに対しては、前記所定のブロックにおいて左上に位置する左上対象ブロックの左上部に隣接する画素と、前記所定のブロックにおいて右上に位置する右上対象ブロックの上部に隣接する画素と、前記所定のブロックにおいて左下に位置する左下対象ブロックの左部に隣接する画素とを前記テンプレートとして設定する
請求項１３に記載の画像処理装置。
【請求項１５】
前記テンプレート画素設定手段は、前記所定のブロックにおいて右下に位置する右下対象ブロックに対しては、前記所定のブロックにおいて右上に位置する右上対象ブロックの上部および左上部に隣接する画素と、前記所定のブロックにおいて左下に位置する左下対象ブロックの左部に隣接する画素とを前記テンプレートとして設定する
請求項１３に記載の画像処理装置。
【請求項１６】
前記テンプレート画素設定手段は、前記所定のブロックにおいて右下に位置する右下対象ブロックに対しては、前記所定のブロックにおいて右上に位置する右上対象ブロックの上部に隣接する画素と、前記所定のブロックにおいて左下に位置する左下対象ブロックの左上部および左部に隣接する画素とを前記テンプレートとして設定する
請求項１３に記載の画像処理装置。
【請求項１７】
画像処理装置が、
符号化されているブロックの画像を復号し、
画像の所定のブロックを対象として、前記所定のブロックを分割した対象ブロックの位置関係を判定し、
前記所定のブロックに所定の位置関係で隣接するとともに復号画像から生成される画素の中から、前記対象ブロックの動きベクトルを算出する際に用いるテンプレートの画素を、判定された位置関係に応じて、設定し、
設定された前記画素からなる前記テンプレートを利用して、前記ブロックの動きベクトルを算出し、
復号された前記画像と、算出された前記動きベクトルを用いて、前記ブロックの予測画像を生成するステップ
を含む画像処理方法。
【国際調査報告】
2010095560.tif 000055
2010095560.tif 000056
2010095560.tif 000057
2010095560.tif 000058
2010095560.tif 000059