(57)【要約】      （修正有）【課題】ビデオコード化において動き推定中に既にコード化された基準画像の検索領域を動的に定義するシステムおよび方法を提供する。【解決手段】複数のデジタル・データ・ブロックに分割される一連の画像を受け取ること、現在コード化中の画像の既にコード化されたデータブロック、たとえば、左データブロックおよび上部データブロックに関連する１つまたは複数の検索領域と、さらに現在コード化中のデータブロックと共通の位置にある基準画像の既にコード化されたデータブロックに関連する検索領域とに基づいて、既にコード化された基準画像内の検索領域を、現在コード化中の画像の現在コード化中のデータブロックに対して定義することを含む。【選択図】図４
2011199868.tif 000002
【特許請求の範囲】
【請求項１】
ビデオコード化装置において動き推定中に検索領域を動的に定義する方法であって、
一連の画像を受け取ることであって、前記一連の画像の各々が複数のデジタル・データ・ブロックを含む、前記一連の画像を受け取ること、
現在コード化中の画像の既にコード化されたデータブロックに関連する１つまたは複数の検索領域と、前記現在コード化中のデータブロックと共通の位置にある、基準画像の既にコード化されたデータブロックに関連する検索領域とに基づいて、既にコード化された基準画像内の検索領域を、現在コード化中の画像の現在コード化中のデータブロックに対して定義すること
を備える方法。
【請求項２】
前記現在コード化中の画像の前記既にコード化されたデータブロックの第１のデータブロックは、前記現在コード化中のデータブロックの左側にあり、前記現在コード化中の画像の前記既にコード化されたデータブロックの第２のデータブロックは、前記現在コード化中のデータブロックの上方にある、請求項１に記載の方法。
【請求項３】
前記検索領域を定義することは、前記検索領域が前記既にコード化されたデータブロックの動きの方向にオフセットされるように、前記既にコード化されたデータブロックの動きベクトルに基づいて前記現在コード化中のデータブロックと共通の位置にある前記既にコード化されたデータブロックに対して前記基準画像内の前記検索領域の位置を定めることを含む、請求項１に記載の方法。
【請求項４】
前記検索領域を定義することは、
４つの方向検索範囲パラメータによってデフォルト検索領域を定義することであって、２つの垂直検索範囲パラメータは、上検索範囲パラメータおよび下検索範囲パラメータであり、２つの水平検索範囲パラメータは、左検索範囲パラメータおよび右検索範囲パラメータである、前記デフォルト検索領域を定義すること、
前記現在コード化中のデータブロックに関連する前記基準画像内の前記検索領域を前記デフォルト検索領域よりも小さいものと定義することであって、前記検索領域の前記方向検索範囲パラメータの少なくとも１つは、前記デフォルト検索領域の対応する方向検索範囲パラメータよりも大きく、前記検索領域の反対方向検索範囲パラメータは、前記デフォルト検索領域の対応する反対方向検索範囲パラメータよりも小さいものである、前記検索領域を前記デフォルト検索領域よりも小さいものと定義すること
を含む、請求項１に記載の方法。
【請求項５】
前記検索領域の各々が４つの方向検索範囲パラメータによって定義され、２つの垂直検索範囲パラメータは、上検索範囲パラメータおよび下検索範囲パラメータであり、２つの水平検索範囲パラメータは、左検索範囲パラメータおよび右検索範囲パラメータであり、前記現在コード化中のデータブロックに関連する前記検索領域を定義することは、
前記現在コード化中のデータブロックに関連する前記検索領域の各方向検索範囲パラメータに対して、前記現在コード化中の画像の前記既にコード化されたデータブロックと、該現在コード化中のデータブロックと共通の位置にある、前記基準画像の前記既にコード化されたデータブロックとに関連する前記検索領域の対応する方向検索範囲パラメータから最大値を選択すること、
それぞれの前記方向検索範囲パラメータに対して選定された前記最大値が、第１のフレーム内にある第１のマクロブロックの位置で第２のフレーム内にある前記現在コード化中のデータブロックと共通の位置にある前記基準画像の前記既にコード化されたデータブロックに関連する前記検索領域の前記対応する方向検索範囲パラメータと異なる場合、前記現在コード化中のデータブロックに関連する前記検索領域の方向検索範囲パラメータの少なくとも１つの値を所定の画素数だけ増加させること
を含む、請求項１に記載の方法。
【請求項６】
前記垂直検索範囲パラメータの値の和は、前記垂直検索範囲を定義し、前記検索範囲を定義することは、
前記現在コード化中のデータブロックに関連する前記検索領域の前記垂直検索範囲を所定最大値と比較すること、
前記垂直検索範囲が前記所定最大値よりも大きければ、前記現在コード化中のデータに関連する前記検索領域の前記垂直検索範囲パラメータを更新することであって、
前記現在コード化中のデータブロックに関連する前記検索領域の前記垂直検索範囲パラメータの値が等しければ、前記現在コード化中のデータブロックに関連する前記検索領域の前記垂直検索範囲パラメータの各々に前記所定最大値の半分に等しい値を割り当てるように更新し、
前記現在コード化中のデータブロックに関連する前記検索領域の前記垂直検索範囲パラメータの値が等しくなければ、前記垂直検索範囲が前記所定最大値を超えないように前記垂直範囲パラメータの比較的小さいパラメータのみを減少させるように更新する、
前記垂直検索範囲パラメータを更新すること
をさらに含む、請求項５に記載の方法。
【請求項７】
前記水平検索範囲パラメータの値の和は前記水平検索範囲を定義し、前記検索範囲を定義することは、
前記現在コード化中のデータブロックに関連する前記検索領域の前記水平検索範囲を所定最大値と比較すること、
前記水平検索範囲が前記所定最大値よりも大きければ、前記現在コード化中のデータに関連する前記検索領域の前記水平検索範囲パラメータを更新することであって、
前記現在コード化中のデータブロックに関連する前記検索領域の前記水平検索範囲パラメータの値が等しければ、前記現在コード化中のデータブロックに関連する前記検索領域の前記水平検索範囲パラメータの各々に前記所定最大値の半分に等しい値を割り当てるように更新し、
前記現在コード化中のデータブロックに関連する前記検索領域の前記水平検索範囲パラメータの値が等しくなければ、前記水平検索範囲が前記所定最大値を超えないように前記水平検索範囲パラメータの比較的小さいパラメータのみを減少させるように更新する、
前記水平検索範囲パラメータを更新すること
をさらに含む、請求項５に記載の方法。
【請求項８】
前記検索範囲を定義することは、
前記現在コード化中のデータブロックに関連する前記検索領域の前記水平検索範囲パラメータの値の和を所定最大値と比較すること、
前記和が前記所定値よりも大きければ、前記現在コード化中のデータに関連する前記検索領域の前記水平検索範囲パラメータを更新することであって、
前記現在コード化中のデータブロックに関連する前記検索領域の前記水平検索範囲パラメータの値が等しければ、前記現在コード化中のデータブロックに関連する前記検索領域の前記水平検索範囲パラメータの各々に前記所定値の半分に等しい値を割り当てるように更新し、
前記現在コード化中のデータブロックに関連する前記検索領域の前記水平検索範囲パラメータの値が等しくなければ、前記水平検索範囲パラメータの和が前記所定値を超えないように、前記水平検索範囲パラメータの比較的小さいパラメータのみを減少させるように更新する、
前記水平検索範囲パラメータを更新すること
をさらに含む、請求項５に記載の方法。
【請求項９】
前記検索範囲を定義することは、前記垂直検索範囲が所定最小値よりも小さければ、前記垂直検索範囲パラメータの少なくとも１つを所定の画素数だけ増加させることをさらに含む、請求項６に記載の方法。
【請求項１０】
前記検索範囲を定義することは、前記水平検索範囲が所定最小値よりも小さい場合に前記水平検索範囲パラメータの少なくとも１つを所定の画素数だけ増加させることをさらに含む、請求項７に記載の方法。
【請求項１１】
一連の画像をコード化する装置であって、
一連の画像を受け取る動き検出器であって、前記一連の画像の各々は、複数のデジタル・データ・ブロックを含む、前記動き検出器と、
既にコード化された基準画像を記憶するメモリと、
現在コード化中の画像の既にコード化されたデータブロックに関連する１つまたは複数の検索領域と、前記現在コード化中のデータブロックと共通の位置にある、前記基準画像の既にコード化されたデータブロックに関連する検索領域とに基づいて、前記既にコード化された基準画像内の検索領域を、現在コード化中の画像の現在コード化中のデータブロックに対して定義する動的検索範囲ユニットと
を備える装置。
【請求項１２】
前記動的検索範囲ユニットは、前記現在コード化中の画像の前記現在コード化中のデータブロックに対する前記検索領域を定義する方向検索範囲パラメータを計算し、前記方向検索範囲パラメータを前記動き検出器に送る、請求項１１に記載の装置。
【請求項１３】
各現在コード化中のデータブロックに対して、前記動的検索範囲ユニットが、リアルタイムで各基準画像内の前記検索領域を定義する方向検索範囲パラメータを計算する、請求項１１に記載の装置。
【発明の詳細な説明】
【背景技術】
【０００１】
デジタルビデオの圧縮またはコード化は、ビデオストリームの放送、ストリーミング、および記憶装置など、様々な実装において使用され得る。デジタル画像のストリームにおいて、一連の画像の冗長性は、所与の画像またはフレームの外観が一連の画像内の前の画像または後の画像の外観と似ているときに生じ得る。多くの圧縮技術は、一連の画像内の前のまたは後の画像内の基準領域に対する画像内の現在領域の相違点を表すことによってこの冗長性を利用する。特に、同じ対象が両方の領域にあっても画像内の異なる位置に現れるときは、位置の変化が動きベクトルとしてコード化され得る。様々なビデオ圧縮標準および方法は、動きベクトルを決定する動き推定処理を含み得る。
【０００２】
通常、画像はブロックに分割される。このような場合、動き推定は、現在の画像において現在コード化中の現在のブロックに最もよく一致する基準画像内のブロックを見つける手順である。通常、最もよく一致するブロックの検索は計算能力、時間、および帯域幅を重点的に使用するので、このような検索は基準画像全体において実施されない。その代りに、検索は、最もよく一致するブロックが最も確実に見つけられる基準画像内の特定検索領域に限定される。検索領域は、通常、サイズが固定されており、これによって、動き推定方法の影響が及ぶ動きの範囲が制限されるかもしれない。しかし、検索領域サイズを拡大すると、計算時間および帯域幅をあまりにも消耗する可能性がある。
【図面の簡単な説明】
【０００３】
【図１】本発明の実施形態による例示的なビデオエンコーダのブロック図である。
【図２】現在コード化中の画像のマクロブロックを示し、本発明の実施形態を明示するのに役立つ基準画像ブロック図である。
【図３】本発明の実施形態を明示するのに役立つ例示的な検索領域の図である。
【図４】本発明の実施形態による動き推定中の適応検索範囲を使用するビデオ処理に関する方法のフローチャートである。
【図５Ａ】本発明の実施形態に従って定義される例示的な検索領域の説明である。
【図５Ｂ】本発明の実施形態に従って定義される例示的な検索領域の説明である。
【図５Ｃ】本発明の実施形態に従って定義される例示的な検索領域の説明である。
【図５Ｄ】本発明の実施形態に従って定義される例示的な検索領域の説明である。
【発明を実施するための形態】
【０００４】
本発明と見なされ主題は、本明細書の結びの部分において特に指摘され、明確に主張される。しかし、本発明は、その目的、特徴、および利点とともに、構成、操作方法のいずれに関しても、添付図面と一緒に以下の詳細説明を参照することによって最もよく理解され得る。
【０００５】
説明を簡単かつ分かりやすくするために、図に示される素子は必ずしも一定の縮尺で描かれていない。たとえば、素子の一部の寸法は、分かりやすくするために他の素子に比べて誇張されている場合がある。さらに、適当であると考えられる場合、参照符号が対応する素子または類似した素子を示すために図中で反復されている場合がある。
【０００６】
以下の詳細説明において、本発明が十分に理解されるように多くの具体的詳細が示される。しかし、本発明はこれらの具体的詳細なしで実施されてもよいことを当業者は理解されよう。他の例では、本発明が不明瞭にならないよう、周知の方法、手順、および構成要素についての詳細を割愛する。
【０００７】
本発明の実施形態はこの点に関して限定されないが、たとえば、「処理する」、「計算する」、「算出する」、「決定する」、「確立する」、「分析する」、「チェックする」などの用語を利用する議論は、コンピュータのレジスタおよびメモリの少なくとも一方の内部で物理（たとえば、電子的）量として表されるデータを操作し、かつ／あるいは操作および処理の少なくとも一方を実施するための命令を記憶するコンピュータのレジスタおよびメモリの少なくとも一方などの情報記憶媒体内で物理量として同様に表される他のデータに変換するコンピュータの操作および処理の少なくとも一方、コンピューティングプラットフォーム、コンピューティングシステム、またはその他の電子コンピュータデバイスに言及している場合がある。
【０００８】
本発明の実施形態はこの点に関して限定されないが、本明細書において使用される用語「複数」は、たとえば、「多数」または「２つまたはそれ以上」を含む場合がある。用語「複数」は、２つまたはそれ以上の構成要素、デバイス、素子、ユニット、パラメータなどを記述するために本明細書を通じて使用される場合がある。
【０００９】
本発明の実施形態は、一連のデジタル画像（ビデオストリーム）における画素のブロックの動きベクトルのビデオコード化および推定を対象とする。動きベクトルは、基準画像における現在ブロックの位置に対する現在画像の現在ブロックの位置を示す。基準画像は、一連の画像における前の画像または後の画像であってもよい。方法は１６×１６画素の例示的なブロックに適用されるものとして説明されるが、異なるサイズのブロックに適用されてもよいことは当業者には明らかであるべきである。
【００１０】
本発明の実施形態は、所定のサイズを有する静的検索領域を使用する代わりに動き推定処理における動的または適応検索範囲の使用を含んでいてもよい。本発明の実施形態に従って適応検索範囲法を適用すると、精度に影響を及ぼすことなく一定のブロックに対して比較的小さい検索領域を使用することができるかもしれない。したがって、この予測を採用すると、メモリおよび帯域幅資源を増やさなくても済むように検索領域の全体サイズを抑制すると同時に見込まれる比較的長い動きベクトルを計算することができるかもしれない。
【００１１】
本発明の実施形態に従って動的検索範囲を採用すると、動きベクトルの方向を予測して反対方向の検索領域を縮小することによって予測される方向における検索領域を拡大することができるかもしれない。適応検索範囲法を用いる本発明の実施形態によると、基準ボックスの全体サイズまたは領域は縮小され得るが、従来の方法に比べて比較的長い動きベクトルが可能であり得る。たとえば、本発明の実施形態によると、動きベクトルの最大限のサイズは静的検索範囲法に関連する動きベクトルに対して最大およそ２００％まで長くなる可能性があり、帯域幅は最大およそ５０％まで縮小される可能性がある。
【００１２】
本発明の一部の実施形態による方法は、コンピュータ、プロセッサ、デジタル信号プロセッサ専用ハードウェア、またはこれらの任意の組合せの中央演算処理装置を含むが、これらに限定されない任意の適切な演算器によって実施されてもよい。本発明の実施形態による方法を表わすソフトウェアコードは、演算器によってアクセス可能なメモリに記憶されてもよい。
【００１３】
本発明の実施形態による方法を実施するための演算器を備える装置は、データ圧縮エンコーダまたはトランスコーダの一部であってもよい。本発明の範囲はこの点に関して限定されないが、エンコーダまたはトランスコーダは、デジタル・ビデオ・カメラ、セット・トップ・ボックス、カメラを備える携帯電話、携帯情報端末（ＰＤＡ）、ゲーム機などのいずれかの一部であってもよい。
【００１４】
ここで、本発明の実施形態による例示的なビデオエンコーダのブロック図である図１を参照する。例示的なビデオエンコーダ１００は、入力ビデオストリーム１０１を受け取ってもよく、コード化されたビデオストリーム１０２を出力してもよい。エンコーダ１００は、動き推定ユニット１１０、動的検索範囲（ｄｙｎａｍｉｃ  ｓｅａｒｃｈ  ｒａｎｇｅ）（ＤＳＲ）計算器１２０、画像処理ユニット１３０、および基準フレームメモリ１０５を含んでいてもよい。エンコーダ１００は、たとえば、ＭＰＥＧ−２、ＭＰＥＧ−４、Ｈ．２６４、またはその他のビデオ標準など、任意のビデオ標準に従ってビデオ処理を実施してもよい。動き推定ユニット１１０は、動きベクトル（ＭＶ）を計算してもよく、動き推定計算を実施してもよい。
【００１５】
動きベクトルは、入力ビデオストリーム１０１から受け取られた画像またはフレームから別の画像またはフレーム、たとえば、ストリーム１０１から既に受け取られた基準フレームへの変換を表わしていてもよい。基準フレームは、たとえば、基準フレームメモリ１０５に記憶されてもよい。フレームは、本明細書においてマクロブロック（ＭＢ）またはデータブロックとも呼ばれるブロックに分割されてもよい。各マクロブロックは、画素のグループ、たとえば、１６×１６画素を含んでいてもよい。２つまたはそれ以上のマクロブロックは、検索領域を定義してもよい。フレーム内部の検索領域は、本明細書において、「検索ウィンドウ」または「基準ボックス」とも呼ばれる。
【００１６】
動き推定ブロック１１０は、基準メモリに記憶された基準フレームの定義された検索領域内で、ソースフレームまたは現在コード化中のフレーム内の特定マクロブロックに最もよく似たブロックを検索して見つけてもよい。ソースフレーム内の特定マクロブロックに最もよく似ていると考えられる基準フレーム内のマクロブロックは、「最良一致ブロック」または「一致」である。一致が見つかると、動き推定ブロック１１０によって実行される動き推定アルゴリズムは、基準フレーム内の最良一致ブロック（基準ブロック）の位置に対する現在コード化中のフレームにおけるマクロブロックの位置を記述する１つまたは複数の動きベクトルを割り当ててもよい。動きベクトルは、動き（たとえば、水平および／または垂直方向の）のサイズおよび方向、あるいはソースフレーム内のマクロブロックと基準フレーム内の一致マクロブロックの相対的位置の相違を記述する。
【００１７】
本発明の実施形態によると、最良一致ブロックが検索される基準フレーム内の検索領域は、各マクロブロックに対して定義または再計算されてもよい。基準フレーム内の検索領域のサイズおよび位置を定義するパラメータは、本明細書で詳述されるように、既に処理されたマクロブロックからのデータに基づいてＤＳＲ計算器１２０で計算されてもよい。
【００１８】
本発明の実施形態によると、現在コード化中のフレームにおける各マクロブロックに対して、基準フレーム内の動的検索領域および検索範囲は、既に計算された検索領域の知識と、現在コード化中のフレーム内の１つまたは複数の隣接するマクロブロックに対して、および基準フレーム内の共通の位置にある基準ブロックに対して計算された動きベクトルとに基づいて計算されてもよい。他の実施形態によると、検索範囲は、現在コード化中のフレーム内の１つまたは複数の隣接するマクロブロックと、基準フレーム内の１つまたは複数の所定のマクロブロックとに対して計算された検索領域および動きベクトルに基づいて計算されてもよい。ＤＳＲ計算器１２０は、動き推定ブロック１１０から既に計算された動きベクトルに関するパラメータと、基準フレームと基準メモリ１０５から既に計算された検索領域とに関するパラメータとを受け取ってもよい。
【００１９】
ＤＳＲ計算器１２０は、特定マクロブロックに対する検索領域を動的に計算し、定義し、あるいは決定してもよい。動的検索領域は、第１の所望の方向における検索範囲を拡大し、第２の反対方向における検索範囲を縮小することによってすべてのマクロブロックに対する静的な所定の検索領域を使用する従来の方法に比べて長い動きベクトルを計算することができてもよい。ＤＳＲ計算器１２０は、２つの連続したフレーム間の動きの方向を比較的高い精度で予測してもよく、この情報を用いてその方向の検索領域を拡大し、反対方向の検索領域を縮小してもよい。本発明の実施形態によると、現在コード化中のフレーム内の一定のマクロブロックに対する基準フレーム内の検索領域を定義し、適合させ、あるいは更新する過程の最後に、検査領域の全体サイズは、本明細書で詳述されるように、既に計算されたマクロブロックに比べて縮小されても、拡大されても、不変に保たれてもよい。
【００２０】
動き推定ブロック１１０およびＤＳＲ計算器１２０は、これらのブロックによって実施されるコンピュータ操作の結果を記憶または保存できるメモリユニットを含んでいてもよく、このメモリユニットに結合されてもよい。このようなメモリユニットは、動き推定ブロック１１０および／またはＤＳＲ計算器１２０の計算結果を、任意の形式または方法、たとえば、表形式、リストなどで保存してもよい。メモリは、本明細書に記載される方法を実施するための命令をさらに記憶してもよい。エンコーダ１００は、リアルタイムのコード化中に前処理アルゴリズムの結果を使用する命令を記憶するための任意のコンピュータ記憶媒体を含む、１つまたは複数のメモリユニットをさらに含んでいてもよい。
【００２１】
画像処理ブロック１３０は、様々なコード化関数またはコード化操作を実施してもよい。図１の例示的な図において、画像処理ブロック１３０は、コード化処理、たとえば、離散余弦変換（ＤＣＴ）、量子化、エントロピコード化などの関数、計算、または処理の一部である任意の操作、関数、または方法を実施してもよいが、しかしながら、本発明はこの点に関して限定されず、本発明の実施形態によると、任意の数および任意の種類のブロック、ユニット、および／またはモジュールがエンコーダ１００に含まれてもよく、コード化処理の一部であってもよいことを当業者は理解すべきである。エンコーダ１００は、他のブロック、モジュール、操作、およびユニットをさらに含んでいてもよい。
【００２２】
ここで、基準画像またはフレーム２００と現在コード化中のフレームまたはソースフレーム２１０とを例示的に示す図２を参照する。ソース画像２１０は、現在コード化中の現在のマクロブロック２１１、左ブロック２１２（ＬＥＦＴ）、および上部ブロックまたは最上部ブロック２１３（ＵＰ）を含み、いずれも既にコード化され、その動きベクトルは既に決定されている。基準画像２００は、共通位置基準ブロック２０１（ＣＯ．）および基準ブロック２０２（ＲＥＦ．）を含む。共通位置基準ブロック２０１は、現在の画像２１０における現在のブロック２１１と同じ位置で基準画像２００内にあってもよい。この場合、基準画像２００におけるマクロブロック２０１から現在のマクロブロック２１１までの動きベクトル２０３は、（０、０）ベクトルとなる。動きベクトルは、基準画像２００内のブロックの左上隅から現在コード化中の画像２１０を有するブロックの左上隅にあるものとして図２示されているが、動きベクトルに対して他の自己矛盾のない定義が採用されてもよい。
【００２３】
図２は、共通位置基準ブロック２０１の周囲に現在のマクロブロック２１１に対して選定された例示的な検索領域または基準ボックス２０４をさらに明示する。検索領域２０４内で検索を実施することによって、一致が見つけられ基準ブロック２０２として特定されてもよい。したがって、現在のブロック２１１に対する動きベクトルは、動きベクトル２０５となる。
【００２４】
図３は、本発明の実施形態を理解するのに役立つ例示的な検索領域の図である。図３は例示的な検索領域３００を示し、４８×４８画素の領域には１６×１６画素を有する中心の共通位置マクロブロック３０１を含む。中心ブロック３０１は、たとえば、現在の画像における２１１など、現在のブロックの位置と同じ基準画像内の位置にある共通位置ブロック２０１であってもよい。検索領域は一例に過ぎず、８０×８０画素の例示的検索領域あるいは５６×５６画素の例示的検索領域など、種々のサイズの検索領域も本発明の範囲にあることは当業者には明らかであるべきである。検索は、典型的に、左上隅から始まって画素を飛び越して右および下に進んでもよいが、必ずしもそうでなくてよい。
【００２５】
本発明の実施形態によると、ビデオコード化装置において動き推定中に検索領域を動的に定義する方法が提供される。図４に関して本明細書で詳述される方法は、各々が複数のデジタル・データ・ブロックを備える、一連の画像を受け取ること、この後、現在コード化中の画像の現在コード化中のデータブロックに対して、現在コード化中の画像の既にコード化されたデータブロックに関連する１つまたは複数の検索領域と、現在コード化中のデータブロックと共通の位置にある基準画像の既にコード化されたデータブロックに関連する検索領域とに基づいて既にコード化された基準画像内部の検索領域を定義することを含んでいてもよい。
【００２６】
ここで、本発明の実施形態に従ってビデオストリームの動き推定処理中に適応検索領域を動的に選定する方法のフローチャートである図４を参照する。方法の運用は、たとえば、図１のエンコーダ１００のＤＳＲ計算器１２０および動き推定ブロック１１０ならびに／あるいは他の適切なユニット、デバイス、および／またはシステムによって実施されてもよい。本発明の実施形態によると、初期の検索領域は、たとえば、フレームの動き推定処理の最初に使用されるデフォルト検索領域として定義されてもよい。
【００２７】
例示的な初期検索領域は、４８×４８画素の正方形の基準ボックスである検索領域３００であってもよく、ここで、検索領域３００の端の長さはＭＡＸ＿ＳＲ（最大ＳＲ）＋１６と定義される。このとき、基準ボックス３００の全領域は、（ＭＡＸ＿ＳＲ＋１６）×（ＭＡＸ＿ＳＲ＋１６）＝（３２＋１６）×（３２＋１６）である。
【００２８】
検索領域は、４方向、すなわち、検索範囲パラメータＤＳＲｔｏｐ、ＤＳＲｂｏｔｔｏｍ、ＤＳＲｌｅｆｔ、およびＤＳＲｒｉｇｈｔによって表されてもよい。ＤＳＲｔｏｐは共通位置ブロックの上端と検索領域の上端の間の距離を表わし、ＤＳＲｂｏｔｔｏｍは共通位置ブロックの下端と検索領域の下端の間の距離を表わし、ＤＳＲｌｅｆｔは共通位置ブロックの左端と検索領域の左端の間の距離を表わし、ＤＳＲｒｉｇｈｔは共通位置ブロックの右端と検索領域の右端の間の距離を表わす。
【００２９】
これらのパラメータの各々は、ＭＡＸ＿ＳＲの最大値を超えてはならない。さらに、２つの垂直パラメータＤＳＲｔｏｐとＤＳＲｂｏｔｔｏｍの和は、「垂直検索範囲」とも呼ばれ、ＭＡＸ＿ＳＲの最大値を超えてはならない。同様に、２つの水平パラメータＤＳＲｌｅｆｔとＤＳＲｒｉｇｈｔの和は、「水平検索範囲」とも呼ばれ、ＭＡＸ＿ＳＲの最大値を超えてはならない。
【００３０】
値はさらに方向を示すように定義されてもよい。したがって、オプションとして、１対の直角を成すパラメータ、たとえば、垂直パラメータＤＳＲｔｏｐおよび水平パラメータＤＳＲｌｅｆｔは上方向および左方向を表わすために負値のみを受け取ってもよく、他の対、すなわち、垂直パラメータＤＳＲｂｏｔｔｏｍおよび水平パラメータＤＳＲｒｉｇｈｔは反対の下方向および右方向を表わすために正値のみを受け取ってもよい。
【００３１】
初期に共通位置基準ブロックは検索領域の中心にあるので、共通位置基準ブロックの４つの端の各々と検索領域のそれぞれの端との距離はＭＡＸ＿ＳＲ／２に等しい。初期検索領域を定義する初期値は、専用メモリまたは記憶ユニットに記憶または保存されてもよい。初期値は、プロセッサ、たとえば、適応検索範囲処理用のエンコーダ１００によって使用される場合の特殊構成ファイルに保存されてもよい。
【００３２】
動き推定方法は、各フレームが複数のマクロブロックに分割される複数のフレームを含むビデオ信号のストリームで実施されてもよい。
方法は、現在コード化中の画像における特定マクロブロックの動き推定アルゴリズムを実施する前に、現在コード化中のマクロブロックに空間的に隣接して位置する１つまたは複数の既にコード化されたマクロブロックの動きベクトルおよび検索領域と、さらに、現在の画像における現在のブロックの位置と同じ基準画像内の位置にある基準画像内の共通位置マクロブロックの検索領域とに基づいて、基準画像内の適応検索領域を選定することを含んでいてもよい。したがって、検索領域を特定マクロブロックに適応させることは、空間ベースの予備知識と時間ベースの予備知識の両方に基づいていてもよい。
【００３３】
計算は、たとえば、現在コード化中のマクロブロックに対して選定された検索領域として初期のデフォルト基準ボックスを使用すること、基準ボックスを垂直および／または水平にシフトすると同時に基準ボックスの全領域をデフォルト値のままとすること、検索領域のサイズを縮小すること、基準ボックスを少なくとも一方向にシフトすることなど、様々なオプションをもたらしてもよい。
【００３４】
図２の説明を参照すると、マクロブロック２１１の動きベクトルを決定する検索領域は既にコード化されたマクロブロック２０１、２１２、および２１３からのデータに基づいて計算されてもよい。図２は左上のマクロブロック隣接データからのデータを使用することを明示しているが、現在コード化中のマクロブロックに接触し、隣接し、あるいは近接する１つまたは複数の任意数のマクロブロックを使用するとき本発明の実施形態が同様に適用可能であることを当業者は理解すべきである。
【００３５】
本発明の実施形態によると、現在コード化中のブロックの検索領域に関する特定パラメータの動的な選定は、以下に詳述される例示的処理に従って実施されてもよい。第一に、方法は、現在コード化中のフレーム内の既にコード化された左上のマクロブロックと基準フレーム内の共通位置ブロックとを識別することを含んでいてもよい。つぎに、既にコード化されたマクロブロックに関連する検索範囲パラメータＤＳＲｔｏｐの値は互いに比較されてもよく、最大値が現在コード化中のマクロブロックの検索範囲パラメータＤＳＲｔｏｐに対する新しい値として割り当てられる。同様に、新しい値は、既にコード化されたマクロブロック（ボックス４１０）に関連するデータに基づいて、検索領域の残る検索範囲パラメータ、すなわち、ＤＳＲｂｏｔｔｏｍ、ＤＳＲｌｅｆｔ、およびＤＳＲｒｉｇｈｔに割り当てられてもよい。
【００３６】
新たに割り当てられた値が共通位置基準マクロブロックＤＳＲｔｏｐ＿ｒｅｆ、ＤＳＲｂｏｔｔｏｍ＿ｒｅｆ、ＤＳＲｌｅｆｔ＿ｒｅｆ、およびＤＳＲｒｉｇｈｔ＿ｒｅｆのパラメータと異なるかどうかがチェックされる（質問ブロック４２０）。現在のマクロブロックの動きベクトルを見つけるために使用される検索領域の新たに割り当てられた値が現在のフレーム内の現在のブロックと同じ位置で前のフレーム内にある共通位置基準マクロブロックのパラメータと同じであれば、検索領域は共通位置基準マクロブロックの動きベクトルを見つけるために使用される検索領域であると判断される（ボックス４３０）。
【００３７】
現在のマクロブロックの動きベクトルを見つけるために使用される検索領域の新たに割り当てられて値の少なくとも１つが共通位置基準マクロブロックのそれぞれのパラメータと異なる場合、その新たに割り当てられた値は必要に応じて増加されてもよい。たとえば、検索範囲パラメータＤＳＲｂｏｔｔｏｍの１つの新たに割り当てられた値が共通位置基準フレームＤＳＲｂｏｔｔｏｍ＿ｒｅｆに関連するそれぞれの値と異なる場合、新しい値がＭＡＸ＿ＳＲの最大値を超えないという条件で新たに割り当てられた値ＤＳＲｂｏｔｔｏｍは所定の画素数、たとえば、「ＤＳＲｂｏｔｔｏｍ＋４」に等しい４画素だけ増加されてもよい（ボックス４３０）。各方向に４画素を使用することは一例にすぎず、必要に応じて検索範囲を拡大するために任意の方向に任意数の画素が使用されてもよいことを当業者は理解すべきである。
【００３８】
現在のマクロブロックの検索領域を定義するパラメータの少なくとも１つが前のフレームまたは基準フレーム内の同じ空間位置にある対応するマクロブロックの検索領域を定義する各パラメータと異なる状況は、現在のフレームと前のフレームとの間に明らかな変化がありそうなことを示し得る。現在コード化中のマクロブロックの検索範囲を拡大すると、このような変化が現在のマクロブロックの動きベクトルを決定する比較的大きい検索領域で網羅されることを確実にし得る。
【００３９】
つぎに、基準ボックスの端がＭＡＸ＿ＳＲ＋１６の所定最大長を超えてはならないので、方法は妥当性チェックを実施すること（ボックス４４０）を含んでいてもよい。したがって、水平検索範囲および垂直検索範囲はいずれもＭＡＸ＿ＳＲを超えるべきでない。本発明の実施形態によると、垂直パラメータＤＳＲｔｏｐ、ＤＳＲｂｏｔｔｏｍの値の和が所定値を超えると、これらのパラメータの少なくとも一方は和が最大値ＭＡＸ＿ＳＲとなるように更新されるべきである。方法は、２つの垂直パラメータを比較することを含んでいてもよい。２つのパラメータが等しければ、両垂直パラメータは所定最大値の半分であるＭＡＸ＿ＳＲ／２の同じ値を受け取るように更新されてもよい。２つのパラメータが等しくなければ、それぞれの方向でより大きい動きを示す大きい方のパラメータに高い優先順位が与えられる。この場合、最長条件に違反することのないように、小さい方のパラメータのみがその値を減らすことによって更新されてもよい。これによって、動き方向であると推定される方向に検索領域の位置をシフトすることになってもよい。
【００４０】
同様に、本発明の実施形態によると、水平パラメータＤＳＲｌｅｆｔ、ＤＳＲｒｉｇｈｔの値の和が所定値を超えると、これらのパラメータの少なくとも一方は和が最大値ＭＡＸ＿ＳＲとなるように更新されるべきである。方法は、２つの水平パラメータを比較することを含んでいてもよい。２つのパラメータが等しければ、両水平パラメータはＭＡＸ＿ＳＲ／２の同じ値を受け取るように更新されてもよい。２つのパラメータが等しくなければ、それぞれの方向でより大きい動きを示す大きい方のパラメータに高い優先順位が与えられる。この場合、最長条件に違反することのないように、小さい方のパラメータのみがその値を減らすことによって更新されてもよい。これによって、動き方向であると推定される方向に検索領域の位置をシフトすることになってもよい。
【００４１】
さらに、方法は、計算された新しい検索領域が所定値よりも小さくないかどうかをチェックすること（質問ブロック４５０）を含んでいてもよい。計算された検索領域が所定値に等しいか所定値よりも大きいことが分かると、計算された方向パラメータが採用されて現在コード化中のマクロブロックの動き推定の基準画像内の検索領域を定義する（ボックス４６０）。
【００４２】
一部の実施形態によると、計算された検索領域が所望の検索領域よりも小さいことが分かる場合、方法は検索領域を拡大するために計算されたパラメータを微調整すること（ボックス４７０）を含んでいてもよい。したがって、垂直および水平の両パラメータは、必要に応じて増加されてもよい。たとえば、垂直パラメータＤＳＲｔｏｐ、ＤＳＲｂｏｔｔｏｍの値の和が、たとえば、「ＭＡＸ＿ＳＲ−８」などの閾値よりも小さければ、各垂直パラメータは２画素だけ増加されてもよい。当業者には理解されるように、本発明の実施形態には同様に任意の他の適切な値が適用可能である。同様に、水平パラメータＤＳＲｌｅｆｔ、ＤＳＲｒｉｇｈｔの値の和が、たとえば、「ＭＡＸ＿ＳＲ−４」などの閾値よりも小さければ、各水平パラメータは１画素だけ増加されてもよい。当業者には理解されるように、本発明の実施形態には同様に任意の他の適切な値が適用可能である。微調整処理は、複数のステップで反復実施されてもよい。
【００４３】
本発明の実施形態による方法を実施する例示的なアルゴリズムは、以下の形式を有するコードを含んでいてもよい。表示「＿ｒｅｆ」は、現在のフレームにおいて現在コード化中のマクロブロック、たとえば、マクロブロック３０１と同じ基準フレーム内の位置にある共通位置基準マクロブロックを表わす。表示「＿ｌｅｆｔ」は、現在のマクロブロックの左側にあるマクロブロック、たとえば、マクロブロック２１２を表わし、表示「＿ｕｐ」は現在のマクロブロックの上方にあるマクロブロック、たとえば、マクロブロック２１３を表わす。
【００４４】
様々なパラメータのオプション値
【００４５】
【数１】
2011199868.tif 000003
ただし、
【００４６】
【数２】
2011199868.tif 000004
初期化
【００４７】
【数３】
2011199868.tif 000005
次の基準ボックスの計算
【００４８】
【数４】
2011199868.tif 000006
【００４９】
【数５】
2011199868.tif 000007
ここで、本発明の実施形態に従って実施された例示的な検索領域計算の結果を示す図５Ａ〜５Ｄを参照する。計算は、４８×４８画素の領域サイズとデフォルト基準ボックス５００内部の中心にある共通位置マクロブロック５０１とを有するデフォルト基準ボックスまたは検索領域５００から始まった。したがって、検索範囲パラメータに対する初期値は、各検索範囲パラメータに対して１６画素であり、検索動きの垂直および水平方向の最大長は３２画素（ＭＡＸ＿ＳＲ＝３２）であり、検索領域の初期領域サイズは４８×４８画素である。
【００５０】
図５Ａは、本発明の実施形態に従って計算された適応検索領域を示す。適応検索領域は、４８×４８画素の領域サイズを有する基準ボックス５１０を有する。基準ボックスのサイズは、計算では適応されていない。しかし、共通位置マクロブロック５０１は、もはやボックス内の中心にはなく、したがって、基準画像内の最良一致マクロブロックの検索は下方向の検索範囲を縮小するという犠牲を払って上方向に拡大されうる。図示のように、最大限の動きベクトルサイズはここでは２４である。
【００５１】
図５Ｂは、本発明の実施形態に従って計算された別の適応検索領域を示す。適応検索領域は、４８×４８画素の領域サイズを有する基準ボックス５２０を有する。基準ボックスのサイズは、計算では適応されていない。しかし、共通位置基準マクロブロック５０１は、基準ボックスの左上隅に置かれ、したがって、基準画像内の最良一致マクロブロックの検索は右方向および下方向に拡大され、上方向および左方向に検索することはできない。図示のように、最大限の動きベクトルサイズはここでは３２である。
【００５２】
図５Ｃは、本発明の実施形態に従って計算された別の適応検索領域を示す。適応検索領域は、４８×４８画素の領域サイズを有する基準ボックス５３０を有する。基準ボックスのサイズは、計算では縮小されてデフォルト基準ボックスに対する帯域幅がおよそ５０％だけ減少された。この場合、共通位置基準マクロブロック５０１は、基準ボックスの端の中心に置かれ、したがって、基準画像内の最良一致マクロブロックに対する検索は垂直方向で制限された。
【００５３】
図５Ｄは、本発明の実施形態に従って計算された別の適応検索領域を示す。適応検索領域は、４８×４８画素の領域サイズを有する基準ボックス５４０を有する。基準ボックスのサイズはデフォルト基準ボックスに対する計算では縮小され、さらに、基準画像内の最良一致マクロブロックの検索範囲は上方向の検索を不可能にするという犠牲を払って下方向に拡大された。図示のように、最大限の動きベクトルサイズはここでは２４であり、基準ボックスのサイズは４０×４０画素である。
【００５４】
本発明の実施形態は、たとえば、プロセッサまたはコントローラによって実行されるときに本明細書に開示された方法を実行するコンピュータ実行可能命令などの命令をコード化し、含み、あるいは記憶する、たとえば、メモリ、ディスクドライブ、またはＵＳＢフラッシュメモリなどの、コンピュータまたはプロセッサ可読媒体、あるいはコンピュータまたはプロセッサ記憶媒体などの品目を含んでいてもよい。
【００５５】
本発明の実施形態は、複数の中央演算処理装置（ＣＰＵ）などの適切な多目的または特定のプロセッサまたはコントローラ、複数の入力装置、複数の出力装置、複数のメモリユニット、複数の記憶ユニットなどを含むが、これらに限定されない構成要素を含む。このようなシステムは、他の適切なハードウェア構成要素および／またはソフトウェア構成要素をさらに含んでいてもよい。一部の実施形態において、このようなシステムは、たとえば、パーソナルコンピュータ、デスクトップコンピュータ、モバイルコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、端末、ワークステーション、サーバーコンピュータ、携帯端末（ＰＤＡ）装置、タブレットコンピュータ、ネットワーク装置などの適切な計算装置であってもよく、これらを含んでいてもよい。
【００５６】
本明細書では本発明の特定の特徴が図示され説明されているが、当業者にはここで多くの修正形態、代替形態、変更形態、および均等物が思い浮かぶであろう。したがって、添付の特許請求の範囲が本発明の真の趣旨に含まれるようなすべての修正形態および変更形態を網羅するものであることを理解されたい。
【図１】
2011199868.tif 000008
【図２】
2011199868.tif 000009
【図３】
2011199868.tif 000010
【図４】
2011199868.tif 000011
【図５Ａ】
2011199868.tif 000012
【図５Ｂ】
2011199868.tif 000013
【図５Ｃ】
2011199868.tif 000014
【図５Ｄ】
2011199868.tif 000015
【外国語明細書】
2011199868000001.pdf