(57)【特許請求の範囲】
【請求項１】
イントラ予測モードにおいて、入力画像データから予測値を減算して差分データを生成し、前記差分データを処理して前記入力画像データを符号化処理する符号化装置において、
第１の予測値生成単位の複数の予測モードから、前記第１の予測値生成単位での符号化処理に最適な第１の最適予測モードを検出する第１の予測モード検出部と、
前記第１の予測値生成単位を分割した第２の予測値生成単位の複数の予測モードから、前記第２の予測値生成単位での符号化処理に最適な第２の最適予測モードを検出する第２の予測モード検出部と、
前記第１及び第２の最適予測モードから、前記符号化処理に最適な符号化処理の最適予測モードを選択し、前記符号化処理の最適予測モードにより前記予測値を生成する予測値生成部と、
を有し、
前記第１の予測モード検出部は、
前記第１の予測値生成単位における複数の予測モード毎に、発生符号量を示すコスト値を計算する第１のコスト値計算部を有し、
前記第１のコスト値計算部で計算した前記コスト値の比較により、前記第１の最適予測モードを検出し、
前記第２の予測モード検出部は、
前記第２の予測値生成単位における複数の予測モード毎に、発生符号量を示すコスト値を計算する第２のコスト値計算部を有し、
前記第２のコスト値計算部で計算したコスト値の比較により、前記第２の最適予測モードを検出し、
前記第１のコスト値計算部は、
前記第１の予測値生成単位毎に、前記第２のコスト値計算部で計算したコスト値を対応する予測モード毎に集計することにより、前記コスト値を計算し、
前記第２の予測値生成単位における予測モードには存在しない予測方向による前記第１の予測値生成単位の予測モードについては、前記第２のコスト値計算部で計算した予測方向の異なるコスト値の平均値を集計する、
符号化装置。
【請求項２】
前記第１の最適予測モードが、イントラ１６×１６モードの最適予測モードであり、
前記第２の最適予測モードが、イントラ４×４モードの最適予測モード又はイントラ８×８モードの最適予測モードである、
請求項１に記載の符号化装置。
【請求項３】
前記第１の最適予測モードが、イントラ８×８モードの最適予測モードであり、
前記第２の最適予測モードが、イントラ４×４モードの最適予測モードである、
請求項１に記載の符号化装置。
【請求項４】
イントラ予測モードにおいて、入力画像データから予測値を減算して差分データを生成し、前記差分データを処理して前記入力画像データを符号化する符号化方法において、
第１の予測値生成単位を分割した第２の予測値生成単位における複数の予測モード毎に、発生符号量を示すコスト値を計算する第２のコスト値計算ステップと、
前記第２のコスト値計算ステップで計算したコスト値の比較により、前記第２の予測値生成単位での符号化処理に最適な第２の最適予測モードを検出する第２の最適予測モード検出ステップと、
前記第１の予測値生成単位毎に、前記第２のコスト値計算ステップで計算したコスト値を対応する予測モード毎に集計することにより、前記第１の予測値生成単位における複数の予測モード毎に、発生符号量を示すコスト値を計算する第１のコスト値計算ステップと、
前記第１のコスト値計算ステップで計算した前記コスト値の比較により、前記第１の予測値生成単位での符号化処理に最適な第１の最適予測モードを検出する第１の最適予測モード検出ステップと、
前記第１及び第２の最適予測モードから、前記符号化処理に最適な符号化処理の最適予測モードを選択し、前記符号化処理の最適予測モードにより前記予測値を生成する予測値生成ステップと、
を含み、
前記第１のコスト値計算ステップでは、
前記第２の予測値生成単位における予測モードには存在しない予測方向による前記第１の予測値生成単位の予測モードについては、前記第２のコスト値計算ステップで計算した予測方向の異なるコスト値の平均値を集計する、
符号化方法。
【請求項５】
イントラ予測モードにおいて、入力画像データから予測値を減算して差分データを生成し、前記差分データを処理して前記入力画像データを符号化する符号化方法をコンピュータに実現させるためのプログラムであって、
第１の予測値生成単位を分割した第２の予測値生成単位における複数の予測モード毎に、発生符号量を示すコスト値を計算する第２のコスト値計算ステップと、
前記第２のコスト値計算ステップで計算したコスト値の比較により、前記第２の予測値生成単位での符号化処理に最適な第２の最適予測モードを検出する第２の最適予測モード検出ステップと、
前記第１の予測値生成単位毎に、前記第２のコスト値計算ステップで計算したコスト値を対応する予測モード毎に集計することにより、前記第１の予測値生成単位における複数の予測モード毎に、発生符号量を示すコスト値を計算する第１のコスト値計算ステップと、
前記第１のコスト値計算ステップで計算した前記コスト値の比較により、前記第１の予測値生成単位での符号化処理に最適な第１の最適予測モードを検出する第１の最適予測モード検出ステップと、
前記第１及び第２の最適予測モードから、前記符号化処理に最適な符号化処理の最適予測モードを選択し、前記符号化処理の最適予測モードにより前記予測値を生成する予測値生成ステップと、
を含み、
前記第１のコスト値計算ステップでは、
前記第２の予測値生成単位における予測モードには存在しない予測方向による前記第１の予測値生成単位の予測モードについては、前記第２のコスト値計算ステップで計算した予測方向の異なるコスト値の平均値を集計する、符号化方法をコンピュータに実現させるためのプログラム。
【請求項６】
イントラ予測モードにおいて、入力画像データから予測値を減算して差分データを生成し、前記差分データを処理して前記入力画像データを符号化する符号化方法をコンピュータに実現させるためのプログラムが記録された、コンピュータにより読み取り可能な記録媒体であって、
第１の予測値生成単位を分割した第２の予測値生成単位における複数の予測モード毎に、発生符号量を示すコスト値を計算する第２のコスト値計算ステップと、
前記第２のコスト値計算ステップで計算したコスト値の比較により、前記第２の予測値生成単位での符号化処理に最適な第２の最適予測モードを検出する第２の最適予測モード検出ステップと、
前記第１の予測値生成単位毎に、前記第２のコスト値計算ステップで計算したコスト値を対応する予測モード毎に集計することにより、前記第１の予測値生成単位における複数の予測モード毎に、発生符号量を示すコスト値を計算する第１のコスト値計算ステップと、
前記第１のコスト値計算ステップで計算した前記コスト値の比較により、前記第１の予測値生成単位での符号化処理に最適な第１の最適予測モードを検出する第１の最適予測モード検出ステップと、
前記第１及び第２の最適予測モードから、前記符号化処理に最適な符号化処理の最適予測モードを選択し、前記符号化処理の最適予測モードにより前記予測値を生成する予測値生成ステップと、
を含み、
前記第１のコスト値計算ステップでは、
前記第２の予測値生成単位における予測モードには存在しない予測方向による前記第１の予測値生成単位の予測モードについては、前記第２のコスト値計算ステップで計算した予測方向の異なるコスト値の平均値を集計する、符号化方法をコンピュータに実現させるためのプログラムが記録された、コンピュータにより読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置、符号化方法、符号化方法のプログラム及び符号化方法のプログラムを記録した記録媒体に関し、例えばＨ．２６４及びＭＰＥＧ−４  Ｐａｒｔ１０（Advanced Video Coding ）による符号化装置に適用することができる。本発明は、異なる予測値生成単位で検出される最適予測モードからイントラ予測に適した予測モードを検出して符号化処理する際に、一方の最適予測モード検出処理を他方の最適予測モード検出処理に利用して、これら異なる予測値生成単位による最適予測モードを検出することにより、多数の予測モードから最適予測モードを選択して画像データを符号化処理する場合に、最適予測モードの選択に係る演算処理量を低減する。
【背景技術】
【０００２】
近年、放送局、一般家庭等における動画の伝送、記録には、画像データの冗長性を有効に利用して効率良く画像データを伝送、蓄積する装置が普及しつつある。このような装置は、例えばＭＰＥＧ（Moving Picture Experts Group）等の方式に準拠して、離散コサイン変換等の直交変換と動き補償とにより画像データを効率良くデータ圧縮している。
【０００３】
ここでこの種のデータ圧縮方式の１つであるＭＰＥＧ２（ISO/IEC 13818-2 ）は、汎用の画像符号化方式として定義された方式である。ＭＰＥＧ２は、飛び越し走査方式、順次走査方式の双方に、また標準解像度画像、高精細画像の双方に対応できるように定義され、現在、プロフェッショナル用途及びコンシューマー用途の広範なアプリケーションに広く用いられている。具体的にＭＰＥＧ２によれば、例えば７２０×４８０画素による標準解像度、飛び越し走査方式の画像データを４〜８〔Ｍｂｐｓ〕のビットレートにデータ圧縮することができる。また１９２０×１０８８画素による高解像度、飛び越し走査方式の画像データを１８〜２２〔Ｍｂｐｓ〕のビットレートにデータ圧縮することができ、高画質で高い圧縮率を確保することができる。
【０００４】
しかしながらＭＰＥＧ２は、放送用に適合した高画質符号化方式であり、ＭＰＥＧ１より符号量の少ない高圧縮率の符号化方式には対応していない。これに対して近年の携帯端末の普及により、ＭＰＥＧ１より符号量の少ない高圧縮率の符号化方式のニーズの高まりが予測される。そこでＭＰＥＧ４による符号化方式の規格が、ＩＳＯ／ＩＥＣ（International 0rganization for Standardization／International Electrotechnical Commission ）１４４９６−２により１９９８年１２月に国際標準に承認された。
【０００５】
またこのようなデータ圧縮方式では、当初はテレビ会議用の画像符号化を目的としたものであったＨ２６Ｌ（ITU-T Q6/16 VCEG）が規格化されている。このＨ２６Ｌは、ＭＰＥＧ２、ＭＰＥＧ４に比して演算量が増大するものの、ＭＰＥＧ２、ＭＰＥＧ４に比して高い符号化効率を確保することができる。またＭＰＥＧ４の活動の一環として、このＨ２６Ｌをベースにして各種機能を取り入れ、さらに一段と高い符号化効率を確保する符号化方式の標準化が、Joint Model of Enhanced-Compression Video Codingとして進められ、この方式は、２００３年３月に、Ｈ．２６４及びＭＰＥＧ−４  Ｐａｒｔ１０（Advanced Video Coding ）との名称により国際標準に設定された。以下、この明細書では、この規格をＪＶＴ規格と呼ぶ。
【０００６】
図５は、このＪＶＴ規格の符号化装置を示すブロック図である。符号化装置１は、複数のイントラ予測モードと複数のインター予測モードとから最適予測モードを選択し、この選択した予測モードによる予測値を画像データＤ１から減算して差分データ（予測誤差データ）Ｄ２を生成する。またこの差分データＤ２を直交変換処理、量子化処理、可変長符号化処理して符号化データＤ５を出力する。
【０００７】
この符号化装置１において、アナログディジタル変換回路（Ａ／Ｄ）２は、ビデオ信号Ｓ１をアナログディジタル変換処理して画像データＤ１を出力する。画面並べ替えバッファ３は、このアナログディジタル変換回路２から出力される画像データＤ１を入力し、この符号化装置１の符号化処理に係るＧＯＰ（Group of Pictures ）構造に応じて、この画像データＤ１のフレームを並べ替えて出力する。
【０００８】
減算回路４は、この画面並べ替えバッファ３から出力される画像データＤ１を受け、イントラ符号化においては、イントラ予測回路５から出力される予測値をこの画像データＤ１から減算して差分データＤ２を出力する。またインター符号化においては、動き予測・補償回路６から予測値を入力し、画像データＤ１からこの予測値を減算して差分データＤ２を出力する。
【０００９】
直交変換回路７は、離散コサイン変換、カルーネン・レーベ変換等の直交変換処理により、減算回路４の出力データＤ２を処理し、その処理結果である係数データＤ３を出力する。量子化回路８は、レート制御回路９のレート制御による量子化スケールにより、この係数データＤ３を量子化して出力する。可逆符号化回路１０は、この量子化回路８の出力データを可変長符号化、算術符号化等により可逆符号化処理して出力データＤ４を生成する。また可逆符号化回路１０は、イントラ符号化に関する情報、インター符号化に関する情報等をイントラ予測回路５、動き予測・補償回路６から取得し、これらの情報を出力データＤ４のヘッダ情報に設定する。
【００１０】
蓄積バッファ１１は、この可逆符号化回路１０の出力データＤ４を蓄積して続く伝送路の伝送速度で出力する。レート制御回路９は、この蓄積バッファ１１の空き容量の監視により符号化処理による発生符号量を監視すると共に、この監視結果により量子化回路８の量子化スケールを切り換え、この符号化装置１による発生符号量を制御する。
【００１１】
逆量子化回路１３は、量子化回路８の出力データを逆量子化処理し、量子化回路８の入力データを復号する。逆直交変換回路１４は、逆量子化回路１３の出力データを逆直交変換処理し、直交変換回路７の入力データＤ２を復号する。符号化装置１は、図示しない加算回路により、この逆直交変換回路１４の出力データに対応する予測値を加算し、減算回路４の入力データを復号する。デブロックフィルタ１５は、この加算回路の出力データからブロック歪を除去して出力する。フレームメモリ１６は、このデブロックフィルタ１５の出力データを参照画像情報として記録して保持する。
【００１２】
動き予測・補償回路６は、インター符号化において、このフレームメモリ１６に保持された参照画像情報による予測フレームを基準にして画像並べ替えバッファ３から出力される画像データの動きベクトルＭＶを検出し、インター予測モードにおける最適予測モードを検出する。またインター符号化が選択されると、この最適予測モードにより、対応する動きベクトルＭＶによりフレームメモリ１６に保持した参照画像情報を動き補償して予測画像情報を生成し、この予測画像情報による予測値を減算回路４に出力する。
【００１３】
イントラ予測回路５は、イントラ符号化において、フレームメモリ１６の入力データに基づいてイントラ予測モードにおける最適予測モードを検出する。またイントラ符号化が選択されると、この最適予測モードによりフレームメモリ１６の入力データから予測画像情報の予測値を生成して減算回路４に出力する。
【００１４】
符号化装置１では、ＧＯＰ構造に対応する処理対象ピクチャに応じて、これらイントラ予測回路５、動き予測・補償回路６で検出される最適予測モードから、この符号化装置１における予測モードが選択され、この選択結果に応じてイントラ予測回路５、動き予測・補償回路６による予測値により選択的に減算回路４で差分データＤ２が生成される。
【００１５】
図６は、ＪＶＴ規格の復号化装置を示すブロック図である。この復号化装置２０において、蓄積バッファ２１は、伝送路を介して入力される符号化データＤ５を一時蓄積して出力する。可逆復号化回路２２は、可変長復号化、算術復号化等によりこの蓄積バッファ２１の出力データを処理し、符号化装置１における可逆符号化回路１０の入力データを復号する。またこのときこの出力データがイントラ符号化されたものである場合、ヘッダに格納されたイントラ予測モードの情報を復号してイントラ予測回路２３に出力する。またこの出力データがインター符号化されたものである場合、ヘッダに格納された動きベクトルに関する情報を復号して動き予測・補償回路２４へ出力する。
【００１６】
逆量子化回路２５は、可逆復号化回路２２の出力データを逆量子化処理し、符号化装置１の量子化回路８に入力される係数データＤ３を復号する。逆直交変換回路２６は、この逆量子化回路２５から出力される係数データを入力して逆直交変換処理し、符号化装置１の直交変換回路７に入力される差分データＤ２を復号する。
【００１７】
加算回路２７は、逆直交変換回路２６から出力される差分データＤ２を入力し、イントラ符号化において、イントラ予測回路２３で生成される予測画像の予測値を加算して出力するのに対し、インター符号化において、動き予測・補償回路２４から出力される予測画像の予測値を加算して出力する。これにより加算回路２７は、符号化装置１における減算回路４の入力データを復号する。
【００１８】
デブロックフィルタ２８は、この加算回路２７の出力データからブロック歪を除去して出力する。画面並べ替えバッファ２９は、このデブロックフィルタ２８から出力される画像データのフレームをＧＯＰ構造に応じて並べ替えて出力する。ディジタルアナログ変換回路（Ｄ／Ａ）３０は、この画面並べ替えバッファ２９の出力データをディジタルアナログ変換処理して元のビデオ信号Ｓ１を出力する。
【００１９】
フレームメモリ３１は、デブロックフィルタ２８の出力データを参照画像情報として記録して保持する。動き予測・補償回路２４は、インター符号化において、可逆復号化回路２２から通知される動きベクトルの情報によりフレームメモリ３１に保持された参照画像情報を動き補償して予測値を生成し、この予測値を加算回路２７に出力する。イントラ予測回路２３は、イントラ符号化において、可逆復号化回路２２から通知されるイントラ予測モードによりフレームメモリ３１の入力データから予測値を生成し、この予測値を加算回路２７に出力する。
【００２０】
ここでＪＶＴ規格では、イントラ予測モードに、イントラ４×４モード、イントラ８×８モード、イントラ１６×１６モードが用意されている。イントラ４×４モードは、４画素×４画素のブロックが直交変換処理の単位とされ、この直交変換処理の１個がイントラ予測回路５における予測値の生成単位とされる。またイントラ１６×１６モードは、４画素×４画素のブロックが直交変換処理の単位とされ、この４画素×４画素の直交変換処理の４個×４個のブロック（１６画素×１６画素のブロック）が予測値の生成単位とされる。これに対してイントラ８×８モードは、ＭＰＥＧ２と同様に、８画素×８画素のブロックが直交変換処理の単位とされ、予測値の生成単位とされる。以下、これらイントラ４×４モード、イントラ８×８モード、イントラ１６×１６モードにおける予測値の生成単位をそれぞれブロック、サブマクロブロック、マクロブロックと呼ぶ。
【００２１】
ＪＶＴ規格では、これらイントラ４×４モード、イントラ８×８モード、イントラ１６×１６モードにおいて、イントラ１６×１６モードのマクロブロックである１６画素×１６画素のブロック単位で画像データＤ１を順次処理する。従ってイントラ１６×１６モードにおける１６画素×１６画素のブロックを上下左右にそれぞれ２等分したブロックがイントラ８×８モードにおけるサブマクロブロックとなり、イントラ８×８モードでは、この１６画素×１６画素のマクロブロックにおけるサブマクロブロックをラスタ走査の順序で処理する。またイントラ１６×１６モードにおける１６画素×１６画素のブロックを上下左右にそれぞれ４等分したブロックがイントラ４×４モードにおけるブロックとなり、イントラ４×４モードでは、図７において処理順序を数字により示すように、この１６画素×１６画素のマクロブロックにおけるブロックをラスタ走査の順序で順次処理する。
【００２２】
ＪＶＴ規格では、イントラ予測モードにおけるイントラ４×４モード、イントラ１６×１６モードにおいて、デブロックフィルタ１５で処理する前の復号済みの隣接ブロック又は隣接マクロブロックの画素値を用いて予測値が生成される。またイントラ８×８モードでは、ＭＰＥＧ２と同様にして、デブロックフィルタ１５で処理した後の復号済みの隣接マクロブロックの画素値を用いて予測値が生成される。
【００２３】
なおＪＶＴ規格では、ビデオ信号Ｓ１が飛び越し走査方式のビデオ信号である場合、図８において矢印により処理順序を示すように、垂直方向に連続する２つの予測値の生成単位をペア（以下、マクロブロックペアと呼ぶ）にして、フィールドモード又はフレームモードにより順次符号化処理することが可能である。
【００２４】
イントラ予測モードでは、イントラ４×４モード、イントラ８×８モード、イントラ１６×１６モードにより輝度信号に対する予測値の処理が異なる。従って以下においては、先ずイントラ４×４モードにおける処理を説明する。なおイントラ８×８モードは、ＭＰＥＧ２と同様の処理であることから説明は省略する。
【００２５】
ここでイントラ４×４モードは、mb part pred mode(mb type,0)が、Intra 4x4に等しい時に適用される。予測値の生成処理では、prev intra4x4 pred mode flag、rem intra4x4 pred mode (if available) 、周辺輝度block のデブロックフィルタ１５による処理前の画素値 (if available) を入力パラメータとし、予測値生成対象のブロックに対する輝度信号の予測値を生成する。
【００２６】
ここでイントラ４×４モードにおいて、adaptive frame field flag の値が０の時、予測値の生成処理では、当該ブロックのイントラ予測がavailable か、not available かの判定処理を行う。ここでこの判定処理は、図９に示すように、当該ブロックの隣接ブロックに含まれる、復号化処理済み画素Ａ〜Ｍの輝度画素値を入力し、画素ａ〜ｐによる処理対象ブロックに対して、これら隣接画素Ａ〜Ｍの画素値がavailable か否か判定して実行される。
【００２７】
ここで予測値生成対象の４画素×４画素のブロックを4x4LumaBlkLoc と定義し、このブロックにおける左上部の画素値の位置を、4x4LumaBlkIdx により指し示すものと定義する。従って図９における画素ａ〜ｐによるブロックは、4x4LumaBlkLoc であり、4x4LumaBlkIdx は、符号ａの画素の位置を示すことになる。また画素ｄの位置（ｘ，ｙ）は、ｘ：4x4LumaBlkLoc[4x4LumaBlkIdx] [0]＋３，ｙ：4x4LumaBlkLoc[4x4LumaBlkIdx] [1]により示され、画素Ａの位置（ｘ，ｙ）は、ｘ：4x4LumaBlkLoc[4x4LumaBlkIdx][0]，ｙ：4x4LumaBlkLoc[4x4LumaBlkIdx][1] −１により示される。
【００２８】
隣接画素Ａ〜Ｍの画素値は、（条件１）当該画素が、ピクチャ外、若しくはスライス外である場合、（条件２）復号化処理において、当該画素が、予測値生成対象のブロックより後に処理されるブロックに属する場合、又は（条件３）constrained intra pred flag= ０で、当該ブロックがインターマクロブロックに属する場合、not available であるとされる。なお画素Ｅ〜Ｈは、（条件１）〜（条件３）の何れかに該当する場合でも、画素Ｄがavailable の場合、画素Ｄの画素値を適用してavailable とされる。
【００２９】
なおmb adaptive frame field flagが値１で、field pic flagが値０の場合、隣接画素Ａ〜Ｍは、mb adaptive frame field flagが値０である場合と同一に定義される。また当該ブロックが、field decoding mode であって、top field macroblockである場合、次式により示すように、隣接画素が定義される。
【００３０】
【数１】
0004650461.tif 000002
【００３１】
また当該ロブロックが、field decoding mode であって、bottom field macroblock である場合には、次式により示すように、隣接画素が定義される。
【００３２】
【数２】
0004650461.tif 000003
【００３３】
イントラ４×４モードは、図１０により示す複数の予測モードが用意されており、上述の隣接画素がavailable かnot available かの判定処理結果に応じて、適用可能な予測モードが変化する。ここでIntra4x4LumaPredMode[4x4LumaBlkIdx] の値が０、１〜８の場合の予測方向を、図１０との対比により図１１により示す。なお各予測モードの具体的な予測値については、復号化処理において詳述する。
【００３４】
ここで図１２に示すように、処理対象マクロブロックの上及び左に位置するマクロブロックは、処理対象のマクロブロックと高い相関を有している。そこでＪＶＴ規格では、符号化済みの上及び左に位置するマクロブロックの予測方向から、対象マクロブロックの予測方向を予測する方法も採用されている。
【００３５】
この隣接マクロブロックの予測方向を使用した予測方向の予測処理は、adaptive frame field flagが値０の場合、又はfield pic flagが値１の場合、始めに隣接マクロブロックのアドレス検出、availabilityの検証が実行される。ここでこのアドレス検出、検証の処理は、対象マクロブロックのアドレスMbAddress を入力し、この対象マクロブロックの上に位置するマクロブロックのアドレスMbAddressA及び左に位置するマクロブロックのアドレスMbAddressBを検出し、この上及び左に位置するマクロブロックのavailabilityを判定する処理である。
【００３６】
ここであるマクロブロックのアドレスMbAddress に対して、（条件１）MbAddress ＜０が成り立つ場合、（条件２）MbAddress ＞MaxMbAddress−１が成り立つ場合、（条件３）MbAddress により指定されるマクロブロックが異なるslice に属するものである場合、又は（条件４）MbAddress により指定されるマクロブロックが復号化済みではない場合、このアドレスMbAddress のマクロブロックは、not available であるとされる。
【００３７】
この判定処理が上及び左に位置するマクロブロックにそれぞれ適用されてavailable か否か判定される。なおマクロブロックペアによる処理において、左に位置するマクロブロックの属するマクロブロックペアのアドレスMbPairAddressAは、処理対象マクロブロックの属するマクロブロックペアのアドレスMbPairAddress −１であり、また上に位置するマクロブロックの属するマクロブロックペアのアドレスMbPairAddressBは、処理対象マクロブロックの属するマクロブロックペアのアドレスMbPairAddress − (frame width in mbs minus1 ＋１）である。
【００３８】
このマクロブロックの判定結果に基づいて、符号化装置では、隣接マクロブロックのアドレス検出、availabilityの検証が以下のように行われる。なおこの処理の入力パラメータは、MbAddressAであり、出力は変数ExtIntra4x4LumaPred の値（４種類）である。符号化装置では、この隣接マクロブロックから予測方向を予測する場合には、この変数ExtIntra4x4LumaPred を伝送する。
【００３９】
ここで当該マクロブロックの左に位置するマクロブロック（MbAddressAで指し示されるマクロブロック）がavailable であり、MbAddressAで指し示されるマクロブロックのmb typeがI 4x4 又はSIの時、ExtIntra4x4LumaPredModeの値は以下の処理により得られる。ここでIntra4x4LumaPredModeは、MbAddressAにより指し示されるマクロブロックに対して割り当てられた値である。
【００４０】
【数３】
0004650461.tif 000004
【００４１】
またMbAddressAで指し示されるマクロブロックがavailable でなく、又はそのmb type
がI 4x4 、SIの何れでもない場合、ExtIntra4x4LumaPredMode の値は以下の処理により得られる。
【００４２】
【数４】
0004650461.tif 000005
【００４３】
また当該マクロブロックの上に位置するマクロブロック（MbAddressBで指し示されるマクロブロック）がavailable で、MbAddressBで指し示されるマクロブロックのmb type が、I 4x4 又はSIの場合、ExtIntra4x4LumaPredMode の値は以下の処理により得られる。ここで、Intra4x4LumaPredModeは、MbAddressBにより指し示されるマクロブロックに対して割り当てられた値である。
【００４４】
【数５】
0004650461.tif 000006
【００４５】
またMbAddressBで指し示されるマクロブロックがavailable でなく、又はそのmb type
がI 4x4 、SIの何れでもない場合、ExtIntra4x4LumaPredModeの値は以下の処理により得られる。
【００４６】
【数６】
0004650461.tif 000007
【００４７】
また図７について上述したマクロブロックペアの処理の場合、符号化装置では、隣接マクロブロックペアのイントラ予測モードに関する情報を抽出して伝送する。ここで当該マクロブロックのmb adaptive frame field flagが値１であって、field pic flagが値０の場合、以下のように処理される。
【００４８】
まず当該マクロブロックペアが、frame modeの場合、MbPairAddressA及びMbPairAddressBから、top macroblock、bottom macroblock のそれぞれに対して、当該マクロブロックに対するExtIntra4x4LumaPredModeTop及びExtIntra4x4LumaPredModeBottom （合計８種類）が求められる。
【００４９】
ここでTop macroblockに関しては、（３）式及び（５）式により、ExtIntra4x4PredModeTop、ExtIntra4x4PredModeTopが求められる。またBottom  Macroblockに関しては、（３）式及び（５）式により、ExtIntra4x4PredModeTop、ExtIntra4x4PredModeTopが求められる。なおこれらにおいて（３）式及び（５）式のMbAddressA、MbAddressBには、それぞれMbPairAddressA、MbPairAddressBが適用される。
【００５０】
また当該マクロブロックペアが、field modeの場合、同様に、MbPairAddressA及びMbPairAddressBから、top macroblock、bottom macroblock のそれぞれに対して、当該マクロブロックに対するExtIntra4x4LumaPredModeTop及びExtIntra4x4LumaPredModeBottom （合計８種類）が求められる。
【００５１】
ここで隣接マクロブロックペアMbPairAddressAに対しては、（３）式により、それぞれExtIntra4x4LumaPredModeTop及びExtIntra4x4LumaPredModeBottom が求められる。なおここで（３）式のMbAddressAには、MbPairAddressAが適用される。
【００５２】
なお隣接マクロブロックペア MbPairAddressB がfield modeである場合、又は隣接マクロブロックペア MbPairAddressB がavailable でない場合であって、当該マクロブロックペアがtop macroblockの場合、（５）式により、ExtIntra4x4LumaPredModeTopが求められる。なおこの場合、（５）式のMBAddressBには、MBPairAddressBで指し示されるMB Pairのtop macroblockが適用される。
【００５３】
隣接マクロブロックペア MbPairAddressB がfield modeである場合、又は隣接マクロブロックペア MbPairAddressB がavailable でない場合であって、当該マクロブロックペアがbottom macroblock の場合、（５）式により、ExtIntra4x4LumaPredModeBottom が求められる。なおこの場合、（５）式のMBAddressBには、MBPairAddressBで指し示されるMB Pair のtop macroblockが適用される。
【００５４】
また隣接マクロブロックペア MbPairAddressB がframe modeである場合、当該マクロブロックペアにおけるtop macroblockについては、（５）式が適用されてExtIntra4x4LumaPredModeTopが求められる。但し、（５）式のMBAddressBには、MBPairAddressBで指し示されるマクロブロックペアのtop macroblockが適用される。また当該マクロブロックペアにおけるbottom macroblock については、（５）式が適用されてExtIntra4x4LumaPredModeBottom が求められる。但し、（５）式のMBAddressBには、MBPairAddressBで指し示されるマクロブロックペアのbottom macroblock が適用される。
【００５５】
なお図１３（Ａ）〜（Ｄ）は、マクロブロックペアfield modeの場合の、これらの処理結果によるマクロブロックペアの関係を示す図である。
【００５６】
マクロブロックに対するIntra4x4LumaPredModeの復号化処理は、以下のように実行される。ここでこの処理は、adaptive frame field flag が値１の場合、又はfield pic flagが値１の場合に適用され、prev intra4x4 pred mode flag、rem intra4x4 pred mode、ExtIntra4x4LumaPredMode を用いた以下の擬似コードにより記述される。
【００５７】
【数７】
0004650461.tif 000008
【００５８】
これに対して図７について上述したマクロブロックペアに対するIntra4x4LumaPredModeの復号化処理は、以下のように実行される。ここでこの処理は、mb adaptive frame field flagが値１であって、field pic flagが値０の場合に適用される。この処理は、当該マクロブロックペアのtop macroblockに対するprev intra4x4 pred mode flag、rem intra4x4 pred mode、ExtIntra4x4LumaModePredTopを用いた（７）式の疑似コードの処理により実行される。なお求められたIntra4x4LumaPredModeは、当該マクロブロックペアのtop macroblockに対して割り当てられる。また当該マクロブロックペアのbottom macroblock に対するprev intra4x4 pred mode flag、rem intra4x4 pred mode、ExtIntra4x4LumaModePredTopを用いた（７）式の疑似コードの処理により、Intra4x4LumaPredModeが求められ、当該マクロブロックペアのbottom macroblock に対して割り当てられる。
【００５９】
またイントラ４×４モードにおけるイントラ予測の復号化処理は、図９について上述した隣接画素Ａ〜Ｍの画素値、４×４ブロックに対して定義されるIntra4x4LumaPredMode[4x4LumaBlkIdx] を用いて、4x4LumaBlkIdx によって指定されるブロックに対して予測画素値が求められる。
【００６０】
ここでVertical予測は、Intra4x4LumaPredMode[4x4LumaBlkIdx] が値０の場合に適用され、隣接画素Ａ〜Ｄがavailable の場合のみ適用される。それぞれの予測値は、次式により示される。
【００６１】
【数８】
0004650461.tif 000009
【００６２】
またHorizontal予測は、Intra4x4LumaPredMode[4x4LumaBlkIdx] が値１の場合に適用され、隣接画素Ｉ〜Ｌがavailable の場合にのみ適用される。それぞれの予測値は次式により示される。
【００６３】
【数９】
0004650461.tif 000010
【００６４】
またDC予測は、Intra4x4LumaPredMode[4x4LumaBlkIdx] が値２の場合に適用され、隣接画素Ａ〜Ｌが全てavailable の場合、予測値は次式により示される。
【００６５】
【数１０】
0004650461.tif 000011
【００６６】
これに対して隣接画素Ａ〜Ｄの全てがnot available の場合、予測値は次式により示される。
【００６７】
【数１１】
0004650461.tif 000012
【００６８】
また隣接画素Ｉ〜Ｌの全てがnot available の場合、予測値は次式により示される。
【００６９】
【数１２】
0004650461.tif 000013
【００７０】
また隣接画素Ａ〜Ｌの全てがnot available の場合、予測値は値１２８とされる。
【００７１】
これに対してDiagonal Down Left予測は、Intra4x4LumaPredMode[4x4LumaBlkIdx] が値３の場合に適用され、隣接画素Ａ〜Ｍがavailable の場合にのみ適用され、予測値は次式により示される。
【００７２】
【数１３】
0004650461.tif 000014
【００７３】
またDiagonal Down Right 予測は、Intra4x4LumaPredMode[4x4LumaBlkIdx] が値４の場合に適用され、隣接画素Ａ〜Ｍがavailable の場合にのみ適用され、予測値は次式により示される。
【００７４】
【数１４】
0004650461.tif 000015
【００７５】
またDiagonal Vertical Right 予測は、Intra4x4LumaPredMode[4x4LumaBlkIdx] が値５の場合に適用され、隣接画素Ａ〜Ｍがavailable の場合にのみ適用され、予測値は次式により示される。
【００７６】
【数１５】
0004650461.tif 000016
【００７７】
またHorizontal Down 予測は、Intra4x4LumaPredMode[4x4LumaBlkIdx] が値６の場合に適用され、隣接画素Ａ〜Ｍがavailable の場合にのみ適用され、予測値は次式により示される。
【００７８】
【数１６】
0004650461.tif 000017
【００７９】
またVertical Left 予測は、Intra4x4LumaPredMode[4x4LumaBlkIdx] が値７の場合に適用され、隣接画素Ａ〜Ｍがavailable の場合にのみ適用され、予測値は次式により示される。
【００８０】
【数１７】
0004650461.tif 000018
【００８１】
またHorizontal Up 予測は、Intra4x4LumaPredMode[4x4LumaBlkIdx] が値８の場合に適用され、隣接画素Ａ〜Ｍがavailable の場合にのみ適用され、予測値は次式により示される。
【００８２】
【数１８】
0004650461.tif 000019
【００８３】
次に、イントラ１６×１６モードに関する処理を説明する。ここでイントラ１６×１６モードは、mb part pred mode(mb type,0)が、Intra16x16と等しい場合に適用される。予測値の生成処理では、当該マクロブロックに対するmb type 及び当該マクロブロックの隣接画素のデブロックフィルタ１５による処理前の画素値を入力パラメータとして、マクロブロックに対する輝度信号の予測値を生成する。
【００８４】
ここで当該マクロブロックに属する画素値を、P(x,y); x,y= 0〜15で表す。また、隣接画素値は、P(x,-1)及びP(-1,y); x,y= -1〜15で表す。画素値P(x,-1) 及びP(-1,y) について、以下の条件１又は条件２が成立する場合、画素値P(x,y)は、not available とする。なお条件１は、予測値生成元が当該ピクチャ若しくは当該スライス内に存在しない場合であり、条件２は、隣接画素値が、非イントラマクロブロックに所属し、かつconstrained intra pred flag が値１の場合である。
【００８５】
イントラ１６×１６モードでは、この画素値P(x,y)の判定によりモード０〜モード３が定義される。ここでモード０は、vertical予測であり、画素値P(x,-1); x,y= -1〜15がavailable である場合にのみ適用され、予測値は次式により示される。
【００８６】
【数１９】
0004650461.tif 000020
【００８７】
またモード１は、horizontal予測であり、画素値P(-1,y); x,y= -1〜15がavailable である場合にのみ適用され、予測値は次式により示される。
【００８８】
【数２０】
0004650461.tif 000021
【００８９】
またモード２は、DC予測であり、画素値P(x,-1)及びP(-1,y); x,y= -1〜15が全てavailable である場合、予測値は次式により示される。
【００９０】
【数２１】
0004650461.tif 000022
【００９１】
またモード２において、画素値P(x,-1); x,y= -1〜15がnot available である場合、予測値は次式により示される。
【００９２】
【数２２】
0004650461.tif 000023
【００９３】
またモード２において、画素値P(-1,y); x,y= -1〜15がnot available である場合、予測値は次式により示される。
【００９４】
【数２３】
0004650461.tif 000024
【００９５】
また画素値P(x,-1)及びP(-1,y); x,y= -1〜15が全てnot available である場合、予測値が値１２８に設定される。
【００９６】
これに対してモード３は、plane 予測であり、画素値P(x,-1)及びP(-1,y); x,y= -1〜15が全てavailable の場合にのみ適用され、予測値が次式により示される。なおここで、Ｃｌｉｐ（）は、０〜２５５の範囲でのクリップ処理を表す。
【００９７】
【数２４】
0004650461.tif 000025
【００９８】
次に色差信号のイントラ予測を説明する。ここで色差信号のイントラ予測は、Ｉマクロブロック及びSIマクロブロックに対してのみ適用され、intra chroma pred mode及びデブロックフィルタ１５による処理前の隣接画素値を入力パラメータとして、マクロブロックの色差信号に対する予測値を生成する。
【００９９】
ここで当該マクロブロックに属する画素値をP(x,y); x,y=0 〜7 で表す。また、隣接画素値をP(x,-1) 及びP(-1,y); x,y=-1 〜7 で表す。なお色差信号に対するイントラ予測モードは、輝度信号の予測モードとは独立に設定することが可能である。画素値P(x,-1)及びP(-1,y) について、条件１又は条件２が成立する場合、画素値P(x,y)は、not available とする。なお条件１は、予測値の生成元が当該ピクチャ若しくは当該スライス内に存在しない場合であり、条件２は、隣接画素値が、非イントラマクロブロックに所属し、かつconstrained intra pred flagが値１の場合である。
【０１００】
色差信号のイントラ予測モードでは、この画素値P(x,y)の判定によりモード０〜モード３が定義される。ここでモード０は、DC予測であり、P(x,-1) 及びP(-1,y) がavailableである場合、予測値は次式により示される。
【０１０１】
【数２５】
0004650461.tif 000026
【０１０２】
これに対して画素値P(-1,y) がnot available である場合、予測値は次式により示される。
【０１０３】
【数２６】
0004650461.tif 000027
【０１０４】
また画素値P(x,-1) がnot available である場合には、予測値は次式により示される。
【０１０５】
【数２７】
0004650461.tif 000028
【０１０６】
また画素値P(x,-1) 及びP(-1,y) がnot available である場合には、予測値は値１２８に設定される。
【０１０７】
またモード１はhorizontal予測であり、画素値P(-1,y) がavailable の場合にのみ適用され、予測値は次式により示される。
【０１０８】
【数２８】
0004650461.tif 000029
【０１０９】
またモード２はvertical予測であり、画素値P(x,-1) がavailable の場合にのみ適用され、予測値は次式により示される。
【０１１０】
【数２９】
0004650461.tif 000030
【０１１１】
またモード３はplane 予測であり、画素値P(x,-1) 及びP(-1,y) がavailable の場合にのみ適用され、予測値は次式により示される。
【０１１２】
【数３０】
0004650461.tif 000031
【０１１３】
符号化装置は、これら各種の予測モードから最適予測モードを選択して画像データＤ１を符号化処理する。ここでＯｒｇ（ｉ，ｊ）を当該４×４ブロックにおける原画像上の画素値とし、Ｐｒｅｄ（ｍｏｄｅ，ｉ，ｊ）をｍｏｄｅ（ｉ，ｊ）で示されるイントラ予測モードによる予測値とする。符号化装置は、次式の演算処理により予測誤差が最も小さくなる予測モードを最適予測モードとする。
【０１１４】
【数３１】
0004650461.tif 000032
【０１１５】
なおここでＳＡＤは最小値のモードを選択する関数であり、次式により示すように、ＳＡＤに代えてＳＡＴＤ（ｍｏｄｅ）を適用してもよい。
【０１１６】
【数３２】
0004650461.tif 000033
【０１１７】
なおここでＨａｄａｍａｒｄ（）は、アダマール変換操作を示し、次式により示すように、対象の行列にアダマール変換行列を掛けて実行される。
【０１１８】
【数３３】
0004650461.tif 000034
【０１１９】
なおＨは、アダマール変換行列であり、４次では次式により表される。
【０１２０】
【数３４】
0004650461.tif 000035
【０１２１】
またＨT はアダマール変換行列Ｈを転置したものである。
【０１２２】
実際上、符号化装置１では、図１４（Ａ）〜（Ｃ）に示すように、イントラ４×４モード、イントラ８×８モード、イントラ１６×１６モードによる予測モード毎に、１６画素×１６画素のブロック単位でＳＡＤ（ｍｏｄｅ）又はＳＡＴＤ（ｍｏｄｅ）を求め、若しは各モードによる発生符号量にヘッダビット成分による符号量を加味したコスト関数による最小値のモードを選択し、最適予測モードを選択する。なおこの図１４には各予測モードにおけるマクロブロックとの関係を併せて図１４（Ｄ）に示す。
【０１２３】
またはこの１６画素×１６画素のブロックを、各イントラ予測モードｍｏｄｅで符号化したときのヘッダビットを、ＳＡＤ０（ｍｏｄｅ）又はＳＡＴＤ０（ｍｏｄｅ）で表し、このＳＡＤ０（ｍｏｄｅ）又はＳＡＴＤ０（ｍｏｄｅ）で表されるコスト値Ｃｏｓｔを最小とする予測モードを最適予測モードとする。なおこのコスト値Ｃｏｓｔは、次式により表され、ＱＰO （ＱＰ）は、量子化パラメータＱＰと実際量子化に用いられる量子化スケールを関連付ける関数である。なおここでコスト値は、予測モードの判定に使用するコスト関数により求められる各予測モードにおける値であり、発生符号量を示す指標としての値である。具体的にコスト値は、（３１）式、（３２）式では各予測モードにおける右辺の値である。
【０１２４】
【数３５】
0004650461.tif 000036
【０１２５】
なおこの（３５）式に代えて、次式を適用するようにしてもよい。
【０１２６】
【数３６】
0004650461.tif 000037
【０１２７】
このような各種予測モードによる符号化処理に関して、例えば特開２００５−１５１０１７号公報には、処理対象画像の解像度等より予測モードを絞り込むことにより、最適モードを選択する処理を簡略化する方法が提案されている。
【０１２８】
ところで上述した多数の予測モードから最適予測モードを選択する処理にあっては、演算処理量が膨大なる問題がある。特にイントラ４×４モード、イントラ８×８モード、イントラ１６×１６モードでは、１つのブロック当たりそれぞれ９、９、４つの予測方向毎にコスト値を算出することが必要になり、このコスト値の算出に多大なる演算量を要する。
【特許文献１】特開２００５−１５１０１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０１２９】
本発明は以上の点を考慮してなされたもので、多数の予測モードから最適予測モードを選択して画像データを符号化処理する場合に、最適予測モードの選択に係る演算処理量を低減することができる符号化装置、符号化方法、プログラム、及び記録媒体を提案しようとするものである。
【課題を解決するための手段】
【０１３０】
上記課題を解決するために、本発明のある観点によれば、イントラ予測モードにおいて、入力画像データから予測値を減算して差分データを生成し、前記差分データを処理して前記入力画像データを符号化処理する符号化装置において、第１の予測値生成単位の複数の予測モードから、前記第１の予測値生成単位での符号化処理に最適な第１の最適予測モードを検出する第１の予測モード検出部と、前記第１の予測値生成単位を分割した第２の予測値生成単位の複数の予測モードから、前記第２の予測値生成単位での符号化処理に最適な第２の最適予測モードを検出する第２の予測モード検出部と、前記第１及び第２の最適予測モードから、前記符号化処理に最適な符号化処理の最適予測モードを選択し、前記符号化処理の最適予測モードにより前記予測値を生成する予測値生成部と、を有し、前記第１の予測モード検出部は、前記第１の予測値生成単位における複数の予測モード毎に、発生符号量を示すコスト値を計算する第１のコスト値計算部を有し、前記第１のコスト値計算部で計算した前記コスト値の比較により、前記第１の最適予測モードを検出し、前記第２の予測モード検出部は、前記第２の予測値生成単位における複数の予測モード毎に、発生符号量を示すコスト値を計算する第２のコスト値計算部を有し、前記第２のコスト値計算部で計算したコスト値の比較により、前記第２の最適予測モードを検出し、前記第１のコスト値計算部は、前記第１の予測値生成単位毎に、前記第２のコスト値計算部で計算したコスト値を対応する予測モード毎に集計することにより、前記コスト値を計算し、前記第２の予測値生成単位における予測モードには存在しない予測方向による前記第１の予測値生成単位の予測モードについては、前記第２のコスト値計算部で計算した予測方向の異なるコスト値を用いる（但し、少なくとも２つのコスト値が用いられてもよいし、それらの平均値を集計したものが用いられてもよい。）、符号化装置が提供される。
【０１３１】
また、前記第１の最適予測モードが、イントラ１６×１６モードの最適予測モードであり、前記第２の最適予測モードが、イントラ４×４モードの最適予測モード又はイントラ８×８モードの最適予測モードであってもよい。
【０１３２】
また、前記第１の最適予測モードが、イントラ８×８モードの最適予測モードであり、前記第２の最適予測モードが、イントラ４×４モードの最適予測モードであってもよい。
【０１３３】
また、上記課題を解決するために、本発明の別の観点によれば、イントラ予測モードにおいて、入力画像データから予測値を減算して差分データを生成し、前記差分データを処理して前記入力画像データを符号化する符号化方法において、第１の予測値生成単位を分割した第２の予測値生成単位における複数の予測モード毎に、発生符号量を示すコスト値を計算する第２のコスト値計算ステップと、前記第２のコスト値計算ステップで計算したコスト値の比較により、前記第２の予測値生成単位での符号化処理に最適な第２の最適予測モードを検出する第２の最適予測モード検出ステップと、前記第１の予測値生成単位毎に、前記第２のコスト値計算ステップで計算したコスト値を対応する予測モード毎に集計することにより、前記第１の予測値生成単位における複数の予測モード毎に、発生符号量を示すコスト値を計算する第１のコスト値計算ステップと、前記第１のコスト値計算ステップで計算した前記コスト値の比較により、前記第１の予測値生成単位での符号化処理に最適な第１の最適予測モードを検出する第１の最適予測モード検出ステップと、前記第１及び第２の最適予測モードから、前記符号化処理に最適な符号化処理の最適予測モードを選択し、前記符号化処理の最適予測モードにより前記予測値を生成する予測値生成ステップと、を含み、前記第１のコスト値計算ステップでは、前記第２の予測値生成単位における予測モードには存在しない予測方向による前記第１の予測値生成単位の予測モードについては、前記第２のコスト値計算ステップで計算した予測方向の異なるコスト値を用いる、符号化方法が提供される。
【０１３４】
また、上記課題を解決するために、本発明の別の観点によれば、上記の符号化方法をコンピュータに実現させるためのプログラムが提供される。さらに、上記課題を解決するために、本発明の別の観点によれば、当該プログラムが記録された、コンピュータにより読み取り可能な記録媒体が提供される。
【０１３８】
上記構成によれば、第２の最適予測モードを検出する処理を利用して、第１の予測モードを検出することから、第１の予測モードを検出する際の演算処理量を低減することができる。従って多数の予測モードから最適予測モードを選択して画像データを符号化処理する場合に、最適予測モードの選択に係る演算処理量を低減することができる。
【０１３９】
また、第１の最適予測モードを検出する処理を利用して、第２の予測モードを検出すると、第２の予測モードを検出する際の演算処理量を低減することができる。従って多数の予測モードから最適予測モードを選択して画像データを符号化処理する場合に、最適予測モードの選択に係る演算処理量を低減することができる。
【発明の効果】
【０１４０】
本発明によれば、多数の予測モードから最適予測モードを選択して画像データを符号化処理する場合に、最適予測モードの選択に係る演算処理量を低減することができる。
【発明を実施するための最良の形態】
【０１４１】
以下、適宜図面を参照しながら本発明の実施例を詳述する。
【実施例１】
【０１４２】
（１）実施例の構成
図２は、図５との対比により本発明の実施例１の符号化装置を示すブロック図である。この符号化装置４１は、イントラ予測回路５に代えて、イントラ予測回路４２及びイントラ予測推定回路４３が設けられる点を除いて、符号化装置１と同一に構成される。この符号化装置４１は、イントラ予測回路４２及びイントラ予測推定回路４３により最適予測モードを選択してイントラ予測の予測値を生成する。
【０１４３】
ここでイントラ予測回路４２は、イントラ４×４モードにおける各予測モードのコスト値を計算し、イントラ１６×１６モードのマクロブロックに対応するブロック単位で、計算したコスト値をイントラ予測推定回路４３に出力する。なおコスト値の計算手法は、発生符号を示すものであれば、種々の計算手法を適用することができる。
【０１４４】
イントラ予測推定回路４３は、このイントラ予測回路４２から出力されるイントラ４×４モードにおける各予測モードのコスト値を用いて、イントラ８×８モード及びイントラ１６×１６モードにおける各予測モードのコスト値を計算する。またこの計算したコスト値からそれぞれ最小値を検出し、イントラ８×８モード及びイントラ１６×１６モードにおける最適予測モードを検出する。イントラ予測推定回路４３は、この検出した最適予測モードを、そのコスト値と共にイントラ予測回路４２に通知する。
【０１４５】
イントラ予測回路４２は、始めに検出したイントラ４×４モードにおける各予測モードのコスト値から、イントラ４×４モードにおける最適予測モードを検出する。イントラ予測回路４２は、これらイントラ４×４モードにおける最適な予測モードと、イントラ予測推定回路４３から通知されるイントラ８×８モードにおける最適予測モード及びイントラ１６×１６モードにおける最適予測モードとから、イントラ予測に最適予測モードを検出し、このイントラ予測の最適予測モードによる予測値を計算して減算回路４に出力する。なおこのイントラ予測の最適予測モードの検出は、例えば最小のコスト値の検出により実行される。
【０１４６】
ここで図１は、イントラ予測推定回路４３における処理手順を示すフローチャートである。イントラ予測推定回路４３は、イントラ４×４モードにおける各予測モードのコスト値がイントラ予測回路４２から１６画素×１６画素のブロック分入力されると、この処理手順を開始してステップＳＰ１からステップＳＰ２に移る。
【０１４７】
ここでこのイントラ４×４モードにおける各予測モードのコスト値をＣｏｓｔ〔ｘ〕〔ｋ〕とする。なおここでＫは、予測方向を示す変数である。イントラ４×４モード、イントラ８×８モードでは、この変数Ｋによりモード０〜モード８による９方向の予測方向が特定され、イントラ１６×１６モードでは、この変数Ｋによりモード０〜モード３による４方向の予測方向が特定される。またｘは、図１４（Ａ）において数字１〜１６により示すブロックを特定する変数であり、イントラ１６×１６モードのマクロブロックにおいて、イントラ４×４モードの各ブロックを特定する変数である。
【０１４８】
イントラ予測推定回路４３は、このステップＳＰ２において、イントラ８×８モードのコスト値Ｃｏｓｔ〔α〕〔ｋ〕の計算に使用する変数α、ｋを初期化する。ここで変数αは、図１４（Ｂ）についてｉ〜ｉｖにより示すサブマクロブロックを特定する変数であり、イントラ１６×１６モードのマクロブロックにおいて、イントラ８×８モードの各サブマクロブロックを特定する変数である。具体的に、この図１の例では、変数Ｋをモード０を示す変数に初期化し、またαを先頭サブマクロブロックｉを示す変数に初期化する。
【０１４９】
続いてイントラ予測推定回路４３は、ステップＳＰ３において、次式の演算処理により、イントラ８×８モードにおける変数Ｋによる予測モードについて、対応する予測方向及びブロックのイントラ４×４モードにおけるコスト値Ｃｏｓｔ（ｘ）[K] を積算し、コスト値Ｃｏｓｔ（α）[K] を計算する。
【０１５０】
【数３７】
0004650461.tif 000038
【０１５１】
なおここで（３７）式における右辺のｘは、図１４（Ｄ）の表により示される。従ってイントラ予測推定回路４３は、イントラ８×８モードにおける先頭サブマクロブロックｉのモード０については、次式により示すように、イントラ４×４モードにおけるブロック１、２、５、６のモード０のコスト値Ｃｏｓｔを積算して、コスト値を計算する。
【０１５２】
【数３８】
0004650461.tif 000039
【０１５３】
なおＪＶＴ規格により使用できない予測方向ｕが存在する場合、その場合のコスト値は、例えば次式により示すように、この予測方向のモードが選択されない値にコスト値Ｃｏｓｔ（ｘ）[K] が設定されてコスト値が積算される。従って、次式では、コスト値を無限大としているが、これに代えて計算過程でオーバーフローする値、予測されるコスト値の最大値を越える値等、他のコスト値に比して値の大きな種々の値を適用することができる。
【０１５４】
【数３９】
0004650461.tif 000040
【０１５５】
イントラ予測推定回路４３は、続いてステップＳＰ４に移り、変数Ｋを更新し、コスト値を計算する予測モードを変更する。また続くステップＳＰ５において、変数Ｋを判定することにより、最後の予測モードまでコスト値を計算したか否か判断する。ここで否定結果が得られると、イントラ予測推定回路４３は、ステップＳＰ３に戻り、続く予測モードについて、同様にしてコスト値を計算する。その結果、イントラ予測推定回路４３は、ステップＳＰ３−ＳＰ４−ＳＰ５−ＳＰ３の処理手順を繰り返し、イントラ８×８モードにおける先頭サブマクロブロックｉについて、モード０からモード８まで、順次、コスト値を計算し、モード８までコスト値を計算すると、ステップＳＰ５で肯定結果が得られてステップＳＰ６に移る。
【０１５６】
このステップＳＰ６において、イントラ予測推定回路４３は、変数Ｋを初期化する。また変数αの更新によりコスト値計算対象のサブマクロブロックを切り換える。続いてイントラ予測推定回路４３は、ステップＳＰ７に移り、変数αの判定により、イントラ８×８モードの最後のサブマクロブロックivまでコスト値を計算したか否か判断する。ここで否定結果が得られると、イントラ予測推定回路４３は、ステップＳＰ３に戻り、続くサブマクロブロックのコスト値を計算する。
【０１５７】
従ってイントラ予測推定回路４３は、この場合、続くサブマクロブロックii、iii 、ivについて、サブマクロブロックｉと同様にして、順次、イントラ４×４モードで計算したコスト値を積算して各予測モードのコスト値を計算する。また最後のサブマクロブロックivのコスト値を計算すると、ステップＳＰ７からステップＳＰ８に移る。
【０１５８】
このステップＳＰ８において、イントラ予測推定回路４３は、サブマクロブロックｉ〜ivでそれぞれ検出したモード０〜モード８のコスト値を用いて、それぞれサブマクロブロック毎に次式の演算処理を実行し、サブマクロブロック毎にコスト値の最小値を検出する。またこの検出した最小値の予測方向ｄ（α）を検出する。
【０１５９】
【数４０】
0004650461.tif 000041
【０１６０】
このステップＳＰ８の処理により、イントラ予測推定回路４３は、イントラ８×８モードにおける最適予測モードをサブマクロブロック毎に検出する。続いてイントラ予測推定回路４３は、ステップＳＰ９に移り、変数Ｋを初期化する。
【０１６１】
また続くステップＳＰ１０において、次式の演算処理を実行し、イントラ１６×１６モードにおける変数Ｋによる予測モードについて、対応する予測方向のイントラ４×４モードにおけるコスト値Ｃｏｓｔ（ｘ）[K] を積算してコスト値Ｃｏｓｔ[K] を計算する。
【０１６２】
【数４１】
0004650461.tif 000042
【０１６３】
従ってイントラ予測推定回路４３は、モード０については、イントラ４×４モードのブロック１〜１６におけるモード０のコスト値Ｃｏｓｔを積算してコスト値を計算する。続いてイントラ予測推定回路４３は、ステップＳＰ１１において、変数Ｋの更新により、計算対象のモードを変更する。また続くステップＳＰ１２において、この変数Ｋの判定により、イントラ１６×１６モードの最後のモードまでコスト値を計算したか否か判断する。
【０１６４】
イントラ予測推定回路４３は、このステップＳＰ１２で否定結果が得られると、ステップＳＰ１０に戻り、続くモード１のコスト値を計算する。またこのモード１のコスト値を計算すると、ステップＳＰ１１で計算対象のモードを更新した後、ステップＳＰ１２からステップＳＰ１０に戻り、モード２のコスト値を計算する。また同様にしてモード３のコスト値を計算する。
【０１６５】
ここでＪＶＴ規格では、イントラ１６×１６モードとイントラ４×４モードとで、モード３である３番目の予測方向が異なる。そこでイントラ予測推定回路４３は、予測方向の異なるイントラ４×４モードのコスト値を平均値化して積算し、イントラ１６×１６モードにおけるモード３のコスト値を計算する。具体的に、イントラ予測推定回路４３は、このモード３のコスト計算では、次式の演算処理により、イントラ４×４モードにおける３番目の予測方向によるコスト値Ｃｏｓｔ（ｘ）[3] （モード３のコスト値）と８番目の予測方向によるコスト値Ｃｏｓｔ（ｘ）[8] （モード８のコスト値）との平均値を積算してイントラ１６×１６モードによるコスト値Ｃｏｓｔ[3] を計算する。
【０１６６】
【数４２】
0004650461.tif 000043
【０１６７】
この（４２）式の演算処理により、イントラ予測推定回路４３は、イントラ１６×１６モードとイントラ４×４モードとの間で、相関の高いモードの処理結果を利用して、イントラ４×４モードでは存在しないイントラ１６×１６モードにおける予測方向のコスト値Ｃｏｓｔ[3] を計算する。
【０１６８】
イントラ予測推定回路４３は、ステップＳＰ１０において、モード３のコスト値を計算すると、この場合、続くステップＳＰ１２において、肯定結果が得られることにより、ステップＳＰ１２からステップＳＰ１３に移る。
【０１６９】
ここでイントラ予測推定回路４３は、ステップＳＰ１０の繰り返しで検出したイントラ１６×１６モード、モード０〜モード３のコスト値から最小値を検出し、イントラ１６×１６モードにおける最適予測モードを検出する。イントラ予測推定回路４３は、このステップＳＰ１３で検出したイントラ１６×１６モードにおける最適予測モードと、ステップＳＰ８で検出したイントラ８×８モードにおける最適予測モードとをイントラ予測回路４２に通知し、ステップＳＰ１４に移ってこの処理手順を終了する。
【０１７０】
（２）実施例の動作
以上の構成において（図２）、ビデオ信号Ｓ１は、アナログディジタル変換回路２により画像データＤ１に変換され、画面並べ替えバッファ３において、ＧＯＰ構造に応じて並べ替えられ、続く減算回路４において、イントラ予測回路５、動き予測・補償回路６で生成されるイントラ予測、インター予測の予測値が減算されて差分データＤ２が生成される。ビデオ信号Ｓ１は、この差分データＤ２が直交変換回路７により直交変換処理され、その結果得られる係数データが量子化回路８で量子化された後、可逆符号化回路１０で可変長符号化処理されて符号化データＤ５（Ｄ４）が生成され、この符号化データＤ５がバッファ１１を介して伝送路に出力される。また量子化回路８の出力データが逆量子化回路１３、逆直交変換回路１４で順次処理されて元の画像データＤ１が復号され、この画像データＤ１が参照画像情報としてフレームメモリ１６に格納される。
【０１７１】
この一連の符号化処理において、符号化装置４１では、複数のイントラ予測モードと複数のインター予測モードとから最適予測モードを選択し、この選択した予測モードによる予測値を画像データＤ１から減算して差分データＤ２を生成し、効率良くデータ圧縮して画像データＤ１を伝送する。
【０１７２】
しかしながらこの複数の予測モードから最適予測モードを選択する処理は、従来、各予測モードで、発生符号量を示すコスト値を計算し、最小のコスト値を検出することが必要であり、このコスト値の計算に多大な演算量を必要とした。
【０１７３】
そこでこの符号化装置４１では、イントラ予測モードに関して、イントラ４×４モードについては、イントラ予測回路４２で従来と同様にして予測モード毎にコスト値が計算され、計算したコスト値から最小のコスト値を検出して最適予測モードが検出される。
【０１７４】
これに対してイントラ８×８モード、イントラ１６×１６モードについては、このイントラ予測回路４２におけるイントラ４×４モードの処理を利用して、イントラ予測推定回路４３でそれぞれ最適予測モードが検出される。またこのイントラ予測推定回路４３で検出したイントラ８×８モード、イントラ１６×１６モードの最適予測モードと、イントラ４×４モードの最適予測モードとがイントラ予測回路４２で判定されてイントラ予測の最適予測モードが検出され、この検出した最適予測モードによるイントラ予測の予測値が生成される。
【０１７５】
その結果、この符号化装置４１では、イントラ４×４モードの処理を利用して、イントラ８×８モード、イントラ１６×１６モードの最適予測モードを検出することにより、イントラ８×８モード、イントラ１６×１６モードにおいて最適予測モードを検出する際の演算処理を従来に比して低減することができ、最適予測モードの選択に係る演算処理量を低減する。
【０１７６】
より具体的に、符号化装置４１では、イントラ予測推定回路４３において、イントラ４×４モードで求められた各予測モードのコスト値が、イントラ８×８モードの予測モード毎に集計され、イントラ８×８モードにおける各予測モードのコスト値が求められる。また同様に、イントラ４×４モードで求められた各予測モードのコスト値が、イントラ１６×１６モードの予測モード毎に集計され、イントラ１６×１６モードにおける各予測モードのコスト値が求められる。またイントラ８×８モード、イントラ１６×１６モードでそれぞれこれらのコスト値の最小値が求められ、イントラ８×８モード、イントラ１６×１６モードにおける最適予測モードが求められる。
【０１７７】
従ってこの符号化装置４１では、イントラ８×８モード、イントラ１６×１６モードにおけるコスト値を計算する処理を、従来に比して格段的に少ない演算量で実行することができ、その結果、最適予測モードの選択に係る演算処理量を従来に比して低減することができる。
【０１７８】
ここでこの実施例のように、イントラ４×４モードで求められたコスト値を用いて、イントラ８×８モード、イントラ１６×１６モードにおけるコスト値を計算する場合、予測元の画素の位置、デブロックフィルタによる処理の有無等が異なることにより、（３１）式、（３２）式等によりコスト値を求める場合に比して、精度に欠ける恐れがある。しかしながらこれらイントラ４×４モード、イントラ８×８モード等では、予測方向、原画像の空間的位置が同じであることから、実際には、（３１）式、（３２）式等によりコスト値を求める場合に比して、実用上十分な精度でコスト値を求めることができる。従ってこの符号化装置４１では、実用上十分な精度で最適予測モードを検出して効率良く画像データＤ１を符号化処理することができる。
【０１７９】
またイントラ４×４モードには存在しないイントラ１６×１６モードの予測方向については、相関の高い２つのモードのコスト値を平均値化して集計することによりコスト値が求められる。その結果、符号化装置４１では、イントラ４×４モードにおける相関の高い処理結果を利用して、イントラ４×４モードには存在しないイントラ１６×１６モードの予測方向についても、コスト値を検出して最適予測モードか否か判定することができる。
【０１８０】
（３）実施例の効果
以上の構成によれば、異なる予測値生成単位で検出される最適予測モードからイントラ予測に適した予測モードを検出して符号化処理する際に、一方の最適予測モード検出処理を他方の最適予測モード検出処理に利用して、これら異なる予測値生成単位による最適予測モードを検出することにより、多数の予測モードから最適予測モードを選択して画像データを符号化処理する場合に、最適予測モードの選択に係る演算処理量を低減することができる。
【０１８１】
また各予測モードのコスト値を計算、比較して最適予測モードを検出するようにして、予測値生成単位の小さな側で検出されたコスト値を集計して、予測値生成単位側の大きな側のコスト値を計算することにより、予測値生成単位側の大きな側におけるコスト値の計算に要する演算処理量を格段的に低減して、最適予測モードの選択に係る演算処理量を低減することができる。
【０１８２】
また予測方向の異なるコスト値の平均値を集計することにより、一方の側には存在しない予測方向のコスト値についても、計算に要する演算処理量を格段的に低減して実用上十分な精度によりコスト値を計算することができる。
【０１８３】
またイントラ４×４モードによるコスト値を用いて、イントラ８×８モード、イントラ１６×１６モードのコスト値を計算することにより、これら３種類のイントラモードにそれぞれ用意された複数の予測モードから最適予測モードを選択する場合に、予測モードの選択に係る演算処理量を低減することができる。
【実施例２】
【０１８４】
この実施例においては、イントラ４×４モードで最適予測モードを検出する処理を利用して、イントラ８×８モード及びイントラ１６×１６モードの最適予測モードを検出する代わりに、イントラ８×８モードで最適予測モードを検出する処理を利用して、イントラ４×４モード及びイントラ１６×１６モードの最適予測モードを検出する。より具体的に、イントラ８×８モードで算出したコスト値を用いて、イントラ４×４モード及びイントラ１６×１６モードのコスト値を算出する。本発明の実施例に係る符号化装置は、このコスト値の算出に係る処理が異なる点を除いて、実施例１の符号化装置４１と同一に構成される。従って以下においては、図２の構成を流用して説明する。
【０１８５】
この符号化装置において、イントラ予測回路４２は、イントラ８×８モードにおける各予測モードのコスト値を計算し、イントラ１６×１６モードのマクロブロックに対応するブロック単位で、計算したコスト値をイントラ予測推定回路４３に出力する。
【０１８６】
イントラ予測推定回路４３は、このイントラ予測回路４２から出力されるイントラ８×８モードにおける各予測モードのコスト値を用いて、イントラ４×４モード及びイントラ１６×１６モードにおける各予測モードのコスト値を計算する。またこの計算したコスト値からそれぞれ最小値を検出し、イントラ４×４モード及びイントラ１６×１６モードにおける最適予測モードを検出する。イントラ予測推定回路４３は、この検出した最適予測モードを、そのコスト値と共にイントラ予測回路４２に通知する。
【０１８７】
イントラ予測回路４２は、始めに検出したイントラ８×８モードにおける各予測モードのコスト値から、イントラ８×８モードにおける最適予測モードを検出する。イントラ予測回路４２は、これらイントラ８×８モードにおける最適な予測モードと、イントラ予測推定回路４３から通知されるイントラ４×４モードにおける最適予測モード及びイントラ１６×１６モードにおける最適予測モードとから、イントラ予測に最適予測モードを検出し、このイントラ予測の最適予測モードによる予測値を計算して減算回路４に出力する。
【０１８８】
図３は、図１との対比によりこのイントラ予測推定回路４３における処理手順を示すフローチャートである。イントラ予測推定回路４３は、イントラ８×８モードにおける各予測モードのコスト値がイントラ予測回路４２から１６画素×１６画素のブロック分入力されると、この処理手順を開始してステップＳＰ２１からステップＳＰ２２に移る。
【０１８９】
イントラ予測推定回路４３は、このステップＳＰ２２において、イントラ４×４モードのコスト値Ｃｏｓｔ〔ｘ〕〔ｋ〕の計算に使用する変数ｘ、ｋを初期化する。具体的に、この図２の例では、変数Ｋをモード０を示す変数に初期化し、またｘを先頭ブロック１を示す変数に初期化する（図１４参照）。
【０１９０】
続いてイントラ予測推定回路４３は、ステップＳＰ２３において、次式の演算処理により、イントラ４×４モードにおける変数Ｋによる予測モードについて、対応する予測方向及びサブマクロブロックのイントラ８×８モードにおけるコスト値Ｃｏｓｔ（α）[K] を、対応するイントラ４×４モードのブロック数で割り算し、コスト値Ｃｏｓｔ（ｘ）[K]を計算する。
【０１９１】
【数４３】
0004650461.tif 000044
【０１９２】
なおここで（４３）式における右辺のαは、図１４（Ｄ）の表により求められる。なおＪＶＴ規格により使用できない予測方向ｕが存在する場合、実施例１と同様に、この予測方向のモードが選択されない値にコスト値Ｃｏｓｔ（α）[K] が設定されてコスト値が計算される。
【０１９３】
イントラ予測推定回路４３は、続いてステップＳＰ２４に移り、変数Ｋを更新し、コスト値を計算する予測モードを変更する。また続くステップＳＰ２５において、変数Ｋを判定することにより、最後の予測モードまでコスト値を計算したか否か判断する。ここで否定結果が得られると、イントラ予測推定回路４３は、ステップＳＰ２３に戻り、続く予測モードについて、同様にしてコスト値を計算する。その結果、イントラ予測推定回路４３は、ステップＳＰ２３−ＳＰ２４−ＳＰ２５−ＳＰ２３の処理手順を繰り返し、イントラ４×４モードにおける先頭ブロック１について、モード０からモード８まで、順次、コスト値を計算し、モード８までコスト値を計算すると、ステップＳＰ２５で肯定結果が得られてステップＳＰ２６に移る。
【０１９４】
このステップＳＰ２６において、イントラ予測推定回路４３は、変数Ｋを初期化する。また変数ｘの更新によりコスト値計算対象のブロックを切り換える。続いてイントラ予測推定回路４３は、ステップＳＰ２７に移り、変数ｘの判定により、イントラ４×４予測モードの最後のブロック１６までコスト値を計算したか否か判断する。ここで否定結果が得られると、イントラ予測推定回路４３は、ステップＳＰ２３に戻り、続くブロックのコスト値を計算する。
【０１９５】
従ってイントラ予測推定回路４３は、この場合、続くブロック２、３、……について、ブロック１と同様にして、順次、イントラ８×８モードで計算したコスト値を割り算して各予測モードのコスト値を計算する。また最後のブロック１６のコスト値を計算すると、ステップＳＰ２７からステップＳＰ２８に移る。従ってイントラ８×８モードにおける先頭サブマクロブロックｉに対応するイントラ４×４モードのブロック１、２、５、６に対して、イントラ予測推定回路４３は、イントラ８×８モードの先頭サブマクロブロックｉで求められたコスト値Ｃｏｓｔ（ｉ）〔ｋ〕の１／４のコスト値をそれぞれ設定する。また続くイントラ８×８モードにおけるサブマクロブロックiiに対応するイントラ４×４モードのブロック３、４、７、８に対して、イントラ予測推定回路４３は、イントラ８×８モードのサブマクロブロックiiで求められたコスト値Ｃｏｓｔ（ii）〔ｋ〕の１／４のコスト値をそれぞれ設定する。
【０１９６】
このステップＳＰ２８において、イントラ予測推定回路４３は、ブロック１〜１６でそれぞれ検出したモード０〜モード８のコスト値からブロック毎にコスト値の最小値を検出する。またこの検出した最小値の予測方向ｄ（ｘ）を検出する。このステップＳＰ２８の処理により、イントラ予測推定回路４３は、イントラ４×４モードにおける最適予測モードをブロック毎に検出する。
【０１９７】
続いてイントラ予測推定回路４３は、ステップＳＰ２９に移り、変数Ｋを初期化する。また続くステップＳＰ３０において、次式の演算処理を実行し、イントラ１６×１６モードにおける変数Ｋによる予測モードについて、対応する予測方向のイントラ８×８モードにおけるコスト値Ｃｏｓｔ（α）[K] を積算してコスト値Ｃｏｓｔ[K] を計算する。
【０１９８】
【数４４】
0004650461.tif 000045
【０１９９】
続いてイントラ予測推定回路４３は、ステップＳＰ３１において、変数Ｋの更新により、計算対象のモードを変更する。また続くステップＳＰ３２において、この変数Ｋの判定により、イントラ１６×１６モードの最後のモードまでコスト値を計算したか否か判断する。
【０２００】
イントラ予測推定回路４３は、このステップＳＰ３２で否定結果が得られると、ステップＳＰ３０に戻り、続くモード１のコスト値を計算する。またこのモード１のコスト値を計算すると、ステップＳＰ３１で計算対象のモードを更新した後、ステップＳＰ３２からステップＳＰ３０に戻り、モード２のコスト値を計算する。また同様にしてモード３のコスト値を計算する。
【０２０１】
イントラ予測推定回路４３は、このモード３のコスト計算において、次式の演算処理により、イントラ８×８モードにおける３番目の予測方向によるコスト値Ｃｏｓｔ（α）[3] （モード３のコスト値）と８番目の予測方向によるコスト値Ｃｏｓｔ（α）[8] （モード８のコスト値）との平均値を積算してイントラ１６×１６モードによるコスト値Ｃｏｓｔ[3] を計算する。
【０２０２】
【数４５】
0004650461.tif 000046
【０２０３】
この（４５）式の演算処理により、イントラ予測推定回路４３は、イントラ１６×１６モードとイントラ８×８モードとの間で、相関の高いモードの処理結果を利用して、イントラ８×８モードでは存在しないイントラ１６×１６モードにおける予測方向のコスト値Ｃｏｓｔ[3] を計算する。
【０２０４】
イントラ予測推定回路４３は、ステップＳＰ３０において、モード３のコスト値を計算すると、この場合、続くステップＳＰ３２において、肯定結果が得られることにより、ステップＳＰ３２からステップＳＰ３３に移る。ここでイントラ予測推定回路４３は、ステップＳＰ３０の繰り返しで検出したイントラ１６×１６モード、モード０〜モード３のコスト値から最小値を検出し、イントラ１６×１６モードにおける最適予測モードを検出する。イントラ予測推定回路４３は、このステップＳＰ３３で検出したイントラ１６×１６モードにおける最適予測モードと、ステップＳＰ２８で検出したイントラ４×４モードにおける最適予測モードとをイントラ予測回路４２に通知し、ステップＳＰ３４に移ってこの処理手順を終了する。
【０２０５】
この実施例によれば、イントラ８×８モードのコスト値を用いてイントラ１６×１６モードのコスト値を計算するようにしても、実施例１と同様の効果を得ることができる。
【０２０６】
また予測値生成単位の大きい側の処理を、予測値生成単位の小さい側で利用して、この予測値生成単位の小さな側の最適予測モードを検出するようにしても、実施例１と同様の効果を得ることができる。
【実施例３】
【０２０７】
この実施例においては、イントラ８×８モードで最適予測モードを検出する処理を利用して、イントラ４×４モード及びイントラ１６×１６モードの最適予測モードを検出する代わりに、イントラ１６×１６モードで最適予測モードを検出する処理を利用して、イントラ４×４モード及びイントラ８×８モードの最適予測モードを検出する。より具体的に、イントラ１６×１６モードで算出したコスト値を用いて、イントラ４×４モード及びイントラ８×８モードのコスト値を算出する。本発明の実施例に係る符号化装置は、このコスト値の算出に係る処理が異なる点を除いて、実施例１の符号化装置４１と同一に構成される。従って以下においては、図２の構成を流用して説明する。
【０２０８】
この符号化装置において、イントラ予測回路４２は、イントラ１６×１６モードにおける各予測モードのコスト値を計算し、計算したコスト値をイントラ予測推定回路４３に出力する。
【０２０９】
イントラ予測推定回路４３は、このイントラ予測回路４２から出力されるイントラ１６×１６モードにおける各予測モードのコスト値を用いて、イントラ４×４モード及びイントラ８×８モードにおける対応する予測方向のコスト値を計算する。またこの計算したコスト値からそれぞれ最小値を検出し、イントラ４×４モード及びイントラ８×８モードにおける最適予測モードを検出する。イントラ予測推定回路４３は、この検出した最適予測モードを、そのコスト値と共にイントラ予測回路４２に通知する。
【０２１０】
イントラ予測回路４２は、始めに検出したイントラ１６×１６モードにおける各予測モードのコスト値から、イントラ１６×１６モードにおける最適予測モードを検出する。イントラ予測回路４２は、これらイントラ１６×１６モードにおける最適予測モードと、イントラ予測推定回路４３から通知されるイントラ４×４モードにおける最適予測モード及びイントラ８×８モードにおける最適予測モードとから、イントラ予測に最適予測モードを検出し、このイントラ予測の最適予測モードによる予測値を計算して減算回路４に出力する。
【０２１１】
図４は、図１との対比によりこのイントラ予測推定回路４３における処理手順を示すフローチャートである。イントラ予測推定回路４３は、イントラ１６×１６モードにおける各予測モードのコスト値がイントラ予測回路４２から入力されると、この処理手順を開始してステップＳＰ４１からステップＳＰ４２に移る。
【０２１２】
イントラ予測推定回路４３は、このステップＳＰ４２において、イントラ４×４モードのコスト値Ｃｏｓｔ（ｘ）[K]の計算に使用する変数ｘ、ｋを初期化する。具体的に、変数Ｋをモード０を示す変数に初期化し、またｘを先頭ブロック１を示す変数に初期化する（図１４参照）。
【０２１３】
続いてイントラ予測推定回路４３は、ステップＳＰ４３において、次式の演算処理により、イントラ４×４モードにおける変数Ｋによる予測モードについて、対応する予測方向のコスト値Ｃｏｓｔ[K] を、対応するイントラ４×４モードのブロック数で割り算し、コスト値Ｃｏｓｔ（ｘ）[K] を計算する。
【０２１４】
【数４６】
0004650461.tif 000047
【０２１５】
なおＪＶＴ規格により使用できない予測方向ｕが存在する場合、実施例１と同様に、この予測方向のモードが選択されない値にコスト値Ｃｏｓｔ[K] が設定されてコスト値が計算される。
【０２１６】
イントラ予測推定回路４３は、続いてステップＳＰ４４に移り、変数Ｋを更新し、コスト値を計算する予測モードを変更する。また続くステップＳＰ４５において、変数Ｋを判定することにより、イントラ１６×１６モードの最後の予測モードまでコスト値を計算したか否か判断する。ここで否定結果が得られると、イントラ予測推定回路４３は、ステップＳＰ４３に戻り、続く予測モードについて、同様にしてコスト値を計算する。その結果、イントラ予測推定回路４３は、ステップＳＰ４３−ＳＰ４４−ＳＰ４５−ＳＰ４３の処理手順を繰り返し、イントラ４×４モードにおける先頭ブロック１について、モード０からモード３まで、順次、コスト値を計算し、モード３までコスト値を計算すると、ステップＳＰ４５で肯定結果が得られてステップＳＰ４６に移る。
【０２１７】
このステップＳＰ４６において、イントラ予測推定回路４３は、変数Ｋを初期化する。また変数ｘの更新によりコスト値計算対象のブロックを切り換える。続いてイントラ予測推定回路４３は、ステップＳＰ４７に移り、変数ｘの判定により、イントラ４×４モードの最後のブロック１６までコスト値を計算したか否か判断する。ここで否定結果が得られると、イントラ予測推定回路４３は、ステップＳＰ４３に戻り、続くブロックのコスト値を計算する。
【０２１８】
従ってイントラ予測推定回路４３は、この場合、ステップＳＰ４３の処理を繰り返し、イントラ１６×１６モードのモード０〜３のコスト値を、イントラ１６×１６モードの１つのマクロブロックに含まれるイントラ４×４モードのブロック数で割り算して、イントラ４×４モードのモード０〜３のコスト値を計算する。また最後のブロック１６のコスト値を計算すると、ステップＳＰ４７からステップＳＰ４８に移る。
【０２１９】
このステップＳＰ４８において、イントラ予測推定回路４３は、ブロック１〜１６でそれぞれ検出したモード０〜モード３のコスト値からブロック毎にコスト値の最小値を検出する。またこの検出した最小値の予測方向ｄ（ｘ）を検出する。このステップＳＰ４８の処理により、イントラ予測推定回路４３は、イントラ４×４モードにおける最適予測モードをブロック毎に検出する。
【０２２０】
続いてイントラ予測推定回路４３は、ステップＳＰ４９に移り、変数Ｋを初期化する。また続くステップＳＰ５０において、イントラ１６×１６モードのモード０のコスト値を、イントラ１６×１６モードの１つのマクロブロックに含まれるイントラ８×８モードのサブマクロブロック数で割り算して、イントラ８×８モードのモード０のコスト値を計算する。
【０２２１】
続いてイントラ予測推定回路４３は、ステップＳＰ５１において、変数Ｋの更新により、計算対象のモードを変更する。また続くステップＳＰ５２において、この変数Ｋの判定により、イントラ１６×１６モードの最後のモードまでコスト値を計算したか否か判断する。
【０２２２】
イントラ予測推定回路４３は、このステップＳＰ５２で否定結果が得られると、ステップＳＰ５０に戻り、続くモード１のコスト値を計算する。イントラ予測推定回路４３は、このステップＳＰ５０の処理をイントラ１６×１６モードの最後のモードまで繰り返すと、ステップＳＰ５２で肯定結果が得られ、ステップＳＰ５２からステップＳＰ５３に移る。
【０２２３】
またステップＳＰ５３において、イントラ８×８モードの最適予測モードを検出し、このイントラ８×８モードにおける最適予測モードと、ステップＳＰ４８で検出したイントラ４×４モードにおける最適予測モードとをイントラ予測回路４２に通知し、ステップＳＰ５４に移ってこの処理手順を終了する。
【０２２４】
なおＪＶＴ規格では、イントラ１６×１６モードにおけるモード３の予測方向に対して、イントラ８×８モード、イントラ４×４モードにおけるモード３の予測方向が異なる。従って、次式により示すように、イントラ８×８モード、イントラ４×４モードにおけるモード３に加えて、イントラ１６×１６モードにおけるモード３の予測方向をそれぞれモード８のコスト値に割り当てるようにして、このイントラ１６×１６モードにおけるモード３のコスト値から、異なる予測方向のコスト値を計算するようにしてもよい。
【０２２５】
【数４７】
0004650461.tif 000048
【０２２６】
この実施例のように、イントラ１６×１６モードのコスト値を用いて、イントラ８×８モード、イントラ４×４モードのコスト値を計算するようにしても、実施例１と同様の効果を得ることができる。
【実施例４】
【０２２７】
ところで上述した実施例１において、イントラ４×４モードのコスト値からイントラ８×８モードのコスト値を計算してイントラ８×８モードの最適予測モードを検出する場合に、イントラ８×８モードの１つのサブマクロブロックに含まれるイントラ４×４モードの４つのブロックの全てで、例えばモード０が最適予測モードの場合、イントラ８×８モードでコスト値を検出するまでも無く、イントラ８×８モードでもモード０が最適予測モードとなる。
【０２２８】
またイントラ８×８モードの１つのサブマクロブロックに含まれるイントラ４×４モードの４つのブロックのうちの３つのブロックで、例えばモード０が最適予測モードである場合、イントラ８×８モードでもモード０が最適予測モードとなる可能性が極めて高いと言える。
【０２２９】
またイントラ８×８モードの１つのサブマクロブロックに含まれるイントラ４×４モードの４つのブロックのうちの２つのブロックで、例えばモード０が最適予測モードであり、残り２つのブロックで、例えばモード１及びモード３が最適予測モードである場合、イントラ８×８モードでもモード０が最適予測モードとなる可能性が極めて高いと言える。
【０２３０】
これによりこの実施例では、予測値生成単位の小さい側で検出した最適予測モードを集計して、いわゆる多数決により予測値生成単位の小さい側の最適予測モードを検出する。また集計値が所定値以上の最適予測モードが検出できない場合、上述の実施例１又は実施例２と同様のコスト値の計算により最適予測モードを検出する。
【０２３１】
この実施例によれば、予測値生成単位の小さい側で検出した最適予測モードを集計して、いわゆる多数決により予測値生成単位の小さい側の最適予測モードを検出することにより、一段と演算処理量を低減することができる。
【実施例５】
【０２３２】
ところで上述した実施例３において、イントラ１６×１６モードのコスト値からイントラ８×８モードのコスト値を計算してイントラ８×８モードの最適予測モードを検出する場合にあって、イントラ１６×１６モードの最適予測モードがモード０の場合、イントラ１６×１６モードの１つのマクロブロックに含まれるイントラ８×８モードの４つのサブマクロブロックでは、イントラ１６×１６モードと同一のモード０が最適予測モードとなる。
【０２３３】
そこでこの実施例では、予測値生成単位の大きな側で検出した最適予測モードを、予測値生成単位の小さな側の最適予測モードに割り当てる。
【０２３４】
この実施例によれば、予測値生成単位の大きな側で検出した最適予測モードを、予測値生成単位の小さな側の最適予測モードに割り当てることにより、一段と演算処理量を低減することができる。
【実施例６】
【０２３５】
なお上述の実施例においては、イントラ１６×１６モード、イントラ８×８モード、イントラ４×４モードのうちの１つのモードで計算したコスト値又は最適予測モードを使用して他の２つのモードのコスト値又は最適モードを検出する場合について述べたが、本発明はこれに限らず、これら３つのモードのうちの２つのモードでコスト値又は最適予測モードを求め、このコスト値又は最適予測モードから残る１つのモードのコスト値又は最適予測モードを求めるようにしてもよい。
【０２３６】
また上述の実施例においては、ハードウェア構成による符号化装置に本発明を適用する場合について述べたが、本発明はこれに限らず、コンピュータ等の演算処理によるソフトウェア構成による符号化装置にも広く適用することができる。なおこの場合、プログラムにあっては、光ディスク、磁気ディスク、メモリカード等の記録媒体に記録して提供してもよく、さらにはインターネット等のネットワークを介して提供するようにしてもよい。
【０２３７】
また上述の実施例においては、ＪＶＴ符号化方式により符号化処理する場合に本発明を適用する場合について述べたが、本発明はこれに限らず、異なるブロックサイズによる予測値生成単位でイントラ予測する各種符号化処理に広く適用することができる。
【産業上の利用可能性】
【０２３８】
本発明は、符号化装置、符号化方法、符号化方法のプログラム及び符号化方法のプログラムを記録した記録媒体に関し、例えばＨ．２６４及びＭＰＥＧ−４  Ｐａｒｔ１０による符号化装置に適用することができる。
【図面の簡単な説明】
【０２３９】
【図１】本発明の実施例１の符号化装置におけるイントラ予測推定回路の処理手順を示すフローチャートである。
【図２】本発明の実施例１の符号化装置を示すブロック図である。
【図３】本発明の実施例２の符号化装置におけるイントラ予測推定回路の処理手順を示すフローチャートである。
【図４】本発明の実施例３の符号化装置におけるイントラ予測推定回路の処理手順を示すフローチャートである。
【図５】従来の符号化装置を示すブロック図である。
【図６】従来の復号化装置を示すブロック図である。
【図７】１６画素×１６画素のブロックにおけるイントラ４×４モードの処理順序を示す略線図である。
【図８】マクロブロックペアの処理の説明に供する略線図である。
【図９】予測値生成の説明に供する略線図である。
【図１０】イントラ４×４モードの予測モードを示す図表である。
【図１１】イントラ４×４モードの予測方向を示す略線図である。
【図１２】隣接マクロブロックからの予測方向の予測の説明に供する略線図である。
【図１３】マクロブロックペアの処理の説明に供する略線図である。
【図１４】各予測モードにおけるマクロブロックの関係を示す略線図である。
【符号の説明】
【０２４０】
１、４１……符号化装置、４……減算回路、５、２３、４２……イントラ予測回路、６、２４……動き予測・補償回路、７……直交変換回路、８……量子化回路、１０……可変長符号化回路、２０……復号化装置、４３……イントラ予測推定回路
【図１】
0004650461.tif 000049
【図２】
0004650461.tif 000050
【図３】
0004650461.tif 000051
【図４】
0004650461.tif 000052
【図５】
0004650461.tif 000053
【図６】
0004650461.tif 000054
【図７】
0004650461.tif 000055
【図８】
0004650461.tif 000056
【図９】
0004650461.tif 000057
【図１０】
0004650461.tif 000058
【図１１】
0004650461.tif 000059
【図１２】
0004650461.tif 000060
【図１３】
0004650461.tif 000061
【図１４】
0004650461.tif 000062