(57)【要約】【課題】画質低下を抑えつつ、予測モード判定に要する処理量の低減することが可能な動画像符号化装置を実現する。【解決手段】符号化対象マクロブロック８に隣接する符号化済みマクロブロック１，２，３，７についてはそれらマクロブロック１，２，３，７が参照マクロブロックとなり、符号化されていない隣接マクロブロック９，１３，１４，１５については直前のピクチャＰn-1内の対応するマクロブロック９，１３，１４，１５が参照マクロブロックとなる。これら参照マクロブロックの内からコストが最小の参照マクロブロックが選択され、この選択された参照マクロブロックと同一の予測モードが予測モード候補に決定される。この予測モード候補をマクロブロック８に適用した場合のコストが、選択された参照マクロブロックのコスト以下である場合、予測モード候補がマクロブロック８の予測モードとなる。【選択図】図５
2009055542.tif 000002
【特許請求の範囲】
【請求項１】
符号化対象の動画像信号の各ピクチャを複数のマクロブロックに分割し、マクロブロック毎に、フレーム間予測符号化のための予測モード群とフレーム内予測符号化のための予測モード群とを含む複数の予測モードの中から１つの予測モードを選択し、当該選択された予測モードで前記マクロブロックを符号化する動画像符号化装置であって、
符号化対象のマクロブロックに対応する複数の周辺マクロブロックを特定する周辺マクロブロック特定手段であって、前記複数の周辺マクロブロックは、前記符号化対象のマクロブロックが存在する符号化対象ピクチャ内に存在し且つ前記符号化対象のマクロブロックを取り囲むように前記符号化対象のマクロブロックにそれぞれ隣接する複数のマクロブロックである、周辺マクロブロック特定手段と、
前記特定された複数の周辺マクロブロック内のマクロブロック毎に当該マクロブロックが符号化済みのマクロブロックであるか否かを判別し、当該マクロブロックが符号化済みのマクロブロックである場合、当該マクロブロックを前記符号化対象のマクロブロックの予測モード候補の決定のために使用すべき参照マクロブロックに決定し、当該マクロブロックが符号化されていないマクロブロックである場合、当該マクロブロックと同じ空間位置にある、前記符号化対象のピクチャの直前の符号化済みピクチャ内の符号化済みマクロブロックを、前記参照マクロブロックに決定することによって、前記複数の周辺マクロブロックそれぞれに対応する複数の参照マクロブロックを決定する参照マクロブロック決定手段と、
前記決定された複数の参照マクロブロックそれぞれの符号化で発生した符号量を示す、前記複数の参照マクロブロックそれぞれに対応するコストを参照することによって、前記複数の参照マクロブロックの内からコストが最小の参照マクロブロックを選択し、当該選択した参照マクロブロックの符号化で用いられた予測モードを前記符号化対象のマクロブロックに適用すべき予測モード候補に決定する予測モード候補決定手段と、
前記決定された予測モード候補で前記符号化対象のマクロブロックを符号化した場合に発生する符号量を示すコストを算出するコスト算出手段と、
前記算出されたコストが前記選択した参照マクロブロックのコスト以下である場合、前記決定された予測モード候補を前記符号化対象のマクロブロックに適用すべき予測モードに決定する第１の予測モード決定手段と、
前記算出された符号化コストが前記選択したマクロブロックの符号化コストよりも大きい場合、前記符号化対象のマクロブロックを前記予測モード候補以外の予測モードでそれぞれ符号化した場合に発生する符号量を示すコストをそれぞれ算出し、前記複数の予測モードの中でコストが最小となる予測モードを前記符号化対象のマクロブロックに適用すべき予測モードに決定する第２の予測モード決定手段とを具備することを特徴とする動画像符号化装置。
【請求項２】
前記選択した参照マクロブロックのコストが基準値よりも大きいか否かを判別する判別手段と、
前記選択した参照マクロブロックのコストが前記基準値よりも大きい場合、前記符号化対象のマクロブロックを前記複数の予測モードでそれぞれ符号化した場合に発生する符号量を示すコストをそれぞれ算出し、前記複数の予測モードの中でコストが最小となる予測モードを前記符号化対象のマクロブロックに適用すべき予測モードに決定する第３の予測モード決定手段とをさらに具備することを特徴とする請求項１記載の動画像符号化装置。
【請求項３】
前記予測モード候補決定手段は、前記複数の参照マクロブロックが前記符号化対象ピクチャ内に存在する参照マクロブロックと前記直前の符号化済みピクチャ内に存在する参照マクロブロックとを含む場合、前記符号化対象ピクチャ内に存在する参照マクロブロックが前記直前のピクチャ内に属する参照マクロブロックよりも優先的に選択されるように前記複数の参照マクロブロックそれぞれのコストに対して重み付けをし、前記複数の参照マクロブロックの内で、重み付けされたコストが最小の参照マクロブロックを選択することを特徴とする請求項１記載の動画像符号化装置。
【請求項４】
前記予測モード候補決定手段は、前記複数の参照マクロブロックそれぞれのコストに対して重み付けをするために、前記直前のピクチャ内に属する参照マクロブロックのコストに１よりも大きい重み係数を乗じることを特徴とする請求項３記載の動画像符号化装置。
【請求項５】
前記第３の予測モード決定手段は、前記選択した参照マクロブロックのコストが前記基準値よりも大きいという条件、または前記特定された複数の周辺マクロブロックに符号化済みのマクロブロックが含まれていないという条件が満たされた場合、前記符号化対象のマクロブロックを前記複数の予測モードでそれぞれ符号化した場合に発生する符号量を示すコストをそれぞれ算出し、前記複数の予測モードの中でコストが最小となる予測モードを前記符号化対象のマクロブロックに適用すべき予測モードに決定するように構成されていることを特徴とする請求項１記載の動画像符号化装置。
【請求項６】
符号化対象の動画像信号の各ピクチャを複数のマクロブロックに分割し、マクロブロック毎に、フレーム間予測符号化のための予測モード群とフレーム内予測符号化のための予測モード群とを含む複数の予測モードの中から１つの予測モードを選択し、当該選択された予測モードで前記マクロブロックを符号化する動画像符号化方法であって、
符号化対象のマクロブロックに対応する複数の周辺マクロブロックを特定する周辺マクロブロック特定ステップであって、前記複数の周辺マクロブロックは、前記符号化対象のマクロブロックが存在する符号化対象ピクチャ内に存在し且つ前記符号化対象のマクロブロックを取り囲むように前記符号化対象のマクロブロックにそれぞれ隣接する複数のマクロブロックである、周辺マクロブロック特定ステップと、
前記特定された複数の周辺マクロブロック内のマクロブロック毎に当該マクロブロックが符号化済みのマクロブロックであるか否かを判別し、当該マクロブロックが符号化済みのマクロブロックである場合、当該マクロブロックを前記符号化対象のマクロブロックの予測モード候補の決定のために使用すべき参照マクロブロックに決定し、当該マクロブロックが符号化されていないマクロブロックである場合、当該マクロブロックと同じ空間位置にある、前記符号化対象のピクチャの直前の符号化済みピクチャ内の符号化済みマクロブロックを、前記参照マクロブロックに決定することによって、前記複数の周辺マクロブロックそれぞれに対応する複数の参照マクロブロックを決定する参照マクロブロック決定ステップと、
前記決定された複数の参照マクロブロックそれぞれの符号化で発生した符号量を示す、前記複数の参照マクロブロックそれぞれに対応するコストを参照することによって、前記複数の参照マクロブロックの内からコストが最小の参照マクロブロックを選択し、当該選択した参照マクロブロックの符号化で用いられた予測モードを前記符号化対象のマクロブロックに適用すべき予測モード候補に決定する予測モード候補決定ステップと、
前記決定された予測モード候補で前記符号化対象のマクロブロックを符号化した場合に発生する符号量を示すコストを算出するコスト算出ステップと、
前記算出されたコストが前記選択した参照マクロブロックのコスト以下である場合、前記決定された予測モード候補を前記符号化対象のマクロブロックに適用すべき予測モードに決定する第１の予測モード決定ステップと、
前記算出された符号化コストが前記選択したマクロブロックの符号化コストよりも大きい場合、前記符号化対象のマクロブロックを前記予測モード候補以外の予測モードでそれぞれ符号化した場合に発生する符号量を示すコストをそれぞれ算出し、前記複数の予測モードの中でコストが最小となる予測モードを前記符号化対象のマクロブロックに適用すべき予測モードに決定する第２の予測モード決定ステップとを具備することを特徴とする動画像符号化方法。
【請求項７】
前記選択した参照マクロブロックのコストが基準値よりも大きいか否かを判別するステップと、
前記選択した参照マクロブロックのコストが前記基準値よりも大きい場合、前記符号化対象のマクロブロックを前記複数の予測モードでそれぞれ符号化した場合に発生する符号量を示すコストをそれぞれ算出し、前記複数の予測モードの中でコストが最小となる予測モードを前記符号化対象のマクロブロックに適用すべき予測モードに決定する第３の予測モード決定ステップとをさらに具備することを特徴とする請求項６記載の動画像符号化方法。
【請求項８】
前記予測モード候補決定ステップは、前記予測モード候補決定手段は、前記複数の参照マクロブロックが前記符号化対象ピクチャ内に存在する参照マクロブロックと前記直前の符号化済みピクチャ内に存在する参照マクロブロックとを含む場合、前記符号化対象ピクチャ内に存在する参照マクロブロックが前記直前のピクチャ内に属する参照マクロブロックよりも優先的に選択されるように前記複数の参照マクロブロックそれぞれのコストに対して重み付けをし、前記複数の参照マクロブロックの内で、重み付けされたコストが最小の参照マクロブロックを選択することを特徴とする請求項６記載の動画像符号化方法。
【請求項９】
前記特定された複数の周辺マクロブロックに符号化済みのマクロブロックが含まれているか否かを判別するステップと、
前記符号化対象のマクロブロックを前記複数の予測モードでそれぞれ符号化した場合に発生する符号量を示すコストをそれぞれ算出し、前記複数の予測モードの中でコストが最小となる予測モードを前記符号化対象のマクロブロックに適用すべき予測モードに決定するステップとをさらに具備することを特徴とする請求項６記載の動画像符号化方法。
【請求項１０】
符号化対象の動画像信号の各ピクチャを複数のマクロブロックに分割し、マクロブロック毎に、フレーム間予測符号化のための予測モード群とフレーム内予測符号化のための予測モード群とを含む複数の予測モードの中から１つの予測モードを選択し、当該選択された予測モードで前記マクロブロックを符号化する処理を、コンピュータに実行させるプログラムであって、
符号化対象のマクロブロックに対応する複数の周辺マクロブロックを特定する周辺マクロブロック特定手順であって、前記複数の周辺マクロブロックは、前記符号化対象のマクロブロックが存在する符号化対象ピクチャ内に存在し且つ前記符号化対象のマクロブロックを取り囲むように前記符号化対象のマクロブロックにそれぞれ隣接する複数のマクロブロックである、周辺マクロブロック特定手順と、
前記特定された複数の周辺マクロブロック内のマクロブロック毎に当該マクロブロックが符号化済みのマクロブロックであるか否かを判別し、当該マクロブロックが符号化済みのマクロブロックである場合、当該マクロブロックを前記符号化対象のマクロブロックの予測モード候補の決定のために使用すべき参照マクロブロックに決定し、当該マクロブロックが符号化されていないマクロブロックである場合、当該マクロブロックと同じ空間位置にある、前記符号化対象のピクチャの直前の符号化済みピクチャ内の符号化済みマクロブロックを、前記参照マクロブロックに決定することによって、前記複数の周辺マクロブロックそれぞれに対応する複数の参照マクロブロックを決定する参照マクロブロック決定手順と、
前記決定された複数の参照マクロブロックそれぞれの符号化で発生した符号量を示す、前記複数の参照マクロブロックそれぞれに対応するコストを参照することによって、前記複数の参照マクロブロックの内からコストが最小の参照マクロブロックを選択し、当該選択した参照マクロブロックの符号化で用いられた予測モードを前記符号化対象のマクロブロックに適用すべき予測モード候補に決定する予測モード候補決定手順と、
前記決定された予測モード候補で前記符号化対象のマクロブロックを符号化した場合に発生する符号量を示すコストを算出するコスト算出手順と、
前記算出されたコストが前記選択した参照マクロブロックのコスト以下である場合、前記決定された予測モード候補を前記符号化対象のマクロブロックに適用すべき予測モードに決定する第１の予測モード決定手順と、
前記算出された符号化コストが前記選択したマクロブロックの符号化コストよりも大きい場合、前記符号化対象のマクロブロックを前記予測モード候補以外の予測モードでそれぞれ符号化した場合に発生する符号量を示すコストをそれぞれ算出し、前記複数の予測モードの中でコストが最小となる予測モードを前記符号化対象のマクロブロックに適用すべき予測モードに決定する第２の予測モード決定手順とを、前記コンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の予測モードを選択的に使用して動画像信号を符号化する動画像符号化装置および動画像符号化方法に関する。
【背景技術】
【０００２】
近年、動画像をソフトウェアによって符号化するソフトウェアエンコーダを搭載するパーソナルコンピュータが普及し始めている。また、最近では、次世代の動画像圧縮符号化技術として、Ｈ．２６４／ＡＶＣ（Advanced Video Coding）規格が注目されている。このＨ．２６４／ＡＶＣ規格は、ＭＰＥＧ２やＭＰＥＧ４のような従来の圧縮符号化技術よりも高能率の圧縮符号化技術である。
【０００３】
Ｈ．２６４／ＡＶＣ規格のフレーム間予測符号化（インター予測符号化）においては、１６×１６画素、１６×８画素、８×１６画素、８×８画素といった予測ブロック形状の異なる複数の予測モードを利用することができ、また予測ブロック形状が８×８画素以上の場合には、直交変換も４×４画素、８×８画素のブロック形状を選択的に利用することができる。また、Ｈ．２６４／ＡＶＣ規格のフレーム内予測符号化（イントラ予測符号化）においては、４×４画素、８×８画素といった予測ブロック形状に対しては９通りの予測方向を選択することができ、また１６×１６画素の予測ブロック形状に対しても４通りの予測方向を選択することができる。
【０００４】
このように、Ｈ．２６４／ＡＶＣ規格においては、利用可能な予測モードの数を増やすことにより、予測効率の向上を実現している。
【０００５】
しかし、その反面、Ｈ．２６４／ＡＶＣ規格に対応するエンコード処理においては、ＭＰＥＧ２やＭＰＥＧ４のような従来の圧縮符号化技術よりも多くの処理量が必要とされる。特に、マクロブロック毎に複数の予測モードの中から最適な予測モードを決定するための予測モード判定処理には多くの処理量が必要とされる。
【０００６】
このようなことから、これまでも、動画像のエンコードに必要な処理量を低減するための提案がなされている。
【０００７】
例えば、特許文献１には、符号化済みの近傍ブロックのイントラ予測モードに応じて、符号化対象ブロックに適用するイントラ予測モードを決定する技術が開示されている。
【特許文献１】特開２００６−２４６４３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、上述したように、Ｈ．２６４／ＡＶＣ規格においては、フレーム内予測符号化のための予測モードのみならず、フレーム間予測符号化のための予測モードも複数存在している。このため、Ｈ．２６４／ＡＶＣ規格のエンコード処理の処理量を低減するためには、フレーム間予測符号化のための予測モード群とフレーム内予測符号化のための予測モード群とを含む複数の予測モードの中から適用すべき１つの予測モードを効率よく決定できるようにすることが必要である。
【０００９】
また、符号化済みの近傍ブロックのイントラ予測モードから符号化対象ブロックのイントラ予測モードを決定するだけでは、符号化対象ブロックに適したイントラ予測モードを選択できなくなる可能性が高くなり、結果として画質低下を招くことになる。
【００１０】
本発明はこのような事情を考慮してなされたものであり、画質低下を抑えつつ、予測モード判定に要する処理量を低減することが可能な動画像符号化装置および動画像符号化方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述の課題を解決するため、本発明は、符号化対象の動画像信号の各ピクチャを複数のマクロブロックに分割し、マクロブロック毎に、フレーム間予測符号化のための予測モード群とフレーム内予測符号化のための予測モード群とを含む複数の予測モードの中から１つの予測モードを選択し、当該選択された予測モードで前記マクロブロックを符号化する動画像符号化装置であって、符号化対象のマクロブロックに対応する複数の周辺マクロブロックを特定する周辺マクロブロック特定手段であって、前記複数の周辺マクロブロックは、前記符号化対象のマクロブロックが存在する符号化対象ピクチャ内に存在し且つ前記符号化対象のマクロブロックを取り囲むように前記符号化対象のマクロブロックにそれぞれ隣接する複数のマクロブロックである、周辺マクロブロック特定手段と、前記特定された複数の周辺マクロブロック内のマクロブロック毎に当該マクロブロックが符号化済みのマクロブロックであるか否かを判別し、当該マクロブロックが符号化済みのマクロブロックである場合、当該マクロブロックを前記符号化対象のマクロブロックの予測モード候補の決定のために使用すべき参照マクロブロックに決定し、当該マクロブロックが符号化されていないマクロブロックである場合、当該マクロブロックと同じ空間位置にある、前記符号化対象のピクチャの直前の符号化済みピクチャ内の符号化済みマクロブロックを、前記参照マクロブロックに決定することによって、前記複数の周辺マクロブロックそれぞれに対応する複数の参照マクロブロックを決定する参照マクロブロック決定手段と、前記決定された複数の参照マクロブロックそれぞれの符号化で発生した符号量を示す、前記複数の参照マクロブロックそれぞれに対応するコストを参照することによって、前記複数の参照マクロブロックの内からコストが最小の参照マクロブロックを選択し、当該選択した参照マクロブロックの符号化で用いられた予測モードを前記符号化対象のマクロブロックに適用すべき予測モード候補に決定する予測モード候補決定手段と、前記決定された予測モード候補で前記符号化対象のマクロブロックを符号化した場合に発生する符号量を示すコストを算出するコスト算出手段と、前記算出されたコストが前記選択した参照マクロブロックのコスト以下である場合、前記決定された予測モード候補を前記符号化対象のマクロブロックに適用すべき予測モードに決定する第１の予測モード決定手段と、前記算出された符号化コストが前記選択したマクロブロックの符号化コストよりも大きい場合、前記符号化対象のマクロブロックを前記予測モード候補以外の予測モードでそれぞれ符号化した場合に発生する符号量を示すコストをそれぞれ算出し、前記複数の予測モードの中でコストが最小となる予測モードを前記符号化対象のマクロブロックに適用すべき予測モードに決定する第２の予測モード決定手段とを具備することを特徴とする。
【００１２】
また、本発明は、符号化対象の動画像信号の各ピクチャを複数のマクロブロックに分割し、マクロブロック毎に、フレーム間予測符号化のための予測モード群とフレーム内予測符号化のための予測モード群とを含む複数の予測モードの中から１つの予測モードを選択し、当該選択された予測モードで前記マクロブロックを符号化する動画像符号化方法であって、符号化対象のマクロブロックに対応する複数の周辺マクロブロックを特定する周辺マクロブロック特定ステップであって、前記複数の周辺マクロブロックは、前記符号化対象のマクロブロックが存在する符号化対象ピクチャ内に存在し且つ前記符号化対象のマクロブロックを取り囲むように前記符号化対象のマクロブロックにそれぞれ隣接する複数のマクロブロックである、周辺マクロブロック特定ステップと、前記特定された複数の周辺マクロブロック内のマクロブロック毎に当該マクロブロックが符号化済みのマクロブロックであるか否かを判別し、当該マクロブロックが符号化済みのマクロブロックである場合、当該マクロブロックを前記符号化対象のマクロブロックの予測モード候補の決定のために使用すべき参照マクロブロックに決定し、当該マクロブロックが符号化されていないマクロブロックである場合、当該マクロブロックと同じ空間位置にある、前記符号化対象のピクチャの直前の符号化済みピクチャ内の符号化済みマクロブロックを、前記参照マクロブロックに決定することによって、前記複数の周辺マクロブロックそれぞれに対応する複数の参照マクロブロックを決定する参照マクロブロック決定ステップと、前記決定された複数の参照マクロブロックそれぞれの符号化で発生した符号量を示す、前記複数の参照マクロブロックそれぞれに対応するコストを参照することによって、前記複数の参照マクロブロックの内からコストが最小の参照マクロブロックを選択し、当該選択した参照マクロブロックの符号化で用いられた予測モードを前記符号化対象のマクロブロックに適用すべき予測モード候補に決定する予測モード候補決定ステップと、前記決定された予測モード候補で前記符号化対象のマクロブロックを符号化した場合に発生する符号量を示すコストを算出するコスト算出ステップと、前記算出されたコストが前記選択した参照マクロブロックのコスト以下である場合、前記決定された予測モード候補を前記符号化対象のマクロブロックに適用すべき予測モードに決定する第１の予測モード決定ステップと、前記算出された符号化コストが前記選択したマクロブロックの符号化コストよりも大きい場合、前記符号化対象のマクロブロックを前記予測モード候補以外の予測モードでそれぞれ符号化した場合に発生する符号量を示すコストをそれぞれ算出し、前記複数の予測モードの中でコストが最小となる予測モードを前記符号化対象のマクロブロックに適用すべき予測モードに決定する第２の予測モード決定ステップとを具備することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、画質低下を抑えつつ、予測モード判定に要する処理量を低減することが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して、本発明の実施形態を説明する。
【００１５】
図１には、本発明の一実施形態に係る動画像符号化装置の構成例が示されている。この動画像符号化装置は、例えば、パーソナルコンピュータのようなコンピュータによって実現されている。
【００１６】
図１に示すように、このコンピュータは、ＣＰＵ１１、ノースブリッジ１２、主メモリ１３、グラフィックスコントローラ１４、ＶＲＡＭ１４Ａ、ＬＣＤ１５、サウスブリッジ１６、ＢＩＯＳ−ＲＯＭ１７、ハードディスクドライブ（ＨＤＤ）１８、ＨＤ  ＤＶＤドライブ１９、サウンドコントローラ２０、スピーカ２１、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）２２、キーボード２３、タッチパッド２４、電源回路２５、バッテリ２６およびネットワークコントローラ２７等を備えている。
【００１７】
ＣＰＵ１１は、本コンピュータ内の各部の動作を制御するプロセッサである。ＣＰＵ１１は、ＨＤＤ１８から主メモリ１３にロードされるオペレーティングシステム（ＯＳ）１００、およびこのＯＳ１００の制御下で動作する各種アプリケーションプログラムを実行する。この各種アプリケーションプログラムの中には、ビデオエンコーダアプリケーション２００が含まれている。ビデオエンコーダアプリケーション２００は、動画像を符号化するためのソフトウェアであり、Ｈ．２６４／ＡＶＣ規格に対応するソフトウェアエンコーダとして動作する。また、ＣＰＵ１１は、ＢＩＯＳ−ＲＯＭ１７に格納されたＢＩＯＳも実行する。
【００１８】
ノースブリッジ１２は、ＣＰＵ１１のローカルバスとサウスブリッジ１６との間を接続するブリッジデバイスである。ノースブリッジ１２は、バスを介してグラフィックスコントローラ１４との通信を実行する機能を有しており、また、主メモリ１３をアクセス制御するメモリコントローラも内蔵されている。グラフィックスコントローラ１４は、本コンピュータのディスプレイモニタとして使用されるＬＣＤ１５を制御する表示コントローラである。グラフィックスコントローラ１４は、ＶＲＡＭ１４Ａに書き込まれた画像データからＬＣＤ１５に送出すべき表示信号を生成する。
【００１９】
サウスブリッジ１６は、ＰＣＩバスおよびＬＰＣバス上の各種デバイスを制御するコントローラである。また、このサウスブリッジ１６は、ＢＩＯＳ−ＲＯＭ１７、ＨＤＤ１８、ＨＤ  ＤＶＤドライブ１９およびサウンドコントローラ２０を制御する機能も有している。サウンドコントローラ２０は、スピーカ２１にオーディオ信号を出力する音源デバイスである。
【００２０】
ＥＣ／ＫＢＣ２２は、電力管理のためのエンベデッドコントローラと、キーボード２３およびタッチパッド２４を制御するためのキーボードコントローラとが集積された１チップマイクロコンピュータである。ＥＣ／ＫＢＣ２２は、電源回路２５と協働して、バッテリ２６からの電力または外部ＡＣ電源からの電力から各部に供給すべき電力を生成する。ネットワークコントローラ２７は、例えばインターネットなどの外部ネットワークとの通信を実行する通信装置である。
【００２１】
次に、図２を参照して、本コンピュータ上で動作するビデオエンコーダアプリケーション２００によって実現されるソフトウェアエンコーダの機能構成を説明する。
【００２２】
ビデオエンコーダアプリケーション２００によるエンコード処理は、Ｈ．２６４／ＡＶＣ規格に対応している。図示のように、ビデオエンコーダアプリケーション２００は、その機能構成モジュールとして、入力部２０１、ＤＣＴ（Discrete Cosine Transform）・量子化部２０２、エントロピー符号化部２０３、逆量子化・逆ＤＣＴ部２０４部、フレーム内（イントラ）予測部２０５、デブロッキングフィルタ２０６、フレームメモリ２０７、動き検出部２０８、フレーム間（インター）予測部２０９、符号化制御部２１０、スイッチ２１２、減算部２１３、加算部２１４、予測モード判定部３０１、およびレート制御部３０２等を備えている。
【００２３】
ビデオエンコーダアプリケーション２００は、入力部２０１から入力される符号化対象の動画像信号の各ピクチャ（フレームまたはフィールドの画面）を、例えば各々が１６×１６画素の複数のマクロブロックに分割し、マクロブロック単位で予測モードを適応的に選択しながらピクチャを符号化（圧縮符号化）する。
【００２４】
予測モード判定部３０１は、ＤＣＴ・量子化部２０２、逆量子化・逆ＤＣＴ部２０４部、フレーム内（イントラ）予測部２０５、動き検出部２０８、およびフレーム間（インター）予測部２０９等を制御して、符号化対象のマクロブロック毎に、フレーム内予測符号化（イントラ予測符号化）のための予測モード群と動き補償フレーム間予測符号化（インター予測符号化）のための予測モード群とを含む複数の予測モードの中から、当該符号化対象のマクロブロックに適用すべき一つの予測モードを決定する。各マクロブロックは、予測モード判定部３０１によって決定された予測モードで符号化（イントラ予測符号化またはインター予測符号化）される。
【００２５】
図３は、この予測モード判定部３０１の機能ブロックを示している。
【００２６】
図３に示すように、予測モード判定部３０１は、周辺マクロブロック特定部４０１、参照マクロブロック決定部４０２、予測モード候補決定部４０３、コスト算出部４０４、第１の予測モード決定部４０５、第２の予測モード決定部４０６、および第３の予測モード決定部４０７等を備えている。
【００２７】
周辺マクロブロック特定部４０１は、符号化対象のマクロブロックに対応する複数の周辺マクロブロックを特定する。複数の周辺マクロブロックは、当該符号化対象マクロブロックが存在する符号化対象ピクチャ内に存在し且つ当該符号化対象マクロブロックを取り囲むように当該符号化対象マクロブロックにそれぞれ隣接する複数のマクロブロックである。図５に示されているように、ピクチャＰn 内の例えばマクロブロック８に対応する周辺マクロブロック群は、例えば、マクロブロック８の周囲８近傍に存在する８個の隣接マクロブロック、つまり隣接マクロブロック１，２，３，７，９，１３，１４，１５である。また、例えばマクロブロック１に対応する周辺マクロブロック群は、マクロブロック１を取り囲む３つの隣接マクロブロック２，７，８である。また、例えばマクロブロック２に対応する周辺マクロブロック群は、マクロブロック２を取り囲む５つの隣接マクロブロック１，３，７，８，９である。また、例えばマクロブロック３０に対応する周辺マクロブロック群は、マクロブロック３０を取り囲む３つの隣接マクロブロック２３，２４，２９である。
【００２８】
参照マクロブロック決定部４０２は、符号化対象マクロブロックを取り囲む複数の周辺マクロブロックそれぞれに対応する複数の参照マクロブロックを決定する。各参照マクロブロックは、符号化対象マクロブロックに適用すべき予測モード候補を決定するために参照されるべきマクロブロックである。符号化済みのマクロブロック、換言すれば予測モード判定部３０１によってすでに予測モード判定が実行されたマクロブロックが、参照マクロブロックとして利用することが出来る。
【００２９】
参照マクロブロック決定部４０２は、周辺マクロブロック特定部４０１によって特定された複数の周辺マクロブロック内に属するマクロブロック（隣接マクロブロック）毎に、当該隣接マクロブロックが符号化済みのマクロブロックであるか否かを判別し、その判別結果に従って、当該隣接マクロブロックに対応する参照マクロブロックを決定する。
【００３０】
具体的には、当該隣接マクロブロックが符号化済みのマクロブロックであるならば、参照マクロブロック決定部４０２は、当該隣接マクロブロック自体を、当該隣接マクロブロックに対応する参照マクロブロックに決定する。
【００３１】
一方、もし当該隣接マクロブロックが符号化されていないマクロブロックであるならば、参照マクロブロック決定部４０２は、当該隣接マクロブロックと同じ空間位置にある、符号化対象ピクチャの直前の符号化済みピクチャ内の符号化済みマクロブロックを、当該隣接マクロブロックに対応する参照マクロブロックに決定する。つまり、直前の符号化済みピクチャ内に含まれる複数の符号化済みマクロブロックの内で、符号化対象ピクチャ内の当該隣接マクロブロックの空間位置と同一の空間位置に存在する符号化済みマクロブロックが、当該隣接マクロブロックに対応する参照マクロブロックとして使用される。
【００３２】
例えば、図５において、ピクチャＰn 内のマクロブロック８が符号化対象のマクロブロックであるならば、隣接マクロブロック１，２，３，７はそれぞれ符号化済みであるので、これら隣接マクロブロック１，２，３，７自体が、隣接マクロブロック１，２，３，７に対応する参照マクロブロックとしてそれぞれ使用される。一方、隣接マクロブロック９，１３，１４，１５は符号化されていないので、隣接マクロブロック９，１３，１４，１５の各々と同じ空間位置にある、符号化済みの直前のピクチャＰn-1内のマクロブロック９，１３，１４，１５が、隣接マクロブロック９，１３，１４，１５それぞれに対応する参照マクロブロックとして使用される。ピクチャＰn-1は、符号化対象ピクチャＰnの直前に符号化されたピクチャである。つまり、ピクチャＰn-1は、符号化順で、現在の符号化対象ピクチャＰnの直前のピクチャである。
【００３３】
このように、周辺マクロブロック群に含まれるあるマクロブロックが符号化されていないマクロブロックである場合には、当該マクロブロックと同じ空間位置にある直前のピクチャ内のマクロブロックが、当該マクロブロックに対応する参照マクロブロックとして使用される。これにより、より多くの数の符号化済みマクロブロックそれぞれの予測モード判定結果を参照することが可能となる。
【００３４】
予測モード候補決定部４０３は、参照マクロブロック決定部４０２によって決定された複数の参照マクロブロックそれぞれの予測モード判定結果を参照して、符号化対象のマクロブロックに適用すべき予測モード候補を決定する。
【００３５】
具体的には、予測モード候補決定部４０３は、決定された複数の参照マクロブロックそれぞれの符号化で発生した符号量を示す、これら複数の参照マクロブロックそれぞれに対応するコストを参照することによって、これら複数の参照マクロブロックの内からコストが最小の参照マクロブロックを選択する。そして、予測モード候補決定部４０３は、選択した参照マクロブロックの符号化で用いられた予測モードを、符号化対象マクロブロックに適用すべき予測モード候補に決定する。符号化済みの各マクロブロックの予測モード判定結果（予測モード、コスト）を示すモード判定結果情報（予測モード、コスト）はメモリ５０１に格納されているので、予測モード候補決定部４０３は、各参照マクロブロックに対応するモード判定結果情報をメモリ５０１から読み出すことによって、各参照マクロブロックに対応する、予測モードおよびコストを参照することができる。
【００３６】
コスト算出部４０４は、予測モード候補決定部４０３によって決定された予測モード候補で符号化対象マクロブロックを符号化した場合に発生する符号量を示すコストを算出する。あるマクロブロックに対応するコストは、当該マクロブロックをある予測モードで符号化した場合に発生する符号量を示す。符号化対象マクロブロックのコストは、例えば、予め決められたコスト関数を用いて求めることが出来る。このコスト関数は、例えば、予測画像と原画像との間の予測誤差の絶対値誤差和（ＳＡＤ：Sum of Absolute Difference）と、動きベクトル量を含む符号化係数データ量（ヘッダデータ量）との合計値によって表すことができる。また、絶対値誤差和のみによって、発生する符号量を示すコストを表してもよい。また、他の様々なコスト関数によって、ある予測モードで符号化対象マクロブロックを符号化した場合に発生する符号量を、当該符号化対象マクロブロックの符号化のためのコストとして算出することができる。もちろん、符号化対象マクロブロックを予測モード候補で実際に符号化する処理を試行し、その符号化の試行結果に基づいて、符号化対象マクロブロックを予測モード候補で符号化した場合のコストを算出するようにしてもよい。
【００３７】
第１の予測モード決定部４０５は、コスト算出部４０４によって算出されたコストが所定の評価コスト閾値以下であるか否かを判別する。コスト算出部４０４によって算出されたコストが評価コスト閾値以下であるという予測モード候補評価条件が満たされたならば、第１の予測モード決定部４０５は、予測モード候補を、符号化対象マクロブロックに適用すべき予測モードに決定する。この場合、予測モード候補以外の他の残りの予測モードそれぞれに対するコストの算出処理は省略される。評価コスト閾値としては、予測モード候補決定部４０３によって選択された参照マクロブロックのコストが用いられる。
【００３８】
コスト算出部４０４によって算出されたコストが評価コスト閾値よりも大きい場合には、第２の予測モード決定部４０６によって、符号化対象マクロブロックに適用すべき予測モードが決定される。この場合、第２の予測モード決定部４０６は、符号化対象マクロブロックを予測モード候補以外の他の全ての予測モードでそれぞれ符号化した場合に発生する符号量を示すコストをそれぞれ算出する。そして、第２の予測モード決定部４０６は、利用可能な全ての予測モードの中で、算出されたコストが最小となる予測モードを、符号化対象マクロブロックに適用すべき予測モードに決定する。
【００３９】
このように、本実施形態においては、まず、符号化対象マクロブロックに適用すべき予測モード候補が、符号化対象マクロブロックに対応する参照マクロブロックそれぞれの予測モード判定結果（または符号化結果）を用いて決定される。この場合、複数の参照マクロブロックの中でコストが最小の参照マクロブロックが選択され、この選択された参照マクロブロックに適用された予測モードが符号化対象マクロブロックの予測モード候補（初期予測モード）として決定される。各参照マクロブロックと符号化対象マクロブロックとの間の空間的相関は比較的強い。したがって、複数の参照マクロブロックそれぞれに対応する予測モード判定結果を参照することにより、イントラ予測符号化のための予測モード群とインター予測符号化のための予測モード群とを含む利用可能な複数の予測モードの中から、より適切な予測モードを、符号化対象マクロブロックに適用すべき予測モード候補として選択することが可能となる。
【００４０】
予測モード候補で符号化対象マクロブロックを符号化した場合のコストが評価コスト閾値以下である場合、その時点で、符号化対象マクロブロックに対する予測モード判定処理は終了され、予測モード候補以外の他の予測モードそれぞれを評価する処理の実行は省略される。したがって、本実施形態では、最小で１回のコスト計算のみで予測モードを決定することができるので、予測モード判定処理に要する処理量を低減することができる。
【００４１】
さらに、本実施形態では、予測モード候補で符号化対象マクロブロックを符号化した場合のコストが、選択された参照マクロブロックのコストよりも大きい場合には、予測モード候補以外の他の予測モードそれぞれに対応するコストが評価され、その評価結果に基づいて、符号化対象マクロブロックに適用すべき予測モードが決定される。したがって、予測モード判定処理の処理量を低減するために、利用可能な予測モードの種類を特定の何種類かの予測モードのみに限定するという方法を使用する場合に比し、画質低下を防止することができる。
【００４２】
またさらに、本実施形態では、符号化対象ピクチャ内に存在する符号化済みのマクロブロックのみならず、直前のピクチャ内に存在するマクロブロックも参照マクロブロックとして使用される。これにより、符号化対象マクロブロックと同じピクチャ内に存在する符号化済みのマクロブロックのみの予測モード判定結果から符号化対象マクロブロックの予測モードを決定する構成に比し、より多くの符号化済みのマクロブロックの予測モード判定結果を参照することが可能となる。よって、符号化対象マクロブロックにより適した予測モードを、符号化対象マクロブロックの予測モード候補として決定することができる。
【００４３】
なお、参照マクロブロックそれぞれの予測モード判定結果を利用して符号化対象マクロブロックの予測モードを決定する予測モード判定処理は、予測モード決定部４０３によって選択された参照マクロブロックのコスト、つまり参照マクロブロックそれぞれのコストの中で最小のコスト、が基準値以下であることを条件に実行するようにしてもよい。この場合、予測モード決定部４０３によって選択された参照マクロブロックのコストが基準値よりも大きい場合には、第３の予測モード決定部４０７によって、利用可能な全ての予測モードそれぞれのコストを評価するという通常の予測モード判定処理が実行される。
【００４４】
すなわち、第３の予測モード決定部４０７は、予測モード決定部４０３によって選択された参照マクロブロックのコスト、つまり参照マクロブロックそれぞれのコストの中で最小のコスト、が基準値よりも大きいか否かを判別する。選択された参照マクロブロックのコストが基準値よりも大きい場合、第３の予測モード決定部４０７は、符号化対象マクロブロックを上述の全ての予測モードでそれぞれ符号化した場合の符号化コストをそれぞれ算出し、全ての複数の予測モードの中でコストが最小となる予測モードを符号化対象マクロブロックに適用すべき予測モードに決定する。
【００４５】
なお、選択された参照マクロブロックのコストが基準値よりも大きいという条件が満たされた場合のみならず、周辺ブロック特定部４０１によって特定された複数の周辺マクロブロック内に符号化済みのマクロブロックが含まれていないという条件が満たされた場合にも、上述の通常の予測モード判定処理を実行するようにしてもよい。この場合、例えば、図５のピクチャＰn内のマクロブロック１が符号化対象マクロブロックであるならば、符号化対象マクロブロック１に対応する周辺マクロブロック２，７，８はいずれも符号化されていないので、符号化対象マクロブロック１の予測モード判定には、第３の予測モード決定部４０７によって実行される上述の通常の予測モード判定処理が適用される。
【００４６】
ところで、Ｈ．２６４／ＡＶＣ規格のハイプロファイルでは、インター予測符号化において、予測モードのブロックサイズ（動き補償ブロックのサイズ）が８×８画素以上の場合、４×４画素のブロックサイズのＤＣＴ、８×８画素のブロックサイズのＤＣＴのいずれかから最適な方を選択可能となっている。インター予測符号化においては、７種類の動き補償ブロックサイズ（１６×１６画素、１６×８画素、８×１６画素、８×８画素、８×４画素、４×８画素、４×４画素）それぞれに対応する７種類の予測モードを選択的に利用することが出来る。したがって、もし、インター予測符号化で利用可能なＭ種類の予測モード（動き補償ブロックサイズ）が存在し、かつ、Ｎ種類のブロックサイズそれぞれに対応するＤＣＴが利用可能である場合には、インター予測符号化だけで、Ｍ×Ｎ種類の予測モードが実質的に存在することとなる。このような状況において、何らの工夫も凝らさずに、すべての予測モード（動き補償ブロックサイズとＤＣＴブロックサイズとの組み合わせ）について評価を行い最適な予測モードを選択するという構成を採用したならば、当該インター予測の予測モード判定処理に要する処理量が膨大となってしまう。したがって、本実施形態の予測モード判定処理は極めて有効である。
【００４７】
また、イントラ予測符号化においては、４×４画素の予測ブロック形状、および８×８画素の予測ブロック形状の各々のブロック形状に対して、９通りの予測モード（予測方向）があり、１６×１６画素の予測ブロック形状に対しても、４通りの予測モード（予測方向）がある。
【００４８】
符号化対象ピクチャに適用される符号化モードがＰピクチャ（Predictive-picture）またはＢピクチャ（Bi- Predictive Prediction-picture）の場合には、インター予測符号化されたマクロブロックのみならず、イントラ予測符号化されたマクロブロックを含むことも出来る。このため、利用可能な予測モードの種類は非常に多くなる。
【００４９】
本実施形態では、最小一回の予測判定処理で予測モードを決定できるので、符号化対象ピクチャがＰピクチャまたはＢピクチャであっても、予測モード判定に必要な処理量を大幅に低減することができる。
【００５０】
なお、図２に機能構成が示されるソフトウェアエンコーダにおいては、イントラ予測部２０５は、予測モード判定処理部３０１の制御の下に、イントラ予測符号化のための複数の予測モードそれぞれに対応する予測処理を選択的に実行する。イントラ予測符号化モード時においては、予測モード判定処理部３０１はスイッチ２１２によってイントラ予測部２０５を選択する。イントラ予測部２０５は、予測モード判定処理部３０１によって決定されたイントラ予測のための予測モードに従って、符号化対象マクロブロック内の各ブロックに対応する予測信号を、符号化対象ピクチャ内の幾つかの符号化済みブロックから生成する。減算部２１３では、符号化対象ピクチャからこの予測信号を引いた予測誤差信号が得られる。この予測誤差信号は、ＤＣＴ・量子化部２０２によって直交変換および量子化される。量子化された直交変換係数は、イントラ予測モードを示すイントラ予測モード情報などと共に、エントロピー符号化部２０３によってエントロピー符号化される。
【００５１】
一方、インター予測符号化モード時においては、まず、動き検出部２０８が、フレームメモリ２０７に格納された既に符号化されたピクチャからの動きを推定し、続いて、インター予測部２０９が、予測モード判定処理部３０１によって決定された予測モードに従って、符号化対象マクロブロックに対応する動き補償フレーム間予測信号を、定められたブロック形状単位で生成する。つまり、動き補償フレーム間予測信号は、予測モード判定処理部３０１によって決定された予測モードに対応する動き補償ブロックサイズ単位で生成される。そして、符号化対象ピクチャから動き補償フレーム間予測信号を引いた予測誤差信号は、ＤＣＴ・量子化部２０２によって、直交変換（ＤＣＴ）および量子化される。ＤＣＴ・量子化部２０２によって得られる、量子化された直交変換係数群は、エントロピー符号化部２０３に送られる。エントロピー符号化部２０３は、量子化された直交変換係数群およびインター予測モード情報（予測モード、動きベクトル情報、等）をエントロピー符号化する。
【００５２】
また、逆量子化・逆ＤＣＴ部２０４は、直交変換および量子化されたピクチャの量子化係数を逆量子化および逆直交変換するものであり、デブロッキングフィルタ２０６は、ブロックノイズを低減するためのデブロッキングフィルタ処理を行うものである。
【００５３】
レート制御部３０２は、エントロピー符号化部２０３から出力される符号化ストリームのレート（発生符号量）を調整するために、量子化パラメータの設定等を行う。
【００５４】
図４は、ピクチャ内のマクロブロックの符号化順序を示している。
【００５５】
ピクチャは複数のマクロブロックに分割され、図４の（Ａ）に示す順序または図４の（Ｂ）に示す順序（ラスタスキャン）で符号化される。各マクロブロックの符号化に際しては、最初に予測モード判定処理が実行される。
【００５６】
図５は、図４の（Ｂ）に示す順序（ラスタスキャン）で符号化が行われる場合の予測モード判定処理における、符号化対象マクロブロックと参照マクロブロック群との関係を示している。
【００５７】
ピクチャＰnは、現在の符号化対象ピクチャである。例えば、ピクチャＰn内のマクロブロック８が符号化対象マクロブロックである場合、マクロブロック８を取り囲み且つマクロブロック８にそれぞれ隣接する、ピクチャＰn内のマクロブロック１，２，３，７，９，１３，１４，１５が、符号化対象マクロブロック８に対応する周辺マクロブロック群として特定される。ピクチャＰn内のマクロブロック１，２，３，７はそれぞれ符号化済みであるので、これら符号化済みのマクロブロック１，２，３，７は、それぞれ符号化対象マクロブロック８の予測モード候補の決定のために使用すべき参照マクロブロックとして決定される。ピクチャＰn内のマクロブロック９，１３，１４，１５は符号化されていないので、ピクチャＰn内のマクロブロック９，１３，１４，１５それぞれと同じ空間位置に存在する、直前のピクチャＰn-1内のマクロブロック９，１３，１４，１５が参照マクロブロックとして決定される。
【００５８】
ピクチャＰn内の参照マクロブロック９，１３，１４，１５と、ピクチャＰn-1内の参照マクロブロック９，１３，１４，１５との内から、コストが最小の参照マクロブロックが選択され、この選択された参照マクロブロックの符号化で使用された予測モードと同一の予測モードが、符号化対象マクロブロック８に適用すべき予測モード候補（符号化対象マクロブロック８の初期予測モード）に決定される。そして、予測モード候補で符号化対象マクロブロック８を符号化した場合のコストが算出される。算出されたコストが、選択された参照マクロブロックのコスト以下である場合、予測モード候補が符号化対象マクロブロック８の予測モードとなり、他の予測モードに対する評価は省略される。
【００５９】
また、もしピクチャＰn内のマクロブロック３０が符号化対象マクロブロックであるならば、マクロブロック３０を取り囲み且つマクロブロック３０にそれぞれ隣接する、ピクチャＰn内のマクロブロック２３，２４，２９が、符号化対象マクロブロック３０に対応する周辺マクロブロック群として特定される。ピクチャＰn内のマクロブロック２３，２４，２９の全てが符号化済みであるので、ピクチャＰn内のマクロブロック２３，２４，２９は、それぞれ符号化対象マクロブロック３０の予測モード候補の決定のために使用すべき参照マクロブロックとして決定される。
【００６０】
そして、ピクチャＰn内のマクロブロック２３，２４，２９内からコストが最小のマクロブロックが選択され、この選択されたマクロブロックの符号化で使用された予測モードと同一の予測モードが、符号化対象マクロブロック８に適用すべき予測モード候補に決定される。
【００６１】
また、もしピクチャＰn内のマクロブロック１が符号化対象マクロブロックであるならば、マクロブロック１を取り囲み且つマクロブロック１にそれぞれ隣接する、ピクチャＰn内のマクロブロック２，７，８が、符号化対象マクロブロック１に対応する周辺マクロブロック群として特定される。ピクチャＰn内のマクロブロック２，７，８の全てが符号化されていないので、ピクチャＰn内のマクロブロック２，７，８それぞれと同じ空間位置に存在する、直前のピクチャＰn-1内のマクロブロック２，７，８が参照マクロブロックとして決定される。
【００６２】
そして、ピクチャＰn-1内のマクロブロック２，７，８の内からコストが最小のマクロブロックが選択され、この選択されたマクロブロックの符号化で使用された予測モードと同一の予測モードが、符号化対象マクロブロック１に適用すべき予測モード候補に決定される。
【００６３】
なお、符号化対象マクロブロック１の周辺マクロブロック群には、上述したように符号化済みのマクロブロックが含まれていないので、符号化対象マクロブロック１に適用すべき予測モードは、通常の予測モード判定処理によって決定するようにしてもよい。
【００６４】
次に、図６を参照して、符号化対象マクロブロックに対して実行される本実施形態の予測モード判定処理の具体的な手順の例について説明する。ここでは、符号化対象マクロブロックに対応する周辺マクロブロック群に符号化済みマクロブロックが存在しない場合には、符号化対象マクロブロックに適用すべき予測モードを、通常の予測モード判定処理を使用して決定する場合を想定する。
【００６５】
まず、予測モード判定部３０１は、符号化対象マクロブロックに対応する周辺マクロブロック群を特定する（ステップＳ１１）。ここで、周辺マクロブロック群は、上述したように、符号化対象マクロブロックが存在する符号化対象ピクチャ内に存在し且つ符号化対象マクロブロックを取り囲むように当該符号化対象マクロブロックにそれぞれ隣接する複数のマクロブロックである。
【００６６】
次いで、予測モード判定部３０１は、特定された周辺マクロブロック群内に符号化対象マクロブロックの予測モード候補の決定に利用可能なマクロブロック、つまり符号化済みのマクロブロックが含まれているか否かを判別する（ステップＳ１２）。
【００６７】
周辺マクロブロック群内に利用可能なマクロブロックが含まれていないならば（ステップＳ１２のＮＯ）、予測モード判定部３０１は、利用可能な全ての予測モードを評価するために、利用可能な全ての予測モードそれぞれで符号化対象マクロブロックを符号化した場合のコストそれぞれを算出する（ステップＳ２１）。そして、予測モード判定部３０１は、利用可能な全ての予測モードの内で、算出されたコストが最小の予測モードを符号化対象マクロブロックに適用すべき予測モードに決定する（ステップＳ２２）。
【００６８】
一方、周辺マクロブロック群内に利用可能なマクロブロックが含まれているならば（ステップＳ１２のＹＥＳ）、予測モード判定部３０１は、周辺マクロブロックそれぞれに対応する参照マクロブロックを決定する（ステップＳ１３）。ステップＳ１３では、予測モード判定部３０１は、各周辺マクロブロック毎に、当該周辺マクロブロックが符号化済みであるか否かを判別し、その判別結果に否かに応じて、各周辺マクロブロックに対応する参照マクロブロックを決定する。
【００６９】
次いで、予測モード判定部３０１は、参照マクロブロックそれぞれの予測モード判定結果に基づいて（または参照マクロブロックそれぞれを実際に符号化した結果に基づいて）、符号化対象マクロブロックに適用すべき予測モード候補ＭＯＤＥ＿ｉｎｉｔと、上述の評価コスト閾値ＣＯＳＴ＿ｔｈｒとを決定する（ステップＳ１４）。ステップＳ１４では、参照マクロブロックそれぞれの中からコストが最小の参照マクロブロックが選択され、選択された参照マクロブロックの符号化で使用された予測モードが予測モード候補ＭＯＤＥ＿ｉｎｉｔに決定される。また、選択された参照マクロブロックに対応するコストが、評価コスト閾値ＣＯＳＴ＿ｔｈｒに決定される。
【００７０】
次に、予測モード判定部３０１は、評価コスト閾値ＣＯＳＴ＿ｔｈｒが所定の基準値（＝モード判定閾値ＥＸＥ＿ｔｈｒ）以下であるか否かを判別する（ステップＳ１５）。モード判定閾値ＥＸＥ＿ｔｈｒの値は、例えば、符号化ビットレートを調整するための量子化パラメータQPに応じて予め決定されている。
【００７１】
選択された参照マクロブロックのコストである評価コスト閾値ＣＯＳＴ＿ｔｈｒがモード判定閾値ＥＸＥ＿ｔｈｒよりも大きいならば（ステップＳ１５のＮＯ）、予測モード判定部３０１は、利用可能な全ての予測モードを評価するために、利用可能な全ての予測モードそれぞれで符号化対象マクロブロックを符号化した場合のコストそれぞれを算出する（ステップＳ２１）。そして、予測モード判定部３０１は、利用可能な全ての予測モードの内で、算出されたコストが最小の予測モードを符号化対象マクロブロックに適用すべき予測モードに決定する（ステップＳ２２）。
【００７２】
一方、評価コスト閾値ＣＯＳＴ＿ｔｈｒがモード判定閾値ＥＸＥ＿ｔｈｒ以下であるならば（ステップＳ１５のＹＥＳ）、予測モード判定部３０１は、符号化対象マクロブロックを予測モード候補ＭＯＤＥ＿ｉｎｉｔで符号化した場合に発生する符号量を示すコストＣＯＳＴ＿ｉｎｉｔを算出する（ステップＳ１６）。ステップＳ１６では、例えば、予測モード候補ＭＯＤＥ＿ｉｎｉｔで符号化対象マクロブロックを実際に符号化し、その符号化結果に基づいて、コストＣＯＳＴ＿ｉｎｉｔを得るようにしてもよい。この場合、例えば、予測モード候補ＭＯＤＥ＿ｉｎｉｔで符号化対象マクロブロックを符号化する処理の内で、エントロピー符号化を除く他のほとんど全ての処理が実行され、その処理結果に基づいて、コストＣＯＳＴ＿ｉｎｉｔが求められる。
【００７３】
次いで、予測モード判定部３０１は、コストＣＯＳＴ＿ｉｎｉｔと評価コスト閾値ＣＯＳＴ＿ｔｈｒとを比較して、コストＣＯＳＴ＿ｉｎｉｔが評価コスト閾値ＣＯＳＴ＿ｔｈｒ以下であるか否かを判別する（ステップＳ１７）。
【００７４】
コストＣＯＳＴ＿ｉｎｉｔが評価コスト閾値ＣＯＳＴ＿ｔｈｒ以下であるならば（ステップＳ１７のＹＥＳ）、予測モード判定部３０１は、予測モード候補ＭＯＤＥ＿ｉｎｉｔを符号化対象マクロブロックに適用すべき予測モードに決定する（ステップＳ１８）。
【００７５】
一方、コストＣＯＳＴ＿ｉｎｉｔが評価コスト閾値ＣＯＳＴ＿ｔｈｒよりも大きいならば（ステップＳ１７のＮＯ）、予測モード判定部３０１は、利用可能な全ての予測モードの中で、予測モード候補ＭＯＤＥ＿ｉｎｉｔ以外の他の予測モードそれぞれで符号化対象マクロブロックを符号化した場合のコストそれぞれを算出する（ステップＳ１９）。そして、予測モード判定部３０１は、利用可能な全ての予測モードの中で、コストが最小の予測モードを符号化対象マクロブロックに適用すべき予測モードに決定する（ステップＳ２０）。
【００７６】
上述のステップＳ１１〜Ｓ２２の処理は、全てのマクロブロックに対する予測モード判定処理が終了するまで、符号化対象マクロブロックを変更しながら繰り返し実行される（ステップＳ２３）。
【００７７】
なお、上述したように、予測モード判定処理では、コスト算出のために、例えば、エントロピー符号化を除く他の符号化処理のほとんどを実行してもよい。この場合、適用すべき予測モードが決定された時点でエントロピー符号化等の残りの処理を行うことが出来るので、効率よく符号化を行うことができる。もちろん、予測モード判定処理で、エントロピー符号化も実行してもよく、この方が、エントロピー符号化を省略するよりも予測精度が上りより正確にコストの算出および評価が可能となる。しかし、エントロピー符号化も実行すると、その分、コストの算出のための計算量が増大することになる。
【００７８】
次に、図７のフローチャートを参照して、図６のステップＳ１３，Ｓ１４で実行される処理手順の例を説明する。
【００７９】
符号化対象ピクチャ内の符号化対象マクロブロックに対応する周辺マクロブロック群が特定された後、予測モード判定部３０１は、周辺マクロブロック群内の各マクロブロック毎に、以下の処理を実行する。
【００８０】
すなわち、予測モード判定部３０１は、周辺マクロブロック群から一つの処理対象の周辺マクロブロックを選択し（ステップＳ３１）、選択した周辺マクロブロックが符号化済みのマクロブロック、つまり予測モード判定済みのマクロブロックであるか否かを判別する（ステップＳ３２）。
【００８１】
選択した周辺マクロブロックが符号化済みのマクロブロックであれば（ステップＳ３２のＹＥＳ）、予測モード判定部３０１は、当該選択した周辺マクロブロック自体を、当該選択した周辺マクロブロックに対応する参照マクロブロックに決定する（ステップＳ３３）。
【００８２】
一方、選択した周辺マクロブロックが符号化済みのマクロブロックではないならば（ステップＳ３２のＮＯ）、予測モード判定部３０１は、選択した周辺マクロブロックと同じ空間位置に存在する、符号化対象ピクチャの直前のピクチャ内のマクロブロックを、選択した周辺マクロブロックに対応する参照マクロブロックに決定する（ステップＳ３４）。
【００８３】
ステップＳ３１〜Ｓ３４の処理は、符号化対象ピクチャの全ての周辺マクロブロックに対する処理が完了するまで繰り返し実行される（ステップＳ３５）。
【００８４】
符号化対象ピクチャの全ての周辺マクロブロックそれぞれに対応する参照マクロブロックが決定された後（ステップＳ３５のＹＥＳ）、予測モード判定部３０１は、各参照マクロブロックの予測モード判定結果（予測モード、コスト）をメモリ５０１等から取得する（ステップＳ３６）。次いで、予測モード判定部３０１は、全ての周辺マクロブロックそれぞれに対応する参照マクロブロックの内で、コストが最小の参照マクロブロックを選択する（ステップＳ３８）。そして、予測モード判定部３０１は、選択した参照マクロブロックの符号化で使用された予測モードを、符号化対象マクロブロックの予測モード候補ＭＯＤＥ＿ｉｎｉｔに決定し（ステップＳ３８）、また選択した参照マクロブロックの符号化で発生した符号量を示すコストを評価コスト閾値ＣＯＳＴ＿ｔｈｒに決定する（ステップＳ３９）。
【００８５】
次に、図８のフローチャートを参照して、図７のステップＳ３７で実行される、コストが最小の参照マクロブロックを選択する処理手順の例について説明する。
【００８６】
上述したように、幾つかの参照マクロブロック群は、符号化対象マクロブロックと同じ符号化対象ピクチャ内に存在する参照マクロブロックと、符号化対象ピクチャの直前のピクチャ内に存在する参照マクロブロックとの双方を含む。参照マクロブロック群の内からコストが最小の参照マクロブロックを選択する処理においては、予測モード判定部３０１は、直前のピクチャ内に存在する参照マクロブロックよりも、符号化対象ピクチャ内に存在する参照マクロブロックを優先的に選択してもよい。一般には、直前のピクチャ内に存在する参照マクロブロックよりも、符号化対象ピクチャ内に存在する参照マクロブロックの方が、符号化対象ピクチャとの相関が強いことが多いからである。
【００８７】
予測モード判定部３０１は、参照マクロブロックそれぞれが符号化対象ピクチャまたは直前のピクチャのどちらのピクチャに属しているかに応じて、符号化対象ピクチャ内に存在する参照マクロブロックが直前のピクチャに属する参照マクロブロックよりも優先的に選択されるように参照マクロブロックそれぞれのコストに対して重み付けをし、複数の参照マクロブロックの内で、重み付けされたコストが最小の参照マクロブロックを選択する。
【００８８】
参照マクロブロックそれぞれのコストに対して重み付けを行う処理においては、必ずしも、符号化対象ピクチャ内に存在する各参照マクロブロックと直前のピクチャに属する各参照マクロブロックの双方に対して重み係数を乗じる必要はなく、例えば、直前のピクチャに属する各参照ピクチャのコストに対してのみ１よりも大きい重み係数を乗じるようにしてもよい。
【００８９】
以下、直前のピクチャに属する各参照ピクチャのコストに対してのみ１よりも大きい重み係数を乗じる場合を例示して、重み付けされたコストそれぞれを使用することによって最小コストの参照マクロブロックを選択する処理の手順を説明する。
【００９０】
符号化対象ピクチャを取り囲む複数の周辺マクロブロックそれぞれに対応する複数の参照マクロブロックが決定された後、予測モード判定部３０１は、以下の処理を実行する。
【００９１】
すなわち、予測モード判定部３０１は、まず、複数の参照マクロブロックの内から処理対象の参照マクロブロックを選択し（ステップＳ４１）、当該選択された処理対象の参照マクロブロックが直前のピクチャ内に属するマクロブロックであるか否かを判別する（ステップＳ４２）。
【００９２】
処理対象の参照マクロブロックが直前のピクチャ内に属するマクロブロックであるならば（ステップＳ４２のＹＥＳ）、予測モード判定部３０１は、処理対象の参照マクロブロックのコストに１よりも大きい重み係数を乗じることによって、処理対象の参照マクロブロックの重み付けコストを算出する（ステップＳ４３）。
【００９３】
ステップＳ４１〜Ｓ４３の処理は、符号化対象ピクチャに対応する全ての参照マクロブロックに対する処理が完了するまで処理対象の参照マクロブロックを変更しながら繰り返し実行される。
【００９４】
全ての参照マクロブロックに対する処理が完了すると（ステップＳ４４のＹＥＳ）、予測モード判定部３０１は、全ての参照マクロブロックそれぞれのコスト（重み付けコストを含む）を比較して、全ての参照マクロブロックの内からコストが最小の参照マクロブロックを選択する（ステップＳ４５）。
【００９５】
以上のように、本実施形態によれば、画質低下を抑えつつ、少ない処理量で予測モードを効率よく決定することができるので、動画像信号を符号化する処理を高速に実行することが可能となる。
【００９６】
なお、予測モード判定処理を含む符号化の処理は全てビデオエンコーダアプリケーション２００によって実行することができるので、このプログラムをコンピュータ読み取り可能な記憶媒体を通じて通常のコンピュータにインストールするだけで、本実施形態と同様の効果を容易に実現することができる。
【００９７】
また、図２で説明したビデオエンコーダアプリケーション２００の各機能モジュールは、専用のハードウェア回路によって実現することもできる。また、ビデオエンコーダアプリケーション２００を、マイクロコンピュータ、ＤＳＰのような、ＣＰＵ１１以外の他のプロセッサ上で動作するファームウェアとして実現してもよい。
【００９８】
また、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００９９】
【図１】本発明の一実施形態に係る動画像符号化装置の構成例を示すブロック図。
【図２】同実施形態の動画像符号化装置で用いられるビデオエンコーダアプリケーションによって実現されるエンコーダの機能構成を示すブロック図。
【図３】同実施形態の動画像符号化装置に設けられた予測モード判定部の機能を説明するためのブロック図。
【図４】同実施形態の動画像符号化装置におけるマクロブロックの符号化順序の例を示す図。
【図５】同実施形態の動画像符号化装置によって実行される予測モード判定処理における、符号化対象マクロブロックと参照マクロブロック群との関係を示す図。
【図６】同実施形態の動画像符号化装置によって実行される予測モード判定処理の手順を示すフローチャート。
【図７】同実施形態の動画像符号化装置によって実行される、参照マクロブロック決定処理および予測モード候補決定処理の手順を示すフローチャート。
【図８】同実施形態の動画像符号化装置によって実行される、重み付けコストを利用して参照マクロブロックを選択する処理の手順を示すフローチャート。
【符号の説明】
【０１００】
１１…ＣＰＵ、２００…ビデオエンコーダアプリケーション、２０１…入力部、２０２…ＤＣＴ・量子化部、２０３…エントロピー符号化部、２０４…逆量子化・逆ＤＣＴ部、２０５…イントラ予測部、２０８…動き検出部、２０９…インター予測部、３０１…予測モード判定部、４０１…周辺マクロブロック特定部、４０２…参照マクロブロック決定部、４０３…予測モード候補決定部、４０４…コスト算出部、４０５…第１の予測モード決定部、４０６…第２の予測モード決定部、４０７…第３の予測モード決定部。
【図１】
2009055542.tif 000003
【図２】
2009055542.tif 000004
【図３】
2009055542.tif 000005
【図４】
2009055542.tif 000006
【図５】
2009055542.tif 000007
【図６】
2009055542.tif 000008
【図７】
2009055542.tif 000009
【図８】
2009055542.tif 000010