(57)【要約】参照画像内で生じる同一のブロックにポインタによって効率よく符号化される画素を有する画像内のブロックまたは領域を迅速に検出するための方法、システム、および／または装置である。参照画像は、エンコーダおよび対応のデコーダの間で共有される。エンコーダの一実施例は、（ａ）画素よりも相当少ない数の特徴が生じるという特徴を規定し、（ｂ）画像内の特徴を参照画像内の対応する特徴に関連付け、（ｃ）関連付けられた特徴の変位を表す変位ベクトルを推定し、（ｄ）ブロックが成長する変位したブロック内のシード点を推定し、（ｅ）変位したブロックを伸長させてそのサイズ、形状、および／または大きさを決定することによって、そのようなブロックを迅速に検出する。
2005522083.tif 000002
【特許請求の範囲】
【請求項１】
第１の画像内の第１の特徴の第１のインスタンスを、参照画像内の第１の特徴のインスタンスと少なくとも関連付け、
第１の画像および参照画像の両方内で生じる第１の領域を、第１の特徴の第１のインスタンスと参照画像内の第１の特徴のインスタンスとの関連性から決定して、第１の画像および参照画像間の変化を符号化することを含む、方法。
【請求項２】
特徴は、画像内で生じる特徴のインスタンスが、当該画像内にある画素よりも実質的に少ないと規定される、請求項１に記載の方法。
【請求項３】
特徴は、画素テンプレートからハッシュされた値と規定される、請求項１に記載の方法。
【請求項４】
特徴は、固定長の水平方向の画素列から計算された値と規定される、請求項１に記載の方法。
【請求項５】
画素値の特定の配列のコンテキストにおいてで生じる画素のテンプレートに基づいて規定される、請求項１に記載の方法。
【請求項６】
第１の特徴は、コンテキストを規定する画素が同一の第１の色を有するコンテキストにおいて生じ、第１の特徴の第１の画素は、第１の色と異なる色である、請求項５に記載の方法。
【請求項７】
第１の画像を１以上の特徴の１以上のインスタンスのために操作することをさらに含む、請求項１に記載の方法。
【請求項８】
第１の画像および参照画像の両方で生じる第１の領域は、第１の画像および参照画像間で変位している可能性がある、請求項１に記載の方法。
【請求項９】
第１の画像および参照画像の両方において生じる第１の領域を決定することは、まったく同一の、確率的、または概算的な決定処理である、請求項１に記載の方法。
【請求項１０】
第１の画像内の第２の特徴のインスタンスを、参照画像内の第２の特徴のインスタンスに関連付け、第１の領域の決定は、第１の特徴の第１のインスタンスと、第１の画像および参照画像内で検出される第２の特徴のインスタンスとの関連性に少なくとも基づくことをさらに含む、請求項１に記載の方法。
【請求項１１】
第１の画像内の１つ以上の他の特徴の１以上の他のインスタンスを、１つ以上の参照画像内の１つ以上の特徴のインスタンスに関連付け、第１の領域の決定は、第１の特徴の１つ以上の関連するインスタンスと、第１の画像および１つ以上の参照画像内で検出される１つ以上の他の特徴のうちのいくつかに基づくことをさらに含む、請求項１に記載の方法。
【請求項１２】
変化した画像内のインスタンスを囲む、より大きな領域と、参照画像とが一致する見込みがあるように、第１の特徴の第１のインスタンスが、同一の第１の特徴の任意のインスタンスに関連付けられる、請求項１に記載の方法。
【請求項１３】
変化し画像内の第１のインスタンスを囲む、より大きな領域と、参照画像内の任意のインスタンスとは、参照画像内の第１の特徴のインスタンスの数が特定の閾値より少ない場合には、互いに一致する見込みである、請求項１２に記載の方法。
【請求項１４】
参照画像内の特徴の１つ以上のインスタンスの位置を含むテーブルを管理して、稀に生じる特徴の特定を促進することをさらに含む、請求項１に記載の方法。
【請求項１５】
参照画像が変化するにつれて、テーブルを徐々に更新して、関連付け処理を促進することをさらに含む、請求項１４に記載の方法。
【請求項１６】
特徴の関連付けは、
参照画像内で生じる第１の特徴のインスタンスの数と閾値とを比較し、
第１の特徴のインスタンスの数が閾値よりも少ない場合には、参照画像内の特徴をマッピングするテーブル内にある第１の特徴の任意のインスタンスを検索することを含む、請求項１に記載の方法。
【請求項１７】
特徴の関連付けは、
第１の特徴のインスタンスの数が閾値よりも少ない場合には、第１の特徴の第１のインスタンスの基礎となる画素と、参照画像内の第１の特徴の任意のインスタンスの基礎となる画素とを比較することを含む、請求項１に記載の方法。
【請求項１８】
第１の画像および参照画像の両方内で生じる第１の領域は、形状、位置、および変位によって検出される、請求項１に記載の方法。
【請求項１９】
第１の領域は、１つ以上のブロックを含み、当該１つ以上のブロックは、当該領域の形状を規定する、請求項１に記載の方法。
【請求項２０】
第１の領域の決定は、
第１の画像および参照画像の両方内で検出できる１つ以上のブロックのサイズを反復的に伸長することによって、第１の領域第１の領域のサイズを最大化することを含む、請求項１に記載の方法。
【請求項２１】
１つ以上のブロックのサイズの反復的な伸長は、第１の画像および参照画像の両方内の画素を徐々に一致させることを含む、請求項２０に記載の方法。
【請求項２２】
第１の画像および参照画像の両方内の画素を徐々に一致させる処理では、各ブロックにつきいくつかの画素のみが一致する、請求項２１に記載の方法。
【請求項２３】
第１の領域の第１の変位ベクトルは、参照画像内の関連付けられたインスタンスに対する第１の画像内の第１の特徴の第１のインスタンスの変位に少なくとも基づいて決定される、請求項１に記載の方法。
【請求項２４】
第１の変位ベクトルは、第１の画像および参照画像の両方で検出される特徴の１つ以上の関連するインスタンスについての相対的変位ベクトルの閾値率を示す、請求項２３に記載の方法。
【請求項２５】
第１の領域の形状は、選択されたシード点から伸長される、請求項１に記載の方法。
【請求項２６】
シード点は、第１の領域の第１の変位と、第１の変位ベクトルを補助する１つ以上の特徴の１つ以上のインスタンスとから決定される、請求項２５に記載の方法。
【請求項２７】
特徴のインスタンスが０より大きい最も少ない数の参照画像を決定することに拠って、複数の参照画像から特徴の各インスタンス毎に参照画像を選択することをさらに含む、請求項１に記載の方法。
【請求項２８】
複数の参照画像の特徴は、１つ以上のテーブルにおいて索引付けされて、稀に生じる特徴の特定を促進する、請求項２７に記載の方法。
【請求項２９】
現在の画像内における１つ以上の特徴の１つ以上のインスタンスを参照画像内の同一の特徴のインスタンスに関連付けることによって、現在の画像および参照画像の両方内で検出される領域における動きを検出するように構成された特徴マッチング部と、
特徴マッチング部に接続されて、現在の画像および参照画像の両方内で検出される１つ以上の特徴の１つ以上のインスタンスと、現在の画像および参照画像間のコード変化の関連性に少なくとも基づいて、現在の画像および参照画像の両方内で生じる第１の領域を規定するように構成されたブロック描画部とを備える、装置。
【請求項３０】
特徴マッチング部は、参照画像および現在の画像間の特徴のインスタンスの生じうる変位に対応する特徴の１つ以上のインスタンスについての変位ベクトルを生成する、請求項２９に記載の装置。
【請求項３１】
変化した画像内にあるインスタンスを囲む、より大きな領域と、参照画像とが一致する見込みがあるように、第１の特徴の第１のインスタンスが、同一の第１の特徴の任意のインスタンスに関連付けられる、請求項２９に記載の装置。
【請求項３２】
特徴マッチング部は、領域の動きの検出を、
参照画像の特徴の特徴テーブル内にある関連した第１の特徴のインスタンスの数を閾値と比較し、
参照画像内にある第１の特徴のインスタンスの数が閾値よりも少ない場合には、特徴テーブル内にある第１の特徴の任意のインスタンスを検索することによって行う、請求項２９に記載の装置。
【請求項３３】
特徴マッチング部は、領域の動きの検出を、
参照画像内にある第１の特徴のインスタンスの数が閾値よりも少ない場合には、参照画像内にある第１の特徴の任意のインスタンスの基礎となる画素と、現在の画像内にある第１の特徴の第１のインスタンスの基礎となる画素とを比較することによって行う、請求項２９に記載の装置。
【請求項３４】
特徴のインスタンスを現在の画像から抽出して、当該インスタンスを特徴マッチング部に提供する特徴抽出部をさらに備える、請求項２９に記載の装置。
【請求項３５】
参照画像内で検出される特徴のインスタンスの特徴テーブルを管理して、特徴テーブルに対するアクセスを特徴マッチング部に提供する特徴管理部をさらに備える、請求項２９に記載の装置。
【請求項３６】
特徴テーブル内にある特徴の各１つ以上のインスタンスについて、当該インスタンスについての位置を管理する、請求項３５に記載の装置。
【請求項３７】
特徴テーブルは、参照画像が変化するにつれて、徐々に更新されて、特徴のインスタンスの関連付けを促進する、請求項３５に記載の装置。
【請求項３８】
ブロック描画部は、現在および参照画像内にある関連付けられた特徴の変位ベクトルの閾値率を示す主要変位ベクトルを推定する、請求項２９に記載の装置。
【請求項３９】
ブロック描画部は、主要変位ベクトルを補助する特徴の１つ以上のインスタンスに基づくシード点を推定する、請求項２９に記載の装置。
【請求項４０】
第１の領域を規定するブロック描画部は、
１つ以上のブロックをシード点の位置から伸長させ、１つ以上のブロックは、現在の画像および参照画像の両方内で検出でき、
１つ以上の各ブロックのサイズを反復的に増加させることによって、第１の領域を伸長させる、請求項２９に記載の装置。
【請求項４１】
１つ以上のブロックを伸長させることは、現在の画像および参照画像の両方内にある画素をシード点から徐々にマッチングさせることを含む、請求項４０に記載の装置。
【請求項４２】
１つ以上の参照画像内に存在する特徴を管理する特徴管理部と、
特徴管理部に接続され、複数の画像を記憶する参照画像ライブラリであって、現在の画像内の特徴の各インスタンスについて、参照画像が選択される、参照画像ライブラリとをさらに備える、請求項２９に記載の装置。
【請求項４３】
ブロック描画部に接続されて、形状、位置、および変位によって第１の領域を特定する画像エンコーダをさらに備える、請求項２９に記載の装置。
【請求項４４】
第１の画像内にある１つ以上の特徴の１つ以上のインスタンスを、参照画像の同一の特徴のインスタンスに関連付け、
第１の画像と参照画像との両方内で生じるが第１の画像および参照画像間で変位が生じるであろう第１の領域を、第１の画像内にある特徴と参照画像内の同一の特徴のインスタンスとの関連付けから決定するように構成されたエンコーダと、
エンコーダから情報を受信し、
参照画像のコピーを用いて第２の画像を更新して、第１の領域を再構築するように構成されたデコーダとを備える、システム。
【請求項４５】
エンコーダは、
現在の画像から特徴のインスタンスを抽出し、
参照画像内で検出された特徴のインスタンスの特徴テーブルを管理するようにさらに構成されている、請求項４４に記載のシステム。
【請求項４６】
エンコーダによる特徴のインスタンスの関連付けは、
参照画像内にある関連付けられた第１の特徴のインスタンスの数を閾値と比較し、
参照画像内にある第１の特徴のインスタンスの数が閾値よりも少ない場合には、特徴テーブル内にある参照画像についての第１の特徴の任意のインスタンスを検索することによって行う、請求項４４に記載のシステム。
【請求項４７】
エンコーダによる特徴の関連付けられたインスタンスの確認は、
参照画像内にある第１の特徴のインスタンスの数が閾値よりも少ない場合には、参照画像内にある第１の特徴の第１のインスタンスの基礎となる画素と、現在の画像内にある第１の特徴の任意のインスタンスの基礎となる画素とを比較することによって行う、請求項４４に記載のシステム。
【請求項４８】
エンコーダは、変位する見込みのある第１の領域を、形状、位置、および変位によって特定し、第１の画像および参照画像間の変化を符号化および出力するようにさらに構成され
デコーダは、形状、位置、および変位を受信し、それらを用いて第１の領域を再構築するようにさらに構成される、請求項４４に記載のシステム。
【請求項４９】
現在の画像および参照画像の両方内で検出される１つ以上の領域の動きを、現在の画像内にある１つ以上の特徴のインスタンスを参照画像内にある同一の特徴のインスタンスに関連付けることによって検出するための手段と、
現在の画像および参照画像の両方内で生じるが現在の画像および参照画像間で変位が生じる見込みである第１の領域を、現在の画像内にある１つ以上の特徴のインスタンスと参照画像内の同一の特徴のインスタンスとの関連付けに基づいて検出して、現在の画像および参照画像間の変化を符号化するための手段とを備える、エンコーダ。
【請求項５０】
特徴のインスタンスを現在の画像から抽出して、当該インスタンスを動き検出手段に提供するための手段と
参照画像内で検出される特徴のインスタンスの特徴テーブルを管理して、特徴テーブルに対するアクセスを動き検出手段に提供するための手段をさらに備える、請求項４９に記載のエンコーダ。
【請求項５１】
参照画像が変化するにつれて、特徴テーブルを徐々に更新するための手段をさらに備える、請求項５０に記載のエンコーダ。
【請求項５２】
第１の領域を規定する手段は、現在の画像および参照画像内にある特徴の関連付けられたインスタンスの変位に対応する変位ベクトルの閾値率を表す主要変位ベクトルを推定するための手段を含む、請求項４９に記載のエンコーダ。
【請求項５３】
第１の領域を規定する手段は、主要変位ベクトルを補助する１つ以上の特徴に基づくシード点を決定するための手段を含む、請求項４９に記載のエンコーダ。
【請求項５４】
第１の領域を特定する手段は、
１つ以上のブロックをシード点の位置から伸長させるための手段であって、１つ以上のブロックは、現在の画像および参照画像の両方内で検出できる、手段と、
１つ以上のブロックの結合から、第１の領域を描画するための手段とを含む、請求項４９に記載のエンコーダ。
【請求項５５】
複数の画像を記憶する参照画像ライブラリを記憶するための手段であって、現在の画像内にある特徴の各インスタンスについて、参照画像が選択される、手段をさらに備える、請求項４９に記載のエンコーダ。
【請求項５６】
形状、位置、および現在の画像および参照画像間の変位によって、第１の領域を特定するための手段をさらに備える、請求項４９に記載のエンコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
分野
本発明の一局面は、表示画面の内容をリアルタイムで符号化することに関する。より特定的には、本発明の一実施例は、参照画像内で全く同一に生じる画像内にあるブロックを検出するための装置および／または方法を提供するものであり、参照画像は、エンコーダおよびデコーダ間で共有され、それにより、ブロックを過去に生じたものに効率的にポインタによって符号化することができる。
【背景技術】
【０００２】
背景
遠隔アクセスソフトウェアや画面記録ソフトウェアなどの多くのアプリケーションは、コンピュータ画面の内容をリアルタイムで符号化する。このようなアプリケーションは、帯域幅や蓄積に制約があるので、典型的には、画面の内容をできるだけ簡潔に表す。
【０００３】
コンピュータ画面の内容を符号化するためのソフトウェア（エンコーダ）は、符号化された内容を異なる場所にてまたは後日復号化して表示するためのソフトウェア（デコーダ）によって、必然的に補完される。エンコーダは、典型的には、以下の方法のうち１つを用いてコンピュータ画面の内容を取得する。１）ライブラリまたはデバイスドライバレベルの、グラフィックス機能呼び出しなどといった出力イベントを遮断する、または２）描画された線または円などといった、出力イベントの効果を、画像として画面から読み戻す。第１の場合には、画面内容は、典型的には、出力イベント列として符号化され、第２の場合には、複数の出力イベントは、単独の画像によって符号化されることが多く、画面内容は、画像のシーケンスによって表現される。
【０００４】
例えば、米国特許第５２４１６２５号明細書は、グラフィックス呼び出しなどの出力イベントを遮断することによって、コンピュータ画面上に表示された情報を遠隔制御するためのシステムを開示している。コンピュータウィンドウシステムを駆動するグラフィックスコマンドは、取り込まれて記憶された記録として退避されるか、または他のコンピュータに送られる。メッセージ翻訳プログラムは、取り込まれたメッセージを翻訳して、指定されたコンピュータで再生する。
【０００５】
米国特許第５７９６５６６号が開示するシステムでは、ホストＣＰＵから映像コントローラへ転送された映像画面のシーケンスは、記憶されて、後にホストＣＰＵから離れた場所にある端末によって検索して取り出される。特に、表示データは、表示データをフレームごとに記憶するローカルのフレームバッファに取り込まれる。表示データの過去のフレームまたは画像は、表示データの現在のフレームまたは画像と比較され、変化が生じたどうかを判断する。その後、変化が記憶される。
【０００６】
米国特許第６３３１８５５号が開示するシステムでは、フレームバッファ内に現在表示されている画像の一部を、システムメモリに記憶されている過去に表示された画像と一定の間隔で比較し、過去に表示された画像が変化したかどうかを判断する。もし変化していれば、変化の正確な程度を判断して、記憶されるおよび／または遠隔にあるコンピュータに転送される。
【０００７】
出力イベントを遮断して、これらのイベントについての画像の内容を表すと、手ごろなサイズでの表現となる。なぜならば、このようなイベントは典型的にはレベルが高く、変化についての簡潔な説明を画面に対して提供するからである。しかしながら、この方法を実施することは、困難な場合が多い。なぜならば、他のプラットフォームへの移植はたやすくなく、管理特権（例えば、表示ドライバアクセスは、制限されていることが多い）を必要とし、リブート（例えば、新規のデバイスドライバをインストールすること）を必要とし、および／またはしてム全体の安定性を低下させる（例えば、遠隔制御パッケージの多くは、互いに干渉しあう）からである。一方で、画面の内容を画像のシーケンスで表すと、典型的には、非常に大きな表現となってしまう。大きな表現は、通常、システム全体の動作を遅延させ（すなわち、知覚できるほどの遅延を生じさせる）。
【０００８】
画像のシーケンスのサイズは、高度なデータ圧縮によって、大幅に減少することができる。特に省スペース形態のデータ圧縮では、画素の全ブロックを、画面上で以前に発生した符号化された同一のブロックへのポインタによって表す。例えば、ウィンドウの移動やその内容のスクロールによって、典型的には、各画像は、以前の画面内で全く同一に生じる大きなブロック画像のシーケンスを含む。
【０００９】
以前の画面で全く同一に生じるブロックをポインタによって符号化することは、非常に省スペースだが、それを適時に行うことは、計算の面で大変である。なぜならば、一般的な利用の場合、徹底的な検索が必要となるからである。
【００１０】
関連した問題としては、動き補償映像信号符号化があり、動き推定を用いて現在のフレームを予測し、現在のフレームとその予測との間の差を符号化する。典型的には、動きベクトルが、例えば画素の低密度の格子のような画素のサブセットについて決定及び符号化されるだけである。残りの画素についての動きベクトルは、動きベクトルの最初のセットから推定され、この推定は、例えば、フレームをブロックに分割して、同一の動きベクトルを各ブロックのすべての画素に割り当てることによって行う。映像信号については、符誤記フィールドは、不都合な効果をもたらすことなく補完できる。なぜならば、ローカルのウィンドウ内の画素レベルは、典型的には滑らかだからである。
【００１１】
例えば、米国特許第５７５１３６２号が開示する装置は、１）過去のフレームおよび現在のフレーム内のブロックを比較し、２）グリッドおよび／またはエッジ検出を用いて、画素、すなわち、特徴の第１の組を過去のフレームから選択し、３）例えば、ブロックマッチングアルゴリズム（ＢＭＡ）を用いて、動きベクトルの台１の組を決定し、４）重なっていないポリゴン（例えば、三角形）についてのアフィン変換を計算することによって、残りの全画素につての動きベクトルを推定する。ポリゴンは、現在のフレーム内に変換されている特徴点を所定の方法で結ぶことによって得られる。
【００１２】
米国特許第５７５１３６２号では、以下のＢＭＡを用いる。現在のフレーム内のあるブロックについて、ＢＭＡは、例えば最小平均二乗誤差のような基準に従って、過去のフレーム内で最も適合するブロックを見つけ出す。実行中の符号化においては、徹底的な検索は圧倒的に遅いものの、最大の変位を制限し、全候補ブロックのサブセットのみを反復的に評価して、各ステップにおいて、ローカルで最適なものの歩行へ進むということは、計算の負担を大幅に軽減する。これらの最適化は、２つの仮定に基づく。すなわち、ブロックは典型的には数個の画素分しか動かないこと、および、過去および現在のフレーム間の歪みは検索ウィンドウの両端で平滑であることである。これは、画像信号では典型的であるが、画面内容（例えば、グラフィックコンピュータインターフェイス、表示ウィンドウ、など）は、元来互いに異なるものである。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
したがって、典型的な画面内容の明確な特徴を利用することによって、参照画像内でも全く同一に生じる、サイズが可変なブロックを画像から迅速に検出する方法への要請がある。
【課題を解決するための手段】
【００１４】
発明の概要
本技術革新の一局面は、限られた数の参照画像のうちの一つの中で全く同一（または確率的またはおおよそ）生じる同一のブロックへポインタによって効率よく符号化される画素を有する画像内のブロックを迅速に検出するための方法、システム、および／または装置を提供する。参照画像はエンコーダおよび対応するデコーダ間で共有されなければならないということを以外に、参照画像に対する制約はない。エンコーダは、（ａ）画素よりも相当少ない数の特徴が画像内で生じ、特徴は画像の性質を表すものであり、かつ２つの画像における特徴は全く同一の変位がないという特徴を規定し、（ｂ）特徴の対を取り巻く対応画素が一致するように、画像内の各特徴を参照画像の内の１つの特徴にマッピングし、および（ｃ）これのマッピングに基づき、画素レベルのサイズを決定する前に、最大のブロック内に含まれる画素位置と、参照画像の内の１つで対応する画素位置とを推定する。
【００１５】
特に、（ａ）エンコーダは、参照画像の内の１つで比較的稀に生じる特徴のインスタンスと、ソース画像内の同一の特徴のインスタンスとを関連付け（すなわち、マッピングまたは一致させ）、（ｂ）これらのマッピング用の相対的なオフセットを計算し、（ｃ）これらのオフセットを集め、（ｄ）当該画像と参照画像の中の１つとの両方で生じるブロックを、支配的なクラスタを支える特徴の実質的中心に固定して、反復的に伸長させる。
【発明を実施するための最良の形態】
【００１６】
詳細な説明
以下の本発明の詳細な説明では、本発明の完全な理解のために多くの特定の詳細を説明している。しかしながら、本発明は、これらの特定の詳細がなくても実施できることが理解されなければならない。他の例では、既知の方法、手順、および／または構成要素は、本発明の局面を不必要に不明瞭にすることのないよう、詳細に説明していない。
【００１７】
本説明を通して、「ブロック」という用語は、任意の形状の表示領域または画素の領域を指す。「フレーム」という用語は、バッファもしくは他の画面内容、画像、および／または表示の表象を指す。「特徴」という用語は、ある画像において、当該画像内の画素数よりも相当稀に生じる画像の特徴を指す。ブロックマッチングまたは特徴の関連付けといった、「マッチングさせる」または「マッチング」および「関連付ける」または「関連付け」という用語は、全く同一、文字通り、確率的、統計的、概算的、および／または経験的な一致および／または関連付けを含む。これらの用語のうちの１つ（すなわち、「全く同一」）を用いる場合にはいつでも、ここに挙げた他の用語を本発明の一実施例で用いてもよいことは明確に理解される。
【００１８】
本発明の一局面は、ある画像の画素の全ブロックを、エンコーダおよびデコーダ間で共有される他の画像を迅速かつ効率的に参照することによって符号化するためのシステム、装置、および／または方法を提供する。コンピュータ画面の内容を符号化するのに特に適しており、なぜならば、典型的な画面内用の時間的な自己相似性を利用しており、実行中の画面の内容を符号化するのに充分に速く（もしくは僅かなまたは知覚できないほどの遅延を伴う）、ＣＰＵの利用を実施的に増加せず、他のアプリケーションに影響も与えないからである。さらに、画像に対して作用するので、侵害的なシステムレベルの修正を必要とせず、様々なプラットフォーム（すなわち、様々な処理システム、アーキテクチャ、および／またはオペレーティング環境）に渡って実施することができる。
【実施例】
【００１９】
図１は、本発明の適用例を示す。図示のように、ソースシステム１２２の画面上の内容は、通信または記憶媒体１２４を介して、遠隔地システム１２６に送信され、そこで他の画面に表示される。
【００２０】
図２を参照して、ソースシステムは、ソースシステムの画面の内容を画素形式で記憶するフレームバッファ２０２を有する。図示のように、フレームバッファ２０２の内容は、定期的に、もしくは変化が検出されるかまたは何らかの他のトリガーとなるイベントの度に、例えばエンコーダ２０４に与えられる。エンコーダ２０４は、現在のフレームＬ１０を変換して、その符号済みまたは転送用の表象Ｌ１１を、チャンネル２０６を介してデコーダ２０８へ転送する。チャンネル２０６は、どのような通信または記憶媒体であってもよく、ネットワーク、電話回線、磁気記憶装置、無線送信媒体などであってもよい。デコーダ２０８は、その入力信号Ｌ１２に逆変換を施して、再構築されたフレームＬ１３をフレームバッファ２１０に対して出力する。
【００２１】
本発明の一実施例によれば、エンコーダ２０４は、過去のフレームを参照して、変化した現在のフレームの領域を決定して、変化した領域の画素のみを符号化して送信する。図３は、本発明の一実施例に係るエンコーダ２０４のブロック図である。過去のフレームの画素（すなわち、過去の画像を含む）は、メモリ３００に記憶される。比較器３１０は、Ｌ１０上の現在のフレーム（すなわち、新規／現在の画像を含む）内にある変化した画素を３２０で決定する。現在のフレームＬ１０内の区域または領域が過去のフレーム３００から変化したと決定されると、変化した領域Ｌ１７がエンコーダ３６０に与えられて、可変サイズの画像となる。ある実施では、輪郭、サイズ、および／または変化した区域または領域の位置が３２０で特定されて、変化した画像領域／ブロックが現在のフレームＬ１６から抽出され、フレーム更新メモリ３４０へコピーされる。
【００２２】
図３に示す本発明の局面は、現在のフレーム（現在の画像）Ｌ１０および過去のフレーム（過去の画像）３００で変化した領域または領域を特定し、それによって、現在および過去のフレーム（画像）間の検索領域を減らすのに役立つ。しかしながら、本発明の他の局面は（すなわち、ブロック動きを有するエンコーダ３６０）、検索領域を減らしたり、または他の方法で検索領域を減らしたりすることなく、実施してもよい。
【００２３】
図４Ａ〜Ｄは、図３に示すブロック図のエンコーダ２０４の動作を示す。図４Ａは、第１の画像ブロック４１０を伴う、Ｌ１０上の現在のフレーム例４００を示す。図４Ｂは、メモリ３００（図３）内に記憶されている、別の位置にある同一の第１の画像ブロック４１０’を伴う、過去のフレーム４２０を示す。図４Ｃは、フレーム４００および４２０に共通した第１の画像ブロック４５０（先に４１０および４１０’と呼んだ）を含む、現在および過去のフレーム４００および４２０間で変化した画素４４０の変化の結果である領域を示す。一実施例では、ブロック４５０を含む領域４４０は、フレーム更新メモリ３４０（図３）に記憶される。図４Ｄは、ブロック動きを有するエンコーダ３６０（図３）が、変化した領域４４０を３つのブロック、すなわち、現在及び過去のフレーム４００および４２０間で見られる第１の画像ブロック４５０、ならびに両方のフレーム４００及び４２０で共通でない領域を表す２つのブロック４７０および４８０でどのように表現するかをさらに示す。
【００２４】
ある実施によれば、変化した画素の結果の領域４４０は、変化した領域４４０の現在のフレーム（画像）４００内での位置を示す位置ベクトル４４５と共に３４０（図３）で記憶される。他の実施例では、現在のフレーム４００は、変化した画素４４０の領域を示すパラメータと共に、フレーム更新３４０（図３）で記憶される。これにより、ブロック動きを有するエンコーダ３６０による後続の処理が、変化した画素４４０の領域に集中することができる。変化した領域を特定する他の同等の表象も可能であり、それらは本発明から逸脱するものではない。
【００２５】
以下で説明する多くの例では、「変化した画像領域」という用語は、例えば４４０などの変化した画素の領域を説明するために用いられる。しかしながら、変化した画素の領域を予め特定してもよいし、特定しなくてもよいことが、明らかに理解されなければならない。
【００２６】
図５は、本発明の実施例による、高速ブロック動き検出で、可変サイズの画像を圧縮するエンコーダ３６０の一実施例を示すブロック図である。図示のように、Ｌ１７上の変化した画像領域（すなわち、４４０）が、ブロック動き検出５１０およびブロック動き補償５２０の両方へ与えられる。ブロック動き検出５１０は、変化した領域または画像Ｌ１７内にある、メモリ５００内で全く同一に生じたブロックを決定する。変化した領域Ｌ１７の、参照画像メモリ５００内で全く同一に生じたそのような領域について、１以上のブロックおよび各ブロックにつき１つのソース位置、またはブロックのグループが、Ｌ２１を介してブロック動き補償５２０へ送られる。メモリ５００は、エンコーダ２０４およびデコーダ２０８（図２）の両方で共有または共通の画像の限られた数を記憶する。例えば、一実施例では、メモリ５００は、複数の画像または１つの参照画像が特徴マッチングのために選択される画像のライブラリを記憶する。異なる特徴同士をマッチングさせるために、同一の参照画像または異なる参照画像が画像ライブラリから選択されてもよい。
【００２７】
ブロック動き補償５３０は、Ｌ１７上の現在の画像をメモリ５００からコピー可能なブロックおよび未処理の画素のブロックから見たソース画像を説明する表象に変換する。例えば、図４Ｃに示す画像はＬ１７を介して取得され、図４Ｂに示す画像は参照画像メモリ５００、すなわち過去のフレームに記憶されているとすると、ブロック動き検出５１０は、例えば、ウィンドウ４５０が参照画像メモリ５００内で生じていると決定する。この情報を得て、ブロック動き補償５２０は、例えば、Ｌ１７上の図４Ｃに示す変化した領域４４０を３つのブロック４５０，４７０，および４８０（図４Ｄに示す）とし、ブロック４７０および４８０は、未処理の画素によって表され、ブロック４５０は、メモリ５００内でのその発生を指すポインタによって表される。
【００２８】
エンコーダ５３０は、変換した画像（すなわち、元画像をブロックに区画分けし、そのブロックのうちのいくつかは参照画像５００内の一致ブロックを指すポインタによって表される）を符号化し、それを、Ｌ１１を介してエンコーダの内部にあるデコーダ装置５７０および図２のデコーダ２０８へ送る。後者２０８は、エンコーダ３６０の内部にあるデコード装置５７０と同様な構成でありかつ同様に動作し、デコード装置５７０では、Ｌ１３がＬ２４から分岐している。
【００２９】
エンコーダ５３０は、変位したおよび／または恐らく変位しているであろう領域を形状、位置、および変位によって特定し、変化した画像領域Ｌ１７および参照画像５００間の変化を符号化する。本発明の一実施例では、これらのパラメータは、「収縮圧縮データフォーマット仕様」、コメント要請（ＲＦＣ）番号１９５１、インターネット技術標準化委員会（ＩＥＴＦ）（ピーター・ドイチェによる）に記載の収縮アルゴリズムなどの一般的な方法で符号化され、画素は、「ＰＮＧ（ポータブル・ネットワーク・グラフィックス）」ＲＦＣ番号２０８３、ＩＥＴＦ（トム・ブーテル他）などの画像圧縮のための方法によって符号化される。様々な実施においては、エンコーダ５３０は、損失のないまたは損失のあるエンコーダのいずれかであってもよい。損失のないエンコーダ５３０を用いる実施においては、画像デコーダ５４０は必要ない。なぜならば、復号化された画像Ｌ１７が直接得られるからである。
【００３０】
デコーダ５４０は、エンコーダ５３０に対応するものであり、符号化された変化Ｌ１１をエンコーダ５３０から受信する。デコーダ５４０の本実施例は、コピーされたブロックを、メモリ５００からＬ２３を介してその画素を取得することによって復号化された画像をＬ２４上に与える。メモリ管理部５６０は、復号化された画像を、メモリ５００を更新するのに用いてもよい。
【００３１】
本発明の好適な実施例では、メモリ５００は、過去に複合化したフレームのみを図２に示すフレームバッファ２１０にて生じたように記憶し、メモリ管理部５６０は、フレームバッファ２１０を更新するのと同一の方法で、メモリ５００を更新する。したがって、エンコーダ２０４およびデコーダ２０８は、重複する画像またはフレームバッファをメモリ５００およびフレームバッファ２１０内に保持していてもよい。他の実施例では、メモリ管理部５６０は、補助メモリ５５０を用いてメモリ５００を更新し、補助メモリ５５０は、例えば、多数の画像をディスク上に記憶してもよく、図２のデコーダ２０８でも、できれば別の記憶場所上のコピーとして、利用可能でなければならない。過去のフレームの複数の画像を保持すれば、例えば、ユーザが２つ以上のウィンドウ（すなわち、アプリケーションまたはグラフィカル・ユーザ・インターフェイス）間で切り替える場合に、効率的な画像圧縮が可能となる。
【００３２】
一実施例では、メモリ５００に対する全変更もブロック動き検出部５１０へＬ２７を介して直接伝達され、ブロック動き検出５１０が内部のデータ構造を常に最新のものとしておけるようにする。さらに、一実施例では、メモリ管理部５６０は、Ｌ２３を介して参照画像メモリ５００に接続されて、そこに記憶されている画像を常に把握または監視してもよい。
【００３３】
図６は、図５のブロック動き検出部５１０の例の一実施例を示すブロック図である。通常、ブロック動き検出は、４つのステップを含む。すなわち、１）特徴抽出６００、２）特徴マッチング６２０、３）ブロック描画６３０、および４）特徴管理６４０である。メモリ５００内の参照画像は、容易に追跡可能な特徴を用いて索引付けされており、索引付けされた特徴Ｌ４５は、特徴メモリ６１０に記憶される。同様に、特徴抽出６００が現在の画像Ｌ１７に対して実行されて、特徴Ｌ４１を特定する。
【００３４】
参照画像Ｌ２０および現在の画像Ｌ１７の両方内の特徴を特定することによって、一致する特徴対６２０をソース内（参照画像内）およびブロックが一致するであろう目的（現在の画像）の場所内で見つけることができる。一致した特徴対Ｌ４３（Ｌ４１およびＬ４２から派生）は、参照及び現在の画像Ｌ２０およびＬ１７と共に、メモリ５００内の画像内で、全く同一、文字通り、確率的、統計的、概算的、経験的および／またはその他の態様で生じるであろうブロック６３０を迅速に決定するための基礎を形成する。特徴の数を画素数と比較して少なく維持して、各画像ごとに再計算するのではなく徐々に更新される特徴索引６１０を保持することによって、ブロック動きは、リアルタイムで、もしくは少なくとも知覚可能または許容不可能な遅延なく、検出できる。
【００３５】
特徴管理部６４０は、参照画像Ｌ２０および参照画像に対する最近の変更Ｌ２７を（メモリ管理部５６０から）受信して、特徴メモリ索引６１０を徐々に増加する役割を果たしてもよい。一実施例において、特徴管理部６４０は、最近索引付けされた特徴にアクセスするために、Ｌ４４で特徴メモリ６１０に接続されてもよい。特徴管理部６４０は、１以上の参照図面が更新されると、特徴メモリ索引６１０を徐々に更新してもよい。よって、管理部６４０は、いくつかの特徴または特徴のインスタンスを（対応する画像から取り除かれた場合に）取り除くまたは削除してもよく、もしくは、参照画像５００が変化するか、もしくは新たな画像または領域が追加されると、新たな特徴や特徴のインスタンスを挿入または追加してもよい。
【００３６】
特徴と考えられるものを規定するために、様々な図式または構造が用いられてもよい。さらに、特徴の規定は、予め定めていてもよいし、動的に選択されてもよい。本発明の一局面の一実施例によれば、特徴は、テンプレート内で生じる１以上の画素（例えば、画素列）と規定してもよい。例えば、特徴は、画素の２次元レイアウトから計算された値と規定してもよい。加えて、一実施例では、特徴規定は、テンプレートそのものが、ある特定の画素構造のコンテキストにおいて生じることを必要としてもよい。テンプレートおよびそのコンテキストは、一部重複してもよい。様々な構造においては、コンテキストのサイズおよび／または構造は固定的でなくてもよいが、例えば、コンテキストそのものの中にある以前の画素（たとえば、他の画素）に拠ってもよい。同様に、テンプレートのサイズおよび／または構造は、そのコンテキストおよび／またはテンプレートそのものの中にある以前のテンプレートに拠ってもよい。テンプレート内で生じる画素は、順序付けされていてもよいし、されていなくてもよい。他の実施例において、特徴は、テンプレート内で生じる画素のハッシュコードとして規定される。この目的のために、どのようなハッシュ関数を用いてもよい。よって、絶対画素値、相対画素値、またはその両方の静的または動的な仕組みのコンテキスト内で生じる、画素テンプレートに基づいて規定されてもよい。      
【００３７】
図７Ａは、３２画素列に基づく特徴の規定例を示す。図示の実施では、画素７１０，７２０，７３０および７４０のように構成された同一の色の４つの画素のコンテキスト内で３２画素列が生じることを必要とする。第１の画素７００は、左側の近傍にある画素７１０とは異なっていなければならない。この例では、特徴（３２画素列）は、画素７１０から始まり、画素７５０で終わる。この特徴そのものは、多くの他の方法で表してもよく、その方法には、画素７１０から始まり画素７５０で終わるハッシュコードが含まれる。
【００３８】
本発明の他の実施例では、サイズ、構造、および／または性質の異なるコンテキストおよび／またはテンプレートを用いて特徴を規定してもよい。特徴は、多くの他の方法で規定されてもよい。例えば、特徴は、あるコンテキスト内で生じたＮ個までの後続の画素間の距離の関数として規定されてもよい。ここで、Ｎは、整数の数である。
【００３９】
本発明の一局面によれば、画像内の全画素数と比較して、比較的稀に生じるコンテキストを用いるのが好ましい。これにより、特徴の相対的な一意性を維持しつつ、関連付けすべき特徴の数を減少する。よって、特徴が例えばハッシュされた値によって表される場合、変更された画素領域Ｌ４１から抽出された特徴は、特徴メモリ６１０の特徴Ｌ４２と迅速にマッチングさせてもよい。
【００４０】
メモリ５００（図５）内の画像内で発生するすべてのまたはいくつかの特徴の位置は、特徴メモリ６１０にキャッシュされる。本発明の一実施例では、特徴メモリ６１０は、特徴をメモリ５００内にある同一の特徴のインスタンスのリストにマッピングするハッシュテーブルとして実施される。本発明の好ましい実施例では、特徴は初めからハッシュされている。すなわち、特徴の基礎となる定義が、０およびＫ−１の間の整数値に変換される。式中、Ｋは整数の数である。この場合、メモリ６１０は、例えば図８に示すアレイ８００によって実施されてもよい。各アレイ要素は、特徴、すなわち整数値を、メモリ５００内にある同一の特徴の後続のインスタンスの数８５０を先頭に記憶するリストにマッピングする。図８において、４番目のアレイ要素８１０は、３という整数値の特徴を、先頭８２０ならびに２つの要素８３０および８４０を有するリストにマッピングする。各要素８３０および８４０は、メモリ５００内の特徴のインスタンスを、画像識別し８７０および画像内の位置８８０および８９０によって参照する。メモリ５００に複数の画像が記憶されている場合には、各画像につき別個のアレイを保持してもよいし、単一のアレイが残画像用に用いられてもよい。
【００４１】
図６を再び参照して、ブロック動き検出の第１のステップは、特徴検出６００である。すなわち、Ｌ１７における変化した画像領域が、特徴を得るために操作される。本発明の一実施例では、Ｌ１７における変化した画像領域は、上から下へ、かつ左から右へ走査される。上述の４画素のコンテキストを用いて、図７Ａおよび７Ｂは、特徴が画像例内で検出される順番７７５，７７６，７７７，７７８，７７９，７８０，７８１，７８２，７８３，７８４，および７８５を示す。
【００４２】
第２のステップは、特徴マッチング６２０である。すなわち、変化した画像領域Ｌ１７内で検出されＬ４１で与えられた特徴の各インスタンスを、メモリ６１０内にキャッシュされＬ４２で提供された同一の特徴のインスタンスにマッピングする。特徴の関連性は、変化した画像領域Ｌ１７の特徴のインスタンスを囲む画素が、メモリ５００内の画像のうちの１つ内にある対応するものを囲む対応画素と一致する可能性があるようでなければならない。
【００４３】
一実施例において、そのような特徴の関連性は、メモリ５００内の１つ以上の画像内にある各特徴の発生数から派生し、これは、特徴メモリ６１０の構成に依存する。
【００４４】
本発明の一実施例において、変化した画像領域Ｌ１７内の所定の特徴の各インスタンスについて、メモリ５００内の参照画像であって、同一の特徴のインスタンス数が最も少ないがインスタンスのある閾値数よりは小さくかつゼロインスタンスよりは大きい参照画像を、複数の参照画像から特徴マッチング用に選択する。選択された参照画像の任意のインスタンスを、画像領域Ｌ１７内のインスタンスに関連付ける。変化した画像領域Ｌ１７内の特徴の互いに異なる各インスタンスについて、上述の基準に基づいてそれぞれ異なる参照画像が選択されてもよい。本発明の一実施例では、変化した画像領域内のインスタンスの同一の参照画像内のインスタンスに対する閾値率は、用いた特徴の一意性に依存してもよい。加えて、様々な実施において、画像ブロックは、異なる参照画像からコピーまたは伸長してもよい。
【００４５】
図９は、本発明の一局面に係る、特徴をマッチングさせるための技法の一実施例を示すフロー図である。図８に示したようなアレイがメモリ５００内の各画像毎に管理されている場合、特徴のインスタンスの数を、これらの各アレイ内で検索する。特徴の最も小さい０以外の個数を与えるアレイが、この先、用いられる。マッチングさせる特徴の数を減少させることにより、特徴マッチング処理が促進される。図８に示すように、インスタンスの数８５０は、各リスト８１５の先頭８２０に記憶されているので、すぐにアクセスされる。代わりに、アレイの組が配置されてもよく、ある閾値未満の個数を与える第１のアレイが選択されてもよい。他の実施において、他の方法を用いて、本発明から逸脱することなく、２つ以上の索引またはアレイから特徴の索引またはアレイを選択してもよい。
【００４６】
特徴メモリ６１０内の特徴索引またはアレイ８００が選択されるか、または単一のアレイが用いられると、変化した領域Ｌ１７内にある各特徴Ｌ１４は、選択された特徴アレイ８００内にある特徴Ｌ４２に関連付けられてもよい。特徴Ｌ１４を用いて、メモリ５００内にある画像のうちの１つの同一の特徴のインスタンスのリスト８１５が、アレイ８００内で９１０において検索される。特徴のインスタンスの数（Ｎ）８５０は、ある閾値（ＴＨＲ）と９２０において比較される。式中、Ｎは整数である。インスタンスの数（Ｎ）８５０（すなわち、リストの長さ）が閾値（ＴＨＲ）より短い場合には、リスト８１５内にある特徴の１つの発生が９３０において選択されて、変化した領域からのＬ４１内の対応特徴と９４０において関連付けられる。一実施において、リスト８１５内にある特徴の第１のインスタンス８３０が、任意に選択される。
【００４７】
他の実施において、変化した猟奇内にある特徴８１０のインスタンスが発しされた画素が、リスト８１５に記憶された、メモリ５００内のインスタンスの中の一つの対応画素と比較される。画素が一致した場合、および画素が一致した場合にのみ、２つのインスタンスは関連付けられる。画素毎の比較の目的は、たとえ特徴（ハッシュ値）が一致しても、整数値がハッシュされた画素同士は同一でないというあり得ない事態をチェックすることにある。このチェックは、ハッシュコードではなく、画素同士の完全な同一または正確な一致を保証するためのものである。他の実施においては、特徴画素のサブセットが比較されて、変化した領域Ｌ１７およびメモリ５００内の画像の特徴間の統計的、確率的、または概算的に正確な一致を確かめる。
【００４８】
さらに他の実施においては、特徴は一致したが、基礎となる画素はそうでない場合、完全な一致が検出されるまで、またはリストの終わりに到達するまで、リスト８１５内の他のインスタンスを所定の順番または任意的に検査してもよい。位置実施例において、ある特徴について一致が検出されない場合には、変化した領域Ｌ１７内の当該特徴は無視される。
【００４９】
比較的固有のコンテキストを用い、特徴が充分に長い画素列（すなわち、３２画素列）である場合には、特徴の１つ以上のインスタンスが特徴索引またはアレイで検出される可能性は比較的少ないことに注意すべきである。
【００５０】
特徴のインスタンスが、メモリ５００内の画像のうちの１つであって、メモリ（特徴索引）６１０内に記憶された画像内の同一の特徴のインスタンスに９４０において関連付けられると、変位ベクトルが、それらの位置に基づいて、図９に示すような９５０において計算される。変位ベクトルは、前の（過去の）インスタンス（例えば、（画像識別子、デルタｘ、デルタｙ）という三種のようなもの）に対する後の（現在の）インスタンスを表す。
【００５１】
変化した画像領域Ｌ１７内で検出された特徴の全インスタンスが処理されると、結果として生じた一致した特徴の対がＬ４３で提供され、変化した領域Ｌ１７およびメモリ５００内の画像のうちの１つの両方で生じたブロックを決定するために用いられる。一実施において、Ｌ４３における各特徴対は、参照画像５００内の特徴の位置と、変換した画像領域Ｌ１７内の一致する特徴の変位を示すベクトルによって表される。
【００５２】
図１０Ａは、本発明の一局面に係るブロック描画処理６３０（図６）を一般的に示すフロー図である。変化した領域で生じまたは適合可能で、かつメモリ５００内の画像のうちのいずれか１つで全く同一に生じる最大ブロック（最大ブロックサイズ）に対応する変位ベクトル（Ｖ）を、１０１０において推測または推定する。変化した領域で生じ、かつメモリ５００内の画像のうちのいずれか１つで全く同一に生じる最大サイズのブロック内に含まれる点（Ｐ）（変位ベクトル（Ｖ）によるオフセット）を、１０２０において推定する。この点（Ｐ）を実際に含む最大ブロックの大きさを、１０３０において概算する。必要があれば、この手順は複数回繰り返して、変化した領域およびメモリ５００内の画像の両方内において全く同一に生じる複数のブロックを得てもよい。このようにして、現在の画像および参照（過去の）画像の両方において生じる変化または変位した領域を、その形状、位置、および変位によって、効率的に特定および／または表してもよい。
【００５３】
本明細書で用いる「最大ブロック」という用語は、変化した領域Ｌ１７に適合可能で、メモリ５００内の選択された画像で生じる、可能な限り最大のブロックでは必ずしもない。むしろ、「最大ブロック」は、各実施における時間的要請、処理資源、および所望の目的を考慮した適切なサイズに伸長、描画、または生成されるであろうブロックを指す。図１０Ａに示す処理の一実施例を、図１０Ｂに示す。主要変位ベクトルが１０６０において選択されて、変化した領域およびメモリ５００内の画像のうちの１つで全く同一に生じる最大ブロックの変位を表す。主要変位ベクトルは、すべての残りのベクトルの閾値のうちのいくつかを占めるものである。すなわち、計算した他の全変位ベクトルの所定の割合を表すもの変位ベクトルを、主要ベクトルとして選択してもよい。例えば、同一の相対変位が計算した５０パーセント以上の変位ベクトルであることを示す所定の変位ベクトルを、主要なものとして選択してもよい。以前計算した１つ以上の変位ベクトル（図６のＬ４３の特徴マッチング用）を、主要変位ベクトルを選択する際に用いてもよい。
【００５４】
次に、変化した領域内で生じ、主要変位ベクトルによるオフセットであって、メモリ５００内にある画像のうちの１つで全く同一に生じる最大ブロック内に含まれる点が、１０７０で選択される。一実施において、選択された点は、主要変位ベクトルを補助する変化した領域内にあるすべての一致した特徴の実施的に中心に位置する特徴に対応する。選択された特徴は、最大ブロックが伸長するシード点としての役割を果たす。
【００５５】
最後に、選択された点を含む最大ブロックの大きさを推定または決定する。一実施において、最大ブロック内に含まれているはずの選択された点はシード恬として用いられ、シード点から画素のブロックを１０８０において伸張させることによって、ブロックの大きさを推定または決定する。一実施において、単一の最大ブロックを伸長させて、位置と伸展ベクトルとに関連付けて、変化した領域を効率的に特定および／または表す。他の実施例において、１つ以上の選択されたシード点に基づいて複数のブロックを伸長させて、１つ以上の主要ベクトルに関連付けて、変化した領域を効率的に特定および／または表してもよい。
【００５６】
本発明のある実施例では、１つ以上だがそのすべてではない符号化パラメータ（すなわち、変位ベクトル、領域の形状、サイズ、大きさ、および／またはシード点）が、本発明の実施前に既知であってもよいことに注意すべきである。そのような状態でも、本発明の一部分または特徴を実施して、欠けているパラメータを提供し、変化した領域を効率的に符号化してもよい。例えば、変位ベクトルまたは変位の大きさが前もって既知であったならば、共通領域の形状および位置を上述のようにして決定してもよい。よって、本発明のある実施例では、本発明から逸脱することなく、本発明のあるステップまたは構成要素を省略してもよい。
【００５７】
「伸長」および「伸長される」という用語は、所定のシード点から１つ以上の方向に拡張することによってブロック領域が作成または描画される状態を示すのに共通して用いられる。典型的には、領域は、所定のシード点から２次元平面に沿って拡張することによって、伸長される。しかしながら、領域は、所定の平面内において、他の方向よりもある方向に伸長されるようにしてもよい。他の実施において、領域は、シード点から２方向のみに伸長されるようにしてもよい。
【００５８】
図１１は、本発明の一実施例に係る、変位ベクトル１１２０においてブロック１１１２が選択されたシード点１１０２からどのように伸長されるかを示す。現在の画像１１１０および参照画像１１３０が、同一のブロック１１０２と共に、それぞれ異なる位置に示されている。画素１１０２をシード点とすると、ブロック（領域の部分）は、各象限１１０４，１１０６，１１０８，および１１１０に伸長される。その後、単一のブロック１１１２がこれらの４つのブロック１１０４，１１０６，１１０８，および１１１０の範囲である領域にはめ込まれる。現在のフレームまたは画像１１１０内の単一のブロック１１１２は、参照画像１１３０では１１１２‘として示されているが、各象限１１０４，１１０６，１１０８，および１１１０の対応ブロックと共に示されている。この例では、変位ベクトル１１２０は、参照画像１１３０内の画素位置１１３２から現在の画像１１１０内の画素位置１１０２へのシード点の位置の変化を示す。他の実施例では、シード点１１０２とは異なる点が選択されて、ベクトル１１２０の変位を示してもよい。例えば、シード点はブロック１１１２の実質的に中央に位置していてもよいが、参照または固定点は、ブロック１１１２内のどこに位置していてもよい。
【００５９】
一実施によれば、各ブロック１１０４，１１０６，１１０８，および１１１０は、現在の画像１１００内の行（または列）を、変位ベクトル１１２０によって示された、メモリ５００内の画像内の対応する行（または列）と比較することによって、一度に１行（または１列）ずつ、伸長させる。画像１１００および１１３０の両方内の対応する行（または列）が同一である（すなわち、同一の画素値を含む）場合には、ブロック１１０４，１１０６，１１０８，または１１１０を引き続き伸長させることができる。行（または列）が同一でない場合には、ブロック１１０４，１１０６，１１０８，または１１１０の限界（最大限）が示される。このブロック伸長は、両方向（軸）で行われ、ブロック１１０４，１１０６，１１０８，および１１１０の限界が得られる。他の実施においては、全ての幅および高さの組み合わせが、これらの各ブロック１１０４，１１０６，１１０８，および１１１０に対して試行される。ブロック限界が４つのブロック１１０４，１１０６，１１０８，および１１１０に対して確立すると、単一のブロックまたは領域１１１２が、これら４つのブロックの結合から形成される。
【００６０】
他の実施では、画素毎ならびに／もしくは行毎または列毎のマッチングの代わりに、ブロック、（すなわち、１１０４，１１０６，１１０８，および１１１０を、確率的な方法で、現在の画像および参照画像の間で、ブロックを伸長するにつれて、画素の所定の割合をマッチングさせることによって伸長させる。たとえば、ブロックを伸長させるにつれて、あるマッチング基準がもはや適合しなくなるまでは、列は飛ばしてもよい。マッチングさせる画素は、ブロックを伸長させるにつれて任意に選択してもよい。
【００６１】
単一のブロックまたは領域（例えば、１１１２）を規定する様々な方法を、本発明から逸脱することなく用いてもよい。例えば、主要変位ベクトルとは異なる相対変位の変位ベクトルに関連付けられた特徴のインスタンスがブロック内に含まれるまでは、象限ブロック（例えば、１１０４，１１０６，１１０８，および１１１０）を１単位（例えば、Ｎ個の画素）毎に伸長させ、以降は、ブロックは１単位毎に収縮させてもよい。この方法は、完全な一致が起こりうるという意味で確率的であるが、完全な一致を保証するものではない。
【００６２】
他の実施においては、象限ブロックのサイズを調製して、単一のブロック（例えば、１１１２）のサイズを最大化してもよい。すなわち、多くの場合において、象限ブロックの大きさ（例えば、幅）を一方向で小さくして、他の方向へ伸長（拡張）できるようにすることが可能である。よって、単一のブロック（例えば、１１１２）の全体の大きさは、単一のブロック（例えば、１１１２）を包含する複数のブロック（例えば、象限ブロック１１０４，１１０６，１１０８，および１１１０）の大きさを調節することによって、最大化してもよい。
【００６３】
他の実施において、異なる数のブロックまたは異なる形状の領域を最初に伸長させて、異なるブロック伸長方法を本発明から逸脱することなく用いてもよい。
【００６４】
さらに他の実施において、単一のブロックまたは一直線の領域だけでなく、異なる形状の領域が、現在の画像およびメモリ５００内にある画像のうちの１つの両方で検出される全く同一のまたは完全なコピーがある初期領域にはめ込まれてもよい。例えば、単一のブロック（例えば、１１１２）を４つのブロック（例えば、１１０４，１１０６，１１０８，および１１１０）にはめ込む代わりに、４つのブロック自体を用いて、変化した領域（または現在の画像）およびメモリ５００内にある画像のうちの１つの両方で検出される全く同一のまたは完全なコピーがある領域を規定してもよい。
【００６５】
変化した領域（または現在の画像）およびメモリ５００内にある画像のうちの１つの両方で生じる１つ以上のブロック（例えば、１１１２）を規定した後、そのようなブロック（すなわち、１１１２）それぞれについて、現在の画像および／またはメモリ５００内にある参照画像の両方またはいずれかにおけるブロックのサイズとその一とを回復、再構築、再生成、および／または識別するのに充分な情報を含むコピーコマンドをＬ２１において生成する。例えば、コピーコマンドは、形状または領域（すなわち、１１１２）のパラメータ、形状または領域の位置、および絶対的または相対的変位ベクトル（すなわち、１１２０）を含む。
【００６６】
図５を参照して、メモリ管理部５６０は、メモリ５００内の画像のうちのいくつかを修正または削除し、または次の画像をブロック動き５１０用に検査する前に新たな画像を追加してもよい。例えば、Ｌ１１上の符号化された画像がデコーダ２０８によって処理されるまでに図２のフレームバッファ２１０内で現れるフレームをメモリ５００が記憶しているとすると、図５のデコーダ５４０によって作成される画像は、メモリ５００に記憶されているフレームにコピーされてもよく、これにより、メモリ５００のフレームバッファ２１０の内容が効率的に反映される。Ｌ２７を介してメモリ５００が更新されたことに応じて、ブロック動き検出部５１０は、その内部データ構造を調整してもよい。
【００６７】
本発明の好ましい実施例において、図５に示す特徴管理部６４０は、図９に示すデータ構造を以下のように更新する。まず、全リスト８１５を反復して、基礎となる画素が修正（上書き）されたことによってメモリ５００内にはもはや存在しない特徴の全インスタンスを取り除く。メモリ５００から削除されるか、完全に上書きされた画像の特徴を索引付けしたアレイ８００は、さらに検査せずに破棄または取り除かれてもよい。次に、メモリ５００内の画像のすべての修正された部分／ブロックおよび新たに追加されたブロックを特徴検出のために走査して、基礎となる画素がそのような部分／ブロック内に部分的にのみ含まれるような特徴をも検出するようにする。新たに検出した特徴のそれぞれについて、アレイ８００内のリスト８１５を検索して、特徴を当該リストの８１５の最初に迅速に挿入する。
【００６８】
本発明の様々な局面は、データ圧縮に関する徹底的な検索の効率をほぼ完全に維持しながら、３つの方法で検索空間を縮小させることによって、ブロック動き検出を実質的に加速化している。第１には、現在の画像およびメモリ５００内のすべての画像は、特徴のある規定に従って、実質的に画素よりも少ないが特徴的な位置においてサンプリングされる。第２には、現在の画像における特徴のインスタンスおよびメモリ５００内の画像のうちの１つの中にあるランダムに選択されたインスタンスが、より大きな一致ブロック内に含まれる可能性を、予め計算して徐々に更新している発生数によって推定して、周辺画素に適用する見込みがある場合にのみ、変位ベクトルを計算する。第３には、メモリ５００内の画像のうちの１つの中で、全く同一に（確率的、統計的、概算的、および／または生じる見込みのあるように）に発生するブロックを、あるパラメータの特徴レベルの推定に基づいて決定する。
【００６９】
本発明の実施例をある好ましい実施例によって説明してきたが、他の実施例も本発明の範囲内にある。
【００７０】
例えば、ブロック動きは、確率的な方法で検出されてもよい。すなわち、ブロックは、変位ベクトルによって示される位置では、保証はできないものの、全く同一に生じることが見込まれる。一実施においては、ブロックのサイズおよび／または形状は、特徴レベルにおいてのみ決定され、画素レベルにおいては確認されない。図２〜３を参照して、例えば、フレームバッファ２０２内の元フレームの代わりにフレームバッファ２１０内の復号化されたフレームをメモリ３００にコピーして、そのフレームを、符号化すべき次のフレームと３１０において比較することによって、誤ったブロック動きを後に補正するようにしてもよい。
【００７１】
加えて、他の実施では、現在の画像から全特徴６００を抽出せず、および／またはメモリ５００内に記憶された画像内で生じる、メモリ６００内にある全特徴をキャッシュしない。
【００７２】
さらに他の実施例においては、ブロックは、その変位ベクトルによって示される位置では全く同一に生じるものではないと決定してもよく、そのようなブロックの実際の画素およびほぼ一致するブロックの画素間の差を、ブロックの大きさおよび変位ベクトルと共に符号化してもよい。一実施において、ほぼ一致するブロックを、一致する画素の割合がある閾値を下回るまでは、１０３０において伸長してもよい。残りは、損失のあるまたは損失のないアルゴリズムを用いて５３０において符号化されてもよい。画像エンコーダ５３０は、形状または他の特徴に基づいて、互いに異なる領域を異なるように符号化してもよい。
【００７３】
ある実施例を添付の図面において説明および図示してきたが、そのような実施例は例証に過ぎず、幅広い発明を限定するものではなく、また、本発明は、図示および説明された特定の構成および仕組みに限らないということが理解されるべきである。さらに、本発明またはその特徴のいくつかは、ハードウェア、プログラム可能な装置、ファームウェア、ソフトウェア、またはそれらの組み合わせで実現することが可能である。本発明または本発明の部分は、処理装置が読み取り可能な記憶媒体または機械が読み取り可能な媒体であって、磁気的（例えば、ハードドライブ、フロッピー（登録商標）ドライブ）、光学的（例えば、コンパクトディスク、デジタル多用途ディスク）、または半導体記憶媒体（揮発性および不揮発性）のようなものにおいて実施されてもよい。
【図面の簡単な説明】
【００７４】
【図１】図１は、本発明の装置および方法を利用する遠隔アクセスシステムの例を示す。
【図２】図２は、図１に示す遠隔アクセスシステムにおける本発明の動作を示すブロック図である。
【図３】図３は、本発明の一実施例に係る２つのフレーム間の差を符号化するための装置例を示すブロック図である。
【図４】図４Ａ，４Ｂ，４Ｃおよび４Ｄは、本発明の一実施例に係る、ブロックの動きが画像例でどのように検出されるかを示しており、過去のフレームおよび現在のフレーム間の、過去のフレームに対する差を充分に説明するものである。
【図５】図５は、本発明の一実施例に係るブロック動き検出を伴う画像符号化を示すブロック図である。
【図６】図６は、本発明の一実施例に係る、ブロックの動きがどのように検出されるかを示すブロック図である。
【図７】図７Ａは、本発明の一局面の一実施例によって特徴がどのように規定されるかを示す。  図７Ｂは、図７Ａに示す特徴規定を用いて、画像例に生じた全特徴を示す。
【図８】図８は、特徴をメモリに記憶するためのデータ構造の一実施例を示し、稀に生じる特徴を決定して迅速にアクセスすることができることを示す。
【図９】図９は、本発明の一局面に係る、特徴をマッチングさせる技術の一実施例を示すフロー図である。
【図１０】図１０Ａは、本発明の一局面に係る、ブロック決定処理の一実施例を示すフロー図である。  図１０Ｂは、本発明の一局面に係る、図１０Ａに示すブロック決定処理の一実施例を示すフロー図である。
【図１１】図１１は、本発明の一実施例に係る、一致したブロックが所定のシード点からどのように伸長するかということと、所定の変位ベクトルによる変換を示す。
【図１】
2005522083.tif 000003
【図２】
2005522083.tif 000004
【図３】
2005522083.tif 000005
【図４Ａ】
2005522083.tif 000006
【図４Ｂ】
2005522083.tif 000007
【図４Ｃ】
2005522083.tif 000008
【図４Ｄ】
2005522083.tif 000009
【図５】
2005522083.tif 000010
【図６】
2005522083.tif 000011
【図７Ａ】
2005522083.tif 000012
【図７Ｂ】
2005522083.tif 000013
【図７】
2005522083.tif 000014
【図９】
2005522083.tif 000015
【図１０】
2005522083.tif 000016
【図１１】
2005522083.tif 000017
【国際調査報告】
2005522083.tif 000018