【課題】表示サイズとマクロブロック単位との関係から、所定のマクロブロックの一部または全部に、本来の映像を構成する映像有効領域ではない余分な無効領域が含まれる場合であっても、余分な符号量が発生することを抑制するとともに、画質劣化を適切に防止することができる動画像符号化装置を実現する。
【解決手段】動画像符号化装置1000において、第1ゼロ設定部2は、無効領域に相当する信号の場合、予測誤差信号の信号値を「0」にする。また、第2ゼロ設定部17は、無効領域に相当する信号の場合、差分ベクトル信号の信号値を「0」にする。これにより、無効領域に対して、不適切な動画像符号化処理が実行されることを防止し、無駄な符号量の発生を適切に抑制する。
処理対象のマクロブロックを所定の分割方法により分割して取得した分割ブロックについて取得された前記第1予測誤差信号に基づいて、前記分割ブロックについての符号化コストを算出する符号化コスト算出部をさらに備え、
前記符号化モード判定部は、
前記符号化モード判定部により算出された前記符号化コストに基づいて、処理対象のマクロブロックの分割方法を決定し、決定された分割方法により取得された分割ブロックに前記映像無効領域を含む場合、当該無効領域に対応する前記予測誤差信号の信号値を「0」にするための第1制御信号を生成し、
前記第1ゼロ設定部は、
前記符号化モード判定部により生成された前記第1制御信号に基づいて、前記分割ブロックに含まれる前記映像無効領域に対応する前記予測誤差信号の信号値を「0」にする、
請求項1に記載の動画像符号化装置。
前記差分ベクトル信号が、前記映像無効領域に相当する信号である場合、前記差分ベクトル信号の信号値を「0」にすることで第1差分ベクトル信号を取得する第2ゼロ設定部をさらに備え、
前記符号化モード判定部は、
前記分割ブロックに前記映像無効領域が含まれる場合、当該無効領域に対応する前記差分ベクトル信号の信号値を「0」にするための第2制御信号を生成し、
前記第2ゼロ設定部は、
前記符号化モード判定部により生成された前記第2制御信号に基づいて、前記分割ブロックに含まれる前記映像無効領域に対応する前記差分ベクトル信号の信号値を「0」にする、
請求項3に記載の動画像符号化装置。
前記インター予測部は、前記分割ブロックに前記映像無効領域が含まれる場合、当該分割ブロックの動きベクトルを算出する単位のブロックが全て前記映像無効領域である場合、当該ブロックの動きベクトルを当該ブロックの周辺の予測動きベクトルとする、
請求項4に記載の動画像符号化装置。
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、特許文献1の技術では、指定された領域の量子化ステップを調整するだけであり、指定された領域に対して動画圧縮処理を実行する場合に生成される残差信号を制御するものではないので、残差信号が大きな場合には、当該指定された領域に対して動画圧縮処理を実行した場合に発生する符号量が多くなることがある。
【0010】
また、特許文献1の技術では、有効領域(映像有効領域)と余分な領域(映像無効領域)との両方を含んだマクロブロックに対して、符号量が少なくなるよう量子化ステップが制御される可能性がある。この場合、当該マクロブロックについての発生符号量が少なくなるように当該マクロブロックに適用される量子化ステップが比較的大きな値に設定されることになる。その結果、余分な領域(映像無効領域)から取得される残差信号の発生符号量を抑制することができるが、有効領域(映像有効領域)から取得される残差信号の発生符号量も抑制されることになる。したがって、このようにエンコードされた信号(動画像圧縮処理が実行された符号化信号)を、デコードすることで取得される映像において、当該マクロブロックに含まれる有効領域(映像有効領域)の画質が劣化する可能性がある。
【0011】
また、その全部または一部に、余分な領域(映像無効領域)を含むマクロブロックについて、動きベクトルの探索処理を行う場合、当該余分な領域も探索対象として動きベクトルの探索処理が実行されるので、精度の良い動きベクトルの探索処理を実行することができない。
【0012】
そこで、本発明は、上記問題点に鑑み、表示サイズとマクロブロック単位との関係から、所定のマクロブロックの一部または全部に、本来の映像を構成する有効領域(映像有効領域)ではない余分な領域(映像無効領域)が含まれる場合であっても、余分な符号量が発生することを抑制するとともに、画質劣化を適切に防止することができる動画像符号化装置、プログラム、および、集積回路を実現することを目的とする。
【課題を解決するための手段】
【0013】
上記課題を解決するために、第1の発明は、複数のマクロブロックからなるフレーム画像を形成することができる動画像信号を符号化する動画像符号化装置であって、記憶部と、インター予測部と、イントラ予測部と、位置情報取得部と、符号化モード判定部と、差分処理部と、第1ゼロ設定部と、直交変換部と、量子化部と、可変長符号化部と、を備える。
【0014】
記憶部は、参照画像を記憶する。
【0015】
インター予測部は、現フレーム画像と参照画像とに基づいて、インター予測処理を実行し、インター予測信号を取得する。
【0016】
イントラ予測部は、現フレーム画像を用いて、イントラ予測処理を実行し、イントラ予測信号を取得する。
【0017】
位置情報取得部は、画面上で映像を構成する映像有効領域と、画面上で映像を構成しない映像無効領域との境界についての位置情報を取得する。
【0018】
符号化モード判定部は、インター予測信号およびイントラ予測信号のいずれかを予測信号として出力する。
【0019】
差分処理部は、動画像信号と符号化モード判定部から出力される予測信号とに対して差分処理を行うことで、予測誤差信号を取得する。
【0020】
第1ゼロ設定部は、予測誤差信号が、映像無効領域に相当する信号である場合、予測誤差信号の信号値を「0」にすることで第1予測誤差信号を取得する。
【0021】
直交変換部は、第1予測誤差信号に対して、直交変換処理を実行する。
【0022】
量子化部は、直交変換部により処理された信号を量子化する。
【0023】
可変長符号化部は、量子化部により処理された信号に対して可変長符号化処理を実行することで、動画像符号化信号を取得する。
【0024】
この動画像符号化装置では、第1ゼロ設定部により、予測誤差信号が、映像無効領域に相当する信号である場合、予測誤差信号の信号値を「0」にした第1予測誤差信号が取得される。そして、第1予測誤差信号に対して動画像符号化処理が実行されるので、例えば、表示サイズとマクロブロック単位との関係から、所定のマクロブロックに、本来の映像を構成する有効領域(映像有効領域)ではない余分な領域(映像無効領域)が含まれる場合であっても、余分な符号量が発生することを抑制するとともに、画質劣化を適切に防止することができる。
第2の発明は、第1の発明であって、処理対象のマクロブロックを所定の分割方法により分割して取得した分割ブロックについて取得された第1予測誤差信号に基づいて、分割ブロックについての符号化コストを算出する符号化コスト算出部をさらに備える。
【0025】
符号化モード判定部は、符号化モード判定部により算出された符号化コストに基づいて、処理対象のマクロブロックの分割方法を決定し、決定された分割方法により取得された分割ブロックに映像無効領域を含む場合、当該無効領域に対応する予測誤差信号の信号値を「0」にするための第1制御信号を生成する。
【0026】
第1ゼロ設定部は、符号化モード判定部により生成された第1制御信号に基づいて、分割ブロックに含まれる映像無効領域に対応する予測誤差信号の信号値を「0」にする。
【0027】
この動画像符号化装置では、符号化コスト算出部が、分割ブロックについて取得された第1予測誤差信号に基づいて、分割ブロックについての符号化コストを算出するので、映像無効領域の影響を適切に排除することができ、適切な符号化コストの算出を行うことができる。
【0028】
第3の発明は、第2の発明であって、処理対象ブロックの周辺のブロックの動きベクトルに基づいて、処理対象ブロックの予測動きベクトルを取得する動きベクトル処理部をさらに備える。
【0029】
インター予測部は、符号化モード判定部により設定された分割ブロックの予測動きベクトルを動きベクトル処理部から取得し、取得した分割ブロックの予測動きベクトルに基づいて、分割ブロックに対して、インター予測処理を実行することで、分割ブロックの動きベクトルを取得し、取得した分割ブロックの動きベクトルを動きベクトル処理部に出力する。
【0030】
動きベクトル処理部は、分割ブロックの動きベクトルと、分割ブロックの予測動きベクトルとに対して差分処理を行うことで、差分ベクトル信号を取得する。
【0031】
この動画像符号化装置では、さらに、動きベクトル処理部を備えるので、差分ベクトル信号を取得し、差分ベクトル信号を用いた動画像符号化処理を実行することができる。
【0032】
第4の発明は、第3の発明であって、差分ベクトル信号が、映像無効領域に相当する信号である場合、差分ベクトル信号の信号値を「0」にすることで第1差分ベクトル信号を取得する第2ゼロ設定部をさらに備える。
【0033】
符号化モード判定部は、分割ブロックに映像無効領域が含まれる場合、当該無効領域に対応する差分ベクトル信号の信号値を「0」にするための第2制御信号を生成する。
【0034】
第2ゼロ設定部は、符号化モード判定部により生成された第2制御信号に基づいて、分割ブロックに含まれる映像無効領域に対応する差分ベクトル信号の信号値を「0」にする。
【0035】
この動画像符号化装置では、分割ブロックに含まれる映像無効領域に対応する差分ベクトル信号の信号値が「0」となるので、映像有効領域のみの差分ベクトル信号が動画像符号化される。したがって、この画像符号化装置では、映像無効領域のための差分ベクトル信号による余計な符号量の発生を効果的に抑制することができる。
【0036】
第5の発明は、第4の発明であって、インター予測部は、分割ブロックに映像無効領域が含まれる場合、当該分割ブロックの動きベクトルを算出する単位のブロックが全て映像無効領域である場合、当該ブロックの動きベクトルを当該ブロックの周辺の予測動きベクトルとする。
【0037】
この画像符号化装置では、全て映像無効領域のブロックであって、動きベクトル算出の対象となるブロックに対して、動きベクトルを、当該ブロックの周辺から算出された予測動きベクトルに設定する。これにより、当該ブロックの動きベクトルの探索処理を省略することができるため、演算量を削減することができる。さらに、当該ブロックにおいて、動きベクトルと予測動きベクトルとは同じであるため、差分ベクトル信号の信号値が「0」となり、当該ブロック(映像無効領域)のために、余計な符号量を発生させることもない。
【0038】
第6の発明は、第3から第5のいずれか発明であって、符号化コスト算出部は、分割ブロックについて取得された第1予測誤差信号と、差分ベクトル信号とに基づいて、分割ブロックについての符号化コストを算出する。
【0039】
これにより、第1予測誤差信号と、差分ベクトル信号とに基づいて、分割ブロックについての符号化コストをより高精度に算出することができる。
【0040】
第7の発明は、複数のマクロブロックからなるフレーム画像を形成することができる動画像信号を符号化する動画像符号化方法をコンピュータに実行させるためのプログラムである。
【0041】
動画像符号化方法は、記憶ステップと、インター予測ステップと、イントラ予測ステップと、位置情報取得ステップと、符号化モード判定ステップと、差分処理ステップと、第1ゼロ設定ステップと、直交変換ステップと、量子化ステップと、可変長符号化ステップと、を備える。
【0042】
記憶ステップは、参照画像を記憶する。
【0043】
インター予測ステップは、現フレーム画像と参照画像とに基づいて、インター予測処理を実行し、インター予測信号を取得する。
【0044】
イントラ予測ステップは、現フレーム画像を用いて、イントラ予測処理を実行し、イントラ予測信号を取得する。
【0045】
位置情報取得ステップは、画面上で映像を構成する映像有効領域と、画面上で映像を構成しない映像無効領域との境界についての位置情報を取得する。
【0046】
符号化モード判定ステップは、インター予測信号およびイントラ予測信号のいずれかを予測信号として出力する。
【0047】
差分処理ステップは、動画像信号と符号化モード判定ステップにより出力される予測信号とに対して差分処理を行うことで、予測誤差信号を取得する。
【0048】
第1ゼロ設定ステップは、予測誤差信号が、映像無効領域に相当する信号である場合、予測誤差信号の信号値を「0」にすることで第1予測誤差信号を取得する。
【0049】
直交変換ステップは、第1予測誤差信号に対して、直交変換処理を実行する。
【0050】
量子化ステップは、直交変換ステップにより処理された信号を量子化する。
【0051】
可変長符号化ステップは、量子化ステップにより処理された信号に対して可変長符号化処理を実行することで、動画像符号化信号を取得する。
【0052】
これにより、第1の発明と同様の効果を奏する動画像符号化方法をコンピュータに実行させるためのプログラムを実現することができる。
【0053】
第8の発明は、複数のマクロブロックからなるフレーム画像を形成することができる動画像信号を符号化する集積回路であって、記憶部と、インター予測部と、イントラ予測部と、位置情報取得部と、符号化モード判定部と、差分処理部と、第1ゼロ設定部と、直交変換部と、量子化部と、可変長符号化部と、を備える。
【0054】
記憶部は、参照画像を記憶する。
【0055】
インター予測部は、現フレーム画像と参照画像とに基づいて、インター予測処理を実行し、インター予測信号を取得する。
【0056】
イントラ予測部は、現フレーム画像を用いて、イントラ予測処理を実行し、イントラ予測信号を取得する。
【0057】
位置情報取得部は、画面上で映像を構成する映像有効領域と、画面上で映像を構成しない映像無効領域との境界についての位置情報を取得する。
【0058】
符号化モード判定部は、インター予測信号およびイントラ予測信号のいずれかを予測信号として出力する。
【0059】
差分処理部は、動画像信号と符号化モード判定部から出力される予測信号とに対して差分処理を行うことで、予測誤差信号を取得する。
【0060】
第1ゼロ設定部は、予測誤差信号が、映像無効領域に相当する信号である場合、予測誤差信号の信号値を「0」にすることで第1予測誤差信号を取得する。
【0061】
直交変換部は、第1予測誤差信号に対して、直交変換処理を実行する。
【0062】
量子化部は、直交変換部により処理された信号を量子化する。
【0063】
可変長符号化部は、量子化部により処理された信号に対して可変長符号化処理を実行することで、動画像符号化信号を取得する。
【0064】
これにより、第1の発明と同様の効果を奏する集積回路を実現することができる。
【発明の効果】
【0065】
本発明によれば、表示サイズとマクロブロック単位との関係から、所定のマクロブロックの一部または全部に、本来の映像を構成する有効領域(映像有効領域)ではない余分な領域(映像無効領域)が含まれる場合であっても、余分な符号量が発生することを抑制するとともに、画質劣化を適切に防止することができる動画像符号化装置、プログラム、および、集積回路を実現することができる。
【発明を実施するための形態】
【0067】
[第1実施形態]
第1実施形態について、図面を参照しながら、以下、説明する。
【0068】
<1.1:動画像符号化装置の構成>
図1は、第1実施形態に係る動画像符号化装置1000の概略構成図である。
【0069】
動画像符号化装置1000は、例えば、H.264に準拠した動画像符号化信号を生成し、出力することができる構成を有している。
【0070】
動画像符号化装置1000は、
図1に示すように、減算器1と、第1ゼロ設定部2と、コスト算出部3と、直交変換部4と、量子化部5と、可変長符号化部6と、逆量子化部7と、逆直交変換部8と、加算器9と、記憶部10と、を備える。
【0071】
また、動画像符号化装置1000は、
図1に示すように、インター予測部11と、イントラ予測部12と、位置情報取得部13と、スキップMB判定部14と、符号化モード判定部15と、動きベクトル処理部16と、第2ゼロ設定部17と、を備える。
【0072】
減算器1は、動画像信号Dinと、符号化モード判定部15から出力される予測信号Dp(予測動画像信号)と、を入力する。減算器1は、動画像信号Dinと、予測信号Dpとの差分信号である予測誤差信号diffを取得し、取得した予測誤差信号diffを第1ゼロ設定部2に出力する。
【0073】
第1ゼロ設定部2は、符号化モード判定部から出力される制御信号ctl_z1と、減算器1から出力される予測誤差信号diffとを入力する。第1ゼロ設定部2は、制御信号ctl_z1に基づいて、予測誤差信号diffまたは予測誤差信号diffの信号値を強制的に「0」にした信号のいずれかを選択し、予測誤差信号diff1として、コスト算出部3および直交変換部4に出力する。なお、第1ゼロ設定部2は、
図1に示すように、例えば、セレクタsel1を用いて実現される。
【0074】
コスト算出部3は、第1ゼロ設定部2から出力される予測誤差信号diff1と、第2ゼロ設定部17から出力される動きベクトル差分信号diff1_MVに基づいて、符号化コストの算出を行う。そして、算出した符号化コストを含む情報costを符号化モード判定部15に出力する。
【0075】
なお、コスト算出部3は、動画像符号化装置の制御を行う制御部(不図示)から、符号化コストの算出処理に必要な情報、例えば、マクロブロック(例えば、H.264規格に準拠する場合16画素×16画素からなるマクロブロック)と同一のサイズのブロックを分割して取得される分割ブロックサイズ、分割方法、イントラ予測/インター予測の種別等の情報を取得する。
【0076】
直交変換部4は、第1ゼロ設定部2から出力される予測誤差信号diff1を入力する。直交変換部4は、入力された予測誤差信号diff1に対して、所定のブロック単位(例えば、8画素×8画素のブロック単位や、4画素×4画素のブロック単位)で直交変換(例えば、整数変換や離散コサイン変換(DCT))を実行し、直交変換後の信号を量子化部5に出力する。
【0077】
量子化部5は、直交変換部4から出力される直交変換後の信号を入力する。量子化部5は、直交変換部4から出力される直交変換後の信号に対して、量子化処理を実行し、量子化処理後の信号を、可変長符号化部6および逆量子化部7に出力する。
【0078】
逆量子化部7は、量子化部5から出力される信号を入力し、当該信号に対して、逆量子化処理を実行する。そして、逆量子化部7は、逆量子化処理後の信号を逆直交変換部8に出力する。
【0079】
逆直交変換部8は、逆量子化部7から出力される信号を入力し、当該信号に対して、逆直交変換処理を実行する。これにより、逆直交変換部8は、直交変換部4に入力された予測誤差信号diff1と同様の信号(予測誤差信号diff1’)を取得する。そして、逆直交変換部8は、逆直交変換処理後の信号(予測誤差信号diff1’)を加算器9に出力する。
【0080】
なお、予測誤差信号diff1’は、予測誤差信号diff1を、直交変換、量子化処理、逆量子化処理、および、逆直交変換処理を行うことで取得される信号であり、直交変換、量子化処理等に伴う誤差を含む信号である。
【0081】
加算器9は、逆直交変換部8から出力される信号と、符号化モード判定部15から出力される予測信号Dpとを入力とし、両者を加算する。これにより減算器1に入力される動画像信号Dinと同様の動画像信号Din’が取得される。加算器9は、取得した動画像信号Din’を記憶部10に出力する。
【0082】
記憶部10は、例えば、複数フレーム分の動画像信号(データ)を記憶することができるフレームメモリである。記憶部10は、加算器9から出力される動画像信号Din’を記憶する。また、記憶部10は、インター予測処理用の基準フレーム(例えば、現フレームの1フレーム前のフレーム)の動画像信号をインター予測部11に出力する。また、記憶部10は、イントラ予測処理用の基準フレーム(現フレーム)あるいは、当該基準フレームの所定の領域に相当するデータ(例えば、イントラ予測を行う単位のブロックのデータや、当該ブロックの複数個からなる領域のデータ)をイントラ予測部12に出力する。
【0083】
インター予測部11は、動画像信号Dinと、記憶部10からの出力(参照画像を形成する動画像信号)と、を入力する。また、インター予測部11は、符号化モード判定部から出力される制御信号ctl1と、位置情報取得部13から出力される位置情報posとを入力する。インター予測部11は、制御信号ctl1と位置情報posとに基づいて、インター予測処理を実行し、インター予測信号(インター予測動画像信号)を取得する。そして、インター予測部11は、取得したインター予測信号を符号化モード判定部15に出力する。
【0084】
また、インター予測部11は、動きベクトル処理部16から予測動きベクトルpMV(予測動きベクトルに関する情報)を入力する。そして、インター予測部11は、当該予測動きベクトルpMVを、動きベクトルの探索処理の初期ベクトルに設定し、動きベクトルの探索処理を実行する。そして、インター予測部11は、動きベクトルの探索処理により取得した動きベクトルMV(動きベクトル情報MV)を動きベクトル処理部16に出力する。
【0085】
イントラ予測部12は、動画像信号Dinと、記憶部10からの出力(イントラフレーム画像(現フレーム画像)を形成する動画像信号)と、を入力する。また、イントラ予測部12は、符号化モード判定部から出力される制御信号ctl2と、位置情報取得部13から出力される位置情報posとを入力する。イントラ予測部12は、制御信号ctl2と位置情報posとに基づいて、イントラ予測処理を実行し、イントラ予測信号(イントラ予測動画像信号)を取得する。そして、イントラ予測部12は、取得したイントラ予測信号を符号化モード判定部15に出力する。
【0086】
位置情報取得部13は、動画像信号Dinと、映像無効領域を特定するための情報Info_areaとを入力とする。位置情報取得部13は、処理対象中のマクロブロックの画面上の位置情報を取得する。また、位置情報取得部13は、情報Info_areaに基づいて、処理対象中のマクロブロックが、映像無効領域内に存在するのか否かについての情報を取得する。そして、位置情報取得部13は、取得した上記2つの情報を含む情報を位置情報posとして、インター予測部11と、イントラ予測部12と、スキップMB判定部14と、符号化モード判定部15と、動きベクトル処理部16とに出力する。
【0087】
スキップMB判定部14は、動画像信号Dinと、位置情報取得部13から出力される位置情報posと、を入力とする。スキップMB判定部14は、位置情報posに基づいて、処理対象中のマクロブロックをスキップマクロブロック(スキップトマクロブロック)とするか否かを判定し、その判定結果を示す情報を符号化モード判定部15に出力する。
【0088】
符号化モード判定部15は、位置情報取得部13から出力される位置情報posと、スキップMB判定部14から出力される情報と、インター予測部11からの出力と、イントラ予測部12からの出力と、コスト算出部3から出力される情報costと、を入力とする。
【0089】
符号化モード判定部15は、位置情報posに基づいて、符号化コスト算出処理のときに、映像無効領域に対応する予測誤差信号が強制的に「0」となるように制御信号ctl_z1を設定する。符号化モード判定部15は、制御信号ctl_z1を第1ゼロ設定部2に出力する。
【0090】
また、符号化モード判定部15は、位置情報posに基づいて、符号化コスト算出処理のときに、所定の条件を満たし、映像無効領域に対応するベクトル差分信号が強制的に「0」となるように制御信号ctl_z2を設定する。符号化モード判定部15は、制御信号ctl_z2を第2ゼロ設定部17に出力する。
【0091】
また、符号化モード判定部15は、コスト算出部3から出力される情報costと、位置情報posとに基づいて、処理対象マクロブロックについて、インター予測を適用するのか、あるいは、イントラ予測を適用するのかを決定する。
(1)インター予測を適用すると判定された場合、符号化モード判定部15は、インター予測部11に、インター予測処理を実行させるための制御信号ctl1を生成し、当該制御信号ctl1をインター予測部11に出力する。
(2)イントラ予測を適用すると判定された場合、符号化モード判定部15は、イントラ予測部12に、イントラ予測処理を実行させるための制御信号ctl2を生成し、当該制御信号ctl2をイントラ予測部12に出力する。
【0092】
また、符号化モード判定部15は、採用した予測方法(イントラ予測/インター予測)についての情報、イントラ予測モード、イントラ予測処理に用いたブロックサイズ、インター予測に用いたブロックサイズ(分割ブロックサイズ、マクロブロック・パーティション)、サブマクロブロック・パーティションについての情報等を、情報Info_modeとして、可変長符号化部6に出力する。
【0093】
動きベクトル処理部16は、位置情報取得部13から出力される位置情報posと、インター予測部11から出力される動きベクトル情報MVとを入力する。動きベクトル処理部16は、処理対象ブロックの周辺のブロックの動きベクトルについての情報を記憶するメモリ(不図示)を有している。動きベクトル処理部16は、処理対象ブロックの予測動きベクトルpMVを、例えば、H.264規格に準拠した方法により、処理対象ブロックの周辺の動きベクトルを用いて取得する。そして、動きベクトル処理部16は、取得した予測動きベクトルpMVと、インター予測部11により取得された動きベクトルMVとの差分をとることにより、動きベクトル差分信号diff_MVを取得する。そして、動きベクトル処理部16は、取得した動きベクトル差分信号diff_MVを第2ゼロ設定部17に出力する。また、動きベクトル処理部16は、インター予測部11での動きベクトルの探索処理の初期ベクトル用として、予測動きベクトルpMV(予測動きベクトルに関する情報)をインター予測部11に出力する。
【0094】
第2ゼロ設定部17は、動きベクトル処理部16から出力される動きベクトル差分信号diff_MVと、符号化モード判定部15から出力される制御信号ctl_z2とを入力する。第2ゼロ設定部17は、制御信号ctl_z2に基づいて、
第2ゼロ設定部17は、制御信号ctl_z2に基づいて、動きベクトル差分信号diff_MVまたは動きベクトル差分信号diff_MVの信号値を強制的に「0」にした信号のいずれかを選択し、動きベクトル差分信号diff1_MVとして、コスト算出部3および可変長符号化部6に出力する。なお、第2ゼロ設定部17は、
図1に示すように、例えば、セレクタsel2を用いて実現される。
【0095】
可変長符号化部6は、量子化部5から出力される信号を入力する。また、符号化モード判定部15から出力される情報Info_modeと、第2ゼロ設定部17から出力される動きベクトル差分信号diff1_MVとを入力する。可変長符号化部6は、量子化部5から出力される信号と、情報Info_modeと、動きベクトル差分信号diff1_MVとに対して可変長符号化処理を実行し、動画像符号化信号Doutを取得し、取得した動画像符号化信号Doutを出力する。
【0096】
<1.2:動画像符号化装置の動作>
以上のように構成された動画像符号化装置1000の動作について、以下、説明する。
【0097】
(1.2.1:下半分に無効領域を含むマクロブロック(パターン1)の処理)
まず、
図2に示すマクロブロックの処理について、説明する。
【0098】
図2は、1フレームの表示画像サイズが1920画素×1080画素である映像信号に対して、16画素×16画素のマクロブロックを用いた動画像符号化処理を実行するために生成された1920画素×1088画素の画像サイズを有する映像信号の一部(1073ライン〜1088ラインにおいて、水平方向の1番目の画素から第32番目までの画素に相当する画像領域)を模式的に示した図である。
【0099】
以下では、説明便宜のため、動画像符号化装置1000が、
図2に示したマクロブロックMB1を処理対象マクロブロックとして、処理する場合について、説明する。
【0100】
図2から分かるようにマクロブロックMB1は、16画素×16画素(以下、「N画素×M画素」(N,M:自然数)を「N×M」と表記する。)のマクロブロックであり、上半分の16画素×8画素の領域が有効領域(映像有効領域)であり、下半分の16画素×8画素の領域が無効領域(映像無効領域)である。
図2に無地で示した領域が有効領域であり、ハッチングを付した領域が無効領域である(以下同様)。
【0101】
位置情報取得部13は、
図2に示すように、1081ライン目から1088ライン目までの領域が無効領域(映像無効領域)であることを特定するための情報Info_areaを入力する。
【0102】
位置情報取得部13は、情報Info_areaに基づいて、処理対象中のマクロブロックMB1が、下半分の領域に無効領域を有することを示す情報を取得し、当該情報と上記情報Info_areaを含む位置情報posとして、インター予測部11と、イントラ予測部12と、動きベクトル処理部16とに出力する。
【0103】
動画像符号化装置1000では、符号化コストの算出処理が実行される。具体的には、以下の(A)に示した処理により、インター予測処理による符号化コストの算出処理が実行され、以下の(B)に示した処理により、イントラ予測処理による符号化コストの算出処理が実行される。
【0104】
(A)インター予測処理による符号化コストの算出処理:
(A1)インター予測部11は、H.264規格に規定されている分割方法により分割されたブロック(分割ブロック(マクロブロック・パーティション))ごとにインター予測処理を実行する。マクロブロックMB1の場合、マクロブロックの上半分が有効領域であるので、符号化モード判定部15は、インター予測部11に対して、制御信号ctl1により、動き推定(ME:Motion Estimation)および動き補償(MC:Motion Compensation)の処理対象を、マクロブロックMB1の上半分の領域に設定し、動き推定(ME)および動き補償(MC)ための分割ブロックを16×8、8×8(サブマクロブロック・パーティションあり)、8×8(サブマクロブロック・パーティションなし)に設定し、それぞれの場合について、動き推定(ME)および動き補償(MC)を実行し、マクロブロックMB1の上半分の領域についてのインター予測信号を取得する。そして、インター予測部11は、インター予測信号を符号化モード判定部15に出力する。なお、マクロブロックMB1の下半分の領域は、無効領域であるので、動き推定(ME)および動き補償(MC)の対象とはせず、マクロブロックMB1の下半分の領域についての動き推定(ME)および動き補償(MC)は、実行されない。
(A2)符号化モード判定部15は、マクロブロックMB1の下半分の領域の画素についての予測誤差信号diff1が「0」となるように制御信号ctl_z1(
図1の場合、信号値を「1」とする制御信号ctl_z1)を生成し、第1ゼロ設定部2に出力する。
(A3)符号化モード判定部15は、マクロブロックMB1の上半分の領域について、インター予測部11により取得されたインター予測信号を、予測信号Dpとして、減算器1に出力する。減算器1は、動画像信号Din(マクロブロックMB1に相当する動画像信号Din)から、予測信号Dpを減算し、予測誤差信号diffを生成し、第1ゼロ設定部2に出力する。
(A4)第1ゼロ設定部2は、符号化モード判定部15からの制御信号ctl_z1に従い、マクロブロックMB1の上半分の領域については、減算器1から出力される予測誤差信号diffを予測誤差信号diff1として、コスト算出部3に出力し、マクロブロックMB1の下半分については、予測誤差信号diff1の信号値を強制的に「0」にして、コスト算出部3に出力する。なお、
図1の場合、第1ゼロ設定部2に入力される制御信号ctl_z1の信号値は、符号化モード判定部15により、マクロブロックMB1の上半分の領域についての処理が実行されるときは、「0」に設定され、マクロブロックMB1の下半分の領域についての処理が実行されるときは、「1」に設定される。
(A5)また、インター予測部11は、動き推定(ME)により、上記で設定された分割ブロック(分割方法)ごとに取得した動きベクトルMVを動きベクトル処理部16に出力する。動きベクトル処理部16は、H.264規格に準拠した方法により、処理対象ブロックの周辺の動きベクトルを用いて、分割ブロックの予測動きベクトルを取得し、インター予測部11から出力された動きベクトルと、取得した予測動きベクトルとの差分をとることにより、動きベクトル差分信号diff_MVを取得する。そして、取得された動きベクトル差分信号diff_MVは、第2ゼロ設定部17に出力される。
(A6)第2ゼロ設定部17は、符号化モード判定部15からの制御信号ctl_z2に従い、マクロブロックMB1の上半分の領域については、動きベクトル処理部16から出力される動きベクトル差分信号diff_MVを動きベクトル差分信号diff1_MVとして、コスト算出部3に出力し、マクロブロックMB1の下半分については、動きベクトル差分信号diff1_MVの信号値を強制的に「0」にして、コスト算出部3に出力する。なお、
図1の場合、第2ゼロ設定部17に入力される制御信号ctl_z2の信号値は、符号化モード判定部15により、マクロブロックMB1の上半分の領域についての処理が実行されるときは、「0」に設定され、マクロブロックMB1の下半分の領域についての処理が実行されるときは、「1」に設定される。
(A7)コスト算出部3は、分割ブロックごとに、上記により取得された予測誤差信号diff1と、動きベクトル差分信号diff1_MVとを用いて符号化コストが算出する。なお、マクロブロックMB1の下半分の領域(無効領域)における予測誤差信号diff1および動きベクトル差分信号diff1_MVは、その信号値が全て「0」であるので、コスト算出部3は、マクロブロックMB1の上半分の領域(有効領域)についてのみ符号化コストを算出するようにしてもよい。
【0105】
(B)イントラ予測処理による符号化コストの算出処理:
(B1)イントラ予測部12は、H.264規格に規定されているイントラ予測用のブロックサイズごとにインター予測処理を実行する。なお、直交変換のブロックサイズが4×4のとき、イントラ予測用のブロックサイズは、4×4または16×16であり、直交変換のブロックサイズが8×8のとき、イントラ予測用のブロックサイズは、8×8である。
【0106】
マクロブロックMB1の場合、マクロブロックの上半分が有効領域であるので、符号化モード判定部15は、イントラ予測部12に対して、制御信号ctl2により、イントラ予測用のブロックサイズおよびイントラ予測モードを設定する。イントラ予測部12は、設定されたイントラ予測モードで、イントラ予測処理を実行し、イントラ予測信号を取得し、符号化モード判定部15に出力する。これを、イントラ予測用のブロックサイズの種別、および、イントラ予測モードの種別ごとに行う。
(B2)符号化モード判定部15は、マクロブロックMB1の下半分の領域の画素についての予測誤差信号diff1が「0」となるように制御信号ctl_z1(
図1の場合、信号値を「1」とする制御信号ctl_z1)を生成し、第1ゼロ設定部2に出力する。
(B3)符号化モード判定部15は、マクロブロックMB1の上半分の領域について、イントラ予測部12により取得されたイントラ予測信号を、予測信号Dpとして、減算器1に出力する。減算器1は、動画像信号Din(マクロブロックMB1に相当する動画像信号Din)から、予測信号Dpを減算し、予測誤差信号diffを生成し、第1ゼロ設定部2に出力する。
(B4)第1ゼロ設定部2は、符号化モード判定部15からの制御信号ctl_z1に従い、マクロブロックMB1の上半分の領域については、減算器1から出力される予測誤差信号diffを予測誤差信号diff1として、コスト算出部3に出力し、マクロブロックMB1の下半分については、予測誤差信号diff1の信号値を強制的に「0」にして、コスト算出部3に出力する。なお、
図1の場合、第1ゼロ設定部2に入力される制御信号ctl_z1の信号値は、符号化モード判定部15により、マクロブロックMB1の上半分の領域についての処理が実行されるときは、「0」に設定され、マクロブロックMB1の下半分の領域についての処理が実行されるときは、「1」に設定される。
(B5)コスト算出部3は、イントラ予測用のブロックサイズの種別、および、イントラ予測モードの種別ごと、上記により取得された予測誤差信号diff1を用いて符号化コストが算出する。なお、マクロブロックMB1の下半分の領域(無効領域)における予測誤差信号diff1は、その信号値が全て「0」であるので、コスト算出部3は、マクロブロックMB1の上半分の領域(有効領域)についてのみ符号化コストを算出するようにしてもよい。
【0107】
上記処理により取得された、インター予測処理による符号化コストと、イントラ予測処理による符号化コストとに関する情報costが、コスト算出部3から符号化モード判定部15に出力される。
【0108】
符号化モード判定部15では、コスト算出部3により取得された符号化コストに関する情報costに基づいて、マクロブロックMB1に対して、インター予測処理を行うのか、それとも、イントラ予測処理を行うのかを決定する。つまり、符号化モード判定部15は、最小の符号化コストとなる予測処理を、インター予測部11、または、イントラ予測部12に実行させるための制御信号ctl1、または、制御信号ctl2を生成する。
【0109】
≪A:インター予測処理≫
まず、符号化コストが最小であると判定されたのが、インター予測処理である場合について、場合分けをして、以下、説明する。
【0110】
≪A1:分割ブロックが16×8の場合(インター予測処理)≫
分割ブロックを16×8としたときのインター予測処理の符号化コストが最小である場合(これを「パターンA1」の場合という。)、符号化モード判定部15は、インター予測部11に制御信号ctl1を出力し、インター予測部11に分割ブロックを16×8として、マクロブロックMB1の上半分の領域(有効領域)について、動き推定(ME)および動き補償(MC)を実行するように制御する。
【0111】
インター予測部11は、符号化モード判定部15からの制御信号ctl1に従い、マクロブロックMB1の上半分の領域(有効領域)について、動き推定(ME)および動き補償(MC)を実行する。なお、処理対象ブロックであるマクロブロックMB1の上半分の16×8のブロックを「注目分割ブロック」という。
【0112】
また、インター予測部11は、記憶部10から入力された参照画像と、動き推定(ME)処理で取得した動きベクトルMVとに基づいて、動き補償(MC)を実行することで、注目分割ブロックについてのインター予測信号を取得し、符号化モード判定部15に出力する。
【0113】
符号化モード判定部15は、注目分割ブロックが16×8であり、マクロブロックMB1の下半分の領域(16×8の領域)が無効領域であるので、動き補償(MC)のブロックサイズを16×16に設定する。さらに、符号化モード判定部15は、マクロブロックMB1の動きベクトルを、インター予測部11が、注目分割ブロック(マクロブロックMB1の上半分の領域(16×8の領域))を処理対象として取得した動きベクトルMVとする。この処理について、
図3を用いて、説明する。
【0114】
図3は、処理対象マクロブロックMB1の上半分(注目分割ブロックが16×8)が有効領域である場合において、決定される動き補償(MC)のブロックサイズと、動きベクトルについて説明するための図である。なお、
図3において、有効領域を無地(白地)の領域として、無効領域をハッチングを付した領域として示している(以下、同様)。
【0115】
上記の場合、
図3の左図に示すように、注目分割ブロックDB1(マクロブロックMB1の上半分の領域)について、動き推定により算出された動きベクトルを動きベクトルMV1とすると、インター予測部11は、マクロブロックMB1の上半分(16×8の領域)を、参照画像において、動きベクトルMV1が示す先に存在する画像領域として、インター予測信号を生成する。なお、マクロブロックの下半分(16×8の領域)の無効領域については、動きベクトルの探索処理も、動き補償(MC)処理も実行されない。
【0116】
符号化モード判定部15は、上記のようにして取得されたインター予測信号、および、注目分割ブロック(有効領域)の動きベクトルMV1に基づいて、マクロブロックMB1の動き補償のブロックサイズを16×16に設定し、当該16×16のブロックの動きベクトルをMV1として、予測信号Dpを生成し、減算器1に出力する。また、符号化モード判定部15は、マクロブロックMB1の動き補償のブロックサイズが16×16であることと、マクロブロックMB1に対してインター予測処理が実行されたことを示す情報を情報Info_modeとして、可変長符号化部6に出力する。
【0117】
また、符号化モード判定部15は、無効領域に相当する予測誤差信号diffの信号値が強制的に「0」となるように制御信号ctl_z1を生成し、第1ゼロ設定部2に出力する。
【0118】
減算器1は、マクロブロックMB1に相当する動画像信号Dinから、符号化モード判定部15から入力された予測信号Dpを減算し取得した予測誤差信号diffを、第1ゼロ設定部2に出力する。
【0119】
第1ゼロ設定部2は、マクロブロックMB1の上半分の16×8の領域(有効領域)に相当する予測誤差信号diffが入力された場合は、符号化モード判定部15からの制御信号ctl_z1に従い、入力された予測誤差信号diffを、そのまま、予測誤差信号diff1として、直交変換部4に出力する。一方、第1ゼロ設定部2は、マクロブロックMB1の下半分(無効領域)の16×8の領域に相当する予測誤差信号diffが入力された場合は、符号化モード判定部15からの制御信号ctl_z1に従い、その信号値を強制的に「0」にし、予測誤差信号diff1として、直交変換部4に出力する。
【0120】
直交変換部4では、予測誤差信号diff1に対して、直交変換処理を実行し、直交変換後の信号が量子化部5に出力される。
【0121】
量子化部5は、直交変換部4から入力される信号に対して量子化処理を実行し、量子化処理後の信号を可変長符号化部6に出力する。
【0122】
また、インター予測部11は、上記により取得された動きベクトルMV1を動きベクトル処理部16に出力する。
【0123】
動きベクトル処理部16は、インター予測部11から入力された動きベクトルMV1と、注目分割ブロックの周辺から取得した予測動きベクトルpMVとの差分をとり、動きベクトル差分信号diff_MVを第2ゼロ設定部17に出力する。第2ゼロ設定部17は、動きベクトル処理部16から入力した動きベクトル差分信号diff_MVを、マクロブロックMB1用の動きベクトル差分信号diff1_MVとして、可変長符号化部6に出力する。
【0124】
可変長符号化部6は、量子化部5から入力された信号に対して可変長符号化処理を実行する。
【0125】
また、可変長符号化部6は、符号化モード判定部15から入力されたマクロブロックMB1の動き補償のブロックサイズが16×16であることと、マクロブロックMB1に対してインター予測処理が実行されたことを示す情報Info_modeと、第2ゼロ設定部17から入力されたマクロブロックMB1用の動きベクトル差分信号diff1_MVとに対して、可変長符号化処理を実行する。
【0126】
可変長符号化部6は、上記のように、量子化信号、各種情報(モード情報等)、および、差分ベクトル信号に対して、可変長符号化処理を実行して取得した信号を、マクロブロックMB1に対する動画像符号化信号Doutとして、出力する。
【0127】
このように、動画像符号化装置1000では、有効領域のみを用いて、動き推定処理、動き補償処理を実行するので、無効領域の影響を受けることなく、精度の良い動き推定処理、動き補償処理を実行することができるので、それにより取得される動きベクトルの精度も高い。また、動画像符号化装置1000では、無効領域における予測誤差信号を強制的に「0」にするので、無効領域に対する符号量の発生を顕著に抑制することができる。また、無効領域についての動き推定処理(動きベクトル探索処理)、動き補償処理を実行することがないので、演算量の増加も抑制することができる。
【0128】
≪A2:分割ブロックが8×8であり、かつ、サブブロック(サブマクロブロック・パーティション)がない場合(インター予測処理)≫
分割ブロックを8×8とし、かつ、サブブロックなしにしたときのインター予測処理の符号化コストが最小である場合(これを「パターンA2」の場合という。)、符号化モード判定部15は、インター予測部11に制御信号ctl1を出力し、インター予測部11に分割ブロックを8×8として、マクロブロックMB1の上半分の2つの領域(有効領域)について、動き推定(ME)および動き補償(MC)を実行するように制御する。
【0129】
図4は、パターンA2の場合の処理を説明するための図である。
【0130】
インター予測部11は、符号化モード判定部15からの制御信号ctl1に従い、マクロブロックMB1の上半分の領域(有効領域)について、動き推定(ME)および動き補償(MC)を実行する。具体的には、インター予測部11は、処理対象ブロックであるマクロブロックMB1の上半分の2つの8×8のブロックについての予測動きベクトルpMV(注目分割ブロックの周辺のブロックから求めた予測動きベクトル)を動きベクトル処理部16から取得する。以下では、
図4の左図に示すように、2つの8×8ブロックのうち左側の分割ブロック(8×8ブロック)を分割ブロックDB11とし、右側の分割ブロック(8×8ブロック)を分割ブロックDB12とする。
【0131】
なお、説明便宜のため、分割ブロックDB11が注目分割ブロック(処理対象分割ブロック)である場合について、以下、説明する。
【0132】
インター予測部11は、分割ブロックDB11についての動き推定処理(ME)により注目分割ブロックDB11の動きベクトルMV11を取得する。インター予測部11は、取得した動きベクトルMV11を動きベクトル処理部16に出力する。
【0133】
また、インター予測部11は、記憶部10から入力された参照画像と、取得した動きベクトルMV11とに基づいて、動き補償(MC)を実行することで、注目分割ブロックDB11についてのインター予測信号を取得し、符号化モード判定部15に出力する。
【0134】
符号化モード判定部15は、注目分割ブロックDB11が8×8であり、マクロブロックMB1の左下半分の領域(8×8の領域)が無効領域であるので、動き補償(MC)のブロックを注目分割ブロックDB11を含む8×16のブロックであるME用ブロックDB11e(
図4の右図に示すME用ブロックDB11e)に設定し、さらに、ME用ブロックDB11eの動きベクトルMV11eを、インター予測部11により、注目分割ブロックDB11を処理対象として取得された動きベクトルMV11(
図4の左図に示す動きベクトルMV11)とする。この処理について、
図4を用いて、具体的に説明する。
【0135】
パターンA2の場合、
図4の左図に示すように、注目分割ブロックDB11について、インター予測部11は、注目分割ブロックMB11を、参照画像において、動きベクトルMV11が示す先に存在する画像領域として、インター予測信号を生成する。なお、マクロブロックの下半分(8×16の領域)の無効領域については、動きベクトルの探索処理も、動き補償(MC)処理も実行しない。
【0136】
符号化モード判定部15は、上記のようにして取得されたインター予測信号、および、注目分割ブロックDB11の動きベクトルMV11に基づいて、ME用ブロックDB11eの動き補償のブロックサイズを8×16に設定し、当該8×16のブロックの動きベクトルをMV11と同じベクトルである動きベクトルMV11eとして、予測信号Dpを生成し、減算器1に出力する。また、符号化モード判定部15は、ME用ブロックDB11eの動き補償のブロックサイズが8×16であることと、ME用ブロックDB11eに対してインター予測処理が実行されたことを示す情報を情報Info_modeとして、可変長符号化部6に出力する。
【0137】
また、符号化モード判定部15は、無効領域に相当する予測誤差信号diffの信号値が強制的に「0」となるように制御信号ctl_z1を生成し、第1ゼロ設定部2に出力する。
【0138】
減算器1は、ME用ブロックDB11eに相当する動画像信号Dinから、符号化モード判定部15から入力された予測信号Dpを減算し取得した予測誤差信号diffを、第1ゼロ設定部2に出力する。
【0139】
第1ゼロ設定部2は、ME用ブロックDB11eの上半分の領域(有効領域)に相当する予測誤差信号diffが入力された場合は、符号化モード判定部15からの制御信号ctl_z1に従い、入力された予測誤差信号diffを、そのまま、予測誤差信号diff1として、直交変換部4に出力する。一方、第1ゼロ設定部2は、ME用ブロックDB11eの上半分の領域の下半分(無効領域)の領域に相当する予測誤差信号diffが入力された場合は、符号化モード判定部15からの制御信号ctl_z1に従い、その信号値を強制的に「0」にし、予測誤差信号diff1として、直交変換部4に出力する。
【0140】
直交変換部4では、予測誤差信号diff1に対して、直交変換処理を実行し、直交変換後の信号が量子化部5に出力される。
【0141】
量子化部5は、直交変換部4から入力される信号に対して量子化処理を実行し、量子化処理後の信号を可変長符号化部6に出力する。
【0142】
また、インター予測部11は、上記により取得された動きベクトルMV11e(MV11と同じ動きベクトル)を動きベクトル処理部16に出力する。
【0143】
動きベクトル処理部16は、インター予測部11から入力された動きベクトルMV11e(MV11と同じ動きベクトル)と、注目分割ブロックの周辺から取得した予測動きベクトルpMVとの差分をとり、動きベクトル差分信号diff_MVを第2ゼロ設定部17に出力する。第2ゼロ設定部17は、動きベクトル処理部16から入力した動きベクトル差分信号diff_MVを、ME用ブロックDB11e用の動きベクトル差分信号diff1_MVとして、可変長符号化部6に出力する。
【0144】
可変長符号化部6は、量子化部5から入力された信号に対して可変長符号化処理を実行する。
【0145】
また、可変長符号化部6は、符号化モード判定部15から入力されたME用ブロックDB11eの動き補償のブロックサイズが8×16であることと、ME用ブロックDB11eに対してインター予測処理が実行されたことを示す情報Info_modeと、第2ゼロ設定部17から入力されたME用ブロックDB11e用の動きベクトル差分信号diff1_MVとに対して、可変長符号化処理を実行する。
【0146】
可変長符号化部6は、上記のように、量子化信号、各種情報(モード情報等)、および、差分ベクトル信号に対して、可変長符号化処理を実行して取得した信号を、ME用ブロックDB11eに対する動画像符号化信号Doutとして、出力する。
【0147】
このように、動画像符号化装置1000では、有効領域のみを用いて、動き推定処理、動き補償処理を実行するので、無効領域の影響を受けることなく、精度の良い動き推定処理、動き補償処理を実行することができるので、それにより取得される動きベクトルの精度も高い。また、動画像符号化装置1000では、無効領域における予測誤差信号を強制的に「0」にするので、無効領域に対する符号量の発生を顕著に抑制することができる。また、無効領域についての動き推定処理(動きベクトル探索処理)、動き補償処理を実行することがないので、演算量の増加も抑制することができる。
【0148】
なお、上記では、分割ブロックDB11が注目分割ブロック(処理対象分割ブロック)である場合について、説明したが、分割ブロックDB12(
図4に示す分割ブロックDB12)が注目分割ブロック(処理対象分割ブロック)である場合についても、上記と同様の処理が実行され、ME用ブロックDB12e(
図4に示すME用ブロックDB12e)に対する動画像符号化信号Doutが取得される。
【0149】
≪A3:分割ブロックが8×8の場合であって、サブブロック(サブマクロブロック・パーティション)がある場合(インタ予測処理)≫
分割ブロックを8×8とし、かつ、サブブロックありにしたときのインター予測処理の符号化コストが最小である場合(これを「パターンA3」の場合という。)、符号化モード判定部15は、インター予測部11に制御信号ctl1を出力し、インター予測部11に分割ブロックを8×8として、さらに、符号化コストが最小となるサブブロックが設定されたマクロブロックMB1の上半分の有効領域について、動き推定(ME)および動き補償(MC)を実行するように制御する。ここでは、説明便宜のため、有効領域の8×8の分割ブロックのサブブロックが全て4×4のブロックである場合について説明する。なお、サブブロックは、例えば、H.264規格に規定されているように、4×8のブロック、8×4のブロック、4×4のブロックを取り得る。
【0150】
図5は、パターンA3の場合の処理を説明するための図である。
【0151】
インター予測部11は、符号化モード判定部15からの制御信号ctl1に従い、マクロブロックMB1の上半分の領域(有効領域)について、動き推定(ME)および動き補償(MC)を実行する。具体的には、インター予測部11は、処理対象ブロックであるマクロブロックMB1の上半分の8つの4×4のブロック(
図5の左図に示すサブブロックdB11、dB12、dB13、dB14、dB21、dB22、dB23、dB24)についての予測動きベクトルpMV(注目分割ブロックの周辺のブロックから求めた予測動きベクトル)を動きベクトル処理部16から取得する。
【0152】
なお、説明便宜のため、サブブロックdB22が注目ブロック(処理対象ブロック)である場合について、以下、説明する。
【0153】
インター予測部11は、分割ブロックdB22についての予測動きベクトルpMVを動きベクトルの探索処理の初期ベクトルとして、動きベクトルの探索処理を実行し、注目ブロックdB22の動きベクトルmv22を取得する。
【0154】
インター予測部11は、取得した動きベクトルmv22を動きベクトル処理部16に出力する。
【0155】
また、インター予測部11は、記憶部10から入力された参照画像と、取得した動きベクトルmv22とに基づいて、動き補償(MC)を実行することで、注目ブロックdB22についてのインター予測信号を取得し、符号化モード判定部15に出力する。つまり、注目ブロックdB22については、H.264に規格されている通りの処理を行う。そして、そのために、符号化モード判定部15は、注目ブロックdB22に相当する予測誤差信号diffが、第1ゼロ設定部2において、そのまま、予測誤差信号diff1として出力されるように、制御信号ctl1を生成する。
【0156】
また、インター予測部11は、注目ブロックdB22について取得された動きベクトルmv22を動きベクトル処理部16に出力し、動きベクトル処理部16は、注目ブロックdB22の周辺ブロックから取得された予測動きベクトルと、動きベクトルmv22との差分をとることで、動きベクトル差分信号diff_MVを取得し、第2ゼロ設定部17に出力する。
【0157】
第2ゼロ設定部17は、注目ブロックdB22が有効領域に含まれるので、制御信号ctl_z2に従い、動きベクトル差分信号diff_MVを、そのまま、動きベクトル差分信号diff1_MVとして、可変長符号化部6に出力する。
【0158】
つまり、注目ブロックdB22については、H.264規格に規定されている通常の処理が実行される。
【0159】
なお、マクロブロックMB1の有効領域に含まれる他のサブブロックについても同様である。
【0160】
次に、パターンA3の場合の無効領域の処理について、
図5の左図の8×8の分割ブロックdB31が処理対象である場合を例に、説明する。
【0161】
符号化モード判定部15は、分割ブロックdB31が無効領域に含まれるので、当該領域において予測誤差信号diff1の信号値が強制的に「0」となるように、制御信号ctl1を生成し、第1ゼロ設定部2に出力する。
【0162】
第1ゼロ設定部2は、分割ブロックdB31に相当する予測誤差信号diffが入力された場合、制御信号ctl1に従い、信号値「0」を出力する。これにより、第1ゼロ設定部2から出力される、分割ブロックdB31に相当する予測誤差信号diff1の信号値は「0」となる。なお、直交変換部4以降の処理は、上記で説明した処理と同様である。
【0163】
次に、分割ブロックdB31に設定する動きベクトルについての処理について、説明する。
【0164】
符号化モード判定部15は、処理対象の分割ブロックdB31が、8×8のブロックであり、無効領域内のブロックであるので、分割ブロックdB31の周辺から算出される予測動きベクトルを、分割ブロックdB31の動きベクトルに設定するよう指示する制御信号ctl1を生成し、インター予測部11に出力する。
【0165】
インター予測部11は、制御信号ctl1に従い、動きベクトル処理部16から、分割ブロックdB31の周辺のブロックから取得された予測動きベクトルpmv31を取得する。例えば、分割ブロックdB31の周辺のブロックおよび取得された動きベクトルが
図5の左図に示す場合、動きベクトル処理部16は、H.264規格の規定通り、pmv31を、
pmv31=median(mv21,mv23,mv30)
median():要素のメディアン値をとる関数
mv21:ブロックdB21の動きベクトル
mv23:ブロックdB23の動きベクトル
mv30:ブロックdB30の動きベクトル
により、取得する。
【0166】
そして、インター予測部11は、上記により取得された予測動きベクトルを、そのまま、分割ブロックdB31の動きベクトルmv31として採用する。これにより、分割ブロックdB31についての動きベクトル探索処理は省略される。
【0167】
そして、インター予測部11は、上記のように取得した動きベクトルmv31を、分割ブロックdB31の動きベクトルとして、動きベクトル処理部16に出力する。
【0168】
動きベクトル処理部16は、分割ブロックdB31の予測動きベクトルpmv31と、インター予測部11から入力された動きベクトルmv31との差分をとり、動きベクトル差分信号diff_MVを取得し、第2ゼロ設定部17に出力する。なお、予測動きベクトルpmv31と動きベクトルmv31とは同じなので、信号値が「0」である動きベクトル差分信号diff_MVが、動きベクトル処理部16から第2ゼロ設定部17に出力されることになる。そして、第2ゼロ設定部17は、入力された動きベクトル差分信号diff_MVを、そのまま、動きベクトル差分信号diff1_MVとして、可変長符号化部6に出力する。
【0169】
可変長符号化部6では、分割ブロックdB31に対応する動きベクトル差分信号diff1_MVに対して可変長符号化処理を行う。なお、分割ブロックdB31に対応する動きベクトル差分信号diff1_MVは、上記の通り、信号値が「0」となるので、可変長符号化処理後の分割ブロックdB31に相当する動画像符号化信号は、その発生符号量が抑制されたものとなる。
【0170】
なお、分割ブロックdB32についても、上記と同様の処理が実行される。
【0171】
このように、パターンA3の場合、動画像符号化装置では、無効領域に相当する予測誤差信号diff1の信号値が「0」となり、また、動きベクトル差分信号diff1_MVの信号値も「0」となるため、無効領域に相当する部分の動画像符号化信号の発生符号量を効果的に抑制することができる。また、上記の通り、無効領域に対する処理は、H.264規格に準拠した処理を実行するだけなので、回路規模の増大を抑制しつつ、簡単に実現することができる。
【0172】
≪B:イントラ予測処理≫
次に、符号化コストが最小であると判定されたのが、イントラ予測処理である場合について
図6を用いて説明する。
【0173】
図6は、処理対象マクロブロックMB1の上半分(注目分割ブロックが16×8)が有効領域である場合において、決定される動き補償(MC)のブロックサイズと、動きベクトルについて説明するための図である。なお、以下では、イントラ予測モードとして、H.264規格で規定されている予測モード0(垂直方向への予測モード)の場合について説明する。なお、イントラ予測のためのブロックサイズは、8×8に設定されているものとして、説明する。
【0174】
図6の場合、符号化モード判定部15は、イントラ予測部12に対して、予測モード0として、イントラ予測処理を実行するように指示する制御信号ctl1を生成し、イントラ予測部12に出力する。
【0175】
イントラ予測部12は、制御信号ctl1に従い、マクロブロックMB1に対して、予測モード0のイントラ予測処理を実行する。具体的には、
図6に示すように、イントラ予測部12は、無効領域に存在する8×8のブロックDB21の各列の画素の画素値を、有効領域に存在する8×8ブロックであるブロックDB11の最下段に位置する8つの画素P1〜P8の画素値と、それぞれ、同じ画素値となるように設定する。また、同様に、イントラ予測部12は、無効領域に存在する8×8のブロックDB22の各列の画素の画素値を、有効領域に存在する8×8ブロックであるブロックDB12の最下段に位置する8つの画素P9〜P16の画素値と、それぞれ、同じ画素値となるように設定する。このようにして、イントラ予測部12は、イントラ予測ブロックDB21、DB22を取得する。
【0176】
そして、イントラ予測部12は、実際のブロックDB21の画素の画素値と、イントラ予測ブロックの画素の画素値との差分をとることで、ブロックDB21に相当するイントラ予測信号を符号化モード判定部15に出力する。なお、ブロックDB22についても同様である。以下では、ブロックDB21に対する処理について、説明する。
【0177】
符号化モード判定部15は、無効領域に存在するブロックDB21に対応する予測誤差信号diff1の信号値が「0」となるように、制御信号ctl_z1を生成し、第1ゼロ設定部2に出力する。
【0178】
また、符号化モード判定部15は、ブロックDB21に対応するインター予測信号を予測信号Dpとして減算器1に出力する。
【0179】
減算器1は、ブロックDB21に相当する動画像信号Dinから、予測信号Dpを減算して取得した予測誤差信号diffを第1ゼロ設定部2に出力する。
【0180】
第1ゼロ設定部2は、符号化モード判定部15から出力される制御信号ctl_z1に従い、予測誤差信号diff1の信号値を強制的に「0」にし、直交変換部4に出力する。
【0181】
直交変換部4以降において、上記で説明した、インター予測処理がなされた場合の予測誤差信号diff1の処理と同様の処理が実行される。
【0182】
このように、動画像符号化装置1000では、符号化コストが最小であると判定されたのが、イントラ予測処理である場合において、無効領域に相当する予測誤差信号diff1の信号値を強制的に「0」とするので、不要な符号量の発生を適切に抑制することができる。
【0183】
なお、上記では、予測モード0について説明したが、他の予測モードにおいても、動画像符号化装置1000では、同様に無効領域に相当する予測誤差信号diff1の信号値を強制的に「0」とするので、不要な符号量の発生を適切に抑制することができる。
【0184】
(1.2.2:無効領域のみを含むマクロブロック(パターン2)の処理)
次に、
図7に示すように、無効領域のみを含むマクロブロックの処理について、説明する。
【0185】
図7は、無効領域のみを含むマクロブロックMB2を示した図である。
【0186】
スキップMB判定部14は、
図7に示すマクロブロックMB2に相当する動画像信号Dinが入力された場合、マクロブロックMB2をスキップマクロブロックに設定するための情報を生成し、当該情報を符号化モード判定部15に出力する。
【0187】
符号化モード判定部15は、スキップMB判定部14からの情報に基づいて、マクロブロックMB2をスキップマクロブロックに設定し、マクロブロックMB2をスキップマクロブロックに設定したことを示す情報を、情報Info_modeに含め、可変長符号化部6に出力する。そして、可変長符号化部6は、マクロブロックMB2をスキップマクロブロックに設定したことを示す情報に対して、可変長符号化処理を実行し、動画像符号化信号Doutを生成し出力する。
【0188】
これにより、無効領域のみを含むマクロブロックMB2はスキップマクロブロックに設定されるだけなので、インター予測処理、イントラ予測処理等が実行されることがない。その結果、動画像符号化装置1000では、無効領域について不要な符号を発生させることがなく、不要な符号量の発生を適切に抑制することができる。
【0189】
(1.2.3:左下端部に無効領域を含むマクロブロック(パターン3)の処理)
次に、
図8に示すように、左下端部に無効領域を含むマクロブロックMB3の処理について、説明する。
【0190】
≪
図9の場合≫
マクロブロックMB3についての符号化コスト計算を行った結果、ブロックを16×16のブロックにしたときのインター予測処理の符号化コストが最小であった場合、符号化モード判定部15は、動き補償のブロックサイズを16×16に設定し、インター予測部11に、動き補償のブロックサイズを16×16として、インター予測処理を実行させるように制御信号ctl1を生成する。
図9に、ブロックを16×16のブロックにしたときのインター予測処理の符号化コストが最小であった場合を説明するための図を示す。
【0191】
インター予測部11は、制御信号ctl1に基づいて、動き補償のブロックサイズを16×16として、インター予測処理を実行する。そして、動き補償のブロックサイズを16×16として、動きベクトルの探索処理を実行し、動きベクトルMV3を取得する。なお、動きベクトルの探索処理については、上記で説明した処理と同様である。
【0192】
そして、インター予測部11は、動きベクトルMV3を用いた動き補償処理により取得したインター予測信号を符号化モード判定部15に出力する。
【0193】
符号化モード判定部15は、マクロブロックMB3の無効領域の部分において、予測誤差信号diff1が強制的に「0」となるように制御信号ctl_z1を生成し、第1ゼロ設定部2に出力する。
【0194】
そして、上記で説明したのと同様に、無効領域についての予測誤差信号diff1の信号値が「0」となるように制御される。
【0195】
動画像符号化装置1000では、
図9に示すように、ブロックを16×16のブロックにしたときのインター予測処理の符号化コストが最小であった場合、動き補償のブロックサイズを16×16とし、当該ブロックにより取得される動きベクトルMV3を用いて動画像符号化処理を実行する。そして、動画像符号化装置1000は、無効領域において、予測誤差信号diff1が「0」となるように制御するので、無効領域による不要な符号量の発生を適切に防止することができる。
【0196】
≪
図10の場合≫
マクロブロックMB3についての符号化コスト計算を行った結果、ブロックを8×16のブロックにしたときのインター予測処理の符号化コストが最小であった場合、符号化モード判定部15は、動き補償のブロックサイズを8×16に設定し、インター予測部11に、動き補償のブロックサイズを8×16として、インター予測処理を実行させるように制御信号ctl1を生成する。
図10に、分割ブロックを8×16のブロックにしたときのインター予測処理の符号化コストが最小であった場合を説明するための図を示す。
【0197】
インター予測部11は、制御信号ctl1に基づいて、動き補償のブロックサイズを8×16として、インター予測処理を実行する。
【0198】
インター予測部11は、マクロブロックMB3の右半分の8×16の分割ブロックDB12については、動き補償のブロックサイズを8×16として、動きベクトルの探索処理を実行し、動きベクトルMV12Aを取得する。なお、動きベクトルの探索処理については、上記で説明した処理と同様である。
【0199】
インター予測部11は、マクロブロックMB3の左半分の8×16のブロックでは、
図4を用いて説明したのと同様に、8×8ブロックであるブロックDB11により、インター予測処理を実行し、取得した動きベクトルMV11を、
図10の右図に示すように、マクロブロックMB3の左半分の8×16の分割ブロックDB11eの動きベクトルして、インター予測処理を実行する。つまり、分割ブロックDB11eを動き補償のブロックとして、インター予測処理(動き推定処理、動き補償処理)を実行する。そして、
図4を用いて説明したのと同様に、動画像符号化装置1000では、無効領域に相当する予測誤差信号diff1を強制的に「0」とすることで、無効領域についての符号量の発生を抑制する。
【0200】
≪
図11の場合≫
マクロブロックMB3についての符号化コスト計算を行った結果、ブロックを16×8のブロックにしたときのインター予測処理の符号化コストが最小であった場合、符号化モード判定部15は、動き補償のブロックサイズを16×8に設定し、インター予測部11に、動き補償のブロックサイズを16×8として、インター予測処理を実行させるように制御信号ctl1を生成する。
図11に、分割ブロックを16×8のブロックにしたときのインター予測処理の符号化コストが最小であった場合を説明するための図を示す。
【0201】
インター予測部11は、制御信号ctl1に基づいて、動き補償のブロックサイズを16×8として、インター予測処理を実行する。
【0202】
インター予測部11は、マクロブロックMB3の上半分の16×8の分割ブロックDB11については、動き補償のブロックサイズを16×8として、動きベクトルの探索処理を実行し、動きベクトルMV11Aを取得する。なお、動きベクトルの探索処理については、上記で説明した処理と同様である。
【0203】
インター予測部11は、マクロブロックMB3の下半分の16×8のブロックでは、
図4を用いて説明したのと同様に、8×8ブロックであるブロックDB22により、インター予測処理を実行し、取得した動きベクトルMV22を、
図11の右図に示すように、マクロブロックMB3の下半分の16×8の分割ブロックDB21eの動きベクトルして、インター予測処理を実行する。つまり、分割ブロックDB21eを動き補償のブロックとして、インター予測処理(動き推定処理、動き補償処理)を実行する。そして、
図4を用いて説明したのと同様に、動画像符号化装置1000では、無効領域に相当する予測誤差信号diff1を強制的に「0」とすることで、無効領域についての符号量の発生を抑制する。
【0204】
≪
図12の場合≫
マクロブロックMB3についての符号化コスト計算を行った結果、ブロックを8×8のブロックにしたときのインター予測処理の符号化コストが最小であった場合、符号化モード判定部15は、動き補償のブロックサイズを8×8に設定し、インター予測部11に、動き補償のブロックサイズを8×8として、インター予測処理を実行させるように制御信号ctl1を生成する。
図12に、分割ブロックを8×8のブロックにしたときのインター予測処理の符号化コストが最小であった場合を説明するための図を示す。
【0205】
インター予測部11は、制御信号ctl1に基づいて、動き補償のブロックサイズを8×8として、インター予測処理を実行する。
【0206】
インター予測部11は、
図12に示す分割ブロックDB11、DB12、および、DB22については、動き補償のブロックサイズを8×8として、それぞれ、動きベクトルの探索処理を実行し、動きベクトルMV11、MV12、および、MV22を取得する。なお、動きベクトルの探索処理については、上記で説明した処理と同様である。
【0207】
インター予測部11は、
図12に示す、無効領域のみを含む分割ブロックDB21に対しては、
図5を用いて説明したのと同様に、分割ブロックDB21の周辺から算出される予測動きベクトルを、分割ブロックDB21の動きベクトルに設定するよう指示する制御信号ctl1を生成し、インター予測部11に出力する。
【0208】
インター予測部11は、制御信号ctl1に従い、動きベクトル処理部16から、分割ブロックDB21の周辺のブロックから取得された予測動きベクトルpmv21を取得する。例えば、分割ブロックDB21の周辺のブロックおよび取得された動きベクトルが
図12の左図に示す場合、動きベクトル処理部16は、H.264規格の規定通り、pmv21を、
pmv21=median(MV11,MV12,MV20)
median():要素のメディアン値をとる関数
mv11:ブロックDB11の動きベクトル
mv12:ブロックDB12の動きベクトル
mv20:ブロックDB20の動きベクトル
により、取得する。
【0209】
そして、インター予測部11は、上記により取得された予測動きベクトルを、そのまま、分割ブロックDB21の動きベクトルMV21eとして採用する。これにより、分割ブロックDB21についての動きベクトル探索処理は省略される。
【0210】
そして、インター予測部11は、上記のように取得した動きベクトルpmv21を、分割ブロックDB21の動きベクトルとして、動きベクトル処理部16に出力する。
【0211】
動きベクトル処理部16は、分割ブロックDB21の予測動きベクトルpmv21と、インター予測部11から入力された動きベクトルMV21との差分をとり、動きベクトル差分信号diff_MVを取得し、第2ゼロ設定部17に出力する。なお、予測動きベクトルpmv21と動きベクトルMV21とは同じなので、信号値が「0」である動きベクトル差分信号diff_MVが、動きベクトル処理部16から第2ゼロ設定部17に出力されることになる。そして、第2ゼロ設定部17は、入力された動きベクトル差分信号diff_MVを、そのまま、動きベクトル差分信号diff1_MVとして、可変長符号化部6に出力する。
【0212】
可変長符号化部6では、分割ブロックDB21に対応する動きベクトル差分信号diff1_MVに対して可変長符号化処理を行う。なお、分割ブロックDB21に対応する動きベクトル差分信号diff1_MVは、上記の通り、信号値が「0」となるので、可変長符号化処理後の分割ブロックDB21に相当する動画像符号化信号は、その発生符号量が抑制されたものとなる。
【0213】
以上のように、動画像符号化装置1000では、処理対象のマクロブロック内に無効領域がある場合、無効領域に相当する予測誤差信号の信号値を強制的に「0」にすることで、無効領域による不要な符号量の発生を抑制する。また、動画像符号化装置1000では、無効領域に相当する領域の動きベクトルを、周辺のブロックを用いて予測した予測動きベクトルとして、差分ベクトル信号を取得するので、無効領域についての動きベクトルを符号化する場合に、不要な符号量が発生することを適切に防止することができる。
【0214】
また、また、動画像符号化装置1000では、無効領域に相当する領域の動きベクトルを、周辺のブロックを用いて予測した予測動きベクトルとして、差分ベクトル信号を取得するので、動きベクトル探索処理を実行する必要がない。
【0215】
≪変形例≫
次に、第1実施形態の変形例について、説明する。
【0216】
本変形例では、無効領域の画素の画素値が全て同一値である場合についての動画像符号化装置1000の処理について説明する。
【0217】
本変形例では、動画像符号化装置1000に、
図13に示す画像を表示する動画像信号Dinが入力される場合について、以下、説明する。
図13において、領域AR1および領域AR3が、無効領域(映像無効領域)であり、かつ、全ての画素の画素値が同一である領域であり、領域AR2が有効領域(映像有効領域)である。
【0218】
まず、本変形例において、無効領域AR1の左上端に位置するマクロブロックMB0に対してイントラ予測処理が実行される場合について、説明する。
【0219】
図14は、無効領域AR1の左上端に位置するマクロブロックMB0を示す図である。
【0220】
マクロブロックMB0は、無効領域AR1の左上端に位置するマクロブロックであるので、イントラ予測を実行する場合に、所定の値による画素値を用いて、イントラ予測処理が実行される。例えば、予測モード0である場合、
図14に示すように、マクロブロックMB0の各列の画素値は、所定の値D1(例えば、「128」)に設定される。そして、本変形例における無効領域の画素値をD2とすると、イントラ予測部12は、マクロブロックMB0の全ての画素値がD1となるイントラ予測信号を取得する。イントラ予測部12は、取得したイントラ予測信号(信号値:D1)を符号化モード判定部15に出力する。
【0221】
符号化モード判定部15は、予測信号Dpとして、イントラ予測信号(信号値:D1)を減算器1に出力する。
【0222】
減算器1は、マクロブロックMB0に相当する動画像信号Din(信号値:D2)から、イントラ予測信号(信号値:D1)を減算することで予測誤差信号diff(信号値:D2−D1)を取得し、第1ゼロ設定部2に出力し、第1ゼロ設定部2は、入力された予測誤差信号diffを、そのまま、予測誤差信号diff1として出力する。そして、予測誤差信号diff1に対して、直交変換部4以降の処理が、上記と同様に実行される。
【0223】
つまり、本変形例では、上記実施形態と異なり、画像の左上端にあるマクロブロックMB0に対してイントラ予測処理が実行された場合、無効領域に相当する予測誤差信号diff1を強制的に「0」にしない。
【0224】
なお、
図13に示すように、有効領域から無効領域に変わる最初のマクロブロックMBnにおいても、マクロブロックMB0についての上記処理と同様に、予測誤差信号diff1を強制的に「0」にしない。
【0225】
これは、デコード処理において、無効領域の全ての画素の画素値D2を再現させるためである。
【0226】
なお、映像信号の有効領域が開始される位置(
図13の左上端に相当する位置)のマクロブロックおよび有効領域から無効領域に移る最初の位置にあるマクロブロック(例えば、
図13のマクロブロックMBn)以外の領域に対しては、上記実施形態と同様に、無効領域に相当する予測誤差信号diff1の信号値を強制的に「0」にする。
【0227】
以上により、動画像符号化装置1000では、無効領域の画素の画素値が全て同一値である場合についても、無効領域において無駄な符号量の発生を適切に抑制することができる。
【0228】
なお、本変形例では、無効領域の画素の画素値が全て同じであるため、量子化処理により、量子化誤差が発生する場合、デコード処理後の信号において、もとの画素値が再現されない可能性がある。この場合、例えば、量子化部5に、ルックアップテーブルを設け、もとの画素値が必ず再現されるように量子化ステップ値(あるいは量子化パラメータ値)を、無効領域の画素の画素値に応じて決定するようにしてもよい。
【0229】
次に、本変形例において、無効領域AR1の左上端に位置するマクロブロックMB0に対してインター予測処理が実行される場合について、説明する。
【0230】
この場合、動画像符号化装置1000は、無効領域に含まれる分割ブロックの動きベクトルを「0」にする。これにより、参照画像における同一座標位置の分割ブロック(同一の画素値である画素からなる無効領域内の分割ブロック)が参照されるため、予測誤差信号diff1の信号値が「0」となる。したがって、動画像符号化装置1000では、無効領域の画素の画素値が全て同一値である場合についても、無効領域において無駄な符号量の発生を適切に抑制することができる。
【0231】
[他の実施形態]
上記実施形態(変形例を含む)で示した、符号化コストを算出するための構成、および、符号化コストを算出するための処理方法は、一例であり、これに限定されない。既に開発されている多様な符号化コスト算出方法や構成を、上記実施形態の動画像符号化装置に適用するようにしてもよい。
【0232】
なお、上記実施形態では、マクロブロックのサイズが16×16の場合について、説明したが、これに限定されることはなく、マクロブロックのサイズは、他のサイズであってもよい。
【0233】
また、上記実施形態の動画像符号化装置の一部または全部は、集積回路(例えば、LSI、システムLSI等)として実現されるものであってもよい。
【0234】
上記実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置(CPU)により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ROMなどの記憶装置に格納されており、ROMにおいて、あるいはRAMに読み出されて実行される。
【0235】
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係る動画像符号化装置をハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
【0236】
また、上記実施形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【0237】
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、大容量DVD、次世代DVD、半導体メモリを挙げることができる。
【0238】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【0239】
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。