(57)【要約】  信号シーケンスを処理するためのシステムと方法が説明される。ハイブリッド・ブロック・マッチングと変換ベースのＮ次元信号シーケンス符号化器と復号化器が開示される。符号化器は、ブロック・マッチング差の特定のエネルギー尺度から推定できるエントロピー・ベースの費用関数を含む符号化器側ブロック・マッチング予測器を含み、高速ブロック・マッチングサーチ法で、近隣ブロックから結果を学習し、少数の点のみを訪れて広範囲サーチを実行する。符号化器出力に基づき費用関数パラメータとその他の符号化制御パラメータを動的に調整し、符号化器の品質とパフォーマンスを最適化する方法が開示される。ｎ次元ブロック・マッチングに対する分数格子点のサーチと高速処理を使用可能にする方法が開示される。ハイブリッド・ブロック・マッチングと変換ベースのｎ次元信号シーケンス復号化器が開示される。ｎ次元信号フレームの効率的処理を可能にするメモリ編成と処理アレイ構造は、ｎ次元信号のブロックを高速に格納し、アクセスすることができるｎ次元メモリ、ｎ次元メモリに転送する前に大量のデータを格納するためのマルチレベル大容量メモリ構造、とｎ次元メモリ内のデータを処理するためのシグナル・プロセッサ・アレイを含む。
2007525078.tif 000002
【特許請求の範囲】
【請求項１】
信号シーケンスを処理するシステムであって、
複数の現在のフレーム・ブロックと複数のｎ次元基準フレームを含むｎ次元の現在のフレームを含み、それぞれのフレームは複数の基準フレーム・ブロックを含む前記複数のｎ次元基準フレームからのフレームである、信号シーケンスを受け取る微分器と、
前記複数のｎ次元基準フレームを格納するためのフレーム・バッファと、
前記複数の現在のフレーム・ブロック内のそれぞれのブロックに対する前記複数の基準フレーム・ブロックの予測ブロックを識別し、前記複数の現在のフレーム・ブロック内のそれぞれのブロックに対するそれぞれの予測ブロックに対する基準変位インデックスとブロック予測差を決定し、前記基準変位インデックスで前記基準フレーム・ブロック内の１つの点を識別する、ブロック・マッチング予測器と、
前記複数の現在のフレーム・ブロック内のそれぞれのブロックに対するそれぞれのブロック予測差とそれぞれの基準変位インデックスを符号化し、それによって複数の符号化ブロックを作成するブロック符号化器と、
所定のフォーマットにより前記複数の符号化ブロックを包んでまとめるシーケンス符号化器を備えるシステム。
【請求項２】
前記所定のフォーマットにより前記複数の符号化されたブロックの包み込みを解くシーケンス復号化器と、
それぞれのブロック予測差とそれぞれの基準変位インデックスを使用して前記複数の符号化されたブロックからそれぞれのブロックを復号化するブロック復号化器とを備える請求項１に記載のシステム。
【請求項３】
前記予測ブロックは、前記複数の基準フレーム・ブロックを使用して現在のフレーム・ブロックを符号化するために必要な情報の量を最小限に抑えるために識別される請求項１に記載のシステム。
【請求項４】
予測ブロックの識別の計算量を判定する費用を推定コンポーネントを含み、前記費用推定コンポーネントは費用関数を使用する請求項１に記載のシステム。
【請求項５】
前記費用推定コンポーネントは、前記ブロック予測差の複数の特性値の一次結合と前記ブロック・マッチング予測器の１つまたは複数の状態を含むグループから選択された１つまたは複数のパラメータに基づいて推定を利用する請求項４に記載のシステム。
【請求項６】
前記費用関数は、前記ブロック予測差の特性値により指定されたテーブル・エントリを含む少なくとも１つのテーブルと前記ブロック・マッチング予測器の１つまたは複数の状態に基づく請求項４に記載のシステム。
【請求項７】
前記複数の基準フレーム・ブロックを使用して前記現在のフレーム・ブロックを符号化するために必要な情報の量は、それぞれのブロック予測差のビット・レートとそれぞれの基準変位インデックスのビット・レートの和により決定される請求項３に記載のシステム。
【請求項８】
変換されたｎ次元係数を符号化する前にｎ次元係数逆相関変換Ｔを使用してブロック予測差を変換するための係数逆相関変換コンポーネントを備える請求項１に記載のシステム。
【請求項９】
前記ブロック・マッチング予測器は、可変形状とサイズのブロックを処理することができる請求項１に記載のシステム。
【請求項１０】
前記係数逆相関変換コンポーネントは、可変形状とサイズのブロックを処理することができる請求項８に記載のシステム。
【請求項１１】
前記係数逆相関変換コンポーネントは、関連する形状とサイズを持つブロックを使用し、前記関連する形状とサイズは前記ブロック・マッチング予測器により選択される請求項８に記載のシステム。
【請求項１２】
前記係数逆相関変換コンポーネントは、１つまたは複数のシステム・パフォーマンス要件に従って変換方法を使用する請求項８に記載のシステム。
【請求項１３】
前記ブロック符号化器は、ｎ次元ジグザグ走査とランレングス符号化を使用して変換されたｎ次元係数を符号化する請求項８に記載のシステム。
【請求項１４】
変換Ｔは、ｎ次元離散コサイン変換（ＤＣＴ）である請求項８に記載のシステム。
【請求項１５】
変換Ｔは、Ｎ次元離散アダマール変換（ＤＨＴ）である請求項８に記載のシステム。
【請求項１６】
前記費用関数Ｊは、
J = Rdc (DC) + Rac (AC) + Rri（基準インデックス）
の形式であり、Ｒdc（ＤＣ）は、ブロック予測差のＤＣ係数に対するレートであり、Ｒac（ＡＣ）は、ブロック予測差のＡＣ係数に対するレートであり、Ｒri（基準インデックス）は、基準インデックスに対するレートである請求項４に記載のシステム。
【請求項１７】
前記Ｒac（ＡＣ）は、ＡＣ＿ＮＯＲＭ（Ｒac（ＡＣ＿ＮＯＲＭ））の関数として推定することができ、ＡＣ＿ＮＯＲＭは、前記ブロック予測差の前記ＡＣ成分のＮＯＲＭである請求項１６に記載のシステム。
【請求項１８】
前記Ｒac（ＮＯＲＭ）は、ＡＣ＿ＮＯＲＭの線形関数またはＡＣ＿ＮＯＲＭの区分線形関数である請求項１７に記載のシステム。
【請求項１９】
前記Ｒac（ＮＯＲＭ）は、
Rac (AC_NORM) = K * (AC_NORM - AC_THRESHOLD) / QP_ac
の形式であり、
前記ＡＣ＿ＴＨＲＥＳＨＯＬＤは、オプションにより前記推定から削除することができる請求項１８に記載のシステム。
【請求項２０】
前記Ｋは、
ΔK = μ * Error * (AC_NORM - AC_THRESHOLD) / QP_ac
となるように、実際のレートに基づき最小平均２乗（ＬＭＳ）アルゴリズムにより調整することができ、
前記Ｅｒｒｏｒは、レート推定誤差であり、μは、学習係数であり、Ｅｒｒｏｒ＝Ａｃｔｕａｌ＿ＡＣ＿Ｒａｔｅ−Ｒac（ＮＯＲＭ）である請求項１９に記載のシステム。
【請求項２１】
前記ＡＣ＿ＴＨＲＥＳＨＯＬＤは、実際のＡＣ＿ＲａｔｅとＡＣ＿ＮＯＲＭを使用して調整することができる請求項１９に記載のシステム。
【請求項２２】
前記ＡＣ＿ＮＯＲＭは、Ｌ１  ＮＯＲＭであり、前記Ｌ１  ＮＯＲＭは前記ブロック予測差のそれぞれの成分の絶対値の総和である請求項１７に記載のシステム。
【請求項２３】
前記ＡＣ＿ＮＯＲＭは、Ｌ２  ＮＯＲＭであり、前記Ｌ２  ＮＯＲＭは前記ブロック予測差のそれぞれの成分の２乗の総和の平方根である請求項１７に記載のシステム。
【請求項２４】
前記システムは、２次元ビデオ・シーケンスの符号化の使用に適合される請求項１に記載のシステム。
【請求項２５】
前記ブロック・マッチング予測器は、前記複数の基準フレームのうちの１つまたは複数の基準フレーム内の１つまたは複数の点を評価する請求項１に記載のシステム。
【請求項２６】
前記複数の基準フレームのうちの前記１つまたは複数の基準フレーム内の前記１つまたは複数の点の前記評価は、ネイバー・エクスプロイト・オペレーションを含み、前記ネイバー・エクスプロイト・オペレーションは近隣ブロックの評価に応じて得られる結果を使用して前記目標基準ブロックを評価することを含む請求項２５に記載のシステム。
【請求項２７】
前記ブロック・マッチング予測器は、前記目標基準ブロックを評価するために前記近隣ブロックに関連付けられた基準変位インデックスを使用する請求項２６に記載のシステム。
【請求項２８】
前記ネイバー・エクスプロイト・オペレーションは、前記目標基準ブロックが前記予測ブロックかどうかを判定するために前記近隣ブロックに関連付けられた前記基準変位インデックスを使用して前記目標基準ブロックに対する目標システムの目標を評価する請求項２７に記載のシステム。
【請求項２９】
前記基準変位インデックスにより参照される目標点を識別し、
前記目標点のすぐ近くにある近隣点を評価することを含む請求項２８に記載のシステム。
【請求項３０】
前記ブロック・マッチング予測器は詳細サーチオペレーションを実行し、前記詳細サーチオペレーションは目標点の周りの領域を評価する請求項２９に記載のシステム。
【請求項３１】
前記詳細サーチオペレーションは、
それぞれの次元についてステップ・サイズ２で目標点の周りの最良点を識別し、
前記目標点のすぐ近くにある１つまたは複数の点を評価することを含む請求項３０に記載のシステム。
【請求項３２】
前記ブロック・マッチング予測器は、大域サーチオペレーションを実行し、前記大域サーチオペレーションは複数の点を評価するためしきい値を設定することに応答して実行される請求項２５に記載のシステム。
【請求項３３】
前記大域サーチオペレーションは、ｎレベル階層サーチを含む請求項３２に記載のシステム。
【請求項３４】
ｎレベル階層サーチは、レベルＫ＞０で停止できる請求項３３に記載のシステム。
【請求項３５】
前記しきい値は、前記ネイバー・エクスプロイト・オペレーションの最良の結果により設定される請求項３２に記載のシステム。
【請求項３６】
前記しきい値は、前記詳細サーチオペレーションの最良の結果により設定される請求項３２に記載のシステム。
【請求項３７】
前記方法は、２次元ビデオ・シーケンスの符号化の使用に適合される請求項１に記載のシステム。
【請求項３８】
前記ブロック・マッチング予測器は、分数点予測器を含み、
前記基準フレームは、複数の格子点と複数の分数点を含む請求項１に記載のシステム。
【請求項３９】
前記複数の分数点からの１つの分数点上の信号は、１つまたは複数の整数格子点または１つまたは複数の前回補間された格子点から補間される請求項３８に記載のシステム。
【請求項４０】
前記分数点は、双線形補間を使用して補間される請求項３９に記載のシステム。
【請求項４１】
前記分数点は、マルチタップ補間を使用して補間される請求項３９に記載のシステム。
【請求項４２】
前記ブロック・マッチング予測器は、前記最良の点を選択するために第１の補間メカニズムを使用して前記複数の分数点から１つまたは複数の分数点を評価し、第２の補間メカニズムを使用して前記ブロック予測差を計算する請求項３９に記載のシステム。
【請求項４３】
前記第１の補間メカニズムは、双線形補間に基づき、前記第２の補間メカニズムは、マルチタブ補間に基づく請求項４２に記載のシステム。
【請求項４４】
前記第２の補間メカニズムは、目標システムの目標を最適化するように補間器の集合から適応的に選択できる請求項３９に記載のシステム。
【請求項４５】
１つまたは複数の符号化パラメータを動的に調整する符号化フィードバック制御ユニットを備え、前記１つまたは複数の符号化パラメータは、前記ブロック符号化器から得られる１つまたは複数のフィードバック・パラメータと符号化監視パラメータの集合を含むグループから選択された１つまたは複数の基準に従って調整される請求項１に記載のシステム。
【請求項４６】
前記符号化フィードバック制御ユニットは、前記ブロック符号化器から得られる１つまたは複数のフィードバック・パラメータと符号化監視パラメータの集合を含む前記グループから選択された１つまたは複数の基準に従って、１つまたは複数のブロック予測処理パラメータを動的に調整する適応型ブロック・マッチング制御ユニットを備える請求項４５に記載のシステム。
【請求項４７】
前記ブロック・マッチング制御ユニットは、前回符号化されたフレームからの１つまたは複数のサーチ特性に基づいて前記現在のフレームのそれぞれの次元のサーチ範囲を調整する請求項４６に記載のシステム。
【請求項４８】
前記現在のフレームに対するそれぞれの次元の前記サーチ範囲は、前記前回符号化されたフレームからの動きベクトル分布の関数に基づき調整される請求項４７に記載のシステム。
【請求項４９】
前記ブロック・マッチング制御ユニットは、前記ブロック符号化器からのフィードバックに応じて前記費用推定コンポーネントにより使用される費用関数を調整する請求項４６に記載のシステム。
【請求項５０】
前記ブロック・マッチング制御ユニットは、前記ブロック符号化器により生成される実際の費用関数値と推定費用値との間の誤差に応じて前記費用関数の前記パラメータを調整し、前記推定された費用値は前記パラメータ化された費用関数を使用して計算される請求項４９に記載のシステム。
【請求項５１】
前記費用関数は、最小平均２乗（ＭＬＳ）アルゴリズムを使用して構造化され調整される請求項４９に記載のシステム。
【請求項５２】
前記ブロック・マッチング予測器制御ユニットは、１つまたは複数のプロセス・パラメータを動的に調整し、ブロック予測プロセスの処理サイクルを割り当て、スケジュールする請求項４６に記載のシステム。
【請求項５３】
前記ブロック・マッチング予測器は、早期終了条件に従って処理を終了する請求項１に記載のシステム。
【請求項５４】
前記早期終了条件は、スキップ条件を含み、前記スキップ条件はスキップしきい値に応じて前記現在ブロックが前のブロックにより表すことができることを示す請求項５３に記載のシステム。
【請求項５５】
前記スキップしきい値は、前記ブロック符号化器からのフィードバックに応じて動的に調整可能である請求項５４に記載のシステム。
【請求項５６】
前記早期終了条件は、適切なマッチ条件を含み、前記適切なマッチ条件は費用関数値が所定の適切なマッチしきい値よりも低いことを示す請求項５３に記載のシステム。
【請求項５７】
前記適切なマッチしきい値は、すでに評価されているブロックの特性値の移動ウィンドウ平均値の関数に従って動的に調整することができる請求項５６に記載のシステム。
【請求項５８】
前記特性値は、前記すでに評価されているブロックの前記最良費用関数値である請求項５７に記載のシステム。
【請求項５９】
前記早期終了条件は、ギブアップ条件を含み、前記ギブアップ条件はこれ以上のサーチがこれまでに見つかった前記最良費用値よりも低い費用関数値を生成しないと判断したことに対する応答をトリガとする請求項５３に記載のシステム。
【請求項６０】
前記ブロック・マッチング予測器は、Ａ*アルゴリズムに基づいてサーチ点をスキップする請求項１に記載のシステム。
【請求項６１】
前記ブロック・マッチング予測器は、並列螺旋型サーチプロセスを使用して基準フレームを評価する請求項１に記載のシステム。
【請求項６２】
前記ブロック・マッチング予測器は、プロセッサ・アレイを使用して前記基準フレーム内の複数の点に関するシステム目標を評価し、前記プロセッサ・アレイはｎ次元データ入力を処理するために１つまたは複数の信号処理を含む請求項１に記載のシステム。
【請求項６３】
ｎ次元メモリであって、
１クロック・サイクルの間に１つのデータ・アイテムをそれぞれのスライスに格納または取り出せる１つまたは複数のメモリ・スライスと、
前記ｎ次元フレーム内の任意の場所に配置できる所定の立方体内のすべての前記データに複数のサイクルでアクセスできるようにｎ次元フレーム内に配置されるｎ次元データを編成し、前記サイクル数は前記メモリ・スライスの個数で割った前記立方体内の点の前記総数として決定される手段と、
Ｎ次元アドレス入力に基づいて前記１つまたは複数のメモリ・スライスからデータにアクセスするアドレス変換モジュールと、
前記１つまたは複数のスライスからｎ次元データを使用する１つまたは複数の外部処理モジュールにデータをブリッジするためのデータ・マルチプレクサ／デマルチプレクサとを備えるｎ次元メモリを備えるメモリ・システム。
【請求項６４】
前記ｎ次元メモリに結合された、ブロック形式でデータを格納するための少なくとも１レベルのブロック・メモリと、
前記ブロック・メモリと前記ｎ次元メモリ内のデータにアクセスするためのアドレス指定変換モジュールと、
前記ｎ次元メモリから前記ブロック・メモリにデータ・フローをブリッジするためのデータ・マルチプレクサ／デマルチプレクサとを備える請求項６３に記載のメモリ・システム。
【請求項６５】
前記ブロック・メモリは、ＳＲＤＡＭである請求項６４に記載のメモリ・システム。
【請求項６６】
前記メモリ・システムは、２次元イメージを格納するように適合されている請求項６３に記載のメモリ・システム。
【請求項６７】
ｎ次元データ入力を処理するための１つまたは複数の信号処理ユニットを含む処理アレイと、
前記信号処理ユニット用にデータを格納するための１つまたは複数のデータ・レジスタと、
前記アレイ内の複数のプロセッサにより１つのデータ要素を使用できるように前記処理アレイを制御する手段とを備えるシステム。
【請求項６８】
前記処理アレイは、ｎ次元メモリからのデータを処理し、前記ｎ次元メモリは、
１クロック・サイクルの間に１つのデータ・アイテムをそれぞれのスライスに格納または取り出せる１つまたは複数のメモリ・スライスを含むｎ次元メモリと、
前記ｎ次元フレーム内の任意の場所に配置できる所定の立方体内のすべての前記データに複数のサイクルでアクセスできるようにｎ次元フレーム内に配置されるｎ次元データを編成し、前記サイクル数は前記メモリ・スライスの個数で割った前記立方体内の点の前記総数として決定される手段と、
Ｎ次元アドレス入力に基づいて前記１つまたは複数のメモリ・スライスからデータにアクセスするアドレス変換モジュールと、
前記１つまたは複数のスライスから１つまたは複数の外部処理モジュールにデータをブリッジするためのデータ・マルチプレクサ／デマルチプレクサとを備える請求項６７に記載のシステム。
【請求項６９】
前記処理アレイは、マルチレベルｎ次元メモリからのデータを処理し、前記マルチレベルｎ次元メモリは、
ｎ次元メモリと、
前記ｎ次元メモリに結合された、ブロック形式でデータを格納するための少なくとも１レベルのブロック・メモリと、
前記ブロック・メモリと前記ｎ次元メモリ内のデータにアクセスするためのアドレス指定変換モジュールと、
前記ｎ次元メモリから前記ブロック・メモリにデータ・フローをブリッジするためのデータ・マルチプレクサ／デマルチプレクサとを備える請求項６７に記載のシステム。
【請求項７０】
前記システムは、２次元ビデオ・シーケンスを符号化するように適合される請求項６７に記載のシステム。
【請求項７１】
元のｎ次元フレームを含むｎ次元フレームのシーケンスを受け取ることと、
前記元のｎ次元フレーム内の隣接するブロックの関係を保持するような順序で、前記ｎ次元フレーム・シーケンスを１次元ブロック・シーケンス内に走査することとを含む方法。
【請求項７２】
２つのブロックは、空間的ネイバーまたは時間的ネイバーである場合に、ネイバーとみなされる請求項７１に記載の方法。
【請求項７３】
前記方法は、２次元ビデオ・シーケンスを符号化するように適合される請求項７１に記載の方法。
【請求項７４】
ｎ次元フレームの前記シーケンスを１次元シーケンスに走査することは、
ｎ次元フレームの前記シーケンスからブロックのグループ内の点の第１の行を走査することと、
前記ブロックのグループ内の点の第２の行を識別し、前記第１の行が終わる位置にある点の第２の行の開始を識別することとを含む請求項７３に記載の方法。
【請求項７５】
ｎ次元フレームの前記シーケンスから第１のフレームの走査を完了することに応答し、
ｎ次元フレームの前記シーケンスから第２のフレームを走査し、前記第１のフレームが終わる前記位置から前記第２のフレームの前記開始を識別し、
前記第１のフレームの前記走査と逆の順序で前記第２のフレーム内の点の前記行を走査することとを含む請求項７４に記載の方法。
【請求項７６】
信号シーケンスを処理する方法であって、
複数の現在のフレーム・ブロックと複数のｎ次元基準フレームを含むｎ次元の現在のフレームを含み、それぞれのフレームは複数の基準フレーム・ブロックを含む前記複数のｎ次元基準フレームからのフレームである、信号シーケンスを受け取ることと、
前記複数のｎ次元基準フレームを格納することと、
前記複数の現在のフレーム．・ブロック内のそれぞれのブロックに対する前記複数の基準フレーム・ブロックのうちの予測ブロックを識別することと、
前記複数の現在のフレーム・ブロック内のそれぞれのブロックのそれぞれの予測ブロックに対する基準変位インデックスとブロック予測差を決定し、前記基準変位インデックスは、前記基準フレーム・ブロック内の１点を識別することと、
前記複数の現在のフレーム・ブロック内のそれぞれのブロックに対するそれぞれのブロック予測差とそれぞれの基準変位インデックスを符号化し、それによって複数の符号化ブロックを作成することと、
所定のフォーマットにより前記複数の符号化ブロックを包んでまとめることを含む方法。
【請求項７７】
信号シーケンスを処理するシステムであって、
複数の現在のフレーム・ブロックと複数のｎ次元基準フレームを含むｎ次元の現在のフレームを含み、それぞれのフレームは複数の基準フレーム・ブロックを含む前記複数のｎ次元基準フレームからのフレームである、信号シーケンスを受け取る手段と、
前記複数のｎ次元基準フレームを格納する手段と、
前記複数の現在のフレーム．・ブロック内のそれぞれのブロックに対する前記複数の基準フレーム・ブロックのうちの予測ブロックを識別する手段と、
前記複数の現在のフレーム・ブロック内のそれぞれのブロックのそれぞれの予測ブロックに対する基準変位インデックスとブロック予測差を決定し、前記基準変位インデックスは前記基準フレーム・ブロック内の１点を識別する、手段と、
前記複数の現在のフレーム・ブロック内のそれぞれのブロックに対するそれぞれのブロック予測差とそれぞれの基準変位インデックスを符号化し、それによって複数の符号化ブロックを作成する、手段と、
所定のフォーマットにより前記複数の符号化ブロックを包んでまとめる手段を備えるシステム。
【請求項７８】
回路の記述を格納する機械可読媒体であって、前記回路は、
複数の現在のフレーム・ブロックと複数のｎ次元基準フレームを含むｎ次元の現在のフレームを含み、それぞれのフレームは複数の基準フレーム・ブロックを含む前記複数のｎ次元基準フレームからのフレームである、信号シーケンスを受け取る微分器と、
前記複数のｎ次元基準フレームを格納するためのフレーム・バッファと、
前記複数の現在のフレーム・ブロック内のそれぞれのブロックに対する前記複数の基準フレーム・ブロックの予測ブロックを識別し、前記複数の現在のフレーム・ブロック内のそれぞれのブロックに対するそれぞれの予測ブロックに対する基準変位インデックスとブロック予測差を決定し、前記基準変位インデックスで前記基準フレーム・ブロック内の１つの点を識別する、ブロック・マッチング予測器と、
前記複数の現在のフレーム・ブロック内のそれぞれのブロックに対するそれぞれのブロック予測差とそれぞれの基準変位インデックスを符号化し、それによって複数の符号化ブロックを作成するブロック符号化器と、
所定のフォーマットにより前記複数の符号化ブロックを包んでまとめるシーケンス符号化器を備える機械可読媒体。
【発明の詳細な説明】
【関連出願】
【０００１】
本出願は、参照により内容が本明細書に組み込まれている、２００３年６月２３日に出願した「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＡＤＡＰＴＩＶＥ  ＭＵＬＴＩＰＬＥ−ＤＩＭＥＮＳＩＯＮＡＬ  ＳＩＧＮＡＬ  ＳＥＱＵＥＮＣＥＳ  ＥＮＣＯＤＩＮＧ／ＤＥＣＯＤＩＮＧ」という表題の米国仮特許出願第６０／４８０，９８５号の優先権を主張するものである。
【技術分野】
【０００２】
一実施形態は、全体として、データの符号化、記憶、分布、復号化に関するものであり、より具体的には、ただし排他的ではないが、ｎ次元ブロック・マッチング法を使用することによるｎ次元信号シーケンス符号化、記憶、分布、復号化に関するものである。
【背景技術】
【０００３】
ビデオ信号は、通常、膨大な量の情報を含む。したがって、ビデオ信号は、通常、送信または格納される前に圧縮符号化される。高い効率でビデオ信号を符号化するために、フレーム単位の画像が所定の数のピクセル単位で複数のブロックに分割される。ブロック毎に直交変換が実行され、画像の空間周波数が複数の周波数成分に分離される。それぞれの周波数成分は、変換係数として得られ、符号化される。
【発明の開示】
【課題を解決するための手段】
【０００４】
一態様によれば、信号シーケンスを処理するシステムが、信号シーケンスを受け取る微分器と、複数のｎ次元基準フレームを格納するためのフレーム・バッファと、ブロック・マッチング予測器と、ブロック符号化器と、シーケンス符号化器を備える。前記信号シーケンスは、複数の現在のフレーム・ブロックと複数のｎ次元基準フレームを含むｎ次元の現在のフレームを含み、複数のｎ次元基準フレームからのそれぞれのフレームは複数の基準フレーム・ブロックを含む。前記ブロック・マッチング予測器は、複数の現在のフレーム・ブロック内のそれぞれのブロックに対する複数の基準フレーム・ブロックの予測ブロックを識別し、複数の現在のフレーム・ブロック内のそれぞれのブロックのためのそれぞれの予測ブロックに対する基準変位インデックスとブロック予測差を決定し、基準変位インデックスは基準フレーム・ブロック内の１つの点を識別する。前記ブロック符号化器は、複数の現在のフレーム・ブロック内のそれぞれのブロックに対するそれぞれのブロック予測差とそれぞれの基準変位インデックスを符号化し、それによって複数の符号化ブロックを作成する。前記シーケンス符号化器は所定のフォーマットにより複数の符号化ブロックを包んでまとめる。
【０００５】
他の態様によれば、メモリ・システムは、ｎ次元メモリを備える。ｎ次元メモリは、１クロック・サイクルの間に１つのデータ・アイテムをそれぞれのスライスに格納または取り出せる１つまたは複数のメモリ・スライスと、ｎ次元フレーム内の任意の場所に配置できる所定の立方体内のすべてのデータに複数のサイクルでアクセスできるようにｎ次元フレーム内に配置されるｎ次元データを編成し、サイクル数をメモリ・スライスの個数で割った立方体内の点の総数として決定する手段と、ｎ次元アドレス入力に基づいて１つまたは複数のメモリ・スライスからデータにアクセスするアドレス変換モジュールと、１つまたは複数のスライスからｎ次元データを使用する１つまたは複数の外部処理モジュールにデータをブリッジするためのデータ・マルチプレクサ／デマルチプレクサとを備える。
【０００６】
さらに他の態様によれば、システムは、ｎ次元データ入力を処理するための１つまたは複数の信号処理ユニットを含む処理アレイと、信号処理ユニット用にデータを格納するための１つまたは複数のデータ・レジスタと、アレイ内の複数のプロセッサにより１つのデータ要素を使用できるように処理アレイを制御する手段とを備える。
【０００７】
さらに他の態様によれば、方法が、元のｎ次元フレームを含むｎ次元フレーム・シーケンスを受け取り、元のｎ次元フレーム内の隣接するブロックの関係を保持するような順序で、ｎ次元フレーム・シーケンスを１次元のブロック・シーケンス内に走査することを含む。
【発明を実施するための最良の形態】
【０００８】
本発明の他の特徴は、付属の図面と以下で述べる詳細な説明とから明らかになる。
【０００９】
本発明は、付属の図面の図において限定されることなく例を使用して説明され、類似の参照番号は類似の要素を示す。
【００１０】
本明細書の説明では、本発明のいくつかの実施形態を完全に理解できるように、システム・コンポーネントと方法の説明などの具体的詳細事項を多数述べている。ただし、当業者であれば、本発明は、特定の詳細の１つまたは複数を使用せずに、他のシステム、方法、コンポーネント、材料、部品などを使用して実践できることを理解するであろう。他の場合には、本発明の態様をわかりにくくしないため、よく知られている構造、材料、またはオペレーションについては、示されていないか、または詳述されていない。
【００１１】
本明細書全体を通して「一実施形態」と記述されている場合、これは、その実施形態に関して説明されている特定の機能、構造、または特性が少なくとも本発明の１つの実施形態に含まれることを意味する。そのため、「一実施形態では」という語句が明細書の様々な箇所に記載されていても、必ずしもすべて同じ実施形態にあてはまるとは限らない。さらに、特定の特徴、構造、または特性は、１つまたは複数の実施形態において、適切な方法により組み合わせることができる。
【００１２】
概要
一実施形態では、多次元信号シーケンスを効果的に圧縮し、いくつかの歪み制約条件によりビット・レートを小さくするための方法と装置が説明される。この方法は、ｎ次元信号シーケンスを符号化する場合に使用することができ、図２７にいくつかの具体例が示されている。この方法の応用例は、送信や格納を目的とするビデオ符号化にある。以下の説明のほとんどでは、図示の例として２次元ビデオ信号シーケンス圧縮のみが詳しく示されているが、ここで教示されている方法と装置は、ｎ次元信号の一般的シーケンスを圧縮するように拡張することができる。
【００１３】
Ｎ次元ブロック・マッチング信号シーケンス符号化
図１は、適応型多次元信号シーケンス符号化システム１００の例示的な実施形態のブロック図を示している。このシステムは、ｎ次元信号シーケンスのシーケンスを圧縮するために使用することができる。図２７のアイテム２７０４、２７０５、２７０６は、ｎ次元シーケンスのいくつかの例である。システムへの入力は、ｎ次元信号フレーム（例えば、図２７のアイテム２７０１、２７０２、２７０３）とすることができる。フレームは、複数のｎ次元ブロックで構成することができる。図２９は、２次元フレーム２９０１のブロック２９０２の一例を示している。図１に示されているように、システム１００は、フレーム・バッファ１０２内に復号化されたフレームの集合を保持する。目標ブロックは、基準フレーム内の複数のブロックのうちの１つのブロックまたは何らかの組合せである。入力フレーム１０１内のそれぞれのブロックは、所定の基準に従ってフレーム・バッファの内側にある基準フレーム内の複数の目標ブロックに対してマッチングさせられる。
【００１４】
フレーム間の信号変化の追跡能力を高めるために、ブロック・サイズを可変とすることができる。一実施形態では、異なるブロック・サイズとブロック形状を使用して、基準フレーム内のブロックのマッチングを行うことができる。大きな対象の移動を追跡するために大きなブロックを使用し、小さな対象の移動を追跡するのに小さなブロックを使用することができる。このブロック・マッチング・オペレーションは、２次元ビデオ符号化の場合の動き推定の例示的形態で実装することができる。最良の目標ブロックが見つかった後、現在ブロックと目標ブロックとの間の差は、ｎ次元係数逆相関変換Ｔ  １０４を通じて変換され、変換された係数は、オプションの量子化オペレーションＱ  １０５を通じて量子化され、その後、動きベクトル情報とともに符号化される。量子化オペレーションＱは、可逆符号化が必要な場合にはスキップしてよい。可逆符号化の場合、符号化プロセスは逆に実行することができる、つまり、元の信号シーケンスを復号化器により１００％の精度で回復できる。人間の目には特定の精度限界があるため、人間の知覚に影響を与えずにある程度の量子化を許容できる。量子化は、量子化誤差が人間の目には目立たないように設定される。
【００１５】
通常のビデオ圧縮システムでは、変換Ｔは、２次元離散コサイン変換（ＤＣＴ）である（参考文献［１］）。場合によっては、ＤＣＴは、最適に近い係数逆相関結果が得られることがある。しかし、計算の複雑さから、ＤＣＴは、通常、小さな固定ブロック（ＭＰＥＧ４規格では８×８、Ｈ．２６４規格では４×４）に有効である。ブロック・サイズを大きくし、計算時間を短縮するために、一実施形態では、離散アダマール変換（ＤＨＴ）が、係数逆相関変換として使用される場合がある。ＤＨＴは、係数の逆相関を求めることに関してＤＣＴほど最適ではない（参考文献［２］）。しかし、ＤＨＴは加算と減算のみでよいので、かなり大きなブロック・サイズも可能であり、ＤＣＴと比べて複雑さを低減できる。例示的な一実施形態のシステム１００では、変換に対しオプションの可変ブロック・サイズが使用可能であり、異なるブロック・サイズに対し異なる変換をオプションで使用するようにできる。例えば、小さなブロックを変換するためにＤＣＴを使用し、大きなブロックを変換するためにＤＨＴを使用することができる。可変ブロック・サイズ変換では、変換に対するブロック・サイズをブロック・マッチング・サイズと同じにして、小さな固定ブロック・サイズの変換よりもよい係数逆相関効果をもたらすことができる。
【００１６】
符号化されたビデオの品質は、特定の量子化パラメータ（ＱＰ）に基づいて変換された係数を離散レベルに量子化する、量子化により制御可能と思われる。ＱＰが大きいほど、レベルの数は少なくなり、したがって、係数を表すためのビットの数は少なくなるが、代わりに低品質になる。ＱＰを慎重に調整することで、レート−歪みのトレードオフの関係のバランスをとることができる。量子化オペレーションの後、変換されたブロックの中の多数の係数が０になる。ビット・レートを低くするために、ジグザグ走査法を通じて、量子化された変換係数を走査するが、これは、低周波成分から高周波成分まで、またはその逆の方向に係数を走査する。このオペレーションにより、Ｎ次元係数は１次元シーケンスに変換される。走査された一次元シーケンスは、その後、例示的形態の先行ゼロの数（ラン）、非ゼロ係数の値（レベル）のペアで情報を符号化する、ランレングス符号化１０６により符号化される。その後、エントロピー符号化オペレーション１０７（例えば、ハフマンまたは算術符号化）を使用してこの（ラン、レベル）ペアを符号化し、さらにレートを下げることができる。
【００１７】
動き推定（ＭＥ）費用関数
例示的な一実施形態では、動き推定（ＭＥ）モジュール１０３は、図１に示されているシステム内の計算を多用するモジュールである。ＭＥブロック・マッチングは、現在ブロックと基準フレーム内の目標ブロックとの間の誤差尺度を最小にすることに基づくことができる。誤差尺度は、エネルギー差尺度に関して指定することができる（例えば、２つのブロックのピクセル間の誤差の二乗和（ＳＳＥ）または絶対誤差の和（ＳＡＥ）、ＳＡＥをＭＥサーチの最も広く使用されている尺度とし、計算時間を短縮する（参考文献［１］）。ＳＡＥまたはＳＳＥなどのエネルギー差尺度を使用しても、必ずしも、最小ビット・レートが得られるわけではない。一実施形態では、エントロピー尺度を、ＭＥサーチを誘導する費用関数として使用し、最良の目標ブロックを見つけることができる。エントロピー尺度では、基準フレームが与えられた場合に、現在ブロックを符号化するために必要な情報の量を測定する。例示的な一実施形態では、ＭＥサーチを誘導して目標ブロックの最小エントロピーを求める方法を使用できる。一実施形態では、ＭＥ費用関数は、以下のように指定できる。
J = Rate_T (T (FPD) | QP) + Rate_MV (MV)
（１）
ただし、Ｒａｔｅ＿＊（）は、Ｒａｔｅ＿Ｔ、Ｒａｔｅ＿ＭＶなどのそれ専用の符号化方法のそれぞれによる信号のビットの数であり、Ｔ（ＦＰＤ）は、フレーム予測差ＦＰＤの変換であり、ＱＰは、量子化パラメータである。
【００１８】
費用関数Ｊは、Ｒａｔｅ＿ＭＶ（）が容易に求められるので、ＭＥサーチプロセスの間にＲａｔｅ＿Ｔ（Ｔ（ＦＰＤ）｜ＱＰ）の近似値を求めることにより評価することができる。一実施形態では、Ｒａｔｅ＿Ｔ（）は、以下のように特定できる。
Rate_T (T (FPD) | QP) = Rate_T_DC (T_DC{FPD) | QP_dc) +
Rate_T_AC (T_AC (FPD) | QP_ac)
〜= Rate_T_DC (DC {FPD) | QP_dc) +
Rate_T_AC (AC_NORM (FPD) | QP_ac)
（２）
ただし、Ｔ＿ＤＣ（ＦＰＤ）はＴ｛ＦＰＤ）のＤＣ成分であり、Ｔ＿ＡＣ（ＦＰＤ）はＴ（ＦＰＤ）のＡＣ行列であり、ＤＣ（ＦＰＤ）はＦＰＤブロックのＤＣ値であり、ＡＣ＿Ｎｏｒｍ（ＦＰＤ）はＦＰＤブロックのＡＣ行列のノルム値
AC_NORM (FPD) = Σij ABS (FPDij - DC (FPD))                            （３）
である。
【００１９】
エントロピー尺度の単純近似値は、以下のように表すことができる。
J = R_DC (DC (FPD) | QP_dc) + R_AC (AC_NORM (FPD) | QP_ac)
+
R_MV (MV)                                                          （４）
ただし、Ｒ＿ＤＣ（）とＲ＿ＭＶ（）は、単純なルックアップ・テーブルで正確に評価することができ、Ｒ＿ＡＣ（）は、事前当てはめテーブル(pre-fitted table)を通じて近似することができる。
【００２０】
Ｒ＿ＡＣとＡＣ＿ＮＯＲＭとの間の関係は、使用される符号化方式に依存し、一実施形態では、図２に示されているように、線形または区分線形モデルで当てはめることができる。一実施形態では、ＭＰＥＧ４規格を使用する場合、Ｒ＿ＡＣ（）に対する以下の近似式を使用することができる。
R_AC (AC_NORM | QP_ac) = AC_NORM / (2*QP_ac)                          （５）
【００２１】
他の実施形態では、以下の線形モデルを使用できる。
R_AC (AC_NORM (FPD) | QP_ac) = K * AC_NORM / QP_ac
（６）
【００２２】
一般に、Ｋは、ＦＰＤの局所的統計量に基づいて変化しうる。Ｒ＿ＡＣとＡＣ＿ＮＯＲＭとの局所的統計関係を見つけるために、適応型方法を使用して、上で指定されたＫ係数を動的に調整することができる。
【００２３】
図３は、適応型レート・ルックアップ・テーブル／評価器構造の一実施形態を示している。ＭＥサーチプロセス実行時に、テーブル入力パラメータの集合３０１をレート・ルックアップ・テーブル／評価器３０２に入力することにより、エントロピー（例えば、ビット・レートで表される）を推定することができる。ブロック毎に、エントロピー符号１０７からの実際の符号化レート３０３と推定レート３０４とを比較し、誤差３０５を適応型レート・ルックアップ・テーブルにフィードバックして、いくつかのテーブル・パラメータを調整し、レート誤差を縮小することができる。一般に、デート・ルックアップ・テーブルは、以下に指定されるように、正確なレート部分と推定レート部分とを含む。
J 〜= R_Accurate + R_Estimation                                      （７）
【００２４】
Ｒ＿Ａｃｃｕｒａｔｅは、いくつかの入力パラメータが与えられた場合に正確に決定できるレートの部分である。特定の一実施形態では、Ｒ＿Ａｃｃｕｒａｔｅは、Ｒ＿ＤＣおよびＲ＿ＭＶを含む、つまり、
R_Accurate = R_DC (DC/QP_dc) + R_MV (MV)                              （８）
【００２５】
Ｒ＿Ｅｓｔｉｍａｔｉｏｎは、ブロックの推定部分であり、一般にルックアップ・テーブルへの入力パラメータの集合に依存する。一実施形態では、Ｒ＿Ｅｓｔｉｍａｔｉｏｎは、いくつかの入力パラメータの一次結合として推定される、つまり、
R_Estimation = Σi Ki * (Xi - Θi)                                      （９）
ただし、｛Ｘi｝は入力パラメータ、｛Θi｝は入力パラメータのしきい値、｛Ｋi｝は重み係数である。ここで、最小平均二乗（ＬＭＳ）アルゴリズム（参考文献［３］）を適用して、重み係数｛Ｋi｝を学習し、しきい値｛Θi｝を事前固定または動的調整可能に保つ。上述の方法の特定の一実施形態では、Ｒ＿ＤＣ（）、Ｒ＿ＭＶ＿Ｘ（）、Ｒ＿ＭＶ＿Ｙ（）（およびＨ．２６４で使用されているように、多重フレーム参照の場合にはＲ＿ＭＶ＿Ｆ（））を正確にルックアップし、線形モデルを使用してＲ＿ＡＣ（）に対するＫ係数を適応型方式で調整することができる。この場合、費用関数は以下のように表すことができる。
J = R_DC (DC | QP_dc) + R_MV(MV) +
K * (AC_NORM - AC_THRESHOLD) / QP_ac                    （１０）
【００２６】
Ｒをエントロピー符号化の後のブロックのレートとし（ＤＣＴとＭＶに対するレートを含む）、Ｊをブロックのレートの推定値とすると、以下の手順でＫを調整することができる。
ΔK = μ * (R - J) * (AC_NORM - AC_THRESHOLD) / QP_ac
（１１）
ただし、ΔＫは、Ｋ係数の調整であり、（Ｒ−Ｊ）は、レート誤差であり、μは、学習係数であり、通常、収束速度と安定性のバランスを取る方法で設定され、ＡＣ＿ＴＨＲＥＳＨＯＬＤは、ＡＣ＿ＲＡＴＥが非ゼロのままである場合に最小のＡＣ＿ＮＯＲＭ値を特徴付けるしきい値である。ＡＣ＿ＴＨＲＥＳＨＯＬＤは、特定の値に事前固定されるか、動的に調整可能とすることができる。一実施形態では、ＡＣ＿ＴＨＲＥＳＨＯＬＤは、以下のプロセス例に従って調整することができる（擬似コード風にＣで記述されている）。
Zero_Point = Th0;
for each block{//ブロック処理ループ
............
If {Actual AC Rate == 0} {
Zero_Point = α * AC_NORM + (1 - α) *
Zero_Point; AC_THRESHOLD = m * Zero_Point;
}
}
ただし、Ｚｅｒｏ＿Ｐｏｉｎｔは、ゼロ・レートのＡＣ＿ＮＯＲＭ位置を追跡する変数であり、Ｚｅｒｏ＿Ｐｏｉｎｔは、プロセスの開始時に値Ｔｈ０に初期化され、αは、平均ウィンドウ制御係数であり、０でない小さな正数である。ｍは、平均Ｚｅｒｏ＿Ｐｏｉｎｔ値に基づくＡＣ＿ＴＨＲＥＳＨＯＬＤの位置を制御する倍率である。
【００２７】
一実施形態では、（１１）のＫを調整する方法により、以下のレート関数の平均二乗誤差を最小にすることができる。
min E {(R-J)2}                                                      （１２）
一般に、複数のパラメータを使用して、（９）で指定されているように、Ｒ＿Ｅｓｔｉｍａｔｉｏｎを決定することができ、この場合、Ｋ係数に対する以下の適応方法を使用できる。
各ｉについて、ΔKi = μ * (R - J) * (Xi - Θi)                        （１３）
【００２８】
一実施形態では、エネルギー差尺度ベースの費用関数に比べて、エントロピー・ベースの費用関数（４）が生成するビット・レートは低く、画質はよい。
【００２９】
ＭＥサーチ法
最低の費用関数値が得られる最適な点を識別するために、大きな領域のサーチが必要になる場合がある。計算費用は、リアルタイム・アプリケーションをサポートするため法外に高くなる可能性がある。例示的一実施形態では、大領域ＭＥサーチを実行して、全サーチと比べて計算時間の１％未満で完全に近いサーチ結果を得る方法を利用することができる。この方法は、現実世界のｎ次元フレーム・シーケンス内のほとんどのフレームの内部に（典型的なビデオ・サンプルのように）、少数の動きベクトル・クラスタしかなく、動きベクトル場は、それぞれのクラスタの内側でブロックからブロックへと連続変化するという観察結果に基づく。この観察結果に基づき、近隣ブロックからの動きベクトルにより、ＭＥサーチの開始点に関する適切な示唆情報が得られる可能性がある。
【００３０】
図４は、高速ＭＥサーチ手順の一実施形態を示している。オペレーション４０１で、点集合の評価を、近隣ブロック（および、場合によっては、図６に示されているように、ＭＶにより参照される点を囲むすぐ隣りの点）の基準変位インデックス（例えば、動きベクトル（ＭＶ））に基づいて行い、詳細サーチ（図４のオペレーション４０２）の開始点を決定する。近隣ブロックは、空間領域および／または時間領域内のネイバーとすることができ、またネイバー・エクスプロイト集合(neighbor exploit set)と呼ぶことができる。図５は、この方法を２次元ビデオ・シーケンスの場合に適用する例を示しており、３つの近隣ブロック、左５０１、上５０２、右上５０３、原点からのＭＶは、現在ブロック５００に対するＭＥサーチ開始点を決定するために使用される。これら４つのブロックは、合わせて、現在ブロックのネイバー・エクスプロイト集合５０４を構成する。最低費用値を生成する点は、詳細ＭＥサーチの開始点として選択される。
【００３１】
近傍エクスプロイト・オペレーション４０１の後、詳細サーチオペレーション４０２が実行される。詳細サーチを使用して、ネイバー・エクスプロイト集合内の点を評価することに基づいて選択できる、詳細サーチ開始点の周りの点の決定的な評価を実行することができる。
【００３２】
図７は、このオペレーションの特定の実施形態を示す。ここで、サーチ開始点７０１の周りの小さな領域７０２内で２レベルサーチ実行される。レベル１では、他のすべての点についてＭＥサーチが実行される。レベル１で最良点７０３が決定された後、レベル０のすぐ隣の点７０４が評価され、最良の点が決定される。これまでに見つかった最良費用関数値をＪ＿Ｂｅｓｔとする。
【００３３】
詳細サーチの後に、図４のオペレーション４０３で大領域階層型サーチが実行される。オペレーション４０３は、大域サーチオペレーションと呼ぶことができる。このオペレーションの目的は、近隣ブロックから正確な初期開始点が得られない場合に、大きなサーチウィンドウ内の点をサンプリングして、詳細サーチ領域の外にある動きベクトルを見つける、図８は、このオペレーションの一実施形態を示す。ここで、ｎレベル階層型サーチが実行される。それぞれのレベルで、上位レベルからの最良点を囲む８つの点が評価される。サーチウィンドウ＝＋−１２８について、以下を示すことができる。
レベル６：（６４，０）、（−６４，０）、（０，６４）、（０，−６４）、（６４，６４）、（６４，−６４）、（−６４，６４）、（−６４，６４）
レベル５：レベル６の最良点から（｛＋−３２，０｝、｛０，＋−３２｝、｛＋−３２，＋−３２｝）
レベル４：レベル５の最良点から（｛＋−１６，０｝、｛０，＋−１６｝、｛＋−１６，＋−１６｝）
レベル３：レベル４の最良点から（｛＋−８，０｝、｛０，＋−８｝、｛＋−８，＋−８｝）
レベル２：レベル３の最良点から（｛＋−４，０｝、｛０，＋−４｝、｛＋−４，＋−４｝）
レベル１：レベル２の最良点から（｛＋−２，０｝、｛０，＋−２｝、｛＋−２，＋−２｝）
レベル０：レベル１の最良点から（｛＋−１，０｝、｛０，＋−１｝、｛＋−１，＋−１｝）
【００３４】
計算時間を短縮するために、レベル０まで下ってすべてをサーチする必要はない場合がある。レベル３（オペレーション・サイズ８）で停止しても、許容可能な結果が得られる可能性がある。このプロセスは、最終レベルに到達するまで続けることができる。そこで、ｎレベル階層型サーチ時に最低費用値となる点を詳細サーチからの最良点と比較し、低い費用値が得られる点を最良ＭＥサーチマッチング点として選択する。
【００３５】
図４に示されているＭＥサーチオペレーションは、一般に使用される高速サーチ法と異なる。図４のオペレーション４０１、４０２、４０３の独自の組合せと順序から完全に近いサーチ結果が得られる。ここで、オペレーション４０１を使用して、近隣ブロックから見つかったＭＶを識別し、詳細サーチ開始点を設定することができる。オペレーション４０２は、４０１で見つかった最良開始点の周りの点をもれなく評価するために使用できる。このオペレーションは、さらに、次のオペレーションに対する費用関数値しきい値も設定できる。オペレーション４０３は、十分に低い費用値が得られる点を詳細サーチで見つけられない場合に、小さな詳細サーチ領域から出て、サーチ空間全体を対象とし、よい点の近傍に到達しようと試みる。すでに評価されているブロックからのサーチ結果は、その近傍内のブロックに移動できる。この中継効果は、よい結果を伝搬することができ、これにより、ブロック間の局所的グループ連携で、セル・オートマトン（参考文献［４］）またはニューラルネットワーク（参考文献［５］）システムで観察されるシステム・ダイナミックスのような大域的最適化を達成できる。
【００３６】
分数格子点サーチ法
レートをさらに下げるために、一実施形態では、上述のＭＥサーチ手順の実行を通じて最良の整数格子点が見つかった後に分数格子点サーチを実行できる。ＭＰＥＧ４とＨ．２６４規格では、複数タップ補間関数を使用して、ｑ−ｐｅｌモードでｈーｐｅｌピクセルを作成する。これだと、ＭＥサーチの内側ループで実行した場合に計算量が増える可能性がある。この問題に対処するために、簡略化された補間を使用して分数点に対しＭＥサーチを実行する方法を使用することができる。ビデオ符号化アプリケーションでは、例示的な一実施形態において、単純フィルタを使用して、ＭＥサーチに対するサブピクセル値を生成することができる。最良のサブピクセル点が見つかった後、動き補正計算に、より複雑な複数タップ・フィルタを使用できる。この結果は、真の複数タップ・フィルタを使用するＭＥサーチに近い場合がある。これらの結果は、適応型動き補正フィルタ選択により高めることができる。図９は、この概念の例示的な一実施形態を示す。ＭＥサーチは、単純な平均フィルタを使用して実行することができ、その後、動き補正（ＭＣ）プロセス内で低いレートを発生するフィルタを選択することができる。図１０は、ＭＥサーチ時に平均フィルタを使用してサブピクセル値を計算する方法を示している。ピクセル値は、整数ピクセル（１００１、１００１ａなど）でしか使用できず、サブピクセル位置は、補間することができる。一実施形態では、双線形補間を使用して、ＭＥサーチ基準フレームのサブピクセル値を計算する。図１０の例は、以下を示す。
半ピクセル：
１００２でのピクセル値＝
（１００１でのピクセル値＋１００１ａでのピクセル値）／２
１／４ピクセル：
１００３でのピクセル値＝
（１００１でのピクセル値＋１００２でのピクセル値）／２
１／８ピクセル：
１００４でのピクセル値＝
（１００１でのピクセル値＋１００３でのピクセル値）／２
この方法は、一実施形態では、１／（２n）ピクセル評価に拡張することができ、さらに拡張してＮ次元信号シーケンスを処理するようにできる。
【００３７】
適応型符号化器制御
入力フレームのブロックの特性は、フレーム内で、またフレームからフレームへと変化する。構造を使用して、符号化器出力からのフィードバック、またオプションにより、符号化プロセス全体にわたって監視されているいくつかのブロック特性値からのフィードバックに基づいて符号化器の品質およびパフォーマンスを改善することができる。例えば、ブロックとフレームにまたがるＭＶ範囲分布は均一でない場合がある。大きなＭＶは、ＭＥサーチサイクルを増やす必要があることを意味するので、不均一なＭＥサーチサイクルは、複数のブロックとフレームにまたがって必要になることがある。一実施形態では、ハードウェア処理サイクルの利用効率を高めるためフレームとブロック間のサイクル共有を可能にする方法が使用される。図１１は、適応型ＭＥ制御構造を示している。ＭＥ処理ユニット（ＭＥＰＵ）１１０１は、ＥＭサーチを実行するエンジンである。ＭＥ制御ユニット（ＭＥＣＵ）１１０２は、ＭＥＰＵを制御するために使用されるユニットである。ＭＥＣＵは、入力として、いくつかのＭＥ監視パラメータ１１０４、符号化器フィードバック・パラメータ１１０６、パラメータ・メモリ１１０３に格納されたいくつかの調整可能なパラメータを受け取り、ＭＥ制御パラメータの集合１１０５を作成し、ＭＥＰＵサイクルの利用効率を高めるようにＭＥＰＵを適応制御し、最適なＭＥサーチ目標を達成する。図３に示されている適応型レート・ルックアップ・テーブルと前に指定された学習方法は、図１１のＭＥ制御関数１１０７の特定の一実施形態として考えることができる。
【００３８】
ＭＥ制御関数の他の例示的な実施形態では、ＭＥサーチ範囲は、過去のフレームからのＭＶ値に基づいて現在のフレームについて調整することができる。過去のＸ，Ｙ（およびＨ．２６４の場合のフレーム）の動きベクトル値を監視し、現在のフレーム上のそれぞれの次元（Ｘ、Ｙ、またはＦ）のＭＥサーチ範囲を拡大または縮小することができる。この適応型ＭＥサーチウィンドウ調整法は、動きベクトルを表すために必要なビット・レートを効果的に減らすことができ、ＭＥサーチに対するサイクル数を減らせる。
【００３９】
図１２は、ＭＥサーチ範囲の一例を示している。
【００４０】
調整方法。与えられた現在のＭＥサーチ範囲Ｄ  １２０１について、以下の基準に従ってＭＥサーチ範囲を調整することができる。
１．範囲が拡大範囲しきい値１０２４よりも大きいＭＶの数（この例では３Ｄ／４に設定）が何らかの事前設定しきい値よりも大きい場合、ＭＥサーチ範囲を２Ｄに拡大する。
２．範囲が縮小範囲しきい値１０２５よりも大きいＭＶの数（この例では３Ｄ／８に設定）が何らかの事前設定しきい値よりも小さい場合、ＭＥサーチ範囲をＤ／２に縮小する。
【００４１】
図１２に示されている方法を使用して、それぞれの独立したＭＥサーチ次元（Ｈ．２６４マルチフレームについてはＸ、Ｙ、および場合によってはＦ）のＭＥサーチ範囲を調整することができる。
【００４２】
上で指定された適応型ＭＥサーチ範囲法に加えて、システム１００は、さらに、処理サイクルを節約するために、特定の条件が満たされた場合に、それぞれのブロックについてのＭＥサーチを早期終了することもできる。早期終了で節約されたサイクルは、利用可能なサイクル・プールに追加できる。ＭＥＣＵは、プール内で利用可能なサイクルに基づき、ＭＥＰＵが使用するサイクルを割り当て、スケジュールする。このアプローチでは、最良のＭＥサーチ結果を得るために利用可能な処理サイクルを完全に使用することができる。
【００４３】
図１３は、ＭＥＰＵサイクル・スケジューラ１３０１の一実施形態を示している。ＭＥＣＵサイクル・スケジューラは、サイクル・プール内で利用可能なサイクルに基づきＭＥＰＵ  １３０２内のモジュールに対するＭＥサーチ制御パラメータを調整する。
【００４４】
早期終了シナリオの３つの例を以下に示す。
１．スキップ状況：基準フレーム内の同じ位置にあるブロックと突き合わせて現在ブロックをチェックする。両方のブロックが類似している場合、ＭＥ処理をスキップできる。この状況で、ビデオ符号化ループ（ＭＥ、ＤＣＴなど）の主要部をスキップし、多数のサイクルを節約する。スキップに対する類似性基準の一実施形態は以下のとおりである。
ａ．現在ブロックと基準フレーム内の同じ位置にあるブロックとの間のブロック差［ＢＤ］を計算する。
ｂ．ＤＣ［ＢＤ］とＡＣ［ＢＤ］を計算する。
ｃ．ＤＣ［ＢＤ］／ＱＰ＿ｄｃ＜ＳＫＩＰ＿ＤＣ＿ＴＨ  ＡＮＤ  ＡＣ［ＢＤ］／ＱＰ＿ａｃ＜ＳＫＩＰ＿ＡＣ＿ＴＨならば、ＳＫＩＰする。ＳＫＩＰ＿ＤＣ＿ＴＨとＳＫＩＰ＿ＡＣ＿ＴＨは、ＳＫＩＰ条件を決定するための何らかのしきい値である。ＳＫＩＰ＿ＤＣ＿ＴＨとＳＫＩＰ＿ＡＣ＿ＴＨは、符号化器からの特定のフィードバックに応じて固定または動的に調整可能とすることができる。例えば、一実施形態では、ＳＫＩＰ＿ＡＣ＿ＴＨは、上で指定された動的に調整されたＡＣ＿ＴＨＲＥＳＨＯＬＤ値に設定される。
【００４５】
２．適切なマッチ終了：特定のブロックに対するＭＥサーチの任意の時点において、費用関数が特定のしきい値Ｊ＿Ｅａｒｌｙ＿Ｔｅｒｍｉｎａｔｅ＿ＴＨよりも低い場合、ＭＥサーチを終了させることができる。これは、非常によいブロック・マッチが見つかった場合に生じ、その結果、費用関数の値は低い。Ｊ＿Ｅａｒｌｙ＿Ｔｅｒｍｉｎａｔｅ＿ＴＨは、符号化器の特定の特性値に基づき事前固定値または動的に調整可能とすることができる。例えば、本発明の一実施形態では、
J_Early_Terminate_TH = f * J_Best_Mean
ただし、ｆは、１よりも小さい正数であり、Ｊ＿Ｅａｒｌｙ＿Ｔｅｒｎｉｍａｔｅ＿ＴＨを制御するために使用され、Ｊ＿Ｂｅｓｔ＿Ｍｅａｎは、特定の移動サンプリング・ウィンドウを通るＪ＿Ｂｅｓｔの移動平均値である。本発明の一実施形態では、Ｊ＿Ｂｅｓｔ＿Ｍｅａｎは、以下の公式により簡単に計算することができる。
J_Best_Mean = α*J_Best + (1 - α) * J_Best_Mean
ただし、αは、移動平均ウィンドウの幅を制御するために使用される１よりも小さい数である。
【００４６】
３．ＭＥサーチは終了をあきらめる：これは、さらにＭＥサーチを行っても、これまでに見つかった最良の費用値Ｊ＿Ｂｅｓｔよりもよい結果が得られる可能性がない場合に生じる。これが生じた場合、その特定のブロックについてさらに多くの点をサーチするのにサイクルを無駄にする必要はない。これは、将来のサーチ点に対する何らかの下限推定により評価できる。将来のサーチ点に対する下限がこれまでに見つかった最良費用よりも大きい場合、何も犠牲にすることなくサーチを終了できる。この考え方は、ゲーム・ツリーサーチで頻繁に使用されるＡ*サーチアルゴリズム（参考文献［６］）をＭＥサーチに適用することであるとみなせる。以下の実施形態は、この考え方から派生したいくつかの例である。
【００４７】
ａ．１ＭＶサーチを終了した後、４ＭＶサーチに先立って、１ＭＶから見つかった最良の費用値が動きベクトル・レートよりも小さい場合、つまり以下が成り立つ場合に４ＭＶサーチを終了させる。
J_Best (1MV) <= R_MV (4MV)
これは、以下の理由による。
R_MV (4MV) < J (4MV) =
R_DC (4MV) + R_AC (4MV) + R_MV (4MV)
【００４８】
ｂ．ＭＰＥＧ４では、ＭＥ予測点からの何らかの螺旋パターンの後にＭＥサーチを実行した場合、Ｒ＿ＭＶ（ＭＶ）は、動きベクトルに対するレートの昇順でサーチ開始点からソートされる。この条件の下で、動きベクトルのレートがこれまでに見つかった最良の費用よりも大きい場合にＭＥサーチプロセスを終了することができる。この考え方は、図１４に例示されている。ＭＥサーチは、何らかの予測点１４０１から始まる。図１４に示されているように、ＭＥサーチは何らかの渦巻波動膨張パターンに従う。ＭＰＥＧ４では、ＭＶは、Ｒ＿ＭＶ＝Ｒ＿ＭＶ＿Ｘ（Ｄｅｌｔａ＿Ｘ）＋Ｒ＿ＭＶ＿Ｙ（Ｄｅｌｔａ＿Ｙ）のように予測点から差として符号化される。Ｒ＿ＭＶ＿Ｘ（）とＲ＿ＭＶ＿Ｙ（）は、同じＶＬＣテーブルＲ＿ＭＶ（Ｄｅｌｔａ）に従い、両方とも、Ｄｅｌｔａとともに単調増加する。図１４では、ＭＥサーチ波動包丁が波面１４０２に達したときに、Ｒ＿ＭＶ（Ｄ）＞＝Ｊ＿Ｂｅｓｔ（これまでに見つかった最良の費用値）であれば、サーチを終了できるが、それは、すべての将来のＲ＿ＭＶ（）がＲ＿ＭＶ（Ｄ）よりも大きいからである。
【００４９】
他の実施形態では、Ａ*サーチ法を使用して、サーチプロセスで評価される点の個数を刈り取ることができる。一般に、所定の点ｐの費用関数Ｊ（ｐ）が特定の限界値Ｂ（ｐ）よりも大きく、これまでに見つかった最良の費用関数値であるＢ（ｐ）＞Ｊ＿Ｂｅｓｔであれば、点ｐは、品質を犠牲にすることなくスキップすることができる。Ｂ（ｐ）はある程度可変であり点Ｐの評価プロセスを通じて高くなる可能性があるが、点ｐに関係する情報がさらに処理されることに注意されたい。与えられた時点において、Ｂ（ｐ）＞Ｊ＿Ｂｅｓｔが満たされる場合、点ｐに対する計算を停止することができる。
【００５０】
ネイバー保存走査法(Neighbor Preserving Scanning Method)
過去のブロック処理結果からの最良の適応学習を達成するために、空間的、時間的距離の順序関係を保存するために、特定のシーケンスに従ってブロックが走査され処理される場合に学習情報がさらに役立つ可能性がある。図２８は、２次元ビデオ・シーケンス処理におけるネイバー保存走査法を使用する一例を示している。ここで、ブロック２８０３は、図に示されている順序に従って走査され処理される（２８０４）。この方法は、以下のように記述することができる。
【００５１】
（ａ）ｎ個のブロック（ｎは正の整数）のグループの１行を走査し、前の行が終わったところからブロックのグループの次の行を開始する。
（ｂ）１つのフレームの走査を終了した後、前のフレームが終わったところから次のフレーム走査を開始し、前のフレームと逆の順序で行を走査する。フレーム毎に（ａ）および（ｂ）を繰り返す。
【００５２】
示されている走査プロセスは、走査されたシーケンスのネイバー関係を保存することができる、つまり走査の後の１次元シーケンス内の近隣ブロックがさらに元のｎ次元シーケンス内の空間的または時間的ネイバーでもある。一般に、近傍保存走査は、以下の条件のマッチングを最大化する。
（ａ）走査後の１次元シーケンス内の近隣ブロックは、さらに、元のＮ次元シーケンス内のネイバーでもある。
（ｂ）２つのブロックは、同じフレーム内で隣接するブックであるか（空間的ネイバー）、または隣接するフレーム内の同じ位置に常駐する（時間的ネイバー）場合にネイバーと考えられる。
走査方法例は、階層方式で使用することができる。
【００５３】
一実施形態では、それぞれのｎ次元ブロックは、それ自体の中の同じ方法で走査することもできる。一般に、この走査方法に対するマルチレベル階層を許容できる。ネイバー保存走査法の例は、さらに、入力信号が信号処理順序とマッチするように準備する電荷結合素子（ＣＣＤ）センサとＣＭＯＳセンサなどの周辺イメージ走査デバイスに適用することもできる。この方法で、入力感知デバイスからフレーム・バッファを取り除くことが可能であると思われる。図３０は、ＣＭＯＳまたはＣＣＤイメージ走査に対する我々の走査方法の一実施形態を示している。ここで、それぞれのピクセル３００１で感知された光信号は、近傍保存順序３００２で走査される。
【００５４】
Ｎ次元メモリ記憶装置
ＭＥアルゴリズムの実装には、通常、基準バッファ・メモリにアクセスする際にボトルネックがある。ビデオ・ストリームは、通常、ビデオ・アルゴリズムの２次元または３次元オブジェクトで編成され、１次元線形アドレス指定ベースのメモリを使用しても、効率的な結果は得られない。この問題に取り組むために、特別なメモリ構造である、従来の１次元アドレス指定ベースのメモリに基づくｎ次元メモリ記憶装置が開発され、それにより、ＭＥアルゴリズム・フレーム・バッファのアクセスに対するメモリ・アクセス効率とアクセス・パターンの柔軟性が最適化される。しかし、この構造を使用することは、ＭＥアルゴリズムに限定されない。ｎ次元データ処理では、このメカニズムを使用して、柔軟性と効率の利点を活かすことができる。
【００５５】
図１５は、このメモリ・アクセス問題を例示している。２次元の場合は、ＭＥアルゴリズムのように、この図の中で例として使用されている。ビデオ・アプリケーションでは、ビデオ・データは、通常、ＴＶ画面上の任意のインスタンスのところに画像を示す２次元フレームで配列される。（図１５の１５０１）フレームの内側では、データは、通常、より小さな２次元ブロックで編成される。これらのブロックは、通常１６×１６または８×８のサイズである。これらのブロックは、それぞれのフレーム上に固定格子パターンで形成される（図１５の１５０２）。
【００５６】
ビデオ・アルゴリズムでは、これらのブロックは、効率的な方法でアクセスされなければならない、例えば、１単一サイクルまたは１単一バーストでブロック内のすべてのピクセルを取得しなければならない。ビデオ・アルゴリズムでは、２次元ブロックは、図１５で１５０３と示されているように、固定された格子に揃えられないランダム位置でアクセスされなければならない。
【００５７】
電子メモリ（例えば、ＳＤＲＡＭ、ＳＲＡＭなど）は、１次元ベースのアドレス指定メカニズムで編成され、これにより、せいぜい線形的な方法でピクセルの同時アクセス／バースト、つまり１行のピクセルの同時アクセス／バーストが可能になる。メモリ内のピクセル・データ割り当ての何らかの事前配列により、フレーム内の固定された格子パターンに揃えたブロックのバーストを実行することが可能である。しかし、ランダムに配置されたブロックの１つのサイクル／バーストでのアクセスを許可することはできない。
【００５８】
メモリ構造ソリューションの一実施形態のブロック図が図１６に示されている。このブロック図では、ｎ次元オブジェクト・メモリはＬ個のスライスに分けられる。メモリ・スライスのそれぞれは、従来の１次元メモリ（例えば、ＳＲＡＭ内の）である。それぞれのスライスのデータ幅は、オブジェクトの最小要素サイズである。ビデオでは、このサイズは（例えば、８ビットの）１ピクセルである。他のアプリケーションでは、メモリ・スライスのバス幅は、任意サイズとすることができる。Ｌスライス編成の目標は、１サイクルで（データ・ブロックがＬ個の要素を持つ場合）、またはそれぞれＬ個の要素を含む複数アクセス・サイクルからなるバーストでｎ次元ブロックへのアクセスを可能にすることである。これを達成するうえで、問題は、ｎ次元ブロック・データをＬ個のスライスにどのように割り当てるかである。そこで、それぞれのスライスに割り当てられるデータに対し以下の２つの基準を用意する。
【００５９】
（１）同じブロックに属すデータ要素は、コンフリクトなしで同時にブロック内のＬ個のデータ要素にアクセスできるようにＬスライスに均等に割り当てなければならない。
（２）スライスの数Ｌがブロック内のデータ要素の個数よりも小さい場合、つまり、Ｂをブロック内の要素の個数としてＢ＝Ｌ＊Ｍであれば、同じスライス内に１ブロック分の複数の要素（Ｍ）が存在している。Ｍ個のデータ要素をスライス上の連続する範囲内に入れて、ブロック・アクセスの単一バーストを可能にしなければならない。
【００６０】
一方法例に基づいてデータを割り当てる一例が図１７に示されている。この図には、Ｌ＝１２の例による３×４の２次元ブロックが示されている。このようにして、フレーム内の３×４ブロックは、１単一サイクルでアクセスできる。Ｌ＝６とＭ＝２の他の例は、図１８に示されている。この場合、３×４ブロックは、同じスライス・メモリＩＤを持つ２つの要素からなる。つまり、３×４ブロックは、２クロック・サイクルでアクセスできる。さらに、図１７、図１８に示されているように、１行内のアクセスＬピクセルも、１クロック・サイクルでアクセスできるが、それは、行ピクセルの集合内にスライス・メモリの重複がないからである。
【００６１】
この方法例によるデータ割り当てが完了したら、図１６に示されているように、割り当てパターンを反映するようにアドレス変換とデータ多重化制御を設計することができる。
【００６２】
例示的な一実施形態では、次元の数ｎ、それぞれの次元のブロック・サイズの数、メモリ・スライスの数Ｌは、すべて、特定のアプリケーションで必要とする場合に当てはまるようにパラメータ化することができる。
【００６３】
マルチレベルＮ次元メモリ記憶装置
ビデオＭＥアルゴリズムは、非リアルタイムのＣＰＵシステムからそれ自身を区別する要求条件の以下の一意的な集合を持つ。
１．大容量
２．広帯域幅
３．２次元データ要素のランダム・アクセス
４．安価
【００６４】
これらの要求条件のうち、第２と第３の要求条件は、すでに説明されているメモリ・メカニズムにより解決できる。しかし、大容量や安価については、ｎ次元記憶装置メカニズムを単独で使用している場合には解決できない。それに加えて、スライス数Ｌが大きいと、アクセス帯域幅は広くなるが、それと同時に費用が上昇する。
【００６５】
従来のマルチレベル・キャッシュ・メモリ階層は、Ｎ次元メモリに適用することができる。ｎ次元記憶装置の高速性と費用により、これは処理エンジンに最も近い一番内側レベルのメモリに最も好適である。
【００６６】
ｎ次元記憶装置の例示的な２レベル・メモリ実施形態は、図１９に示されている。このメカニズムでは、データが最初に第２レベル・メモリ（例えば、ＳＤＲＡＭ）から読み込まれ、オンチップｎ次元記憶装置に格納されるように、データの編成が行われる。データがｎ次元記憶装置内に入ると、データは、柔軟にアクセスでき、何回も再利用できる。このようにして、外部ＳＤＲＡＭ帯域幅およびアクセス・パターンの柔軟性に対する要求は低減される。
【００６７】
ＳＤＲＡＭが２レベルｎ次元記憶装置内の第２レベルのメモリとして使用される場合、ｎ次元データ構造をサポートし、ＳＤＲＡＭアーキテクチャの制限を克服するために、ＳＤＲＡＭの使用に関する詳細が必要である。ＳＤＲＡＭ設計のアーキテクチャのせいで、ＳＤＲＡＭアクセスにはオーバーヘッドがかかわってくる。通常、ＳＤＲＡＭへのアクセスは、以下のオペレーションを伴い、それぞれ、バースト間にオーバーヘッドを引き起こす様々な遅延を含む。
（１）すでにアクセスされているメモリ・バンクのプリチャージ
（２）ＲＡＳコマンドの送信
（３）ＣＡＳコマンドの送信
【００６８】
ピクセル・データの適切な配列なしでは、バースト・アクセス間のオーバーヘッドは非常に高いものになりうる。その一方で、ＳＤＲＡＭは、コマンド発行とプリチャージを独立に可能にする複数バンクのメモリ編成を実現している。フレームのピクセル・データの編成が適切であれば、ＳＤＲＡＭのアクセス・オーバーヘッドは、最小限に抑えられる。このために、図２０のように、ＳＤＲＡＭ内のフレーム・バッファ・データ割り当てパターンを固定した。フレーム・バッファは、最初に、固定サイズ（１６×１６、８×８、または他の固定サイズ）のブロックに予め分割し、それぞれのブロックがＳＤＲＡＭメモリの１つのバンクに割り当てられるようにする。図２０の例は、８×８ブロックを示している。ブロックは、図１５の１５０２で説明されているように固定格子パターンに揃えられる。これらのブロックは、図２０に示されているように、順次バンクＩＤに順次配列される。１つのブロック内で、ピクセル・データは、図２１に示されている順序で配列される。
【００６９】
これにより、以下に示されているＳＤＲＡＭへのアクセス・パターンは、オーバーヘッド・ゼロで実行される。
（１）ブロック・バースト−ブロック全体が１つのバンク内で連続的に配列される。したがって、ブロック全体のアクセスは、１単一バーストで実行される。
（２）順次ブロック・バースト−ラスター走査順序の複数ブロックのバースト・アクセス（図２０に示されているように）は、複数のバーストで実行される。それぞれのブロックは、異なるバンクに割り当てられるため、これらのバースト・コマンドは、オーバーヘッドが生じないようにパイプラインで送られる。
（３）行アクセス−同じライン内の１行分のピクセルに複数のバーストでアクセスすることができる。ここでもまた、複数のバーストは、異なるバンクに属し、したがって、バースト間のパイプライン化が可能である。オーバーヘッドがゼロかどうかは、１つのブロック内のバーストがどれだけ長いかに依存し、またＳＤＲＡＭのＣＡＳおよびＲＡＳ遅延に依存する。
【００７０】
外部ＳＤＲＡＭへのアクセスは非常に限られたアクセス・パターンを持ちうるとしても、ＳＤＲＡＭを第２またはそれ以上のレベルのメモリとして使用するマルチレベルＮ次元記憶装置では、ＳＤＲＡＭからＮ次元記憶装置にデータが読み込まれると、データへの非常に柔軟なアクセスを行える。
【００７１】
ＭＥサーチ用の並列螺旋パターン（ＰＳＰ）アレイ・プロセッサ
一実施形態では、並列螺旋型サーチパターンとアレイ・プロセッサを使用するＭＥアルゴリズムで必要な参照帯域幅を低減するアーキテクチャが提案されている。このアプローチでは、図２２に例示されているように、複数のプロセッサが基準バッファからの同じデータ出力を共有できる可能性がある。
【００７２】
一実施形態では、ＭＥアルゴリズムにおける固定サーチ／アクセス・パターンの性質を利用できる。２レベル・メモリ出力を共有する方法では、複数のサーチ点が並列実行されるようにＭＥアルゴリズムでサーチパターンを事前に指定する。従来、ＭＥアルゴリズムは、様々なアルゴリズムを使用している。一実装では、最終的に最良のサーチ点を見つけるまで事前指定されたサーチトレースを辿る螺旋型サーチを使用する。図２３は、４ピクセルのオペレーション・サイズの螺旋型サーチを示している。固定アクセス・メモリのアクセス・パターンによるサーチの並列実行を可能にするため、本発明では、「並列螺旋型サーチ」であるサーチパターンを使用する。
【００７３】
図２４は、Ｐサーチ点が並列である並列螺旋パターンの一例を示しており、この例ではＰ＝９である。Ｐ個のサーチ点が固定、例えば、３×３格子パターンで並列処理される場合、入力データをさらに分析して、共有を高め、メモリ帯域幅使用度を減らすようにできる。
【００７４】
この概念の例は、図２５に示されている。図内のサーチ点のそれぞれは、費用関数が実行される位置を指定する。この場合、費用関数は、１６×１６のサイズのブロックに基づくと仮定できる。サーチ点１、２、３は、それぞれの行内の２４ピクセル入力のうちから１６個のピクセルを共有する。この方法で、第１の行は、基準バッファから読み込まれると、３つすべてのサーチ点１、２、３により共有される。行５から始めると、データは、サーチ点１、２、３、４、５、６により共有される。第９の行から開始すると、９つすべてのサーチ点により共有される。９つのサーチ点は固定された３×３格子で配列されるため、基準バッファに対するアクセス・パターンは固定され、バッファから読み出されるときにデータを再利用するように容易に設計できる。
【００７５】
並列螺旋型サーチパターンに基づくこのアレイ処理アーキテクチャでは、サーチパターン・オペレーション・サイズ、ｘ、ｙ次元によるアレイ・サイズは、すべて、任意の値に設定できるパラメータであることに注意されたい。
【００７６】
ＭＥサーチ用のＮ次元メモリを備えるＰＳＰアレイ・プロセッサ
代替えとして、ｎ次元メモリが並列螺旋型アレイ・プロセッサとともに使用される場合、ＰＳＰアレイ・プロセッサは、さらに、データの列、またはデータのブロック（例えば、４×４）に入ることができる。この組合せの実施形態は、図２６に示されている。
【００７７】
並列螺旋型アレイ・プロセッサをｎ次元記憶装置とともに使用すると、パフォーマンスが向上する。ｎ次元記憶装置がない場合、アレイ・プロセッサにより、データの行または列のみが読み込まれ、共有される。基準バッファは、一度に１６ピクセルの入力データを与える１６ピクセルのデータ幅を持つと仮定しよう。図２５の場合を考察する。Ｎ次元記憶装置が利用できない場合、１６ピクセルの行または列のみが一度に読み込まれる。それぞれ２４ピクセルからなる全部で２４の行にアクセスするには、９つのプロセッサにより、４８サイクルが必要であり、共有される。このようにして、１プロセッサ当たりのサイクル数は４８／９＝５．３３となる。
【００７８】
Ｎ次元記憶装置が用意され、図２６に示されているように１サイクルで４×４ブロックのアクセスが可能である場合、全部で３６サイクルが必要である。この場合１プロセッサ当たりのサイクル数は、３６／９＝４である。ＰＳＰとアレイ・プロセッサがなければ、サイクル数は１プロセッサ当たり１６サイクルであることに注意されたい。パフォーマンスは、ＰＳＰプロセッサ単独では１６から５．３３に、Ｎ次元記憶装置付きのＰＳＰでは４に改善する。まとめると、アレイ・プロセッサ・アーキテクチャは、単独で使用できるか、またはここで説明されているようにＮ次元メモリとともに使用することができるということである。２レベル・メモリを備えるアレイ・プロセッサでの並列螺旋パターンの使用により、従来の単一螺旋点サーチパターンと比較してＭＥアルゴリズムのさらに効率的な実装がさらに多くの点のサーチを可能にし、したがって、より高い圧縮パフォーマンスが得られる。
【００７９】
さらに、本明細書のいくつかの実施形態は、物理的回路（例えば、半導体チップ上の）内だけでなく、機械可読媒体内にも実現することができることに注意されたい。例えば、上述の回路と設計は、半導体デバイスを設計するために使用される設計ツールに関連する機械可読媒体に格納する、および／または埋め込むことができる。例えば、ＶＨＳＩＣ  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ（ＶＨＤＬ）言語、Ｖｅｒｉｌｏｇ言語、またはＳＰＩＣＥ言語でフォーマットされたネットリストがある。ネットリストの例としては、ビヘイビア・レベル・ネットリスト、レジスタ転送レベル（ＲＴＬ）ネットリスト、ゲート・レベル・ネットリスト、トランジスタ・レベル・ネットリストがある。機械可読媒体にも、ＧＤＳ−ＩＩファイルなどのレイアウト情報を含む媒体がある。さらに、ネットリスト・ファイルまたは半導体チップ設計用のその他の機械可読媒体は、上述の教示の方法を実行するためにシミュレーション環境で使用することができる。
【００８０】
そのため、本発明のいくつかの実施形態は、何らかの形態の処理コア（コンピュータのＣＰＵなど）上で実行される、または機械可読媒体上にまたは機械可読媒体内に他の何らかの手段により実装または実現されるソフトウェア・プログラムとして、またはサポートするために、使用することができることも理解されるであろう。機械可読媒体は、機械（例えば、コンピュータ）可読な形態で情報を格納または伝送するためのメカニズムを備える。例えば、機械可読媒体は、読み取り専用メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュ・メモリ・デバイス、電気、光、音響、またはその他の形態の伝搬される信号（例えば、搬送波、赤外線信号、デジタル信号など）などを含む。
【００８１】
そこで、適応型多次元信号シーケンス符号化方法、復号化方法、システムが説明された。本発明は、特定の例示的な実施形態を参照しつつ説明されているが、本発明のより広い精神および範囲を逸脱することなく、これらの実施形態に様々な修正および変更を加えられることは明白であろう。したがって、明細書と図面は、制限ではなく、例示を目的としているものとみなすべきである。
【００８２】
参照文献
[1] Iaiain E.G. Richardson, video Codec Design, John Willey & Sons, Ltd., 2002, 1983
[2] Douglas F. Elliott and K. Ramamohan Rao, Fast Transforms: Algorithms, Analyses, Applications, Academic Press, 1983
[3] Bernard Widrow and Samuel D. Stearns, Adaptive Signal Processing, Prentice-Hall, Inc., 1985
[4] John von Neumann, "Theory of Self-Reproducing Automata", edited and completed by Arthur W. Burks, University of Illinois Press, Urbana and London, 1966
[5] Tsu-Chang Lee, Structure Level Adaptation for Artificial Neural Networks, Kluwer Academic Publishers, 1991
[6] Nils J. Nilsson, Principles of Artificial Intelligence, Morgan Kaufmann, 1986
【図面の簡単な説明】
【００８３】
【図１】本発明の一実施形態による適応型多次元信号シーケンス符号化システムを示す図である。
【図２】本発明の一実施形態による、線形モデルおよび区分線形モデルを使用してＡＣ＿ＮＯＲＭによりＲ＿ＡＣを当てはめることを示す図である。
【図３】本発明の一実施形態による、適応型レート・ルックアップ・テーブル／評価器の構造を示す図である。
【図４】本発明の一実施形態による高速ＭＥサーチ手順を示す図である。
【図５】本発明の一実施形態による、２次元ビデオ・シーケンスの場合のネイバー・エクスプロイト集合の一例を示す図である。
【図６】本発明の一実施形態による、詳細サーチ開始点を決定するために評価される点を示す図である。
【図７】本発明の一実施形態による、詳細サーチの一実施形態を示す図である。
【図８】本発明の一実施形態による、大域サーチの一実施形態を示す図である。
【図９】本発明の一実施形態による、分数格子点でのブロック・マッチングによる符号化の一実施形態を示す図である。
【図１０】本発明の一実施形態による、ＭＥサーチ時に平均フィルタを使用してサブピクセル値を計算することを示す図である。
【図１１】本発明の一実施形態による、適応型ＭＥ制御構造を示す図である。
【図１２】本発明の一実施形態による、調整可能ＭＥサーチ範囲の例を示す図である。
【図１３】本発明の一実施形態による、ＭＥＰＵサイクル・スケジューラの一実施形態を示す図である。
【図１４】本発明の一実施形態による、螺旋型サーチの場合の早期終了を示す図である。
【図１５】フレーム内のブロックに対する固定格子を持つ２次元フレームの例を示す図であり、ブロック・アクセス・パターンは任意の場所を必要とする。
【図１６】Ｎ次元メモリ構造の一実施形態を示す図である。
【図１７】１サイクルで任意の場所の２次元ブロックにアクセスできるようにする２次元メモリ内のスライスＩＤ割り当てを示す図である。
【図１８】２サイクルのバーストで任意の場所の２次元ブロックにアクセスできるようにする２次元メモリ内のスライスＩＤ割り当てを示す図である。
【図１９】ＳＤＲＡＭを第２レベル外部メモリ記憶装置として使用するマルチレベルＮ次元メモリの一実施形態を示す図である。
【図２０】２次元ブロック・アクセスのパフォーマンスを最適化するため第２レベル外部ＳＤＲＡＭ内の２次元フレーム・データ割り当てを示す図である。
【図２１】線形第２レベル外部メモリ内の２次元ブロックのデータ割り当てシーケンスを示す図である。
【図２２】ＭＥサーチに対するＰＳＰアレイ・プロセッサの一実施形態を示す図である。
【図２３】ＭＥサーチアルゴリズムで通常使用される単一プロセッサ螺旋型サーチパターンを示す図である。
【図２４】３×３のアレイを持つ並列螺旋型サーチパターンの一例を示す図である。
【図２５】使用される従来の線形メモリを仮定した３×３アレイ・プロセッサの間のデータ・アクセス共有を示す図である。
【図２６】使用される２次元メモリを仮定した３×３アレイ・プロセッサの間のデータ・アクセス共有を示す図である。
【図２７】本発明の一実施形態による、ｎ次元信号シーケンスのいくつかの例を示す図である。
【図２８】本発明の一実施形態による、近隣保存のための走査方法を示す図である。
【図２９】本発明の一実施形態による、２次元フレーム内の１つのブロックを示す図である。
【図３０】本発明の一実施形態による、ＣＣＤまたはＣＭＯＳイメージ・センサに適用される近隣保存走査を示す図である。
【図１】
2007525078.tif 000003
【図２】
2007525078.tif 000004
【図３】
2007525078.tif 000005
【図４】
2007525078.tif 000006
【図５】
2007525078.tif 000007
【図６】
2007525078.tif 000008
【図７】
2007525078.tif 000009
【図８】
2007525078.tif 000010
【図９】
2007525078.tif 000011
【図１０】
2007525078.tif 000012
【図１１】
2007525078.tif 000013
【図１２】
2007525078.tif 000014
【図１３】
2007525078.tif 000015
【図１４】
2007525078.tif 000016
【図１５】
2007525078.tif 000017
【図１６】
2007525078.tif 000018
【図１７】
2007525078.tif 000019
【図１８】
2007525078.tif 000020
【図１９】
2007525078.tif 000021
【図２０】
2007525078.tif 000022
【図２１】
2007525078.tif 000023
【図２２】
2007525078.tif 000024
【図２３】
2007525078.tif 000025
【図２４】
2007525078.tif 000026
【図２５】
2007525078.tif 000027
【図２６】
2007525078.tif 000028
【図２７】
2007525078.tif 000029
【図２８】
2007525078.tif 000030
【図２９】
2007525078.tif 000031
【図３０】
2007525078.tif 000032
【国際調査報告】
2007525078.tif 000033
2007525078.tif 000034
2007525078.tif 000035
2007525078.tif 000036
2007525078.tif 000037
2007525078.tif 000038