(57)【要約】【課題】  高画質な符号化を実現できる画像処理装置を提供する。【解決手段】  動き予測・補償回路４３は、予測動きベクトルと実際の動きベクトルとの間の差分が所定の基準値を超えた場合に、動き予測・補償モードのうちＳｋｉｐモードおよびＤｉｒｅｃｔモードを選択しない。【選択図】  図１
2005348093.tif 000002
【特許請求の範囲】
【請求項１】
２次元画像領域内に規定された複数のブロックのうち、処理対象の前記ブロックのブロックデータの動きベクトルを生成し、当該動きベクトルと、当該動きベクトルを基に生成した予測ブロックデータと前記処理対象のブロックデータとの差分とを符号化するために用いられる画像処理装置であって、
前記処理対象のブロックデータの前記動きベクトルを他のブロックデータの動きベクトルから予測し、当該予測した動きベクトルを符号化しない第１のモードと、前記処理対象のブロックデータと参照画像データ内のブロックデータとの差分を基に当該処理対象のブロックデータの動きベクトルを生成し、当該動きベクトルと、前記処理対象のブロックデータと前記参照画像データ内の前記生成した動きベクトルに対応した参照ブロックデータとの差分画像データとを符号化する第２のモードとのそれぞれについて生成した前記動きベクトル間の差分が所定の基準を超えるか否かを判断する判断手段と、
前記判断手段が前記所定の基準を超えると判断した場合に前記第２のモードを選択し、前記判断手段が前記所定の基準を超えないと判断した場合に、前記第１のモードおよび前記第２のモードのうち符号化による符号量が最小となるモードを選択する選択手段と
を有する画像処理装置。
【請求項２】
前記選択手段が選択した前記モードの識別データと、前記選択した前記モードによって規定されたデータとを前記復号先に提供する処理を行う提供手段
をさらに有する
請求項１に記載の画像処理装置。
【請求項３】
前記選択手段は、前記処理対象のブロックデータと参照画像データ内の前記予測した動きベクトルが指し示す参照ブロックデータとの差分画像データをさらに符号化す前記第１のモードを用いる
請求項１に記載の画像処理装置。
【請求項４】
前記選択手段は、前記処理対象のブロックデータが属するフレームデータあるいはフィールドデータ内の前記他のブロックデータの動きベクトルから前記予測を行う前記第１のモードを用いる
請求項３に記載の画像処理装置。
【請求項５】
前記選択手段は、前記処理対象のブロックデータが属するフレームデータあるいはフィールドデータと異なるフレームデータあるいはフィールドデータ内の前記他のブロックデータの動きベクトルから前記予測を行う前記第１のモードを用いる
請求項３に記載の画像処理装置。
【請求項６】
前記選択手段は、前記処理対象のブロックデータと参照画像データ内の前記予測した動きベクトルが指し示す参照ブロックデータとの差分画像データを前記復号先に提供しない前記第１のモードを用いる
請求項１に記載の画像処理装置。
【請求項７】
前記判断手段は、前記第１のモードと前記第２のモードとの間で前記動きベクトルを生成するために用いたフレームデータあるいはフィールドデータが異なる場合に、一方のモードについて生成した前記動きベクトルを、他方のモードについて用いた参照画像データに対応するように変換し、前記変換した後の動きベクトルを用いて前記差分を生成する
請求項１に記載の画像処理装置。
【請求項８】
２次元画像領域内に規定された複数のブロックのうち、処理対象の前記ブロックのブロックデータの動きベクトルを生成し、当該動きベクトルと、当該動きベクトルを基に生成した予測ブロックデータと前記処理対象のブロックデータとの差分とを符号化するための処理をコンピュータに実行させるプログラムであって、
前記処理対象のブロックデータの前記動きベクトルを他のブロックデータの動きベクトルから予測し、当該予測した動きベクトルを符号化しない第１のモードと、前記処理対象のブロックデータと参照画像データ内のブロックデータとの差分を基に当該処理対象のブロックデータの動きベクトルを生成し、当該動きベクトルと、前記処理対象のブロックデータと前記参照画像データ内の前記生成した動きベクトルに対応した参照ブロックデータとの差分画像データとを符号化する第２のモードとのそれぞれについて動きベクトルを生成する第１の手順と、
前記第１の手順で生成した前記第１のモードの動きベクトルと前記第２のモードの動きベクトルとの間の差分が所定の基準を超えるか否かを判断する第２の手順と、
前記第２の手順で前記所定の基準を超えると判断した場合に前記第２のモードを選択し、前記所定の基準を超えないと判断した場合に、前記第１のモードおよび前記第２のモードのうち符号化による符号量が最小となるモードを選択する第３の手順と
を前記コンピュータに実行させるプログラム。
【請求項９】
２次元画像領域内に規定された複数のブロックのうち、処理対象の前記ブロックのブロックデータの動きベクトルを生成し、当該動きベクトルと、当該動きベクトルを基に生成した予測ブロックデータと前記処理対象のブロックデータとの差分とを符号化するための処理をコンピュータが実行する画像処理方法であって、
前記処理対象のブロックデータの前記動きベクトルを他のブロックデータの動きベクトルから予測し、当該予測した動きベクトルを符号化しない第１のモードと、前記処理対象のブロックデータと参照画像データ内のブロックデータとの差分を基に当該処理対象のブロックデータの動きベクトルを生成し、当該動きベクトルと、前記処理対象のブロックデータと前記参照画像データ内の前記生成した動きベクトルに対応した参照ブロックデータとの差分画像データとを符号化する第２のモードとのそれぞれについて動きベクトルを生成する第１の工程と、
前記第１の工程で生成した前記第１のモードの動きベクトルと前記第２のモードの動きベクトルとの間の差分が所定の基準を超えるか否かを判断する第２の工程と、
前記第２の工程で前記所定の基準を超えると判断した場合に前記第２のモードを選択し、前記所定の基準を超えないと判断した場合に、前記第１のモードおよび前記第２のモードのうち符号化による符号量が最小となるモードを選択する第３の工程と
を有する画像処理方法。
【請求項１０】
２次元画像領域内に規定されたマクロブロックを構成する単数または複数のブロックのうち処理対象の前記ブロックのブロックデータと、当該ブロックデータの予測ブロックデータとを基に、前記ブロックデータを符号化するために用いられる画像処理装置であって、
処理対象の前記ブロックデータを構成する単数または複数の単位ブロックデータを単位として、当該単位ブロックデータと当該単位ブロックデータに対応した予測ブロックデータ内の単位ブロックデータとの差分に応じた第１の指標データを生成し、前記第１の指標データのうち最大値を示す第１の指標データを特定し、前記第１の指標データを基に、前記処理対象のブロックデータを構成する前記単位ブロックデータについて生成した前記第１の指標データの総和に比べて、前記特定した前記第１の指標データが値として強く反映された第２の指標データを生成する生成手段と、
処理対象の前記マクロブロックについて規定された前記ブロックデータのサイズ、動きベクトルの符号化の有無、並びに前記差分の符号化の有無のうち少なくとも一つが相互に異なる複数のモードのうち、前記処理対象のマクロブロックを構成する単数または複数の前記ブロックデータについて前記生成手段が生成した前記第２の指標データの総和に応じた第３の指標データを最小にするモードを選択する選択手段と
を有する画像処理装置。
【請求項１１】
前記複数のモードは、イントラ予測モードおよび動き予測・補償モードのうち少なくとも一方を含む
請求項１０に記載の画像処理装置。
【請求項１２】
前記生成手段は、前記処理対象のブロックデータを構成する前記単位ブロックデータについて生成した前記第１の指標データの総和と、前記処理対象のブロックデータを構成する前記単位ブロックデータの数を前記特定した前記第１の指標データに乗じた結果とを加算した値に応じた前記第２の指標データを生成する
請求項１０に記載の画像処理装置。
【請求項１３】
前記生成手段は、前記処理対象のブロックデータを構成する前記単位ブロックデータについて生成した前記第１の指標データの総和に第１の係数を乗じた結果と、前記処理対象のブロックデータを構成する前記単位ブロックデータの数および第２の係数を前記特定した前記第１の指標データに乗じた結果とを加算した値に応じた前記第２の指標データを生成する
請求項１０に記載の画像処理装置。
【請求項１４】
２次元画像領域内に規定されたマクロブロックを構成する単数または複数のブロックのうち処理対象の前記ブロックのブロックデータと、当該ブロックデータの予測ブロックデータとを基に、前記ブロックデータを符号化する処理をコンピュータに実行させるプログラムであって、
処理対象の前記ブロックデータを構成する単数または複数の単位ブロックデータを単位として、当該単位ブロックデータと当該単位ブロックデータに対応した予測ブロックデータ内の単位ブロックデータとの差分に応じた第１の指標データを生成する第１の手順と、
前記第１の手順で生成した前記第１の指標データのうち最大値を示す第１の指標データを特定する第２の手順と、
前記第１の手順で生成した前記第１の指標データを基に、前記処理対象のブロックデータを構成する前記単位ブロックデータについて生成した前記第１の指標データの総和に比べて、前記第２の手順で特定した前記第１の指標データが値として強く反映された第２の指標データを生成する第３の手順と、
処理対象の前記マクロブロックについて規定された前記ブロックデータのサイズ、動きベクトルの符号化の有無、並びに前記差分の符号化の有無のうち少なくとも一つが相互に異なる複数のモードのうち、前記処理対象のマクロブロックを構成する単数または複数の前記ブロックデータについて前記第３の手順で生成した前記第２の指標データの総和に応じた第３の指標データを最小にするモードを選択する第４の手順と
を前記コンピュータに実行させるプログラム。
【請求項１５】
２次元画像領域内に規定されたマクロブロックを構成する単数または複数のブロックのうち処理対象の前記ブロックのブロックデータと、当該ブロックデータの予測ブロックデータとを基に、前記ブロックデータを符号化する処理をコンピュータが実行する画像処理方法であって、
処理対象の前記ブロックデータを構成する単数または複数の単位ブロックデータを単位として、当該単位ブロックデータと当該単位ブロックデータに対応した予測ブロックデータ内の単位ブロックデータとの差分に応じた第１の指標データを生成する第１の工程と、
前記第１の工程で生成した前記第１の指標データのうち最大値を示す第１の指標データを特定する第２の工程と、
前記第１の工程で生成した前記第１の指標データを基に、前記処理対象のブロックデー
タを構成する前記単位ブロックデータについて生成した前記第１の指標データの総和に比べて、前記第２の工程で特定した前記第１の指標データが値として強く反映された第２の指標データを生成する第３の工程と、
処理対象の前記マクロブロックについて規定された前記ブロックデータのサイズ、動きベクトルの符号化の有無、並びに前記差分の符号化の有無のうち少なくとも一つが相互に異なる複数のモードのうち、前記処理対象のマクロブロックを構成する単数または複数の前記ブロックデータについて前記第３の工程で生成した前記第２の指標データの総和に応じた第３の指標データを最小にするモードを選択する第４の工程と
を有する画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを符号化するために用いられる画像処理装置、そのプログラムおよびその方法に関する。
【背景技術】
【０００２】
近年、画像データデジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮するＭＰＥＧ(Moving Picture Experts Group)などの方式に準拠した装置が、放送局などの情報配信、及び一般家庭における情報受信の双方において普及しつつある。
【０００３】
ＭＰＥＧ２，４方式に続いてＭＰＥＧ４，ＡＶＣと呼ばれる符号化方式が提案されている。
ＭＰＥＧ４，ＡＶＣ方式では、符号化において、イントラ予測モードおよび動き予測・補償モードの各々について複数のモードが規定され、画像データの特性を基に、符号量が最も小さい（符号化効率が最も高い）モードが選択される。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上述した動き予測・補償モードには、処理対象のブロックデータの周囲のブロックデータの動きベクトルを基に予測を行うことで、動きベクトルを符号化しないＤｉｒｅｃｔモードおよびＳｋｉｐモードがある。
しかしながら、予測した動きベクトルが本来の動きベクトルと大幅に異なるときでも、ＤｉｒｅｃｔモードあるいはＳｋｉｐモードの符号量が最小になり選択される場合があり、その場合に復号画像に上記動きベクトルの相違によるジャンキーモーションが生じ、画質劣化の要因となるという問題がある。
【０００５】
また、マクロブロック単位で当該マクロブロック全体の符号量のみを基にモード選択を行った場合に、マクロブロック内の一部のブロックの符号量が大きく、それ以外の大半のブロックの符号量が小さい場合にマクロブロック全体の符号量が小さくなり、上記一部のブロックの符号化に画質の観点から不適切なモードが選択されてしまうことがあるという問題がある。
【０００６】
本発明はかかる事情に鑑みてなされたものであり、従来に比べて高画質な符号化を実現できる画像処理装置、そのプログラムおよびその方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するため、第１の発明の画像処理装置は、２次元画像領域内に規定された複数のブロックのうち、処理対象の前記ブロックのブロックデータの動きベクトルを生成し、当該動きベクトルと、当該動きベクトルを基に生成した予測ブロックデータと前記処理対象のブロックデータとの差分とを符号化するために用いられる画像処理装置であって、前記処理対象のブロックデータの前記動きベクトルを他のブロックデータの動きベクトルから予測し、当該予測した動きベクトルを符号化しない第１のモードと、前記処理対象のブロックデータと参照画像データ内のブロックデータとの差分を基に当該処理対象のブロックデータの動きベクトルを生成し、当該動きベクトルと、前記処理対象のブロックデータと前記参照画像データ内の前記生成した動きベクトルに対応した参照ブロックデータとの差分画像データとを符号化する第２のモードとのそれぞれについて生成した前記動きベクトル間の差分が所定の基準を超えるか否かを判断する判断手段と、前記判断手段が前記所定の基準を超えると判断した場合に前記第２のモードを選択し、前記判断手段が前記所定の基準を超えないと判断した場合に、前記第１のモードおよび前記第２のモードのうち符号化による符号量が最小となるモードを選択する選択手段とを有する。
【０００８】
第１の発明の画像処理装置の作用は以下のようになる。
先ず、判断手段が、処理対象のブロックデータの動きベクトルを他のブロックデータの動きベクトルから予測し、当該予測した動きベクトルを符号化しない第１のモードと、前記処理対象のブロックデータと参照画像データ内のブロックデータとの差分を基に当該処理対象のブロックデータの動きベクトルを生成する。
そして、前記判断手段が、前記生成した動きベクトルと、前記処理対象のブロックデータと前記参照画像データ内の前記生成した動きベクトルに対応した参照ブロックデータとの差分画像データとを符号化する第２のモードとのそれぞれについて生成した前記動きベクトル間の差分が所定の基準を超えるか否かを判断する。
次に、選択手段が、前記判断手段が前記所定の基準を超えると判断した場合に前記第２のモードを選択し、前記判断手段が前記所定の基準を超えないと判断した場合に、前記第１のモードおよび前記第２のモードのうち符号化による符号量が最小となるモードを選択する。
【０００９】
第２の発明のプログラムは、２次元画像領域内に規定された複数のブロックのうち、処理対象の前記ブロックのブロックデータの動きベクトルを生成し、当該動きベクトルと、当該動きベクトルを基に生成した予測ブロックデータと前記処理対象のブロックデータとの差分とを符号化するための処理をコンピュータに実行させるプログラムであって、前記処理対象のブロックデータの前記動きベクトルを他のブロックデータの動きベクトルから予測し、当該予測した動きベクトルを符号化しない第１のモードと、前記処理対象のブロックデータと参照画像データ内のブロックデータとの差分を基に当該処理対象のブロックデータの動きベクトルを生成し、当該動きベクトルと、前記処理対象のブロックデータと前記参照画像データ内の前記生成した動きベクトルに対応した参照ブロックデータとの差分画像データとを符号化する第２のモードとのそれぞれについて動きベクトルを生成する第１の手順と、前記第１の手順で生成した前記第１のモードの動きベクトルと前記第２の
モードの動きベクトルとの間の差分が所定の基準を超えるか否かを判断する第２の手順
と、前記第２の手順で前記所定の基準を超えると判断した場合に前記第２のモードを選択し、前記所定の基準を超えないと判断した場合に、前記第１のモードおよび前記第２のモードのうち符号化による符号量が最小となるモードを選択する第３の手順とを前記コンピュータに実行させる。
【００１０】
第２の発明のプログラムの作用は以下のようになる。
先ず、コンピュータが、当該プログラムを実行する。
そして、前記コンピュータが、当該プログラムの第１の手順に従って、処理対象のブロックデータの前記動きベクトルを他のブロックデータの動きベクトルから予測し、当該予測した動きベクトルを符号化しない第１のモードと、前記処理対象のブロックデータと参照画像データ内のブロックデータとの差分を基に当該処理対象のブロックデータの動きベクトルを生成し、当該動きベクトルと、前記処理対象のブロックデータと前記参照画像データ内の前記生成した動きベクトルに対応した参照ブロックデータとの差分画像データとを符号化する第２のモードとのそれぞれについて動きベクトルを生成する。
次に、前記コンピュータが、当該プログラムの第２の手順に従って、前記第１の手順で生成した前記第１のモードの動きベクトルと前記第２のモードの動きベクトルとの間の差分が所定の基準を超えるか否かを判断する。
次に、前記コンピュータが、当該プログラムの第３の手順に従って、前記第２の手順で前記所定の基準を超えると判断した場合に前記第２のモードを選択し、前記所定の基準を超えないと判断した場合に、前記第１のモードおよび前記第２のモードのうち符号化による符号量が最小となるモードを選択する。
【００１１】
第３の発明の画像処理方法は、２次元画像領域内に規定された複数のブロックのうち、処理対象の前記ブロックのブロックデータの動きベクトルを生成し、当該動きベクトルと、当該動きベクトルを基に生成した予測ブロックデータと前記処理対象のブロックデータとの差分とを符号化するための処理をコンピュータが実行する画像処理方法であって、
前記処理対象のブロックデータの前記動きベクトルを他のブロックデータの動きベクトルから予測し、当該予測した動きベクトルを符号化しない第１のモードと、前記処理対象のブロックデータと参照画像データ内のブロックデータとの差分を基に当該処理対象のブロックデータの動きベクトルを生成し、当該動きベクトルと、前記処理対象のブロックデータと前記参照画像データ内の前記生成した動きベクトルに対応した参照ブロックデータとの差分画像データとを符号化する第２のモードとのそれぞれについて動きベクトルを生成する第１の工程と、前記第１の工程で生成した前記第１のモードの動きベクトルと前記第２のモードの動きベクトルとの間の差分が所定の基準を超えるか否かを判断する第２の工程と、前記第２の工程で前記所定の基準を超えると判断した場合に前記第２のモードを
選択し、前記所定の基準を超えないと判断した場合に、前記第１のモードおよび前記第
２のモードのうち符号化による符号量が最小となるモードを選択する第３の工程とを有する。
【００１２】
第４の発明の画像処理装置は、２次元画像領域内に規定されたマクロブロックを構成する単数または複数のブロックのうち処理対象の前記ブロックのブロックデータと、当該ブロックデータの予測ブロックデータとを基に、前記ブロックデータを符号化するために用いられる画像処理装置であって、処理対象の前記ブロックデータを構成する単数または複数の単位ブロックデータを単位として、当該単位ブロックデータと当該単位ブロックデータに対応した予測ブロックデータ内の単位ブロックデータとの差分に応じた第１の指標データを生成し、前記第１の指標データのうち最大値を示す第１の指標データを特定し、前記第１の指標データを基に、前記処理対象のブロックデータを構成する前記単位ブロックデータについて生成した前記第１の指標データの総和に比べて、前記特定した前記第１の指標データが値として強く反映された第２の指標データを生成する生成手段と、処理対象の前記マクロブロックについて規定された前記ブロックデータのサイズ、動きベクトルの符号化の有無、並びに前記差分の符号化の有無のうち少なくとも一つが相互に異なる複数のモードのうち、前記処理対象のマクロブロックを構成する単数または複数の前記ブロックデータについて前記生成手段が生成した前記第２の指標データの総和に応じた第３の指標データを最小にするモードを選択する選択手段とを有する。
【００１３】
第４の発明の画像処理装置の作用は以下のようになる。
先ず、生成手段が、処理対象の前記ブロックデータを構成する単数または複数の単位ブロックデータを単位として、当該単位ブロックデータと当該単位ブロックデータに対応した予測ブロックデータ内の単位ブロックデータとの差分に応じた第１の指標データを生成し、前記第１の指標データのうち最大値を示す第１の指標データを特定し、前記第１の指標データを基に、前記処理対象のブロックデータを構成する前記単位ブロックデータについて生成した前記第１の指標データの総和に比べて、前記特定した前記第１の指標データが値として強く反映された第２の指標データを生成する。
次に、選択手段が、処理対象の前記マクロブロックについて規定された前記ブロックデータのサイズ、動きベクトルの符号化の有無、並びに前記差分の符号化の有無のうち少なくとも一つが相互に異なる複数のモードのうち、前記処理対象のマクロブロックを構成する単数または複数の前記ブロックデータについて前記生成手段が生成した前記第２の指標データの総和に応じた第３の指標データを最小にするモードを選択する。
【００１４】
第５の発明のプログラムは、２次元画像領域内に規定されたマクロブロックを構成する単数または複数のブロックのうち処理対象の前記ブロックのブロックデータと、当該ブロックデータの予測ブロックデータとを基に、前記ブロックデータを符号化する処理をコンピュータに実行させるプログラムであって、処理対象の前記ブロックデータを構成する単数または複数の単位ブロックデータを単位として、当該単位ブロックデータと当該単位ブロックデータに対応した予測ブロックデータ内の単位ブロックデータとの差分に応じた第１の指標データを生成する第１の手順と、前記第１の手順で生成した前記第１の指標データのうち最大値を示す第１の指標データを特定する第２の手順と、前記第１の手順で生成
した前記第１の指標データを基に、前記処理対象のブロックデータを構成する前記単位ブロックデータについて生成した前記第１の指標データの総和に比べて、前記第２の手
順で特定した前記第１の指標データが値として強く反映された第２の指標データを生成する第３の手順と、処理対象の前記マクロブロックについて規定された前記ブロックデータのサイズ、動きベクトルの符号化の有無、並びに前記差分の符号化の有無のうち少なくとも一つが相互に異なる複数のモードのうち、前記処理対象のマクロブロックを構成する単数または複数の前記ブロックデータについて前記第３の手順で生成した前記第２の指標データの総和に応じた第３の指標データを最小にするモードを選択する第４の手順とを前記コンピュータに実行させる。
【００１５】
第５の発明のプログラムの作用は以下のようになる。
先ず、コンピュータが、第５の発明のプログラムを実行する。
そして、前記コンピュータが、当該プログラムの第１の手順に従って、処理対象の前記ブロックデータを構成する単数または複数の単位ブロックデータを単位として、当該単位ブロックデータと当該単位ブロックデータに対応した予測ブロックデータ内の単位ブロックデータとの差分に応じた第１の指標データを生成する。
次に、前記コンピュータが、当該プログラムの第２の手順に従って、前記第１の手順で生成した前記第１の指標データのうち最大値を示す第１の指標データを特定する。
次に、前記コンピュータが、当該プログラムの第３の手順に従って、前記第１の手順で生成した前記第１の指標データを基に、前記処理対象のブロックデータを構成する前記単位ブロックデータについて生成した前記第１の指標データの総和に比べて、前記第２の手順で特定した前記第１の指標データが値として強く反映された第２の指標データを生成する。
次に、前記コンピュータが、当該プログラムの第４の手順に従って、処理対象の前記マクロブロックについて規定された前記ブロックデータのサイズ、動きベクトルの符号化の有無、並びに前記差分の符号化の有無のうち少なくとも一つが相互に異なる複数のモードのうち、前記処理対象のマクロブロックを構成する単数または複数の前記ブロックデータについて前記第３の手順で生成した前記第２の指標データの総和に応じた第３の指標データを最小にするモードを選択する。
【００１６】
第６の発明の画像処理方法は、２次元画像領域内に規定されたマクロブロックを構成する単数または複数のブロックのうち処理対象の前記ブロックのブロックデータと、当該ブロックデータの予測ブロックデータとを基に、前記ブロックデータを符号化する処理をコンピュータが実行する画像処理方法であって、処理対象の前記ブロックデータを構成する単数または複数の単位ブロックデータを単位として、当該単位ブロックデータと当該単位ブロックデータに対応した予測ブロックデータ内の単位ブロックデータとの差分に応じた第１の指標データを生成する第１の工程と、前記第１の工程で生成した前記第１の指標データのうち最大値を示す第１の指標データを特定する第２の工程と、前記第１の工程で生
成した前記第１の指標データを基に、前記処理対象のブロックデータを構成する前記単位ブロックデータについて生成した前記第１の指標データの総和に比べて、前記第２の
工程で特定した前記第１の指標データが値として強く反映された第２の指標データを生成する第３の工程と、処理対象の前記マクロブロックについて規定された前記ブロックデータのサイズ、動きベクトルの符号化の有無、並びに前記差分の符号化の有無のうち少なくとも一つが相互に異なる複数のモードのうち、前記処理対象のマクロブロックを構成する単数または複数の前記ブロックデータについて前記第３の工程で生成した前記第２の指標データの総和に応じた第３の指標データを最小にするモードを選択する第４の工程とを有する。
【発明の効果】
【００１７】
本発明によれば、従来に比べて高画質な符号化を実現できる画像処理装置、そのプログラムおよびその方法を提供することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施形態に係わる符号化装置について説明する。
＜第１実施形態＞
本実施形態は、第１〜第３の発明に対応した実施形態である。
先ず、本実施形態の構成要素と、本発明の構成要素との関係を説明する。
図４に示す動き予測・補償回路４３の処理回路５３が図５に示すステップＳＴ２，ＳＴ４，ＳＴ６を実行することで第１の発明の判断手段が実現される。
また、処理回路５３が図５に示すステップＳＴ３，ＳＴ５，ＳＴ７，ＳＴ８，ＳＴ９を実行することで第１の発明の選択手段が実現される。
また、図５に示すステップＳＴ２，ＳＴ４，ＳＴ６が、第２の発明の第１の手順、並びに第３の発明の第１の工程に対応している。
また、図５に示すステップＳＴ３，ＳＴ５，ＳＴ７，ＳＴ８，ＳＴ９が、第２の発明の第２の手順、並びに第３の発明の第２の工程に対応している。
また、本実施形態のプログラムＰＲＧ１が第２の発明のプログラムに対応している。
【００１９】
また、ＳｋｉｐモードおよびＤｉｒｅｃｔモードが、本発明の第１のモードに対応している。
また、インター１６ｘ１６モード、インター８ｘ１６モード、インター１６ｘ８モード、インター８ｘ８モード、インター４ｘ８モードおよびインター４ｘ４モードなどのインター基本モードが、本発明の第２のモードに対応している。
また、本実施形態のブロックデータが、本発明のブロックデータに対応している。
また、画像データＳ２６が、本発明の差分画像データに対応している。
なお、本実施形態において、画像データおよび参照画像データは、例えば、フレームデータあるいはフィールドデータである。
【００２０】
以下、本実施形態の通信システム１について説明する。
図１は、本実施形態の通信システム１の概念図である。
図１に示すように、通信システム１は、送信側に設けられた符号化装置２と、受信側に設けられた復号装置３とを有する。
符号化装置２が本発明のデータ処理装置および符号化装置に対応している。
通信システム１では、送信側の符号化装置２において、離散コサイン変換やカルーネン・レーベ変換などの直交変換と動き補償によって圧縮したフレーム画像データ（ビットストリーム）を生成し、当該フレーム画像データを変調した後に、衛星放送波、ケーブルＴＶ網、電話回線網、携帯電話回線網などの伝送媒体を介して送信する。
受信側では、復号装置３において受信した画像信号を復調した後に、上記変調時の直交変換の逆変換と動き補償によって伸張したフレーム画像データを生成して利用する。
なお、上記伝送媒体は、光ディスク、磁気ディスクおよび半導体メモリなどの記録媒体であってもよい。
【００２１】
図１に示す復号装置３は従来と同じ構成を有し符号化装置２の符号化に対応した復号を行う。
以下、図１に示す符号化装置２について説明する。
図２は、図１に示す符号化装置２の全体構成図である。
図２に示すように、符号化装置２は、例えば、Ａ／Ｄ変換回路２２、画面並べ替え回路２３、演算回路２４、直交変換回路２５、量子化回路２６、可逆符号化回路２７、バッファ２８、逆量子化回路２９、逆直交変換回路３０、フレームメモリ３１、レート制御回路３２、加算回路３３、デブロックフィルタ３４、イントラ予測回路４１、動き予測・補償回路４３および選択回路４４を有する。
【００２２】
以下、符号化装置２の構成要素について説明する。
Ａ／Ｄ変換回路２２は、入力されたアナログの輝度信号Ｙ、色差信号Ｐｂ，Ｐｒから構成される原画像信号をデジタルの画像信号に変換し、これを画面並べ替え回路２３に出力する。
画面並べ替え回路２３は、Ａ／Ｄ変換回路２２から入力した原画像信号内のフレーム画像信号を、そのピクチャタイプＩ，Ｐ，ＢからなるＧＯＰ(Group Of Pictures) 構造に応じて、符号化する順番に並べ替えた原画像データＳ２３を演算回路２４、動き予測・補償回路４３およびイントラ予測回路４１に出力する。
【００２３】
演算回路２４は、原画像データＳ２３と、選択回路４４から入力した予測画像データＰＩとの差分を示す画像データＳ２４を生成し、これを直交変換回路２５に出力する。
直交変換回路２５は、画像データＳ２４に離散コサイン変換やカルーネン・レーベ変換などの直交変換を施して画像データ（例えばＤＣＴ係数）Ｓ２５を生成し、これを量子化回路２６に出力する。
量子化回路２６は、レート制御回路３２から入力した量子化スケールで、画像データＳ２５を量子化して画像データＳ２６（量子化されたＤＣＴ係数）を生成し、これを可逆符号化回路２７および逆量子化回路２９に出力する。
【００２４】
可逆符号化回路２７は、画像データＳ２６を可変長符号化あるいは算術符号化した画像データをバッファ２８に格納する。
このとき、可逆符号化回路２７は、動き予測・補償回路４３から入力した動きベクトルＭＶあるいはその差分動きベクトル、参照画像データの識別データ、並びにイントラ予測回路４１から入力したイントラ予測モードＩＰＭをヘッダデータなどに格納する。
【００２５】
バッファ２８に格納された画像データは、変調等された後に送信される。
逆量子化回路２９は、画像データＳ２６を逆量子化したデータを生成し、これを逆直交変換回路３０に出力する。
逆直交変換回路３０は、逆量子化回路２９から入力したデータに、直交変換回路２５における直交変換の逆変換を施して生成した画像データを加算回路３３に出力する。
加算回路３３は、逆直交変換回路３０から入力した（デコードされた）画像データと、選択回路４４から入力した予測画像データＰＩとを加算して再構成画像データを生成し、これをデブロックフィルタ３４に出力する。
デブロックフィルタ３４は、加算回路３３から入力した再構成画像データのブロック歪みを除去した画像データを、参照画像データＲＥＦとしてフレームメモリ３１に書き込む。
なお、フレームメモリ３１には、例えば、動き予測・補償回路４３による動き予測・補償処理、並びにイントラ予測回路４１におけるイントラ予測処理の対象となっているピクチャの再構成画像データが、処理を終了したマクロブロックＭＢを単位として順に書き込まれる。
【００２６】
レート制御回路３２は、例えば、バッファ２８から読み出した画像データを基に量子化スケールを生成し、これを量子化回路２６に出力する。
【００２７】
以下、イントラ予測回路４１および動き予測・補償回路４３について詳細に説明する。
〔イントラ予測回路４１〕
イントラ予測回路４１は、例えば、イントラ４ｘ４モードおよびイントラ１６ｘ１６モードなどの複数の予測モードのそれぞれについて処理対象のマクロブロックＭＢの予測画像データＰＩｉを生成し、これと原画像データＳ２３内の処理対象のマクロブロックＭＢとを基に、符号化されたデータの符号量の指標となる指標データＣＯＳＴｉを生成する。
そして、イントラ予測回路４１は、指標データＣＯＳＴｉを最小にするイントラ予測モードを選択する。
イントラ予測回路４１は、最終的に選択したイントラ予測モードに対応して生成した予測画像データＰＩｉおよび指標データＣＯＳＴｉを選択回路４４に出力する。
また、イントラ予測回路４１は、イントラ予測モードが選択されたことを示す選択信号Ｓ４４を入力すると、最終的に選択したイントラ予測モードを示す予測モードＩＰＭを可逆符号化回路２７に出力する。
なお、ＰスライスあるいはＢスライスに属するマクロブロックＭＢであっても、イントラ予測回路４１によるイントラ予測符号化が行われる場合がある。
【００２８】
イントラ予測回路４１は、例えば、指標データＣＯＳＴｉを下記式（１）に基づいて生成する。
【００２９】
【数１】
2005348093.tif 000003
【００３０】
また、上記式（１）において、「ｉ」は、例えば、処理対象のマクロブロックＭＢを構成する上記イントラ予測モードに対応したサイズのブロックデータの各々に付された識別番号である。上記式（１）のｘは、イントラ１６ｘ１６モードの場合は「１」であり、イントラ４ｘ４モードの場合には「１６」である。
イントラ予測回路４１は、処理対象のマクロブロックＭＢを構成する全てのブロックデータについて、「ＳＡＴＤ＋ｈｅａｄｅｒ＿ｃｏｓｔ（ｍｏｄｅ））」を算出し、これらを加算して指標データＣＯＳＴｉを算出する。
ｈｅａｄｅｒ＿ｃｏｓｔ（ｍｏｄｅ）は、符号化後の動きベクトル、参照画像データの識別データ、選択されたモード、量子化パラメータ（量子化スケール）などを含むヘッダデータの符号量の指標となる指標データである。ｈｅａｄｅｒ＿ｃｏｓｔ（ｍｏｄｅ）の値は、予測モードによって異なる。
また、ＳＡＴＤは、処理対象のマクロブロックＭＢ内のブロックデータと、当該ブロックデータの周囲の予め決められたブロックデータ（予測ブロックデータ）との間の差分画像データの符号量の指標となる指標データである。
本実施形態では、単数または複数の予測ブロックデータによって予測画像データＰＩｉが規定される。
【００３１】
ＳＡＴＤは、例えば、下記式（２）に示すように、処理対象のブロックデータＯｒｇと、予測ブロックデータＰｒｅとの画素データ間の絶対値誤差和(Sum of Absolute Difference)にアダマール変換（Ｔｒａｎ）を施した後のデータである。
下記式（２）のｓ，ｔによって、上記ブロックデータ内の画素が指定される。
【００３２】
【数２】
2005348093.tif 000004
【００３３】
なお、ＳＡＴＤの代わりに、下記式（３）で示すＳＡＤを用いてもよい。
また、ＳＡＴＤの代わりに、ＭＰＥＧ４，ＡＶＣで規定されているＳＳＤなどの歪みや残差を表わすその他の指標を用いてもよい。
【００３４】
【数３】
2005348093.tif 000005
【００３５】
〔動き予測・補償回路４３〕
動き予測・補償回路４３は、画面並べ替え回路２３から入力した原画像データＳ２３の処理対象のマクロブロックＭＢがインター符号化される場合に、複数の動き予測・補償モードの各々について、フレームメモリ３１に記憶された過去に符号化された参照画像データＲＥＦを基に、動き予測・補償モードによって規定されたブロックデータを単位として、処理対象のブロックデータの動きベクトルＭＶおよび予測画像データを生成する。
当該ブロックデータのサイズ、並びに参照画像データＲＥＦは、例えば、動き予測・補償モードによって規定される。
また、動き予測・補償回路４３は、上記動き予測・補償モードの各々について、原画像データＳ２３内の処理対象のマクロブロックＭＢと、その予測ブロックデータ（予測画像データＰＩｍ）とを基に、符号化されたデータの符号量の指標となる指標データＣＯＳＴｍを生成する。
そして、動き予測・補償回路４３は、指標データＣＯＳＴｍを最小にする動き予測・補償モードを選択する。
動き予測・補償回路４３は、最終的に選択した動き予測・補償モードに対応して生成した予測画像データＰＩｍおよび指標データＣＯＳＴｍを選択回路４４に出力する。
また、動き予測・補償回路４３は、最終的に選択した動き予測・補償モードに対応して生成した動きベクトル、あるいは当該動きベクトルと予測動きベクトルとの間の差分動きベクトルをを可逆符号化回路２７に出力する。
また、動き予測・補償回路４３は、最終的に選択された動き予測・補償モードを示す動き予測・補償モードＭＥＭを可逆符号化回路２７に出力する。
また、動き予測・補償回路４３は、動き予測・補償処理において選択した参照画像デーサ（参照フレーム）の識別データを可逆符号化回路２７に出力する。
【００３６】
動き予測・補償回路４３は、例えば、指標データＣＯＳＴｍを下記式（４）に基づいて生成する。
【００３７】
【数４】
2005348093.tif 000006
【００３８】
また、上記式（４）において、「ｉ」は、例えば、処理対象のマクロブロックＭＢを構成する上記動き予測・補償モードしたサイズのブロックデータの各々に付された識別番号である。
すなわち、動き予測・補償回路４３は、処理対象のマクロブロックＭＢを構成する全てのブロックデータについて、「ＳＡＴＤ＋ｈｅａｄ＿ｃｏｓｔ（ｍｏｄｅ））」を算出し、これらを加算して指標データＣＯＳＴｍを算出する。
ｈｅａｄ＿ｃｏｓｔ（ｍｏｄｅ）は、符号化後の動きベクトル、参照画像データの識別データ、選択されたモードや量子化パラメータ（量子化スケール）などを含むヘッダデータの符号量の指標となる指標データである。ｈｅａｄｅｒ＿ｃｏｓｔ（ｍｏｄｅ）の値は、動き予測・補償モードによって異なる。
また、ＳＡＴＤは、処理対象のマクロブロックＭＢ内のブロックデータと、動きベクトルＭＶによって指定される参照画像データ内のブロックデータ（参照ブロックデータ）との間の差分画像データの符合量の指標となる指標データである。
本実施形態では、単数または複数の参照ブロックデータによって予測画像データＰＩｍが規定される。
【００３９】
ＳＡＴＤは、例えば、下記式（５）に示すように、処理対象のブロックデータＯｒｇと、参照ブロックデータ（予測画像データ）Ｐｒｅとの画素データ間の絶対値誤差和にアダマール変換（Ｔｒａｎ）を施した後のデータである。
下記式（５）のｓ，ｔによって、上記ブロックデータ内の画素が指定される。
【００４０】
【数５】
2005348093.tif 000007
【００４１】
なお、ＳＡＴＤの代わりに、下記式（６）で示すＳＡＤを用いてもよい。
また、ＳＡＴＤの代わりに、ＭＰＥＧ４，ＡＶＣで規定されているＳＳＤなどの歪みや残差を表わすその他の指標を用いてもよい。
【００４２】
【数６】
2005348093.tif 000008
【００４３】
本実施形態では、動き予測・補償回路４３は、動き予測・補償モードとして、例えば、インター基本モード、Ｓｋｉｐモード、Ｄｉｒｅｃｔモードなどの種々のモードを備えている。
【００４４】
インター基本モードには、インター１６ｘ１６モード、インター８ｘ１６モード、インター１６ｘ８モード、インター８ｘ８モード、インター４ｘ８モード、インター４ｘ４モードがあり、それぞれブロックデータのサイズが１６ｘ１６，８ｘ１６，１６ｘ８，８ｘ８，４ｘ８，４ｘ４である。
また、インター基本モードの各々のサイズにづいて、前方予測モード、後方予測モード、双方向予測モードが選択可能である。
ここで、前方予測モードは表示順が前の画像データを参照画像データとして用いるモードであり、後方予測モードは表示順が後の画像データを参照画像データとして用いるモードであり、双方向予測モードは表示順が前と後との画像データを参照画像データとして用いるモードである。
本実施形態では、動き予測・補償回路４３による動き予測・補償処理では、複数の参照画像データを持つことができる。
【００４５】
動き予測・補償回路４３は、インター基本モードにおいて、動きベクトルあるいはその差分動きベクトルと、量子化された差分画像データである画像データＳ２６を可逆符号化回路２７で符号化して画像データＳ２に含める。
【００４６】
次に、Ｓｋｉｐモードについて説明する。
Ｓｋｉｐモードが最終的に選択されると、符号化装置２の可逆符号化回路２７は、画像データＳ２６および動きベクトルＭＶの何れの情報も符号化しない、すなわち画像データＳ２には含めない。
なお、可逆符号化回路２７は、動き予測・補償回路４３が選択した動き予測・補償モードを画像データＳ２に含める。
復号装置３は、画像データＳ２に含まれる動き予測・補償モードがＳｋｉｐモードを示す場合に、処理対象のブロックデータの周囲のブロックデータの動きベクトルを基に予測動きベクトルを生成し、この予測動きベクトルを基に復号画像データを生成する。
Ｓｋｉｐモードは、画像データＳ２６および動きベクトルの双方を符号化しないため、符号量を著しく削減できる。
当該Ｓｋｉｐモードは、Ｂピクチャに加えて、Ｐピクチャについても選択可能である。
【００４７】
次に、Ｄｉｒｅｃｔモードについて説明する。
Ｄｉｒｅｃｔモードが最終的に選択されると、符号化装置２の可逆符号化回路２７は、動きベクトルＭＶを符号化しない。
なお、可逆符号化回路２７は、動き予測・補償モードと画像データＳ２６とを符号化する。
復号装置３は、画像データＳ２に含まれる動き予測・補償モードがＤｉｒｅｃｔモードを示す場合に、処理対象のブロックデータの周囲のブロックデータの動きベクトルを基に予測動きベクトルを生成し、この予測動きベクトルと符号化された上記画像データＳ２６とを基に復号画像データを生成する。
Ｄｉｒｅｃｔモードは、動きベクトルを符号化しないため、符号量を削減できる。
当該Ｓｋｉｐモードは、Ｂピクチャについて選択可能である。
【００４８】
Ｄｉｒｅｃｔモードには、１６ｘ１６のブロックサイズを用いる１６ｘ１６Ｄｉｒｅｃｔモードと、８ｘ８のブロックサイズを用いる８ｘ８Ｄｉｒｅｃｔモードとがある。
また、１６ｘ１６Ｄｉｒｅｃｔモードおよび８ｘ８Ｄｉｒｅｃｔモードの各々には、空間(Spatial) Ｄｉｒｅｃｔモードと、時間(Temporal)Ｄｉｒｅｃｔモードとがある。
動き予測・補償回路４３は、空間Ｄｉｒｅｃｔモードの場合に、処理対象のブロックデータの周囲のブロックデータの動きベクトルを用いて、予測動きベクトル（動きベクトル）を生成する。
そして、動き予測・補償回路４３は、予測動きベクトルを基に参照ブロックデータを特定して参照画像データＰＩｍを生成する。
また、動き予測・補償回路４３は、時間Ｄｉｒｅｃｔモードの場合に、処理対象のブロックデータの参照画像データ内の対応する位置のブロックデータの動きベクトルを用いて、予測動きベクトル（動きベクトル）を生成する。
そして、動き予測・補償回路４３は、予測動きベクトルを基に参照ブロックデータを特定して参照画像データＰＩｍを生成する。
復号装置３は、時間Ｄｉｒｅｃｔモードが指定され、例えば、図３に示すように、フレームデータＢ内の処理対象のブロックデータがフレームデータＲＬ０，ＲＬ１を参照画像データとし、フレームデータＲＬ１内の対応する位置のブロックデータのフレームデータＲＬ０に対しての動きベクトルがＭＶｃである場合に、下記式（７），（８）に従って、動きベクトルＭＶ０，ＭＶ１を算出する。
下記式（７），（８）において、ＴＤＤは参照画像データＲＬ０と参照画像データＲＬ１との間の表示タイミングの間隔を示し、ＴＤＢはフレームデータＢと参照画像データＲＬ０との間の表示タイミングの間隔を示す。
【００４９】
【数７】
2005348093.tif 000009
【００５０】
【数８】
2005348093.tif 000010
【００５１】
図４は、動き予測・補償回路４３のハードウェア構成図の一例である。
図４に示すように、動き予測・補償回路４３は、例えば、インタフェース５１、メモリ５２および処理回路５３を有し、これらがデータ線５０を介して接続されている。
インタフェース５１は、画面並べ替え回路２３、可逆符号化回路２７およびフレームメモリ３１とデータ入出力を行う。
メモリ５２は、プログラムＰＲＧ１、並びに処理回路５３の処理に用いられる種々のデータを記憶する。
処理回路５３は、メモリ５２から読み出したプログラムＰＲＧ１に従って、動き予測・補償回路４３の処理を統括的に制御する。
【００５２】
以下、動き予測・補償回路４３の動作例を説明する。
以下に示す動き予測・補償回路４３の動作は、処理回路５３がプログラムＰＲＧ１に従って制御する。
図５および図６は、動き予測・補償回路４３の動作例を説明するためのフローチャートである。
動き予測・補償回路４３は、以下に示す処理を、原画像データＳ２３内の処理対象のブロックデータについて行う。
ステップＳＴ１：
動き予測・補償回路４３は、インター１６ｘ１６，インター８ｘ８、Ｓｋｉｐ、Ｄｉｒｅｃｔ１６ｘ１６、Ｄｉｒｅｃｔ８ｘ８のそれぞれについて、上述した手順で処理対象のブロックデータの動きベクトルＭＶ（インター１６ｘ１６），ＭＶ（インター８ｘ８），ＭＶ（Ｓｋｉｐ），ＭＶ（Ｄｉｒｅｃｔ１６ｘ１６），ＭＶ（Ｄｉｒｅｃｔ８ｘ８）を生成する。
【００５３】
ステップＳＴ２：
動き予測・補償回路４３は、ステップＳＴ１で生成した動きベクトルＭＶ（ｓｋｉｐ）と動きベクトルＭＶ（インター１６ｘ１６）との差分ベクトルの絶対値が、予め決めた基準値ＭＶ＿ＲＡＮＧＥより大きいか否かを判断し、大きいと判断するとステップＳＴ３に進み、そうでない場合にはステップＳＴ４に進む。
ステップＳＴ３：
動き予測・補償回路４３は、後述する動き予測・補償モードの選択処理において、Ｓｋｉｐモードを非選択にすることを決定する。
ステップＳＴ４：
動き予測・補償回路４３は、ステップＳＴ１で生成した動きベクトルＭＶ（Ｄｉｒｅｃｔ８ｘ８）と動きベクトルＭＶ（インター８ｘ８）との差分ベクトルの絶対値が、予め決めた基準値ＭＶ＿ＲＡＮＧＥより大きいか否かを判断し、大きいと判断するとステップＳＴ５に進み、そうでない場合にはステップＳＴ６に進む。
ステップＳＴ５：
動き予測・補償回路４３は、後述する動き予測・補償モードの選択処理において、Ｄｉｒｅｃｔ８ｘ８モードを非選択にすることを決定する。
ステップＳＴ６：
動き予測・補償回路４３は、ステップＳＴ１で生成した動きベクトルＭＶ（Ｄｉｒｅｃｔ１６ｘ１６）と動きベクトルＭＶ（インター１６ｘ１６）との差分ベクトルの絶対値が、予め決めた基準値ＭＶ＿ＲＡＮＧＥより大きいか否かを判断し、大きいと判断するとステップＳＴ７に進み、そうでない場合にはステップＳＴ８に進む。
ステップＳＴ７：
動き予測・補償回路４３は、後述する動き予測・補償モードの選択処理において、Ｄｉｒｅｃｔ１６ｘ１６モードを非選択にすることを決定する。
【００５４】
ステップＳＴ８：
動き予測・補償回路４３は、ステップＳＴ３，ＳＴ５，ＳＴ７によって非選択に指定されなかった動き予測・補償モードについて、前述した手順で指標データＣＯＳＴｍを算出する。
ステップＳＴ９：
動き予測・補償回路４３は、ステップＳＴ８で算出した指標モードＣＯＳＴｍを最小にする動き予測・補償モードを選択する。
ステップＳＴ１０：
動き予測・補償回路４３は、上記選択した動き予測・補償モードに対応して生成した予測画像データＰＩｍおよび指標データＣＯＳＴｍを選択回路４４に出力する。
ステップＳＴ１１：
動き予測・補償回路４３は、選択回路４４から動き予測・補償モードが選択されたことを示す選択信号Ｓ４４を入力したか否かを所定のタイミングで判断し、入力したと判断するとステップＳＴ１２に進み、そうでない場合には処理を終了する。
ステップＳＴ１２：
動き予測・補償回路４３は、ステップＳＴ９で選択した動き予測・補償モードに対応して生成した動きベクトルＭＶ、あるいはその差分動きベクトル、並びに選択された動き予測・補償モードＭＥＭを可逆符号化回路２７に出力する。
【００５５】
〔選択回路４４〕
選択回路４４は、動き予測・補償回路４３から入力した指標データＣＯＳＴｍと、イントラ予測回路４１から入力した指標データＣＯＳＴｉとのうち小さい方を特定し、当該特定した指標データに対応して入力した予測画像データＰＩｍあるいはＰＩｉを演算回路２４および加算回路３３に出力する。
また、選択回路４４は、指標データＣＯＳＴｍが小さい場合に、動き予測・補償モードを選択したことを示す選択信号Ｓ４４を動き予測・補償回路４３に出力する。
一方、選択回路４４は、指標データＣＯＳＴｉが小さい場合に、イントラ予測モードを選択したことを示す選択信号Ｓ４４を動き予測・補償回路４３に出力する。
なお、本実施形態において、イントラ予測回路４１および動き予測・補償回路４３がそれぞれ生成した全ての指標データＣＯＳＴｉ，ＣＯＳＴｍを選択回路４４に出力し、選択回路４４において最小の指標データを特定してもよい。
【００５６】
以下、図２に示す符号化装置２の全体動作を説明する。
入力となる画像信号は、まず、Ａ／Ｄ変換回路２２においてデジタル信号に変換される。
次に、出力となる画像圧縮情報のＧＯＰ構造に応じ、画面並べ替え回路２３においてフレーム画像データの並べ替えが行われ、それによって得られた原画像データＳ２３が演算回路２４、動き予測・補償回路４３およびイントラ予測回路４１に出力される。
次に、演算回路２４が、画面並べ替え回路２３からの原画像データＳ２３と選択回路４４からの予測画像データＰＩとの差分を検出し、その差分を示す画像データＳ２４を直交変換回路２５に出力する。
【００５７】
次に、直交変換回路２５が、画像データＳ２４に離散コサイン変換やカルーネン・レーベ変換等の直交変換を施して画像データ（ＤＣＴ係数）Ｓ２５を生成し、これを量子化回路２６に出力する。
次に、量子化回路２６が、画像データＳ２５を量子化し、画像データ（量子化されたＤＣＴ係数）Ｓ２６を可逆符号化回路２７および逆量子化回路２９に出力する。
次に、可逆符号化回路２７が、画像データＳ２６に可変長符号化あるいは算術符号化等の可逆符号化を施して画像データＳ２８を生成し、これをバッファ２８に蓄積する。
また、レート制御回路３２が、バッファ２８から読み出した画像データＳ２８を基に、量子化回路２６における量子化レートを制御する。
【００５８】
また、逆量子化回路２９が、量子化回路２６から入力した画像データＳ２６を逆量子化して逆直交変換回路３０に出力する。
そして、逆直交変換回路３０が、直交変換回路２５の逆変換処理を行って生成した画像データを加算回路３３に出力する。
加算回路３３において、逆直交変換回路３０からの画像データと選択回路４４からの予測画像データＰＩとが加算されて再構成画像データが生成あれ、デブロックフィルタ３４に出力される。
そして、デブロックフィルタ３４において、再構成画像データのブロック歪みを除去した画像データが生成され、これが参照画像データとして、フレームメモリ３１に書き込まれる。
【００５９】
そして、イントラ予測回路４１において、上述したイントラ予測処理が行われ、その結果である予測画像データＰＩｉと、指標データＣＯＳＴｉとが選択回路４４に出力される。
また、動き予測・補償回路４３において、図５および図６を用いて説明した動き予測・補償処理が行われ、その結果である予測画像データＰＩｍと、指標データＣＯＳＴｍとが選択回路４４に出力される。
そして、選択回路４４において、動き予測・補償回路４３から入力した指標データＣＯＳＴｍと、イントラ予測回路４１から入力した指標データＣＯＳＴｉとのうち小さい方を特定し、当該特定した指標データに対応して入力した予測画像データＰＩｍあるいはＰＩｉを演算回路２４および加算回路３３に出力する。
【００６０】
以上説明したように、符号化装置２では、図５および図６を用いて説明したように、動き予測・補償モードのうち、Ｓｋｉｐ，Ｄｉｒｅｃｔ１６ｘ１６，Ｄｉｒｅｃｔ８ｘ８モードの動きベクトルＭＶが、インター基本モードの動きベクトルＭＶと所定の基準値以上の場合に、これらの動き予測・補償モードを非選択に指定する。
そのため、図６に示すステップＳＴ９の処理において、これらの動き予測・補償モードが選択されることを回避できる。
すなわち、符号化装置２では、指標データＣＯＳＴｍが小さくても、Ｓｋｉｐ，Ｄｉｒｅｃｔ１６ｘ１６，Ｄｉｒｅｃｔ８ｘ８モードの動きベクトルＭＶが本来の動きベクトルと大幅にずれている場合には、インター基本モードを強制的に選択して、動きベクトルあるいはその差分動きベクトルと、量子化された差分画像データである画像データＳ２６を可逆符号化回路２７で符号化して画像データＳ２に含める。
【００６１】
そのため、上述した動きベクトルのずれによって復号画像上で視覚されるジャーキーモションなどを抑制でき、高画質化を図れる。
【００６２】
＜第１実施形態の変形例＞
上述した実施形態では、図５に示すステップＳＴ２，ＳＴ４，ＳＴ５において、動きベクトル（Ｓｋｉｐ）とＭＶ（インター１６ｘ１６）との間で、利用した参照画像データが同じであることを前提としているが、参照画像データが異なる場合にも本発明は適用可能である。
例えば、図７に示すように、フレームデータＢ内の処理対象のブロックデータが，Ｄｉｒｅｃｔ１６ｘ１６モードにおいてフレームデータＦ１を参照画像データとし、インター１６ｘ１６モードにおいてフレームデータＦ２を参照画像データとした場合を考える。
この場合には、下記式（９）を基に、動きベクトルＭＶ（インター１６ｘ１６）を補正した動きベクトルＭＶ１（インター１６ｘ１６）を図５の判断に用いる。
下記式（９）において、Ｔｄｉｒｅｃｔは参照画像データＦ１とフレームデータＢとの間の表示タイミングの間隔を示し、ＴｉｎｔｅｒはフレームデータＢと参照画像データＦ２との間の表示タイミングの間隔を示す。
【００６３】
【数９】
2005348093.tif 000011
【００６４】
また、図７に示すように、フレームデータＢ内の処理対象のブロックデータが，Ｄｉｒｅｃｔ１６ｘ１６モードにおいてフレームデータＦ１を参照画像データとし、インター１６ｘ１６モードにおいてフレームデータＦ３を参照画像データとした場合を考える。
この場合には、下記式（１０）を基に、動きベクトルＭＶ（インター１６ｘ１６）を補正した動きベクトルＭＶ２（インター１６ｘ１６）を図５の判断に用いる。
下記式（１０）において、Ｔｄｉｒｅｃｔは参照画像データＦ１とフレームデータＢとの間の表示タイミングの間隔を示し、ＴｉｎｔｅｒはフレームデータＢと参照画像データＦ３との間の表示タイミングの間隔を示す。
【００６５】
【数１０】
2005348093.tif 000012
【００６６】
＜第２実施形態＞
本実施形態は、第４〜第６の発明に対応した実施形態である。
先ず、本実施形態の構成要素と、本発明の構成要素との関係を説明する。
図９に示すイントラ予測回路４１ａの処理回路６３が図１０に示すステップＳＴ２２で後述する式（１２）を基に指標データＳＡＴＤａを算出することで第４の発明の生成手段が実現される。
また、処理回路６３が、図１０に示すステップＳＴ２２で後述する式（１１）を基に指標データＣＯＳＴａｉを算出し、ステップＳＴ２４を実行することで第４の発明の選択手段が実現される。
また、後述するように、イントラ予測回路４１ａが、指標データＳＡＴＤ（第１の指標データ）を算出する処理が第５の発明の第１の手順または第６の発明の第１の工程に対応している。
また、イントラ予測回路４１ａが、Ｍａｘ４ｘ４を特定する処理が、第５の発明の第２の手順または第６の発明の第２の工程に対応している。
また、イントラ予測回路４１ａが、後述する式（１２）を基に指標データＳＡＴＤａ（第２の指標データ）を算出する処理が、第５の発明の第３の手順または第６の発明の第３の工程に対応している。
また、イントラ予測回路４１ａが、後述する式（１１）を基に指標データＣＯＳＴａｉ（第３の指標データ）を算出し、図１０に示すステップＳＴ２４を行う処理が、第５の発明の第４の手順または第６の発明の第４の工程に対応している。
また、本実施形態のブロックデータが、本発明のブロックデータに対応している。
【００６７】
また、同様に、図１３に示す動き予測・補償回路４３ａの処理回路８３が図１４に示すステップＳＴ４２で後述する式（１５）を基に指標データＳＡＴＤａを算出することで第４の発明の生成手段が実現される。
また、処理回路８３が、図１４に示すステップＳＴ２２で後述する式（１４）を基に指標データＣＯＳＴａｍを算出し、ステップＳＴ４４を実行することで第４の発明の選択手段が実現される。
また、後述するように、動き予測・補償回路４３ａが、指標データＳＡＴＤ（第１の指標データ）を算出する処理が第５の発明の第１の手順または第６の発明の第１の工程に対応している。
また、動き予測・補償回路４３ａが、Ｍａｘ４ｘ４を特定する処理が、第５の発明の第２の手順または第６の発明の第２の工程に対応している。
また、動き予測・補償回路４３ａが、後述する式（１５）を基に指標データＳＡＴＤａ（第２の指標データ）を算出する処理が、第５の発明の第３の手順または第６の発明の第３の工程に対応している。
また、動き予測・補償回路４３ａが、後述する式（１４）を基に指標データＣＯＳＴａｍ（第３の指標データ）を算出し、図１４に示すステップＳＴ４４を行う処理が、第５の発明の第４の手順または第６の発明の第４の工程に対応している。
【００６８】
また、本実施形態のプログラムＰＲＧ２，ＰＲＧ３の各々が、第５の発明のプログラムに対応している。
【００６９】
以下、本実施形態に係わる符号化装置について詳細に説明する。
図８は、本発明の実施形態に係わる符号化装置２ａの全体構成図である。
図８に示すように、符号化装置２ａは、例えば、Ａ／Ｄ変換回路２２、画面並べ替え回路２３、演算回路２４、直交変換回路２５、量子化回路２６、可逆符号化回路２７、バッファ２８、逆量子化回路２９、逆直交変換回路３０、フレームメモリ３１、レート制御回路３２、加算回路３３、デブロックフィルタ３４、イントラ予測回路４１ａ、動き予測・補償回路４３ａおよび選択回路４４を有する。
図７において、図２と同じ符号を付した構成要素は第１実施形態で説明しものと同じである。
本実施形態の符号化装置２ａは、イントラ予測回路４１ａおよび動き予測・補償回路４３ａに特徴を有している。
【００７０】
〔イントラ予測回路４１ａ〕
イントラ予測回路４１ａは、例えば、イントラ４ｘ４モードおよびイントラ１６ｘ１６モードなどの複数の予測モードのそれぞれについて処理対象のマクロブロックＭＢの予測画像データＰＩｉを生成し、これと原画像データＳ２３内の処理対象のマクロブロックＭＢとを基に、符号化されたデータの符号量の指標となる指標データＣＯＳＴａｉを生成する。
そして、イントラ予測回路４１ａは、指標データＣＯＳＴａｉを最小にするイントラ予測モードを選択する。
イントラ予測回路４１ａは、最終的に選択したイントラ予測モードに対応して生成した予測画像データＰＩｉおよび指標データＣＯＳＴａｉを選択回路４４に出力する。
また、イントラ予測回路４１ａは、イントラ予測モードが選択されたことを示す選択信号Ｓ４４を入力すると、最終的に選択したイントラ予測モードを示す予測モードＩＰＭを可逆符号化回路２７に出力する。
なお、ＰスライスあるいはＢスライスに属するマクロブロックＭＢであっても、イントラ予測回路４１ａによるイントラ予測符号化が行われる場合がある。
【００７１】
イントラ予測回路４１ａは、例えば、指標データＣＯＳＴａｉを下記式（１１）に基づいて生成する。
【００７２】
【数１１】
2005348093.tif 000013
【００７３】
上記式（１１）において、「ｉ」は、例えば、処理対象のマクロブロックＭＢを構成する上記イントラ予測モードに対応したサイズのブロックデータの各々に付された識別番号である。
すなわち、イントラ予測回路４１ａは、処理対象のマクロブロックＭＢを構成する全てのブロックデータについて、「ＳＡＴＤａ＋ｈｅａｄｅｒ＿ｃｏｓｔ（ｍｏｄｅ））」を算出し、これらを加算して指標データＣＯＳＴａｉを算出する。
ｈｅａｄｅｒ＿ｃｏｓｔ（ｍｏｄｅ）は、選択されたイントラ予測モードや量子化パラメータ（量子化スケール）などを含むヘッダデータの符号量の指標となる指標データであり、イントラ予測モードによって異なる値を示す。
また、ＳＡＴＤａは、処理対象のマクロブロックＭＢ内のブロックデータと、当該ブロックデータの周囲の予め決められたブロックデータ（予測ブロックデータ）との間の差分画像データの符号量の指標となる指標データである。
本実施形態では、単数または複数の予測ブロックデータによって予測画像データＰＩｉが規定される。
【００７４】
本実施形態は、ＳＡＴＤａの算出方法に特徴を有している。
イントラ予測回路４１ａは、イントラ１６ｘ１６モードおよびイントラ４ｘ４モードについての指標データＳＡＴＤａを、図１２（Ａ）および下記式（１２）に示すように算出する。
【００７５】
【数１２】
2005348093.tif 000014
【００７６】
上記式（１２）の「ＳＡＴＤ」は、第１実施形態で説明した式（５）と同じである。
但し、本実施形態では、イントラ予測回路４１ａは、１６ｘ１６画素データで構成されるブロックデータについて、４ｘ４画素データを単位として上記式（５）の演算を行い、その結果を加算してＳＡＴＤを算出する。
すなわち、ＳＡＴＤは、例えば、処理対象のブロックデータＯｒｇと、予測画像データ（参照ブロックデータ）Ｐｒｅとの画素データ間の絶対値誤差和にアダマール変換を施した後のデータである。
ここで、イントラ予測回路４１ａは、ブロックデータ内の各４ｘ４画素データについて行った式（５）の演算結果のうち最大値を特定し、それをＭａｘ４ｘ４とする。
そして、イントラ予測回路４１ａは、ＳＡＴＤに「Ｍａｘ４ｘ４＊１６」を加算して２で除算することで、指標データＳＡＴＤａを算出する。
イントラ予測回路４１ａは、上記式（１２）を用いることで、ＳＡＴＤのみを用いる場合に比べて、Ｍａｘ４ｘ４（差分の最大値）の影響が強く反映された指標データＳＡＴＤａを算出できる。
【００７７】
なお、ＳＡＴＤの代わりに、第１実施形態の式（３）で示すＳＡＤを用いてもよい。
また、ＳＡＴＤの代わりに、ＭＰＥＧ４，ＡＶＣで規定されているＳＳＤなどの歪みや残差を表わすその他の指標を用いてもよい。
【００７８】
図９は、図８に示すイントラ予測回路４１ａのハードウェア構成図の一例である。
図９に示すように、イントラ予測回路４１ａは、例えば、インタフェース６１、メモリ６２および処理回路６３を有し、これらがデータ線６０を介して接続されている。
インタフェース６１は、画面並べ替え回路２３、可逆符号化回路２７およびフレームメモリ３１とデータ入出力を行う。
メモリ６２は、プログラムＰＲＧ２、並びに処理回路６３の処理に用いられる種々のデータを記憶する。
処理回路６３は、メモリ６２から読み出したプログラムＰＲＧ２に従って、イントラ予測回路４１ａ処理を統括的に制御する。
【００７９】
以下、イントラ予測回路４１ａの動作例を説明する。
以下に示すイントラ予測回路４１ａの動作は、処理回路６３がプログラムＰＲＧ２に従って制御する。
図１０は、イントラ予測回路４１ａの動作例を説明するためのフローチャートである。
イントラ予測回路４１ａは、以下に示す処理を、原画像データＳ２３内の処理対象のブロックデータについて行う。
ステップＳＴ２１：
イントラ予測回路４１ａは、イントラ１６ｘ１６モードおよびイントラ４ｘ４モードを含む複数のイントラ予測モードのうち未処理のイントラ予測モードを特定する。
ステップＳＴ２２：
イントラ予測回路４１ａは、ステップＳＴ２１で特定したイントラ予測モードについて、上述した式（１２）を用いて説明した手法で指標データＣＯＳＴａｉを算出する。
ステップＳＴ２３：
イントラ予測回路４１ａは、全てのイントラ予測モードについて、ステップＳＴ２２の処理を終了したか否かを判断し、終了したと判断するとステップＳＴ２４に進み、そうでない場合にはステップＳＴ２１に戻る。
【００８０】
ステップＳＴ２４：
イントラ予測回路４１ａは、全てのイントラ予測モードについてステップＳＴ２２で算出した指標データＣＯＳＴａｉのうち最小のイントラ予測モードを選択する。
ステップＳＴ２５：
イントラ予測回路４１ａは、ステップＳＴ２４で選択したイントラ予測モードに対応して生成した予測画像データＰＩｉおよび指標データＣＯＳＴａｉを選択回路４４に出力する。
ステップＳＴ２６：
イントラ予測回路４１ａは、選択回路４４からイントラ予測モードが選択されたことを示す選択信号Ｓ４４を入力したか否かを所定のタイミングで判断し、入力したと判断するとステップＳＴ２７に進み、そうでない場合には処理を終了する。
ステップＳＴ２７：
イントラ予測回路４１ａは、ステップＳＴ２４で選択したイントラ予測モードＩＰＭを可逆符号化回路２７に出力する。
【００８１】
なお、イントラ予測回路４１ａは、図９に示す構成の代わりに、例えば、図１１に示すように、ＳＡＴＤ算出回路７１、最大値特定回路７２、ＣＯＳＴ算出回路７３およびモード判定回路７４を備えてもよい。
ここで、ＳＡＴＤ算出回路７１は、上記式（５）の演算を行い、その結果を加算してＳＡＴＤを算出する。
また、最大値特定回路７２は、ブロックデータ内の各４ｘ４画素データについて行った式（５）の演算結果のうち最大値を特定し、それをＭａｘ４ｘ４とする。
ＣＯＳＴ算出回路７３は、ＳＡＴＤに「Ｍａｘ４ｘ４＊１６」を加算して２で除算することで、指標データＳＡＴＤａを算出する。
また、モード判定回路７４は、図１０に示すステップＳＴ２４の処理を行う。
【００８２】
〔動き予測・補償回路４３ａ〕
動き予測・補償回路４３ａは、画面並べ替え回路２３から入力した原画像データＳ２３の処理対象のマクロブロックＭＢがインター符号化される場合に、複数の動き予測・補償モードの各々について、フレームメモリ３１に記憶された過去に符号化された参照画像データＲＥＦを基に、動き予測・補償モードによって規定されたブロックデータを単位として、処理対象のブロックデータの動きベクトルＭＶおよび予測画像データを生成する。
当該ブロックデータのサイズ、並びに参照画像データＲＥＦは、例えば、動き予測・補償モードによって規定される。
また、動き予測・補償回路４３ａは、上記動き予測・補償モードの各々について、原画像データＳ２３内の処理対象のマクロブロックＭＢと、その予測ブロックデータ（予測画像データＰＩｍ）とを基に、符号化されたデータの符号量の指標となる指標データＣＯＳＴａｍを生成する。
そして、動き予測・補償回路４３ａは、指標データＣＯＳＴａｍを最小にする動き予測・補償モードを選択する。
動き予測・補償回路４３ａは、最終的に選択した動き予測・補償モードに対応して生成した予測画像データＰＩｍおよび指標データＣＯＳＴｍａを選択回路４４に出力する。
また、動き予測・補償回路４３ａは、最終的に選択した動き予測・補償モードに対応して生成した動きベクトル、あるいは当該動きベクトルと予測動きベクトルとの間の差分動きベクトルを可逆符号化回路２７に出力する。
また、動き予測・補償回路４３ａは、最終的に選択された動き予測・補償モードＭＥＭを可逆符号化回路２７に出力する。
また、動き予測・補償回路４３ａは、動き予測・補償処理において選択した参照画像デーサ（参照フレーム）の識別データを可逆符号化回路２７に出力する。
【００８３】
動き予測・補償回路４３ａは、例えば、指標データＣＯＳＴａｍを下記式（１３）に基づいて生成する。
【００８４】
【数１３】
2005348093.tif 000015
【００８５】
上記式（１３）において、「ｉ」は、例えば、処理対象のマクロブロックＭＢを構成する上記動き予測・補償モードに対応したサイズのブロックデータの各々に付された識別番号である。
すなわち、動き予測・補償回路４３ａは、処理対象のマクロブロックＭＢを構成する全てのブロックデータについて、「ＳＡＴＤａ＋ｈｅａｄｅｒ＿ｃｏｓｔ（ｍｏｄｅ））」を算出し、これらを加算して指標データＣＯＳＴａｍを算出する。
ｈｅａｄｅｒ＿ｃｏｓｔ（ｍｏｄｅ）は、動きベクトルあるいはその差分動きベクトル、参照画像データの識別データ、選択された動き予測・補償モード、量子化パラメータ（量子化スケール）などを含むヘッダデータの符号量の指標となる指標データであり、動き予測・補償モードによって異なる値を示す。
また、ＳＡＴＤａは、処理対象のマクロブロックＭＢ内のブロックデータと、当該ブロックデータの周囲の予め決められたブロックデータ（予測ブロックデータ）との間の差分画像データの符号量の指標となる指標データである。
本実施形態では、単数または複数の予測ブロックデータによって予測画像データＰＩｍが規定される。
【００８６】
本実施形態は、ＳＡＴＤａの算出方法に特徴を有している。
動き予測・補償回路４３ａは、第１実施形態で説明したインター１６ｘ１６モード、イントラ１６ｘ１６モード、イントラ４ｘ４モード、Ｓｋｉｐモード、Ｄｉｒｅｃｔ１６ｘ１６モードについての指標データＳＡＴＤａを、図１２（Ａ）および下記式（１４）に示すように算出する。
【００８７】
【数１４】
2005348093.tif 000016
【００８８】
上記式（１４）の「ＳＡＴＤ」は、第１実施形態で説明した式（５）と同じである。
但し、動き予測・補償回路４３ａは、１６ｘ１６画素データで構成されるブロックデータについて、４ｘ４画素データを単位として上記式（５）の演算を行い、その結果を加算してＳＡＴＤを算出する。
すなわち、ＳＡＴＤは、例えば、処理対象のブロックデータＯｒｇと、予測画像データ（参照ブロックデータ）Ｐｒｅとの画素データ間の絶対値誤差和にアダマール変換を施した後のデータである。
ここで、動き予測・補償回路４３ａは、ブロックデータ内の各４ｘ４画素データについて行った式（５）の演算結果のうち最大値を特定し、それをＭａｘ４ｘ４とする。
そして、動き予測・補償回路４３ａは、ＳＡＴＤに「Ｍａｘ４ｘ４＊１６」を加算して２で除算することで、指標データＳＡＴＤａを算出する。
動き予測・補償回路４３ａは、上記式（１４）を用いることで、ＳＡＴＤのみを用いる場合に比べて、Ｍａｘ４ｘ４（差分の最大値）の影響が強く反映された指標データＳＡＴＤａを算出できる。
【００８９】
また、動き予測・補償回路４３ａは、インター８ｘ１６モードおびインター１６ｘ８モードについての指標データＳＡＴＤａを、図１２（Ｂ）および下記式（１５）に示すように算出する。
【００９０】
【数１５】
2005348093.tif 000017
【００９１】
上記式（１５）の「ＳＡＴＤ」は、第１実施形態で説明した式（５）と同じである。
但し、動き予測・補償回路４３ａは、８ｘ１６あるいは１６ｘ８画素データで構成されるブロックデータについて、４ｘ４画素データを単位として上記式（５）の演算を行い、その結果を加算してＳＡＴＤを算出する。
すなわち、ＳＡＴＤは、例えば、処理対象のブロックデータＯｒｇと、予測画像データ（参照ブロックデータ）Ｐｒｅとの画素データ間の絶対値誤差和にアダマール変換を施した後のデータである。
ここで、動き予測・補償回路４３ａは、ブロックデータ内の各４ｘ４画素データについて行った式（５）の演算結果のうち最大値を特定し、それをＭａｘ４ｘ４とする。
そして、動き予測・補償回路４３ａは、ＳＡＴＤに「Ｍａｘ４ｘ４＊８」を加算して２で除算することで、指標データＳＡＴＤａを算出する。
動き予測・補償回路４３ａは、上記式（１５）を用いることで、ＳＡＴＤのみを用いる場合に比べて、Ｍａｘ４ｘ４（差分の最大値）の影響が強く反映された指標データＳＡＴＤａを算出できる。
【００９２】
また、動き予測・補償回路４３ａは、インター８ｘ８モードおよび第１実施形態で説明したＤｉｒｅｃｔ８ｘ８モードについての指標データＳＡＴＤａを、図１２（Ｃ）および下記式（１６）に示すように算出する。
【００９３】
【数１６】
2005348093.tif 000018
【００９４】
上記式（１６）の「ＳＡＴＤ」は、第１実施形態で説明した式（５）と同じである。
但し、動き予測・補償回路４３ａは、８ｘ８画素データで構成されるブロックデータについて、４ｘ４画素データを単位として上記式（５）の演算を行い、その結果を加算してＳＡＴＤを算出する。
すなわち、ＳＡＴＤは、例えば、処理対象のブロックデータＯｒｇと、予測画像データ（参照ブロックデータ）Ｐｒｅとの画素データ間の絶対値誤差和にアダマール変換を施した後のデータである。
ここで、動き予測・補償回路４３ａは、ブロックデータ内の各４ｘ４画素データについて行った式（５）の演算結果のうち最大値を特定し、それをＭａｘ４ｘ４とする。
そして、動き予測・補償回路４３ａは、ＳＡＴＤに「Ｍａｘ４ｘ４＊４」を加算して２で除算することで、指標データＳＡＴＤａを算出する。
動き予測・補償回路４３ａは、上記式（１６）を用いることで、ＳＡＴＤのみを用いる場合に比べて、Ｍａｘ４ｘ４（差分の最大値）の影響が強く反映された指標データＳＡＴＤａを算出できる。
【００９５】
また、動き予測・補償回路４３ａは、インター４ｘ８モードおよびインター８ｘ４モードについての指標データＳＡＴＤａを、図１２（Ｄ）および下記式（１７）に示すように算出する。
【００９６】
【数１７】
2005348093.tif 000019
【００９７】
上記式（１７）の「ＳＡＴＤ」は、第１実施形態で説明した式（５）と同じである。
但し、動き予測・補償回路４３ａは、８ｘ４あるいは４ｘ８画素データで構成されるブロックデータについて、４ｘ４画素データを単位として上記式（５）の演算を行い、その結果を加算してＳＡＴＤを算出する。
すなわち、ＳＡＴＤは、例えば、処理対象のブロックデータＯｒｇと、予測画像データ（参照ブロックデータ）Ｐｒｅとの画素データ間の絶対値誤差和にアダマール変換を施した後のデータである。
ここで、動き予測・補償回路４３ａは、ブロックデータ内の各４ｘ４画素データについて行った式（５）の演算結果のうち最大値を特定し、それをＭａｘ４ｘ４とする。
そして、動き予測・補償回路４３ａは、ＳＡＴＤに「Ｍａｘ４ｘ４＊２」を加算して２で除算することで、指標データＳＡＴＤａを算出する。
動き予測・補償回路４３ａは、上記式（１７）を用いることで、ＳＡＴＤのみを用いる場合に比べて、Ｍａｘ４ｘ４（差分の最大値）の影響が強く反映された指標データＳＡＴＤａを算出できる。
【００９８】
また、動き予測・補償回路４３ａは、インター４ｘ４モードについての指標データＳＡＴＤａを、図１２（Ｅ）および下記式（１８）に示すように算出する。
【００９９】
【数１８】
2005348093.tif 000020
【０１００】
上記式（１８）の「ＳＡＴＤ」は、第１実施形態で説明した式（５）と同じである。
但し、動き予測・補償回路４３ａは、４ｘ４で構成されるブロックデータについて、４ｘ４画素データを単位として上記式（５）の演算を行い、その結果を加算してＳＡＴＤを算出する。
すなわち、ＳＡＴＤは、例えば、処理対象のブロックデータＯｒｇと、予測画像データ（参照ブロックデータ）Ｐｒｅとの画素データ間の絶対値誤差和にアダマール変換を施した後のデータである。
ここで、動き予測・補償回路４３ａは、ブロックデータ内の各４ｘ４画素データについて行った式（５）の演算結果のうち最大値を特定し、それをＭａｘ４ｘ４とする。
そして、動き予測・補償回路４３ａは、ＳＡＴＤに「Ｍａｘ４ｘ４」を加算して２で除算することで、指標データＳＡＴＤａを算出する。
動き予測・補償回路４３ａは、上記式（１８）を用いることで、ＳＡＴＤのみを用いる場合に比べて、Ｍａｘ４ｘ４（差分の最大値）の影響が強く反映された指標データＳＡＴＤａを算出できる。
【０１０１】
なお、ＳＡＴＤの代わりに、第１実施形態の式（３）で示すＳＡＤを用いてもよい。
【０１０２】
図１３は、図８に示す動き予測・補償回路４３ａのハードウェア構成図の一例である。
図１３に示すように、動き予測・補償回路４３ａは、例えば、インタフェース８１、メモリ８２および処理回路８３を有し、これらがデータ線８０を介して接続されている。
インタフェース８１は、画面並べ替え回路２３、可逆符号化回路２７およびフレームメモリ３１とデータ入出力を行う。
メモリ８２は、プログラムＰＲＧ３、並びに処理回路８３の処理に用いられる種々のデータを記憶する。
処理回路８３は、メモリ８２から読み出したプログラムＰＲＧ３に従って、動き予測・補償回路４３ａ処理を統括的に制御する。
【０１０３】
以下、動き予測・補償回路４３ａの動作例を説明する。
以下に示す動き予測・補償回路４３ａの動作は、処理回路８３がプログラムＰＲＧ３に従って制御する。
図１４は、動き予測・補償回路４３ａの動作例を説明するためのフローチャートである。
動き予測・補償回路４３ａは、以下に示す処理を、原画像データＳ２３内の処理対象のブロックデータについて行う。
ステップＳＴ４１：
動き予測・補償回路４３ａは、インター１６ｘ１６モード、Ｓｋｉｐモード、Ｄｉｒｅｃｔ１６ｘ１６モード、インター８ｘ１６モード、インター１６ｘ８モード、インター８ｘ８モード、Ｄｉｒｅｃｔ８ｘ８モード、インター４ｘ８モード、インター８ｘ４モード、インター４ｘ４モードを含む複数の動き予測・補償モードのうち未処理の動き予測・補償モードを特定する。
ステップＳＴ４２：
動き予測・補償回路４３ａは、ステップＳＴ４１で特定した動き予測・補償モードについて、上述した手法で指標データＣＯＳＴａｍを算出する。
ステップＳＴ４３：
動き予測・補償回路４３ａは、全ての動き予測・補償モードについて、ステップＳＴ４２の処理を終了したか否かを判断し、終了したと判断するとステップＳＴ４４に進み、そうでない場合にはステップＳＴ４１に戻る。
【０１０４】
ステップＳＴ４４：
動き予測・補償回路４３ａは、全ての動き予測・補償モードについてステップＳＴ４２で算出した指標データＣＯＳＴａｍのうち最小の動き予測・補償モードを選択する。
ステップＳＴ４５：
動き予測・補償回路４３ａは、ステップＳＴ４４で選択した動き予測・補償モードに対応して生成した予測画像データＰＩｍｉおよび指標データＣＯＳＴａｍを選択回路４４に出力する。
ステップＳＴ４６：
動き予測・補償回路４３ａは、選択回路４４から動き予測・補償モードが選択されたことを示す選択信号Ｓ４４を入力したか否かを所定のタイミングで判断し、入力したと判断するとステップＳＴ４７に進み、そうでない場合には処理を終了する。
ステップＳＴ４７：
動き予測・補償回路４３ａは、ステップＳＴ４４で選択した動き予測・補償モードＭＰＭ、動きベクトルＭＶ、並びに参照画像データの識別データを可逆符号化回路２７に出力する。
【０１０５】
なお、動き予測・補償回路４３ａは、図１３に示す構成の代わりに、例えば、図１５に示すように、ＳＡＴＤ算出回路９１、最大値特定回路９２、ＣＯＳＴ算出回路９３およびモード判定回路９４を備えてもよい。
ここで、ＳＡＴＤ算出回路９１は、上記式（５）の演算を行い、その結果を加算してＳＡＴＤを算出する。
また、最大値特定回路９２は、ブロックデータ内の各４ｘ４画素データについて行った式（５）の演算結果のうち最大値を特定し、それをＭａｘ４ｘ４とする。
ＣＯＳＴ算出回路９３は、ＳＡＴＤを用いて前述したように、指標データＳＡＴＤａを算出する。
また、モード判定回路７４は、図１４に示すステップＳＴ４４の処理を行う。
【０１０６】
符号化装置２ａの全体動作例は、イントラ予測回路４１ａおよび動き予測・補償回路４３において上述した動作が行われる点を除いて、第１実施形態の符号化装置２と同じである。
なお、本実施形態においても、イントラ予測回路４１ａおよび動き予測・補償回路４３ａがそれぞれ生成した全ての指標データＣＯＳＴａｉ，ＣＯＳＴａｍを選択回路４４に出力し、選択回路４４において最小の指標データを特定してもよい。
【０１０７】
以上説明したように、符号化装置２ａでは、イントラ予測回路４１ａおよび動き予測・補償回路４３ａのモード選択において、ＳＡＴＤのみを用いる場合に比べて、Ｍａｘ４ｘ４（差分の最大値）の影響が強く反映された指標データＳＡＴＤａを用いる。
そのため、符号化装置２ａによれば、処理対象のマクロブロック内の一部のブロックの符号量が大きく、それ以外の大半のブロックの符号量が小さい場合でも、上記一部のブロックの符号化に画質の観点から適切なモードが選択することができ、高画質な画像を提供できる。
【０１０８】
＜第２実施形態の変形例＞
上述した第２実施形態では、図１２および式（１２），式（１４）〜（１８）を基に指標データＳＡＴＤａを算出する場合を例示したが、本実施形態では、イントラ予測回路４１ａおよび動き予測・補償回路４３ａが、図１６および以下に示す式（１９）〜（２３）に示すように、指標データＳＡＴＤａを算出する。
下記式（１９）〜（２３）において、ａ，ｂ，ｃ，ｄ，ｅ，ｆ，ｇ，ｈ，ｉ，ｊは、所定の係数である。
ここで、係数ａ，ｃ，ｅ，ｇ，ｉが第４の発明の第１の係数に対応し、係数ｂ，ｄ，ｆ，ｈ，ｊが第４の発明の第２の係数に対応している。
【０１０９】
例えば、イントラ予測回路４１ａは、インター１６ｘ１６モードにおいて、図１６（Ａ）および下記式（１９）を基に、指標データＳＡＴＤａを算出する。
【０１１０】
【数１９】
2005348093.tif 000021
【０１１１】
また、イントラ予測回路４１ａおよび動き予測・補償回路４３ａは、イントラ１６ｘ１６モード、イントラ４ｘ４モード、Ｓｋｉｐモード、Ｄｉｒｅｃｔ１６ｘ１６モードにおいて、図１６（Ｂ）および下記式（２０）を基に、指標データＳＡＴＤａを算出する。
【０１１２】
【数２０】
2005348093.tif 000022
【０１１３】
また、動き予測・補償回路４３ａは、インター８ｘ１６モード、インター１６ｘ８モードにおいて、図１６（Ｃ）および下記式（２１）を基に、指標データＳＡＴＤａを算出する。
【０１１４】
【数２１】
2005348093.tif 000023
【０１１５】
また、動き予測・補償回路４３ａは、インター８ｘ８モード、Ｄｉｒｅｃｔ８ｘ８モードにおいて、図１６（Ｄ）および下記式（２２）を基に、指標データＳＡＴＤａを算出する。
【０１１６】
【数２２】
2005348093.tif 000024
【０１１７】
また、動き予測・補償回路４３ａは、インター４ｘ８モード、インター８ｘ４モードにおいて、図１６（Ｅ）および下記式（２３）を基に、指標データＳＡＴＤａを算出する。
【０１１８】
【数２３】
2005348093.tif 000025
【０１１９】
また、動き予測・補償回路４３ａは、インター４ｘ４モードにおいて、図１６（Ｆ）および下記式（２４）を基に、指標データＳＡＴＤａを算出する。
【０１２０】
【数２４】
2005348093.tif 000026
【０１２１】
本実施形態では、例えば、係数ａ，ｂ，ｃ，ｄ，ｅ，ｆ，ｇ，ｈ，ｉ，ｊを、外部から設定可能とし、ＳＡＴＤと、Ｍａｘ４ｘ４との重み付けを自由に設定できる。
例えば、本実施形態では、ａ＝１５，ｂ＝１，ｃ＝７，ｄ＝１，ｅ＝１，ｆ＝１，ｇ＝３，ｈ＝１，ｉ＝１，ｊ＝１と設定してもよい。
【０１２２】
本発明は上述した実施形態には限定されない。
本発明は、上述したイントラ予測モードおよび動き予測・補償モード以外のモードを用いてもよい。
【産業上の利用可能性】
【０１２３】
画像データを符号化するシステムに適用可能である。
【図面の簡単な説明】
【０１２４】
【図１】図１は、本発明は、本発明の第１実施形態の通信システムの構成図である。
【図２】図２は、図１に示す符号化装置の機能ブロック図である。
【図３】図３は、図１に示す動き予測・補償回路を説明するための図である。
【図４】図４は、図１に示す動き予測・補償回路のハードウェア構成図を説明するための図である。
【図５】図５は、図１に示す動き予測・補償回路の動作例を説明するためのフローチャートである。
【図６】図６は、図１に示す動き予測・補償回路の動作例を説明するための図５の続きのフローチャートである。
【図７】図７は、本発明の第１実施形態の変形例を説明するための図である。
【図８】図８は、本発明は、本発明の第２実施形態の符号化装置の機能ブロック図である。
【図９】図９は、図８に示すイントラ予測回路のハードウェア構成図を説明するための図である。
【図１０】図１０は、図８に示すイントラ予測回路の動作例を説明するためのフローチャートである。
【図１１】図１１は、図８に示すイントラ予測回路のその他のハードウェア構成図を説明するための図である。
【図１２】図１２は、本発明の第２実施形態における指標データＳＡＴＤａの算出方法を説明するための図である。
【図１３】図１３は、図８に示す動き予測・補償回路のハードウェア構成図を説明するための図である。
【図１４】図１４は、図８に示す動き予測・補償回路の動作例を説明するためのフローチャートである。
【図１５】図１５は、図８に示す動き予測・補償回路のその他のハードウェア構成図を説明するための図である。
【図１６】図１６は、本発明の第２実施形態における指標データＳＡＴＤａのその他の算出方法を説明するための図である。
【符号の説明】
【０１２５】
１…通信システム、２…符号化装置、３…復号装置、２２…Ａ／Ｄ変換回路、２３…画面並べ替え回路、２４…演算回路、２５…直交変換回路、２６…量子化回路、２７…可逆符号化回路、２８…バッファ、２９…逆量子化回路、３０…逆直交変換回路、３１…フレームメモリ、３２…レート制御回路、３３…加算回路、３４…デブロックフィルタ、４１…イントラ予測回路、４３…動き予測・補償回路、４４…選択回路
【図１】
2005348093.tif 000027
【図２】
2005348093.tif 000028
【図３】
2005348093.tif 000029
【図４】
2005348093.tif 000030
【図５】
2005348093.tif 000031
【図６】
2005348093.tif 000032
【図７】
2005348093.tif 000033
【図８】
2005348093.tif 000034
【図９】
2005348093.tif 000035
【図１０】
2005348093.tif 000036
【図１１】
2005348093.tif 000037
【図１２】
2005348093.tif 000038
【図１３】
2005348093.tif 000039
【図１４】
2005348093.tif 000040
【図１５】
2005348093.tif 000041
【図１６】
2005348093.tif 000042