(57)【要約】【課題】従来に比べて少ない演算量で、比較的高い符号化効率を提供する動きベクトルを生成できる画像処理装置を提供する。【解決手段】サブブロック分割回路３３において、マクロブロックＭＢを複数のサブブロックＳＵＢ＿ＭＢに分割する。動きベクトル生成回路３４は、サブブロックＳＵＢ＿ＭＢ内の第２の代表画素位置の動きベクトルを、隣接するマクロブロックＭＢの第１の代表画素位置の動きベクトルを用いて生成する。サブブロックＳＵＢ＿ＭＢ内の第２の代表画素位置以外の画素位置の動きベクトルとして、当該第２の代表画素位置の動きベクトルを用いる。【選択図】　　　図８
2004104746.tif 000002
【特許請求の範囲】
【請求項１】
複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データの前記ブロック内の画素位置の動きベクトルを、第２の画像データを基に生成する画像処理装置において、
前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという規則がある場合に、
前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記規則に従って検索し、当該第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する演算手段
を有する画像処理装置。
【請求項２】
前記演算手段は、前記第１の画像データに対応する全てのブロックについての前記第１の代表画素位置の前記動きベクトルが収束するまで、あるいは所定の回数、前記第１の代表画素位置の前記動きベクトルの検索を繰り返して行う
請求項１に記載の画像処理装置。
【請求項３】
前記演算手段は、前記ブロック内の全ての画素位置について前記差分に応じた値を算出する
請求項１に記載の画像処理装置。
【請求項４】
前記演算手段は、前記第２の画像データ内の所定の検索範囲内の画素位置の画素データを対象として、前記ブロック内の画素位置に対応する前記第１の画像データの画素データとの間の前記差分が前記所定の基準を満たす画素データを検索して前記動きベクトルの検索を行う
請求項１に記載の画像処理装置。
【請求項５】
前記演算手段は、前記ブロック内の全ての画素位置に対応する前記第１の画像データの画素データと、前記画素位置と当該画素位置の前記動きベクトルとを用いて得られる前記検索範囲内の画素位置に対応する前記第２の画像データの全ての画素データとの差分に応じた値を当該ブロックの残差エネルギーとした場合に、前記動きベクトルの生成を行うブロックの残差エネルギーと、当該ブロックに隣接するブロックの残差エネルギーとの総和が最小になることを前記所定の基準として、前記第１の代表画素位置の前記動きベクトルを検索する
請求項３に記載の画像処理装置。
【請求項６】
前記ブロックの前記第１の代表画素位置をｓ１とし、当該ブロックに隣接する３つのブロックの前記第１の代表画素位置をそれぞれｓ２，ｓ３，ｓ４とし、前記第２の代表画素位置をｓとし、前記第１の画像データの前記第１の代表画素位置ｓ１，ｓ２，ｓ３，ｓ４の前記動きベクトルをそれぞれＭＶ（ｓ１），ＭＶ（ｓ２），ＭＶ（ｓ３），ＭＶ（ｓ４）とし、前記第１の画像データの前記第２の代表画素位置ｓの動きベクトルをＭＶ（ｓ）とし、ｗを画素位置を引数とする重み付け関数とした場合に、
前記演算手段は、前記演算を下記式（１）に基づいて行う
請求項１に記載の画像処理装置。
【数１】
2004104746.tif 000007
【請求項７】
前記ブロックを複数の前記サブブロックに分割する分割手段
をさらに有する請求項１に記載の画像処理装置。
【請求項８】
前記分割手段は、前記ブロックを同じサイズまたは異なるサイズの複数の前記サブブロックに分割する
請求項７に記載の画像処理装置。
【請求項９】
複数の前記サブブロックが異なるサイズを有する場合に、前記サブブロックのサイズを示すデータを、符号化された前記第１の画像データに関連付ける処理手段
をさらに有する請求項８に記載の画像処理装置。
【請求項１０】
前記第１の画像データおよび前記第２の画像データの間引き処理を行う間引き手段
をさらに有し、
前記演算手段は、前記間引き手段で間引き処理された前記第１の画像データおよび前記第２の画像データを対象として前記動きベクトルの第１の検索を行い、前記間引き処理される前の前記２の画像データ内の画素データのうち、前記第１の検索によって得られた前記動きベクトルによって規定される範囲、並びにその周辺数画素位置の範囲内の画素データを対象として前記動きベクトルを検索する
請求項１に記載の画像処理装置。
【請求項１１】
複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データの前記ブロック内の画素位置の動きベクトルを、第２の画像データを基に生成する画像処理方法において、
前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという規則がある場合に、
前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記規則に従って検索する第１の工程と、
前記第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する第２の工程と
を有する画像処理方法。
【請求項１２】
複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データの前記ブロック内の画素位置の動きベクトルを、第２の画像データを基に生成する符号化装置であって、
前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという規則がある場合に、
前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記規則に従って検索し、当該第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する第１の演算手段と、
前記第１の演算手段が生成した前記動きベクトルと前記第２の画像データとを用いて第３の画像データを生成する第２の演算手段と、
前記第１の画像データと、前記第３の画像データとの差分を示す第４の画像データを符号化する符号化手段と
を有する符号化装置。
【請求項１３】
複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データの前記ブロック内の画素位置の動きベクトルを、第２の画像データを基に生成する符号化方法であって、
前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという規則がある場合に、
前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記規則に従って検索する第１の工程と、
前記第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する第２の工程と、
前記第１の工程で検索および前記第２の工程で生成された前記動きベクトルと前記第２の画像データとを用いて第３の画像データを生成する第３の工程と、
前記第１の画像データと、前記第３の画像データとの差分を示す第４の画像データを符号化する第４の工程と
を有する符号化方法。
【請求項１４】
複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データの前記ブロック内の画素位置の動きベクトルを、第２の画像データを基に生成する画像処理装置において、
前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという第１の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第１の規則に従って検索し、当該第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する第１の処理と、
前記ブロック内の全ての画素位置の前記動きベクトルとして前記第１の代表画素位置の前記動きベクトルが用いるという第２の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第２の規則に従って検索する第２の処理と
を行い、
前記第１の処理および前記第２の処理で生成された前記動きベクトルのうち、前記ブロック内の画素位置に対応する前記第１の画像データをより高い符号化効率で符号化する前記動きベクトルを選択する
演算手段
を有する画像処理装置。
【請求項１５】
前記第１の画像データを符号化したデータに、前記選択した動きベクトルを特定するデータ、並びに前記第１の処理および前記第２の処理の何れを用いて前記動きベクトルを選択したかを示す識別データを関連付ける処理手段
をさらに有する請求項１４に記載の画像処理装置。
【請求項１６】
複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データの前記ブロック内の画素位置の動きベクトルを、第２の画像データを基に生成する画像処理方法であって、
前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという第１の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第１の規則に従って検索し、当該第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する第１の工程と、
前記ブロック内の全ての画素位置の前記動きベクトルとして前記第１の代表画素位置の前記動きベクトルが用いるという第２の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第２の規則に従って検索する第２の工程と、
前記第１の工程および前記第２の工程で生成された前記動きベクトルのうち、前記ブロック内の画素位置に対応する前記第１の画像データをより高い符号化効率で符号化する前記動きベクトルを選択する第３の工程と
を有する画像処理方法。
【請求項１７】
複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データの前記ブロック内の画素位置の動きベクトルを、第２の画像データを基に生成する符号化装置であって、
前記第１の画像データと前記第２の画像データとを用いて、前記第１の画像データの前記ブロック内の動きベクトルを生成する第１の演算手段と、
前記第１の演算手段が生成した前記動きベクトルと前記第２の画像データとを用いて第３の画像データを生成する第２の演算手段と、
前記第１の画像データと、前記第３の画像データとの差分を示す第４の画像データを符号化する符号化手段と
を有し、
前記第１の演算手段は、
前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという第１の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第１の規則に従って検索し、当該第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する第１の処理と、
前記ブロック内の全ての画素位置の前記動きベクトルとして前記第１の代表画素データの前記動きベクトルが用いるという第２の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第２の規則に従って検索する第２の処理と
を行い、
前記第１の処理および前記第２の処理で生成された前記動きベクトルのうち、前記ブロック内の画素位置に対応する前記第１の画像データをより高い符号化効率で符号化する前記動きベクトルを選択する
符号化装置。
【請求項１８】
複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データの前記ブロック内の画素位置の動きベクトルを、第２の画像データを基に生成する符号化方法であって、
前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという第１の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第１の規則に従って検索し、当該第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する第１の工程と、
前記ブロック内の全ての画素位置の前記動きベクトルとして前記第１の代表画素データの前記動きベクトルが用いるという第２の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第２の規則に従って検索する第２の工程と、
前記第１の工程および前記第２の工程で生成された前記動きベクトルのうち、前記ブロック内の画素位置に対応する前記第１の画像データをより高い符号化効率で符号化する前記動きベクトルを選択する第３の工程と、
前記第２の工程および前記第３の工程で得られた前記動きベクトルと前記第２の画像データとを用いて第３の画像データを生成する第４の工程と、
前記第１の画像データと、前記第３の画像データとの差分を示す第４の画像データを符号化する第５の工程と
を有する符号化方法。
【請求項１９】
複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データおよび第２の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データと前記第２の画像データとを補間する第３の画像データを生成する画像処理装置において、
前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという規則がある場合に、
前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記規則に従って検索し、当該第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する演算手段と、
前記第１の画像データまたは前記第２の画像データと、前記動きベクトルとを用いて前記第３の画像データを生成する画像生成手段と
を有する画像処理装置。
【請求項２０】
複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データおよび第２の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データと前記第２の画像データとを補間する第３の画像データを生成する画像処理方法において、
前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという規則がある場合に、
前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記規則に従って検索する第１の工程と、
前記第１の工程で検索された前記第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する第２の工程と、
前記第１の画像データまたは前記第２の画像データと、前記第１の工程および前記第２の工程で得られた前記動きベクトルとを用いて前記第３の画像データを生成する第３の工程と
を有する画像処理方法。
【請求項２１】
複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データおよび第２の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データと前記第２の画像データとを補間する第３の画像データを生成する画像処理装置において、
前記第１の画像データと前記第２の画像データとの間の動きベクトルを生成する演算手段と、
前記第１の画像データまたは前記第２の画像データと、前記動きベクトルとを用いて前記第３の画像データを生成する画像生成手段と
を有し、
前記演算手段は、
前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという第１の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第１の規則に従って検索し、当該第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する第１の処理と、
前記ブロック内の全ての画素位置の前記動きベクトルとして前記第１の代表画素データの前記動きベクトルが用いるという第２の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第２の規則に従って検索する第２の処理と
を行い、
前記第１の処理および前記第２の処理で生成された前記動きベクトルのうち、前記ブロック内の画素位置に対応する前記第１の画像データをより高い符号化効率で符号化する前記動きベクトルを選択する
画像処理装置。
【請求項２２】
複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データおよび第２の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データと前記第２の画像データとを補間する第３の画像データを生成する画像処理方法において、
前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという第１の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第１の規則に従って検索し、当該第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する第１の工程と、
前記ブロック内の全ての画素位置の前記動きベクトルとして前記第１の代表画素データの前記動きベクトルが用いるという第２の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第２の規則に従って検索する第２の工程と、
前記第１の工程および前記第２の工程で生成された前記動きベクトルのうち、前記ブロック内の画素位置に対応する前記第１の画像データをより高い符号化効率で符号化する前記動きベクトルを選択する第３の工程と、
前記第１の画像データまたは前記第２の画像データと、前記第３の工程で選択させた前記動きベクトルとを用いて前記第３の画像データを生成する第４の工程と
を有する画像処理方法。
【請求項２３】
複数の画素位置を含む所定のサイズのブロックが規定されており、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として画像処理を行い、前記ブロック内の第１の代表画素位置の動きベクトルを用いて当該ブロック内の他の画素位置の動きベクトルを生成する画像処理装置であって、
前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを生成し、
前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを、当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとする
演算手段
を有する画像処理装置。
【請求項２４】
複数の画素位置を含む所定のサイズのブロックが規定されており、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として画像処理を行い、前記ブロック内の第１の代表画素位置の動きベクトルを用いて当該ブロック内の他の画素位置の動きベクトルを生成する画像処理方法であって、
前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを生成し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを、当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとする工程
を有する画像処理方法。
【請求項２５】
複数の画素位置を含む所定のサイズのブロックが規定されており、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として画像処理を行い、前記ブロック内の第１の代表画素位置の動きベクトルを用いて当該ブロック内の他の画素位置の動きベクトルを生成し、当該動きベクトルを用いて復号を行う復号装置であって、
画像データおよび動きベクトルを復号して前記第１の画像データおよび前記第１の代表画素位置の前記動きベクトルを生成する復号手段と、
前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の前記復号手段で復号された前記動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを生成し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを、当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとする第１の演算手段と、
前記第１の演算手段で得た前記動きベクトルおよび第２の画像データを用いて第３の画像データを生成する第２の演算手段と、
前記第１の画像データと前記第３の画像データを用いて第４の画像データを生成する第３の演算手段と
を有する復号装置。
【請求項２６】
複数の画素位置を含む所定のサイズのブロックが規定されており、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として画像処理を行い、前記ブロック内の第１の代表画素位置の動きベクトルを用いて当該ブロック内の他の画素位置の動きベクトルを生成し、当該動きベクトルを用いて復号を行う復号方法であって、
画像データおよび動きベクトルを復号して前記第１の画像データおよび前記第１の代表画素位置の前記動きベクトルを生成する第１の工程と、
前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の前記第１の工程で復号された前記動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを生成し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを、当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとする第２の工程と、
前記第１の工程および前記第２の工程で得られた前記動きベクトルおよび第２の画像データを用いて第３の画像データを生成する第３の工程と、
前記第１の画像データと前記第３の画像データを用いて第４の画像データを生成する第４の工程と
を有する復号方法。
【請求項２７】
複数の画素位置を含む所定のサイズのブロックが規定されており、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として画像処理を行い、前記ブロック内の第１の代表画素位置の動きベクトルを用いて当該ブロック内の他の画素位置の動きベクトルを生成する画像処理装置であって、
前記第１の代表画素位置の前記動きベクトルと関連付けられ、符号化側で前記動きベクトルが第１の処理及び第２の処理のいずれで生成されたかを示す識別データに基づいて、
前記第１の代表画素位置の前記動きベクトルが前記第１の処理で生成された場合に、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを生成し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用い、
前記第１の代表画素位置の前記動きベクトルが前記第２の処理で生成された場合に、前記ブロック内の全ての画素位置の前記動きベクトルとして前記第１の代表画素データの前記動きベクトルを用いる
演算手段
を有する画像処理装置。
【請求項２８】
複数の画素位置を含む所定のサイズのブロックが規定されており、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として画像処理を行い、前記ブロック内の第１の代表画素位置の動きベクトルを用いて当該ブロック内の他の画素位置の動きベクトルを生成する画像処理方法であって、
前記第１の代表画素位置の前記動きベクトルと関連付けられ、符号化側で前記動きベクトルが第１の処理及び第２の処理のいずれで生成されたかを示す識別データに基づいて、
前記第１の代表画素位置の前記動きベクトルが前記第１の処理で生成された場合に、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを生成し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用い、
前記第１の代表画素位置の前記動きベクトルが前記第２の処理で生成された場合に、前記ブロック内の全ての画素位置の前記動きベクトルとして前記第１の代表画素データの前記動きベクトルを用いる工程
を有する画像処理方法。
【請求項２９】
複数の画素位置を含む所定のサイズのブロックが規定されており、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として画像処理を行い、前記ブロック内の第１の代表画素位置の動きベクトルを用いて当該ブロック内の他の画素位置の動きベクトルを生成し、当該動きベクトルを用いて復号を行う復号装置であって、
画像データおよび動きベクトルを復号して前記第１の画像データおよび前記第１の代表画素位置の前記動きベクトルを生成する復号手段と、
前記第１の代表画素位置の前記動きベクトルと関連付けられた識別データに基づいて、前記第１の代表画素位置の前記動きベクトルが第１の処理で生成された場合に、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを生成し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用い、前記第１の代表画素位置の前記動きベクトルが第２の処理で生成された場合に、前記ブロック内の全ての画素位置の前記動きベクトルとして前記第１の代表画素データの前記動きベクトルを用いる第１の演算手段と、
前記第１の演算手段によって得られた前記動きベクトルおよび第２の画像データを用いて第３の画像データを生成する第２の演算手段と、
前記第１の画像データと前記第３の画像データを用いて第４の画像データを生成する第３の演算手段と
を有する復号装置。
【請求項３０】
複数の画素位置を含む所定のサイズのブロックが規定されており、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として画像処理を行い、前記ブロック内の第１の代表画素位置の動きベクトルを用いて当該ブロック内の他の画素位置の動きベクトルを生成し、当該動きベクトルを用いて復号を行う復号方法であって、
画像データおよび動きベクトルを復号して前記第１の画像データおよび前記第１の代表画素位置の前記動きベクトルを生成する第１の工程と、
前記第１の代表画素位置の前記動きベクトルと関連付けられた識別データに基づいて、前記第１の代表画素位置の前記動きベクトルが第１の処理で生成された場合に、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを生成し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用い、前記第１の代表画素位置の前記動きベクトルが第２の処理で生成された場合に、前記ブロック内の全ての画素位置の前記動きベクトルとして前記第１の代表画素データの前記動きベクトルを用いる第２の工程と、
前記第２の工程によって得られた前記動きベクトルおよび第２の画像データを用いて第３の画像データを生成する第３の工程と、
前記第１の画像データと前記第３の画像データを用いて第４の画像データを生成する第４の工程と
を有する復号方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像データの動きベクトルを生成する画像処理装置、当該画像処理装置を用いた符号化装置および復号装置、並びにそれらの方法に関する。
【０００２】
【従来の技術】
近年、画像データデジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮するＭＰＥＧ（Ｍｏｖｉｎｇ　Ｐｉｃｔｕｒｅ　Ｅｘｐｅｒｔｓ　Ｇｒｏｕｐ）などの方式に準拠した装置が、放送局などの情報配信、及び一般家庭における情報受信の双方において普及しつつある。
【０００３】
特に、ＭＰＥＧ２（ＩＳＯ／ＩＥＣ１３８１８−２）は、汎用画像符号化方式として定義されており、飛び越し走査画像及び順次走査画像の双方、並びに標準解像度画像及び高精細画像を網羅する標準で、プロフェッショナル用途及びコンシューマー用途の広範なアプリケーションに現在広く用いられている。
ＭＰＥＧ２圧縮方式を用いることにより、例えば７２０×４８０画素を持つ標準解像度の飛び越し走査画像であれば４〜８Ｍｂｐｓ、１９２０×１０８８画素を持つ高解像度の飛び越し走査画像であれば１８〜２２Ｍｂｐｓの符号量（ビットレート）を割り当てることで、高い圧縮率と良好な画質の実現が可能である。
【０００４】
ＭＰＥＧ２は主として放送用に適合する高画質符号化を対象としていたが、ＭＰＥＧ１より低い符号量（ビットレート）、つまりより高い圧縮率の符号化方式には対応していなかった。携帯端末の普及により、今後そのような符号化方式のニーズは高まると思われ、これに対応してＭＰＥＧ４符号化方式の標準化が行われた。画像符号化方式に関しては、１９９８年１２月にＩＳＯ／ＩＥＣ１４４９６−２としてその規格が国際標準に承認された。
【０００５】
さらに、近年、当初テレビ会議用の画像符号化を目的として、Ｈ．　２６Ｌ（ＩＴＵ−Ｔ　Ｑ６／１６　ＶＣＥＧ）という標準の規格化が進んでいる。Ｈ．２６ＬはＭＰＥＧ２やＭＰＥＧ４といった従来の符号化方式に比べ、その符号化、復号化により多くの演算量が要求されるものの、より高い符号化効率が実現されることが知られている。また、現在、ＭＰＥＧ４の活動の一環として、このＨ．２６Ｌをベースに、Ｈ．２６Ｌ規格ではサポートされない機能をも取り入れ、より高い符号化効率を実現する標準化がＪｏｉｎｔ　Ｍｏｄｅｌ　ｏｆ　Ｅｎｈａｎｃｅｄ−Ｃｏｍｐｒｅｓｓｉｏｎ　Ｖｉｄｅｏ　Ｃｏｄｉｎｇとして行われている。
【０００６】
このようなＭＰＥＧおよびＨ．２６Ｌ規格の符号化装置および復号装置などの画像処理装置では、高い符号化効率を得るために、種々の演算により動きベクトルを生成している。
【０００７】
【発明が解決しようとする課題】
しかしながら、上述した従来の画像処理装置では、動きベクトルの生成に伴う演算量が大きく、負荷が大きいという問題がある。
また、上述した従来の画像処理装置では、動きベクトルの生成に伴う演算を単に簡略化して演算量を削減すると、十分な符号化効率が得られないという問題がある。
【０００８】
本発明はかかる事情に鑑みてなされたものであり、従来に比べて少ない演算量で、比較的高い符号化効率を提供する動きベクトルを生成できる画像処理装置、符号化装置およびそれらの方法を提供することを目的とする。
また、本発明によれば、上述した画像処理装置、符号化装置およびそれらの方法によって生成された動きベクトルを用いた復号処理を可能にする画像処理装置、符号化装置、復号装置およびそれらの方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記の目的を達成するため、第１の発明の画像処理装置は、複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データの前記ブロック内の画素位置の動きベクトルを、第２の画像データを基に生成する画像処理装置であって、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記規則に従って検索し、当該第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する演算手段を有する。
【００１０】
第１の発明の前記画像処理装置の作用は以下のようになる。
前記演算手段が、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記規則に従って検索する。
そして、前記演算手段が、当該検索によって得た第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する。
【００１１】
第２の発明の画像処理方法は、複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データの前記ブロック内の画素位置の動きベクトルを、第２の画像データを基に生成する画像処理方法であって、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記規則に従って検索する第１の工程と、前記第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する第２の工程とを有する。
【００１２】
第３の発明の符号化装置は、複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データの前記ブロック内の画素位置の動きベクトルを、第２の画像データを基に生成する符号化装置であって、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記規則に従って検索し、当該第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する第１の演算手段と、前記第１の演算手段が生成した前記動きベクトルと前記第２の画像データとを用いて第３の画像データを生成する第２の演算手段と、前記第１の画像データと、前記第３の画像データとの差分を示す第４の画像データを符号化する符号化手段とを有する。
【００１３】
第３の発明の前記符号化装置の作用は以下のようになる。
前記第１の演算手段が、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記規則に従って検索する。
そして、前記第１の演算手段が、当該検索によって得た第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する。
そして、前記第２の演算手段が、前記第１の演算手段が生成した前記動きベクトルと前記第２の画像データとを用いて第３の画像データを生成する。
そして、前記符号化手段が、前記第１の画像データと、前記第３の画像データとの差分を示す第４の画像データを符号化する。
【００１４】
第４の発明の符号化方法は、複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データの前記ブロック内の画素位置の動きベクトルを、第２の画像データを基に生成する符号化方法であって、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記規則に従って検索する第１の工程と、前記第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する第２の工程と、前記第１の工程で検索および前記第２の工程で生成された前記動きベクトルと前記第２の画像データとを用いて第３の画像データを生成する第３の工程と、前記第１の画像データと、前記第３の画像データとの差分を示す第４の画像データを符号化する第４の工程とを有する。
【００１５】
第５の発明の画像処理装置は、複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データの前記ブロック内の画素位置の動きベクトルを、第２の画像データを基に生成する画像処理装置であって、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという第１の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第１の規則に従って検索し、当該第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する第１の処理と、前記ブロック内の全ての画素位置の前記動きベクトルとして前記第１の代表画素データの前記動きベクトルが用いるという第２の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第２の規則に従って検索する第２の処理とを行い、前記第１の処理および前記第２の処理で生成された前記動きベクトルのうち、前記ブロック内の画素位置に対応する前記第１の画像データをより高い符号化効率で符号化する前記動きベクトルを選択する演算手段を有する。
【００１６】
第６の発明の画像処理方法は、複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データの前記ブロック内の画素位置の動きベクトルを、第２の画像データを基に生成する画像処理方法であって、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという第１の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第１の規則に従って検索し、当該第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する第１の工程と、前記ブロック内の全ての画素位置の前記動きベクトルとして前記第１の代表画素データの前記動きベクトルが用いるという第２の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第２の規則に従って検索する第２の工程と、前記第１の工程および前記第２の工程で生成された前記動きベクトルのうち、前記ブロック内の画素位置に対応する前記第１の画像データをより高い符号化効率で符号化する前記動きベクトルを選択する第３の工程とを有する。
【００１７】
第７の発明の符号化装置は、複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データの前記ブロック内の画素位置の動きベクトルを、第２の画像データを基に生成する符号化装置であって、前記第１の画像データと前記第２の画像データとを用いて、前記第１の画像データの前記ブロック内の動きベクトルを生成する第１の演算手段と、前記第１の演算手段が生成した前記動きベクトルと前記第２の画像データとを用いて第３の画像データを生成する第２の演算手段と、前記第１の画像データと、前記第３の画像データとの差分を示す第４の画像データを符号化する符号化手段とを有し、前記第１の演算手段は、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという第１の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第１の規則に従って検索し、当該第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する第１の処理と、前記ブロック内の全ての画素位置の前記動きベクトルとして前記第１の代表画素データの前記動きベクトルが用いるという第２の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第２の規則に従って検索する第２の処理とを行い、前記第１の処理および前記第２の処理で生成された前記動きベクトルのうち、前記ブロック内の画素位置に対応する前記第１の画像データをより高い符号化効率で符号化する前記動きベクトルを選択する。
【００１８】
第８の発明の符号化方法は、複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データの前記ブロック内の画素位置の動きベクトルを、第２の画像データを基に生成する符号化方法であって、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという第１の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第１の規則に従って検索し、当該第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する第１の工程と、前記ブロック内の全ての画素位置の前記動きベクトルとして前記第１の代表画素データの前記動きベクトルが用いるという第２の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第２の規則に従って検索する第２の工程と、前記第１の工程および前記第２の工程で生成された前記動きベクトルのうち、前記ブロック内の画素位置に対応する前記第１の画像データをより高い符号化効率で符号化する前記動きベクトルを選択する第３の工程と、前記第２の工程および前記第３の工程で得られた前記動きベクトルと前記第２の画像データとを用いて第３の画像データを生成する第４の工程と、前記第１の画像データと、前記第３の画像データとの差分を示す第４の画像データを符号化する第５の工程とを有する。
【００１９】
第９の発明の画像処理装置は、複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データおよび第２の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データと前記第２の画像データとを補間する第３の画像データを生成する画像処理装置であって、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記規則に従って検索し、当該第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する演算手段と、前記第１の画像データまたは前記第２の画像データと、前記動きベクトルとを用いて前記第３の画像データを生成する画像生成手段とを有する。
【００２０】
第９の発明の画像処理装置の作用は以下のようになる。
前記演算手段が、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記規則に従って検索する。
そして、前記演算手段が、当該第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する。
そして、前記画像生成手段が、前記第１の画像データまたは前記第２の画像データと、前記動きベクトルとを用いて前記第３の画像データを生成する。
【００２１】
第１０の発明の画像処理方法は、複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データおよび第２の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データと前記第２の画像データとを補間する第３の画像データを生成する画像処理方法であって、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記規則に従って検索する第１の工程と、前記第１の工程で検索された前記第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する第２の工程と、前記第１の画像データまたは前記第２の画像データと、前記第１の工程および前記第２の工程で得られた前記動きベクトルとを用いて前記第３の画像データを生成する第３の工程とを有する。
【００２２】
第１１の発明の画像処理装置は、複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データおよび第２の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データと前記第２の画像データとを補間する第３の画像データを生成する画像処理装置であって、前記第１の画像データと前記第２の画像データとの間の動きベクトルを生成する演算手段と、前記第１の画像データまたは前記第２の画像データと、前記動きベクトルとを用いて前記第３の画像データを生成する画像生成手段とを有し、前記演算手段は、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという第１の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第１の規則に従って検索し、当該第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する第１の処理と、前記ブロック内の全ての画素位置の前記動きベクトルとして前記第１の代表画素データの前記動きベクトルが用いるという第２の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第２の規則に従って検索する第２の処理とを行い、前記第１の処理および前記第２の処理で生成された前記動きベクトルのうち、前記ブロック内の画素位置に対応する前記第１の画像データをより高い符号化効率で符号化する前記動きベクトルを選択する。
【００２３】
第１２の発明の画像処理方法は、複数の画素位置を含む所定のサイズのブロックが規定されている場合に、第１の画像データおよび第２の画像データを前記ブロック内の複数の画素位置の画素データを単位として処理し、前記第１の画像データと前記第２の画像データとを補間する第３の画像データを生成する画像処理方法であって、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを規定し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用いるという第１の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた値が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第１の規則に従って検索し、当該第１の代表画素位置の動きベクトルを用いて前記演算を行って前記第２の代表画素位置の前記動きベクトルを生成する第１の工程と、前記ブロック内の全ての画素位置の前記動きベクトルとして前記第１の代表画素データの前記動きベクトルが用いるという第２の規則がある場合に、前記ブロック内の画素位置に対応する前記第１の画像データの画素データと、当該画素位置と当該画素位置の前記動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分が所定の基準を満たすように、前記ブロック内の前記第１の代表画素位置の前記動きベクトルを前記第２の規則に従って検索する第２の工程と、前記第１の工程および前記第２の工程で生成された前記動きベクトルのうち、前記ブロック内の画素位置に対応する前記第１の画像データをより高い符号化効率で符号化する前記動きベクトルを選択する第３の工程と、前記第１の画像データまたは前記第２の画像データと、前記第３の工程で選択させた前記動きベクトルとを用いて前記第３の画像データを生成する第４の工程とを有する。
【００２４】
第１３の発明の画像処理装置は、複数の画素位置を含む所定のサイズのブロックが規定されており、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として画像処理を行い、前記ブロック内の第１の代表画素位置の動きベクトルを用いて当該ブロック内の他の画素位置の動きベクトルを生成する画像処理装置であって、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを生成し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを、当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとする演算手段を有する。
【００２５】
第１４の発明の画像処理方法は、複数の画素位置を含む所定のサイズのブロックが規定されており、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として画像処理を行い、前記ブロック内の第１の代表画素位置の動きベクトルを用いて当該ブロック内の他の画素位置の動きベクトルを生成する画像処理方法であって、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを生成し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを、当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとする工程を有する。
【００２６】
第１５の発明の復号装置は、複数の画素位置を含む所定のサイズのブロックが規定されており、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として画像処理を行い、前記ブロック内の第１の代表画素位置の動きベクトルを用いて当該ブロック内の他の画素位置の動きベクトルを生成し、当該動きベクトルを用いて復号を行う復号装置であって、画像データおよび動きベクトルを復号して前記第１の画像データおよび前記第１の代表画素位置の前記動きベクトルを生成する復号手段と、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の前記復号手段で復号された前記動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを生成し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを、当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとする第１の演算手段と、前記第１の演算手段で得た前記動きベクトルおよび第２の画像データを用いて第３の画像データを生成する第２の演算手段と、前記第１の画像データと前記第３の画像データを用いて第４の画像データを生成する第３の演算手段とを有する。
【００２７】
第１６の発明の復号方法は、複数の画素位置を含む所定のサイズのブロックが規定されており、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として画像処理を行い、前記ブロック内の第１の代表画素位置の動きベクトルを用いて当該ブロック内の他の画素位置の動きベクトルを生成し、当該動きベクトルを用いて復号を行う復号方法であって、画像データおよび動きベクトルを復号して前記第１の画像データおよび前記第１の代表画素位置の前記動きベクトルを生成する第１の工程と、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の前記第１の工程で復号された前記動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを生成し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを、当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとする第２の工程と、前記第１の工程および前記第２の工程で得られた前記動きベクトルおよび第２の画像データを用いて第３の画像データを生成する第３の工程と、前記第１の画像データと前記第３の画像データを用いて第４の画像データを生成する第４の工程とを有する。
【００２８】
第１７の発明の画像処理装置は、複数の画素位置を含む所定のサイズのブロックが規定されており、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として画像処理を行い、前記ブロック内の第１の代表画素位置の動きベクトルを用いて当該ブロック内の他の画素位置の動きベクトルを生成する画像処理装置であって、前記第１の代表画素位置の前記動きベクトルと関連付けられた識別データに基づいて、前記第１の代表画素位置の前記動きベクトルが第１の処理で生成された場合に、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを生成し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用い、前記第１の代表画素位置の前記動きベクトルが第２の処理で生成された場合に、前記ブロック内の全ての画素位置の前記動きベクトルとして前記第１の代表画素データの前記動きベクトルを用いる演算手段を有する。
【００２９】
第１８の発明の画像処理方法は、複数の画素位置を含む所定のサイズのブロックが規定されており、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として画像処理を行い、前記ブロック内の第１の代表画素位置の動きベクトルを用いて当該ブロック内の他の画素位置の動きベクトルを生成する画像処理方法であって、前記第１の代表画素位置の前記動きベクトルと関連付けられた識別データに基づいて、前記第１の代表画素位置の前記動きベクトルが第１の処理で生成された場合に、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを生成し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用い、前記第１の代表画素位置の前記動きベクトルが第２の処理で生成された場合に、前記ブロック内の全ての画素位置の前記動きベクトルとして前記第１の代表画素データの前記動きベクトルを用いる工程を有する。
【００３０】
第１９の発明の復号装置は、複数の画素位置を含む所定のサイズのブロックが規定されており、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として画像処理を行い、前記ブロック内の第１の代表画素位置の動きベクトルを用いて当該ブロック内の他の画素位置の動きベクトルを生成し、当該動きベクトルを用いて復号を行う復号装置であって、画像データおよび動きベクトルを復号して前記第１の画像データおよび前記第１の代表画素位置の前記動きベクトルを生成する復号手段と、前記第１の代表画素位置の前記動きベクトルと関連付けられた識別データに基づいて、前記第１の代表画素位置の前記動きベクトルが第１の処理で生成された場合に、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを生成し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用い、前記第１の代表画素位置の前記動きベクトルが第２の処理で生成された場合に、前記ブロック内の全ての画素位置の前記動きベクトルとして前記第１の代表画素データの前記動きベクトルを用いる第１の演算手段と、前記第１の演算手段によって得られた前記動きベクトルおよび第２の画像データを用いて第３の画像データを生成する第２の演算手段と、前記第１の画像データと前記第３の画像データを用いて第４の画像データを生成する第３の演算手段とを有する。
【００３１】
第２０の発明の復号方法は、複数の画素位置を含む所定のサイズのブロックが規定されており、第１の画像データを前記ブロック内の複数の画素位置の画素データを単位として画像処理を行い、前記ブロック内の第１の代表画素位置の動きベクトルを用いて当該ブロック内の他の画素位置の動きベクトルを生成し、当該動きベクトルを用いて復号を行う復号方法であって、画像データおよび動きベクトルを復号して前記第１の画像データおよび前記第１の代表画素位置の前記動きベクトルを生成する第１の工程と、前記第１の代表画素位置の前記動きベクトルと関連付けられた識別データに基づいて、前記第１の代表画素位置の前記動きベクトルが第１の処理で生成された場合に、前記ブロック、並びに当該ブロックに隣接する前記ブロック内の第１の代表画素位置の動きベクトルを用いた所定の演算によって前記ブロック内のサブブロックの第２の代表画素位置の動きベクトルを生成し、前記サブブロック内の前記第２の代表画素位置の前記動きベクトルを当該サブブロック内の前記第２の代表画素位置以外の画素位置の動きベクトルとして用い、前記第１の代表画素位置の前記動きベクトルが第２の処理で生成された場合に、前記ブロック内の全ての画素位置の前記動きベクトルとして前記第１の代表画素データの前記動きベクトルを用いる第２の工程と、前記第２の工程によって得られた前記動きベクトルおよび第２の画像データを用いて第３の画像データを生成する第３の工程と、前記第１の画像データと前記第３の画像データを用いて第４の画像データを生成する第４の工程とを有する。
【００３２】
【発明の実施の形態】
〔本発明の関連技術〕
図１は、本発明の関連技術に係わる符号化装置５０１の機能ブロック図である。
図１に示す符号化装置５０１において、入力となる画像信号は、まず、Ａ／Ｄ変換回路５０１においてデジタル信号に変換される。次に、出力となる画像圧縮情報のＧＯＰ（Ｇｒｏｕｐ　ｏｆ　Ｐｉｃｔｕｒｅｓ）構造に応じ、画面並べ替え回路５０２においてフレーム画像データの並べ替えが行われる。
そして、イントラ符号化が行われる画像に関しては、フレーム画像データの全体が直交変換回路５０４に入力され、直交変換回路５０４において離散コサイン変換やカルーネン・レーベ変換等の直交変換が施される。
直交変換回路５０４の出力となる変換係数は、量子化回路５０５において量子化処理される。
量子化回路５０５の出力となる、量子化された変換係数は、可逆変換回路５０６に入力され、ここで可変長符号化、算術符号化等の可逆符号化が施された後、バッファ５０７に蓄積され、圧縮された画像データとして出力される。
量子化回路５０５における量子化レートは、レート制御回路５１２によって制御される。同時に、量子化回路５０５の出力となる、量子化された変換係数は、逆量子化回路５０８に入力され、さらに逆直交変換回路５０９において逆直交変換処理が施されて、復号された参照フレーム画像データとなり、その参照フレーム画像データがフレームメモリ５１０に蓄積される。
【００３３】
一方、インター符号化が行われる画像に関しては、画面並べ替え回路５０２から出力されたフレーム画像データが、動き予測・補償回路５１１に入力される。同時に参照フレーム画像データがフレームメモリ５１０より読み出され、動き予測・補償回路５１１によって動きベクトルが生成され、当該動きベクトルおよび参照フレーム画像データを用いて予測フレーム画像データが生成される。予測フレーム画像データが演算回路５０３に出力され、演算回路５０３において、画面並べ替え回路５０２からのフレーム画像データと、動き予測・補償回路５１１からの予測フレーム画像データとの差分を示す画像データが生成され、当該画像データが直交変換回路５０４に出力される。
また、動き補償・予測回路５１１は、動きベクトルを可逆符号化回路５０６に出力し、可逆符号化回路５０６において、動きベクトルが可変長符号化あるいは算術符号化といった可逆符号化処理され、画像信号のヘッダ部に挿入される。その他の処理はイントラ符号化を施される画像信号と同様である。
【００３４】
上述した動き補償・予測回路５１１における動きベクトルの生成は、例えば、下記式（２）で示される。
【００３５】
【数２】
2004104746.tif 000003
【００３６】
上記式（２）において、ｓはマクロブロックＭＢ内の画素位置を示す。
Ｆ＿ＣＵＲ（ｓ）は動きベクトルの生成対象となるフレーム画像データの画素位置ｓの画素データ（画素値）を示し、Ｆ＿ＲＥＦ（ｓ）は参照フレーム画像データの画素位置ｓの画素データを示している。また、ＭＶ（ｓ）は、フレーム画像データの画素位置ｓの動きベクトルを示している。
【００３７】
動きベクトルの生成方法としては、様々なものが提案されているが、現在、最も広範に用いられているのが、以下の式で表されるブロックマッチング（Ｂｌｏｃｋ　Ｍａｔｃｈｉｎｇ　Ａｌｇｏｒｉｔｈｍ、以下、ＢＭＡと呼ぶ）である。ＢＭＡは、例えば、下記式（３）に示すように、フレーム画像データについて画像処理の単位として規定された１６×１６画素のマクロブロックＭＢ内の所定の画素位置ｓ１の動きベクトルＭＶを、当該マクロブロックＭＢ内のその他の画素位置の動きベクトルとして用いる。すなわち、マクロブロックＭＢ内の全ての画素位置で同じ動きベクトルＭＶを用いる。
【００３８】
【数３】
2004104746.tif 000004
【００３９】
ＢＭＡにおいては、各マクロブロックＭＢにおける動きベクトル情報は、隣接するマクロブロックＭＢの動きベクトルＭＶには影響を及ぼさないため、収束演算を必要とせず、その演算量は限られている。
しかし、ＢＭＡでは、拡大、回転といった動きをうまく表現することができず、図１に示された符号化装置５０１で、その出力となる符号化された画像データ内にブロック歪が生じてしまうという問題がある。
【００４０】
かかる問題を解決するため、“Ｍｏｔｉｏｎ　Ｃｏｍｐｅｎｓａｔｉｏｎ
ｆｏｒ　Ｖｉｄｅｏ　Ｃｏｍｐｒｅｓｓｉｏｎ　Ｕｓｉｎｇ　Ｃｏｎｔｒｏｌ
Ｇｒｉｄ　Ｉｎｔｅｒｐｏｌａｔｉｏｎ”，（Ｇ．Ｌ．Ｓｕｌｌｉｖａｎ　ａｎｄＲ．Ｌ．Ｂａｋｅｒ，　ＩＥＥＥ　Ｃｏｎｆ．　ｏｎ　Ａｃｏｕｓｔｉｃ　Ｓｐｅｅｃｈ　ａｎｄ　Ｓｉｇｎａｌ　Ｐｒｏｃ．　ｐｐ２７１３−２７１６，
１９９１）には、いわゆるＣＧＩ（Ｃｏｎｔｒｏｌ　Ｇｒｉｄ　Ｉｎｔｅｒｐｏｌａｔｉｏｎ）と呼ばれる動きベクトル生成手法が提案されている。
ＣＧＩは、図２に示すように、マクロブロックＭＢの全ての画素位置ｓの動きベクトルＭＶを、当該マクロブロックＭＢに隣接するマクロブロックＭＢの動きベクトルＭＶ（ＭＶ（ｓ１），ＭＶ（ｓ２），ＭＶ（ｓ３），ＭＶ（ｓ４））を用いて収束演算を行って生成する。
このＣＧＩにおいて各マクロブロックＭＢに対する最適な動きベクトルを求める手法として、ＣＰＭＶ（Ｃｏｎｔｒｏｌ　Ｐｏｉｎｔ　Ｍｏｔｉｏｎ　Ｖｅｃｔｏｒ）が提案されている。
【００４１】
上述したＣＧＩおよびＣＰＭＶを用いれば、拡大や回転を含むシーケンスに関しては、前述したＢＭＡ動きモデルに比べ、高い符号化効率を実現できる。
しかしながら、平行移動を含むシーケンスに関しては、ＢＭＡ動きモデルを上回る符号化効率を実現することが出来ないという問題を有する。
【００４２】
かかる問題を解決するため、“Ｏｎ　Ｓｐａｔｉａｌ　Ａｄａｐｔａｔｉｏｎｏｆ　Ｍｏｔｉｏｎ　Ｆｉｅｌｄ　Ｓｍｏｏｔｈｎｅｓｓ”，（Ｐ．Ｉｓｈｗａｒ　ａｎｄ　Ｐｉｅｒｒｅ　Ｍｏｕｌｉｎ，　ＩＥＥＥ　Ｔｒａｎｓ．　ｏｎ　Ｃｉｒｃｕｉｔ　ａｎｄ　Ｓｙｓｔｅｍｓ　ｆｏｒ　Ｖｉｄｅｏ　Ｔｅｃｈ．，ｐｐ９８０−９８９，　Ｓｅｐｔ　２０００）には、ＳＣＧＩ（Ｓｗｉｔｃｈｅｄ
Ｃｏｎｔｒｏｌ−Ｇｒｉｄ　Ｉｎｔｅｒｐｏｌａｔｉｏｎ）が提案されている。ＳＣＧＩでは、各マクロブロックＭＢに対し、ＢＭＡとＣＧＩとの両手法で、動きベクトルを生成し、より高い符号化効率を実現可能な動きベクトルを選択する。
ＳＣＧＩによれば、平行移動を含むシーケンス、及び、拡大、回転等の動きを含むシーケンスの双方で、先述のＢＭＡ，ＣＧＩより高い符号化効率を実現することが可能となる。
また、ＳＣＧＩでは、１ビットの識別データ（ｌａｂｅｌ）により、ＢＭＡとＣＧＩのどちらが選択されたかに関する情報を、符号化データに埋め込む。
図３は、ＢＭＡ，ＣＧＩ，ＳＣＧＩ動きモデルの違いを１次元で表した図である。
【００４３】
ところで、上述したＣＧＩおよびＣＰＭＶを組み合わせた手法では、マクロブロックＭＢ内の全ての画素位置の動きベクトルを、当該マクロブロックＭＢに隣接する３つのマクロブロックＭＢの所定の画素位置の動きベクトルを用いて所定の演算を行って生成する。
従って、動きベクトルの生成に伴う演算量が大きく、負荷が大きいという問題がある。
後述する実施形態は、かかる事情に鑑みてなされたものであり、上述したＣＧＩおよびＣＰＭＶを組み合わせた手法に比べて少ない演算量で、比較的高い符号化効率を提供する動きベクトルを生成できる画像処理装置およびその方法に関するものである。
【００４４】
図４は、図１に示す符号化装置５０１に対応する復号回路５０２の機能ブロック図である。
図４に示す復号回路５０２では、入力となる画像データがバッファ６１３に格納された後、可逆復号回路６１４に出力される。そして、可逆復号回路６１４において、フレーム画像データのフォーマットに基づき、可変長復号化、算術復号化等の処理が行われる。同時に、当該フレーム画像データがインター符号化されたものである場合には、可逆復号回路６１４において、フレーム画像データのヘッダ部に格納された動きベクトルＭＶも復号され、その動きベクトルＭＶが動き予測・補償装置６２０に出力される。
【００４５】
可逆復号回路６１４の出力となる、量子化された変換係数は、逆量子化回路６１５に入力され、ここで変換係数が生成される。当該変換係数には、逆直交変換回路６１６において、定められたフレーム画像データのフォーマットに基づき、逆離散コサイン変換や逆カルーネン・レーベ変換等の逆直交変換が施される。当該フレーム画像データがイントラ符号化されたものである場合には、逆直交変換処理が施されたフレーム画像データは画面並べ替え回路６１８に格納され、Ｄ／Ａ変換回路６１９によるＤ／Ａ変換処理を経て出力される。
【００４６】
一方、当該フレームがインター符号化されたものである場合には、動き予測・補償回路６２０において動きベクトルＭＶ、及びフレームメモリ６２１に格納された参照フレーム画像データを基に予測フレーム画像データが生成され、この予測フレーム画像データと、逆直交変換回路６１６から出力されたフレーム画像データとが加算器６１７において加算される。その他の処理はイントラ符号化されたフレーム画像データと同様である。
【００４７】
動き予測・補償装置の用途は、上述の画像圧縮に限らない。
例えば、図５に示すように、動き予測・補償を用いたフレームレートアップコンバート装置などの画像補間装置は、動き予測回路７２２、フレームメモリ７２３、補間画像生成装置７２４、遅延バッファ７２５およびセレクタ７２６を有する。
動き予測回路７２２は、入力となるｎ［　Ｈｚ］　の画像データの構成要素であるフレーム画像データと、それより時間的に前にフレームメモリ２３に蓄積された参照フレーム画像データとを用いて、動きベクトルの探索および生成を行う。
図６に示す例では、フレームメモリ２３に蓄積された、時刻ｔにおけるフレーム画像データＦＬＡＭＥ１、及び時刻ｔ＋２δｔにおけるフレーム画像データＦＬＡＭＥ２との間で動きベクトルＭＶの探索が行われる。
そして、補間画像生成回路７２４において、この動きベクトル情報ＭＶを用いて、時刻ｔ＋δｔにおける補間フレーム画像データの生成が行われる。このように生成された補間フレーム画像データＦＬＡＭＥ＿ＩＮＴＥＲと、フレーム画像データＦＬＭＡＥ１を、一定のタイミングでセレクタ７２６で選択して、ｍ［Ｈｚ］　（ｍ＞ｎ）となるような出力画像を生成する。図６は、ｍ＝２の例である。
【００４８】
以下、上述した問題を解決するための本実施形態の画像処理装置、符号化装置、復号装置、およびそれらの方法について説明する。
第１実施形態
当該実施形態は、第１〜第４および第１３〜第１６の発明に対応している。
図７は、本実施形態の通信システム１の概念図である。
図７に示すように、通信システム１は、送信側に設けられた符号化装置２と、受信側に設けられた復号装置３とを有する。
通信システム１では、送信側の符号化装置２において、離散コサイン変換やカルーネン・レーベ変換などの直交変換と動き補償によって圧縮したフレーム画像データ（ビットストリーム）を生成し、当該フレーム画像データを変調した後に、衛星放送波、ケーブルＴＶ網、電話回線網、携帯電話回線網などの伝送媒体を介して送信する。
受信側では、受信した画像信号を復調した後に、上記変調時の直交変換の逆変換と動き補償によって伸張したフレーム画像データを生成して利用する。
なお、上記伝送媒体は、光ディスク、磁気ディスクおよび半導体メモリなどの記録媒体であってもよい。
なお、本実施形態では、符号化装置２における動きベクトルＭＶの生成、並びに復号装置３における動きベクトルＭＶおよび参照フレーム画像データを用いたフレーム画像データの生成に特徴を有している。
【００４９】
〔符号化装置２〕
図８は、図７に示す符号化装置２の全体構成図である。
図８に示すように、符号化装置２は、例えば、Ａ／Ｄ変換回路２２、画面並べ替え回路２３、演算回路２４、直交変換回路２５、量子化回路２６、可逆符号化回路２７、バッファ２８、逆量子化回路２９、逆直交変換回路３０、フレームメモリ３１、レート制御回路３２、サブブロック分割回路３３、動きベクトル生成回路３４および動き予測・補償回路３５を有する。
ここで、動きベクトル生成回路３４が第１の発明の演算手段および第３の発明の第１の演算手段に対応している。
【００５０】
以下、符号化装置２の構成要素について説明する。
Ａ／Ｄ変換回路２２は、入力されたアナログの輝度信号Ｙ、色差信号Ｐｂ，Ｐｒから構成される画像信号をデジタルの画像信号に変換し、これを画面並べ替え回路２３に出力する。
画面並べ替え回路２３は、Ａ／Ｄ変換回路２２から入力した画像信号内のフレーム画像信号を、そのピクチャタイプＩ，Ｐ，ＢからなるＧＯＰ（Ｇｒｏｕｐ　Ｏｆ　Ｐｉｃｔｕｒｅｓ）　構造に応じて、符号化する順番に並べ替えたフレーム画像データＳ２３を演算回路２４および動き予測・補償回路３５に出力する。
【００５１】
演算回路２４は、フレーム画像データＳ２３がインター（Ｉｎｔｅｒ）　符号化される場合には、フレーム画像データＳ２３と、動き予測・補償回路３５から入力した予測フレーム画像データＳ３５ａとの差分を示す画像データＳ２４を生成し、これを直交変換回路２５に出力する。
また、演算回路２４は、フレーム画像データＳ２３がイントラ（Ｉｎｔｒａ）　符号化される場合には、フレーム画像データＳ２３を画像データＳ２４として直交変換回路２５に出力する。
直交変換回路２５は、画像データＳ２４に離散コサイン変換やカルーネン・レーベ変換などの直交変換を施して画像データ（例えばＤＣＴ係数信号）Ｓ２５を生成し、これを量子化回路２６に出力する。
量子化回路２６は、レート制御回路３２から入力した量子化スケールで、画像データＳ２５を量子化して画像データＳ２６を生成し、これを可逆符号化回路２７および逆量子化回路２９に出力する。
【００５２】
可逆符号化回路２７は、画像データＳ２６を可変長符号化あるいは算術符号化した画像データをバッファ２８に格納する。
このとき、可逆符号化回路２７は、動き予測・補償回路３５から入力した動きベクトルＭＶあるいはその差分を符号化してヘッダデータに格納する。
また、可逆符号化回路２７は、必要に応じて、後述するサブブロック分割回路３３の処理によって得られたサブブロック（本発明のサブブロック）のサイズを示すデータをヘッダデータなどに格納してもよい。
バッファ２８に格納された画像データは、変調等された後に送信される。
逆量子化回路２９は、画像データＳ２６を逆量子化した信号を生成し、これを逆直交変換回路３０に出力する。
逆直交変換回路３０は、逆量子化回路２９から入力した画像データに、上記直交変換を逆変換を施して生成したフレーム画像データをフレームメモリ３１に格納する。
レート制御回路３２は、バッファ２３から読み出した画像データを基に量子化スケールを生成し、これを量子化回路２６に出力する。
【００５３】
サブブロック分割回路３３は、動き予測・補償回路３５から入力したフレーム画像データＳ２３について、当該フレーム画像データＳ２３の各マクロブロックＭＢ（本発明のブロック）内の画素位置の動きベクトルＭＶを動きベクトル生成回路３４で生成する際に用いられるサブブロックＳＵＢ＿ＭＢを、マクロブロックＭＢを分割して決定（規定）し、当該分割の内容（サブブロックＳＵＢ＿ＭＢのサイズ）を示す分割データＤＩＶ生成する。サブブロック分割回路３３は、分割データＤＩＶをフレーム画像データＳ２３と共に、動きベクトル生成回路３４に出力する。
また、サブブロック分割回路３３は、動き予測・補償回路３５から入力したフレーム画像データＳ２３に対応するピクチャタイプの参照フレーム画像データＳ３１を動きベクトル生成回路３４に出力する。
【００５４】
図９は、サブブロック分割回路３３がマクロブロックＭＢを分割してサブブロックＳＵＢ＿ＭＢを決定する処理を説明するための図である。
図９に示すように、サブブロック分割回路３３は、１６×１６の画素位置からなるマクロブロックＭＢを、例えば、それぞれ４×４の画素位置からなる４行×４列の１６個のサブブロックＳＵＢ＿ＭＢに分割する。
ここで、マクロブロックＭＢ内の所定の画素位置、例えば、１行、１列目のサブブロックＳＵＢ＿ＭＢ内の１行、１列目の画素位置を第１の代表画素位置とする。
また、１行、１列目のサブブロックＳＵＢ＿ＭＢ以外の各サブブロックＳＵＢ＿ＭＢ内の１行、１列目の画素位置を第２の代表画素位置とする。
図９に示す例では、画素位置ｓ１，ｓ２，ｓ３，ｓ４が、それぞれマクロブロックＭＢ１，ＭＢ２，ＭＢ３，ＭＢ４の第１の代表画素位置となる。
また、画素位置ｓが、第１のマクロブロックＭＢ１の２行、２列目のサブブロックＳＵＢ＿ＭＢの第２の代表画素位置となる。
【００５５】
なお、マクロブロックＭＢ内での第１の代表画素位置、並びにサブブロックＳＵＢ＿ＭＢ内の第２の代表画素位置は例示であり、任意の画素位置を指定可能である。
【００５６】
動きベクトル生成回路３４は、サブブロック分割回路３３から入力したフレーム画像データＳ２３の各画素位置の動きベクトルＭＶを、分割データＤＩＶを基にサブブロック単位で後述するように生成し、動きベクトルＭＶおよび分割データＤＩＶを動き予測・補償回路３５に出力する。
【００５７】
動き予測・補償回路３５は、参照フレーム画像データＳ３１と、動きベクトルＭＶとを用いて、動き予測された予測フレーム画像データＳ３５ａを生成し、これを演算回路２４に出力する。
そして、動き予測・補償回路３５は、予測フレーム画像データＳ３５ａを演算回路２４に出力する。
また、動き予測・補償回路３５は、動きベクトル生成回路３４から入力した動きベクトルＭＶ、並びに必要に応じて分割データＤＩＶを可逆符号化回路２７に出力する。
なお、マクロブロックＭＢ内の第１の代表画素位置以外の画素位置の動きベクトルＭＶは、後述するように、当該マクロブロックＭＢおよび隣接するマクロブロックＭＢの第１の代表画素位置の動きベクトルＭＶによって演算可能であるため、動き予測・補償回路３５から可逆符号化回路２７に第１の代表画素位置の動きベクトルＭＶのみを出力するようにしてもよい。また、動き予測・補償回路３５は、各マクロブロックＭＢ内の全ての画素位置、あるいは第１および第２の代表画素位置の動きベクトルを可逆符号化回路２７に出力してもよい。
また、動き予測・補償回路３５は、復号装置３がサブブロックＳＵＢ＿ＭＢのサイズに関する情報を保持している場合には、分割データＤＩＶを可逆符号化回路２７に出力しなくてもよい。
【００５８】
以下、動きベクトル生成回路３４における動きベクトルＭＶの生成処理を説明する。
動きベクトル生成回路３４は、フレーム画像データＳ３１の各マクロブロックＭＢ内の各画素位置の動きベクトルＭＶを、サブブロック分割回路３３から入力した分割データＤＩＶを用いて生成する。
このとき、動きベクトル生成回路３４は、以下に示す規則（本発明の規則および第１の規則）に従って各マクロブロックＭＢ内の画素位置の動きベクトルＭＶが規定されているという前提で、図１０に示すように、フレーム画像データＳ２３（第１〜第４の発明の第１の画像データ）の各画素データに対応する画素位置の動きベクトルＭＶを、フレーム画像データＳ２３の当該マクロブロックＭＢ内の全ての画素位置の画素データとの間の差分が所定の基準を満たす参照フレーム画像データＳ３１（第１〜第４の発明の第２の画像データ）内の画素データ群の画素位置を、参照フレーム画像データＳ３１内の所定の検索範囲の画素位置を対象として検索して生成する。
ここで、参照フレーム画像データＳ２３は、フレーム画像データＳ２３に対して時間的に前後に位置するデータであり、フレーム画像データと相関性を有している。
【００５９】
上記規則は、例えば、マクロブロックＭＢ、並びに当該マクロブロックＭＢに隣接するマクロブロックＭＢの第１の代表画素位置の動きベクトルを用いた下記式（４）に示す演算によって当該マクロブロックＭＢ内のサブブロックＳＵＢ＿ＭＢの第２の代表画素位置の動きベクトルが規定され、各サブブロックＳＵＢ＿ＭＢ内の第２の代表画素位置以外の画素位置の動きベクトルとして、当該サブブロックＳＵＢ＿ＭＢ内の第２の代表画素位置の前記動きベクトルが用いられるというものである。
【００６０】
【数４】
2004104746.tif 000005
【００６１】
このとき、マクロブロックＭＢ内の第１の代表画素位置の動きベクトルＭＶ以外の動きベクトルＭＶは、上記規則、並びに上記（４）に従ってマクロブロックＭＢの第１の代表画素位置の動きベクトルＭＶを基に生成される。
従って、動きベクトル生成回路３４は、後述するように、上記所定の基準を満たすように、各マクロブロックＭＢの第１の代表画素位置の動きベクトルＭＶを検索する。
そして、動きベクトル生成回路３４は、当該検索した当該第１の代表画素位置の動きベクトルを用いて上記式（４）に示す演算を行って、当該マクロブロックＭＢ内の各サブブロックＳＵＢ＿ＭＢの第２の代表画素位置の動きベクトルＭＶを生成する。
【００６２】
上記式（４）では、図９に示すように、マクロブロックＭＢ１の第１の代表画素位置をｓ１とし、マクロブロックＭＢ１に隣接する３つのマクロブロックＭＢ２，ＭＢ３，ＭＢ３の第１の代表画素位置をそれぞれｓ２，ｓ３，ｓ４としている。
また、マクロブロックＭＢ１内のサブブロックＳＵＢ＿ＭＢの第２の代表画素位置をｓとし、フレーム画像データＳ２３の第１の代表画素位置ｓ１，ｓ２，ｓ３，ｓ４の前記動きベクトルをそれぞれＭＶ（ｓ１），ＭＶ（ｓ２），ＭＶ（ｓ３），ＭＶ（ｓ４）とし、フレーム画像データＳ２３の第２の代表画素位置ｓの動きベクトルをＭＶ（ｓ）とし、ｗを画素位置を引数とする双１次関数である重み付け関数としている。
ここで、重み付け関数ｗは、マクロブロックＭＢのサイズを２ｍ　×２ｎ　（ｍ，ｎは整数）とした場合に、その値はｋ／２ｌ　（ｋ，ｌは整数）となり、除算を行うことなく、シフト演算によって実現される。
【００６３】
ここで、上記式（４）に示すように、各マクロブロックＭＢの第１の代表画素位置の動きベクトルＭＶは、隣接する３つのマクロブロックＭＢの第１の代表画素位置の動きベクトルＭＶに応じて決まる。従って、フレーム画像データＳ２３内の全てのマクロブロックＭＢの第１の代表画素位置の動きベクトルＭＶを最適な値に収束させるためには、各マクロブロックＭＢの動きベクトルＭＶの生成演算を複数回行う必要がある。
そのため、動きベクトル生成回路３４は、フレーム画像データＳ２３に対応する全てのマクロブロックＭＢについての第１の代表画素位の動きベクトルＭＶの生成を、所定の基準を満たすまで繰り返し行う。
【００６４】
以下、上記所定の基準の一例について説明する。
例えば、マクロブロックＭＢ内の全ての画素位置に対応するフレーム画像データＳ２３の画素データと、前記画素位置と当該画素位置の前記動きベクトルとを用いて得られる前記検索範囲内の画素位置に対応する参照フレーム画像データＳ３１の全ての画素データとの差分に応じた値を当該マクロブロックＭＢブロックの残差エネルギーとした場合を考える。
この場合に、動きベクトル生成回路３４は、図９〜図１１に示す例では、マクロブロックＭＢ１の残差エネルギーε１と、マクロブロックＭＢ１の隣接するマクロブロックＭＢ２，ＭＢ３，ＭＶ４の残差エネルギーε２，ε３，ε４との総和εが最小になることを上記所定の基準として、マクロブロックＭＢ１の第１の代表画素位置ｓ１の動きベクトルＭＶ（ｓ１）を検索する。
【００６５】
ここで、図１１に示すように、マクロブロックＭＢ１の動きベクトルＭＶ１が変化すると、マクロブロックＭＢ１の残差エネルギーε１のみならず、マクロブロックＭＢ２，ＭＢ３，ＭＶ４の残差エネルギーε２，ε３，ε４も変化する。すなわち、マクロブロックＭＢ１，ＭＢ２，ＭＢ３，ＭＢ４の総和εは、下記式（５）のように、動きベクトルＭＶ１の関数として規定できる。
【００６６】
【数５】
2004104746.tif 000006
【００６７】
動きベクトル生成回路３４は、上記式（５）の総和εを最小にする動きベクトルＭＶ１を検索する。
【００６８】
以下、動きベクトル生成回路３４が、以下に示す第１の手法に基づいて、フレーム画像データ内の全てのマクロブロックＭＢ（ｉ，ｊ）の第１の代表画素位置の動きベクトルＭＶ（ｉ，ｊ）を生成する手順を説明する。
図１２は、当該手順を説明するためのフローチャートである。
ステップＳＴ１：
動きベクトル生成回路３４は、サブブロック分割回路３３から入力したフレーム画像データＳ２３内のマクロブロックＭＢ（ｉ，ｊ）の第１の代表画素位置の動きベクトルＭＶ（ｉ，ｊ）を０に初期化する。
また、動きベクトル生成回路３４は、動きベクトルＭＶ（ｉ，ｊ）の収束の有無を示す変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）、並びに動きベクトルの生成処理の繰り返し回数を示す変数ｉｔｒを０に初期化する。
【００６９】
ステップＳＴ２：
動きベクトル生成回路３４は、変数ｉｔｒをインクリメントする。
また、動きベクトル生成回路３４は、全てのマクロブロックＭＢ（ｉ，ｊ）の変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）が１を示し、全ての動きベクトルＭＶ（ｉ，ｊ）が収束したかを判断する指標となる変数ｃｏｕｔ＿ｃｈｅｃｋを０に初期化する。
【００７０】
動きベクトル生成回路３４は、以下に示すステップＳＴ３〜Ｓ９の処理を、全てのマクロブロックＭＢ（ｉ，ｊ）について行う。
【００７１】
ステップＳＴ３：
動きベクトル生成回路３４は、変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）が０を示すか否かを判断し、０を示すと判断した場合にはステップＳＴ４の処理に進み、そうでない場合（１を示す場合）には、次のマクロブロックＭＢ（ｉ，ｊ）についてステップＳＴ３の処理を行う。
ステップＳＴ４：
動きベクトル生成回路３４は、変数ｃｏｕｎｔ＿ｃｈｅｃｋをインクリメントする。
ステップＳＴ５：
動きベクトル生成回路３４は、動きベクトルＭＶ＿ｏｌｄに、動きベクトルＭＶ（ｉ，ｊ）を代入する。
ステップＳＴ６：
動きベクトル生成回路３４は、図９〜図１１を用いて前述した第１の手法で、当該マクロブロックＭＢ（ｉ，ｊ）の第１の代表画素データの動きベクトルＭＶ（ｉ，ｊ）を検索する。
【００７２】
ステップＳＴ７：
動きベクトル生成回路３４は、動きベクトルＭＶ＿ｏｌｄと、ステップＳＴ６で検索した動きベクトルＭＶ（ｉ，ｊ）とが一致するか否かを判断し、一致すると判断した場合にはステップＳＴ８の処理に進み、一致しないと判断した場合にはステップＳＴ９の処理に進む。
【００７３】
ステップＳＴ８：
動きベクトル生成回路３４は、変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）に１を設定する。
ステップＳＴ９：
動きベクトル生成回路３４は、処理対象のマクロブロックＭＢ（ｉ，ｊ）の周辺のマクロブロックＭＢの変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）に０を設定する。図９に示す例では、マクロブロックＭＢ１の動きベクトルＭＶ（ｓ１）を生成している場合には、動きベクトル生成回路３４は、マクロブロックＭＢ１に隣接するマクロブロックＭＢ２，ＭＢ３，ＭＢ４の変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）に０を設定する。
【００７４】
ステップＳＴ１０：
動きベクトル生成回路３４は、全てのマクロブロックＭＢ（ｉ，ｊ）について前述したステップＳＴ３〜ＳＴ９の処理が終了した後に、変数ｃｈｅｃｋ＿ｃｏｕｎｔが０であるか否かを判断し、０でないと判断した場合にはステップＳＴ１１の処理に進み、０であると判断した場合には処理を終了する。
ステップＳＴ１１：
動きベクトル生成回路３４は、変数ｉｔｒが所定の回数ｍａｘ＿ｉｔｒに達したか否かを判断し、達したと判断した場合には処理を終了し、そうでない場合にはステップＳＴ２の処理に戻る。
【００７５】
上述したように、符号化装置２では、動きベクトル生成回路３４におけるマクロブロックＭＢ内の第１の代表画素位置の動きベクトルＭＶの検索を図９〜図１２を用いて説明した第１の手法で行い、当該第１の代表画素位置の動きベクトルＭＶを用いて、サブブロックＳＵＢ＿ＭＢの第２の代表画素位置の動きベクトルＭＶを上記式（４）を基に算出することで、フレーム画像データＳ２３と参照フレーム画像データＳ３１との間でマクロブロックＭＢ内の画像が回転、または拡大された場合でも、高い符号化効率を実現すると共に、高い画質を得ることができる。
また、符号化装置２では、動きベクトル生成回路３４において、サブブロックＳＵＢ＿ＭＢ内の第２の代表画素位置以外の画素位置の動きベクトルＭＶとして、第２の代表画素位置の動きベクトルＭＶを用いることで、全ての画素位置の動きベクトルＭＶを算出する場合に比べて演算量を大幅に削減できる。
【００７６】
次に、図８に示す符号化装置２の全体動作を説明する。
入力となる画像信号は、まず、Ａ／Ｄ変換回路２２においてデジタル信号に変換される。次に、出力となる画像圧縮情報のＧＯＰ構造に応じ、画面並べ替え回路２３においてフレーム画像データの並べ替えが行われる。
そして、イントラ符号化が行われるフレーム画像データに関しては、フレーム画像データ全体の画像情報が直交変換回路２５に入力され、直交変換回路２５において離散コサイン変換やカルーネン・レーベ変換等の直交変換が施される。
直交変換回路２５の出力となる変換係数は、量子化回路２６において量子化処理される。
量子化回路２６の出力となる、量子化された変換係数は、可逆変換回路２７に入力され、ここで可変長符号化、算術符号化等の可逆符号化が施された後、バッファ２８に蓄積され、圧縮された画像データとして出力される。
量子化回路２６における量子化レートは、レート制御回路３２によって制御される。同時に、量子化回路２６の出力となる、量子化された変換係数は、逆量子化回路２９に入力され、さらに逆直交変換回路３０において逆直交変換処理が施されて、復号されたフレーム画像データとなり、そのフレーム画像データがフレームメモリ３１に蓄積される。
【００７７】
一方、インター符号化が行われる画像に関しては、先ず、そのフレーム画像データＳ２３が動き予測・補償回路３５に入力される。また、参照フレーム画像データＳ３１がフレームメモリ３１より読み出され、動き予測・補償回路３５に出力される。
そして、動き予測・補償回路３５からサブブロック分割回路３３に、フレーム画像データＳ２３および参照フレーム画像データＳ３１が出力される。
そして、サブブロック分割回路３３において、マクロブロックＭＢを分割したサブブロックＳＵＢ＿ＭＢが規定され、当該分割の内容を示す分割データＤＩＶ、並びにフレーム画像データＳ２３および参照フレーム画像データＳ３１が動きベクトル生成回路３４に出力される。
【００７８】
そして、動きベクトル生成回路３４において、図８〜図１２を用いて説明した第１の手法により、マクロブロックＭＢ内の各画素位置の動きベクトルＭＶが生成および決定され、当該動きベクトルＭＶ、並びに分割データＤＩＶが動き予測・補償回路３５に出力される。
そして、動き予測・補償回路３５において、参照フレーム画像データＳ３１および動きベクトルＭＶを用いて、予測フレーム画像データＳ３５ａが生成される。
動き予測・補償回路３５は、予測フレーム画像データＳ３５ａを演算回路２４に出力する。
また、動き予測・補償回路３５は、動きベクトルＭＶおよび必要に応じて分割データＤＩＶを可逆符号化回路２７に出力する。
【００７９】
そして、演算回路２４において、画面並べ替え回路２３からのフレーム画像データと、動き予測・補償回路３５からの予測フレーム画像データＳ３５ａとの差分信号である画像データＳ２４が生成され、当該画像データＳ２４が直交変換回路２５に出力される。
そして、可逆符号化回路２７において、動きベクトルＭＶおよび分割データＤＩＶが可変長符号化あるいは算術符号化といった可逆符号化処理され、画像データのヘッダ部に挿入される。その他の処理はイントラ符号化を施される画像データと同様である。
【００８０】
〔復号装置３〕
図１３は、復号装置３の機能ブロック図である。
図１３に示すように、復号装置３は、例えば、蓄積バッファ７１、可逆復号化回路７２、逆量子化回路７３、逆直交変換回路７４、演算回路７５、画面並べ替え回路７６、Ｄ／Ａ変換回路７７、フレームメモリ７８、サブブロック分割回路７９、動きベクトル生成回路８０および動き予測・補償回路８１を有する。
ここで、動きベクトル生成回路８０が第１３の発明の演算手段、並びに第１５の発明の第１の演算手段に対応している。
また、可逆復号化回路７２が第１５の発明の復号手段に対応し、動き予測・補償回路８１が第１５の発明の第２の演算手段に対応し、動き予測・補償回路８１が第１５の発明の第２の演算手段に対応し、演算回路７５が第１５の発明の第３の演算手段に対応している。
【００８１】
蓄積バッファ７１は、図８に示す符号化装置２で符号化され、続いて変調されて送信された画像信号が受信され、当該画像信号が復調されると、当該復調によって得られたフレーム画像データを記憶する。
可逆復号化回路７２は、蓄積バッファ７１から入力したフレーム画像データに対して、可逆符号化回路２７の符号化処理に対応する復号処理を行い、それによって得られた画像データを逆量子化回路７３に出力し、当該復号処理で得られたマクロブロックＭＢ内の第１の代表画素位置の動きベクトルＭＶおよび分割データＤＩＶを動き予測・補償回路８１に出力する。
なお、マクロブロックＭＢが予め決められたサブブロックＳＵＢ＿ＭＢで分割される場合には、可逆復号化回路７２から動き予測・補償回路８１に分割デ−タＤＩＶは出力されない。
【００８２】
逆量子化回路７３は、可逆復号化回路７２から入力した画像データを逆量子化して逆直交変換回路７４に出力する。
逆直交変換回路７４は、逆量子化回路７３から入力した画像データに、図８に示す直交変換回路２５の直交変換処理に対応する逆直交変換処理を施し、それによって得られたフレーム画像データＳ７４を演算回路７５に出力する。
【００８３】
演算回路７５は、逆直交変換回路７４からのフレーム画像データＳ７４と、動き予測・補償回路８１からの予測フレーム画像データＳ８１とを加算してフレーム画像データＳ７５を生成し、これを画面並べ替え回路７６およびフレームメモリ７８に出力する。
画面並べ替え回路７６は、フレーム画像データＳ７５を表示順に並べ替えてＤ／Ａ変換回路７７に出力する。
Ｄ／Ａ変換回路７７は、画面並べ替え回路７６から入力したデジタルのフレーム画像データをアナログの画像信号に変換して出力する。
【００８４】
フレームメモリ７８は、フレーム画像データＳ７５を参照フレーム画像データとして記憶する。
サブブロック分割回路７９は、動き予測・補償回路８１から動きベクトルＭＶ、分割データＤＩＶおよび参照フレーム画像データＳ７８を入力し、分割データＤＩＶに基づいて、参照フレーム画像データＳ７８のマクロブロックＭＢを、図８に示すサブブロック分割回路３３で行った場合と同じサブブロックＳＵＢ＿ＭＢに分割する。
動きベクトル生成回路８０は、サブブロック分割回路７９における分割結果に基づいて、サブブロック分割回路７９から入力した各マクロブロックＭＢの第１の代表画素位置の動きベクトルＭＶを用いて、上記式（４）の演算を行い、各サブブロックＳＵＢ＿ＭＢの第２の代表画素位置の動きベクトルＭＶを算出する。また、動きベクトル生成回路８０は、各サブブロックＳＵＢ＿ＭＢ内の第２の代表画素位置以外の画素位置の動きベクトルとして、当該サブブロックＳＵＢ＿ＭＢ内の第２の代表画素位置の動きベクトルを用いる。
そして、動きベクトル生成回路８０は、上述したように生成および決定した各マクロブロックＭＢ内の各画素位置の動きベクトルＭＶを動き予測・補償回路８１に出力する。
【００８５】
動き予測・補償回路８０は、フレームメモリ７８から読み出されたフレーム画像データＳ２３と、動きベクトル生成回路８０から入力した動きベクトルＭＶとを用いて、予測フレーム画像データＳ８１を生成し、これを演算回路７５に出力する。
【００８６】
以下、復号装置３の全体動作例を説明する。
復号装置３では、入力となる画像データがバッファ７１に格納された後、可逆復号回路７２に出力される。
そして、可逆復号回路７２において、定められた画像圧縮情報のフォーマットに基づき、可変長復号化、算術復号化等の処理が行われる。同時に、当該フレームがインター符号化されたものである場合には、可逆復号回路７２において、画像信号のヘッダ部に格納された第１の代表画素位置の動きベクトルＭＶも復号され、その動きベクトルＭＶが動き予測・補償装置８１に出力される。
【００８７】
可逆復号回路７２の出力となる、量子化された変換係数は、逆量子化回路７３に入力され、ここで変換係数が生成される。当該変換係数には、逆直交変換回路７４において、定められた画像圧縮情報のフォーマットに基づき、逆離散コサイン変換や逆カルーネン・レーベ変換等の逆直交変換が施される。当該フレーム画像データがイントラ符号化されたものである場合には、逆直交変換処理が施されたフレーム画像データは画面並べ替え回路７６に格納され、Ｄ／Ａ変換回路７７によるＤ／Ａ変換処理を経て出力される。
一方、当該フレームがインター符号化されたものである場合には、動き予測・補償回路８１からサブブロック分割回路７９に、参照フレーム画像データＳ７８、第１の代表画素位置の動きベクトルＭＶおよび分割データＤＩＶが出力される。
そして、サブブロック分割回路７９において、分割データＤＩＶに基づいて、参照フレーム画像データＳ７８のマクロブロックＭＢがサブブロックＳＵＢ＿ＭＢに分割される。
そして、動きベクトル生成回路８０が、サブブロック分割回路７９における分割結果に基づいて、サブブロック分割回路７９から入力した各マクロブロックＭＢの第１の代表画素位置の動きベクトルＭＶを用いて、上記式（４）の演算を行い、各サブブロックＳＵＢ＿ＭＢの第２の代表画素位置の動きベクトルＭＶを算出する。また、動きベクトル生成回路８０が、各サブブロックＳＵＢ＿ＭＢ内の第２の代表画素位置以外の画素位置の動きベクトルとして、当該サブブロックＳＵＢ＿ＭＢ内の第２の代表画素位置の動きベクトルを用いる。
そして、動きベクトル生成回路８０は、上述したようにして生成した各マクロブロックＭＢ内の各画素位置の動きベクトルＭＶを動き予測・補償回路８１に出力する。
【００８８】
動き予測・補償回路８０そして、フレームメモリ７８から読み出された参照フレーム画像データＳ７８と、動きベクトル生成回路８０から入力した動きベクトルＭＶとを用いて、予測フレーム画像データＳ８１を生成し、これを演算回路７５に出力する。
【００８９】
以上説明したように、復号装置３によれば、符号化装置２によって符号化されたフレーム画像データを適切に復号することができる。
【００９０】
第２実施形態
上述した実施形態では、符号化装置２の動きベクトル生成回路３４がフレーム画像データＳ２３および参照フレーム画像データＳ３１をそのまま用いて、マクロブロックＭＢ内の第１の代表画素位置の動きベクトルＭＶの検索を行う場合を説明したが、本実施形態では、その他の検索方法を説明する。
図１４は、当該実施形態における動きベクトル生成回路３４の動きベクトルＭＶの探索方法を説明するための図である。
動きベクトル生成回路３４は、フレーム画像データＳ２３および参照フレーム画像データＳ３１の各々を、水平方向および垂直方法のそれぞれに対して１／２に画素データをダウンサンプリング（間引き処理）してフレーム画像データＦＬＳ２３＿１および参照フレーム画像データＳ３１＿１を生成する。
また、動きベクトル生成回路３４は、フレーム画像データＳ２３＿１および参照フレーム画像データＳ３１＿１の各々を、水平方向および垂直方法のそれぞれに対して１／２に画素データをダウンサンプリングしてフレーム画像データＳ２３＿２および参照フレーム画像データＳ３１＿２を生成する。
【００９１】
そして、動きベクトル生成回路３４は、フレーム画像データＳ２３＿２および参照フレーム画像データＳ３１＿２を用いて第１実施形態で説明した第１の手法で各マクロブロックＭＢの第１の代表画素位置の動きベクトルＭＶ＿２の第１の検索を行う。
そして、動きベクトル生成回路３４は、フレーム画像データＳ２３＿１および参照フレーム画像データＳ３１＿１を用いて、参照フレーム画像データＳ３１＿１内の画素データのうち、上記第１の検索によって得られた動きベクトルＭＶ＿２によって規定される範囲、並びにその周辺数画素位置の範囲内の画素データを対象として動きベクトルＭＶ＿１の第２の検索を行う。
そして、フレーム画像データＳ２３および参照フレーム画像データＳ３１を用いて、参照フレーム画像データＳ３１内の画素データのうち、上記第２の検索によって得られた動きベクトルＭＶ＿１によって規定される範囲、並びにその周辺数画素位置の範囲内の画素データを対象とし動きベクトルＭＶの第３の検索を行う。
【００９２】
上述したように、動きベクトル生成回路３４において、動きベクトルＭＶの検索を階層的に行うことで、動きベクトルＭＶの検索範囲を小さくでき、動きベクトルＭＶの検索を少ない演算量で高精度に行うことができる。
【００９３】
上述した実施形態では、動きベクトルＭＶを３階層で行う場合を例示したが、２階層以上であれば、その他の階層数を用いてもよい。
また、上述した実施形態では、間引き処理において、水平方向および垂直方向にそれぞれ１／２に画素データを間引く場合を例示したが、その他の間引き率を用いてもよい。
【００９４】
第３実施形態
本実施形態は、第５〜第８、並びに、第１７〜第２０の発明に対応した実施形態である。
上述した第１実施形態では、図８に示す動きベクトル生成回路３４が、マクロブロックＭＢ内の第１の代表画素位置の動きベクトルＭＶの生成を、図１２に示すステップＳＴ６に示すように、前述した第１の手法で行う場合を例示した。
図１５は、本実施形態の符号化装置１０２の機能ブロック図である。
図１５において、図８と同じ符号を付した構成要素は第１実施形態で説明したものと同じである。
符号化装置１０２では、図１５に示す動きベクトル生成回路１３４が、上述した第１の手法と、以下に示す第２の手法とによって得られた動きベクトルＭＶのうち、フレーム画像データＳ２３の符号化効率をより高くできる動きベクトルＭＶを選択する。
【００９５】
当該第２の手法は、いわゆるブロックマッチング法であり、マクロブロックＭＢ内の全ての画素位置において同じ動きベクトルＭＶを用いるという規則（本発明の第２の規則）に基づいて、マクロブロックＭＢの各画素位置に対応するフレーム画像データＳ２３の画素データと、当該画素位置と当該画素位置の動きベクトルＭＶとを用いて得られる画素位置に対応する参照フレーム画像データＳ３１の画素データとの差分が所定の基準を満たすように、当該マクロブロックＭＢの動きベクトルＭＶを検索する。
【００９６】
図１６および図１７は、図１５に示す符号化装置１０２の動きベクトル生成回路１３４における第１の代表画素位置の動きベクトルＭＶの生成処理を説明するためのフローチャートである。
図１６および図１７において、図１２と同じ符号を付したものは、第１実施形態で説明したものと同じである。
動きベクトルＭＶ＿ＣＧＩ（ｉ，ｊ）は上記第１の手法で検索した第１の代表画素位置の動きベクトルＭＶである。
動きベクトルＭＶ＿ＢＭＡ（ｉ，ｊ）は上記第２の手法で検索した第１の代表画素位置の動きベクトルＭＶである。
【００９７】
ステップＳＴ２１：
動きベクトル生成回路１３４は、サブブロック分割回路３３から入力したフレーム画像データＳ２３のマクロブロックＭＢ（ｉ，ｊ）の第１の代表画素位置の動きベクトルＭＶ＿ＢＭＡ（ｉ，ｊ），ＭＶ＿ＣＧＩ（ｉ，ｊ）を０に初期化する。
また、動きベクトル生成回路１３４は、第１の代表画素位置の動きベクトルＭＶが第１の手法および第２の手法の何れの手法で検索されたかを示す識別データｌａｂｅｌ（ｉ，ｊ）（本発明の識別データ）を１に初期化する。
また、動きベクトル生成回路１３４は、動きベクトルＭＶ（ｉ，ｊ）の収束の有無を示す変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）、並びに動きベクトルの生成処理の繰り返し回数を示す変数ｉｔｒを０に初期化する。
【００９８】
ステップＳＴ２２：
動きベクトル生成回路１３４は、変数ｉｔｒをインクリメントする。
また、動きベクトル生成回路１３４は、全てのマクロブロックＭＢ（ｉ，ｊ）の変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）が１を示し、全ての動きベクトルＭＶ（ｉ，ｊ）が収束したかを判断する指標となる変数ｃｏｕｔ＿ｃｈｅｃｋを０に初期化する。
【００９９】
動きベクトル生成回路１３４は、以下に示すステップＳＴ２３〜ＳＴ３１の処理を、全てのマクロブロックＭＢ（ｉ，ｊ）について行う。
【０１００】
ステップＳＴ２３：
動きベクトル生成回路１３４は、変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）が０を示すか否かを判断し、０を示すと判断した場合にはステップＳＴ２４の処理に進み、そうでない場合（１を示す場合）には、次のマクロブロックＭＢ（ｉ，ｊ）についてステップＳＴ２３の処理を行う。
ステップＳＴ２４：
動きベクトル生成回路１３４は、変数ｃｏｕｎｔ＿ｃｈｅｃｋをインクリメントする。
ステップＳＴ２５：
動きベクトル生成回路１３４は、処理対象のマクロブロックＭＢ（ｉ，ｊ）について、当該マクロブロックＭＢ（ｉ，ｊ）の第１の代表画素位置の動きベクトルＭＶ（ｉ，ｊ）の検索を、前述した第１の手法および第２の手法の双方で行う。
そして、動きベクトル生成回路１３４は、第１の手法で検索した動きベクトルＭＶ＿ＣＧＩを用いた場合のフレーム画像データＳ２３の当該マクロブロックＭＢの符号化効率ＣＧＩ＿ＤＩＦを求める。
動きベクトル生成回路１３４は、第２の手法で検索した動きベクトルＭＶ＿ＢＭＡを用いた場合のフレーム画像データＳ２３の当該マクロブロックＭＢの符号化効率ＢＭＡ＿ＤＩＦを求める。
【０１０１】
ステップＳＴ２６：
動きベクトル生成回路１３４は、ステップＳＴ２５で求めた符号化効率ＣＧＩ＿ＩＦが、ＢＭＡ＿ＤＩＦより大きいか否かを判断し、大きいと判断した場合にはステップＳＴ２７の処理に進み、そうでない場合にはステップＳＴ２８の処理に進む。
ステップＳＴ２７：
動きベクトル生成回路１３４は、動きベクトルＭＶ（ｉ，ｊ）として第２の手法で検索した動きベクトルＭＶ＿ＢＭＡ（ｉ，ｊ）を設定する。
また、当該マクロブロックＭＢ（ｉ，ｊ）の識別データ（ｉ，ｊ）に０を設定する。
ステップＳＴ２８：
動きベクトル生成回路１３４は、動きベクトルＭＶ（ｉ，ｊ）として第１の手法で検索した動きベクトルＭＶ＿ＣＧＩ（ｉ，ｊ）を設定する。
また、当該マクロブロックＭＢ（ｉ，ｊ）の識別データｌａｂｅｌ（ｉ，ｊ）に１を設定する。
【０１０２】
ステップＳＴ２９：
動きベクトル生成回路１３４は、ステップＳＴ２７あるいはＳＴ２８で設定した動きベクトルＭＶ（ｉ，ｊ）および識別データｌａｂｅｌ（ｉ，ｊ）が共に前回の設定値と同じであるか否かを判断し、同じであると判断した場合にはステップＳＴ３０の処理に進み、異なると判断した場合にはステップＳＴ３１の処理に進む。
ステップＳＴ３０：
動きベクトル生成回路１３４は、変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）に１を設定する。
ステップＳＴ３１：
動きベクトル生成回路１３４は、処理対象のマクロブロックＭＢ（ｉ，ｊ）の周辺のマクロブロックＭＢの変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）に０を設定する。
ステップＳＴ３２：
動きベクトル生成回路１３４は、全てのマクロブロックＭＢ（ｉ，ｊ）について前述したステップＳＴ２３〜ＳＴ３１の処理が終了した後に、変数ｃｈｅｃｋ＿ｃｏｕｎｔが０であるか否かを判断し、０でないと判断した場合にはステップＳＴ３３の処理に進み、０であると判断した場合には処理を終了する。
ステップＳＴ３３：
動きベクトル生成回路１３４は、変数ｉｔｒが所定の回数ｍａｘ＿ｉｔｒに達したか否かを判断し、達したと判断した場合には処理を終了し、そうでない場合にはステップＳＴ２２の処理に戻る。
【０１０３】
図１５に示す符号化装置１０２は、動きベクトル生成回路１３４において生成された識別データｌａｂｅｌ（ｉ，ｊ）が、動き予測・補償回路３５を会して可逆符号化回路２７に出力され、フレーム画像データのヘッダデータなどに格納される。
【０１０４】
図１８は、図１５に示す符号化装置１０２で符号化されたフレーム画像データを復号する復号装置１０３の機能ブロック図である。
図１８において、図１３と同じ符号を付した構成要素は第１実施形態で説明したものと同じである。
復号装置１０３は、可逆復号化回路７２において、フレーム画像データ、並びに当該フレーム画像データのヘッダデータに格納された第１の代表画素位置の動きベクトルＭＶ、分割データＤＩＶ、並びに識別データｌａｂｅｌ（ｉ，ｊ）が復号されて動き予測・補償回路８１に出力される。
動き予測・補償回路８１は、参照フレーム画像データＳ７８、第１の代表画素位置の動きベクトルＭＶ、分割データＤＩＶおよび識別データｌａｂｅｌ（ｉ，ｊ）をサブブロック分割回路７９に出力する。
動きベクトル生成回路１８０では、識別データｌａｂｅｌ（ｉ，ｊ）に基づいて、処理対象のマクロブロックＭＢの動きベクトルＭＶが上記第１の手法を用いて生成された場合に、上記式（４）に基づいて、第１の代表画素位置の動きベクトルＭＶを用いて、当該マクロブロックＭＢ内のその他の画素位置の動きベクトルＭＶを生成する。
また、動きベクトル生成回路１８０では、識別データｌａｂｅｌ（ｉ，ｊ）に基づいて、処理対象のマクロブロックＭＢの動きベクトルＭＶが上記第２の手法を用いて生成された場合に、第１の代表画素位置の動きベクトルＭＶを、当該マクロブロックＭＢ内のその他の画素位置の動きベクトルＭＶとする。
動きベクトル生成回路１８０は、このように生成した動きベクトルＭＶを動き予測・補償回路８１に出力する。
【０１０５】
以上説明したように、符号化装置１０２によれば、第１の手法と第２の手法で生成した動きベクトルＭＶのうち、より高い符号化効率を実現する動きベクトルＭＶを選択するため、例えば、画像に回転や拡大がない場合などに、比較的少ない演算で、第１実施形態の符号化装置２よりも高い符号化効率を実現できる。
また、復号装置１０３によれば、符号化装置１０２によって符号化されたフレーム画像データを適切に復号することができる。
【０１０６】
第４実施形態
上述した第３実施形態では、符号化装置１０２の動きベクトル生成回路１３４がフレーム画像データＳ２３および参照フレーム画像データＳ３１をそのまま用いて、マクロブロックＭＢ内の第１の代表画素位置の動きベクトルＭＶの検索を行う場合を説明したが、本実施形態では、その他の検索方法を説明する。
図１９は、当該実施形態における動きベクトル生成回路１３４の動きベクトルＭＶの探索方法を説明するための図である。
動きベクトル生成回路１３４は、フレーム画像データＳ２３および参照フレーム画像データＳ３１の各々を、水平方向および垂直方法のそれぞれに対して１／２に画素データをダウンサンプリング（間引き処理）してフレーム画像データＦＬＳ２３＿１および参照フレーム画像データＳ３１＿１を生成する。
また、動きベクトル生成回路３４は、フレーム画像データＳ２３＿１および参照フレーム画像データＳ３１＿１の各々を、水平方向および垂直方法のそれぞれに対して１／２に画素データをダウンサンプリングしてフレーム画像データＳ２３＿２および参照フレーム画像データＳ３１＿２を生成する。
【０１０７】
そして、動きベクトル生成回路１３４は、フレーム画像データＳ２３＿２および参照フレーム画像データＳ３１＿２を用いて第１および第３の実施形態で説明した第１の手法で各マクロブロックＭＢの第１の代表画素位置の動きベクトルＭＶ＿２＿ＣＧＩの第１の検索を行う。
また、動きベクトル生成回路１３４は、フレーム画像データＳ２３＿２および参照フレーム画像データＳ３１＿２を用いて第３の実施形態で説明した第２の手法で各マクロブロックＭＢの第１の代表画素位置の動きベクトルＭＶ＿２＿ＢＭＡの第１の検索を行う。
【０１０８】
そして、動きベクトル生成回路１３４は、フレーム画像データＳ２３＿１および参照フレーム画像データＳ３１＿１を用いて、参照フレーム画像データＳ３１＿１内の画素データのうち、上記第１の検索によって得られた動きベクトルＭＶ＿２＿ＣＧＩによって規定される範囲、並びにその周辺数画素位置の範囲内の画素データを対象として上記第１の手法で動きベクトルＭＶ＿１＿ＣＧＩの第２の検索を行う。
また、動きベクトル生成回路１３４は、フレーム画像データＳ２３＿１および参照フレーム画像データＳ３１＿１を用いて、参照フレーム画像データＳ３１＿１内の画素データのうち、上記第１の検索によって得られた動きベクトルＭＶ＿２＿ＢＭＡによって規定される範囲、並びにその周辺数画素位置の範囲内の画素データを対象として上記第１の手法で動きベクトルＭＶ＿１＿ＭＢＡの第２の検索を行う。
【０１０９】
動きベクトル生成回路１３４は、フレーム画像データＳ２３および参照フレーム画像データＳ３１を用いて、参照フレーム画像データＳ３１内の画素データのうち、上記第２の検索によって得られた動きベクトルＭＶ＿１＿ＣＧＩ，ＭＶ＿１＿ＢＭＡによって規定される範囲、並びにその周辺数画素位置の範囲内の画素データを対象とし、図１６および図１７を用いて説明した手法で動きベクトルＭＶの第３の検索を行う。
【０１１０】
上述したように、動きベクトル生成回路１３４において、動きベクトルＭＶの検索を階層的に行うことで、動きベクトルＭＶの検索範囲を小さくでき、動きベクトルＭＶの検索を少ない演算量で高精度に行うことができる。
【０１１１】
上述した実施形態では、動きベクトルＭＶを３階層で行う場合を例示したが、２階層以上であれば、その他の階層数を用いてもよい。
また、上述した実施形態では、間引き処理において、水平方向および垂直方向にそれぞれ１／２に画素データを間引く場合を例示したが、その他の間引き率を用いてもよい。
【０１１２】
第５実施形態
上述した第１実施形態では、図９に示すように、マクロブロックＭＢを、それぞれ４×４画素位置のサブブロックＳＵＢ＿ＭＢに分割した場合を例示したが、ｎ，ｍが少なくとも一つが２以上の整数である場合に、マクロブロックＭＢをｎ×ｍ画素位置のサブブロックＳＵＢ＿ＭＢに分割してもよい。
また、ｎとｍは異なる整数であってもよい。
さらに、図２０に示すように、マクロブロックＭＢを、異なるサイズのサブブロックＳＵＢ＿ＭＢに分割してもよい。
この場合には、サブブロックＳＵＢ＿ＭＢのサイズを示すサイズデータが、可逆符号化回路２７に出力されて符号化され、可逆符号化回路２７から出力される対応する画像データに関連付けられる。
【０１１３】
第６実施形態
上述した第３実施形態では、動きベクトル生成の対象となるマクロブロックＭＢおよびそれに隣接するマクロブロックＭＢの残差エネルギーを、マクロブロックＭＢの全ての画素位置の画素データを対象として算出する場合を例示した。
本実施形態では、“Ｎｅｗ　Ｆａｓｔ　Ａｌｇｏｒｉｔｈｍｓ　ｆｏｒ　ｔｈｅＥｓｔｉｍａｔｉｏｎ　ｏｆ　Ｂｌｏｃｋ　Ｍｏｔｉｏｎ　Ｖｅｃｔｏｒｓ”（Ｂ．Ｌｉｕ　ａｎｄ　Ａ．Ｚａｃｃａｒｉｎ，ＩＥＥＥ　Ｔｒａｎｓ．　ｏｎＣｉｒｃｕｉｔ　ａｎｄ　Ｓｙｓｔｅｍｓ　ｆｏｒ　Ｖｉｄｅｏ　Ｔｅｃｈ．ｖｏｌ　３，　Ｎｏ．２，　Ａｐｒｉｌ　１９９３）に基づいて、第２の手法で、動きベクトルＭＶの探索の動きベクトル情報を探索する際に、マクロブロックＭＢ内全ての画素位置の画素データではなく、図２１に示すように、半分の画素を用いて残差エネルギーの算出を行ってもよい。
この残差エネルギーの算出方法を、例えば、図１９を用いて説明したいずれかの階層での動きベクトルの検索に適用してもよい。
【０１１４】
第７実施形態
本実施形態は、第９および第１０の発明に対応した実施形態である。
上述した本実施形態の動きベクトルＭＶの検索および生成方法を、動き予測・補償を用いたフレームレートアップコンバート装置などの画像補間装置に適用してもよい。
図２２は、本実施形態の画像補間装置２０１の機能ブロック図である。
図２２に示すように、画像補間装置２０１は、例えば、サブブロック分割回路３３、動きベクトル生成回路３４、動き予測回路２５３、フレームメモリ２３１、補間画像生成回路２５０、遅延バッファ２５１およびセレクタ２５２を有する。
ここで、動きベクトル生成回路３４が第９の発明の演算手段に対応し、補間画像生成回路２５０が第９の発明の画像生成手段に対応している。
サブブロック分割回路３３および動きベクトル生成回路３４は、例えば、第１実施形態で説明したものと同じである。
サブブロック分割回路３３および動きベクトル生成回路３４は、入力したｎ［Ｈｚ］　の画像信号内のフレーム画像データと、それより時間的に前に入力してフレームメモリ２３に蓄積された参照フレーム画像データとを用いて、第１実施形態で説明した方法で動きベクトルＭＶの探索および生成を行う。
図６に示す例では、フレームメモリ２３に蓄積された、時刻ｔにおけるフレーム画像データＦＬＡＭＥ１、及び時刻ｔ＋２δｔにおけるフレーム画像データＦＬＡＭＥ２との間で動きベクトルＭＶの探索が行われる。
そして、補間画像生成回路２５３において、この動きベクトル情報ＭＶを用いて、時刻ｔ＋δｔにおける補間フレーム画像データの生成が行われる。このように生成された補間フレーム画像データＦＬＡＭＥ＿ＩＮＴＥＲは、遅延バッファ２５１に蓄積される。
セレクタ２５２は、フレーム画像データＦＬＭＡＥ１と補間フレーム画像データＦＬＡＭＥ＿ＩＮＴＥＲとを、一定のタイミングでセレクタ２５２で選択して、ｍ［　Ｈｚ］　（ｍ＞ｎ）の画像信号を出力する。
【０１１５】
なお、当該実施形態では、入力したフレーム画像データ間に時間的に位置する１個の補間フレーム画像データを生成および配置する場合を例示したが、当該間に２個以上の補間フレーム画像データを生成および配置してもよい。
【０１１６】
なお、本発明の第１１および第１２の発明に対応して、図２２に示す動きベクトル生成回路３４の代わりに、図１５を用いて説明した動きベクトル生成回路１３４を用いてもよい。
【０１１７】
【発明の効果】
本発明によれば、従来に比べて少ない演算量で、比較的高い符号化効率を提供する動きベクトルを生成できる画像処理装置、符号化装置およびそれらの方法を提供できる。
また、本発明によれば、これらの画像処理装置、符号化装置およびそれらの方法による符号化に対応した復号に用いられる画像処理装置、復号装置およびそれらの方法を提供できる。
【図面の簡単な説明】
【図１】図１は、本発明の関連技術に係わる符号化装置の機能ブロック図である。
【図２】図２は、図１に示す動き予測・補償回路のおける動きベクトルの生成処理を説明するための図である。
【図３】図３は、図２に示す動きベクトル生成処理に用いられる種々の手法を説明するための図である。
【図４】図４は、本発明の関連技術に係わる復号装置の機能ブロック図である。
【図５】図５は、本発明の関連技術に係わる画像補間装置の機能ブロック図である。
【図６】図６は、図５に示す画像補間装置の処理を説明するための図である。
【図７】図７は、本発明の第１実施形態の通信システムの概念図である。
【図８】図８は、本発明の第１実施形態に係わる符号化装置の機能ブロック図である。
【図９】図９は、図８に示す動きベクトル生成回路における動きベクトルの生成処理を説明するための図である。
【図１０】図１０は、図８に示す動きベクトル生成回路における動きベクトルの生成処理を説明するための図である。
【図１１】図１１は、図８に示す動きベクトル生成回路における動きベクトルの生成処理を説明するための図である。
【図１２】図１２は、図８に示す動きベクトル生成回路における動きベクトルの生成処理のフローチャートである。
【図１３】図１３は、図１に示す復号装置の機能ブロック図である。
【図１４】図１４は、本発明の第２実施形態の符号化装置における動きベクトル生成処理を説明するための図である。
【図１５】図１５は、本発明の第３実施形態に係わる符号化装置の機能ブロック図である。
【図１６】図１６は、図１５に示す動きベクトル生成回路における動きベクトルの生成処理のフローチャートである。
【図１７】図１７は、図１５に示す動きベクトル生成回路における動きベクトルの生成処理の図１６の続きのフローチャートである。
【図１８】図１８は、本発明の第３実施形態の復号装置の機能ブロック図である。
【図１９】図１９は、本発明の第４実施形態の符号化装置を説明するための図である。
【図２０】図２０は、本発明の第５実施形態を説明するための図である。
【図２１】図２１は、本発明の第６実施形態を説明するための図である。
【図２２】図２２は、本発明の第７実施形態を説明するための図である。
【符号の説明】
１…通信システム、２…符号化装置、３…復号装置、２２…Ａ／Ｄ変換回路、２３…画面並べ替え回路、２４…演算回路、２５…直交変換回路、２６…量子化回路、２７…可逆符号化回路、２８…バッファ、２９…逆量子化回路、３０…逆直交変換回路、３１…フレームメモリ、３２…レート制御回路、３３…サブブロック分割回路、３４，１３４…動きベクトル生成回路、３５…動き予測・補償回路、７１…バッファ、７２…可逆復号化回路、７３…逆量子化回路、７４…逆直交変換回路、７５…演算回路、７６…画像並べ替え回路、７７…Ｄ／Ａ変換回路、７８…フレームメモリ、７９…サブブロック分割回路、８０，１８０…動きベクトル生成回路、２０１…画像補間装置２、２３１…フレームメモリ、２５０…補間画像生成回路、２５１…遅延バッファ、２５２…セレクタ、２５３…動き予測回路
【図１】
2004104746.tif 000008
【図２】
2004104746.tif 000009
【図３】
2004104746.tif 000010
【図４】
2004104746.tif 000011
【図５】
2004104746.tif 000012
【図６】
2004104746.tif 000013
【図７】
2004104746.tif 000014
【図８】
2004104746.tif 000015
【図９】
2004104746.tif 000016
【図１０】
2004104746.tif 000017
【図１１】
2004104746.tif 000018
【図１２】
2004104746.tif 000019
【図１３】
2004104746.tif 000020
【図１４】
2004104746.tif 000021
【図１５】
2004104746.tif 000022
【図１６】
2004104746.tif 000023
【図１７】
2004104746.tif 000024
【図１８】
2004104746.tif 000025
【図１９】
2004104746.tif 000026
【図２０】
2004104746.tif 000027
【図２１】
2004104746.tif 000028
【図２２】
2004104746.tif 000029