(57)【要約】【課題】効率的に動き補償画素を生成する動き補償装置を提供する。【解決手段】動き補償装置１００は、動き補償予測を行うための１／２小数精度画素データを生成する高次タップフィルタ部１０６と、生成された１／２小数精度画素データを格納するための中間画素格納用メモリ１０５と、高次タップフィルタ部１０６の処理で必要とする画素領域を判定する必要画素判定部１０２と、参照画素データの転送を制御するデータ転送制御部１０３とを備え、高次タップフィルタ部１０６は、中間画素格納用メモリ１０５から入力された１／２小数精度画素データに対して、所定の方向と直交する方向に連続的なフィルタ演算を実行し、１／２小数精度画素データを生成し、データ転送制御部１０３は、必要画素判定部１０２で必要と判定された画素領域の参照画素データのみを高次タップフィルタ部１０６へ転送する。【選択図】図５
2011101424.tif 000002
【特許請求の範囲】
【請求項１】
動画像を構成するピクチャ間で小数画素精度の動き補償予測を行う動き補償装置であって、
転送されるブロック単位の参照画素データに対して、所定の方向に連続的なフィルタ演算を実行し、動き補償予測を行うための１／２小数精度画素データを生成する高次タップフィルタ手段と、
前記高次タップフィルタ手段により生成された１／２小数精度画素データを格納するための中間出力画素記憶手段と、
動き補償画素位置に基づいて、前記高次タップフィルタ手段の処理で必要とする画素領域を判定する必要画素判定手段と、
前記参照画素データの転送を制御するデータ転送制御手段とを備え、
前記高次タップフィルタ手段は、前記中間出力画素記憶手段から入力された１／２小数精度画素データに対して、前記所定の方向と直交する方向に連続的なフィルタ演算を実行し、１／２小数精度画素データを生成し、
前記データ転送制御手段は、前記必要画素判定手段で必要と判定された画素領域の参照画素データのみを前記高次タップフィルタ手段へ転送する
ことを特徴とする動き補償装置。
【請求項２】
前記高次タップフィルタ手段は、
前記参照画素データに対して、高次タップフィルタ処理に必要な参照画素データを順次格納する第１の遅延手段と、
前記第１の遅延手段に格納される参照画素データを用いて、所定の方向に連続的なフィルタ演算を処理対象ブロックの段数分実行し、１／２小数精度画素データを生成する第１の高次タップフィルタ部と、
前記中間出力画素記憶手段から入力された１／２小数精度画素データを順次格納する第２の遅延手段と、
前記参照画素データまたは前記第２の遅延手段から入力された１／２小数精度画素データに対して、前記第１の高次タップフィルタ部での演算処理方向と直交する方向に連続的なフィルタ演算を処理対象ブロックの段数分実行し、１／２小数精度画素データを生成する第２の高次タップフィルタ部とを備える
ことを特徴とする請求項１記載の動き補償装置。
【請求項３】
前記動き補償装置は、さらに、
前記データ転送制御手段の制御に基づいて、前記参照画素データまたは前記中間出力画素記憶手段から入力された１／２小数精度画素データのいずれかを選択し、選択したデータを前記高次タップフィルタ手段へ出力する第１の画素選択手段を備える
ことを特徴とする請求項２記載の動き補償装置。
【請求項４】
前記データ転送制御手段は、処理対象ブロックを所定数のサブブロックに分割し、前記サブブロック単位に前記処理対象ブロックの参照画素データを前記高次タップフィルタ手段へ転送する
ことを特徴とする請求項３記載の動き補償装置。
【請求項５】
前記中間出力画素記憶手段は、さらに前記高次タップフィルタ手段に用いられる参照画素データを格納する
ことを特徴とする請求項１記載の動き補償装置。
【請求項６】
前記必要画素判定手段は、
動き補償画素位置が水平方向のみに補間する画素位置の場合には、水平方向のフィルタをかけるのに必要な水平動き補償位置必要データを判定し、
動き補償画素位置が垂直方向のみに補間する画素位置の場合には、垂直方向のフィルタをかけるのに必要な垂直動き補償位置必要データを判定し、
動き補償画素位置が整数画素精度の画素位置の場合には、処理対象ブロックの画素を必要データと判定する
ことを特徴とする請求項１記載の動き補償装置。
【請求項７】
前記第１の高次タップフィルタ部および前記第２の高次タップフィルタ部は、共通の演算資源を用いて構成され、前記１／２小数精度画素データが有するビット精度に対応する
ことを特徴とする請求項２記載の動き補償装置。
【請求項８】
前記第１の高次タップフィルタ部は、単数または複数の同時並列フィルタ処理を行い、
前記第２の高次タップフィルタ部は、単数または複数の同時並列フィルタ処理を行い、
当該動き補償装置に入力されるデータのバス幅が前記第１の高次タップフィルタ部での同時並列処理画素数と前記第２の高次タップフィルタ部での同時処理画素数との和以上となる
ことを特徴とする請求項２記載の動き補償装置。
【請求項９】
前記第２の高次タップフィルタ部は、前記１／２小数精度画素データが有するビット精度に対応する
ことを特徴とする請求項２記載の動き補償装置。
【請求項１０】
前記中間出力画素記憶手段は、前記第１の高次タップフィルタ部により生成された１／２小数精度画素データと併せて、前記参照画素データも格納するとともに、データの読み出しと書き込みの処理を同時に実行し、
前記第２の高次タップフィルタ部は、前記中間出力画素記憶手段から入力された前記参照画素データおよび前記１／２小数精度画素データに対して、フィルタ演算を実行し、
前記第１の高次タップフィルタ部の動作と前記第２の高次タップフィルタ部の動作をパイプライン式に実行する
ことを特徴とする請求項２記載の動き補償装置。
【請求項１１】
小数画素精度の動き補償予測を行って動画像を復号化する画面間予測復号化装置であって、
請求項１〜１０のいずれか１項に記載の動き補償装置と、
前記動き補償装置により動き補償予測された画素データに基づいて、動画像の画素データを復号化する復号化手段と
を備えることを特徴とする画面間予測復号化装置。
【請求項１２】
動画像を構成するピクチャ間で小数画素精度の動き補償予測を行う動き補償方法であって、
高次タップフィルタ手段が、転送されるブロック単位の参照画素データに対して、所定の方向に連続的なフィルタ演算を実行し、１／２小数精度画素データを生成する高次タップフィルタステップと、
前記高次タップフィルタ手段により生成された１／２小数精度画素データを中間出力画素記憶手段へ格納する中間出力画素記憶ステップと、
動き補償画素位置に基づいて、前記高次タップフィルタ手段の処理で必要とする画素領域を判定する必要画素判定ステップと、
前記参照画素データの転送を制御するデータ転送制御ステップとを含み、
前記高次タップフィルタステップでは、前記中間出力画素記憶手段から入力された１／２小数精度画素データに対して、前記所定の方向と直交する方向に連続的なフィルタ演算を実行し、１／２小数精度画素データを生成し、
前記データ転送制御ステップでは、前記必要画素判定ステップで必要と判定された画素領域の参照画素データのみを前記高次タップフィルタ手段へ転送する
ことを特徴とする動き補償方法。
【請求項１３】
動画像を構成するピクチャ間で小数画素精度の動き補償予測を行うための集積回路であって、
転送されるブロック単位の参照画素データに対して、所定の方向に連続的なフィルタ演算を実行し、動き補償予測を行うための１／２小数精度画素データを生成する高次タップフィルタ手段と、
前記高次タップフィルタ手段により生成された１／２小数精度画素データを格納するための中間出力画素記憶手段と、
動き補償画素位置に基づいて、前記高次タップフィルタ手段の処理で必要とする画素領域を判定する必要画素判定手段と、
前記参照画素データの転送を制御するデータ転送制御手段とを備え、
前記高次タップフィルタ手段は、前記中間出力画素記憶手段から入力された１／２小数精度画素データに対して、前記所定の方向と直交する方向に連続的なフィルタ演算を実行し、１／２小数精度画素データを生成し、
前記データ転送制御手段は、前記必要画素判定手段で必要と判定された画素領域の参照画素データのみを前記高次タップフィルタ手段へ転送する
ことを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ピクチャ間で小数画素精度の動き補償予測を行う動き補償装置に関し、特に高次タップのフィルタを用いて動き補償画像生成する動き補償装置に関する。
【背景技術】
【０００２】
近年、マルチメディアアプリケーションの発展に伴い、画像・音声・テキストなど、あらゆるメディアの情報を統一的に扱うことが一般的になってきた。この時、全てのメディアをディジタル化することにより、統一的にメディアを扱うことが可能になる。しかしながら、ディジタル化された画像は膨大なデータ量を持つため、蓄積・伝送のためには、画像の情報圧縮技術が不可欠である。一方で、圧縮した画像データを相互運用するためには、圧縮技術の標準化も重要である。画像圧縮技術の標準規格としては、ＩＴＵ−Ｔ（国際電気通信連合  電気通信標準化部門）のＨ．６２１、Ｈ．２６３、ＩＳＯ／ＩＥＣ（国際標準化機構  国際電気標準会議）のＭＰＥＧ（Ｍｏｖｉｎｇ Ｐｉｃｔｕｒｅ Ｅｘｐｅｒｔｓ Ｇｒｏｕｐ）−１、ＭＰＥＧ−２、ＭＰＥＧ−４など、またＩＴＵ−ＴとＭＰＥＧの合同であるＪＶＴ(Ｊｏｉｎｔ Ｖｉｄｅｏ Ｔｅａｍ)により現在標準化中のＨ.２６４(ＭＰＥＧ−４ＡＶＣ)がある。
【０００３】
一般に動画像の符号化では、時間方向および空間方向の冗長性を削減することによって情報量の圧縮を行う。そこで時間的な冗長性の削減を目的とする画面間予測符号化では、前方または後方のピクチャを参照してブロック単位で動きの検出および予測画像の作成を行い、得られた予測画像と符号化対象ピクチャとの差分値に対して符号化を行う。ここで、ピクチャとは１枚の画面を表す用語であり、プログレッシブ画像ではフレームを意味し、インタレース画像ではフレームもしくはフィールドを意味する。ここで、インタレース画像とは、１つのフレームが時刻の異なる２つのフィールドから構成される画像である。インタレース画像の符号化や復号化処理においては、１つのフレームをフレームのまま処理したり、２つのフィールドとして処理したり、フレーム内のブロック毎にフレーム構造またはフィールド構造として処理したりすることができる。
【０００４】
参照画像を持たず画面内予測符号化を行うものをＩピクチャと呼ぶ。また、１枚の参照画像のみを参照し画面間予測符号化を行うものをＰピクチャと呼ぶ。また、同時に２枚の参照画像を参照して画面間予測符号化を行うことのできるものをＢピクチャと呼ぶ。Ｂピクチャは表示時間が前方もしくは後方から任意の組み合わせとして２枚のピクチャを参照することが可能である。参照画像（参照ピクチャ）は符号化の基本単位であるマクロブロックごとに指定することができるが、符号化を行ったビットストリーム中に先に記述される方の参照ピクチャを第１参照ピクチャ、後に記述される方を第２参照ピクチャとして区別する。ただし、これらのピクチャを符号化する場合の条件として、参照するピクチャが既に符号化されている必要がある。
【０００５】
Ｐピクチャ又はＢピクチャの符号化には、動き補償画面間予測符号化が用いられている。動き補償画面間予測符号化とは、画面間予測符号化に動き補償を適用した符号化方式である。動き補償とは、単純に参照ピクチャの画素値から予測するのではなく、ピクチャ内の各部の動き量（以下、これを動きベクトルと呼ぶ）を検出し、当該動き量を考慮した予測を行うことにより予測精度を向上すると共に、データ量を減らす方式である。例えば、符号化対象ピクチャの動きベクトルを検出し、その動きベクトルの分だけシフトした予測値と符号化対象ピクチャとの予測残差を符号化することによりデータ量を減している。この方式の場合には、復号化の際に動きベクトルの情報が必要になるため、動きベクトルも符号化されて記録又は伝送される。
【０００６】
動きベクトルはマクロブロック単位で検出されており、具体的には、符号化対象ピクチャ側のマクロブロックを固定しておき、参照ピクチャ側のマクロブロックを探索範囲内で移動させ、符号化対象ブロックと最も似通った参照ブロックの位置を見つけることにより、動きベクトルが検出される。
【０００７】
図１は従来の画面間予測符号化装置の構成を示すブロック図である。
この画面間予測符号化装置は、動き検出部４０１、マルチフレームメモリ４０２、減算部４０３、減算部４０４、動き補償部４０５、符号化部４０６、加算部４０７、動きベクトルメモリ４０８、および動きベクトル予測部４０９を備えている。
【０００８】
動き検出部４０１は、マルチフレームメモリ４０２から出力される動き検出参照画素MEpelと画面信号Vinとを比較し、動きベクトルMVと参照ピクチャ番号RefNoを出力する。参照ピクチャ番号RefNoは、複数の参照画像の中から選択された、対象画像で参照する参照画像を特定する識別信号である。動きベクトルMVは、動きベクトルメモリ４０８に一時的に記憶されたのち近傍動きベクトルPrevMVとして動きベクトル予測部４０９へ出力される。動きベクトル予測部４０９は、入力された近傍動きベクトルPrevMVを参照して予測動きベクトルPredMVを予測する。減算部４０４は動きベクトルMVから予測動きベクトルPredMVを減算し、その差を動きベクトル予測差分DifMVとして出力する。
【０００９】
一方、マルチフレームメモリ４０２は、参照ピクチャ番号RefNoおよび動きベクトルMVで示される画素を動き補償参照画素MCpe11として出力する。動き補償部４０５は、小数画素精度の参照画素を生成し、参照画面画素MCpe12として出力する。減算部４０３は、画面信号Vinから参照画面画素MCpe12を減算し、画面予測誤差DifPelを出力する。
【００１０】
符号化部４０６は、画面予測誤差DifPelと動きベクトル予測差分DifMVと参照ピクチャ番号RefNoを可変長符号化し、符号化信号Strを出力する。なお、符号化時に画面予測誤差の復号化結果である復号画面予測誤差RecDifPelも同時に出力する。復号画面予測誤差RecDifPelは、画面予測誤差DifPelに符号化誤差が重畳されたものであり、画面間予測復号化装置で符号化信号Strを復号化して得られる画面間予測誤差と一致する。
【００１１】
加算部４０７は、参照画面画素MCpe12に復号画面予測誤差RecDifPelを加算し、復号画面RecPelとしてマルチフレームメモリ４０２に記憶される。但し、マルチフレームメモリ４０２の容量を有効に利用するため、マルチフレームメモリ４０２に記憶されている画面の領域は不要な場合は開放され、またマルチフレームメモリ４０２に記憶する必要が無い画面の復号画面RecPelはマルチフレームメモリ４０２に記憶されない。なお、符号化の処理は１６×１６画素のマクロブロックと呼ばれる単位で行われ、動き補償のブロックのサイズとしては、Ｈ．２６４では、４×４、４×８、８×４、８×８、８×１６、１６×８、１６×１６の７通りの動き補償のブロックサイズの中からマクロブロック単位で適切なブロックサイズを選択して符号化に使用する。
【００１２】
図２は従来の画面間予測復号化装置の構成を示すブロック図である。なお、同図において、図１に示す画面間予測符号化装置と同様の部分については同じ符号を付し、その説明を省略する。
【００１３】
図２に示す従来の画面間予測復号化装置は、図１に示す従来の画面間予測符号化装置で符号化された符号化信号Strを復号化して復号画面信号Voutを出力する装置であり、マルチフレームメモリ４０２、動き補償部４０５、加算部４０７、加算部５０１、動きベクトルメモリ４０８、動きベクトル予測部４０９、および復号化部５０２を備えている。
【００１４】
復号化部５０２は、符号化信号Strを復号化し、復号画面予測誤差RecDifPel、動きベクトル予測差分DifMV、および参照ピクチャ番号RefNoを出力する。加算部５０１は、動きベクトル予測部４０９から出力される予測動きベクトルPredMVと動きベクトル予測差分DifMVを加算し、動きベクトルMVを復号する。
【００１５】
マルチフレームメモリ４０２は、参照ピクチャ番号RefNoおよび動きベクトルMVで示される画素を動き補償参照画素MCpel1として出力する。動き補償部４０５は、小数画素精度の参照画素を生成し、参照画面画素MCpel2として出力する。加算部４０７は、参照画面画素MCpel2に復号画面予測誤差RecDifPelを加算し、復号画面RecPelとしてマルチフレームメモリ４０２へ記憶する。但し、マルチフレームメモリ４０２の容量を有効に利用するため、マルチフレームメモリ４０２に記憶されている画面の領域は不要な場合は開放され、またマルチフレームメモリ４０２に記憶する必要が無い画面の復号画面RecPelはマルチフレームメモリ４０２に記憶されない。以上のようにして、復号画面信号Vout、すなわち復号画面RecPelを符号化信号Strから正しく復号化することができる。
【００１６】
ところで、Ｈ．２６４規格では１／４画素までの単位で動き補償を行うことが許可されている(MPEG-4 Simple Profileでは１／２画素まで)。この際、Ｈ．２６４規格ではその線形フィルタ画素補間の方法として６タップフィルタが採用されており、１／２精度画素を周辺の６画素から求めることが決められている。この６タップフィルタによる画素補間の方法について、図３を用いて説明する。
【００１７】
図３はＨ．２６４における輝度成分の画素補間方法を説明するための概略図である。画素Ｆ００、Ｆ０１、Ｆ０２、Ｆ０３、Ｆ０４、Ｆ０５、Ｆ１０、Ｆ１１、Ｆ１２、Ｆ１３、Ｆ１４、Ｆ１５、Ｆ２０、Ｆ２１、Ｆ２２、Ｆ２３、Ｆ２４、Ｆ２５、Ｆ３０、Ｆ３１、Ｆ３２、Ｆ３３、Ｆ３４、Ｆ３５、Ｆ４０、Ｆ４１、Ｆ４２、Ｆ４３、Ｆ４４、Ｆ４５、Ｆ５０、Ｆ５１、Ｆ５２、Ｆ５３、Ｆ５４、及びＦ５５は整数画素位置の画素であり、斜線をつけた四角形で表している。ここで、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、Ｍ、Ｎ、Ｐ、Ｑ、Ｒ、Ｓ、Ｔ、及びＵは、それぞれの位置及びその画素値を表している。また、小数画素位置の画素に関しては、白抜きの四角で表している。画素ａａ、ｂｂ、ｃｃ、ｄｄ、ｅｅ、ｆｆ、ｇｇ、及びｈｈは６タップフィルタの係数を乗算したビットシフト前の中間計算画素値及びその位置を示している。ａ、ｂ、ｃ、ｄ、ｅ、ｆ、ｇ、ｈ、ｉ、ｊ、ｋ、ｍ、ｎ、ｐ、ｑ、ｒ、及びｓは各小数画素位置における６タップフィルタと線形補間を行った画素値及びその位置を表している。以下、ａ、ｂ、ｃ、ｄ、ｅ、ｆ、ｇ、ｈ、ｉ、ｊ、ｋ、ｎ、ｐ、ｑ、及びｒの各小数画素位置の画素値計算方法を説明する。ここで、ｂ１、ｈ１、ｓ１、ｍ１はそれぞれｂ、ｈ、ｓ、ｍの画素値を求めるための６タップフィルタ係数を乗算したビットシフト前の中間計算画素値を表す。
【００１８】
１／２精度画素ｂの画素値を計算する場合、水平方向の周辺の整数精度画素Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊの６画素を用いて式１で表す６タップフィルタを実行することで中間計算画素値ｂ１を求める。次に、式２で表すビットシフトにより整数精度の四捨五入付きの割り算処理と、画素レベルを有効範囲に収めるためのまるめ処理を行い、水平方向に１／２精度画素移動した位置ｂの画素値が求められる。
ｂ１＝（Ｅ−５×Ｆ＋２０×Ｇ＋２０×Ｈ−５×Ｉ＋Ｊ）          …（１）
ｂ＝Ｃｌｉｐ（（ｂ１＋１６）＞＞５）                          …（２）
【００１９】
ここで、Ｃｌｉｐ関数は丸め処理を表しており、０以下の値は０に補正し、２５５以上の値は２５５に補正することで出力結果が０から２５５の値に制限する関数である。以下、Ｃｌｉｐ関数の処理は簡単に丸め処理と記載する。
【００２０】
また、１／２精度画素ｈの画素値を計算する場合、垂直方向の周辺の整数精度画素Ａ、Ｃ、Ｇ、Ｍ、Ｒ、Ｔの６画素を用いて式３で表す６タップフィルタを実行することで同様に中間計算画素値ｈ１を求め、次に式４で表すビットシフトと丸め処理を行い垂直方向に移動した１／２精度の画素位置ｈの画素値が求められる。
ｈ１＝（Ａ−５×Ｃ＋２０×Ｇ＋２０×Ｍ−５×Ｒ＋Ｔ）          …（３）
ｈ＝Ｃｌｉｐ（（ｈ１＋１６）＞＞５）                          …（４）
【００２１】
また、１／２精度画素ｊの画素値を計算する場合は、中間計算画素値ｂ１と同様に計算した中間計算画素値ｓ１、ａａ、ｂｂ、ｇｇ、ｈｈの６画素を用いて式５で表すタップフィルタを実行する、または中間計算画素値ｈ１と同様に計算したｍ１、ｃｃ、ｄｄ、ｅｅ、ｆｆの６画素を用いて式６で表す６タップフィルタを実行することで中間計算画素値ｊ１を求める。次に、式７で表すビットシフトと丸め処理を行い水平・垂直それぞれの方向に移動した１／２精度の画素位置の画素値ｊが求められる。ここで、画素値ｊの値を少しでもまるめ誤差をなくすよう、中間計算画素値ｊ１の途中計算ではビットシフト前の中間計算画素値ｍ１、ｓ１、ａａ、ｂｂ、ｃｃ、ｄｄ、ｅｅ、ｆｆ、ｇｇ、ｈｈを用いて算出する。
ｊ１＝ｃｃ−５×ｄｄ＋２０×ｈ１＋２０×ｍ１−５×ｅｅ＋ｆｆ  …（５）
ｊ１＝ａａ−５×ｂｂ＋２０×ｂ１＋２０×ｓ１−５×ｇｇ＋ｈｈ  …（６）
ｊ＝Ｃｌｉｐ（（ｊ１＋５１２）＞＞１０）                      …（７）
【００２２】
また、１／２精度画素ｓ、ｍの画素値はそれぞれ１／２精度画素ｂ、ｈと同様に式８、式９のビットシフトと丸め処理で求めることができる。
ｓ＝Ｃｌｉｐ（（ｓ１＋１６）＞＞５）                          …（８）
ｍ＝Ｃｌｉｐ（（ｍ１＋１６）＞＞５）                          …（９）
【００２３】
最後に、整数精度画素Ｇ、Ｈ、Ｍ、Ｎ、式２、式４、式７、式８、及び式９から小数点以下四捨五入を行った画素値を計算することで、１／４精度画素ａ、ｃ、ｄ、ｎ、ｆ、ｉ、ｋ、ｑ、ｅ、ｇ、ｐ、及びｒの値を計算する（式１０〜式２１）。
【００２４】
ａ＝（Ｇ＋ｂ＋１）＞＞１                                      …（１０）
ｃ＝（Ｈ＋ｂ＋１）＞＞１                                      …（１１）
ｄ＝（Ｇ＋ｈ＋１）＞＞１                                      …（１２）
ｎ＝（Ｍ＋ｈ＋１）＞＞１                                      …（１３）
ｆ＝（ｂ＋ｊ＋１）＞＞１                                      …（１４）
ｉ＝（ｈ＋ｊ＋１）＞＞１                                      …（１５）
ｋ＝（ｊ＋ｍ＋１）＞＞１                                      …（１６）
ｑ＝（ｊ＋ｓ＋１）＞＞１                                      …（１７）
ｅ＝（ｂ＋ｈ＋１）＞＞１                                      …（１８）
ｇ＝（ｂ＋ｍ＋１）＞＞１                                      …（１９）
ｐ＝（ｈ＋ｓ＋１）＞＞１                                      …（２０）
ｒ＝（ｍ＋ｓ＋１）＞＞１                                      …（２１）
【００２５】
図４は、以上の動き補償画素生成を行う動き補償部４０５を、従来技術で構成した場合の構成を示す回路図である。動き補償部４０５は、図１の画面間予測符号化装置及び図２の画面間予測復号化装置で説明したものと同一のものであり、動き補償部４０５には、マルチフレームメモリ４０２から動き補償参照画素ＭＣｐｅｌ１が入力される。また、マルチフレームメモリ４０２は、図１の画面間予測符号化装置及び図２の画面間予測復号化装置で説明したものと同じものであるので説明を省略する。
【００２６】
動き補償部４０５は、遅延回路５０１と、高次タップフィルタ部５０２、信号選択及び加算を行うセレクタ加算器５１７、およびビットシフト５１８を備えている。
【００２７】
遅延回路５０１は、マルチフレームメモリ４０２から得られる動き補償参照画素ＭＣｐｅｌを取得し、タイミングを遅延させながら画素データの保持及び出力を行う。高次タップフィルタ部５０２は、遅延回路５０１からの出力画素データを受け取り６タップフィルタ、ビットシフト及び丸め処理を行い、その結果を出力する。セレクタ加算器５１７は、遅延回路５０１および高次タップフィルタ部５０２から入力された画素値を動き補償画素位置に従って選択し、必要であれば加算を行い出力する。ビットシフト５１８は、セレクタ加算器５１７からの出力結果を動き補償画素位置に従って必要であればビットシフトし、必要がなければそのままの値を参照画面画素ＭＣｐｅｌ２として出力する。
【００２８】
遅延回路５０１は、横６画素を同時に取得し６段の遅延を行う。遅延回路５０１の構成バッファにおいて、バッファＢＡ、バッファＢＢ、バッファＢＣ、バッファＢＤ、バッファＢＥ、バッファＢＦ、バッファＢＧ、バッファＢＨ、バッファＢＩ、バッファＢＪ、バッファＢＫ、バッファＢＬ、バッファＢＭ、バッファＢＮ、バッファＢＰ、バッファＢＱ、バッファＢＲ、バッファＢＳ、バッファＢＴ、及びバッファＢＵは、それぞれ図３の画素補間方法の概略図に示す整数画素位置Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、Ｍ、Ｎ、Ｐ、Ｑ、Ｒ、Ｓ、Ｔ、及びＵの画素データが蓄えられる。
【００２９】
高次タップフィルタ部５０２は、複数の６タップフィルタ５０３〜５１１と、小数点以下の四捨五入と丸め処理を併せて行うための複数のビットシフト５１２〜５１６を備えている。６タップフィルタ５０３、６タップフィルタ５０４、６タップフィルタ５０５、６タップフィルタ５０６、６タップフィルタ５０７、６タップフィルタ５０８、６タップフィルタ５０９、及び６タップフィルタ５１０は、遅延回路５０１からの出力信号を受け取り、係数の乗算と加算を行い、それぞれ中間計算画素値Ｓａａ、Ｓｂｂ、Ｓｂ１、Ｓｓ１、Ｓｇｇ、Ｓｈｈ、Ｓｍ１、Ｓｈ１を出力する。この時、中間計算画素値Ｓｂ１、Ｓｈ１はそれぞれ式１、式３の計算による値になっており、その他の中間計算画素値Ｓａａ、Ｓｂｂ、Ｓｓ１、Ｓｇｇ、Ｓｈｈ、及びＳｍ１の値も式１、式３同様の６タップフィルタの出力値であり、図３の画素補間方法の概略図に示すａａ、ｂｂ、ｓ１、ｇｇ、ｈｈ、及びｍ１に相当する。
【００３０】
６タップフィルタ５１１は、水平方向の６タップフィルタ結果の出力値Ｓａａ、Ｓｂｂ、Ｓｂ１、Ｓｓ１、Ｓｇｇ、Ｓｈｈ、Ｓｍ１、Ｓｈ１を入力とし、Ｓｊ１を式６で示した垂直方向の６タップフィルタ結果として出力する。ビットシフト５１２、ビットシフト５１３、ビットシフト５１４、ビットシフト５１５、及びビットシフト５１６は、それぞれ、Ｓｓ１、Ｓｊ１、Ｓｂ１、Ｓｍ１、及びＳｈ１を入力とし、それぞれ式８、式７、式２、式９、及び式４で示した小数点以下四捨五入を行うビットシフトと丸め処理を行い、それぞれＳｓ、Ｓｊ、Ｓｂ、Ｓｍ、及びＳｈとして出力する。
【００３１】
セレクタ加算器５１７とビットシフト５１８は、遅延回路５０１からのバッファ値であるＳＮ、ＳＭ、ＳＨ、及びＳＧと、高次タップフィルタ部５０２からの出力値であるＳｂ、Ｓｓ、Ｓｍ、Ｓｈ、及びＳｊとを入力とし、動き補償画素位置に従って、必要であれば式１０から式２１の四捨五入付き平均値計算を行い、小数精度の動き補償画素ＭＣｐｅｌ２を出力する。
【００３２】
以上のような構成及び一連の動作を行うことで、動き補償参照画素ＭＣｐｅｌ１から１／４画素精度の動き補償画像を生成し、小数精度の動き補償画像ＭＣｐｅｌ２として出力し、復号画面信号Vout、すなわち復号画面RecPelを符号化信号Strから正しく復号化して出力することができる（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【００３３】
【非特許文献１】“Ｄｒａｆｔ  ＩＴＵ−Ｔ  Ｒｅｃｏｍｅｎｄａｔｉｏｎ  ａｎｄ  Ｆｉｎａｌ  Ｓｔａｎｄａｒｄ  ｏｆ  Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”  ８．４．２．２，Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）  ｏｆ  ＩＳＯ／ＩＥＣ  ＭＰＥＧ  ＆  ＩＴＵ−Ｔ  ＶＣＥＧ，ＪＶＴ−Ｇ０５０ｒ１，２７  Ｍａｙ  ２００３
【発明の概要】
【発明が解決しようとする課題】
【００３４】
しかしながら、Ｈ．２６４規格の輝度信号について、上記のように従来技術で動き補償部を構成した場合、１画素あたりの動き補償画素生成のために、マルチフレームメモリ４０２から参照画素データを読み出すためのバスバンド幅が大きくなってしまうという課題がある。
【００３５】
つまり、例えば前述の図４で示したＨ．２６４規格の動き補償では、水平・垂直で半画素ずつずれた場所の画素を求めるには周辺の３６画素が必要となっているため、６画素のデータ転送を５サイクル繰り返した後、１サイクルにつき１画素分の補償画素が出力されるようになる。１ブロック単位では、上記処理をブロックの列の回数だけ繰り返し６タップフィルタをかける。従って、Ｈ．２６４規格でとり得る最大のブロック形状である１６×１６ブロックを１つ処理する場合と、最小のブロック形状である４×４ブロックを１６個処理する場合の各転送画素数は、それぞれ次の式２２と式２３のように計算することができる。
（１６＋５）×１６×６画素幅×  １ブロック＝２，０１６      …（２２）
（４＋５）  ×  ４×６画素幅×１６ブロック＝３，４５６      …（２３）
【００３６】
一方、高次タップのフィルタを用いない水平２画素・垂直２画素の線形補間程度で生成する動き補償画像の場合は、１６×１６のブロックサイズ及び４×４のブロックサイズの各転送画素数は、次の式２４及び式２５のように計算することができる。
（１６＋１）×１６×２画素幅×  １ブロック＝    ５４４      …（２４）
（４＋１）  ×  ４×２画素幅×１６ブロック＝    ６４０      …（２５）
【００３７】
従って、式２２〜式２５より、Ｈ．２６４規格では、マルチフレームメモリ４０２から１マクロブロック（ＭＢ）あたりに参照画像としての転送される画素転送数は、２画素間の線形補間で生成する場合と比べ、３．７倍から５．４倍となることがわかる。
【００３８】
そこで、本発明は上記のような問題を解決するためになされたものであり、回路規模の増加を抑えつつ、参照画素データを格納したマルチフレームメモリとのデータ転送量を削減し、効率的に動き補償画素を生成する動き補償装置を提供することを目的とする。
【課題を解決するための手段】
【００３９】
上記目的を達成するため、本発明に係る動き補償装置は、動画像を構成するピクチャ間で小数画素精度の動き補償予測を行う動き補償装置であって、転送されるブロック単位の参照画素データに対して、所定の方向に連続的なフィルタ演算を実行し、動き補償予測を行うための１／２小数精度画素データを生成する高次タップフィルタ手段と、前記高次タップフィルタ手段により生成された１／２小数精度画素データを格納するための中間出力画素記憶手段と、動き補償画素位置に基づいて、前記高次タップフィルタ手段の処理で必要とする画素領域を判定する必要画素判定手段と、前記参照画素データの転送を制御するデータ転送制御手段とを備え、前記高次タップフィルタ手段は、前記中間出力画素記憶手段から入力された１／２小数精度画素データに対して、前記所定の方向と直交する方向に連続的なフィルタ演算を実行し、１／２小数精度画素データを生成し、前記データ転送制御手段は、前記必要画素判定手段で必要と判定された画素領域の参照画素データのみを前記高次タップフィルタ手段へ転送することを特徴とする。
【００４０】
また、上記目的を達成するため、本発明に係る動き補償装置は、動画像を構成するピクチャ間で小数画素精度の動き補償予測を行う動き補償装置であって、転送されるブロック単位の参照画素データに対して、所定の方向に連続的なフィルタ演算を実行し、動き補償予測を行うための１／２小数精度画素データを生成する高次タップフィルタ手段と、前記高次タップフィルタ手段により生成された１／２小数精度画素データを格納するための中間出力画素記憶手段とを備え、前記高次タップフィルタ手段は、前記中間出力画素記憶手段から入力された１／２小数精度画素データに対して、前記所定の方向と直交する方向に連続的なフィルタ演算を実行し、１／２小数精度画素データを生成することを特徴とする。
【００４１】
これによって、高次タップのフィルタ処理において、水平方向もしくは垂直方向にまとめて１／２小数精度画素生成フィルタ演算をし、１回目のフィルタ結果を中間出力画素として専用の中間出力画素記憶手段に記憶しておき、１回目の方向と直交する方向の１／２小数精度画素生成のフィルタ演算で中間出力画素を利用することで、例えば参照画素データを格納したマルチフレームメモリから動き補償装置へ転送する参照画素データのデータ量を減少させることができ、効率的に動き補償予測を行うことが可能である。
【００４２】
また、前記動き補償装置は、さらに、前記参照画素データの転送を制御するデータ転送制御手段と、前記データ転送制御手段の制御に基づいて、前記参照画素データまたは前記中間出力画素記憶手段から入力された１／２小数精度画素データのいずれかを選択し、選択したデータを前記高次タップフィルタ手段へ出力する第１の画素選択手段とを備えてもよい。
【００４３】
ここで、前記データ転送制御手段は、処理対象ブロックの水平方向画素数と垂直方向画素数とを比較し、小さい値となる並びの方向に前記処理対象ブロックの参照画素データを前記高次タップフィルタ手段へ転送してもよい。
【００４４】
これによって、中間出力画素記憶手段で必要な画素容量を削減し、２回目の方向のフィルタ処理の転送画素数も減少させることができるので、さらに効率的に動き補償予測を行うことができると共に、実装する面積を削減することが可能である。
【００４５】
また、前記データ転送制御手段は、処理対象ブロックを所定数のサブブロックに分割し、前記サブブロック単位に前記処理対象ブロックの参照画素データを前記高次タップフィルタ手段へ転送してもよい。
【００４６】
これによって、中間出力画素記憶部で必要な容量を削減することができるので、さらに実装面積を削減することが可能である。
【００４７】
また、前記動き補償装置は、さらに、動き補償画素位置に基づいて、前記高次タップフィルタ手段の処理で必要とする画素領域を判定する必要画素判定手段を備え、前記データ転送制御手段は、前記必要画素判定手段で必要と判定された画素領域の参照画素データのみを前記高次タップフィルタ手段へ転送してもよい。
【００４８】
これによって、フィルタ演算で使用する領域かどうかを小数精度の動き補償位置から判断し、フィルタ演算実行時に、選択的にデータ転送を行うことで無駄な転送を削減することができるので、さらに効率的な動き補償予測を行うことが可能である。
【００４９】
また、前記高次タップフィルタ手段は、前記参照画素データに対して、所定の方向に連続的なフィルタ演算を処理対象ブロックの段数分実行し、１／２小数精度画素データを生成する第１の高次タップフィルタ部と、前記参照画素データまたは前記中間出力画素記憶手段から入力された１／２小数精度画素データに対して、前記第１の高次タップフィルタ部での演算処理方向と直交する方向に連続的なフィルタ演算を処理対象ブロックの段数分実行し、１／２小数精度画素データを生成する第２の高次タップフィルタ部とを備えてもよい。
【００５０】
ここで、前記第２の高次タップフィルタ部は、前記１／２小数精度画素データが有するビット精度に対応することが好ましい。
【００５１】
これによって、高次タップフィルタの資源を複数実装する場合に、選択的にビット精度の高いフィルタを割り当てることができるので、実装面積を削減することが可能である。例えば、第１の高次タップフィルタ部が、整数精度画素データが有するビット精度までに対応し、第２の高次タップフィルタ部が、１／２小数精度画素データが有するビット精度に対応する演算資源を実装するというように、第１の高次タップフィルタ部にビット精度の高いフィルタを割り当てる必要が無くなるので、実装面積を削減することが可能である。
【００５２】
また、前記中間出力画素記憶手段は、前記第１の高次タップフィルタ部により生成された１／２小数精度画素データと併せて、前記参照画素データも格納するとともに、データの読み出しと書き込みの処理を同時に実行し、前記第２の高次タップフィルタ部は、前記中間出力画素記憶手段から入力された前記参照画素データおよび前記１／２小数精度画素データに対して、フィルタ演算を実行し、前記第１の高次タップフィルタ部の動作と前記第２の高次タップフィルタ部の動作をパイプライン式に実行してもよい。
【００５３】
これによって、中間出力画素記憶手段の容量を増やすことで、参照画素データの転送を１回目のフィルタ方向の時だけとすることで画素転送量を削減し、また中間出力画素記憶手段をバンク動作させるようにすることで２回目のフィルタ方向の動作を１回目のフィルタを行っている処理対象ブロックのデータと世代の異なるブロックについて独立にフィルタ処理を実行することができるようになるため、さらに効率的な動き補償予測を行うことが可能となる。
【００５４】
なお、本発明は、このような動き補償装置として実現することができるだけでなく、このような動き補償装置が備える特徴的な手段をステップとする動き補償方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の伝送媒体を介して配信することができるのは言うまでもない。
【発明の効果】
【００５５】
以上の説明から明らかなように、本発明に係る動き補償装置によれば、回路規模の増加を抑えつつ、参照画素データを格納したマルチフレームメモリとのデータ転送量を削減し、効率的に動き補償画素を生成することができる。
【図面の簡単な説明】
【００５６】
【図１】図１は、従来の画面間予測符号化装置の構成を示すブロック図である。
【図２】図２は、従来の画面間予測復号化装置の構成を示すブロック図である。
【図３】図３は、Ｈ．２６４における輝度成分の画素補間方法を説明するための概略図である。
【図４】図４は、従来の動き補償部の構成を示す回路図である。
【図５】図５は、本発明の実施の形態１に係る動き補償装置（動き補償部）の概略構成を示すブロック図である。
【図６】図６は、本発明の実施の形態１に係る動き補償装置の構成を詳細に示すブロック図である。
【図７】図７は、６タップフィルタをかける整数精度画素の並びを示す図である。
【図８】図８は、データ転送制御部でデータ転送を制御する動作の流れを示すフローチャートである。
【図９】図９（ａ）は、動き補償画像生成を行うブロックの一例を示す図、図９（ｂ）は、中間画素格納メモリに格納される垂直方向に１／２ずらせた小数精度画素を示す図、図９（ｃ）は、２回目のフィルタ処理（水平方向）で転送を必要とする画素を示す図、図９（ｄ）は、中間画素格納メモリに格納された垂直方向に１／２ずらせた小数精度画素に対する２回目のフィルタ処理（水平方向）を示す図である。
【図１０】図１０（ａ）は、中間画素格納メモリに格納される水平方向に１／２ずらせた小数精度画素を示す図、図１０（ｂ）は、２回目のフィルタ処理（垂直方向）で転送を必要とする画素を示す図、図１０（ｃ）は、中間画素格納メモリに格納された水平方向に１／２ずらせた小数精度画素に対する２回目のフィルタ処理（垂直方向）を示す図である。
【図１１】図１１（ａ）は、動き補償画像生成を行うブロック単位を示した図、図１１（ｂ）は、ブロックの分割を示す図、図１１（ｃ）は、分割領域にフィルタ処理に必要な周辺画素をつけた状態の転送領域を示す図である。
【図１２】図１２は、動き補償画像生成を行うブロックの一例を示す図である。
【図１３】図１３は、分割領域毎にフィルタ処理に必要な周辺画素を示す図である。
【図１４】図１４は、データ転送制御部でデータ転送を制御する動作の流れを示すフローチャートである。
【図１５】図１５は、本発明の実施の形態４に係る動き補償装置（動き補償部）の構成を示すブロック図である。
【図１６】図１６（ａ）は、動き補償画像生成を行う複数のブロックを示した図、図１６（ｂ）は、各ブロック毎の水平および垂直方向のフィルタ処理のタイミングを示す図である。
【図１７】図１７は、各実施の形態の動き補償装置、この動き補償装置を用いた画面間予測符号化装置、または画面間予測復号化装置をコンピュータシステムにより実現するためのプログラムを格納するための記録媒体についての説明図であり、図１７(a)は、記録媒体本体であるフレキシブルディスクの物理フォーマットの例を示した説明図、図１７(b)は、フレキシブルディスクの正面からみた外観、断面構造、及びフレキシブルディスクを示した説明図、図１７(c)は、フレキシブルディスクＦＤに上記プログラムの記録再生を行うための構成を示した説明図である。
【図１８】図１８は、コンテンツ配信サービスを実現するコンテンツ供給システムの全体構成を示すブロック図である。
【図１９】図１９は、携帯電話の一例を示す図である。
【図２０】図２０は、携帯電話の内部構成を示すブロック図である。
【図２１】図２１は、ディジタル放送用システムの全体構成を示すブロック図である。
【発明を実施するための形態】
【００５７】
以下、本発明の各実施の形態について、それぞれ図面を参照しながら説明する。
【００５８】
（実施の形態１）
図５は本発明の実施の形態１に係る動き補償装置（動き補償部）の概略構成を示すブロック図であり、図６はこの動き補償装置の構成を詳細に示すブロック図である。なお、図４に示す従来の動き補償部と同様の部分については同じ符号を付し、その説明を省略する。また、動き補償装置は、図１に示す画面間予測符号化装置または図２に示す画面間予測復号化装置の動き補償部として用いられるものとする。
【００５９】
動き補償装置１００は、小数画素精度の動き補償画素を生成するための装置であり、動き補償位置判定部１０１、必要画素判定部１０２、データ転送制御部１０３、画素選択部１０４、中間画素格納メモリ１０５、高次タップフィルタ部１０６、および線形補間演算部１０７を備えている。この動き補償装置１００には、マルチフレームメモリ４０２から動き補償参照画素（参照画素データ）ＭＣｐｅｌ１が入力される。
【００６０】
高次タップフィルタ部１０６は、実装バッファを従来の６段×６画素から６段×１画素とした遅延回路２０１および遅延回路２０２、６タップフィルタ５０３、６タップフィルタ５１１、ビットシフト５１２、ビットシフト５１３、ビットシフト５１４、およびビットシフト２０５を備えている。また、第２の画素選択手段および線形補間演算手段である線形補間演算部１０７は、セレクタ加算器２０６およびビットシフト５１８を備えている。
【００６１】
動き補償位置判定部１０１は、動きベクトルから図３における画素Ｇ、ａ、ｂ、ｃ、ｄ、ｅ、ｆ、ｇ、ｈ、ｉ、ｊ、ｋ、ｎ、ｐ、ｑ、及びｒのどの位置の補償画素を生成するかを判定し、動き補償位置信号ＳｍｃＰｏｓを出力する。動き補償位置信号ＳｍｃＰｏｓは、セレクタ加算器２０６、ビットシフト５１８に入力され、１／４精度画素生成に必要な画素の選択とビットシフトの実行制御に用いられる。
【００６２】
必要画素判定部１０２は、入力された動き補償位置信号ＳｍｃＰｏｓに基づいて、マクロブロック（ＭＢ）パーティションの形状やその分割形状及び６タップフィルタのフィルタ方向順序から６タップフィルタを実行するために必要な画素を判定し、必要画素情報ＳｐｘｌＪｄｇを出力する。
【００６３】
データ転送制御部１０３は、入力された必要画素情報ＳｐｘｌＪｄｇにより、転送するデータの取り出し順序などを制御するためのデータ転送制御信号ＳｄａｔＣｔｒを出力する。データ転送制御信号ＳｄａｔＣｔｒは、マルチフレームメモリ４０２、中間画素格納メモリ１０５及び画素選択部１０４に入力され、フィルタ演算処理の制御に用いられる。
【００６４】
中間画素格納メモリ１０５は、例えば水平方向優先のフィルタ処理を行う場合、図３の画素ａａ、ｂｂ、ｂ、ｓ、ｇｇ、ｈｈなどの水平方向の１／２精度画素位置のデータに関して処理ブロック単位分すべてを格納するためのメモリであり、一旦格納した中間画素データはビットシフト演算前の１／２精度画素データＭＣｐｅｌ３として出力する。
【００６５】
画素選択部１０４は、マルチフレームメモリ４０２から出力された参照画素データＭＣｐｅｌ１か中間画素格納メモリ１０５から出力された１／２精度画素データＭＣｐｅｌ３かを選択する。
【００６６】
ビットシフト２０５は、６タップフィルタ５０３の出力信号Ｓｍ１ｈ１を入力とし、ビットシフトした結果として画素ｍもしくは画素ｈの位置の信号Ｓｍｈを出力する。ビットシフト５１２は、遅延回路２０２の３段目の遅延データＳｓ１を入力とし、ビットシフトした結果として画素ｓの位置の信号Ｓｓを出力する。ビットシフト５１３は、６タップフィルタ５１１の出力信号Ｓｊ１を入力とし、ビットシフトした結果として画素ｊの位置の信号Ｓｊを出力する。ビットシフト５１４は、遅延回路２０２の４段目の遅延データＳｂ１を入力とし、ビットシフトした結果として画素ｂの位置のＳｂ信号を出力する。
【００６７】
セレクタ加算器２０６は、ビットシフト２０５からの出力信号Ｓｍｈと、ビットシフト５１２からの出力信号Ｓｓと、ビットシフト５１３からの出力信号Ｓｊと、ビットシフト５１４からの出力信号Ｓｂと、遅延回路２０１の３段目の遅延データである画素Ｍもしくは画素Ｎの位置の出力信号ＳＭＮと、遅延回路２０１の４段目の遅延データである画素Ｇもしくは画素Ｈの位置の出力信号ＳＧＨと、を入力とし、動き補償位置信号ＳｍｃＰｏｓ信号に従って、信号選択を行い、必要であれば加算を行って信号ＳＳｅｌＡｄｄとして出力する。
【００６８】
ビットシフト５１８は、信号ＳＳｅｌＡｄｄを入力とし、動き補償位置信号ＳｍｃＰｏｓ信号に従って、必要であればビットシフトを行って動き補償画素ＭＣｐｅｌ２として出力する。
【００６９】
次に図７を用いて、必要画素判定部１０２の詳細な動作説明を行う。
図７は６タップフィルタをかける整数精度画素の並びを示す図である。図７において、四角で示す整数精度画素ＩｎｔＳｍｐは、動きベクトルが示す動き補償位置の整数精度の画素である。また、丸印で示す６タップ付加画素ＩｎｔＳｍｐ６Ｔは、整数精度画素ＩｎｔＳｍｐの周辺に位置する６タップフィルタをかけるために必要な画素である。
【００７０】
区間Ｔｉｎｔｗｉｄｔｈは、整数精度画素の水平方向の区間を表しており、動き補償を実行する対象ブロックのブロック形状によって異なり、１６、８及び４の値をとり得る。区間Ｔ６ｔｗｉｄｔｈは、６タップフィルタに必要な周辺画素まで含めた水平方向の区間を表しており、対象ブロックのブロック形状によって、２１、１３及び９の値をとり得る。
【００７１】
区間Ｔｉｎｔｈｅｉｇｈｔは、整数精度画素の垂直方向の区間を表しており、動き補償を実行する対象ブロックのブロック形状によって異なり、１６、８及び４の値をとり得る。区間Ｔ６ｔｈｅｉｇｈｔは、６タップフィルタに必要な周辺画素まで含めた画素の垂直方向の区間を表しており、対象ブロックのブロック形状によって、２１、１３及び９の値をとり得る。
【００７２】
領域Ａａｂｃは、水平方向の区間がＴ６ｔｗｉｄｔｈであり垂直方向の区間がＴｉｎｔｈｅｉｇｈｔである領域の整数精度画素の領域を表している。領域Ａｄｈｎは、水平方向の区間がＴｉｎｔｗｉｄｔｈであり垂直方向の区間がＴ６ｔｈｅｉｇｈｔである領域の整数精度画素の領域を表している。領域ＡＧは、水平方向の区間がＴｉｎｔｗｉｄｔｈであり垂直方向の区間がＴｉｎｔｈｅｉｇｈｔである領域の整数精度画素の領域を表している。
【００７３】
例えば、図３で示したａ、ｂ及びｃの小数精度画素位置の動き補償画像を生成する場合、垂直方向のフィルタ処理が不要であるので、垂直方向のフィルタのみで使用する領域は処理する必要がない。従ってこの場合、必要画素判定部１０２は、領域Ａａｂｃで示した領域が必要であると判断する。また、同様にｄ、ｈ及びｎの小数精度画素位置の動き補償画像を生成する場合、水平方向のフィルタ処理が不要であるので、水平方向のフィルタのみで使用する領域は処理する必要がない。従ってこの場合、必要画素判定部１０２は、領域Ａｄｈｎで示した領域が必要であると判断する。さらに、Ｇの位置の場合は、小数精度画素の生成が不要であるので、必要画素判定部１０２は、領域ＡＧが必要であると判断する。
【００７４】
次に図８を用いて、データ転送制御部１０３の詳細な動作説明を行う。
図８は、データ転送制御部１０３でデータ転送を制御する動作の流れを示すフローチャートである。
【００７５】
まず、データ転送制御部１０３は、動き補償画像生成位置が図３で示した画素Ｇ、ａ、ｂ、ｃ、ｄ、ｅ、ｆ、ｇ、ｈ、ｉ、ｊ、ｋ、ｎ、ｐ、ｑ、及びｒの中の画素Ｇの位置であるか否かを判定する（ステップＳ１０１）。この判定の結果、動き補償画像生成位置が画素Ｇの位置の場合（ステップＳ１０１でＹＥＳ）には、小数精度画像フィルタを実行せずに終了する。
【００７６】
一方、動き補償画像生成位置が画素Ｇ以外（ステップＳ１０１でＮＯ）であれば、画素ｄ、ｈ、またはｎのいずれかの位置にあるか否かを判定する（ステップＳ１０２）。この判定の結果、動き補償画像生成位置が画素ｄ、ｈ、またはｎのいずれの位置でもない場合（ステップＳ１０２でＮＯ）には、水平方向に１／２画素をずらせた画像を生成するための６タップフィルタを実行する（ステップＳ１０３）。さらに、動き補償画像生成位置が画素ａ、ｂ、またはｃのいずれかの位置にあるか否かを判定する（ステップＳ１０４）。この判定の結果、動き補償画像生成位置が画素ａ、ｂ、またはｃのいずれの位置でもない場合（ステップＳ１０４でＮＯ）、および上記判定処理（ステップＳ１０２）で動き補償画像生成位置が画素ｄ、ｈ、またはｎのいずれかの位置の場合（ステップＳ１０２でＹＥＳ）には、垂直方向に１／２画素をずらせた画像を生成するための６タップフィルタを実行する（ステップＳ１０５）。
【００７７】
動き補償画像生成位置が画素ｂ、ｈ、またはｊのいずれかの位置にあるか否かを判定する（ステップＳ１０６）。この判定の結果、動き補償画像生成位置が画素ｂ、ｈ、またはｊのいずれの位置でもない場合（ステップＳ１０６でＮＯ）、すなわち画素Ｇ、ｂ、ｈ、またはｊのいずれの位置でもない場合には、１／４精度画素の線形補間フィルタを実行する（ステップＳ１０７）。
【００７８】
一方、動き補償画像生成位置が画素ｂ、ｈ、またはｊのいずれかの位置である場合（ステップＳ１０６でＹＥＳ）には、１／４精度画素の線形補間フィルタを実行せずに終了する。
【００７９】
以上の手順をデータ転送制御部１０３で制御することによって、動き補償部１００を制御し、動き補償画像ＭＣｐｅｌ２を出力する。なお、動き補償画像生成位置が画素ｄ、ｈ、またはｎのいずれかの位置にあるか否かの判定処理（ステップＳ１０２）および水平方向のフィルタ処理（ステップＳ１０３）と、動き補償画像生成位置が画素ａ、ｂ、またはｃのいずれかの位置にあるか否かを判定処理（ステップＳ１０４）および垂直方向のフィルタ処理（ステップＳ１０５）との制御を入れ替えることで、垂直フィルタを先にかけ水平フィルタを後にかけることも可能である。
【００８０】
以下、画素信号の流れに沿って、水平方向にＭ画素、垂直方向にＮ画素のブロック形状の領域に対するフィルタ処理動作に関して詳細な説明を続ける。ここでは、水平方向と垂直方向の両方向のフィルタ演算が必要な図３に示す画素ｅ、ｆ、ｇ、ｉ、ｊ、ｋ、ｐ、ｑ、及びｒの小数精度画素位置の動き補償画像生成動作について説明し、簡単のため水平方向のフィルタを最初に実施する場合を例として説明するが、垂直方向を最初に実施することも可能である。
【００８１】
まず、データ転送制御部１０３は、マルチフレームメモリ４０２から１画素ずつ水平方向に画素データを読み出し、遅延回路２０１に入力する。遅延回路２０１は６段のＦＩＦＯの構成をとっており、６タップフィルタに必要な周辺画素まで含めた図７に示す水平方向の区間Ｔ６ｔｗｉｄｔｈの１行分のデータが続いて入力される。遅延回路２０１の６画素分の遅延データは、６タップフィルタ５０３に入力され、６画素目の入力以降６タップフィルタ結果が１サイクル毎に出力される。
【００８２】
６タップフィルタ５０３から出力された６タップフィルタ結果は、中間画素格納メモリ１０５及びビットシフト２０５に入力される。遅延回路２０１および６タップフィルタ５０３が１セットの場合はＭ＋５サイクルで１行分のフィルタ処理を行うことができ、フィルタに必要な周辺画素部分を含めＮ＋５行分の処理を繰り返す。その結果、中間画素格納メモリ１０５に水平方向に１／２ずらせた小数画素精度のデータ（ｂの位置）として格納される。
【００８３】
次に、データ転送制御部１０３は、垂直方向に１／２ずらせた小数精度画素（ｈの位置）を生成するために、マルチフレームメモリ４０２から１画素ずつ垂直方向に画素データを読み出し、遅延回路２０１に入力する。水平方向と同様に、６画素目の入力以降、１サイクル毎に６タップフィルタ結果を出力する。遅延回路２０１および６タップフィルタ５０３が１セットの場合はＮ＋５サイクルで１列分のフィルタ処理を行うことができ、フィルタに必要な周辺画素部分を含めＭ＋５行分の処理を繰り返し、ビットシフト２０５に出力する。
【００８４】
このとき同時に、データ転送制御部１０３は、水平垂直共に１／２ずらせた小数精度画素（ｊの位置）を生成するために、中間画素格納メモリ１０５から１画素ずつ垂直方向に画素データを読み出し、画素選択部１０４を介して遅延回路２０２に入力する。遅延回路２０２の６画素分の遅延データは、６タップフィルタ５１１に入力され、６画素目の入力以降１サイクル毎に６タップフィルタ結果が出力される。
【００８５】
次に、セレクタ加算器２０６は、動き補償画素位置に応じて、式１０から式２１に示した計算で必要な処理を行い、データＳＳｅｌＡｄｄとして出力する。データＳＳｅｌＡｄｄが入力されたビットシフト５１８は、必要であればビットシフトを行い、動き補償画像ＭＣＰｅｌ２を出力する。ここで、セレクタ加算器２０６およびビットシフト５１８は、Ｇ、ｂ、ｈ、及びｊの位置では、加算とビットシフトの処理が必要ないためその処理は行わない。
【００８６】
なお、遅延回路２０２と６タップフィルタ５１１は、水平方向のフィルタ処理でも利用することができ、その場合は、画素選択部１０４において中間画素格納メモリ１０５から入力されたデータではなく、マルチフレームメモリ４０２から入力されたデータを選択しフィルタ処理を行い、６タップフィルタ５１１の出力結果を中間画素格納メモリ１０５に入力することで実現する。この場合、水平方向のフィルタ処理サイクルは遅延回路２０１と６タップフィルタ５０３の１組を用いている場合と較べ、約１／２にまで削減可能である。
【００８７】
また、遅延回路２０１と６タップフィルタ５０３、または遅延回路２０２と６タップフィルタ５１１において、処理資源の並列化を行うことも可能であり、その場合、マルチフレームメモリ４０２と動き補償部１００の間の転送能力を並列化した６タップフィルタの処理能力以上に設定する。ここで、転送能力と処理能力が等しくなるようにすれば最適な構成を得ることができる。
【００８８】
従って、上記手順で動き補償画像の生成を行った時、最大のブロック形状である１６×１６を１ブロック転送する場合と、最小のブロック形状である４×４を１６ブロック転送する場合の各転送画素数は、次式で表される。
（（１６＋５）×（１６＋５）×１画素幅＋
１６×（１６＋５）×１画素幅）×  １ブロック＝    ７７７  …（２６）
（（  ４＋５）×（  ４＋５）×１画素幅＋
４×（  ４＋５）×１画素幅）×１６ブロック＝１，８７２  …（２７）
【００８９】
従って、式２２、式２３、式２６、及び式２７より、従来の転送量に較べて１６×１６ブロック形状では、１／２．６に、４×４ブロック形状では、１／１．８に抑えることを実現する。
【００９０】
以上のように、遅延回路２０１および遅延回路２０２を設け、６タップフィルタ５０３から出力された６タップフィルタ結果を中間画素格納メモリに格納した後、遅延回路２０２へ入力してフィルタを行っているので、マルチフレームメモリ４０２から動き補償装置１００への画素転送量を削減することができる。
【００９１】
（実施の形態２）
本実施の形態では、実施の形態１で説明した方法に加えて、６タップフィルタの演算を水平方向または垂直方向のどちらを最初に実行するかを判定した上で、データ転送を行う場合について説明する。なお、本実施の形態の構成は、実施の形態１と同様であるので、図６に示したブロック図を用いて説明する。
【００９２】
実施の形態１で説明した方法と異なる点は、データ転送制御部１０３における制御方法に関するのみである。ここでは、そのデータ転送制御及び動作処理に関してのみ詳細に説明する。
【００９３】
６タップフィルタの演算は、水平垂直、垂直水平のどちらの順序でも同じ結果が得られる。この垂直・水平のフィルタ順序の制御方法について、図９〜図１１を用いて説明する。
【００９４】
図９は、動き補償画像生成を行うブロックの一例を示す図である。ここでは、ブロック形状は、図９（ａ）に示すように水平方向Ｍが８画素、垂直方向Ｎが４画素となる大きさであり、６タップフィルタのフィルタ処理に必要な周辺画素が５（＝Ｔ−１）画素分付加されている。また、図９において、対象ブロックの画素は白抜きの四角で、６タップフィルタに必要な周辺画素は斜線をつけた四角形で、小数精度画素は丸印で表している。
【００９５】
図９（ａ）に示すブロックに対して、最初に垂直方向のフィルタを実行すると、図９（ｂ）に示すような垂直方向に１／２ずらせた小数精度画素が中間画素格納メモリ１０５に格納される。また、２回目のフィルタ処理（水平方向）を実行する時には、マルチフレームメモリ４０２から動き補償部１００に転送を必要とする画素は、図９（ｃ）に示すように上２行下３行の周辺画素を除いた画素となる。また、水平垂直共に１／２ずらせた小数精度画素を生成するために、図９（ｄ）に示すように中間画素格納メモリ１０５に格納された垂直方向に１／２ずらせた小数精度画素を読み出し、２回目のフィルタ処理（水平方向）を実行する。
【００９６】
このように、最初に垂直方向のフィルタを実行する場合、中間画素格納メモリ１０５が必要とする画素容量または２回目の方向のフィルタ処理での画素転送量は、次式で表される。
（８＋５）×４＝５２                                        …（２８）
【００９７】
一方、図９（ａ）に示すブロックに対して、最初に水平方向のフィルタを実行すると、図１０（ａ）に示すような水平方向に１／２ずらせた小数精度画素が中間画素格納メモリ１０５に格納される。また、２回目のフィルタ処理（垂直方向）を実行する時には、マルチフレームメモリ４０２から動き補償部１００に転送を必要とする画素は、図１０（ｂ）に示すように右２列左３列の周辺画素を除いた画素となる。また、水平垂直共に１／２ずらせた小数精度画素を生成するために、図１０（ｃ）に示すように中間画素格納メモリ１０５に格納された水平方向に１／２ずらせた小数精度画素を読み出し、２回目のフィルタ処理（垂直方向）を実行する。
【００９８】
このように、最初に水平方向のフィルタを実行する場合、中間画素格納メモリ１０５が必要とする画素容量または２回目の方向のフィルタ処理での画素転送量は、次式で表される。
８×（４＋５）＝７２                                        …（２９）
【００９９】
以上、水平方向Ｍが８画素、垂直方向Ｎが４画素となる大きさのブロックを例に説明したが、次に、一般的に水平方向がＭ、垂直方向がＮの画素数となる大きさのブロックの場合について説明する。
【０１００】
図１１は、動き補償画像生成を行うブロック単位を示した図である。図１１（ａ）は、動き補償画像生成を行うブロックを示しており、図７を簡略的に図示したものである。図１１（ａ）において、水平方向がＭ、垂直方向がＮの画素数となる大きさのブロック形状であり、フィルタのタップ数をＴとした時のフィルタに用いる周辺画素がＴ−１分付加されていることを示している。
【０１０１】
この場合、画素としては（Ｍ＋Ｔ−１）×（Ｎ＋Ｔ−１）の領域のメモリ転送が必要である。また、この時に図５に示す中間画素格納メモリ１０５が必要とする画素容量は、水平方向のフィルタを最初に実行する場合はＭ×（Ｎ＋Ｔ−１）、垂直方向のフィルタを最初に実行する場合は（Ｍ＋Ｔ−１）×Ｎの画素容量が必要となる。
【０１０２】
また、続く別方向のフィルタ処理を実行する時にマルチフレームメモリ４０２から動き補償部１００に転送を必要とする画素数に関しても同様に、水平方向のフィルタ処理を最初に実行する場合はＭ×（Ｎ＋Ｔ−１）、垂直方向のフィルタ処理を最初に実行する場合は（Ｍ＋Ｔ−１）×Ｎの画素転送量となる。
【０１０３】
従って、水平方向のフィルタ処理を最初に実行する場合と垂直方向のフィルタ処理を最初に実行する場合とにおける、中間画素格納メモリ１０５が必要とする画素容量の差分値、または２回目の方向のフィルタ処理での画素転送量の差分値は、次式で表される。
｜Ｍ×（Ｎ＋Ｔ−１）−（Ｍ＋Ｔ−１）×Ｎ｜
＝｜（Ｍ−Ｎ）（Ｔ−１）｜      …（３０）
【０１０４】
従って、データ転送制御部１０３は、水平方向の画素数Ｍと垂直方向の画素数Ｎとを比較し、Ｍ＜Ｎのブロック形状になっていれば、水平方向のフィルタ処理を先に行い次に垂直方向のフィルタ処理を行い、Ｍ＞Ｎのブロック形状になっていれば垂直方向のフィルタ処理を先に行い次に水平方向のフィルタ処理を行うように制御する。これにより、｜（Ｍ−Ｎ）（Ｔ−１）｜の中間画素格納メモリ１０５の容量削減及び２回目の方向のフィルタ処理での画素転送量の削減が可能となる。
【０１０５】
なお、Ｈ．２６４規格では、Ｔ＝６と決められており、Ｍ及びＮは１６，８，４の値である。また、Ｈ．２６４規格において１６×８のブロック形状に分割された１ＭＢ（マクロブロック）分の動き補償画像生成を行う場合、水平方向から６タップフィルタを実施した場合は式３１、垂直方向から６タップフィルタを実施した場合は式３２に示す処理サイクルが必要となり、水平方向からフィルタ処理を実行するときと較べて、（９６２−８８２）／９６２＝８％の転送量削減が実現できる。
【０１０６】
（（１６＋５）×（８＋５）×１画素幅  ＋
１６      ×（８＋５）×１画素幅）×２ブロック＝９６２    …（３１）
（（１６＋５）×（８＋５）×１画素幅  ＋
（１６＋５）×  ８      ×１画素幅）×２ブロック＝８８２    …（３２）
【０１０７】
同様に８×４のブロック形状に分割された１ＭＢ（マクロブロック）分の動き補償画像生成を行う場合、上記のように水平方向から６タップフィルタを実施した場合は式３３、垂直方向から６タップフィルタを実施した場合は式３４に示す処理サイクルが必要となり、水平方向からフィルタ処理を実行するときと較べて、（１，５１２−１，３５２）／１，３５２＝１１％の転送量削減が実現できる。
【０１０８】
（（８＋５）×（４＋５）×１画素幅  ＋
８      ×（４＋５）×１画素幅）×８ブロック＝１，５１２  …（３３）
（（８＋５）×（４＋５）×１画素幅＋
（８＋５）×  ４      ×１画素幅）×８ブロック＝１，３５２  …（３４）
【０１０９】
以上のように、データ転送制御部１０３は、対象ブロックの水平方向の画素数Ｍと垂直方向の画素数Ｎとを比較して、６タップフィルタの演算を水平方向または垂直方向のどちらを最初に実行するかを判定した上で、データ転送を行っているので、中間画素格納メモリ１０５の実装容量を削減しつつ、マルチフレームメモリ４０２から動き補償装置１００へのデータ転送量を削減することができる。
【０１１０】
（実施の形態３）
本実施の形態では、実施の形態１で説明した方法において、対象ブロックを分割してフィルタ処理を行う場合について説明する。なお、本実施の形態の構成は、実施の形態１と同様であるので、図６に示したブロック図を用いて説明する。
【０１１１】
実施の形態１で説明した方法と異なる点は、データ転送制御部１０３における制御方法に関するのみである。ここでは、そのデータ転送制御及び動作処理に関してのみ詳細に説明する。
【０１１２】
６タップフィルタの実行は必ずしも指定されているブロック形状で行う必要がなく、分割処理しても同じ結果が得られる。この分割したフィルタ制御方法について、図１１〜図１４を用いて説明する。
【０１１３】
図１２は、動き補償画像生成を行うブロックの一例を示す図である。ここでは、ブロック形状は、水平方向Ｍが１６画素、垂直方向Ｎが１６画素となる大きさであり、６タップフィルタのフィルタ処理に必要な周辺画素が５（＝Ｔ−１）画素分付加されている。また、図１２において、対象ブロックの画素は白抜きの四角で、６タップフィルタに必要な周辺画素は斜線をつけた四角形で、小数精度画素は丸印で表している。
【０１１４】
図１２に示すブロックを、水平方向に２分割、垂直方向に４分割して処理する場合、分割された水平方向Ｍ／ｍが８画素、垂直方向Ｎ／ｎが４画素のブロックは、図１３に示すようにそれぞれについて、６タップフィルタのフィルタ処理に必要な周辺画素が付加されてマルチフレームメモリ４０２から動き補償装置１００へ転送されることになる。
【０１１５】
このように分割処理を行って、最初に垂直方向のフィルタを実行する場合、中間画素格納メモリ１０５が必要とする画素容量は、上記実施の形態２と同様に次式で表される。
（８＋５）×４＝５２                                        …（３５）
【０１１６】
例えば、分割処理を行わずにフィルタを実行する場合、中間画素格納メモリ１０５が必要とする画素容量は、次式で表される。
（１６＋５）×１６＝３３６                                  …（３６）
【０１１７】
以上、水平方向Ｍが１６画素、垂直方向Ｎが１６画素となる大きさのブロックを水平方向に２分割、垂直方向に４分割して処理する場合を例に説明したが、次に、一般的に水平方向がＭ、垂直方向がＮの画素数となる大きさのブロックを水平方向にｍ分割、垂直方向にｎ分割して処理する場合について説明する。
【０１１８】
図１１（ｂ）は、図１１（ａ）の動き補償画像生成処理を行うブロックに関して水平方向をｍ個に分割し（Ｍ／ｍは自然数）、垂直方向をｎ個に分割（Ｎ／ｎは自然数）することを示している。図１１（ｃ）は、分割領域にフィルタ処理に必要な周辺画素をつけた状態の転送領域を表している。
【０１１９】
データ転送制御部１０３は、図１１（ｂ）に図示したｍ×ｎ個に分割した分割処理ブロックに対して、動き補償画像生成処理をｍ×ｎ回繰り返して処理を行うように制御する。上記処理方法により、中間画素格納メモリ１０５の最低限必要な容量は、
ＭＩＮ（Ｍ×（Ｎ＋Ｔ−１），（Ｍ＋Ｔ−１）×Ｎ）
から、
ＭＩＮ（Ｍ／ｍ×（Ｎ／ｎ＋Ｔ−１），（Ｍ／ｍ＋Ｔ−１）×Ｎ／ｎ）
に削減することが可能となる。ここで、ＭＩＮ（Ａ，Ｂ）は、ＡかＢのどちらか小さい方の値を返す関数を表している。
【０１２０】
図１４は、データ転送制御部１０３でデータ転送を制御する動作の流れを示すフローチャートである。
【０１２１】
まず、データ転送制御部１０３は、Ｍ／ｍとＮ／ｎとを比較し、Ｍ／ｍがＮ／ｎより大きいか否かを判定する（ステップＳ２０１）。ここで、Ｍ／ｍの方がＮ／ｎよりも大きな値となっている場合（ステップＳ２０１でＹＥＳ）には、Ｎ方向に６タップフィルタ処理を実行し（ステップＳ２０２）、次にＭ方向に６タップフィルタ処理を実行する（ステップＳ２０３）。
【０１２２】
一方、上記判定でＭ／ｍの方がＮ／ｎよりも大きな値となっていない場合（ステップＳ２０１でＮＯ）には、Ｍ方向に６タップフィルタ処理を実行し（ステップＳ２０４）、次にＮ方向に６タップフィルタ処理を実行する（ステップＳ２０５）。
【０１２３】
次に、それぞれＭ方向とＮ方向のフィルタ処理を実行した後に、１／４画素精度の線形補間フィルタ処理を実行する（ステップＳ２０６）。
【０１２４】
以上の処理をｍ×ｎ回のループで処理を行い、対象ブロックの動き補償画像全体の生成を行う。
【０１２５】
なお、Ｈ．２６４規格では、Ｔ＝６であり、Ｍ及びＮは１６，８，４の値となる。従ってｍ、ｎは２，４，８，１６などの値をとり得る。
【０１２６】
以上のように、データ転送制御部１０３は、対象ブロックを分割してフィルタ処理を行うように、データ転送を行っているので、中間画素格納メモリ１０５の実装容量を削減しつつ、マルチフレームメモリ４０２から動き補償装置１００へのデータ転送量を削減することができる。
【０１２７】
（実施の形態４）
本実施の形態では、中間画素データに加えて整数画素位置の画素データを中間画素格納メモリに格納する場合について説明する。
【０１２８】
図１５は本発明の実施の形態４に係る動き補償装置（動き補償部）の構成を示すブロック図である。なお、図６に示す実施の形態１と同様の部分については同じ符号を付し、その説明を省略する。
【０１２９】
本実施の形態４の動き補償装置３００は、実施の形態１に対して遅延回路３０２、６タップフィルタ３０３、ビットシフト３０４が追加されており、画素選択部１０４とビットシフト２０５が削除された構成となっている。また、中間画素格納メモリ３０１がバンク構成をとっている。
【０１３０】
中間画素格納メモリ３０１の容量を大きくとることができれば、さらに画素転送量を削減できる。また、中間画素格納メモリ３０１を読み書きを独立で行う２ポートメモリなどでバンク構成をとることでさらに高速な動作を実現することが可能である。以下図１５を用いて動作の説明を行う。
【０１３１】
マルチフレームメモリ４０２から転送される画素データＭＣｐｅｌ１は、遅延回路２０１にのみに入力される。遅延回路２０１の遅延データは、６タップフィルタ５０３に入力され、フィルタ結果は中間画素格納メモリ３０１に格納される。
【０１３２】
また、遅延回路２０１の４段目の遅延画素は信号ＳＧＨＭＮとして出力され、６タップフィルタ５０３のフィルタ結果と併せて中間画素格納メモリ３０１に格納される。中間画素格納メモリ３０１に格納された画素データは、画素データＭＣｐｅｌ３として出力され、６タップフィルタ後のデータは実施の形態１とは異なり画素選択部１０４を介さずに遅延回路２０２に入力される。一方、画素データＭＣｐｅｌ３の内で整数画素を遅延させたデータＳＧＨＭＮの読み出し値は、遅延回路３０２に入力される。遅延回路３０２は、３段目の遅延データを図３に示す画素Ｍもしくは画素Ｎの整数画素位置のデータとして信号ＳＭＮを出力し、４段目の遅延データを図３に示す画素Ｇもしくは画素Ｈの整数画素位置のデータとして信号ＳＧＨを出力する。
【０１３３】
６タップフィルタ３０３は、遅延回路３０２からの遅延信号を入力とし、６タップフィルタを実行し、図３に示す画素ｈもしくは画素ｍの画素位置のフィルタ結果として信号Ｓｈ１ｍ１を出力する。ビットシフト３０４は、フィルタ結果Ｓｈ１ｍ１を入力とし、図３に示す画素ｈもしくは画素ｍの補間画素データとして信号Ｓｈｍを出力する。
【０１３４】
セレクタ加算器３０５は、Ｓｓ、Ｓｊ、Ｓｂ、ＳＭＮ、Ｓｈｍ及びＳＧＨを入力とし、動き補償位置判定信号ＳｍｃＰｏｓに従って、画素選択と必要であれば加算を行い信号ＳＳｅｌＡｄｄとして出力する。ビットシフト５１８は、信号ＳＳｅｌＡｄｄを入力とし、動き補償位置信号ＳｍｃＰｏｓ信号に従って、必要であればビットシフトを行って動き補償画素ＭＣｐｅｌ２として出力する。
【０１３５】
次に、図１６（ａ）に示すような複数のブロックの動き補償画像生成を行う場合の動作について、説明する。図１６（ｂ）は各ブロック毎の水平および垂直方向のフィルタ処理のタイミングを示す図である。なお、丸数字１〜４で示すブロックを数字の順に処理するものとし、また水平方向のフィルタ処理を最初に実行するものとする。
【０１３６】
まず、ブロック１について、遅延回路２０１および６タップフィルタ５０３で水平方向のフィルタ処理を最初に実行する（ブロック１のＦ１）。
【０１３７】
次に、遅延回路３０２および６タップフィルタ３０３でブロック１の整数画素位置の画素データの垂直方向のフィルタ処理と、遅延回路２０２および６タップフィルタ５１１によりブロック１の６タップフィルタ５０３で処理された後のデータの垂直方向のフィルタ処理を実行する（ブロック１のＦ２）。このとき、同時に、ブロック２について、遅延回路２０１および６タップフィルタ５０３で水平方向のフィルタ処理を実行する（ブロック２のＦ１）。
【０１３８】
次に、遅延回路３０２および６タップフィルタ３０３でブロック２の整数画素位置の画素データの垂直方向のフィルタ処理と、遅延回路２０２および６タップフィルタ５１１によりブロック２の６タップフィルタ５０３で処理された後のデータの垂直方向のフィルタ処理を実行する（ブロック２のＦ２）。このとき、同時に、ブロック３について、遅延回路２０１および６タップフィルタ５０３で水平方向のフィルタ処理を実行する（ブロック３のＦ１）。以下、同様に図１６（ｂ）に示すようにブロック３の垂直方向のフィルタ処理とブロック４の水平方向のフィルタ処理を同時に行う。
【０１３９】
上記構成をとることによって、中間画素格納メモリ３０１の画素容量は実施の形態１と比べて多く必要とするが、マルチフレームメモリ４０２から動き補償装置３００への画素転送量は、最大のブロック形状である１６×１６を１ブロック転送する場合と、最小のブロック形状である４×４を１６ブロック転送する場合に次式で表されるようになる。
（（１６＋５）×（１６＋５）×１画素幅×  １ブロック＝    ４４１…（３７）
（（  ４＋５）×（  ４＋５）×１画素幅×１６ブロック＝１，２９６…（３８）
【０１４０】
従って、式２２、式２３、式３７、及び式３８に示すように、従来の転送量に較べて１６×１６ブロック形状では、１／４．６に、４×４ブロック形状では、１／２．７に抑えることを実現する。
【０１４１】
また、中間画素データに加えて整数画素位置の画素データを中間画素格納メモリ３０１に格納しているので、垂直方向のフィルタ処理と他のブロックの水平方向のフィルタ処理とを並列に行うことができ、処理速度を向上させることができる。
【０１４２】
（実施の形態５）
さらに、上記各実施の形態で示した動き補償装置、この動き補償装置を用いた画面間予測符号化装置、または画面間予測復号化装置をソフトウェアにより実現するためのプログラムを、フレキシブルディスク等の記憶媒体に記録するようにすることにより、上記各実施の形態で示した処理を、独立したコンピュータシステムにおいて簡単に実施することが可能となる。
【０１４３】
図１７は、上記実施の形態１から実施の形態４の動き補償装置、この動き補償装置を用いた画面間予測符号化装置、または画面間予測復号化装置を実現するプログラムを格納したフレキシブルディスクを用いて、コンピュータシステムにより実施する場合の説明図である。
【０１４４】
図１７（ｂ）は、フレキシブルディスクの正面からみた外観、断面構造、及びフレキシブルディスクを示し、図１７（ａ）は、記録媒体本体であるフレキシブルディスクの物理フォーマットの例を示している。フレキシブルディスクＦＤはケースＦ内に内蔵され、該ディスクの表面には、同心円状に外周からは内周に向かって複数のトラックＴｒが形成され、各トラックは角度方向に１６のセクタＳｅに分割されている。従って、上記プログラムを格納したフレキシブルディスクでは、上記フレキシブルディスクＦＤ上に割り当てられた領域に、上記プログラムとしての動き補償装置、この動き補償装置を用いた画面間予測符号化装置、または画面間予測復号化装置が記録されている。
【０１４５】
また、図１７（ｃ）は、フレキシブルディスクＦＤに上記プログラムの記録再生を行うための構成を示す。上記プログラムをフレキシブルディスクＦＤに記録する場合は、コンピュータシステムＣｓから上記プログラムとしての動き補償装置、この動き補償装置を用いた画面間予測符号化装置、または画面間予測復号化装置をフレキシブルディスクドライブを介して書き込む。また、フレキシブルディスク内のプログラムにより上記動き補償装置、この動き補償装置を用いた画面間予測符号化装置、または画面間予測復号化装置をコンピュータシステム中に構築する場合は、フレキシブルディスクドライブによりプログラムをフレキシブルディスクから読み出し、コンピュータシステムに転送する。
【０１４６】
なお、上記説明では、記録媒体としてフレキシブルディスクを用いて説明を行ったが、光ディスクを用いても同様に行うことができる。また、記録媒体はこれに限らず、ＩＣカード、ＲＯＭカセット等、プログラムを記録できるものであれば同様に実施することができる。
【０１４７】
さらにここで、上記各実施の形態で示した動き補償装置、この動き補償装置を用いた画面間予測符号化装置、または画面間予測復号化装置の応用例とそれを用いたシステムを説明する。
【０１４８】
図１８は、コンテンツ配信サービスを実現するコンテンツ供給システムex１００の全体構成を示すブロック図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex１０７〜ex１１０が設置されている。
【０１４９】
このコンテンツ供給システムex１００は、例えば、インターネットex１０１にインターネットサービスプロバイダex１０２および電話網ex１０４、および基地局ex１０７〜ex１１０を介して、コンピュータex１１１、ＰＤＡ（personal digital assistant）ex１１２、カメラex１１３、携帯電話ex１１４、カメラ付きの携帯電話ｅｘ１１５などの各機器が接続される。
【０１５０】
しかし、コンテンツ供給システムex１００は図１８のような組合せに限定されず、いずれかを組み合わせて接続するようにしてもよい。また、固定無線局である基地局ex１０７〜ex１１０を介さずに、各機器が電話網ex１０４に直接接続されてもよい。
【０１５１】
カメラex１１３はデジタルビデオカメラ等の動画撮影が可能な機器である。また、携帯電話は、ＰＤＣ（Personal Digital Communications）方式、ＣＤＭＡ（Code Division Multiple Access）方式、Ｗ−ＣＤＭＡ（Wideband-Code Division Multiple Access）方式、若しくはＧＳＭ（Global System for Mobile Communications）方式の携帯電話機、またはＰＨＳ（Personal Handyphone System）等であり、いずれでも構わない。
【０１５２】
また、ストリーミングサーバex１０３は、カメラex１１３から基地局ex１０９、電話網ex１０４を通じて接続されており、カメラex１１３を用いてユーザが送信する符号化処理されたデータに基づいたライブ配信等が可能になる。撮影したデータの符号化処理はカメラex１１３で行っても、データの送信処理をするサーバ等で行ってもよい。また、カメラex１１６で撮影した動画データはコンピュータex１１１を介してストリーミングサーバex１０３に送信されてもよい。カメラex１１６はデジタルカメラ等の静止画、動画が撮影可能な機器である。この場合、動画データの符号化はカメラex１１６で行ってもコンピュータex１１１で行ってもどちらでもよい。また、符号化処理はコンピュータex１１１やカメラex１１６が有するＬＳＩex１１７において処理することになる。なお、画面間予測符号化・復号化用のソフトウェアをコンピュータex１１１等で読み取り可能な記録媒体である何らかの蓄積メディア（ＣＤ−ＲＯＭ、フレキシブルディスク、ハードディスクなど）に組み込んでもよい。さらに、カメラ付きの携帯電話ex１１５で動画データを送信してもよい。このときの動画データは携帯電話ex１１５が有するＬＳＩで符号化処理されたデータである。
【０１５３】
このコンテンツ供給システムex１００では、ユーザがカメラex１１３、カメラex１１６等で撮影しているコンテンツ（例えば、音楽ライブを撮影した映像等）を上記実施の形態同様に符号化処理してストリーミングサーバex１０３に送信する一方で、ストリーミングサーバex１０３は要求のあったクライアントに対して上記コンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex１１１、ＰＤＡex１１２、カメラex１１３、携帯電話ex１１４等がある。このようにすることでコンテンツ供給システムex１００は、符号化されたデータをクライアントにおいて受信して再生することができ、さらにクライアントにおいてリアルタイムで受信して復号化し、再生することにより、個人放送をも実現可能になるシステムである。
【０１５４】
このシステムを構成する各機器の符号化、復号化には上記各実施の形態で示した画面間予測符号化装置または画面間予測復号化装置を用いるようにすればよい。
【０１５５】
その一例として携帯電話について説明する。
図１９は、上記実施の形態で説明した画面間予測符号化装置と画面間予測復号化装置を用いた携帯電話ex１１５を示す図である。携帯電話ex１１５は、基地局ex１１０との間で電波を送受信するためのアンテナex２０１、ＣＣＤカメラ等の映像、静止画を撮ることが可能なカメラ部ex２０３、カメラ部ex２０３で撮影した映像、アンテナex２０１で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex２０２、操作キーｅｘ２０４群から構成される本体部、音声出力をするためのスピーカ等の音声出力部ex２０８、音声入力をするためのマイク等の音声入力部ex２０５、撮影した動画もしくは静止画のデータ、受信したメールのデータ、動画のデータもしくは静止画のデータ等、符号化されたデータまたは復号化されたデータを保存するための記録メディアex２０７、携帯電話ex１１５に記録メディアex２０７を装着可能とするためのスロット部ex２０６を有している。記録メディアex２０７はＳＤカード等のプラスチックケース内に電気的に書換えや消去が可能な不揮発性メモリであるＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）の一種であるフラッシュメモリ素子を格納したものである。
【０１５６】
さらに、携帯電話ex１１５について図２０を用いて説明する。携帯電話ex１１５は表示部ex２０２及び操作キーｅｘ２０４を備えた本体部の各部を統括的に制御するようになされた主制御部ex３１１に対して、電源回路部ex３１０、操作入力制御部ex３０４、画像符号化部ex３１２、カメラインターフェース部ex３０３、ＬＣＤ（Liquid Crystal Display）制御部ex３０２、画像復号化部ex３０９、多重分離部ex３０８、記録再生部ex３０７、変復調回路部ex３０６及び音声処理部ex３０５が同期バスex３１３を介して互いに接続されている。
【０１５７】
電源回路部ex３１０は、ユーザの操作により終話及び電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することによりカメラ付ディジタル携帯電話ex１１５を動作可能な状態に起動する。
【０１５８】
携帯電話ex１１５は、ＣＰＵ、ＲＯＭ及びＲＡＭ等でなる主制御部ex３１１の制御に基づいて、音声通話モード時に音声入力部ex２０５で集音した音声信号を音声処理部ex３０５によってディジタル音声データに変換し、これを変復調回路部ex３０６でスペクトラム拡散処理し、送受信回路部ex３０１でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex２０１を介して送信する。また携帯電話機ex１１５は、音声通話モード時にアンテナex２０１で受信した受信データを増幅して周波数変換処理及びアナログディジタル変換処理を施し、変復調回路部ex３０６でスペクトラム逆拡散処理し、音声処理部ex３０５によってアナログ音声データに変換した後、これを音声出力部ex２０８を介して出力する。
【０１５９】
さらに、データ通信モード時に電子メールを送信する場合、本体部の操作キーｅｘ２０４の操作によって入力された電子メールのテキストデータは操作入力制御部ex３０４を介して主制御部ex３１１に送出される。主制御部ex３１１は、テキストデータを変復調回路部ex３０６でスペクトラム拡散処理し、送受信回路部ex３０１でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex２０１を介して基地局ex１１０へ送信する。
【０１６０】
データ通信モード時に画像データを送信する場合、カメラ部ex２０３で撮像された画像データをカメラインターフェース部ex３０３を介して画像符号化部ex３１２に供給する。また、画像データを送信しない場合には、カメラ部ex２０３で撮像した画像データをカメラインターフェース部ex３０３及びＬＣＤ制御部ex３０２を介して表示部ex２０２に直接表示することも可能である。
【０１６１】
画像符号化部ex３１２は、本願発明で説明した画面間予測符号化装置を備えた構成であり、カメラ部ex２０３から供給された画像データを上記実施の形態で示した画面間予測符号化装置に用いた符号化方法によって圧縮符号化することにより符号化画像データに変換し、これを多重分離部ex３０８に送出する。また、このとき同時に携帯電話機ex１１５は、カメラ部ex２０３で撮像中に音声入力部ex２０５で集音した音声を音声処理部ex３０５を介してディジタルの音声データとして多重分離部ex３０８に送出する。
【０１６２】
多重分離部ex３０８は、画像符号化部ex３１２から供給された符号化画像データと音声処理部ex３０５から供給された音声データとを所定の方式で多重化し、その結果得られる多重化データを変復調回路部ex３０６でスペクトラム拡散処理し、送受信回路部ex３０１でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex２０１を介して送信する。
【０１６３】
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、アンテナex２０１を介して基地局ex１１０から受信した受信データを変復調回路部ex３０６でスペクトラム逆拡散処理し、その結果得られる多重化データを多重分離部ex３０８に送出する。
【０１６４】
また、アンテナex２０１を介して受信された多重化データを復号化するには、多重分離部ex３０８は、多重化データを分離することにより画像データのビットストリームと音声データのビットストリームとに分け、同期バスex３１３を介して当該符号化画像データを画像復号化部ex３０９に供給すると共に当該音声データを音声処理部ex３０５に供給する。
【０１６５】
次に、画像復号化部ex３０９は、本願発明で説明した画面間予測復号化装置を備えた構成であり、画像データのビットストリームを上記実施の形態で示した符号化方法に対応した復号化方法で復号化することにより再生動画像データを生成し、これをＬＣＤ制御部ex３０２を介して表示部ex２０２に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まれる動画データが表示される。このとき同時に音声処理部ex３０５は、音声データをアナログ音声データに変換した後、これを音声出力部ex２０８に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まる音声データが再生される。
【０１６６】
なお、上記システムの例に限られず、最近は衛星、地上波によるディジタル放送が話題となっており、図２１に示すようにディジタル放送用システムにも上記実施の形態の少なくとも画面間予測符号化装置または画面間予測復号化装置のいずれかを組み込むことができる。具体的には、放送局ex４０９では映像情報のビットストリームが電波を介して通信または放送衛星ex４１０に伝送される。これを受けた放送衛星ex４１０は、放送用の電波を発信し、この電波を衛星放送受信設備をもつ家庭のアンテナex４０６で受信し、テレビ（受信機）ex４０１またはセットトップボックス（ＳＴＢ）ex４０７などの装置によりビットストリームを復号化してこれを再生する。また、記録媒体であるCDやDVD等の蓄積メディアex４０２に記録したビットストリームを読み取り、復号化する再生装置ex４０３にも上記実施の形態で示した画面間予測復号化装置を実装することが可能である。この場合、再生された映像信号はモニタex４０４に表示される。また、ケーブルテレビ用のケーブルex４０５または衛星／地上波放送のアンテナex４０６に接続されたセットトップボックスex４０７内に画面間予測復号化装置を実装し、これをテレビのモニタex４０８で再生する構成も考えられる。このときセットトップボックスではなく、テレビ内に画面間予測復号化装置を組み込んでも良い。また、アンテナex４１１を有する車ex４１２で衛星ex４１０からまたは基地局ex１０７等から信号を受信し、車ex４１２が有するカーナビゲーションex４１３等の表示装置に動画を再生することも可能である。
【０１６７】
更に、画像信号を上記実施の形態で示した画面間予測符号化装置で符号化し、記録媒体に記録することもできる。具体例としては、DVDディスクｅｘ４２１に画像信号を記録するDVDレコーダや、ハードディスクに記録するディスクレコーダなどのレコーダｅx４２０がある。更にSDカードｅｘ４２２に記録することもできる。レコーダｅｘ４２０が上記実施の形態で示した画面間予測復号化装置を備えていれば、DVDディスクｅｘ４２１やSDカードｅｘ４２２に記録した画像信号を再生し、モニタｅｘ４０８で表示することができる。
【０１６８】
なお、カーナビゲーションex４１３の構成は例えば図２０に示す構成のうち、カメラ部ex２０３とカメラインターフェース部ex３０３、画像符号化部ｅｘ３１２を除いた構成が考えられ、同様なことがコンピュータex１１１やテレビ（受信機）ex４０１等でも考えられる。
【０１６９】
また、上記携帯電話ex１１４等の端末は、符号化器・復号化器を両方持つ送受信型の端末の他に、符号化器のみの送信端末、復号化器のみの受信端末の３通りの実装形式が考えられる。
【０１７０】
このように、上記実施の形態で示した画面間予測符号化装置あるいは画面間予測復号化装置を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記実施の形態で説明した効果を得ることができる。
【０１７１】
また、本発明はかかる上記実施形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
【０１７２】
また、図５、図６、および図１５に示したブロック図の各機能ブロックは典型的には集積回路であるＬＳＩとして実現される。このＬＳＩは１チップ化されても良いし、複数チップ化されても良い。（例えばメモリ以外の機能ブロックが１チップ化されていても良い。）ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０１７３】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０１７４】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【０１７５】
また、各機能ブロックのうち、例えばマルチフレームメモリ４０２のような符号化時または復号化時の参照対象となるデータを格納する手段だけ１チップ化せずに別構成としても良い。この場合、フィルタ処理対象データをフィルタ処理前に一時的に蓄えるバッファメモリをマルチフレームメモリ４０２と遅延回路２０１の間に設けることもできる。
【産業上の利用可能性】
【０１７６】
以上のように、本発明に係る動き補償装置、画面間予測符号化装置および画面間予測復号化装置は、例えばコンテンツ配信装置やディジタル放送装置、携帯電話、ＤＶＤ装置、およびパーソナルコンピュータ等で、効率的に動き補償画素を生成したり、動画像を構成する各ピクチャを符号化して符号列を生成したり、生成された符号列を復号化したりする等に有用である。
【符号の説明】
【０１７７】
１００  動き補償装置（動き補償部）
１０１  動き補償位置判定部
１０２  必要画素判定部
１０３  データ転送制御部
１０４  画素選択部
１０５  中間画素格納メモリ
１０６  高次タップフィルタ部
１０７  線形補間演算部
２０１、２０２  遅延回路
４０２  マルチフレームメモリ
５０３、５１１、６タップフィルタ
２０５、５１２、５１３、５１４、５１８  ビットシフト
５１７  セレクタ加算器
ＭＣｐｅｌ１        マルチフレームメモリ出力画素信号
ＭＣｐｅｌ２        小数精度動き補償画素信号
ＭＣｐｅｌ３        中間画素格納メモリ出力画素信号
ＳｓｅｌＡｄｄ      セレクタ加算器出力信号
ＳｄａｔＣｔｒ      データ転送制御信号
ＳｐｘｌＪｄｇ      必要画素判定信号
ＳｍｃＰｏｓ        動き補償位置判定信号
Ｓｍ１ｈ１          ビットシフト前小数精度画素信号
Ｓｍｈ              小数精度画素信号
Ｓａ１              ビットシフト前小数精度画素信号
Ｓｂ１              ビットシフト前小数精度画素信号
Ｓｊ１              ビットシフト前小数精度画素信号
Ｓｓ                小数精度画素信号
Ｓｊ                小数精度画素信号
Ｓｂ                小数精度画素信号
ＳＭＮ              整数精度画素信号
ＳＧＨ              整数精度画素信号
【図１】
2011101424.tif 000003
【図２】
2011101424.tif 000004
【図３】
2011101424.tif 000005
【図４】
2011101424.tif 000006
【図５】
2011101424.tif 000007
【図６】
2011101424.tif 000008
【図７】
2011101424.tif 000009
【図８】
2011101424.tif 000010
【図９】
2011101424.tif 000011
【図１０】
2011101424.tif 000012
【図１１】
2011101424.tif 000013
【図１２】
2011101424.tif 000014
【図１３】
2011101424.tif 000015
【図１４】
2011101424.tif 000016
【図１５】
2011101424.tif 000017
【図１６】
2011101424.tif 000018
【図１７】
2011101424.tif 000019
【図１８】
2011101424.tif 000020
【図１９】
2011101424.tif 000021
【図２０】
2011101424.tif 000022
【図２１】
2011101424.tif 000023