(57)【要約】【課題】より大きなマクロブロックを用いて符号化データのデータ量の少なくする。【解決手段】エッジＬＭＢ判定部３４は、マクロブロック未満のサイズとなるエッジブロックを判別する。ＬＭＢ動き予測・補償処理部３５なエッジブロックに対して、エッジブロックと判定された非正方形領域のサイズである予測ブロックサイズ、またはエッジブロックと判定された領域を水平方向と垂直方向のいずれか一方の方向に分割して得られる複数の非正方形領域のサイズである予測ブロックサイズで符号化効率を判別して、符号化効率が最も高くなる予測ブロックサイズで予測画像データを生成する。エッジブロックに対して、サイズの小さい下層のマクロブロックの予測ブロックサイズが用いられてエッジブロックが数多くのブロックに分割されて符号化されることを防止することが可能となり、符号化データのデータ量の少なくできる。【選択図】        図１
2011223303.tif 000002
【特許請求の範囲】
【請求項１】
画像データを符号化処理する画像符号化装置において、
符号化対象の画像に対してマクロブロックを順次設定したとき、マクロブロック未満のサイズとなるエッジブロックを判定するエッジブロック判定部と、
前記エッジブロック判定部によりエッジブロックと判定された非正方形領域を対象として、前記エッジブロックと判定された領域のサイズである予測ブロックサイズ、または前記エッジブロックと判定された領域を水平方向と垂直方向のいずれか一方の方向に分割して得られる複数の非正方形領域のサイズである予測ブロックサイズで符号化効率を判別して、前記符号化効率が高くなる予測ブロックサイズを検出する予測処理部と
を備える画像符号化装置。
【請求項２】
前記予測処理部は、前記エッジブロックと判定された正方形領域および前記分割後に生じた正方形領域を対象として、前記マクロブロックよりもサイズの小さい下層のマクロブロックに対して設定されている予測ブロックサイズを用いて、各予測ブロックサイズで符号化効率を判別する
請求項１記載の画像符号化装置。
【請求項３】
前記エッジブロック判定部は、フレーム毎またはスライス毎に、マクロブロック未満のサイズとなるエッジブロックの判定を行う
請求項１記載の画像符号化装置。
【請求項４】
前記予測処理部は、前記マクロブロックが所定サイズよりも大きい場合に、前記エッジブロックと判定された領域のサイズである予測ブロックサイズ、または前記エッジブロックと判定された領域を水平方向と垂直方向のいずれか一方の方向に分割して得られる複数の非正方形領域のサイズである予測ブロックサイズを用いる
請求項１記載の画像符号化装置。
【請求項５】
前記符号化処理された画像データと前記符号化効率が高くなる予測ブロックサイズの予測処理に関する予測モード情報を符号化して、符号化ストリームを生成する符号化部を有し、
前記符号化部は、前記エッジブロックであるか否かによってシンタックス要素を変更することなく、前記符号化ストリームを生成する
請求項１記載の画像符号化装置。
【請求項６】
画像データを符号化処理する画像符号化方法において、
符号化対象の画像に対してマクロブロックを順次設定したとき、マクロブロック未満のサイズとなるエッジブロックを判定するエッジブロック判定工程と、
前記エッジブロックと判定された非正方形領域を対象として、前記エッジブロックと判定された領域のサイズである予測ブロックサイズ、または前記エッジブロックと判定された領域を水平方向と垂直方向のいずれか一方の方向に分割して得られる複数の非正方形領域のサイズである予測ブロックサイズで符号化効率を判別して、前記符号化効率が高くなる予測ブロックサイズを検出する予測処理工程と
を設けた画像符号化方法。
【請求項７】
予測ブロックサイズで符号化が行われた画像データを復号化処理する画像復号化装置において、
復号化対象画像の画像サイズと復号化処理するマクロブロックの位置に基づいて、マクロブロック未満のサイズとなるエッジブロックを判定するエッジブロック判定部と、
前記エッジブロック判定部でエッジブロックと判定された場合に、画像データの復号化処理で得られるマクロブロックタイプ情報に基づき、前記エッジブロックと判定された領域を対象として、前記予測ブロックサイズが、前記エッジブロックと判定された領域または前記エッジブロックと判定された領域を水平方向と垂直方向のいずれか一方の方向に分割して得られる領域のサイズであるか判別して、該判別された予測ブロックサイズで前記画像データの復号化処理に用いる予測画像データを生成する予測処理部と
を備える画像復号化装置。
【請求項８】
前記予測処理部は、前記エッジブロック判定部で判別されたエッジブロックが正方形領域である場合に、画像データの復号化処理で得られるマクロブロックタイプ情報に基づき、前記エッジブロックと判定された正方形領域を対象として、予測ブロックサイズが前記マクロブロックよりもサイズの小さい下層のマクロブロックに対して設定されている予測ブロックサイズのいずれであるか判別して、該判別された予測ブロックサイズで前記画像データの復号化処理に用いる予測画像データを生成する
請求項７記載の画像復号化装置。
【請求項９】
前記エッジブロック判定部は、フレーム毎またはスライス毎に、マクロブロック未満のサイズとなるエッジブロックの判定を行う
請求項７記載の画像復号化装置。
【請求項１０】
符号化ストリームを復号化する復号化部を有し、
前記予測処理部は、前記符号化ストリームに含まれる予測ブロックサイズを示すシンタックス要素のセマンティックスを、前記エッジブロック判定部の判定結果に応じて切り替えることで、前記マクロブロックと前記エッジブロックにおける予測ブロックサイズを判別する
請求項７記載の画像復号化装置。
【請求項１１】
予測ブロックサイズで符号化が行われた画像データを復号化処理する画像復号化方法において、
復号化対象画像の画像サイズと復号化処理するマクロブロックの位置に基づいて、マクロブロック未満のサイズとなるエッジブロックを判定するエッジブロック判定工程と、
前記エッジブロック判定行程でエッジブロックと判定された場合に、画像データの復号化処理で得られるマクロブロックタイプ情報に基づき、前記エッジブロックと判定された領域を対象として、前記予測ブロックサイズが、前記エッジブロックと判定された領域または前記エッジブロックと判定された領域を水平方向と垂直方向のいずれか一方の方向に分割して得られる領域のサイズであるか判別して、該判別された予測ブロックサイズで前記画像データの復号化処理に用いる予測画像データを生成する予測処理工程と
を設けた画像復号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像符号化装置と画像符号化方法および画像復号化装置と画像復号化方法に関する。詳しくは、より大きなマクロブロックを用いて符号化データのデータ量が少なくなるようにする。
【背景技術】
【０００２】
近年、画像情報をディジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を行う装置、例えば離散コサイン変換等の直交変換と動き補償により圧縮するＭＰＥＧなどの方式に準拠した装置が、放送局や一般家庭において普及しつつある。
【０００３】
特に、ＭＰＥＧ２（ＩＳＯ／ＩＥＣ１３８１８−２）は、汎用画像符号化方式として定義されており、プロフェッショナル用途およびコンシューマー用途の広範なアプリケーションに現在広く用いられている。このＭＰＥＧ２圧縮方式を用いることにより、例えば７２０×４８０画素を持つ標準解像度の飛び越し走査画像であれば、４〜８Ｍｂｐｓ符号量（ビットレート）を割り当てることで良好な画質の実現が可能である。また、１９２０×１０８８画素を持つ高解像度の飛び越し走査画像であれば１８〜２２Ｍｂｐｓの符号量（ビットレート）を割り当てることで良好な画質の実現が可能である。
【０００４】
ＭＰＥＧ２は主として放送用に適合する高画質符号化を対象としていたが、ＭＰＥＧ１より低い符号量（ビットレート）、つまりより高い圧縮率の符号化方式には対応していなかった。携帯端末の普及により、今後そのような符号化方式のニーズは高まると思われ、これに対応してＭＰＥＧ４符号化方式の標準化が行われた。画像符号化方式に関しては、１９９８年１２月にＩＳＯ／ＩＥＣ１４４９６−２としてその規格が国際標準に承認された。
【０００５】
さらに、近年、当初テレビ会議用の画像符号化を目的として、Ｈ.２６Ｌ  （ＩＴＵ−Ｔ  Ｑ６／１６  ＶＣＥＧ）という標準の規格化が進んでいる。Ｈ．２６ＬはＭＰＥＧ２やＭＰＥＧ４といった従来の符号化方式に比べ、その符号化、復号化により多くの演算量が要求されるものの、より高い符号化効率が実現されることが知られている。また、現在、ＭＰＥＧ４の活動の一環として、このＨ．２６Ｌをベースに、より高い符号化効率を実現する標準化がJoint Model of Enhanced-Compression Video Codingとして行われている。標準化のスケジュールとしては、２００３年３月にはＨ．２６４およびＭＰＥＧ−４  Ｐａｒｔ１０  （Advanced Video Coding、以下「Ｈ．２６４／ＡＶＣ」と記す）という名の下に国際標準となった。
【０００６】
さらに、その拡張として、ＲＧＢや４：２：２、４：４：４といった、業務用に必要な符号化ツールや、ＭＰＥＧ２で規定されていた８×８ＤＣＴや量子化マトリクスをも含んだＦＲＥxt(Fidelity Range Extension)の標準化が２００５年２月に完了した。これにより、Ｈ．２６４／ＡＶＣ方式を用いて、映画に含まれるフィルムノイズをも良好に表現することが可能な符号化方式となって、Ｂｌｕ−Ｒａｙ（商標）等の幅広いアプリケーションに用いられる運びとなった。
【０００７】
また、昨今、４０００×２０００画素程度の画像を圧縮したい、またはインターネットのような、限られた伝送容量の環境において、ハイビジョン画像を配信したいといった、さらなる高圧縮率符号化に対するニーズが高まっている。このため、非特許文献１のように、マクロブロックサイズを、ＭＰＥＧ２やＨ．２６４／ＡＶＣよりも大きい例えば３２画素×３２画素といった大きさとしてイントラ予測を行うことが提案されている。また、非特許文献２のように、マクロブロックサイズを、ＭＰＥＧ２やＨ．２６４／ＡＶＣよりも大きい例えば３２画素×３２画素といった大きさとしてインター予測を行うことが提案されている。
【０００８】
すなわち、非特許文献１，２では、マクロブロックについて階層構造を採用することにより、１６×１６画素ブロック以下に関しては、Ｈ．２６４／ＡＶＣにおけるマクロブロックと互換性を保ち、そのスーパーセットとして、より大きなブロックが定義されている。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】Sung-Chang Lim,Hahyun Lee,Jinho Lee,Jongho Kim,Haechul Choi,Seyoon Jeong,Jin Soo Choi“Intra coding using extended block size” (ITU−Telecommunications Standardization Sector,Study Group16 Question6, Video Coding Experts Group,38th Meeting:London,UK/Geneva,CH,1-8 July,2009,D)
【非特許文献２】Quaicomm Inc“Video Coding Using Extended Block1 Sizes” (STUDY GROUP16-CONTRIBUTION 123, ITU−Telecommunications Standardization Sector 2009年1月)
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ところで、拡張された大きさのマクロブロックを用いる場合、フレーム画像の水平方向および垂直方向の画素数によっては、拡張された大きさのマクロブロックサイズに満たない領域が画像の端部側で生じてしまう場合がある。この拡張された大きさのマクロブロックサイズに満たない領域について、拡張前のマクロブロックサイズで符号化を行うと、ブロック数が多くなり、符号化データのデータ量を少なくすることが困難となってしまう。
【００１１】
そこで、この発明では、より大きなマクロブロックを用いて符号化データのデータ量を少なくできる画像符号化装置と画像符号化方法、および画像復号化装置と画像復号化方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
この発明の第１の側面は、画像データを符号化処理する画像符号化装置において、符号化対象の画像に対してマクロブロックを順次設定したとき、マクロブロック未満のサイズとなるエッジブロックを判定するエッジブロック判定部と、前記エッジブロック判定部によりエッジブロックと判定された非正方形領域を対象として、前記エッジブロックと判定された領域のサイズである予測ブロックサイズ、または前記エッジブロックと判定された領域を水平方向と垂直方向のいずれか一方の方向に分割して得られる複数の非正方形領域のサイズである予測ブロックサイズで符号化効率を判別して、前記符号化効率が高くなる予測ブロックサイズを検出する予測処理部とを備える画像符号化装置にある。
【００１３】
この発明では、符号化対象の画像に対して所定サイズよりも大きいマクロブロックを順次設定したとき、マクロブロック未満のサイズとなるエッジブロックの判定がフレーム毎またはスライス毎に行われる。このエッジブロックと判定された例えば非正方形領域を対象として、エッジブロックと判定された領域のサイズである予測ブロックサイズ、またはエッジブロックと判定された領域を水平方向と垂直方向のいずれか一方の方向に分割して得られる複数の非正方形領域のサイズである予測ブロックサイズで符号化効率が判別されて、符号化効率が高くなる予測ブロックサイズで符号化が行われる。また、エッジブロックと判定された正方形領域および分割後に生じた正方形領域については、マクロブロックよりもサイズの小さい下層のマクロブロックについて設定されている予測ブロックサイズを用いて符号化効率の判別が行われる。さらに、符号化処理された画像データと符号化効率が高くなる予測ブロックサイズの予測処理に関する予測モード情報を可逆符号化して、符号化ストリームを生成するとき、エッジブロックであるか否かによってシンタックス要素を変更することなく、符号化ストリームが生成される。
【００１４】
この発明の第２の側面は、画像データを符号化処理する画像符号化方法において、符号化対象の画像に対してマクロブロックを順次設定したとき、マクロブロック未満のサイズとなるエッジブロックを判定するエッジブロック判定工程と、前記エッジブロックと判定された非正方形領域を対象として、前記エッジブロックと判定された領域のサイズである予測ブロックサイズ、または前記エッジブロックと判定された領域を水平方向と垂直方向のいずれか一方の方向に分割して得られる複数の非正方形領域のサイズである予測ブロックサイズで符号化効率を判別して、前記符号化効率が高くなる予測ブロックサイズを検出する予測処理工程とを設けた画像符号化方法にある。
【００１５】
この発明の第３の側面は、予測ブロックサイズで符号化が行われた画像データを復号化処理する画像復号化装置において、復号化対象画像の画像サイズと復号化処理するマクロブロックの位置に基づいて、マクロブロック未満のサイズとなるエッジブロックを判定するエッジブロック判定部と、前記エッジブロック判定部でエッジブロックと判定された場合に、画像データの復号化処理で得られるマクロブロックタイプ情報に基づき、前記エッジブロックと判定された領域を対象として、前記予測ブロックサイズが、前記エッジブロックと判定された領域または前記エッジブロックと判定された領域を水平方向と垂直方向のいずれか一方の方向に分割して得られる領域のサイズであるか判別して、該判別された予測ブロックサイズで前記画像データの復号化処理に用いる予測画像データを生成する予測処理部とを備える画像復号化装置にある。
【００１６】
この発明では、復号化対象画像の画像サイズと復号化処理するマクロブロックの位置に基づいて、マクロブロック未満のサイズとなるエッジブロックの判定がフレーム毎またはスライス毎に行われて、エッジブロックと判定された場合、画像データの復号化処理で得られるマクロブロックタイプ情報に基づき、エッジブロックと判定された領域を対象として、予測ブロックサイズがエッジブロックと判定された領域のサイズであるか、エッジブロックと判定された領域を水平方向と垂直方向のいずれか一方の方向に分割して得られる領域のサイズであるか判別されて、判別された予測ブロックサイズで画像データの復号化処理に用いる予測画像データが生成される。また、判別されたエッジブロックが正方形領域である場合に、画像データの復号化処理で得られるマクロブロックタイプ情報に基づき、エッジブロックと判定された正方形領域について、予測ブロックサイズがマクロブロックよりもサイズの小さい下層のマクロブロックについて設定されている予測ブロックサイズのいずれであるか判別されて、判別された予測ブロックサイズで画像データの復号化処理に用いる予測画像データが生成される。また、画像復号化装置では、符号化ストリームに含まれる予測ブロックサイズを示すシンタックス要素におけるその意味（セマンティックス）を、エッジブロックの判定結果に応じて切り替えることで、マクロブロックとエッジブロックにおける予測ブロックサイズの判別が行われる。
【００１７】
この発明の第４の側面は、予測ブロックサイズで符号化が行われた画像データを復号化処理する画像復号化方法において、復号化対象画像の画像サイズと復号化処理するマクロブロックの位置に基づいて、マクロブロック未満のサイズとなるエッジブロックを判定するエッジブロック判定工程と、前記エッジブロック判定行程でエッジブロックと判定された場合に、画像データの復号化処理で得られるマクロブロックタイプ情報に基づき、前記エッジブロックと判定された領域を対象として、前記予測ブロックサイズが、前記エッジブロックと判定された領域または前記エッジブロックと判定された領域を水平方向と垂直方向のいずれか一方の方向に分割して得られる領域のサイズであるか判別して、該判別された予測ブロックサイズで前記画像データの復号化処理に用いる予測画像データを生成する予測処理工程とを設けた画像復号化方法にある。
【発明の効果】
【００１８】
この発明によれば、マクロブロック未満のサイズとなるエッジブロックについて、エッジブロックと判定された領域のサイズである予測ブロックサイズと、エッジブロックと判定された領域を水平方向と垂直方向のいずれか一方の方向に分割して得られる複数の非正方形領域のサイズである予測ブロックサイズで符号化効率を判別して、符号化効率が高くなる予測ブロックサイズで画像の符号化や復号化が行われる。このため、エッジブロックについて、サイズの小さい下層のマクロブロックの予測ブロックサイズが用いられて、エッジブロックが数多くのブロックに分割されて符号化されることを防止して、より大きなマクロブロックを用いて符号化データのデータ量を少なくすることが可能となる。
【図面の簡単な説明】
【００１９】
【図１】画像符号化装置の構成を示す図である。
【図２】ＬＭＢ動き予測・補償部の構成を示す図である。
【図３】予測ブロックサイズ（動き補償ブロックサイズ）を示した図である。
【図４】エッジブロックを説明するための図である。
【図５】エッジブロックについて従来のマクロブロックを設定した場合を例示した図である。
【図６】マクロブロックが３２×３２画素である場合を説明するための図である。
【図７】マクロブロックを６４×６４画素に設定したときのエッジブロックを示している。
【図８】マクロブロックが６４×６４画素である場合を説明するための図である。
【図９】マクロブロックが６４×６４画素である他の場合を説明するための図である。
【図１０】画像符号化処理動作を示すフローチャートである。
【図１１】予測処理を示すフローチャートである。
【図１２】イントラ予測処理を示すフローチャートである。
【図１３】インター予測処理を示すフローチャートである。
【図１４】ＬＭＢインター予測処理を示すフローチャートである。
【図１５】画像復号化装置の構成を示している。
【図１６】ＬＭＢ動き予測・補償部の構成を示す図である。
【図１７】画像復号化処理動作を示すフローチャートである。
【図１８】予測処理を示すフローチャートである。
【図１９】ＬＭＢ動き予測・補償部で行われるインター予測処理を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、発明を実施するための形態について説明する。なお、説明は以下の順序で行う。
１．画像符号化装置の構成
２．ＬＭＢ動き予測・補償部の構成
３．マクロブロックについて
４．画像符号化装置の動作
５．画像復号化装置の構成
６．ＬＭＢ動き予測・補償部の構成
７．画像復号化装置の動作
【００２１】
＜１．画像符号化装置の構成＞
図１は、画像符号化装置の構成を示している。画像符号化装置１０は、アナログ／ディジタル変換部（Ａ／Ｄ変換部）１１、画面並び替えバッファ１２、減算部１３、直交変換部１４、量子化部１５、可逆符号化部１６、蓄積バッファ１７、レート制御部１８を有している。さらに、画像符号化装置１０は、逆量子化部２１、逆直交変換部２２、加算部２３、デブロッキングフィルタ２４、フレームメモリ２５、セレクタ２６、ＡＶＣイントラ予測部３１、ＬＭＢイントラ予測部３２、ＡＶＣ動き予測・補償部３３、エッジＬＭＢ判定部３４、ＬＭＢ動き予測・補償部３５、予測画像・最適モード選択部３６を有している。
【００２２】
Ａ／Ｄ変換部１１は、アナログの画像信号をディジタルの画像データに変換して画面並べ替えバッファ１２に出力する。
【００２３】
画面並べ替えバッファ１２は、Ａ／Ｄ変換部１１から出力された画像データに対してフレームの並べ替えを行う。画面並べ替えバッファ１２は、符号化処理に係るＧＯＰ（Group of Pictures）構造に応じてフレームの並べ替えを行い、並べ替え後の画像データを減算部１３，ＡＶＣイントラ予測部３１，ＬＭＢイントラ予測部３２，ＡＶＣ動き予測・補償部３３およびＬＭＢ動き予測・補償部３５に出力する。
【００２４】
減算部１３には、画面並べ替えバッファ１２から出力された画像データと、後述する予測画像・最適モード選択部３６で選択された予測画像データが供給される。減算部１３は、画面並べ替えバッファ１２から出力された画像データと予測画像・最適モード選択部３６から供給された予測画像データとの差分である予測誤差データを算出して、直交変換部１４に出力する。
【００２５】
直交変換部１４は、減算部１３から出力された予測誤差データに対して、離散コサイン変換（DCT；Discrete Cosine Transform）、カルーネン・レーベ変換等の直交変換処理を行う。直交変換部１４は、直交変換処理を行うことにより得られた変換係数データを量子化部１５に出力する。
【００２６】
量子化部１５には、直交変換部１４から出力された変換係数データと、後述するレート制御部１８からレート制御信号が供給されている。量子化部１５は変換係数データの量子化を行い、量子化データを可逆符号化部１６と逆量子化部２１に出力する。また、量子化部１５は、レート制御部１８からのレート制御信号に基づき量子化パラメータ（量子化スケール）を切り替えて、量子化データのビットレートを変化させる。
【００２７】
可逆符号化部１６には、量子化部１５から出力された量子化データと、後述するＡＶＣイントラ予測部３１、ＬＭＢイントラ予測部３２、ＡＶＣ動き予測・補償部３３、ＬＭＢ動き予測・補償部３５、予測画像・最適モード選択部３６から出力された予測モード情報が供給される。なお、予測モード情報には、イントラ予測またはインター予測に応じて、予測モードや予測ブロックサイズ、動きベクトル情報、参照ピクチャ情報等が含まれる。
【００２８】
可逆符号化部１６は、量子化データに対して例えば可変長符号化、または算術符号化等により可逆符号化処理を行い、符号化ストリームを生成して蓄積バッファ１７に出力する。また、可逆符号化部１６は、予測モード情報を可逆符号化して、符号化ストリームのヘッダ情報に付加する。
【００２９】
蓄積バッファ１７は、可逆符号化部１６からの符号化ストリームを蓄積する。また、蓄積バッファ１７は、蓄積した符号化ストリームを伝送路に応じた伝送速度で出力する。
【００３０】
レート制御部１８は、蓄積バッファ１７の空き容量の監視を行い、空き容量に応じてレート制御信号を生成して量子化部１５に出力する。レート制御部１８は、例えば蓄積バッファ１７から空き容量を示す情報を取得する。レート制御部１８は空き容量が少なくなっているとき、レート制御信号によって量子化データのビットレートを低下させる。また、レート制御部１８は蓄積バッファ１７の空き容量が十分大きいとき、レート制御信号によって量子化データのビットレートを高くする。
【００３１】
逆量子化部２１は、量子化部１５から供給された量子化データの逆量子化処理を行う。逆量子化部２１は、逆量子化処理を行うことで得られた変換係数データを逆直交変換部２２に出力する。
【００３２】
逆直交変換部２２は、逆量子化部２１から供給された変換係数データの逆直交変換処理を行うことで得られたデータを加算部２３に出力する。
【００３３】
加算部２３は、逆直交変換部２２から供給されたデータと予測画像・最適モード選択部３６から供給された予測画像データを加算して復号画像データを生成して、デブロッキングフィルタ２４とフレームメモリ２５に出力する。
【００３４】
デブロッキングフィルタ２４は、画像の符号化時に生じるブロック歪みを減少させるためのフィルタ処理を行う。デブロッキングフィルタ２４は、加算部２３から供給された復号画像データからブロック歪みを除去するフィルタ処理を行い、フィルタ処理後の復号画像データをフレームメモリ２５に出力する。
【００３５】
フレームメモリ２５は、加算部２３から供給された復号画像データとデブロッキングフィルタ２４から供給されたフィルタ処理後の復号画像データとを保持する。
【００３６】
セレクタ２６は、イントラ予測を行うためフレームメモリ２５から読み出したフィルタ処理前の復号画像データをＡＶＣイントラ予測部３１やＬＭＢイントラ予測部３２に供給する。また、セレクタ２６は、インター予測を行うためフレームメモリ２５から読み出したフィルタ処理後の復号画像データを、ＡＶＣ動き予測・補償部３３やＬＭＢ動き予測・補償部３５に供給する。
【００３７】
ＡＶＣイントラ予測部３１は、画面並べ替えバッファ１２から出力された符号化対象画像の画像データとセレクタ２６を介して供給された復号画像データに基づいて、Ｈ．２６４／ＡＶＣ方式で規定されている各イントラ予測モードのイントラ予測処理を行う。ＡＶＣイントラ予測部３１は、各イントラ予測モードでコスト関数値を算出して、算出したコスト関数値が最小となるイントラ予測モード、すなわち符号化効率が最も高くなるイントラ予測モードを、最適イントラ予測モードとして選択する。さらに、ＡＶＣイントラ予測部３１は、ＡＶＣ最適イントラ予測モードで生成された予測画像データとコスト関数値および予測モード情報を予測画像・最適モード選択部３６に出力する。
【００３８】
ＬＭＢイントラ予測部３２は、画面並べ替えバッファ１２から出力された符号化対象画像の画像データとセレクタ２６を介して供給された復号画像データに基づいて、Ｈ．２６４／ＡＶＣ方式で規定されている各イントラ予測モードよりもサイズの大きいマクロブロックでイントラ予測処理を行う。ＬＭＢイントラ予測部３２は、各イントラ予測モードでコスト関数値を算出して、算出したコスト関数値が最小となるイントラ予測モード、すなわち符号化効率が最も高くなるイントラ予測モードを、ＬＭＢ最適イントラ予測モードとして選択する。さらに、ＬＭＢイントラ予測部３２は、ＬＭＢ最適イントラ予測モードで生成された予測画像データとコスト関数値および予測モード情報を予測画像・最適モード選択部３６に出力する。なお、ＬＭＢイントラ予測部３２とＬＭＢ動き予測・補償部３５で用いられるマクロブロックについては後述する。
【００３９】
ＡＶＣ動き予測・補償部３３は、画面並べ替えバッファ１２から出力された符号化対象画像の画像データとセレクタ２６を介して供給された復号画像データに基づいて、Ｈ．２６４／ＡＶＣ方式で規定されている各予測ブロックサイズ（動き補償ブロックサイズ）の動き予測・補償処理を行う。また、ＡＶＣ動き予測・補償部３３は、各予測ブロックサイズでコスト関数値を算出して、算出したコスト関数値が最小となる予測ブロックサイズ、すなわち符号化効率が最も高くなる予測ブロックサイズを、ＡＶＣ最適インター予測モードとして選択する。ＡＶＣ動き予測・補償部３３は、ＡＶＣ最適インター予測モードで生成された予測画像データとコスト関数値および予測モード情報を予測画像・最適モード選択部３６に出力する。なお、ＡＶＣ動き予測・補償部３３は、画面並べ替えバッファ１２から読み出された符号化対象画像の画像データと、フレームメモリ２５から供給される参照画像データ（復号画像データ）に基づいて動きベクトルを検出する。ＡＶＣ動き予測・補償部３３は、この動きベクトルに基づいて参照画像データの動き補償処理を施して予測画像データの生成を行う。
【００４０】
エッジＬＭＢ判定部３４は、符号化対象の画像に対してマクロブロックを順次設定したとき、マクロブロック未満のサイズとなるエッジブロックの判定を行う。エッジＬＭＢ判定部３４は、入力画像の右上隅の位置から順次マクロブロックを設定したとき、入力画像の左端および下端でブロックサイズがマクロブロック未満であるブロック（以下「エッジブロック」という）を判定する。エッジＬＭＢ判定部３４は、エッジブロックの判定結果をＬＭＢ動き予測・補償部３５に出力する。エッジＬＭＢ判定部３４は、例えば符号化対象の画像の水平方向および垂直方向の画素数と、順次設定されるマクロブロックのアドレス情報を用いることで、ブロックサイズがマクロブロック未満であるエッジブロックを判定できる。また、１つのピクチャで異なる種類のスライスを設けることが可能である場合、予測モードの切り替えはフレーム単位だけでなくスライス単位で可能である。したがって、このような場合、エッジブロックの判定は、フレーム毎だけでなくスライス毎に行う。
【００４１】
ＬＭＢ動き予測・補償部３５は、画面並べ替えバッファ１２から出力された符号化対象画像の画像データと、セレクタ２６を介して供給された復号画像データに基づいて、Ｈ．２６４／ＡＶＣ方式で規定されているマクロブロックよりも大きなマクロブロックを用いたときの動き予測・補償処理を行う。また、ＬＭＢ動き予測・補償部３５は、各予測ブロックサイズ（動き補償ブロックサイズ）でコスト関数値を算出して、算出したコスト関数値が最小となる予測ブロックサイズ、すなわち符号化効率が最も高くなる予測ブロックサイズを、ＬＭＢ最適インター予測モードとして選択する。さらに、ＬＭＢ動き予測・補償部３５は、最適インター予測モードで生成された予測画像データとコスト関数値および予測モード情報を予測画像・最適モード選択部３６に出力する。なお、ＬＭＢ動き予測・補償部３５は、ＡＶＣ動き予測・補償部３３と同様にして予測画像の生成を行う。
【００４２】
予測画像・最適モード選択部３６は、ＡＶＣイントラ予測部３１とＬＭＢイントラ予測部３２とＡＶＣ動き予測・補償部３３およびＬＭＢ動き予測・補償部３５から供給されたコスト関数値を比較する。予測画像・最適モード選択部３６は、コスト関数値の比較結果に基づき、コスト関数値が最も少ない予測モードすなわち符号化効率が最も高くなる予測モードを最適モードとして選択する。また、予測画像・最適モード選択部３６は、最適モードで生成されている予測画像データを減算部１３と加算部２３に出力する。さらに、予測画像・最適モード選択部３６は、最適モードの予測モード情報を可逆符号化部１６に出力する。
【００４３】
＜２．ＬＭＢ動き予測・補償部の構成＞
図２は、ＬＭＢ動き予測・補償部３５の構成を示している。ＬＭＢ動き予測・補償部３５は、動き探索部３５１、コスト関数値算出部３５２、モード判定部３５３、動き補償部３５４を有している。
【００４４】
動き探索部３５１は、マクロブロックの画像データと、フレームメモリ２５に記憶されているフィルタ処理後の復号画像データを用いて動き探索を行い、動きベクトルを検出する。また、動き探索部３５１は、予測ブロックサイズ毎に動きベクトルの検出を行う。
【００４５】
コスト関数値算出部３５２は、予測ブロックサイズ毎のコスト関数値の算出、およびスキップド・マクロブロックやダイレクトモードの予測モードにおけるコスト関数値の算出を行う。
【００４６】
モード判定部３５３は、予測ブロックサイズ毎および予測モード毎に求めたコスト関数値から、マクロブロック単位のコスト関数値が最小となる予測ブロックサイズ、または予測モードを選択して、ＬＭＢ最適インター予測モードを判定する。
【００４７】
動き補償部３５４は、動き探索部３５１で検出された動きベクトルと、フレームメモリ２５に記憶されているフィルタ処理後の復号画像データを用いて予測画像データを生成する。動き補償部３５４は、生成した予測画像データとコスト関数値およびＬＭＢ最適インター予測モードに関する予測モード情報を予測画像・最適モード選択部３６に出力する。
【００４８】
＜３．マクロブロックについて＞
図３は、画像符号化処理で用いる予測ブロックサイズ（動き補償ブロックサイズ）を示している。Ｈ．２６４／ＡＶＣ方式では、図３の（Ｃ）（Ｄ）に示すように１６×１６画素〜４×４画素のブロックサイズが規定されている。また、Ｈ．２６４／ＡＶＣ方式よりも大きなサイズのマクロブロックを用いる場合、例えば３２×３２画素のマクロブロック（ＬＭＢ３２）を用いる場合、図３の（Ｂ）に示すブロックサイズが規定される。また、例えば６４×６４画素のマクロブロック（ＬＭＢ６４）を用いる場合、図３の（Ａ）に示すブロックサイズが規定される。
【００４９】
さらに、マクロブロックを大きくすると、符号化対象画像の左上隅の位置から順次マクロブロックを水平方向および垂直方向に設定したとき、右端部や下端部の位置で、画素数がマクロブロックサイズ未満となるエッジブロックを生じる場合がある。
【００５０】
例えば、フレーム画像の水平方向および垂直方向の画素数が、Ｈ．２６４／ＡＶＣ方式におけるマクロブロックである１６×１６画素の整数倍であるとする。この場合、マクロブロックを３２×３２画素とすると、フレーム画像の左上隅の位置から順次マクロブロックを設定したとき、一方の辺が１６画素の幅を有するエッジブロックが生じる場合がある。例えば、図４の（Ａ）では、右端部と下端部で一方の辺が１６画素であるエッジブロックが生じた場合を示している。また、マクロブロックを６４×６４画素とすると、フレーム画像の左上隅の位置から順次マクロブロックを設定したとき、一方の辺が１６画素，３２画素，４８画素であるエッジブロックを生じる場合がある。例えば、図４の（Ｂ）では、右端部と下端部で一方の辺が１６画素であるエッジブロックが生じた場合を示している。また、図４の（Ｃ）では、右端部と下端部で一方の辺が３２画素であるエッジブロックを生じた場合、図４の（Ｄ）では、右端部と下端部で一方の辺が４８画素であるエッジブロックを生じた場合を示している。
【００５１】
ここで、エッジブロックについては１６×１６画素以下の予測ブロックサイズを設定することでＨ．２６４／ＡＶＣ方式と同様に動き補償を行うことができる。しかし、予測ブロックサイズを１６×１６画素以下とすると、図５の（Ａ）〜（Ｃ）で例示するように、エッジブロックにおける予測ブロック数が多くなって、符号化データのデータ量を少なくことが困難となる。例えば、１６×１６画素よりも大きい予測ブロックサイズで動き補償を行ったときコスト関数値が小さくなる場合でも、ブロックサイズが１６×１６画素以下であることから、符号化データのデータ量を少なくことが困難となる。
【００５２】
したがって、この発明では、例えばＨ．２６４／ＡＶＣ方式よりも大きなサイズのマクロブロックを用いる場合、エッジブロックと判定された非正方形領域を対象として、エッジブロックと判定された領域のサイズである予測ブロックサイズ、またはエッジブロックと判定された領域を水平方向と垂直方向のいずれか一方の方向に分割して得られる複数の非正方形領域のサイズである予測ブロックサイズを含めて、ＬＭＢ最適インター予測モードの判定を行うようにする。また、エッジブロックと判定された正方形領域および分割後に生じた正方形領域については、マクロブロックよりもサイズの小さい下層のマクロブロックについて設定されている予測ブロックサイズを含めて、ＬＭＢ最適インター予測モードの判定を行えるようする。なお、図６，図８，図９は、エッジブロックと判定された領域のサイズである予測ブロックサイズと、エッジブロックと判定された領域を水平方向と垂直方向のいずれか一方の方向に分割して得られる複数の非正方形領域のサイズである予測ブロックサイズを含めて予測を行う場合を示している。
【００５３】
図６は、マクロブロックが３２×３２画素である場合を示している。図６の（Ａ）は、マクロブロックを３２×３２画素に設定した場合を示している。マクロブロックを３２×３２画素に設定した場合の予測ブロックサイズは、３２×３２画素のブロックＡ、３２×１６画素のブロックＢ、１６×３２画素のブロックＣとする。このように、予測ブロックサイズを設定すれば、エッジブロックを対象として１６×１６画素よりも大きいブロックを設定できる。なお、斜線部が従来のマクロブロック１６×１６画素の領域を示している（図８，図９も同様）。
【００５４】
図６の（Ｂ）は、ブロックＡ，Ｂ，Ｃに対するマクロブロックタイプmb32_typeを示している。３２×３２画素のブロックＡについて、マクロブロックタイプ「０」は、スキップド・マクロブロックとよばれているマクロブロックモードまたはダイレクトモードであることを示している（ＳＤ３２×３２）。マクロブロックタイプ「１」は３２×３２画素のブロックサイズで動き補償を行うことを示している（ＭＥ３２×３２）。マクロブロックタイプ「２」は、ブロックＡを３２×１６画素の２つのブロックとして、ブロック毎に動き補償を行うことを示している（ＭＥ３２×１６）。マクロブロックタイプ「３」はブロックＡを１６×３２画素の２つのブロックとしてブロック毎に動き補償を行うことを示している（ＭＥ１６×３２）。マクロブロックタイプ「４」は、図３と同様に、下層のブロックサイズに分割することを示している（Ｐ８×８）。
【００５５】
エッジブロックである３２×１６画素のブロックＢについて、マクロブロックタイプ「０」は、スキップド・マクロブロックとよばれているマクロブロックモードまたはダイレクトモードであることを示している（ＳＤ３２×１６）。マクロブロックタイプ「１」は３２×１６画素のブロックサイズで動き補償を行うことを示している（ＭＥ３２×１６）。マクロブロックタイプ「４」は、下層のブロックサイズに分割することを示している（Ｐ８×８）。なお、図６の（Ｃ）は、ブロックＢを示している。
【００５６】
エッジブロックである１６×３２画素のブロックＣについて、マクロブロックタイプ「０」は、スキップド・マクロブロックとよばれているマクロブロックモードまたはダイレクトモードであることを示している（ＳＤ１６×３２）。マクロブロックタイプ「１」は１６×３２画素のブロックサイズで動き補償を行うことを示している（ＭＥ１６×３２）。マクロブロックタイプ「４」は、下層のブロックサイズに分割することを示している（Ｐ８×８）。なお、図６の（Ｄ）は、ブロックＣを示している。
【００５７】
また、図６の右下のエッジブロックである正方形領域については、マクロブロックよりもサイズの小さい下層のマクロブロック（１６×１６画素）について図３の（Ｃ）（Ｄ）に示すように設定されている予測ブロックサイズを用いる。
【００５８】
図７は、マクロブロックを６４×６４画素に設定したときのエッジブロックを示している。フレーム画像の水平方向および垂直方向の画素数が、Ｈ．２６４／ＡＶＣ方式におけるマクロブロックである１６×１６画素の整数倍である場合、マクロブロックを６４×６４画素とすると、フレーム画像の左上隅の位置から順次マクロブロックを設定したとき、図７の（Ａ）に示すように１６画素の幅を有するエッジブロック、図７の（Ｂ）に示すように３２画素の幅を有するエッジブロック、図７の（Ｃ）に示すように４８画素の幅を有するエッジブロックを生じる場合がある。また、４８画素の幅を有するエッジブロックは、図７の（Ｄ）に示すように、図７の（Ａ），（Ｂ）で示すエッジブロックで表現できる。したがって、図７の（Ｃ），（Ｄ）に対して、マクロブロックタイプを設定しておけば、図７の（Ａ），（Ｂ）について、マクロブロックタイプを設定しておく必要がない。
【００５９】
図８の（Ａ）は、マクロブロックを６４×６４画素に設定した場合を示している。マクロブロックを６４×６４画素に設定した場合の可変ブロックサイズは、６４×６４画素のブロックＤ、６４×３２画素のブロックＥ、６４×１６画素のブロックＦ、３２×６４画素のブロックＧ、１６×６４画素のブロックＨとする。このように、可変ブロックサイズを設定すれば、エッジブロックを対象として１６×１６画素よりも大きいブロックを設定できる。なお、図８の（Ａ）において、ブロックＡ，Ｂ，Ｃは、図６に示す場合と同様である。
【００６０】
図８の（Ｂ）は、ブロックＤ，Ｅ，Ｆ，Ｇ，Ｈに対するマクロブロックタイプmb64_typeを示している。６４×６４画素のブロックＤについて、マクロブロックタイプ「０」は、スキップド・マクロブロックとよばれているマクロブロックモードまたはダイレクトモードであることを示している（ＳＤ６４×６４）。マクロブロックタイプ「１」は６４×６４画素のブロックサイズで動き補償を行うことを示している（ＭＥ６４×６４）。マクロブロックタイプ「２」は、ブロックＤを６４×３２画素の２つのブロックとして、ブロック毎に動き補償を行うことを示している（ＭＥ６４×３２）。マクロブロックタイプ「３」はブロックＡを３２×６４画素の２つのブロックとしてブロック毎に動き補償を行うことを示している（ＭＥ３２×６４）。マクロブロックタイプ「４」は、下層のブロックサイズに分割することを示している（Ｐ８×８）。
【００６１】
エッジブロックを分割した領域である６４×３２画素のブロックＥについて、マクロブロックタイプ「０」は、スキップド・マクロブロックとよばれているマクロブロックモードまたはダイレクトモードであることを示している（ＳＤ６４×３２）。マクロブロックタイプ「１」は６４×３２画素のブロックサイズで動き補償を行うことを示している（ＭＥ６４×３２）。マクロブロックタイプ「４」は、下層のブロックサイズに分割することを示している（Ｐ８×８）。なお、図８の（Ｃ）は、ブロックＥを示している。
【００６２】
エッジブロックを分割した領域である６４×１６画素のブロックＦについて、マクロブロックタイプ「０」は、スキップド・マクロブロックとよばれているマクロブロックモードまたはダイレクトモードであることを示している（ＳＤ６４×１６）。マクロブロックタイプ「１」は６４×１６画素のブロックサイズで動き補償を行うことを示している（ＭＥ６４×１６）。マクロブロックタイプ「４」は、下層のブロックサイズに分割することを示している（Ｐ８×８）。なお、図８の（Ｄ）は、ブロックＦを示している。
【００６３】
エッジブロックを分割した領域である３２×６４画素のブロックＧについて、マクロブロックタイプ「０」は、スキップド・マクロブロックとよばれているマクロブロックモードまたはダイレクトモードであることを示している（ＳＤ３２×６４）。マクロブロックタイプ「１」は３２×６４画素のブロックサイズで動き補償を行うことを示している（ＭＥ３２×６４）。マクロブロックタイプ「４」は、下層のブロックサイズに分割することを示している（Ｐ８×８）。なお、図８の（Ｅ）は、ブロックＧを示している。
【００６４】
エッジブロックを分割した領域である１６×６４画素のブロックＨについて、マクロブロックタイプ「０」は、スキップド・マクロブロックとよばれているマクロブロックモードまたはダイレクトモードであることを示している（ＳＤ１６×６４）。マクロブロックタイプ「１」は１６×６４画素のブロックサイズで動き補償を行うことを示している（ＭＥ１６×６４）。マクロブロックタイプ「４」は、下層のブロックサイズに分割することを示している（Ｐ８×８）。なお、図８の（Ｆ）は、ブロックＨを示している。
【００６５】
また、図８の右下のエッジブロックである正方形領域および分割後に生じた正方形領域については、マクロブロックよりもサイズの小さい下層のマクロブロックについて設定されている予測ブロックサイズを用いる。
【００６６】
図９の（Ａ）は、マクロブロックを６４×６４画素に設定した他の場合を示している。マクロブロックを６４×６４画素に設定した場合の可変ブロックサイズは、６４×６４画素のブロックＤ、６４×４８画素のブロックＥ２、４８×６４画素のブロックＧ２とする。このように、可変ブロックサイズを設定すれば、エッジブロックを対象として１６×１６画素よりも大きいブロックを設定できる。なお、図９の（Ａ）において、ブロックＡ，Ｂ，Ｃは、図６に示す場合と同様である。
【００６７】
図９の（Ｂ）は、ブロックＤ，Ｅ２，Ｇ２に対するマクロブロックタイプmb64_typeを示している。なお、ブロックＤは、図８と同様である。
【００６８】
エッジブロックである６４×４８画素のブロックＥ２について、マクロブロックタイプ「０」は、スキップド・マクロブロックとよばれているマクロブロックモードまたはダイレクトモードであることを示している（ＳＤ６４×４８）。マクロブロックタイプ「１」は６４×４８画素のブロックサイズで動き補償を行うことを示している（ＭＥ６４×４８）。マクロブロックタイプ「２」は６４×４８画素のブロックを６４×３２画素と６４×１６画像のブロックとして動き補償を行うことを示している（ＭＥ６４×３２／６４×１６）。マクロブロックタイプ「３」は、６４×４８画素のブロックを３２×４８画素の２つブロックとして動き補償を行うことを示している（ＭＥ３２×４８）。マクロブロックタイプ「４」は、下層のブロックサイズに分割することを示している（Ｐ８×８）。なお、図９の（Ｃ）は、ブロックＥ２を示している。
【００６９】
エッジブロックである６４×４８画素のブロックＧ２について、マクロブロックタイプ「０」は、スキップド・マクロブロックとよばれているマクロブロックモードまたはダイレクトモードであることを示している（ＳＤ４８×６４）。マクロブロックタイプ「１」は４８×６４画素のブロックサイズで動き補償を行うことを示している（ＭＥ４８×６４）。マクロブロックタイプ「２」は４８×６４画素のブロックを４８×３２画素の２つのブロックとして動き補償を行うことを示している（ＭＥ４８×３２）。マクロブロックタイプ「３」は、４８×６４画素のブロックを３２×６４画素と１６×６４のブロックとして動き補償を行うことを示している（ＭＥ３２×６４／１６×６４）。マクロブロックタイプ「４」は、下層のブロックサイズに分割することを示している（Ｐ８×８）。なお、図９の（Ｄ）は、ブロックＧ２を示している。
【００７０】
また、図９の右下のエッジブロックである正方形領域および分割後に生じた正方形領域については、マクロブロックよりもサイズの小さい下層のマクロブロックについて設定されている予測ブロックサイズを用いる。
【００７１】
＜４．画像符号化装置の動作＞
次に、画像符号化処理動作について説明する。図１０は、画像符号化処理動作を示すフローチャートである。ステップＳＴ１１において、Ａ／Ｄ変換部１１は入力された画像信号をＡ／Ｄ変換する。
【００７２】
ステップＳＴ１２において画面並べ替えバッファ１２は、画面並べ替えを行う。画面並べ替えバッファ１２は、Ａ／Ｄ変換部１１より供給された画像データを記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
【００７３】
ステップＳＴ１３において減算部１３は、予測誤差データの生成を行う。減算部１３は、ステップＳＴ１２で並び替えられた画像の画像データと予測画像・最適モード選択部３６で選択された予測画像データとの差分を算出して予測誤差データを生成する。予測誤差データは、元の画像データに比べてデータ量が小さい。したがって、画像データをそのまま符号化する場合に比べて、データ量を圧縮することができる。なお、予測画像・最適モード選択部３６で予測画像の選択がスライス単位で行われるとき、ＡＶＣイントラ予測部３１やＬＭＢイントラ予測部３２から供給された予測画像が選択されたスライスでは、イントラ予測が行われることになる。また、ＡＶＣ動き予測・補償部３３やＬＭＢ動き予測・補償部３５からの予測画像が選択されたスライスでは、インター予測が行われることになる。
【００７４】
ステップＳＴ１４において直交変換部１４は、直交変換処理を行う。直交変換部１４は、減算部１３から供給された予測誤差データを直交変換する。具体的には、予測誤差データに対して離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数データが出力される。
【００７５】
ステップＳＴ１５において量子化部１５は、量子化処理を行う。量子化部１５は、変換係数データを量子化する。量子化に際しては、後述するステップＳＴ２５の処理で説明されるように、レート制御が行われる。
【００７６】
ステップＳＴ１６において逆量子化部２１は、逆量子化処理を行う。逆量子化部２１は、量子化部１５により量子化された変換係数データを量子化部１５の特性に対応する特性で逆量子化する。
【００７７】
ステップＳＴ１７において逆直交変換部２２は、逆直交変換処理を行う。逆直交変換部２２は、逆量子化部２１により逆量子化された変換係数データを直交変換部１４の特性に対応する特性で逆直交変換する。
【００７８】
ステップＳＴ１８において加算部２３は、復号画像データの生成を行う。加算部２３は、予測画像・最適モード選択部３６から供給された予測画像データと、この予測画像と対応する位置の逆直交変換後のデータを加算して、復号画像データを生成する。
【００７９】
ステップＳＴ１９においてデブロッキングフィルタ２４は、フィルタ処理を行う。デブロッキングフィルタ２４は、加算部２３より出力された復号画像データをフィルタリングしてブロック歪みを除去する。
【００８０】
ステップＳＴ２０においてフレームメモリ２５は、復号画像データを記憶する。フレームメモリ２５は、フィルタ処理前の復号画像データとフィルタ処理後の復号画像データを記憶する。
【００８１】
ステップＳＴ２１において、ＡＶＣイントラ予測部３１、ＬＭＢイントラ予測部３２、ＡＶＣ動き予測・補償部３３、ＬＭＢ動き予測・補償部３５は、それぞれ予測処理を行う。すなわち、ＡＶＣイントラ予測部３１とＬＭＢイントラ予測部３２は、イントラ予測モードのイントラ予測処理を行い、ＡＶＣ動き予測・補償部３３とＬＭＢ動き予測・補償部３５は、インター予測モードの動き予測・補償処理を行う。この処理により、ＡＶＣイントラ予測部３１とＬＭＢイントラ予測部３２は、最適イントラ予測モードを選択して、最適イントラ予測モードで生成した予測画像とそのコスト関数値と予測モード情報を予測画像・最適モード選択部３６に供給する。また、ＡＶＣ動き予測・補償部３３とＬＭＢ動き予測・補償部３５は、最適インター予測モードを選択して、最適インター予測モードで生成した予測画像とそのコスト関数値と予測モード情報を予測画像・最適モード選択部３６に供給する。なお、予測処理の詳細は、図１１を参照して後述する。
【００８２】
ステップＳＴ２２において、予測画像・最適モード選択部３６は、予測画像データの選択を行う。予測画像・最適モード選択部３６は、ＡＶＣイントラ予測部３１、ＬＭＢイントラ予測部３２、ＡＶＣ動き予測・補償部３３およびＬＭＢ動き予測・補償部３５より出力された各コスト関数値に基づいて、コスト関数値が最小となる最適モードを選択する。さらに、予測画像・最適モード選択部３６は、選択した最適モードの予測画像データを減算部１３と加算部２３に供給する。この予測画像データが、上述したように、ステップＳＴ１３，ＳＴ１８の演算に利用される。また、最適モードに関する情報が可逆符号化部１６に供給される。
【００８３】
ステップＳＴ２３において可逆符号化部１６は、可逆符号化処理を行う。可逆符号化部１６は、量子化部１５より出力された量子化データを可逆符号化する。すなわち、量子化データに対して可変長符号化や算術符号化等の可逆符号化が行われて、データ圧縮される。このとき、上述したステップＳＴ２２において可逆符号化部１６に入力された予測モード情報（例えば予測モードや予測ブロックサイズ、動きベクトル情報、参照ピクチャ情報等を含む）なども可逆符号化される。さらに、量子化データを可逆符号化して生成された符号化ストリームのヘッダ情報に、予測モード情報の可逆符号化データが付加される。
【００８４】
ステップＳＴ２４において蓄積バッファ１７は、符号化ストリームを蓄積する。この蓄積バッファ１７に蓄積された符号化ストリームは適宜読み出され、伝送路を介して復号側に伝送される。
【００８５】
ステップＳＴ２５においてレート制御部１８は、レート制御を行う。レート制御部１８は、蓄積バッファ１７で符号化ストリームを蓄積するとき、オーバーフローまたはアンダーフローが蓄積バッファ１７で発生しないように、量子化部１５の量子化動作のレートを制御する。
【００８６】
次に、図１１のフローチャートを参照して、図１０のステップＳＴ２１における予測処理を説明する。
【００８７】
ステップＳＴ３１において、ＡＶＣイントラ予測部３１とＬＭＢイントラ予測部３２はイントラ予測処理を行う。ＡＶＣイントラ予測部３１は処理対象のブロックの画像を、候補となる全てのイントラ予測モードでイントラ予測する。なお、イントラ予測において参照される復号画像の画像データは、デブロッキングフィルタ２４によりフィルタ処理が行われることなくフレームメモリ２５に記憶されている復号画像データが用いられる。イントラ予測処理の詳細は後述するが、この処理により、候補となる全てのイントラ予測モードでイントラ予測が行われ、候補となる全てのイントラ予測モードでコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、全てのイントラ予測モードの中から、符号化効率が最も高くなる１つのイントラ予測モードが選択される。
【００８８】
ＬＭＢイントラ予測部３２は処理対象のブロックの画像を、候補となる全てのイントラ予測モードでイントラ予測する。なお、参照される復号画像の画像データは、デブロッキングフィルタ２４によりフィルタ処理が行われることなくフレームメモリ２５に記憶されている復号画像データが用いられる。この処理により、候補となる全てのイントラ予測モードでイントラ予測が行われ、候補となる全てのイントラ予測モードでコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、全てのイントラ予測モードの中から、符号化効率が最も高くなる１つのイントラ予測モードが選択される。
【００８９】
ステップＳＴ３２において、ＡＶＣ動き予測・補償部３３とＬＭＢ動き予測・補償部３５はインター予測処理を行う。ＡＶＣ動き予測・補償部３３は、フレームメモリ２５に記憶されているフィルタ処理後の復号画像データを用いて、候補となる全てのインター予測モード（全ての予測ブロックサイズ）のインター予測処理を行う。インター予測処理の詳細は後述するが、この処理により、候補となる全てのインター予測モードで予測処理が行われ、候補となる全てのインター予測モードでコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、全てのインター予測モードの中から、符号化効率が最も高くなる１つのインター予測モードが選択される。
【００９０】
ＬＭＢ動き予測・補償部３５は、フレームメモリ２５に記憶されているフィルタ処理後の復号画像データを用いて、候補となる全てのインター予測モード（全ての予測ブロックサイズ）のインター予測処理を行う。この処理により、候補となる全てのインター予測モードで予測処理が行われ、候補となる全てのインター予測モードでコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、全てのインター予測モードの中から、符号化効率が最も高くなる１つのインター予測モードが選択される。
【００９１】
次に、図１１のステップＳＴ３１におけるイントラ予測処理について図１２のフローチャートを参照して説明する。
【００９２】
ステップＳＴ４１でＡＶＣイントラ予測部３１とＬＭＢイントラ予測部３２は、各予測モードのイントラ予測を行う。ＡＶＣイントラ予測部３１とＬＭＢイントラ予測部３２は、フレームメモリ２５に記憶されているフィルタ処理前の復号画像データを用いて、イントラ予測モード毎に予測画像データを生成する。
【００９３】
ステップＳＴ４２でＡＶＣイントラ予測部３１とＬＭＢイントラ予測部３２は、各予測モードに対するコスト関数値を算出する。コスト関数値としては、Ｈ．２６４／ＡＶＣ方式における参照ソフトウェアであるＪＭ(Joint Model)で定められているように、High Complexity モードか、Low Complexity モードのいずれかの手法に基づいて行う。
【００９４】
すなわち、High Complexity モードにおいては、ステップＳＴ４１の処理として、候補となる全ての予測モードで、仮に可逆符号化処理までを行い、次の式（１）で表されるコスト関数値を各予測モードについて算出する。
Cost(Mode∈Ω)=Ｄ+λ・Ｒ            ・・・（１）
【００９５】
Ωは、当該ブロック乃至マクロブロックを符号化するための候補となる予測モードの全体集合を示している。Ｄは、予測モードで符号化を行った場合の復号画像と入力画像との差分エネルギー（歪み）を示している。Ｒは、直交変換係数や予測モード情報等を含んだ発生符号量、λは、量子化パラメータＱＰの関数として与えられるラグランジュ乗数である。
【００９６】
つまり、High Complexity Modeでの符号化を行うには、上記パラメータＤおよびＲを算出するため、候補となる全ての予測モードにより、一度、仮エンコード処理を行う必要があり、より高い演算量を要する。
【００９７】
一方、Low Complexity モードにおいては、ステップＳＴ４１の処理として、候補となる全ての予測モードについて、予測画像の生成、および、動きベクトル情報や予測モード情報などのヘッダビットまでを算出し、次の式（２）で表されるコスト関数値を各予測モードについて算出する。
Cost(Mode∈Ω)=Ｄ+QPtoQuant(QP)・Header_Bit      ・・・（２）
【００９８】
Ωは、当該ブロック乃至マクロブロックを符号化するための候補となる予測モードの全体集合を示している。Ｄは、予測モードで符号化を行った場合の復号画像と入力画像との差分エネルギー（歪み）を示している。Header_Bitは、予測モードに対するヘッダビット、QPtoQuantは、量子化パラメータＱＰの関数として与えられる関数である。
【００９９】
すなわち、Low Complexity Modeにおいては、それぞれの予測モードに関して、予測処理を行う必要があるが、復号化画像までは必要ないため、High Complexity Modeより低い演算量での実現が可能である。
【０１００】
ステップＳＴ４３でＡＶＣイントラ予測部３１とＬＭＢイントラ予測部３２は、最適イントラ予測モードを決定する。ＡＶＣイントラ予測部３１とＬＭＢイントラ予測部３２は、ステップＳＴ４２において算出されたコスト関数値に基づいて、それらの中から、コスト関数値が最小となるイントラ予測モードを選択して最適イントラ予測モードに決定する。
【０１０１】
次に、図１１のステップＳＴ３２のインター予測処理について説明する。図１３は、ＡＶＣ動き予測・補償部３３で行われるインター予測処理を示している。
【０１０２】
ステップＳＴ５１でＡＶＣ動き予測・補償部３３は、各予測モードにおいて動きベクトルと参照画像をそれぞれ決定する。すなわち、各予測モードの処理対象のブロックについて、動きベクトルと参照画像がそれぞれ決定される。
【０１０３】
ステップＳＴ５２でＡＶＣ動き予測・補償部３３は、各予測モードで動き補償を行う。ＡＶＣ動き予測・補償部３３は、各予測モードについて、ステップＳＴ５１で決定された動きベクトルに基づいて、参照画像に対する動き補償を行い、各予測モードについて予測画像データを生成する。
【０１０４】
ステップＳＴ５３でＡＶＣ動き予測・補償部３３は、各予測モードで動きベクトル情報の生成を行う。ＡＶＣ動き予測・補償部３３は、各予測モードで決定された動きベクトルについて、符号化ストリームに含める動きベクトル情報を生成する。例えば、メディアン予測等を用いて予測動きベクトルを決定して、動き予測により検出した動きベクトルと予測動きベクトルの差を示す動きベクトル情報を生成する。このようにして生成された動きベクトル情報は、次のステップＳＴ５４におけるコスト関数値の算出にも用いられて、最終的に予測画像・最適モード選択部３６で対応する予測画像が選択された場合には、予測モード情報に含まれて可逆符号化部１６へ出力される。
【０１０５】
ステップＳＴ５４でＡＶＣ動き予測・補償部３３は、各インター予測モードでコスト関数値の算出を行う。ＡＶＣ動き予測・補償部３３は、上述した式（１）または式（２）を用いてコスト関数値の算出を行う。なお、インター予測モードに対するコスト関数値の算出には、Ｈ．２６４／ＡＶＣ方式において定められているSkip ModeおよびDirect Modeのコスト関数値の評価も含まれる。
【０１０６】
ステップＳＴ５５でＡＶＣ動き予測・補償部３３は、最適インター予測モードを決定する。ＡＶＣ動き予測・補償部３３は、ステップＳＴ５４において算出されたコスト関数値に基づいて、それらの中から、コスト関数値が最小となる予測モードを選択して最適インター予測モードに決定する。
【０１０７】
図１４は、ＬＭＢ動き予測・補償部３５で行われるＬＭＢインター予測処理を示している。
【０１０８】
ステップＳＴ６１でＬＭＢ動き予測・補償部３５は、当該ブロックがエッジブロックであるか否かの判定結果を取得する。ＬＭＢ動き予測・補償部３５は、符号化を行うマクロブロックに対するエッジＬＭＢ判定部３４の判定結果を取得してステップＳＴ６２に進む。
【０１０９】
ステップＳＴ６２でＬＭＢ動き予測・補償部３５は、当該ブロックがエッジブロックであるか否か判別する。ＬＭＢ動き予測・補償部３５は、ステップＳＴ６１で取得した判定結果がエッジブロックであることを示しているときステップＳＴ６３に進み、エッジブロックであることを示していないときステップＳＴ６８に進む。
【０１１０】
ステップＳＴ６３でＬＭＢ動き予測・補償部３５は、エッジブロックがマクロブロックを３２×３２画素に設定したときのエッジブロック（エッジＬＭＢ３２）であるか否か判別する。ＬＭＢ動き予測・補償部３５は、エッジブロックがエッジＬＭＢ３２である場合ステップＳＴ６４に進み、エッジブロックがマクロブロックを６４×６４画素に設定したときのエッジブロック（エッジＬＭＢ６４）である場合ステップＳＴ６６に進む。
【０１１１】
ステップＳＴ６４でＬＭＢ動き予測・補償部３５は、エッジブロック（エッジＬＭＢ３２）について動き探索処理を行う。具体的には、当該ブロックが図６におけるブロックＢ，ブロックＣまたは正方形状のブロックのいずれかに相当することから、相当するブロックの各mb32_typeについて動き探索処理を行いステップＳＴ６５に進む。
【０１１２】
ステップＳＴ６５でＬＭＢ動き予測・補償部３５は、エッジブロック（エッジＬＭＢ３２）についてコスト関数値の算出を行う。具体的には、当該ブロックが図６におけるブロックＢまたはブロックＣあるいは正方形状のブロックのいずれかに相当することから、相当するブロックの各mb32_typeについてコスト関数値を算出してステップＳＴ７０に進む。
【０１１３】
なお、ステップＳＴ６４，６５において、正方形状の領域については、マクロブロックよりもサイズの小さい下層のマクロブロックに対して設定されている予測ブロックサイズで動き探索処理およびコスト関数値の算出を行う。
【０１１４】
ステップＳＴ６３からステップＳＴ６６に進むと、ＬＭＢ動き予測・補償部３５は、マクロブロックが６４×６４画素に設定されているときのエッジブロック（エッジＬＭＢ６４）について動き探索処理を行う。具体的には、当該ブロックが図８，９におけるブロックＥ〜ブロックＨ，ブロックＥ２，ブロックＧ２または正方形状のブロックのいずれかに相当することから、相当するブロックの各mb32_typeについて動き探索処理を行いステップＳＴ６７に進む。
【０１１５】
ステップＳＴ６７でＬＭＢ動き予測・補償部３５は、マクロブロックが６４×６４画素に設定されているときのエッジブロックについてコスト関数値の算出を行う。具体的には、当該ブロックが図８，９におけるブロックＥ〜ブロックＨ，ブロックＥ２，ブロックＧ２または正方形状のブロックのいずれかに相当することから、相当するブロックの各mb32_typeについてコスト関数値を算出してステップＳＴ７０に進む。
【０１１６】
なお、ステップＳＴ６６，６７において、正方形状の領域については、マクロブロックよりもサイズの小さい下層のマクロブロックに対して設定されている予測ブロックサイズで動き探索処理およびコスト関数値の算出を行う。
【０１１７】
ステップＳＴ６２からステップＳＴ６８に進むと、ＬＭＢ動き予測・補償部３５は、非エッジブロック（マクロブロックに相当）に対する動き探索処理を行う。具体的には、当該ブロックが図６のブロックＡまたは図８，９のブロックＤに相当することから、相当するブロックの各mb32_typeまたは各mb64_typeについて動き探索処理を行いステップＳＴ６９に進む。
【０１１８】
ステップＳＴ６９でＬＭＢ動き予測・補償部３５は、非エッジブロックについてコスト関数値の算出を行う。具体的には、当該ブロックが図６のブロックＡまたは図８，９のブロックＤに相当することから、相当するブロックの各mb32_typeまたは各mb64_typeについてコスト関数値を算出してステップＳＴ７０に進む。
【０１１９】
ステップＳＴ７０でＬＭＢ動き予測・補償部３５は、ＬＭＢ最適インター予測モードを決定する。ＬＭＢ動き予測・補償部３５は、ステップＳＴ６５，６７，６９で算出されたコスト関数値が最小となる予測ブロックサイズ（動き補償ブロックサイズ）を、ＬＭＢ最適インター予測モードに決定する。
【０１２０】
このように、本願発明の画像符号化装置および方法によれば、符号化対象画像の端部でマクロブロックよりもサイズの小さいエッジブロックが生じる場合、ＬＭＢ動き予測・補償部３５は、エッジブロックと判定された領域を対象として、エッジブロックと判定された領域サイズである予測ブロックサイズと、エッジブロックと判定された領域を水平方向と垂直方向のいずれか一方の方向に分割して得られる複数の非正方形領域のサイズである予測ブロックサイズを用いて符号化効率が高くなる予測ブロックサイズが検出される。このため、符号化効率が最も高くなる予測ブロックを検出して、この検出された予測ブロックサイズで画像データの符号化処理を行うとき、エッジブロックにおいて、従来よりもサイズの大きな予測ブロックを設定することが可能となる。したがって、予測ブロック数を少なくして符号化ストリームのデータ量を少なくすることができる。
【０１２１】
また、可逆符号化部１６は、エッジブロックであるか否かによってシンタックス要素を変更することなく、符号化ストリームを生成する。したがって、エッジブロックに応じて設定した予測ブロックサイズを用いる場合であっても、可逆符号化部１６における処理を変更する必要がない。
【０１２２】
＜５．画像復号化装置の構成＞
入力画像を符号化して生成された符号化ストリームは、所定の伝送路や記録媒体等を介して画像復号化装置に供給されて復号される。
【０１２３】
図１５は、画像復号装置の構成を示している。画像復号化装置５０は、蓄積バッファ５１、可逆復号化部５２、逆量子化部５３、逆直交変換部５４、加算部５５、デブロッキングフィルタ５６、画面並べ替えバッファ５７、Ｄ／Ａ変換部５８、フレームメモリ６１、セレクタ６２、ＡＶＣイントラ予測部７１、ＬＭＢイントラ予測部７２、ＡＶＣ動き予測・補償部７３、エッジＬＭＢ判定部７４、ＬＭＢ動き予測・補償部７５、セレクタ７６を有している。
【０１２４】
蓄積バッファ５１は、伝送されてきた符号化ストリームを蓄積する。可逆復号化部５２は、蓄積バッファ５１より供給された符号化ストリームを、図１の可逆符号化部１６の符号化方式に対応する方式で復号化する。また、可逆復号化部５２は、符号化ストリームのヘッダ情報を復号して得られた予測モード情報をデブロッキングフィルタ５６やＡＶＣイントラ予測部７１、ＬＭＢイントラ予測部７２、ＡＶＣ動き予測・補償部７３、ＬＭＢ動き予測・補償部７５に出力する。
【０１２５】
逆量子化部５３は、可逆復号化部５２で復号された量子化データを、図１の量子化部１５の量子化方式に対応する方式で逆量子化する。逆直交変換部５４は、図１の直交変換部１４の直交変換方式に対応する方式で逆量子化部５３の出力を逆直交変換して加算部５５に出力する。
【０１２６】
加算部５５は、逆直交変換後のデータとセレクタ７６から供給される予測画像データを加算して復号画像データを生成してデブロッキングフィルタ５６とフレームメモリ６１に出力する。
【０１２７】
デブロッキングフィルタ５６は、加算部５５から供給された復号画像データに対してフィルタ処理を行い、ブロック歪みを除去してからフレームメモリ６１に供給し蓄積させるとともに、画面並べ替えバッファ５７に出力する。
【０１２８】
画面並べ替えバッファ５７は、画像の並べ替えを行う。すなわち、図１の画面並べ替えバッファ１２により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられて、Ｄ／Ａ変換部５８に出力される。
【０１２９】
Ｄ／Ａ変換部５８は、画面並べ替えバッファ５７から供給された画像データをＤ／Ａ変換し、図示せぬディスプレイに出力することで画像を表示させる。
【０１３０】
フレームメモリ６１は、加算部５５から供給されたフィルタ処理前の復号画像データとデブロッキングフィルタ２４から供給されたフィルタ処理後の復号画像データとを保持する。
【０１３１】
セレクタ６２は、可逆復号化部５２から供給された予測モード情報に基づき、Ｈ．２６４／ＡＶＣ方式で規定されたマクロブロックでイントラ予測が行われた予測ブロックの復号化が行われるとき、フレームメモリ６１から読み出されたフィルタ処理前の復号画像データをＡＶＣイントラ予測部７１に供給する。セレクタ２６は、可逆復号化部５２から供給された予測モード情報に基づき、大きいマクロブロックでイントラ予測が行われた予測ブロックの復号化が行われるとき、フレームメモリ６１から読み出されたフィルタ処理前の復号画像データをＬＭＢイントラ予測部７２に供給する。セレクタ６２は、可逆復号化部５２から供給された予測モード情報に基づき、Ｈ．２６４／ＡＶＣ方式で規定されたマクロブロックでインター予測が行われた予測ブロックの復号化が行われるとき、フレームメモリ６１から読み出されたフィルタ処理後の復号画像データをＡＶＣ動き予測・補償部７３に供給する。さらに、セレクタ２６は、可逆復号化部５２から供給された予測モード情報に基づき、大きいマクロブロックでインター予測が行われた予測ブロックの復号化が行われるとき、フレームメモリ６１から読み出されたフィルタ処理後の復号画像データをＬＭＢ動き予測・補償部７５に供給する。
【０１３２】
ＡＶＣイントラ予測部７１は、可逆復号化部５２から供給された予測モード情報に基づいて予測画像の生成を行い、生成した予測画像データをセレクタ７６に出力する。ＬＭＢイントラ予測部７２は、可逆復号化部５２から供給された予測モード情報に基づいて予測画像の生成を行い、生成した予測画像データをセレクタ７６に出力する。
【０１３３】
ＡＶＣ動き予測・補償部７３は、可逆復号化部５２から供給された予測モード情報に基づいて、動き補償を行い、予測画像データを生成してセレクタ７６に出力する。すなわち、ＡＶＣ動き予測・補償部７３は、予測モード情報に含まれる動きベクトル情報と参照フレーム情報に基づいて、参照フレーム情報で示された参照画像に対して動きベクトル情報に基づく動きベクトルで動き補償を行い、予測画像データを生成する。
【０１３４】
エッジＬＭＢ判定部７４は、図１に示すエッジＬＭＢ判定部３４と同様にエッジブロックの判定を行う。エッジＬＭＢ判定部７４は、復号化対象画像の画像サイズと復号化処理するマクロブロックの位置に基づいて、マクロブロック未満のサイズとなるエッジブロックを判定する。エッジＬＭＢ判定部７４は、例えば復号化対象の画像の水平方向および垂直方向の画素数と、順次復号化されるマクロブロックのアドレス情報を用いることで、当該ブロックがエッジブロックであるか否かを判定できる。また、予測モードの切り替えは、フレーム単位だけでなくスライス単位でも可能であるから、エッジブロックの判定はフレーム毎だけでなくスライス毎に行うようにする。
【０１３５】
ＬＭＢ動き予測・補償部７５は、可逆復号化部５２から供給された予測モード情報とエッジブロック判定結果に基づいて、動き補償を行い、予測画像データを生成してセレクタ７６に出力する。すなわち、ＬＭＢ動き予測・補償部７３は、予測モード情報に含まれる動きベクトル情報と参照フレーム情報に基づいて、参照フレーム情報で示された参照画像に対して動きベクトル情報に基づく動きベクトルで動き補償を行い、予測画像データを生成する。また、ＬＭＢ動き予測・補償部７５は、エッジブロックに対応して設定されているマクロブロックタイプに応じて予測画像データの生成を行う。
【０１３６】
セレクタ７６は、ＡＶＣイントラ予測部７１、ＬＭＢイントラ予測部７２、ＡＶＣ動き予測・補償部７３、ＬＭＢ動き予測・補償部７５で生成された予測画像データを加算部５５に供給する。
【０１３７】
＜６．ＬＭＢ動き予測・補償部の構成＞
図１６は、ＬＭＢ動き予測・補償部７５の構成を示している。ＬＭＢ動き予測・補償部７５は、ＬＭＢモード復号部７５１と動き補償部７５２を有している。
【０１３８】
ＬＭＢモード復号部７５１は、可逆復号化部５２から供給された予測モード情報に含まれているマクロブロックタイプを示す情報とエッジＬＭＢ判定部７４からのエッジブロック判定結果に基づいて、予測ブロックサイズを判別する。上述のように、画像符号化装置１０の可逆符号化部１６は、エッジブロックであるか否かによってシンタックス要素を変更することなく、符号化ストリームを生成している。したがって、ＬＭＢモード復号部７５１は、エッジＬＭＢ判定部７４からのエッジブロック判定結果に基づいて、シンタックス要素の意味であるセマンティックスを切り替える。具体的には、エッジブロック判定結果がエッジブロックであることを示したとき、セマンティックスとして、図６，８，９に示すmb64_type，mb32_typeに対応する予測ブロックサイズを用いる。また、エッジブロック判定結果がエッジブロックでないことを示したとき、セマンティックスとして、図３に示すmb64_type，mb32_typeに対応する予測ブロックサイズを用いる。なお、図６，８，９のいずれを用いるかは、エッジＬＭＢ判定部７４で、例えば符号化対象の画像の水平方向および垂直方向の画素数と順次設定されるマクロブロックのアドレス情報を用いて、マクロブロック未満の画素数を判別すればよい。エッジＬＭＢ判定部７４は、この判別したマクロブロック未満の画素数とマクロブロックサイズを示す情報に基づき、図６，８，９のいずれを用いるか判別できる。
【０１３９】
また、ＬＭＢモード復号部７５１は、可逆復号化部５２から供給された予測モード情報に含まれている動きベクトル情報と参照フレーム情報を、動き補償部７５２に出力する。
【０１４０】
動き補償部７５２は、動きベクトル情報で示された動きベクトルとＬＭＢモード復号部７５１で判別された予測ブロックサイズに基づき、参照フレーム情報で示された参照画像データを用いて動き補償を行う。なお、参照画像データは、フレームメモリ６１に記憶されている参照フレームの画像データを用いる。動き補償部７５２は、生成した予測画像データをセレクタ７６に出力する。
【０１４１】
＜７．画像復号化装置の動作＞
次に、図１７のフローチャートを参照して、画像復号化装置５０で行われる画像復号化処理動作について説明する。
【０１４２】
ステップＳＴ８１で蓄積バッファ５１は、伝送されてきた符号化ストリームを蓄積する。ステップＳＴ８２で可逆復号化部５２は、可逆復号化処理を行う。可逆復号化部５２は、蓄積バッファ５１から供給される符号化ストリームを復号化する。すなわち、図１の可逆符号化部１６により符号化された各ピクチャの量子化データが得られる。また、可逆復号化部５２、符号化ストリームのヘッダ情報に含まれている予測モード情報の可逆復号化を行い、得られた予測モード情報をデブロッキングフィルタ５６やセレクタ６２，７６に供給する。さらに、可逆復号化部５２は、予測モード情報がイントラ予測モードに関する情報である場合、予測モード情報をＡＶＣイントラ予測部７１やＬＭＢイントラ予測部７２に出力する。また、可逆復号化部５２は、予測モード情報がインター予測モードに関する情報である場合、予測モード情報をＡＶＣ動き予測・補償部７３やＬＭＢ動き予測・補償部７５に出力する。
【０１４３】
ステップＳＴ８３において逆量子化部５３は、逆量子化処理を行う。逆量子化部５３は、可逆復号化部５２により復号された量子化データを、図１の量子化部１５の特性に対応する特性で逆量子化する。
【０１４４】
ステップＳＴ８４において逆直交変換部５４は、逆直交変換処理を行う。逆直交変換部５４は、逆量子化部５３により逆量子化された変換係数データを、図１の直交変換部１４の特性に対応する特性で逆直交変換する。
【０１４５】
ステップＳＴ８５において加算部５５は、復号画像データの生成を行う。加算部５５は、逆直交変換処理を行うことにより得られたデータと、後述するステップＳＴ８９で選択された予測画像データを加算して復号画像データを生成する。これにより元の画像が復号される。
【０１４６】
ステップＳＴ８６においてデブロッキングフィルタ５６は、フィルタ処理を行う。デブロッキングフィルタ５６は、加算部５５より出力された復号画像データのフィルタ処理を行い、復号画像に含まれているブロック歪みを除去する。
【０１４７】
ステップＳＴ８７においてフレームメモリ６１は、復号画像データを記憶する。
【０１４８】
ステップＳＴ８８においてＡＶＣイントラ予測部７１とＬＭＢイントラ予測部７２とＡＶＣ動き予測・補償部７３およびＬＭＢ動き予測・補償部７５は、可逆復号化部５２から供給される予測モード情報に対応して、それぞれ画像の予測処理を行う。
【０１４９】
すなわち、可逆復号化部５２からイントラ予測モード情報が供給された場合、ＡＶＣイントラ予測部７１やＬＭＢイントラ予測部７２は、イントラ予測モードのイントラ予測処理を行い、予測画像データを生成する。また、可逆復号化部５２からインター予測モード情報が供給された場合、ＡＶＣ動き予測・補償部７３やＬＭＢ動き予測・補償部７５は、インター予測モードの動き予測・補償処理を行い、予測画像データを生成する。
【０１５０】
ステップＳＴ８９において、セレクタ７６は予測画像データの選択を行う。すなわち、セレクタ７６は、ＡＶＣイントラ予測部７１、ＬＭＢイントラ予測部７２、ＡＶＣ動き予測・補償部７３、ＬＭＢ動き予測・補償部７５で生成された予測画像データを加算部５５に供給して、上述したように逆直交変換部５４の出力と加算させて、復号画像データを生成させる。
【０１５１】
ステップＳＴ９０において画面並べ替えバッファ５７は、画面並べ替えを行う。すなわち画面並べ替えバッファ５７は、図１の画像符号化装置１０の画面並べ替えバッファ１２により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
【０１５２】
ステップＳＴ９１において、Ｄ／Ａ変換部５８は、画面並べ替えバッファ５７からの画像データをＤ／Ａ変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
【０１５３】
次に、図１８のフローチャートを参照して、図１７のステップＳＴ８８の予測処理について説明する。
【０１５４】
ステップＳＴ１０１で可逆復号化部５２は、対象ブロックがイントラ符号化されているか否かを判定する。可逆復号化部５２は、可逆復号化を行うことにより得られた予測モード情報がイントラ予測モード情報である場合、予測モード情報をＡＶＣイントラ予測部７１とＬＭＢイントラ予測部７２に供給してステップＳＴ１０２に進む。また、可逆復号化部５２は、予測モード情報がイントラ予測モード情報でない場合、予測モード情報をＡＶＣ動き予測・補償部７３とＬＭＢ動き予測・補償部７５に供給してステップＳＴ１０３に進む。また、可逆復号化部５２は、予測モード情報に含まれているマクロブロックサイズの情報を利用して、予測モード情報を対応するＡＶＣイントラ予測部７１とＬＭＢイントラ予測部７２とＡＶＣ動き予測・補償部７３およびＬＭＢ動き予測・補償部７５のいずれかに供給してもよい。また、予測モード情報を、ＡＶＣイントラ予測部７１とＬＭＢイントラ予測部７２とＡＶＣ動き予測・補償部７３およびＬＭＢ動き予測・補償部７５に供給して、各部で予測モード情報が対応する情報であるか判別するようにしてもよい。
【０１５５】
ステップＳＴ１０２でＡＶＣイントラ予測部７１またはＬＭＢイントラ予測部７２は、イントラ予測処理を行う。ＡＶＣイントラ予測部７１は、予測モード情報で示されたマクロブロックがＨ．２６４／ＡＶＣに規定されたサイズである場合、セレクタ６２を介して供給された復号画像データと予測モード情報を用いてイントラ予測を行い、予測画像データを生成する。また、ＡＶＣイントラ予測部７１は、生成した予測画像データをセレクタ７６に出力する。ＬＭＢイントラ予測部７２は、予測モード情報で示されたマクロブロックがＨ．２６４／ＡＶＣに規定されたサイズよりも大きいサイズである場合、セレクタ６２を介して供給された復号画像データと予測モード情報を用いてイントラ予測を行い、予測画像データを生成する。また、ＬＭＢイントラ予測部７２は、生成した予測画像データをしてセレクタ７６に出力する。
【０１５６】
ステップＳＴ１０３でＡＶＣ動き予測・補償部７３またはＬＭＢ動き予測・補償部７５は、インター予測処理を行う。ＡＶＣ動き予測・補償部７３は、予測モード情報で示されたマクロブロックがＨ．２６４／ＡＶＣに規定されたサイズである場合、予測モード情報で示された動きベクトル情報や参照フレーム情報、マクロブロックタイプの情報等を用いて、セレクタ６２を介して供給された復号画像データの動き補償を行う。さらに、ＡＶＣ動き予測・補償部７３は、動き補償により生成した予測画像データをセレクタ７６に出力する。ＬＭＢ動き予測・補償部７５は、予測モード情報で示されたマクロブロックがＨ．２６４／ＡＶＣに規定されたサイズよりも大きいサイズである場合、予測モード情報で示された動きベクトル情報と参照フレーム情報とエッジ判定結果およびマクロブロックタイプ等の情報を用いて、セレクタ６２を介して供給された復号画像データの動き補償を行う。さらに、ＬＭＢ動き予測・補償部７５は、動き補償により生成した予測画像データをセレクタ７６に出力する。
【０１５７】
また、図１８のステップＳＴ１０３においてＬＭＢ動き予測・補償部７５で行われるインター予測処理について、図１９のフローチャート用いて説明する。
【０１５８】
ステップＳＴ１１１でＬＭＢ動き予測・補償部７５は、予測モード情報と当該ブロックについてのエッジブロック判定結果を取得する。ＬＭＢ動き予測・補償部７５は、予測モード情報を可逆復号化部５２から取得する。また、ＬＭＢ動き予測・補償部７５は、当該ブロックについてのエッジブロック判定結果をエッジＬＭＢ判定部７４から取得してステップＳＴ１１２に進む。
【０１５９】
ステップＳＴ１１２でＬＭＢ動き予測・補償部７５は、動きベクトルを算出する。ＬＭＢ動き予測・補償部７５は、予測モード情報に含まれている動きベクトル情報と予測ベクトルから当該ブロックに対する動きベクトルを算出してステップＳＴ１１３に進む。
【０１６０】
ステップＳＴ１１３でＬＭＢ動き予測・補償部７５は、当該ブロックがエッジブロックであるか否か判別する。ＬＭＢ動き予測・補償部７５は、判定結果がエッジブロックであることを示しているときステップＳＴ１１４に進み、エッジブロックであることを示していないときステップＳＴ１１７に進む。
【０１６１】
ステップＳＴ１１４でＬＭＢ動き予測・補償部７５は、エッジブロックがマクロブロックを３２×３２画素に設定したときのエッジブロック（エッジＬＭＢ３２）であるか否か判別する。ＬＭＢ動き予測・補償部７５は、予測モード情報に含まれているマクロブロックサイズを示す情報に基づき、マクロブロックが３２×３２画素に設定されていると判別した場合、エッジブロックはエッジブロック（エッジＬＭＢ３２）であるからステップＳＴ１１５に進む。また、マクロブロックが６４×６４画素に設定されていると判別した場合、エッジブロックはマクロブロックを６４×６４画素に設定したときのエッジブロック（エッジＬＭＢ６４）であるからステップＳＴ１１６に進む。
【０１６２】
ステップＳＴ１１５でＬＭＢ動き予測・補償部７５は、エッジブロックについて、予測モード情報に含まれているマクロブロックタイプmb32_typeの判別を行う。すなわち、ＬＭＢ動き予測・補償部７５は、図６のセマンテックスに基づき、マクロブロックタイプmb32_typeに対応する予測ブロックサイズを判別してステップＳＴ１１８に進む。
【０１６３】
ステップＳＴ１１６でＬＭＢ動き予測・補償部７５は、エッジブロックについて、予測モード情報に含まれているマクロブロックタイプmb64_typeの判別を行う。すなわち、ＬＭＢ動き予測・補償部７５は、エッジブロックのサイズに応じて、図８または図９のセマンテックスに基づき、マクロブロックタイプmb64_typeに対応する予測ブロックサイズを判別していステップＳＴ１１８に進む。
【０１６４】
ステップＳＴ１１７でＬＭＢ動き予測・補償部７５は、マクロブロックタイプmb32_typeまたはmb64_typeを判別する。すなわち、ＬＭＢ動き予測・補償部７５は、図３のセマンテックスに基づき、マクロブロックタイプmb32_type，mb64_typeに対応する予測ブロックサイズを判別してステップＳＴ１１８に進む。
【０１６５】
ステップＳＴ１１８でＬＭＢ動き予測・補償部７５は、動き補償を行い予測画像データを生成する。ＬＭＢ動き予測・補償部７５は、判別された予測ブロックサイズと動きベクトルおよび参照フレーム情報に基づき、セレクタ６２から供給された復号画像データを用いて動き補償を行い、予測画像データを生成する。
【０１６６】
すなわち、ＬＭＢ動き予測・補償部７５は、エッジＬＭＢ判定部７４でエッジブロックと判定された場合、画像データの復号化処理で得られるマクロブロックタイプ情報に基づき、エッジブロックと判定された領域に対して、予測ブロックサイズが、エッジブロックと判定された領域またはエッジブロックと判定された領域を水平方向と垂直方向のいずれか一方の方向に分割して得られる領域のサイズであるか判別する。ＬＭＢ動き予測・補償部７５は、この判別された予測ブロックサイズで画像データの復号化処理に用いる予測画像データを生成する。また、ＭＢ動き予測・補償部７５は、エッジＬＭＢ判定部７４で判別されたエッジブロックが正方形領域である場合、画像データの復号化処理で得られるマクロブロックタイプ情報に基づき、エッジブロックと判定された正方形領域に対して、予測ブロックサイズがマクロブロックよりもサイズの小さい下層のマクロブロックについて設定されている予測ブロックサイズのいずれであるか判別して、この判別された予測ブロックサイズで予測画像データを生成する。
【０１６７】
このように、本願発明の画像復号化装置および方法によれば、符号化対象画像の端部でマクロブロックよりもサイズの小さいエッジブロックが生じる場合、エッジブロックと判定された領域を対象として、エッジブロックと判定された領域のサイズである予測ブロックサイズと、エッジブロックと判定された領域を水平方向と垂直方向のいずれか一方の方向に分割して得られる複数の非正方形領域のサイズである予測ブロックサイズを用いて符号化効率が高くなる予測ブロックサイズが画像符号化装置で設定されても、この設定された予測ブロックサイズの画像を予測した予測画像データを生成できる。したがって、生成された予測画像データを用いて画像復号化処理を行うことで、符号化ストリームの復号化処理を正しく行うことができる。
【０１６８】
また、エッジブロックに応じた予測ブロックサイズを用いるとき、画像符号化装置でシンタックス要素を変更することなく符号化ストリームを生成しても、画像復号化装置は、エッジブロックの判定結果等を用いて、エッジブロックに応じたセマンティックスに切り替えることができる。したがって、マクロブロックタイプ情報に基づいてエッジブロックに応じた予測ブロックサイズを正しく判別することが可能となる。このため、エッジブロックの予測ブロックサイズを示すシンタックス要素を画像符号化装置から画像復号化装置に送信する必要がなく、符号化ストリームのデータ量の増加を招くことがない。
【０１６９】
また、上述の形態では、エッジブロック判定結果を用いてセマンティックスの切り替えを行い、ＬＭＢ動き予測・補償部３５，７５において、エッジブロックに応じた予測ブロックサイズで動き補償や予測画像の生成を行う場合を示した。しかし、エッジブロックに応じた予測ブロックサイズを用いる予測処理は、インター予測処理に限られない。例えば、エッジブロック判定結果を用いてセマンティックスの切り替えを行い、ＬＭＢイントラ予測部３２，７２において、エッジブロックに応じた予測ブロックサイズで予測を行うようにしてもよい。
【０１７０】
さらに、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、または両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させる。または、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることも可能である。
【０１７１】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（Read Only Memory)に予め記録しておくことができる。または、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的または永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することができる。
【０１７２】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０１７３】
さらに、本発明は、上述した発明の実施の形態に限定して解釈されるべきではない。この発明の実施の形態は、例示という形態で本発明を開示しており、本発明の要旨を逸脱しない範囲で当業者が実施の形態の修正や代用をなし得ることは自明である。すなわち、本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【産業上の利用可能性】
【０１７４】
この発明の画像符号化装置と画像符号化方法および画像復号化装置と画像復号化方法によれば、マクロブロック未満のサイズとなるエッジブロックを対象として、エッジブロックと判定された領域のサイズである予測ブロックサイズと、エッジブロックと判定された領域を水平方向と垂直方向のいずれか一方の方向に分割して得られる複数の非正方形領域のサイズである予測ブロックサイズで符号化効率を判別して、前記符号化効率が高くなる予測ブロックサイズで画像の符号化や復号化が行われる。このため、エッジブロックに対して、サイズの小さい下層のマクロブロックの予測ブロックサイズが用いられて、エッジブロックが数多くのブロックに分割されて符号化されることを防止して、より大きなマクロブロックを用いて符号化データのデータ量を少なくすることが可能となる。したがって、ＭＰＥＧ、Ｈ.２６ｘ等のように、ブロック単位で符号化を行うことにより得られた画像情報（ビットストリーム）を、衛星放送、ケーブルＴＶ、インターネット、携帯電話などのネットワークメディアを介して送受信する際に、若しくは光、磁気ディスク、フラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置や画像復号化装置等に適している。
【符号の説明】
【０１７５】
１０・・・画像符号化装置、１１・・・Ａ／Ｄ変換部、１２，５７・・・画面並べ替えバッファ、１３・・・減算部、１４・・・直交変換部、１５・・・量子化部、１６・・・可逆符号化部、１７，５１・・・蓄積バッファ、１８・・・レート制御部、２１，５３・・・逆量子化部、２２，５４・・・逆直交変換部、２３，５５・・・加算部、２４，５６・・・デブロッキングフィルタ、２５，６１・・・フレームメモリ、２６，６２，７６・・・セレクタ、３１，７１・・・ＡＶＣイントラ予測部、３２，７２・・・ＬＭＢイントラ予測部、３３，７３・・・ＡＶＣ動き予測・補償部、３４，７４・・・エッジＬＭＢ判定部、３５，７５・・・ＬＭＢ動き予測・補償部、３６・・・予測画像・最適モード選択部、５０・・・画像復号化装置、５２・・・可逆復号化部、５８・・・Ｄ／Ａ変換部、３５１・・・動き探索部、３５２・・・コスト関数値算出部、３５３・・・モード判定部、３５４・・・動き補償部、７５１・・・モード復号部、７５２・・・動き補償部
【図１】
2011223303.tif 000003
【図２】
2011223303.tif 000004
【図３】
2011223303.tif 000005
【図４】
2011223303.tif 000006
【図５】
2011223303.tif 000007
【図６】
2011223303.tif 000008
【図７】
2011223303.tif 000009
【図８】
2011223303.tif 000010
【図９】
2011223303.tif 000011
【図１０】
2011223303.tif 000012
【図１１】
2011223303.tif 000013
【図１２】
2011223303.tif 000014
【図１３】
2011223303.tif 000015
【図１４】
2011223303.tif 000016
【図１５】
2011223303.tif 000017
【図１６】
2011223303.tif 000018
【図１７】
2011223303.tif 000019
【図１８】
2011223303.tif 000020
【図１９】
2011223303.tif 000021