(57)【特許請求の範囲】
【請求項１】
適応的な動き推定方法において、
（ａ）マクロブロック単位のフレームと探索領域を入力して推定しようとするマクロブロックのための候補動きベクトルを予測する過程と、
（ｂ）前記（ａ）過程で予測された候補動きベクトルのＳＡＤ値が臨界値範囲内に含まれる場合、その予測された位置を中心として制限された探索領域で動きを推定し、そうでない場合、全体の探索領域を対象として動きを推定する過程とを含み、前記臨界値は、予め計算された目標符号化時間に基づき、マクロブロック群に該当するスライス単位ごとに現在フレームに対する予想符号化時間を推定して調節されることを特徴とする動き推定方法。
【請求項２】
前記候補動きベクトルはゼロ動きベクトル値、隣接したマクロブロックの動きベクトルにメディアンを取った値、以前又は以降のフレームから予測された値を生成し、そのうち推定しようとするマクロブロックに整合される値を選ぶことを特徴とする請求項１に記載の動き推定方法。
【請求項３】
前記（ｂ）過程は、
（ｂ-１）予測された候補動きベクトルのＳＡＤ値が臨界値範囲内に含まれる場合にはＯＰＧＳアルゴリズムを行い、
（ｂ-２）予測された候補動きベクトルのＳＡＤ値が臨界値範囲内に含まれない場合にはＨＳＢＭアルゴリズムを行う過程であることを特徴とする請求項１に記載の動き推定方法。
【請求項４】
前記（ｂ-２）過程でＨＳＢＭは循環探索を適用して、段階探索ごとに動きベクトルの整合度を予め設定された臨界値のうち予想される符号化時間により選ばれる誤差許容範囲と比較して比較された値を動きベクトルとして選ぶことを特徴とする請求項３に記載の動き推定方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は動映像符号化器に適用される高速動き推定方法及びその装置に係り、特に、ＯＰＳＧ（Ｏｎｅ-Ｐｉｘｅｌ Ｇｒｅｅｄｙ Ｓｅａｒｃｈ）アルゴリズム及びＨＳＢＭ（Ｈｉｅｒａｒｃｈｉｃａｌ Ｓｅａｒｃｈ Ｂｌｏｃｋ Ｍａｔｃｈｉｎｇ）アルゴリズムを組み合わせた動き推定方法及びその装置に関する。
【０００２】
【従来の技術】
一般に、映像サービス、娯楽、デジタル放送、携帯用映像端末装置などはＨ．２６１、Ｈ．２６３、ＭＰＥＧ-１、ＭＰＥＧ-２、ＭＰＥＧ-４ビデオ国際標準案を採択している。このようなビデオ国際標準案により、ビットストリームを生成するための映像符号化器はＤＣＴ（Ｄｉｓｃｒｅｔｅ Ｃｏｓｉｎｅ Ｔｒａｎｓｆｏｒｍ）及び量子化、可変長符号化などの圧縮アルゴリズム及び動き推定アルゴリズムを用いて映像信号を圧縮する。
【０００３】
動き推定アルゴリズムは、既存の技術としてＦＳＢＭ（Ｆｕｌｌ−Ｓｅａｒｃｈ Ｂｌｏｃｋ Ｍａｔｃｈｉｎｇ）アルゴリズム及びＦＳ（Ｆａｓｔ Ｓｅａｒｃｈ）アルゴリズムなどがある。ＦＳＢＭアルゴリズムは、以前のフレームに対する探索領域に対し全ての可能な位置を一対一で現フレームとの差分を取った後、最小の誤差を有する位置を探す。しかし、ＦＳＢＭアルゴリズムは最も単純であり、正確度が理想的であること、または極めて高い計算量を要求するため、リアルタイムのエンコーディングには不向きである。
【０００４】
これに対し、ＦＳアルゴリズムは、多少の正確度を犠牲する代わりに、ＦＳＢＭアルゴリズムに比べて高い水準の計算量の減少効果を有するものであって、一般に映像の画質が大きく重要視されないリアルタイム映像符号化器（例えば、映像電話機、ＩＭＴ-２０００端末、映像会議システム等）に適している。ＦＳアルゴリズムとしては、ＨＳＢＭアルゴリズム、ＴＳＳ（Ｔｈｒｅｅ−Ｓｔｅｐ Ｓｅａｒｃｈ）アルゴリズム、２Ｄ ＬＳＢ（Ｌｏｇａｒｉｔｈｍｉｃ Ｓｅａｒｃｈ）アルゴリズム、ＯＰＧＳアルゴリズムなどがある。
【０００５】
ここで、ＨＳＢＭアルゴリズムは正確度が高く、動き量に対する影響が比較的に少ないが、計算量が高く、低解像度のフレームを貯蔵するメモリが要求され、動きベクターの距離の遠近を問わずに多くの計算量を要する。
【０００６】
また、ＯＰＳＧアルゴリズムは中心点又は開始点の近傍だけで有効な動きベクターを探せ、地域最小点に間違って収束され易く、動きが多くて複雑な映像では正確な結果が誘導し難く、さらに、開始点で遠距離にある動きベクターを探すためには計算量が大いに要求される。
【０００７】
したがって、既存の動き推定アルゴリズムは、既存の既に計算された結果を活用できず、また動きの多少を問わず、または該当ブロックの特性によらずにあるアルゴリズムを一概に全てのブロックに同様に適用することにより、不要な計算を低減できる機会を活用できない。このため、既存の動き推定アルゴリズムはＶＬＳＩ（Ｖｅｒｙ Ｌａｒｇｅ Ｓｃａｌｅ Ｉｎｔｅｇｒａｔｉｏｎ）等のハードウェアで具現するには適しているが、ソフトウェア専用のエンコーダを具現する上では効率的でなく、そして、ソフトウェアだけで具現しようとする場合、多くの計算量により安価で低電力のＣＰＵを使い難いという短所がある。
【０００８】
【発明が解決しようとする課題】
本発明が解決しようとする技術的課題は、ＯＰＳＧアルゴリズム及びＨＳＢＭアルゴリズムを組み合わせたハイブリッド型動き予測を行うことにより、不要な計算を最小化しつつも、正確度を高めた動き推定方法を提供することである。
【０００９】
本発明が解決しようとする他の技術的課題は、ＯＰＳＧアルゴリズム及びＨＳＢＭアルゴリズムを組み合わせた動き推定方法が適用された動き推定装置を提供することである。
【００１０】
【発明の実施の形態】
前記技術的課題を解決するために、本発明は、適応的な動き推定方法において、（ａ）マクロブロック単位のフレーム及び探索領域を入力して推定しようとするマクロブロックのための候補動きベクターを予測する過程と、（ｂ）前記（ａ）過程で予測された候補動きベクターによる誤差値が臨界値範囲内に含まれる場合、その予測された位置を中心として制限された探索領域で動きを推定し、そうでない場合、全体の探索領域を対象として動きを推定する過程とを含む動き推定方法である。
【００１１】
前記他の技術的課題を解決するために、本発明は、適応的な動き推定装置において、映像データを入力してゼロ動きベクター、以前の動きベクター、隣接したブロックの動きベクターのうち推定しようとするマクロブロックに整合された動きベクターを候補動きベクターとして予測する候補ベクター予測部と、前記候補ベクター予測部で予測された候補ベクターによる誤差値と設定された臨界値とを比較して動き推定アルゴリズムを選ぶアルゴリズム選択部と、前記アルゴリズム選択部で前記候補ベクターによる誤差値が設定された臨界値以内であれば、その予測された位置を中心として制限された探索領域で動きを推定し、そうでない場合、全体の探索領域を対象として動きを推定する動き推定部とを含む動き推定装置である。
【００１２】
【発明の実施の形態】
以下、添付した図面に基づき、本発明の望ましい実施形態を説明する。
【００１３】
図１は、本発明によるハイブリッド型高速動き推定装置の全体ブロック図である。
【００１４】
図１の装置は、候補ベクター予測部１１０、アルゴリズム選択部１２０、動き推定部１３０、メモリ１４０、半画素動き推定部１５０で構成される。
【００１５】
図１を参照すれば、候補ベクター予測部１１０は、映像データを入力して現在推定しようとするマクロブロックのための候補ベクターを予測する。このとき、候補ベクター予測部１１０は、ゼロ動きベクター、以前の動きベクター、隣接したブロックの動きベクターのうち最適に整合される動きベクターを候補動きベクターとして最終的に選ぶ。
【００１６】
アルゴリズム選択部１２０は、候補ベクター予測部１１０で予測された候補ベクターのＳＡＤ（Ｓｕｍ ｏｆ Ａｂｓｏｌｕｔｅ Ｄｉｆｆｅｒｅｎｃｅ）と予め設定された臨界値とを比較して動き推定アルゴリズム（ＯＰＳＧまたはＨＳＢＭ）を選ぶ。
【００１７】
動き推定部１３０は、アルゴリズム選択部１２０により選ばれた動き推定アルゴリズム（ＯＰＳＧまたはＨＳＢＭ）により入力されるマクロブロックの正画素動き推定を行う。
【００１８】
メモリ１４０は、動き推定部１３０で推定された正画素動き推定値を貯蔵して候補ベクター予測部１１０に印加する。
【００１９】
半画素動き推定部１５０は、動き推定部１３０で推定された正画素動き推定値の位置に基づき、入力される映像データから１６×１６マクロブロック、８×８サブブロックの半画素動きを推定する。
【００２０】
図２は、本発明によるハイブリッド型高速動き推定方法の全体的なフローチャートである。
【００２１】
図３ないし図６を参照し、図２に示された高速動き推定方法のフローについて説明する。
【００２２】
先ず、入力される映像データ（またはフレーム）は現在探索しようとするマクロブロックに分けられ、そのマクロブロックのための以前又は以降のフレームの探索領域が設定される（ステップ２１０）。
【００２３】
次に、現在動きベクターを推定しようとするマクロブロックのための候補ベクターを予測する（ステップ２２０）。その実施形態を説明すれば、図３に示されたように、映像でＦＳＢＭアルゴリズムを行って得た動きサイズ別のマクロブロックの分布を調べてみれば、動きベクターの相当数が０から１の範囲の大きさを有する。したがって、このような動きベクターを求めるために、全てのマクロブロックに動き予測アルゴリズムを全体の探索領域に一概に適用するよりは、図３のような分布図を参照して計算量を節減できる動き予測アルゴリズムを適用する。
【００２４】
したがって、候補動きベクターは、（１）ゼロ動きベクター、（２）隣接したブロックの動きベクター、（３）以前の動きベクターのうち最適に整合される値、例えば、ＳＡＤが最も小さいベクター値を候補動きベクターとして設定する。
【００２５】
ここで、３つの候補動きベクターは、各々下記の通りに設定される。
【００２６】
すなわち、第１候補動きベクター１は、大きさが０である動きベクターとして設定される。
【００２７】
第２候補動きベクター２は、図４Ｂでのように、現在のマクロブロックを中心として既に動きベクターが計算された隣接した３つのマクロブロック４２０、４３０、４４０の動きベクターのミディアン値として設定される。但し、現フレームがＢ（Ｂｉｄｉｒｅｃｔｉｏｎａｌ）タイプである場合、隣接したマクロブロックは正方向、逆方向、両方向の動きベクターのうちいずれか一つを取る。したがって、３方向の動きベクターのうち一つさえ知っておけば、残りの方向の動きベクター値は知っている動きベクターのスケール変換により推定できる。例えば、正方向の動きベクターを知っていれば、それを参照フレームの間隔数により適宜にスケール変換し、その符号を逆にして逆方向の動きベクターとして推定する。逆方向の動きベクターも、この方法と同様にして正方向に適宜に変換できる。したがって、動きベクターは隣接したマクロブロック４２０、４３０、４４０の各々に対し３方向（正方向、逆方向、両方向）の動きベクターをいずれも計算してミディアンを取った後、推定しようとするマクロブロックに最適に整合される動きベクターを設定する。
【００２８】
第３候補動きベクター２は、図４Ａでのように、現フレームがＰ（Ｐｒｅｄｉｃｔｉｖｅ）-タイプのフレームである場合、以前のＰ-タイプのフレームと同一の位置のマクロブロックの動きベクター４１０として設定したり、あるいはその周りの４つを含んで総５つのマクロブロックの動きベクターに対するメディアン値として設定する。このとき、現フレームがＢ-タイプのフレームである場合、現フレームを動き推定するために用いる以前又は以降のＰ-タイプのフレームと同一の位置のマクロブロックはスケール変換により動きベクターを予測する。そして、その周りの４つのマクロブロックもスケール変換を行った後、これらに対するメディアン値を動きベクターとして設定する。このとき、マクロブロックに対して一方向の成分を知っておけば、第２候補動きベクターの推定方法と同様にして、スケール及び符号変換により全ての方向（正方向、逆方向、両方向）の動きベクターを予測する。
【００２９】
次に、候補動きベクターのうち探索領域に最適に整合される値（例えば、最小のＳＡＤ）と予め定義された臨界値Ｔとを比較して動き推定アルゴリズムを選ぶ（ステップ２３０）。ここで、マルチタスキング環境下でリアルタイムに動映像を符号化するとき、ＣＰＵのプロセッシングパワーが一時的に不足する場合がある。この場合、固定フレーム率を得ようとする場合、各フレーム別に目標符号化時間が予め計算される。したがって、臨界値（Ｔ）は予め計算された目標符号化時間に基づき現フレームに対するスライス（一連のマクロブロックの群）単位ごとに予想符号化時間を推定して調節される。
【００３０】
次に、候補動きベクターのうち推定しようとするマクロブロックに最適に整合された値に該当する最小のＳＡＤ値が臨界値（Ｔ）の範囲内に存在する場合、ＯＰＳＧアルゴリズムを選ぶ。このとき、ＯＰＳＧアルゴリズムは予測された候補動きベクター値に該当する位置を中心としてｆコードで定義される動きベクターが有しうる最大絶対値の１／２又は１／４の範囲でより制限された領域で動きベクターを探す（ステップ２４０）。このとき、ｆコードは動きベクターが有しうる最大、最小の探索範囲を示す。図５に基づき、その実施例を説明すれば、▲１▼は図４Ａ及び図４Ｂのように推定された位置に該当する開始点である。ブロックは開始点▲１▼を中心として▲２▼で表わされた周りの４位置に対し各々整合を試み、再び▲３▼または▲４▼で表わされた周りの４位置に対して整合を試み、最終的にそれ以上最適に整合できる周辺値が存在しないまで整合を繰り返す。したがって、動きベクターは最終的に収斂された結果Ｐに該当する最適に整合された位置である。
【００３１】
ここで、ＯＰＳＧはＨ．２６３標準案及びＭＰＥＧ-４標準案の場合、通常マクロブロックの動きベクターを中心として±２範囲内の領域内で８×８サブブロックの動き推定（ａｄｖａｎｃｅｄ ｐｒｅｄｉｃｔｉｏｎ ｍｏｄｅまたは４ＭＶ ｍｏｄｅ）を行うが、本発明では、これを１６×１６マクロブロックのＯＰＳＧを行った後、各８×８サブブロックのＯＰＳＧを±２範囲内で行う。また、標準案に定義された繰り返しパッディングを通じて拡張された領域における無制限の動きベクターを推定する。
【００３２】
次に、候補動きベクターのうち最適に整合された値、すなわち、ＳＡＤ値が臨界値範囲を外れて存在して予測に失敗した場合、ＨＳＢＭアルゴリズムを行う。ＨＳＢＭアルゴリズムはｆコードで示す全体の探索領域を対象として動き推定を行う（ステップ２５０）。図６に基づき、その実施例を説明すれば、第１段階（ｓｔａｇｅ １）は低解像度またはサブサンプリングされた映像よりなる探索領域（例えば、[-２、+２]）から動きベクターを探索する。第２段階（ｓｔａｇｅ２）は、第１段階で探索された結果を用い、高解像度または原映像でより狭い探索領域の精度良い動きベクターを探索する。したがって、前記段階を最高の解像度（或いは原映像）に達するまで繰り返し続け、最適に整合されたブロック位置を動きベクターとして設定する。
【００３３】
また、ＨＳＢＭアルゴリズムは、循環探索を用い、各段階ごとに計算された動きベクターの整合度と予め設定された臨界値とを比較して整合の度合いが十分である場合、その動きベクターを最終的な予測値として選ぶ。ここで、臨界値はＨＳＢＭアルゴリズムの誤差許容範囲を示し、また、ＨＳＢＭアルゴリズムの正確度及び計算量を決め、予め設定された何回かの段階の値のうち予想される符号化時間により選ぶ。
【００３４】
ここで、８×８サブブロックに対して動きベクターを推定するとき、ＨＳＢＭアルゴリズムは段階２で各４つのサブブロックの動きを推定し、この４つのブロック間の整合値を足してマクロブロックの動きを推定し、さらに、必要あれば、繰り返しパッディングを経た後、拡張された探索領域に対して無制限の動きベクターを推定する。
【００３５】
次に、ＯＰＳＧアルゴリズムやＨＳＢＭアルゴリズムにより推定された画素単位の動きベクターを１６×１６マクロブロック単位に貯蔵した後、その画素単位の動き推定位置で半画素単位の動きベクターを推定する（ステップ２６０、２７０）。
【００３６】
次に、最終的に１６×１６マクロブロック、８×８サブブロック、半画素動きベクターを抽出する（ステップ２８０）。
【００３７】
【発明の効果】
以上述べたように、本発明によれば、動きベクターを予測して予測された位置を中心としてＯＰＳＧを行い、予測が失敗する場合、誤った予測値による誤差を防止するためにＨＳＢＭアルゴリズムで補正することにより、高い正確度を保ちつつ、計算量を低減でき、特に、リアルタイムの符号化器に効果的である。
【図面の簡単な説明】
【図１】  本発明によるハイブリッド型高速動き推定装置の全体ブロック図である。
【図２】  本発明によるハイブリッド型高速動き推定方法の全体フローチャートである。
【図３】  ＦＳＢＭアルゴリズムを行って求めた動きベクターのサイズ別のマクロブロックの分布を示したグラフである。
【図４】  図２により以前のフレーム及び次フレームで候補ベクターを推定する概念図である。
【図５】  図２によるＯＰＳＧアルゴリズムの概念図である。
【図６】  図２によるＨＳＢＭアルゴリズムの概念図である。
【符号の説明】
１１０  候補ベクター推定部
１２０  アルゴリズム選択部
１３０  動き推定部
１４０  メモリ
１５０  半画素推定部
４１０  動きブロック
４２０、４３０、４４０  マクロブロック
【図１】
0003801886.tif 000002
【図２】
0003801886.tif 000003
【図３】
0003801886.tif 000004
【図４】
0003801886.tif 000005
【図５】
0003801886.tif 000006
【図６】
0003801886.tif 000007