(57)【要約】      （修正有）【課題】隣接したタイルの間でソースフレームアクセスをオーバーラッピングせずに、イメージの回転を行うことができるピクセル補間方法、デジタルイメージ安定化装置を提供する。【解決手段】回転動き成分を含む主要変換をソースフレームに適用し、ラスター順序によって目標フレームの全体行のそれぞれのピクセルのイメージデータを補間して出力する。第１段階は、主要変換係数に基づいて、目標フレームの全体の行のピクセルに対応するソースフレームデータの対角線方向に指向されたメタ行を識別する。第２段階は、マルチラインバッファのようなメモリバッファの１つの行内にソースフレームデータのそれぞれのメタ行を保存することによって、目標フレームの全体の行のピクセルに対応するメタ行のソースフレームデータを水平化する。ムービング・ウィンドウ補間段階は、主要変換係数に基づいて順次に補間し、目標フレームの全体の行のイメージデータを出力する。【選択図】図２
2012165363.tif 000002
【特許請求の範囲】
【請求項１】
ソースフレームでピクセルの各メタ行（ｍｅｔａ−ｒｏｗ）の開始を示し、目標フレームの行でピクセルに対応する、水平位置データのセットを生成するよう構成される第１アフィン変換エンジン（ａｆｆｉｎｅ  ｔｒａｎｓｆｏｒｍ  ｅｎｇｉｎｅ）と、
前記目標フレームからピクセルの各メタ行を読み出し、水平化されたピクセルのそれぞれメタ行を複数のラインバッファのうちの何れか１つに記録するよう前記水平位置データに基づいて制御するメモリアクセスコントローラと、
前記複数のラインバッファに保存された前記ソースフレームのピクセルの複数の水平化されたメタ行からラスター（ｒａｓｔｅｒ）順序で前記目標フレームのピクセルの各行で各ピクセルを補間して出力する第２アフィン変換エンジンとを有することを特徴とするイメージ処理回路。
【請求項２】
前記目標フレームは、アフィン変換係数（ａｆｆｉｎｅ  ｔｒａｎｓｆｏｒｍ  ｃｏｅｆｆｉｃｉｅｎｔｓ）の受信されたセットに従って、前記目標フレームのピクセルの前記補間の間、回転することを特徴とする請求項１に記載のイメージ処理回路。
【請求項３】
前記第１アフィン変換エンジンは、アフィン変換係数の受信されたセットと、前記ソースフレームと関連した前記目標フレームの位置及びディメンジョン（ｄｉｍｅｎｓｉｏｎ）情報とに基づいて、前記ソースフレームでピクセルの各メタ行の前記開始を示す水平位置データの前記セットを生成することを特徴とする請求項１に記載のイメージ処理回路。
【請求項４】
前記複数のラインバッファは、少なくとも５本のラインバッファを含むことを特徴とする請求項１に記載のイメージ処理回路。
【請求項５】
前記複数のラインバッファは、少なくとも７本のラインバッファを含むことを特徴とする請求項４に記載のイメージ処理回路。
【請求項６】
前記複数のラインバッファは、少なくとも１１本のラインバッファを含むことを特徴とする請求項５に記載のイメージ処理回路。
【請求項７】
前記第２アフィン変換エンジンは、前記１１本のラインバッファのそれぞれを含む４ｘ８ピクセル補間ウィンドウ（ｐｉｘｅｌ  ｉｎｔｅｒｐｏｌａｔｉｏｎ  ｗｉｎｄｏｗ）の利用して、ラスター順序で前記目標フレームのピクセルの各行に対し各ピクセルを補間して出力することを特徴とする請求項６に記載のイメージ処理回路。
【請求項８】
回転を含むアフィン変換座標（ａｆｆｉｎｅ  ｔｒａｎｓｆｏｒｍ  ｃｏｏｒｄｉｎａｔｅｓ）に従ってソースフレームの複数の行にピクセルから目標フレームを補間する方法において、
前記アフィン変換座標に基づいて、水平化された前記目標フレームの第１行のピクセルに対応するすべてのソースフレームデータを複数のラインバッファにコピーする段階と、
前記複数のラインバッファに保存された前記ソースフレームデータから前記目標フレームの前記第１行の各ピクセルを補間し、ラスター（ｒａｓｔｅｒ）順序で前記目標フレームの前記第１行の前記補間されたピクセルを出力する段階とを有することを特徴とする目標フレーム補間方法。
【請求項９】
前記複数のラインバッファは、少なくとも５本のラインバッファを含むことを特徴とする請求項８に記載の目標フレーム補間方法。
【請求項１０】
前記複数のラインバッファは、少なくとも１１本のラインバッファを含むことを特徴とする請求項９に記載の目標フレーム補間方法。
【請求項１１】
前記アフィン変換座標に基づいて、水平化された前記目標フレームの第２行のピクセルに対応するすべての前記ソースフレームデータを前記複数のラインバッファにコピーする段階と、
前記複数のラインバッファに保存された前記ソースフレームのデータから前記目標フレームの前記第２行の各ピクセルを補間し、ラスター順序で前記目標フレームの前記第２行の前記補間されたピクセルを出力する段階とをさらに有することを特徴とする請求項８に記載の目標フレーム補間方法。
【請求項１２】
前記目標フレームの前記第１行及び第２行のピクセルに対応する前記すべてのソースフレームデータをコピーする段階は、
前記複数のラインバッファに保存された前記ソースフレームデータから前記目標フレームの前記第１行及び第２行の各ピクセルを補間する段階が開始する前に完了していることを特徴とする請求項１１に記載の目標フレーム補間方法。
【請求項１３】
前記アフィン変換座標に基づいて、水平化された前記目標フレームの第３及び第４行のピクセルに対応するすべての前記ソースフレームデータを前記複数のラインバッファにコピーする段階と、
前記複数のラインバッファに保存された前記ソースフレームデータから前記目標フレームの前記第３及び第４行の各ピクセルを補間し、ラスター順序で前記目標フレームの前記第３及び第４行の前記補間されたピクセルを出力する段階とをさらに有することを特徴とする請求項１１に記載の目標フレーム補間方法。
【請求項１４】
前記目標フレームの前記第１、第２、第３、及び第４行のピクセルに対応する前記すべてのソースフレームデータをコピーする段階は、
前記複数のラインバッファに保存された前記ソースフレームデータから前記目標フレームの前記第１、第２、第３、及び第４行のそれぞれのピクセルを補間する段階が開始する前に完了していることを特徴とする請求項１３に記載の目標フレーム補間方法。
【請求項１５】
前記目標フレームの前記第２行のピクセルに対応する前記すべてのソースフレームデータをコピーする段階は、
前記目標フレームの前記第１行のそれぞれのピクセルを補間する段階を実行している間に実行されることを特徴とする請求項１１に記載の目標フレーム補間方法。
【請求項１６】
前記目標フレームの前記第２行のピクセルに対応するすべての前記ソースフレームデータをコピーする前記段階は、
前記目標フレームの前記第１行のそれぞれのピクセルを補間する段階が完了する前に完了していることを特徴とする請求項１５に記載の目標フレーム補間方法。
【請求項１７】
ソースフレームの目標フレーム部分の回転方法を実行するよう構成されるイメージ処理ユニットを有し、
前記回転方法は、ムービング・ウィンドウ補間処理（ｍｏｖｉｎｇ  ｗｉｎｄｏｗ  ｉｎｔｅｒｐｏｌａｔｉｏｎ  ｐｒｏｃｅｓｓ）を用いて、前記目標フレームのピクセルを補間するために、複数のラインバッファ内でソースフレームデータの整列を保持する間、アフィン変換係数に基づいたブレイクライン水平位置情報のセット（ａ  ｓｅｔ  ｏｆ  ｂｒｅａｋ−ｌｉｎｅ  ｈｏｒｉｚｏｎｔａｌ  ｐｏｓｉｔｉｏｎ  ｉｎｆｏｒｍａｔｉｏｎ）に基づいて水平化された前記目標フレーム部分に対応する前記ソースフレームデータを前記複数のラインバッファにコピーする段階を含むことを特徴とするイメージ処理回路。
【請求項１８】
すべての前記ソースフレームデータをコピーする段階は、
前記ソースフレームデータのすべての行を用いるために、水平データ整列情報の１つのセットのみに基づいて、前記ソースフレームのデータを複数のラインバッファに整列する段階を含むことを特徴とする請求項１７に記載のイメージ処理回路。
【請求項１９】
元のイメージフレームの回転した目標フレーム部分にピクセルの各メタ行の開始と終了とを示す水平位置のセットを生成するよう構成される第１変換エンジンと、
前記目標フレーム部分でピクセルの各メタ行を読み出し、複数のラインバッファのうちの何れか１つに各行を記録するよう構成されるダイレクトメモリアクセスコントローラと、
前記回転した目標フレームの各ピクセルを補間し、ラスター順序で前記ピクセルを出力するよう構成される第２変換エンジンとを有することを特徴とするイメージ処理回路。
【請求項２０】
アフィン変換係数に従ってソースフレームの目標フレーム部分を回転させる方法において、
前記アフィン変換係数に基づいて、前記目標フレームの第１行のピクセルに対応する第１メタ行に前記ソースフレームのピクセルのイメージデータを第１ラインバッファにコピーする段階と、
前記アフィン変換係数に基づいて、前記目標フレームの前記第１行のピクセルに対応する第２メタ行に前記ソースフレームのピクセルの前記イメージデータを第２ラインバッファにコピーする段階と、
前記第１及び第２ラインバッファに保存された前記イメージデータに基づいて、前記目標フレームの前記第１行の各ピクセルを順次に補間し、ラスター順序で前記目標フレームの前記第１行の前記補間されたピクセルを出力する段階とを有することを特徴とする目標フレーム部分の回転方法。
【請求項２１】
前記アフィン変換係数に基づいて、前記目標フレームの前記第１行のピクセルに対応する第３メタ行に前記ソースフレームのピクセルの前記イメージデータを第３ラインバッファにコピーする段階と、
前記アフィン変換係数に基づいて、前記目標フレームの前記第１行のピクセルに対応する第４メタ行に前記ソースフレームのピクセルの前記イメージデータを第４ラインバッファにコピーする段階と、
前記第１、第２、第３、及び第４ラインバッファに保存された前記イメージデータに基づいて、前記目標フレームの前記第１行の各ピクセルを順次に補間し、ラスター順序で前記目標フレームの前記第１行の前記補間されたピクセルを出力する段階とをさらに有することを特徴とする請求項２０に記載の目標フレーム部分の回転方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の概念は、デジタルイメージ安定化（ｄｉｇｉｔａｌ  ｉｍａｇｅ−ｓｔａｂｉｌｉｚａｔｉｏｎ、ＤＩＳ）に関し、特に、目標メタフレーム（ｄｅｓｔｉｎａｔｉｏｎ  ｍｅｔａ−ｆｒａｍｅ）の水平行のピクセル（ｐｉｘｅｌｓ）のウィンドウィング補間（ｗｉｎｄｏｗｉｎｇ  ｉｎｔｅｒｐｏｌａｔｉｏｎ）に基づいたソースフレームの目標フレーム部分を回転させる方法及びラスター順序（ｒａｓｔｅｒ  ｏｒｄｅｒ）で目標フレームの補間されたピクセルを出力する方法に関する。
【背景技術】
【０００２】
デジタルカメラ、デジタルビデオカメラ、及び携帯用装置（ｈａｎｄ−ｈｅｌｄ  ｄｅｖｉｃｅ）などを含むカメラキャプチャー（ｃａｍｅｒａ  ｃａｐｔｕｒｅ）は、カメラが、人によって操作される間に、しばしばイメージやビデオをキャプチャーするのに使われる。
したがって、ビデオカメラは、イメージやビデオをキャプチャーする間、手ぶれ（ｓｈａｋｉｎｇ）またはジッタ（ｊｉｔｔｅｒ：揺れ）を起こしうる。
ジッタは、水平成分、垂直成分、及び回転成分を含みうる。ジッタは、手取りされたビデオを見る時、見る人を散漫にさせるか、または混乱させる。したがって、同じ場面のビデオフレームのシーケンスからカメラ軌跡（すなわち、連続したフレームのそれぞれの対の間の揺れ）をデジタル方式で測定し、ジッタを除去するデジタル回路の使用を必要とする。
【０００３】
安定した、または静止されたカメラ、または動くビデオカメラによって生成されたビデオは、キャプチャーされたビデオでスムースな動き、平行状態での移動（ｔｒａｎｓｌａｔｉｏｎ：以下、トランスレーション）または回転（ｒｏｔａｔｉｏｎ）を主に含む。一方、不安全なビデオカメラは、ビデオイメージを通じて高周波ジッタ（例えば、トランスレーション、及び／または回転した）を有するビデオを生成させる。
【０００４】
デジタルイメージ安定化（ＤＩＳ）システムは、イメージシーケンスでまず所望しないまたは意図していない動作を推定し、イメージシーケンスのフレームのそれぞれに修正または補償を適用する。安定化されたビデオの視覚的効果は、カメラ軌跡推定の質に高く依存する。
カメラ及び／または場面の全般的な動きは、意図された全般的な動き、例えば、パンニング（ｐａｎｎｉｎｇ）、すなわち、動く物体の速度や進行方向に合わせてカメラを移動させながら撮影する技法と、意図していない全般的な動き、例えば、搖れを区別するために分析される。
【０００５】
数学において、アフィン幾何学（ａｆｆｉｎｅ  ｇｅｏｍｅｔｒｙ）は、アフィン変換、すなわち、非特異（ｎｏｎｓｉｎｇｕｌａｒ）線形変換とトランスレーションによって変わらずに残っている幾何学的性質に関する研究である。
アフィンマトリックス（Ａｆｆｉｎｅ  ｍａｔｒｉｘ）と呼ばれる、数と関連した係数によって定義された方程式の数学的システムは、連続したフレームの各対の間で、またはその部分（例えば、フレーム内で動く物体）の間で感知された動きの水平成分、垂直成分、回転成分、及びスカラー（ｓｃａｌａｒ）（例えば、ズームイン（ｚｏｏｍ  ｉｎ）またはズームアウト（ｚｏｏｍ  ｏｕｔ））を特徴づけるように発展した。
【０００６】
アフィン変換は、次の通りである。
ｘ’＝ｓｘ＊ｘ＋ｒｙ＊ｙ＋ｔｘ
ｙ’＝ｒｘ＊ｘ＋ｓｙ＊ｙ＋ｔｙ
ここで、（ｘ、ｙ）は、目標フレームピクセル位置であり、
（ｘ’、ｙ’）は、アフィン変換後に計算されたソースフレームピクセル位置である。
ｓｘ、ｒｙ、ｒｘ、ｓｙ、ｔｘ、及びｔｙは、アフィン変換係数である。
このグループの数学的表現は、場面（ｓｃｅｎｅ）の線形変位（ｌｉｎｅａｒ  ｄｉｓｐｌａｃｅｍｅｎｔ）、回転角度、尺度（ｓｃａｌｅ）などを含みうる。
【０００７】
カメラジッタは、場面である実際に静止した物体（例えば、岩、テーブル、駐車された車、山、太陽）と関連したアフィン変換マトリックスＰ（ｎ）と呼ばれる主要変換（ｐｒｉｎｃｉｐａｌ  ｔｒａｎｓｆｏｒｍ；Ｐ（ｎ））、またはグローバル変換（ｇｌｏｂａｌ  ｔｒａｎｓｆｏｒｍ）によって特徴づけられる。
一方、フレーム内にある動く物体（例えば、鳥、人、球、動く車、通り過ぎる汽車）は、追加的なアフィンマトリックスＴｉ（ｎ）によって特徴づけられる。
したがって、主要変換Ｐ（ｎ）は、フレーム内で背景の動きの稠密な描写（ｃｏｍｐａｃｔ  ｄｅｓｃｒｉｐｔｉｏｎ）として提供することができる。小さな動きを有する変換は、主要変換Ｐ（ｎ）に近い。
【０００８】
一旦、主要変換Ｐ（ｎ）が得られれば、それは、キャプチャーされたイメージデータのソースフレームに適用され、修正された目標フレームが得られる。主要変換Ｐ（ｎ）が、回転成分を含む時、目標フレームの同じ行内のソースフレームデータは、ソースフレームの多くの他のラインからもたらされる。
【０００９】
特定目標フレームピクセル位置に対応するように確認されたソースフレームピクセル位置は、ソースフレームに存在するピクセルの中央に正確に一致しないこともある。
特定目標フレームピクセル位置に対応するように確認されたソースフレームピクセル位置は、ソースフレームの２つまたは４つの隣接ピクセルの間で等距離に位置し得る。
したがって、これら隣接したピクセルの如何なるものも、個々に目標フレームピクセルに対応するような、同じ光度とカラーとを有さない。しかし、それらの平均は有する。
【００１０】
回転動作が提供された時、多くの、又はほとんどの目標フレームのピクセルは、ソースフレームで全体のピクセルと正確に一致しない。
そのような場合に、ソースフレームの複数の隣接ピクセルのイメージデータＤｓｆから目標フレームイメージデータＤｄｆを補間することが必要である。
このような補間は、複数のアフィン変換係数（ｓｘ、ｒｙ、ｒｘ、ｓｙ、ｔｘ、ｔｙ）に基づいたアフィン変換マトリックスを使って行われる。
しかし、ソースフレームに関連した目標フレームの回転角度のために、目標フレームのある与えられた行Ｒｄ内でのピクセルのソースフレームデータは、目標フレームの他の行からもたらされる。
【００１１】
例えば、もし、回転角度が±４５゜である時、目標フレームの中間行Ｒｄ内のピクセルのソースフレームデータは、ソースフレームのほとんどの垂直次元を広くまき散らす（ｓｐａｎｎｉｎｇ）ソースフレーム行の範囲からもたらされる。したがって、目標フレームを出力するための一つの方法は、ソースフレームを複数のタイル、または、複数のブロックに分け、複数のタイル（または、複数のブロック）のそれぞれからそれぞれの目標フレーム（行Ｒｄ）の部分のみを補間する。
【００１２】
多様なデータフォーマットは、イメージのそれぞれのピクセルの光度とカラーとをエンコーディングするために使われる。あるシステムでは、グレースケール（ｇｒａｙｓｃａｌｅ）データであるが、これに、一つのルーマ（ｌｕｍａ）Ｙ値データのみが、ピクセルごとに保存される。
他のシステムでは、８ビット４：２：２データフォーマットであるが、これに、４個のピクセルの４個のルーマ（Ｙ）値と２個のクロマ（ｃｈｒｏｍａ）（ＣＢ及びＣＲ）値とが４：２：２の比率で保存されるが、これは、人間の目は、カラーの変化より光度にさらに敏感であるためである。
したがって、ソースフレームから目標フレームのピクセルを補間する時、ルーマデータ値とクロマデータ値とに対しては、相異なるサイズの補間領域を使うことが最適である。
例えば、ソースフレームからルーマＹデータの４×８領域と、クロマ（ＣＢ及びＣＲ）データの４×４領域は、８ビット４：２：２データフォーマットで目標フレームのそれぞれのピクセルを補間するために使われる。
【００１３】
メモリ管理スキームのタイル又はブロック形態は、隣接したタイル間でソースフレームデータをオーバーラッピングし、ブロック形態で目標フレームデータを出力するのにアクセスするためのオーバーヘッド（ｏｖｅｒｈｅａｄ）を有する。
イメージ処理の後段階で、ラスター順序（例えば、左側から右側に複数のピクセルの全体行）で目標フレームイメージデータを要求する時、補間された目標フレームデータのこのようなブロックを連結し、ラスター順序によってそれぞれの行Ｒｄのピクセルを読み出すことに対するオーバーヘッドは、さらに多くのバス帯域幅（ｂｕｓ  ｂａｎｄｗｉｄｔｈ）を要求し、達成するためにはマルチプルラインバッファ（ｍｕｌｔｉｐｌｅ  ｌｉｎｅ  ｂｕｆｆｅｒ）を必要とする。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明の目的は、燐接したタイルの間でソースフレームアクセスをオーバーラッピングせずに、イメージの回転を行うことができるピクセル補間方法を提供することである。
上記方法は、ラスター順序目標データを発生させるための追加的な計算やメモリオーバーヘッドを必要としない。
また、本発明の他の目的は、ビデオフレームの場面で止められた物体及び／又は背景物体を表現する主要変換（ｐｒｉｎｃｉｐｌｅ  ｔｒａｎｓｆｏｒｍ；Ｐ（ｎ））を適用することができるデジタルイメージ安定化方法を提供することである。
【課題を解決するための手段】
【００１５】
本発明の一態様によれば、アフィン変形は、ソースフレームの要求されるピクセルデータの対応する物理的メモリアドレスを生成するために受信されたアフィン係数（ｓｘ、ｓｙ、ｒｘ、ｒｙ、ｔｘ、ｔｙ）に基づき、計算された目標フレーム座標に基づいた補償ユニットの第１アフィン変形エンジンで行われる。
あるカラーデータシステムでは、目標フレームの各ピクセルの補間動作を行うために、ソースフレームからデータ（例えば、８列ずつ４行）の補間領域が要求される。ソースフレーム領域から回転イメージ変形のために要求されるデータにアクセスするために、目標フレームの行と対応する対角線に処理されたメタ行で、ソースフレームのピクセルをフェッチし、このようなデータピクセルを水平に複数のラインバッファに再配置（ｒｅ−ｐｏｓｉｔｉｏｎ）する方法が開示される。
複数のラインバッファに保存された内容のデータは、目標フレームでピクセルの１つまたはそれ以上の全体行と対応する。したがって、補間は、ラスター順序で目標フレームの１つまたはそれ以上の全体行に対して進行される。
【００１６】
本発明の好適な実施形態は、トランスレーション、スケーリング（ｓｃａｌｉｎｇ）、及び回転とともにアフィン変形（イメージ補間）を行う。
現在行Ｒｄ目標フレームの補間されたピクセルを生成するために必要なすべてのソースフレームデータは、メタフレームバッファの複数のラインバッファ内に整列される。水平ムービング・ウィンドウ動作（ｈｏｒｉｚｏｎｔａｌｌｙ−ｍｏｖｉｎｇ  ｗｉｎｄｏｗ  ｏｐｅｒａｔｉｏｎ）は、ラスター順序で目標フレームの生成のためにソースフレームデータ補間工程に使われる。もし、ラインバッファ内のソースフレームデータが、ソースフレームの他の行からもたらされる時、目標フレームの各ピクセルの補間のために、ソースフレームの要求される（例えば、４ｘ８）メモリウィンドウ領域の形状はシフトする。
【００１７】
イメージ処理回路は、本来のイメージフレームの目標メタフレーム部分で各メタ行の開始と終了とを示す水平位置の１つのセットを生成するよう構成される第１アフィン変換エンジン、目標メタフレーム部分からピクセルの各メタ行を読み出し、水平化されたピクセルのそれぞれメタ行を複数のラインバッファのうちの何れか１つに記録するよう構成される直接メモリアクセスコントローラと、前記目標フレームの各ピクセルを補間して回転させ、ラスター順序で前記回転したピクセルを出力するするよう構成される第２アフィン変換エンジンとを含む。
前記方法は、前記ソースフレームで対角線メタ行内に対角線に分配されたイメージデータの位置を計算し、±４５゜までイメージ回転角をサポートするために、ラインバッファメモリ管理業務を行う。
【００１８】
本発明の一態様によるイメージ処理回路は、本来のイメージフレームの回転した目標フレーム部分でピクセルの各メタ行の開始と終了とを示す水平位置のセットを生成するよう構成される第１アフィン変換エンジン、目標フレームからピクセルの各メタ行を読み出し、各行を複数のラインバッファのうちの何れか１つに記録するするよう構成される直接メモリアクセスコントローラと、前記回転した目標フレームの各ピクセルを補間し、ラスター順序で前記ピクセルを出力するよう構成される第２アフィン変換エンジンとを含む。
【００１９】
前記ウィンドウ補間ムービング・ウィンドウ工程は、ラスター順序で前記目標フレームデータを生成する。前記補間ウィンドウセンター位置（ｘ’、ｙ’）は、回転方程式に基づいて、例えば、アフィン変換方程式係数（ａｆｆｉｎｅ  ｔｒａｎｓｆｏｒｍ  ｅｑｕａｔｉｏｎ  ｃｏｅｆｆｉｃｉｅｎｔｓ）を用いて計算される。補間ウィンドウ形状と位置は、ラインバッファに前記ソースデータが保存された前記センターｙ’位置と前記垂直位置とによって調整される。
【００２０】
本発明の他の一態様によるアフィン変換係数によって、本来フレームの目標フレーム部分を回転させる方法は、前記アフィン変換係数に基づいて、前記目標フレームの前記第１行のピクセルに対応する前記データを複数のラインバッファのうちから第１ラインバッファにコピーする段階と、前記アフィン変換係数に基づいて、前記目標フレームの前記第２行のピクセルに対応する前記データを前記複数のラインバッファのうちから第２ラインバッファにコピーする段階と、前記複数のラインバッファに保存された前記データに基づいて、前記目標フレームの第１行で連続して各ピクセルを補間及び回転し、ラスター順序で前記目標フレームの前記第１行の前記補間されたピクセルを出力する段階と、前記複数のラインバッファに保存された前記データに基づいて、前記目標フレームの前記第２行で連続して各ピクセルを補間及び回転し、ラスター順序で前記目標フレームの前記第２行の前記補間されたピクセルを出力する段階とを含む。
【００２１】
本発明の他の一態様によれば、ビデオフレームの場面で停止／背景オブジェクトを表わす主要変換Ｐ（ｎ）を適用する方法を提供する。
【００２２】
本発明の他の一態様によるアフィン変換係数によるソースフレームの目標フレーム部分を回転させる方法は、前記アフィン変換係数に基づいて、前記目標フレームの前記第１行のピクセルに対応する第１メタ行にソースフレームのピクセルの前記イメージデータを第１ラインバッファにコピーする段階と、前記アフィン変換係数に基づいて、前記目標フレームの前記第１行のピクセルに対応する第２メタ行に前記ソースフレームのピクセルの前記イメージデータを第２ラインバッファにコピーする段階と、前記第１及び第２ラインバッファに保存された前記イメージデータに基づいて、前記目標フレームの前記第１行の各ピクセルを順次に補間し、ラスター順序で前記目標フレームの前記第１行の前記補間されたピクセルを出力する段階とを含む。
【００２３】
上記方法の好適な形態として、前記アフィン変換係数に基づいて、前記目標フレームの前記第１行のピクセルに対応する第３メタ行に前記ソースフレームのピクセルの前記イメージデータを第３ラインバッファにコピーする段階と、前記アフィン変換係数に基づいて、前記目標フレームの前記第１行のピクセルに対応する第４メタ行に前記ソースフレームのピクセルの前記イメージデータを第４ラインバッファにコピーする段階と、前記第１、第２、第３、及び第４ラインバッファに保存された前記イメージデータに基づいて、前記目標フレームの前記第１行の各ピクセルを順次に補間し、ラスター順序で前記目標フレームの前記第１行の前記補間されたピクセルを出力する段階とをさらに含む。
【００２４】
本発明の多様な好適実施形態として、任意の回転角度（例えば、±４５゜まで）以内でトランスレーションと回転モーション（ｒｏｔａｔｉｏｎａｌ  ｍｏｔｉｏｎ）とを含むアフィン変形を処理する。
本発明の他の多様な好適実施形態として、４：２：２データフォーマットとさらに小さな回転角度以内でトランスレーションと回転モーションとを含むアフィン変形を処理するために最適化される。
【００２５】
前記目標フレームの同じ行Ｒｄ以内でピクセルの前記ソースフレームデータが、ソースフレームの他のラインからもたらされるために、第１段階は、前記目標フレームの回転角に従って、前記ソースフレームデータを水平化されたメタ行に再整列する段階である。前記第１段階は、前記ソースフレームデータＤｓｆの水平化されたメタ行を保存する複数の水平ラインバッファ内で目標フレームの全体行Ｒｄに対応するすべての要求されるソースフレームデータを整列する段階である。
優先的に、前記バッファメモリのすべてのラインは、前記補間工程のうち同時に読み出され、前記補間工程に関連していない前記バッファメモリのラインは、次に要求されるソースフレームデータとともに同時に記録されうる。したがって、優先的に、前記バッファメモリの各行は、独立してアクセス可能なラインバッファとして具現される。
【００２６】
前記要求されるソースフレームデータが、前記バッファメモリで利用可能な時、単純で滑らかな水平的なムービング・ウィンドウ補間処理は、前記目標フレームの各行Ｒｄで各ピクセルの前記目標フレームデータＤｄｆをラスター順序で生成するために行われる。
【００２７】
ソースフレームデータＤｓｆの前記水平化されたメタ行を保存するために必要な前記メタフレームバッファのサイズは、前記目標フレームの１つ又はそれ以上の行Ｒｄと対応する前記目標フレームデータＤｄｆを一時的に保存するために、ｋ−ラインバッファ（ｋは整数）を再使用することによって、多様な実施形態で減少する。
もし、前記水平化されたムービング・ウィンドウが４ｘ４ピクセル又は４ｘ８ピクセルの正常な面積を有する時、前記ラインバッファの４本ラインのみが、前記目標フレームの前記回転角が０（例えば、図１４参照）である時、前記目標フレームの１つ又はそれ以上の行Ｒｄと対応する目標フレームデータＤｄｆを保存するために必要である。しかし、もし、前記ムービング・ウィンドウが４ｘ４ピクセルの正常な面積を有する時、そして、前記目標フレームの前記回転角が±４５゜である時、前記ラインバッファの７本ラインのみが、前記目標フレームの単に１つの行Ｒｄと対応する前記目標フレームデータＤｄｆを保存するために必要である。
【００２８】
したがって、前記ソースフレームデータＤｓｆの７個の水平化されたメタ行を保存する７ラインバッファは、前記目標フレームの前記回転角に依存して、前記目標フレームの少なくとも１つ及び４個の全体行Ｒｄを４ｘ４補間するために十分なデータを含む。もし、前記補間ウィンドウが４ｘ８ピクセルの正常な面積を有する時、７ラインバッファは、２２．５°までの回転角を処理することができる。もし、前記目標フレームの回転角が±４５゜である時、バッファの７ラインよりさらに多いバッファが、前記目標フレームの１つの行Ｒｄに対応する前記目標フレームデータＤｄｆを保存するために必要である。
【００２９】
前記補間段階の前記水平ムービング・ウィンドウの分割された形状は、前記目標フレームの前記回転角に依存して変わり、低い角度で、ブレイクライン（ｂｒｅａｋ  ｌｉｎｅ）によって分割されないか、１つのブレイクラインによって分割されるか、あるいは複数のブレイクラインによって分割されるかに依存して変わりうる。ある実施形態で、前記回転角は、前記補間段階の各ムービング・ウィンドウが少なくともただ１つのブレイクライン（例えば、図１５参照）によって分割されるように制限される。
【００３０】
本発明の一態様によれば、ここで開示されたＤＩＳ方法を行うために具現されるデジタルイメージ安定化回路を提供する。
ビデオフレームからカメラの軌跡によって誘発されるジッタをフィルタリングするために具現された前記回路は、ビデオカメラそれ自体内に含まれ、キャプチャーされた（ｃａｐｔｕｒｅｄ）ビデオフレームの保存以前にリアルタイムで前記ジッタを除去するために活性化される。
又、デジタルイメージ安定化回路は、連続したビデオフレームの間でカメラ軌跡を推定し、保存されたビデオフレームから前記ジッタをフィルタリングするために、デジタルイメージ安定化方法を具体化するソフトウェアによって制御される一般的な目的のマイクロコンピュータであり得る。又、前記デジタルイメージ安定化回路は、デジタルイメージ安定化方法を行うために最適化されたＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）で具現されるＭＥＰＧビデオエンコーダのような専用ハードウェアであり得る。
【００３１】
本発明の実施形態は、以下添付した図面とともにさらに詳しく説明される。しかし、本発明の思想は、他の形態で具現され、これに具現された実施形態に限定されてはならない。むしろ、これら実施形態は、発明の開示が徹底的に、そして、完全に具現されるように提供され、技術分野で熟練された人々に発明の思想が完全に伝達されるように提供される。
【発明の効果】
【００３２】
本発明の概念の実施形態の利用は、オーバーヘッドを減らすことができる。
何故ならば、タイリング（ｔｉｌｉｎｇ）方法において、ソースフレームデータの重複読み出しに比べれば、本発明のソースフレームデータは、単に一回だけ読み出されるためである。また、追加的な計算やメモリオーバーヘッドなしにラスター順序目標フレームデータ出力シーケンスを滑らかに生成することができる。
【図面の簡単な説明】
【００３３】
本発明の詳細な説明で引用される図面をより十分に理解するために、各図面の詳細な説明が提供される。
【図１】本発明の実施形態によるデジタルイメージ安定化方法を実行するデジタルイメージ安定化回路のブロック図である。
【図２】図１のデジタルイメージ安定化回路内のＤＩＳ補償ユニットのブロック図であり、ラスター順序によって、補償変換Ｐ（ｎ）をキャプチャーされたソースフレームイメージデータＤｓｆに適用して補間、回転させ、目標フレームのピクセルのデータＤｄｆを出力する。
【図３】キャプチャーされたソースフレームを示す図であり、本発明の実施形態によるソースフレームイメージデータＤｓｆの部分集合（ｓｕｂｓｅｔ）を含む複数の対角線方向のメタ行（ｍｅｔａ−ｒｏｗｓ）を含む目標メタフレームの実施形態を含み、目標メタフレームのメタ行に含まれたソースフレームイメージデータＤｓｆを補間することで得られる目標フレームの相対的な位置を表わす。
【図４】本発明の実施形態による、ルーマ（ｌｕｍａ）Ｙメタフレームバッファに保存された図３に示した目標メタフレームの水平化されたメタ行の部分と目標フレームの３個のピクセルの補間ウィンドウを示す図である。
【図５】目標メタフレームの１４個の対角線方向のメタ行を表わし、目標メタフレームで複数の分割された／移動した／ステップ化された列グループを定義する複数の規則的に配された垂直ブレイクラインを表わす図である。
【図６】本発明の実施形態による、ルーマＹメタフレームバッファに保存された水平化されたメタ行を表わす図である。
【図７Ａ】本発明の実施形態による、ソースフレームイメージで目標メタフレームの対角線方向のメタ行を順次に水平化する方法及び水平化されたイメージデータＤｓｆをピクセルのムービング・ウィンドウ補間のためのメタフレームの行でラスター順序で記録する方法を説明するためのフローチャートである。
【図７Ｂ】本発明の実施形態による、ソースフレームイメージで目標メタフレームの（ｋ＋１）対角線方向のメタ行の各グループを順次に水平化する方法及び水平化されたイメージデータの（ｋ＋１）行をピクセルのムービング・ウィンドウ補間のための（ｋ＋１）ラインメタフレームにラスター順序で記録する方法を説明するためのフローチャートである。
【図８】本発明の実施形態による、目標メタフレームの水平化されたメタ行の内のイメージデータからムービング・ウィンドウ補間によって目標フレームのそれぞれの行のそれぞれのピクセルを順次に補間する方法を説明するためのフローチャートである。
【図９】本発明の実施形態による、補間のためのソースフレームデータＤｓｆ整列及び開始地点を表わすルーマＹメタフレームバッファを説明するための図である。
【図１０】本発明の実施形態による、メタ行のムービング・ウィンドウ補間の水平な開始地点でルーマＹメタフレームバッファとその変形を説明するための図である。
【図１１】本発明の実施形態による、メタ行のムービング・ウィンドウ補間の垂直開始地点（ｗｉｎｙｓｈｉｆｔ）での変化を表わすルーマＹメタフレームバッファのラインバッファの実施形態を説明するための図である。
【図１２】垂直ブレイクライン位置の地点を表わすビットを保存するためのラインバッファを含むルーマＹ及びクロマＣＢ及びＣＲソースフレームデータの保存の例を説明するための図である。
【図１３】１つの垂直ブレイクラインによる目標フレームの時計回り方向回転のために分割された４ｘ８ピクセル補間ウィンドウの形態を表わす図である。
【図１４】（ａ）〜（ｄ）は、本発明の実施形態による、ソースフレームデータの回転していない目標フレームの他の行の内でピクセルを補間するための分割されていない４ｘ８ピクセルムービング・ウィンドウの形状及び垂直の位置の実施例を表わす図である。
【図１５】（ａ）〜（ｅ）は、本発明の実施形態による、ソースフレームデータから第１時計回り方向回転した目標フレームの他のピクセルを補間するための分割された４ｘ８ピクセルムービング・ウィンドウの形状及び垂直の位置の実施例を表わす図であり、（ｆ）〜（ｊ）は、本発明の実施形態による、ソースフレームデータから第２時計回り方向回転した目標フレームの他のピクセルを補間するための分割された４ｘ８ピクセルムービング・ウィンドウの形状及び垂直の位置を表わす図である。
【発明を実施するための形態】
【００３４】
図１は、本発明の実施形態によるデジタルイメージ安定化方法を実行するデジタルイメージ安定化回路のブロック図である。
デジタルイメージ安定化（ＤＩＳ）回路は、ソースフレームのぎくしゃく動くビデオデータ（ｊｅｒｋｙ  ｖｉｄｅｏ  ｄａｔａ）Ｄｓｆを分析し、インターフレーム変換Ｔｉ（ｎ）を出力する検出ユニット（ＤＵ）２０００と、インターフレーム変換Ｔｉ（ｎ）のうちから選択された主要／補償変換Ｐ（ｎ）を出力する軌跡ユニット（ｔｒａｊｅｃｔｏｒｙ  ｕｎｉｔ：ＴＵ）４０００と、選択された主要／補償変換Ｐ（ｎ）に基づいて、ぎくしゃく動くビデオデータを修正することによって、目標フレームの安定化されたビデオデータＤｄｆを出力するＤＩＳ補償ユニット（ＣＵ）６０００とを含む。
【００３５】
検出ユニット（ＤＵ）が、インターフレーム変換Ｔｉ（ｎ）を推定した後、軌跡ユニット（ＴＵ）は、インターフレーム変換Ｔｉ（ｎ）のうちの１つを主要変換（ｐｒｉｎｃｉｐａｌ  ｔｒａｎｓｆｏｒｍ）Ｐ（ｎ）として選択する。もし、主要変換Ｐ（ｎ）が回転動作成分を含めば、ＤＩＳ補償ユニット（ＣＵ）は、ラスター順序（ｒａｓｔｅｒ  ｏｒｄｅｒ）（例えば、最上の行の左側から始めて、行の右側に行（ｒｏｗ）単位で）によって、目標フレームの複数のピクセルの安定化されたビデオデータＤｄｆを回転し、補間し、そして出力する。
【００３６】
図２は、図１のデジタルイメージ安定化回路内のＤＩＳ補償ユニットのブロック図であり、ラスター順序によって、補償変換Ｐ（ｎ）をキャプチャーされたソースフレームイメージデータＤｓｆに適用して補間し、目標フレームのデータＤｄｆをを出力する。
ＤＩＳ補償ユニット６０００は、水平位置情報（例えば、読み出しアドレス）を生成し、ブレイクライン空間（ｂｒｅａｋ  ｌｉｎｅ  ｓｐａｃｉｎｇ）を計算するための第１（アフィン）変換エンジン６２２０と、ＤＭＡ（ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）コントローラ／読み出しマスタ６２３２と、ラスター順序によって目標フレームのピクセルを補間（例えば、回転、変換、及び／またはスケーリング）するための第２（アフィン）変換エンジン６２５０と、を含む。
変換エンジンは、類似変換、アフィン変換、またはこれと類似したような幾何学的変換のうちの１つであり得る。
アフィン変換は、本発明の概念を説明するための例として選択されるが、他の類似している幾何学的変換が、本発明の概念を範囲を外れない範囲内で使われる。
【００３７】
並列データ出力インターフェース６２５２は、イメージデータ（４：２：２）を出力し、複数のイメージフレーム同期信号と背圧失速（出力バッファ）メカニズム（ｂａｃｋ  ｐｒｅｓｓｕｒｅ  ｓｔａｌｌ（ｏｕｔｐｕｔ  ｂｕｆｆｅｒ）ｍｅｃｈａｎｉｓｍ）を提供する。
ＤＭＡコントローラ／読み出しマスタ６２３２は、ソースフレームバッファ６２３０に保存されたソースフレームデータＤｓｆの選択された部分を読み出し、水平化されたメタフレームバッファ６２４０の適切なそれぞれのラインバッファにソースフレームデータＤｓｆを記録する。
【００３８】
それぞれの目標ソースフレームデータアクセスメモリアドレスは、主要変換Ｐ（ｎ）係数（ｓｘ、ｒｙ、ｒｘ、ｓｙ、ｔｘ、ｔｙ）に基づいて、アフィン変換方程式から第１アフィン変換エンジン６２２０によって計算される。
ＤＩＳ補償ユニット６０００は、主要変換Ｐ（ｎ）係数（ｓｘ、ｒｙ、ｒｘ、ｓｙ、ｔｘ、ｔｙ）を受信して保存する複数の環境設定レジスタ６２１０をさらに含み、主要変換Ｐ（ｎ）係数（ｓｘ、ｒｙ、ｒｘ、ｓｙ、ｔｘ、ｔｙ）を第１アフィン変換エンジン６２２０と第２アフィン変換エンジン６２５０のそれぞれに伝送する。
【００３９】
ＡＸＩバス上のＤＭＡコントローラ／読み出しマスタ６２３２は、ＡＰＢインターフェース６２１２と環境設定レジスタ６２１０とを通じてＡＰＢバスから受信されたイメージ位置と回転情報Ｐ（ｎ）とに基づいて、第１アフィン変換エンジン６２２０から命令（目標ソースフレームデータアクセスメモリアドレス）を受信する。
【００４０】
図３は、本実施形態による目標メタフレームを含むキャプチャーされたソースフレームを示す図である。
目標メタフレームは、複数の斜めに段階的な（ｄｉａｇｏｎａｌｌｙ  ｓｔｅｐ−ｏｒｉｅｎｔｅｄ）メタ行Ｘｄを含む。メタ行Ｘｄのそれぞれは、ソースフレームイメージデータＤｓｆの部分集合（ｓｕｂｓｅｔ）及び目標メタフレームのメタ行Ｘｄに含まれたソースフレームイメージデータＤｓｆを補間することで得られる目標フレームの相対的な位置を含む。
複数の（例えば、４個）燐接した複数の斜めに段階的な（ｄｉａｇｏｎａｌｌｙ  ｓｔｅｐ−ｏｒｉｅｎｔｅｄ）メタ行Ｘｄは、目標メタフレームの各行Ｒｄを補間するために要求されるイメージデータＤｓｆを含む。
【００４１】
目標メタフレームの４個のコーナー（ｃｏｒｎｅｒｓ）（０，０）、（０，ｄｓｔ＿ｗ）、（ｄｓｔ＿ｈ，０）、及び（ｄｓｔ＿ｈ，ｄｓｔ＿ｗ）とアフィン係数Ｐ（ｎ）（ｓｘ、ｓｙ、ｒｘ、ｒｙ、ｔｘ、ｔｙ）は、対応するソースフレームデータ位置を計算するために、第１アフィン変換エンジン６２２０に送られる。アフィン係数をスケーリングすることは、ソースフレームデータが、目標フレームを補間するために利用可能であるいうことを保証する。
【００４２】
図３の長方形ソースフレームは、長方形目標フレーム（破線で回転して見られる）ピクセルの水平行Ｒｄと対応するメタ行Ｘｄでピクセルの各破線の開始位置と終了位置とを確認することを示す。
水平位置Ｘ’［１］のセットは、元のソースフレームのピクセルの各行での上位破線（ｕｐｐｅｒ  ｂｒｅａｋｉｎｇ  ｌｉｎｅ）の交差点を表わす。
水平位置Ｘｓ［０］［ｎ］のセットは、元のソースフレームのピクセルのそれぞれの行に残った破線（ｌｅｆｔ  ｂｒｅａｋｉｎｇ  ｌｉｎｅ）の交差点で、目標メタフレームの（ＭｘＮ）ピクセルのうちから各メタ行の“開始”を表わす。
水平位置Ｘｓ［Ｍ］［ｎ］は、元のソースフレームのピクセルの各行に残った破線の交差点で、目標メタフレームのピクセルの各メタ行の“終了”を表わす。
【００４３】
図４は、クロマＣメタフレームバッファ（６２４１−Ｃ）と目標フレームの３個の例示的なピクセルの補間ウィンドウ（ｉｎｔｅｒｐｏｌａｔｉｏｎ  ｗｉｎｄｏｗｓ）を示す図である。
クロマＣメタフレームバッファ（６２４１−Ｃ）は、図２のＤＩＳ補償ユニット６０００のクロマＣメタフレームバッファ（６２４１−Ｃ）に保存された、図３に示した例示的な目標メタフレームの７個の水平化されたメタ行の部分を示す。
補間ウィンドウのうち２個は、本発明の実施形態によって、垂直ブレイクライン（ｖｅｒｔｉｃａｌ  ｂｒｅａｋ  ｌｉｎｅ）によって分割された／移動した／ステップ化されたものである。
【００４４】
図４に示したものは、図２のＤＩＳ補償ユニット６０００のクロマＣメタフレームバッファ（６２４１−Ｃ）の７本のラインバッファＬＢ０〜ＬＢ６に保存された図３に示した例示的な目標メタフレームの７個の水平化されたメタ行の部分である。
また、図４は、目標フレームの３個の例示的なピクセルの補間ウィンドウを示す。
補間ウィンドウのうち２個は、垂直ブレイクラインによって分割された／移動した／ステップ化されたものである。各補間ウィンドウは、補間ウィンドウを通じて垂直に通過する各ブレイクラインによって分割されるか／移動するか、或は、もし、如何なるブレイクラインも補間ウィンドウを通じて垂直に通過しなければ、ブレイクラインによって分割されるか／移動しない。
【００４５】
実線エッジと点線の側面ラインとを含む（２点鎖線）４ｘ４補間ウィンドウは、ブレイクラインによっても分割されず、これは、完全な正方形である。実線エッジと点線の側面ラインとを含む（２点鎖線）４ｘ４補間ウィンドウは、列グループｓｃｇ０のみのデータ及びソースフレームの４個の行Ｒｓ（ｘ’−１、ｘ、ｘ’＋１、ｘ’＋２）のデータを含む。
【００４６】
ブレイクラインを有する４ｘ４補間ウィンドウは、補間ウィンドウの３番目と４番目の列との間で１つのブレイクラインによって分割され、したがって、ブレイクラインによって分割されて移動する。
したがって、４ｘ４補間ウィンドウの左側３ｘ４部分は、ブレイクラインを有する。
左側３ｘ４部分は、列グループｓｃｇ０のデータ及び列グループｓｃｇ１のデータを含む。
補間ウィンドウの右側１ｘ４部分は、列グループｓｃｇ１のデータを含み、補間ウィンドウの左側３ｘ４部分は、ブレイクラインによって分割された列グループｓｃｇ０のデータを含む。
ブレイクラインを有する４ｘ４補間ウィンドウは、ソースフレームの４個の行Ｒｓ（ｘ’−１、ｘ’、ｘ’＋１、及びｘ’＋２）のみのデータを含む一方、ブレイクラインを有する４ｘ４補間ウィンドウは、５本のラインバッファＬＢ１、ＬＢ２、ＬＢ３、ＬＢ４、及びＬＢ５を含む。何故ならば、これは、ラインバッファで目標メタフレームの４ｘ４補間ウィンドウの水平化のためである。
【００４７】
１点鎖線（ｄａｓｈｅｄ  ｌｉｎｅ）を有する４ｘ４補間ウィンドウは、４ｘ４補間ウィンドウの最初と二番目の列との間の同じブレイクラインによって分割され、したがって、同じブレイクラインによって分割されて移動する。
したがって、１点鎖線を有する４ｘ４補間ウィンドウの右側３ｘ４部分は、列グループｓｃｇ１のデータを含むが、４ｘ４補間ウィンドウの左側１ｘ４部分は、ブレイクラインによって分割された列グループｓｃｇ０のデータを含む。
１点鎖線を有する４ｘ４補間ウィンドウは、ソースフレームの４個の行Ｒｓ（ｘ’−２、ｘ’−１、ｘ’、及びｘ’＋１）のデータのみを含むが、１点鎖線を有する４ｘ４補間ウィンドウは、５本のラインバッファＬＢ０、ＬＢ１、ＬＢ２、ＬＢ３、及びＬＢ４を含む。
【００４８】
図５は、図３に示した例示的な目標メタフレームの１４個の対角線方向のメタ行Ｘｄの部分の詳細を示す図である。
１４個の対角線方向のメタ行Ｘｄの部分は、目標メタフレーム内の複数の分割された／移動した／ステップ化された列グループｓｃｇを定義する複数の規則的に配された垂直ブレイクラインを表わす図２のソースフレームバッファ６２３０に保存される。
【００４９】
図３及び図５を参照すると、各対角線方向のメタ行Ｘｄは、回転しないか、ごく若干回転した場合に、０個のブレイクラインから±４５゜回転の場合に、１つのピクセル幅ごとに１つのブレイクラインまでの範囲を有する複数の垂直ブレイクラインによって分割される。
与えられた目標メタフレームのすべてのメタ行Ｘｄは、同じ水平程度を有するために、そして、複数のブレイクラインは（それぞれのステップ化された列グループの幅で、例えば、ｓｃｇ０）、規則的に配されているために、目標メタフレームのすべてのメタ行Ｘｄは、目標フレームの水平移動、回転角、及び水平サイズ（ｈｏｒｉｚｏｎｔａｌ  ｓｉｚｅ）によって±１の変化でほぼ同じ数のブレイクラインを有する。
【００５０】
小さな回転角度に対して、目標メタフレームの各メタ行Ｘｄは、０、１、または２個のブレイクラインを有する。
１つまたはそれ以上のブレイクラインを含むあらゆるメタ行は、対角線に分配されたソースフレームデータＤｓｆを必須的に有する。
ソースフレームデータＤｓｆは、ソースフレーム（例えば、ソースフレーム列ｘ’、ｘ’−１、ｘ’−２、及びｘ’−３など内で）の複数の行Ｒｓに分割される（例えば、ソースフレーム列ｘ’、ｘ’−１、ｘ’−２、及びｘ’−３など内で）。
【００５１】
図６は、図３に示した例示的な目標メタフレームの９個の水平化されたメタ行の部分の詳細を示す図である。
９個の水平化されたメタ行の部分は、ルーマ（ｌｕｍａ）Ｙメタフレームバッファ（６２４１−１−Ｙ）（図２の補償ユニット６０００の符号（６２４１−Ｙ））に保存される。
８ビット４：２：２（単一平面、インターリーブフォーマットでＹＣデータ）データフォーマットは、±４５゜までの回転角を有する本実施形態によって完全に支援される。
【００５２】
図４及び図６を参照すると、目標メタフレームの１つのメタ行ＲｄのソースフレームデータＤｓｆが、１つのラインバッファにコピーされた時、ソースフレームの２又はそれ以上の他の行Ｒｓ（例えば、ｘ’、ｘ’−１、ｘ’−２、ｘ’−３などから）のソースフレームデータＤｓｆは、目標メタフレームの１つのメタ行Ｘｄの水平化されたソースフレームデータＤｓｆを保存するために選択されたラインバッファにコピーされる。
【００５３】
図５及び図６は、対角線方向のメタ行を水平化する方法の結果を示す。
図５で、目標フレームのメタフレームの１４個のメタ行Ｘｄ内で、ソースフレームイメージデータＤｓｆの部分のみが示される。
図５に示した各のメタ行Ｘｄは、Ｘｄ［９］［  ］、Ｘｄ［１８］［  ］、Ｘｄ［２７］［  ］で同じ１セットのブレイクライン（例えば、９個のピクセル幅によって分離された）によって分割される。
したがって、図５に示した各メタ行Ｘｄの部分は、ソースフレームの４個の行Ｒｓ（例えば、第１メタ行でｘ’＋３、ｘ’＋２、ｘ’＋１、及びｘ）のソースフレームイメージデータＤｓｆを含む。目標フレームのメタフレーム内で補間された目標フレームの境界が表われる。
【００５４】
図５に対角線に配されたように見える７個の同じメタ列Ｘｄは、図６で７本のラインバッファＬＢ０、ＬＢ１、ＬＢ２、ＬＢ３、ＬＢ４、ＬＢ５、及びＬＢ６で水平化されたもので表わされる。
図６に示したように、各列グループセグメント（例えば、ｓｃｇ０、ｓｃｇ１など）内に配され、与えられたメタ行Ｘｄのセグメントは、同じラインバッファにコピーされる。これが水平化段階である。
【００５５】
例えば、図５で、第１メタ行Ｘｄは、目標フレームのｓｃｇ０と行ｘ’＋３内で第１セグメントと、目標フレームのｓｃｇ１と行ｘ’＋２内で第２セグメントとを含み、目標フレームのｓｃｇ２と行ｘ’＋１内で第３セグメントと、目標フレームのｓｃｇ３と行ｘ’内で第４セグメントとを含む。
図６で、目標メタフレームで第１メタ行Ｘｄの第１セグメント、第２セグメント、第３セグメント、及び第４セグメントが、メタフレームバッファメモリ（６２４１−１−Ｙ）の第１ラインバッファＬＢ０にいずれもコピーされることが示される。
【００５６】
図２のＤＭＡコントローラ／リードマスタ６２３２は、第１アフィン変換エンジン６２２０の制御下で、目標メタフレームの各メタ行Ｘｄに対して順次に選択的なコピーアンドペースト動作を行う。
図６の水平化されたメタフレームバッファ６２４０でルーマＹメタフレームバッファ（６２４１−Ｙ）の実施形態（６２４１−１−Ｙ）は、目標フレームの全体のメタフレームのルーマＹデータを保存する。
したがって、図２のＤＭＡコントローラ／リードマスタ６２３２は、全体の目標メタフレームの要求されるソースイメージデータを図６のルーマＹメタフレームバッファ（６２４１−１−Ｙ）にコピーアンドペーストできる。
多様な他の実施形態で、図２のＤＭＡコントローラ／リードマスタ６２３２は、目標メタフレームのそれぞれの全体の列グループの一部に対して順次にコピーアンドペースト動作を行い、ラインバッファでメタフレームのすべてのメタ行が水平化されて保存されるまで、各列グループ（例えば、ｓｃｇ０、次にｓｃｇ１、等々）をラインバッファに順次に記録する。
【００５７】
図７Ｂ、図９、図１０、及び図１１の他の実施形態で、図２のＤＭＡコントローラ／リードマスタ６２３２は、目標メタフレームの７個のメタ行に対して全体の目標フレームの補間のために再使用された７本のラインバッファＬＢ０〜ＬＢ６を有するバッファにコピーアンドペースト動作を行う。
【００５８】
図２、図３、及び図４を参照すると、以下、上述したように、ＤＭＡコントローラ６２３２は、ソースフレームの複数の行Ｒｓから目標フレームの行Ｒｄと関連したメタ行で対角線に分配されたソースフレームイメージデータＤｓｆを読み出しした後、メタフレームバッファ（６２４１−Ｙ）のルーマＹラインバッファ及びメタフレームバッファ（６２４１−Ｃ）のクロマ（ｃｈｒｏｍａ；Ｃ）ラインバッファに水平化されたイメージデータＤｓｆを記録する。
【００５９】
次に、第２アフィン変換エンジン６２５０は、（回転した）目標フレームの各１つの補間されたピクセルを生成するためのラインバッファに保存された水平化されたルーマ及びクロマソースデータ（例えば、４：２：２の場合に、ルーマＹデータの４ｘ８ピクセル及びクロマＣデータの４ｘ４ピクセル）の補間ウィンドウ（例えば、４ｘ４又は４ｘ８ピクセル領域）を読み出し、ラスター順序によって（回転した）目標フレームの各行の補間されたピクセルを出力する。
【００６０】
目標ソースフレームデータアクセスメモリアドレスは、アフィン変換方程式と受信されたＰ（ｎ）のアフィン変換係数とを利用することで計算される。
読み出しＤＭＡチャネルは、１２８ビットデータバス幅を有するＡＸＩバスマスタインターフェースを通じてバッファ６２３０（または、外部ＤＲＡＭ）でソースフレームにアクセスする。
【００６１】
図７Ａは、図２のＤＩＳ補償ユニット６０００のソースフレームバッファ６２３０に保存されたソースフレームイメージで目標メタフレームの複数の対角線方向のメタ行を順次に水平化する方法に関する第１実施形態のフローチャートである。
この方法は、ラスター順序によってピクセルのムービング・ウィンドウ補間のために、すべての水平化されたイメージデータＤｓｆをメタフレームバッファ６２４０のすべての行に記録する。
この段階は、図２のＤＩＳ補償ユニット６０００の第２アフィン変換エンジン６２５０によって行われる。
【００６２】
Ｓ６１１０段階で、係数因子を含むアフィン変換係数は、目標フレーム面積（ＭｘＮ）を設定して目標フレームデータＤｄｆを補間するために必要なあらゆるフレームデータＤｓｆが、ソースフレーム領域で利用可能になるようにソースフレーム次元（Ｍ’ｘＮ’）に基づいて設定される。
Ｓ６１１２段階で、ループインデックスは、目標メタフレームの第１メタ行Ｘｄ＝０が選択されるように初期化される。
【００６３】
Ｓ６１２０−Ａ段階で、ソースイメージで目標メタフレームの現在のメタ行Ｘｄの水平及び垂直位置の開始アドレスは、第１アフィン変換エンジン６２２０によって計算される。
Ｓ６１３０−Ａ段階で、ＤＭＡコントローラ６２３２は、選択されたメタ行Ｘｄでソースイメージデータをソースフレームバッファ６２３０で水平化されたメタフレームバッファ６２４０のラインバッファのうち何れか１つにコピーする。
Ｓ６１４２段階で、目標イメージの行Ｒｄは、水平化されたメタフレームバッファ６２４０のラインバッファにコピーされ、水平化されたメタ行Ｘｄに基づいた補間のために選択される。
【００６４】
Ｓ６１５０段階で、もし、目標フレームの選択された行Ｒｄに対応するメタ行Ｘｄのすべての要求されるソースイメージデータＤｓｆが水平化されたメタフレームバッファ６２４０に保存される時、目標フレームの選択された行Ｒｄのすべてのピクセルの補間方法（図８の段階６２３０）が実行され、選択された行Ｒｄの補間された目標フレームデータＤｄｆは、ラスター順序によって出力される。
【００６５】
ｄＳ６１８０段階で、目標フレームのすべての行Ｒｄが補間されたか否かをチェックする。
もし、決定段階ｄＳ６１８０で、目標フレームのすべての行Ｒｄが補間されていない時（ｄＳ６１８０の「いいえ」の分枝）、メタ行インデックス数字は増加し（Ｓ６１８２−Ａ段階）、上記方法は、ループして次の実行開始点でＳ６１２０−Ａ段階にもどって工程を繰り返す。
もし、決定段階ｄＳ６１８０で、目標フレームのすべての行Ｒｄが補間された時（ｄＳ６１８０の「はい」の分枝）、現在のソースフレームの目標フレームを補間する方法が完了する。
【００６６】
実際に、目標フレームの選択された行Ｒｄのピクセルを補間する段階（図８のＳ６２３０段階）は、ラインバッファの第１セットを用いて行われると同時に（並列経路（ｐａｒａｌｌｅｌ  ｐａｔｈ））、段階Ｓ６１３０−Ａの間にラインバッファの第２セットにソースフレームデータがコピーされ、選択された行Ｒｄの補間された目標フレームデータＤｄｆは、ラスター順序で出力される。
したがって、上記方法の並列経路具現において、目標フレームの行Ｒｄを補間する段階（図８のＳ６２３０段階）は、ループしてメタ行コピー段階（Ｓ６１３０−Ａ）の進行すぐ後で並列的に進行する。
【００６７】
本実施形態は、フルサイズ水平化されたメタフレームバッファ６２４０を提供することによって具現されうる。
水平化されたメタフレームバッファ６２４０で全体目標フレームの補間に必要なすべてのソースフレームデータＤｓｆがコピーされて保存される。
他の多様な実施形態では、水平化されたメタフレームバッファ６２４０で複数のラインバッファは、他の時点で（ｄｉｆｆｅｒｅｎｔ  ｔｉｍｅｓ）目標フレームの他のメタ行のソースフレームデータＤｓｆを保存するためのラインバッファを再使用することで減少させる。
【００６８】
例えば、もし、補間ウィンドウが４ｘ８であり、望ましい最大回転角が±４５゜である時、水平化されたソースフレームデータで満たされた１１本までのラインバッファが目標フレームの１つの行Ｒｄのピクセルを補間するために必要である。
したがって、１１本のラインバッファを必須的に含む水平化されたメタフレームバッファ６２４０は、±４５゜の回転角度でラスター順序で目標フレームのすべての行Ｒｄのすべてのピクセルを４ｘ８補間するためには最小限十分である。
１１本より少ないラインバッファを提供することは、４ｘ８補間することができる回転角を効果的に減らすことができる。
一方、１１本より多いラインバッファを提供することは、行Ｒｄの順序の４ｘ８補間のために、例えば、ある補間ウィンドウを分割する水平ブレイクラインのマッピングに基づいて、ラインバッファのラウンドロビンの再使用を可能にする。
【００６９】
図７Ｂは、図２のＤＩＳ補償ユニット６０００のソースフレームバッファ６２３０に保存されたソースフレームイメージで、目標メタフレームの複数の対角線方向の（ｋ＋１）メタ行の各グループを順次に水平化する方法に関する第２実施形態のフローチャートである。
この方法は、目標メタフレームの（ｋ＋１）行からメタフレームバッファ（６２４１−２−Ｙ）の（ｋ＋１）ラインバッファに水平化されたイメージデータＤｓｆを記録する。
メタフレームバッファ（６２４１−２−Ｙ）の（ｋ＋１）ラインバッファで水平化されたイメージデータＤｓｆは、図２のＤＩＳ補償ユニット６０００の第２アフィン変換エンジン６２５０によって、ラスター順序で目標フレームの１つまたはそれ以上の行Ｒｄでピクセルのムービング・ウィンドウ補間の次に用いられる。
【００７０】
（ｋ＋１）ラインバッファですべての水平化されたイメージデータＤｓｆが補間のために使われた後、この方法は、ループバックして目標メタフレームのｋ行からメタフレームバッファ（６２４１−２−Ｙ）の（ｋ＋１）ラインバッファに水平化されたイメージデータＤｓｆの次のｋ行を記録する。
Ｓ６１１０段階で、係数因子を含むアフィン変換係数は、目標フレーム面積（ＭｘＮ）を設定して目標フレームデータＤｄｆを補間するために必要なすべてのフレームデータＤｓｆがソースフレーム領域内で利用可能になるようにソースフレーム次元（Ｍ’ｘＮ’）に基づいて設定される。
【００７１】
Ｓ６１１２段階で、ループインデックスは、目標メタフレームの第１メタ行Ｘｄ＝０が選択されるように、そして、水平化されたメタフレームバッファ６２４０で使われたラインバッファ（ｋ＋１）の個数が決定されるように初期化される。
Ｓ６１２０−Ｂ段階で、ソースイメージで目標メタフレームのＸｄからＸｄ＋ｋまで選択されたメタ行の水平及び垂直位置ソースフレームデータＤｓｆの開始アドレスは、第１アフィン変換エンジン６２２０によって計算される。
Ｓ６１３０−Ｂ段階で、ＤＭＡコントローラ６２３２は、目標メタフレームのＸｄからＸｄ＋ｋまで選択されたメタ行のソースフレームデータＤｓｆを水平化されたソースフレームバッファ６２３０から水平化されたメタフレームバッファ６２４０の（ｋ＋１）ラインバッファにコピーする。
【００７２】
Ｓ６１４０段階で、水平化されたメタフレームバッファ６２４０のｋ＋１ラインバッファに保存されたＸｄからＸｄ＋ｋまでメタ行のソースフレームデータＤｓｆに基づいたあらゆる可能な目標フレームピクセル補間が実行される。
補助段階ｓＳ６１４２で、目標イメージの行Ｒｄは、水平化されたメタフレームバッファ６２４０のラインバッファに水平化されてコピーされたＸｄからＸｄ＋ｋまでメタ行に基づいて補間を行うために（目標行インデックスを設定することで）選択される。
補助段階ｓＳ６１５０で、目標フレームの選択された行Ｒｄに対応するメタ行Ｘｄの要求されるソースイメージデータＤｓｆは、水平化されたメタフレームバッファ６２４０に保存され、目標フレームの選択された行Ｒｄのあらゆるピクセルの補間方法（図８のＳ６２３０段階）は実行され、選択された行Ｒｄの補間された目標フレームデータＤｄｆは、ラスター順序で出力される。
【００７３】
決定段階ｄＳ６１５０で、水平化されたメタフレームバッファ６２４０のラインバッファに水平化されてコピーされたＸｄからＸｄ＋ｋまでメタ行から補間されうる目標フレームのすべての行Ｒｄが補間されたか否かをチェックする。もし、決定段階ｄＳ６１５０で、目標フレームのすべての補間可能な行Ｒｄが補間されていない時（ｄＳ６１５０の「いいえ」の分枝）、メタ行インデックス数字は増加する。
上記方法は、ループして次の実行の開始点でＳ６１２０−Ａ段階にもどり工程を繰り返す。
したがって、補助段階ｓＳ６１４６で、目標フレーム行Ｒｄのインデックスは増加し、補助段階ｓＳ６１５０は、次の目標フレーム行Ｒｄ＋１のために反復される。
もし、決定段階ｄＳ６１８０で、目標フレームのすべての補間可能な行Ｒｄが補間された時（ｄＳ６１５０のＹＥＳ枝）、補間されたメタフレームバッファ６２４０のラインバッファで水平化されてコピーされたメタ行Ｘｄに基づいて補間されうる列Ｒｄの補間が完了する。
【００７４】
決定段階ｄＳ６１８０で、目標フレームのすべての行Ｒｄが補間されたか否かをチェックする。
もし、決定段階ｄＳ６１８０で、目標フレームのすべての行Ｒｄが補間されていない時（ｄＳ６１８０の「いいえ」の分枝）、メタ行インデックス数字は増加する（例えば、Ｓ６１８２−Ｂ段階から（ｋ−１）まで）。
上記方法は、ループして次の開始点であるＳ６１２０−Ｂ段階にもどり工程を繰り返す。
もし、決定段階ｄＳ６１８０で、目標フレームのあらゆる行Ｒｄが補間された時（ｄＳ６１８０の「はい」の分枝）、現在のソースフレームの目標フレームを補間する方法が完了する。
【００７５】
目標フレームの選択された行Ｒｄのピクセルを補間する段階（図８のＳ６２３０段階）は、（ｋ＋１）ラインバッファに保存された水平化されたイメージデータＤｓｆを用いて行われる。
回転角によって、目標フレームの追加的な行Ｒｄの補間は、（ｋ＋１）ラインバッファに保存された水平化されたイメージデータを用いて行われる。
例えば、もし、ｋが１１であれば（１２ラインバッファ）、目標フレームの２個の行Ｒｄは、±４５゜の回転角で４ｘ８補間されうる。同様に、もし、ｋが１１であれば（１２ラインバッファ）、目標フレームの５個の行Ｒｄは、±４５゜の回転角で４ｘ４補間されうる。
【００７６】
このような実施形態において、水平化されたメタフレームバッファ６２４０で複数のラインバッファは、他の時点で目標フレームの他のメタ行のソースフレームデータＤｓｆを保存するためのラインバッファを再使用することで減少する。
例えば、もし、補間ウィンドウが４ｘ８であり、望ましい最大回転角が±４５゜である時、水平化されたソースフレームデータで満たされた１１本ラインバッファが目標フレームの１つの行Ｒｄのピクセルを補間するために必要である。
したがって、１１本のラインバッファを必須的に含む水平化されたメタフレームバッファ６２４０は、±４５゜までの回転角度でラスター順序で目標フレームのすべての行Ｒｄのすべてのピクセルを４ｘ８補間するために最小限十分である。
１１本より少ないラインバッファを提供することは、４ｘ８補間することができる回転角を効果的に減らすことができる。一方、１１本より多いラインバッファを提供することは、行Ｒｄの順序の４ｘ８補間のために、例えば、ある補間ウィンドウを分割する水平ブレイクラインのマッピングに基づいて、ラインバッファのラウンドロビンの再使用を可能にする。
【００７７】
図８は、図２のメタフレームバッファ６２４０に保存された目標メタフレームの水平化されたメタ行にイメージデータＤｓｆからムービング・ウィンドウ補間によって目標フレームの各行Ｒｄの各ピクセルを順次に補間する方法を説明するためのフローチャートである。
決定段階ｄＳ６２１０で、現在選択された目標フレーム行Ｒｄの補間を進行するために、水平化されたメタフレームバッファ６２４０で十分に水平化されたソースフレームデータＤｓｆが利用可能であるか否かを判定する。
【００７８】
もし、十分に水平化されたソースフレームデータＤｓｆが利用可能である時（決定段階ｄＳ６２１０の「はい」の分枝）、目標フレームの現在選択された行Ｒｄの補間は、水平化されたメタフレームバッファ６２４０のラインバッファに位置した要求されるソースフレームデータＤｓｆの垂直位置及び水平位置を確認することから始める。
現在の行Ｒｄの補間のための垂直開始位置は、回転角に依存し、Ｓ６２２０段階で計算する。
同様に、目標フレームの現在行Ｒｄで第１ピクセル（第１列Ｃｄ＝０）の補間のための水平開始位置は、回転角に依存し、Ｓ６２２０段階で計算する。
【００７９】
Ｓ６２３０段階で、目標フレームの現在選択された行Ｒｄのすべてのピクセルの補間方法が実行され、選択された行Ｒｄの補間された目標フレームデータＤｄｆは、ラスター順序で出力される。
補助段階ｓＳ６２３２で、目標フレームの列Ｃｄ及び行Ｒｄでのピクセルは、ラインバッファ（例えば、４ｘ４又は４ｘ８補間ウィンドウを使用）に保存された水平化されたイメージデータＤｓｆから補間される。
決定段階ｄＳ６２３４で、目標フレームの現在選択された行Ｒｄの最後の列（Ｃｄ＝Ｍ）でのピクセルが補間されたか否かを判定する。
【００８０】
もし、現在選択された行Ｒｄの最後のピクセル（Ｃｄ＝Ｍ）が補間されていない時（決定段階ｄＳ６２３４の「いいえ」の分枝）、列インデックスは増加し（Ｒｄ＝Ｒｄ＋１）、補間補助段階ｓＳ６２３２は、目標フレームの現在選択された行Ｒｄに次のピクセルに対して反復する。
もし、現在選択された行Ｒｄの最後のピクセル（Ｃｄ＝Ｍ）が補間された時（決定段階ｄＳ６２３４の「はい」の分枝）、
決定段階ｄＳ６２５０である、目標フレームの最後の行（Ｒｄ＝Ｎ）が補間されたか否かを判定する工程を次に実行する。
【００８１】
もし、目標フレームの最後の行（Ｒｄ＝Ｎ）が補間されていない時（決定段階ｄＳ６２５０の「いいえ」の分枝）、行インデックスは増加し（Ｒｄ＝Ｒｄ＋１）、決定段階ｄＳ６２１０の実行は、目標フレームの次の行Ｒｄのために反復される。
もし、目標フレームの最後の行（Ｒｄ＝Ｎ）が補間された時（決定段階ｄＳ６２５０の「はい」の分枝）、目標フレームは、全部補間され、あらゆる目標フレームデータＤｄｆは、ラスター順序で出力される。
【００８２】
図９は、図２の水平化されたメタフレームバッファ６２４０にルーマＹメタフレームバッファ（６２４１−Ｙ）の実施形態（６２４１−２−Ｙ）のメモリマップである。
メモリマップは、補間のためにソースフレームデータＤｓｆの整列と開始位置とを表わす。
本実施形態では、７ラインバッファ（６２４１−Ｙ）は、図８に示す方法の段階を行うために提供される。
シングルポートＳＲＡＭが、各ラインバッファＬＢ０〜ＬＢ６のために使われる。７本のラインバッファは、目標フレーム行Ｒｄの補間工程中に同時に読み出すことができる。
【００８３】
７本のラインバッファが同時に読み出される間に、１つ又はそれ以上の追加的なラインバッファ（図示せず）が、次の目標フレーム行Ｒｄ＋１の補間のために要求されるソースフレームデータＤｓｆに記録される。
ソースフレームデータＤｓｆの４ｘ８／４ｘ４ウィンドウ領域は、目標フレームの各ピクセルの補間動作のために要求される。
回転の特徴のために、１つの目標フレーム行Ｒｄを補間するために必要な要求されるソースフレームデータＤｓｆは、ソースフレームデータ（図４の４ｘ４ピクセル補間ウィンドウの図及び図１３及び図１４の４ｘ８補間ウィンドウ領域の図参照）を含む４つ以上のラインバッファを含みうる。
【００８４】
したがって、複数の（例えば、７本の）ラインバッファが補間ウィンドウ動作を支援するために提供されうる。
８ビット４：２：２（単一平面、インターリーブフォーマットでＹＣデータ）データフォーマットは、±２２．５゜までの回転角を有する実施形態によって支援される。
回転角は、ＤＩＳ補償のために十分な角度範囲であり得る。
他の実施形態で、４：２：２クロマサブサンプリング（ｃｈｒｏｍａ  ｓｕｂｓａｍｐｌｉｎｇ）の場合に、±４５゜までの回転角を支援するために、１１ラインバッファ６２４１−Ｙ及び７ラインバッファ６２４１−Ｃが提供される。
【００８５】
ＤＭＡコントローラ６２３２は、ソースフレームデータＤｓｆを読み出し、ソースフレームデータＤｓｆを７本のルーマＹラインバッファ（６２４１−Ｙ）（６２４１−２−Ｙ参照）及び７本のクロマＣラインバッファ（６２４１−Ｃ）に記録する。
次に、第２アフィン変換エンジン６２５０は、補間された（例えば、回転した）目標フレームの各１つのピクセルを生成するために、ラインバッファからソースフレームルーマＹデータの４ｘ８ピクセルウィンドウ領域（そして、４：２：２クロマサブサンプリングの場合に、ソースフレームのソースフレームクロマデータの４ｘ４ピクセルウィンドウ領域）を読み出し、ラスター順序で回転したイメージ（目標フレーム）のピクセルを出力する。
【００８６】
図２を再び参照すると、図９の実施形態（６２４１−２−Ｙ）によって、１６個の１１５２ｘ１７内部ＳＲＡＭｓ（ルーマＹバッファ（６２４１−Ｙ）のための８個、そして、クロマＣバッファ（６２４１−Ｃ）のための８個）は、±２２．５゜の回転角までに目標出力イメージのＨＤ解像度（１９２０ｘ１０８０）を支援する適切な補間ウィンドウデータを提供するために、メタフレームバッファ６２４０の複数のラインバッファとして使われる。さらに大きい水平イメージサイズは、水平ラインバッファ面積を増加させることで支援されうる。
【００８７】
図８に示す方法を実行するに当って、第１アフィン変換エンジン６２２０は、ルーマＹメタフレームバッファ（６２４１−２−Ｙ）の最初の７本のラインバッファを満たすＤＭＡコントローラ／リードマスタ６２３２を制御するための水平位置情報（例えば、読み出しアドレス）を生成する。
水平位置情報は、ブレイクライン位置情報（例えば、１ビット）をさらに含む。
ブレイクライン位置情報は、ラスター順序で目標フレームのピクセルを補間（回転、スケーリング）する間に、使用のために第２アフィン変換エンジン６２５０に伝送される。
【００８８】
目標メタフレームの各メタ行Ｘｄの左側端の位置が、目標メタフレームの各メタ行Ｘｄの左側端の位置と対応するラインバッファ（例えば、ＬＢ０〜ＬＢ５）内でコピーされる時、水平位置情報は、目標メタフレームの各メタ行Ｘｄの左側端の位置に基づいた水平開始位置情報（例えば、ＬＢ０〜ＬＢ５）をさらに含む。
例えば、ラインバッファＬＢ０〜ＬＢ５に水平化されて保存された目標メタフレームのメタ行Ｘｄの各左側端は、ＬＢ０〜ＬＢ５のうちからそれぞれのラインバッファの左側端から８ピクセルに位置することができる。
【００８９】
図９の太い実線の長方形は、ラインバッファＬＢ０〜ＬＢ５に水平化されて保存された目標メタフレームの６ｘ１５ピクセル領域を表わしており、この長方形は、ラインバッファＬＢ０〜ＬＢ５の左側端から水平開始地点（例えば、ＨｓｔａｒｔＬＢ０−５）８ピクセルに位置する。
ラインバッファＬＢ６に保存されたメタ行Ｘｄのイメージデータは、ラインバッファＬＢ０〜ＬＢ５に保存されたメタ行Ｘｄのイメージデータと整列しない。したがって、ラインバッファＬＢ６に保存されたメタ行Ｘｄのイメージデータは、他の水平ラインバッファメモリアドレスで始める。
【００９０】
各目標ソースフレームデータアクセスメモリアドレスは、ＡＰＢバスを通じて受信された主要変換Ｐ（ｎ）のアフィン係数に基づいたアフィン変換方程式によって計算される。
読み出しＤＭＡチャネルは、ＡＸＩバスマスタインターフェースを通じてソースフレームバッファ６２３０（または、外部ＤＲＡＭ）とアクセスする。
ＡＸＩバスマスタインターフェースは、１２８ビットデータバス幅であり得る。
ＡＸＩバスでＤＭＡ／読み出しマスタ６２３２は、ＡＰＢ  Ｉ／Ｆ６２１２及び１つまたはそれ以上の環境設定レジスタ６２１０を通じてＡＰＢバスから受信されたイメージ位置及び回転情報Ｐ（ｎ）に基づいた第１アフィン変換エンジン６２２０から命令（目標ソースフレームデータアクセスメモリアドレス）を受信する。
【００９１】
第１アフィン変換エンジン６２２０は、対応する物理的メモリ位置を生成するためのアフィンパラメータ（ｓｘ、ｓｙ、ｒｘ、ｒｙ、ｔｘ、ｔｙ）に基づいて、図９の（６２４１−２−Ｙ）の最初の７本のラインバッファＬＢ０〜ＬＢ６を満たすために必要なソースフレームデータＤｓｆのソースフレームバッファ６２３０で位置を確認する。
図３に示した目標フレーム（０，０）、（０，ｄｓｔ＿ｗ）、（ｄｓｔ＿ｈ，０）、及び（ｄｓｔ＿ｈ，ｄｓｔ＿ｗ）の４個のコーナー及びアフィンパラメータ（ｓｘ、ｓｙ、ｒｘ、ｒｙ、ｔｘ、ｔｙ）は、関連したソースフレームデータ位置（アドレス）を計算するために、第１アフィン変換エンジン６２２０によって使われる。
ブレイクラインの分配のために、要求されるソースフレームデータの各メタ行Ｘｄは、目標メタフレーム座標Ｘｄ［０］［ｙ］で各メタ行の第１ピクセルの位置に基づいて計算された複数の水平開始位置を含みうる。ここでｙは、メタ行のインデックスであり、０から始めて目標メタフレームの最後の垂直位置［Ｎ］まで増加する。
【００９２】
第１アフィン変換エンジン６２４１は、次のようなアフィン（回転）方程式からブレイクライン位置情報を計算する。
2012165363.tif 000003
ここで、Ｙｄ＝Ｃ（整数）；Ｘｄ［ｍ］は、Ｘｄ［０］＝Ｘｄｉ（最小）からの値；Ｘｄ［ｍ］＝Ｘｄｅ．（整数）；Ｘｄ［ｍ＋１］＝Ｘｄ［ｍ］＋１；すべてのＸｓ［ｍ］［Ｃ］及びＹｓ［ｍ］［Ｃ］は、整数位置に四捨五入される。Ｘ’［Ｉ］は、Ｙｓ［ｍ］［Ｃ］≠Ｙｓ［ｍ−１］［Ｃ］である時のみＸｓ［ｍ］［Ｃ］として設定される。
【００９３】
各要求されるソースフレームデータは、開始水平位置（Ｘｓ［０］［ｎ］）から終了水平位置（Ｘｓ［Ｍ］［ｎ］）までアクセスされる。
ここで、Ｙｄは、０からＭ（目標フレームの最大値）までであり、Ｔｘは、水平オフセットである（図３）。
アフィン変換と各ソース垂直位置計算のために、目標垂直位置は、１つのソースフレーム行以上進行しうる。
この場合、ＤＭＡコントローラ６２３２は、以前（ｎ−１）番目の行と現在（ｎ＋１）番目の行との間の（ｎ）番目の行でソース垂直位置を設定した後、（ｎ＋１）番目の行を次のソースフレームデータ垂直開始アクセス位置として設定する。
【００９４】
ＤＭＡコントローラ６２３２は、ブレイクライン情報（ソースフレーム垂直ライン位置）のセットを利用することによって、メタ行ごとに要求されるソースフレームデータＤｓｆを読み出す。
ブレイクライン情報のセットは、目標メタフレーム水平座標Ｘｄ［ｘ］［０］に基づいて計算される。
ここで、ｘは、メタ行でピクセルの列位置のインデックスであり、０から始めて目標フレームの行の最後の水平ピクセル［Ｍ］まで増加する。
ＤＭＡコントローラ６２３２によって読み出された各メタ行は、図９のルーマＹメタフレームバッファ（６２４１−２−Ｙ）の１つのラインバッファにコピーされる。
【００９５】
ソースフレームでブレイクラインの水平位置は、やはりすべてのラインバッファで垂直に整列されているために、ブレイクライン情報は、やはり（図１２で１つのビットデータとして示したように）保存され、第２アフィン変換エンジン６２５０によって行われる補間工程の間に補間ウィンドウ形状を定義するために使われる。Ｘ’［Ｉ］は、変化された垂直位置を表わす（増加または減少は、回転方向に依存する）。
ＤＭＡコントローラ６２３２は、目標フレームの水平行に合わせて整列されたラインバッファで要求されるソースフレームデータにアクセスして保存する間に、以下に示す位置（アドレス）情報は、ソースフレーム読み出し工程の間に保存され、第２アフィン変換エンジン６２５０に利用可能になるように生成する。
水平開始位置；
垂直開始位置；
ＡＸＩ読み出し処理開始及び終了位置。
【００９６】
本実施形態で、ＡＸＩデータバスの好ましいデータバス幅は、１２８ビットである（ＲＤＡＴＡ＝ＷＤＡＴＡ＝１２８ビット）。
したがって、各ＡＸＩ読み出し要求処理は、第２補間エンジン６２５０が正しい形状補間ウィンドウデータを選択するように分かるだけでなく、もし、ＡＸＩ読み出しデータの開始又は終了位置が１２８ビットに整列されたものではない時、余分のデータを捨てるために分かるように保存される必要があるブレイクライン位置情報を表わす。
優先的に、１つのＡＸＩ読み出し処理内で各有効な要求されるソースフレームデータは、補間の間にブレイクライン位置間の同じ水平位置でクロマＣＢ、ＣＲデータの不一致を防止するために、ルーマＹデータの偶数番目のピクセル位置から始める。
【００９７】
要求されるＡＸＩ読み出し処理基準は、次の条件に依存する。
ブレイクライン条件とピクセル距離を処理するアフィン変換は、各ラインの最初の要求を除いて最後のブレイクライン位置から７ピクセルより多い。
以前ラインと関連して整列されたブレイクライン位置、及び連続して要求されるソースフレームデータカウントは、上記２個の条件の工程の間に最大ＡＸＩバースト処理長さに至る。
【００９８】
図１０は、図８に示した方法の段階を行うために、メタフレームラインバッファ（６２４１−２−Ｙ）に保存されたメタ行のムービング・ウィンドウ補間の水平開始位置での変化を示す図９の実施形態（６２４１−２−Ｙ）のメモリマップである。
図８に示した方法の実行において、第１アフィン変換エンジン６２２０は、ルーマＹメタフレームバッファ（６２４１−２−Ｙ）の最初の７本ラインバッファＬＢ０〜ＬＢ６を満たすためのＤＭＡコントローラ／読み出しマスタ６２３２を制御するために、水平位置情報（例えば、読み出しアドレス）を生成する。
【００９９】
目標メタフレームの各メタ行Ｘｄの左側端の位置が、目標メタフレームの各メタ行Ｘｄの左側端の位置と対応するラインバッファ（例えば、ＬＢ０〜ＬＢ５）内でコピーされる時、水平位置情報は、目標メタフレームの各メタ行Ｘｄの左側端の位置に基づいた水平開始位置情報（例えば、ＨｓｔａｒｔＬＢ０〜５）を含む。
例えば、ラインバッファＬＢ０〜ＬＢ５に水平化されて保存された目標メタフレームのメタ行Ｘｄの各左側端は、ＬＢ０〜ＬＢ５のうちからそれぞれのラインバッファの左側端から１６ピクセル（ＨｓｔａｒｔＬＢ０〜５＝１６）に位置することができる。
【０１００】
一方、ラインバッファＬＢ６に水平化されて保存された目標メタフレームのメタ行Ｘｄの左側端は、ラインバッファＬＢ６の左側端から８ピクセル（ＨｓｔａｒｔＬ  Ｂ６＝８）に位置する。
ラインバッファＬＢ０〜ＬＢ５に保存されたイメージデータは、先にフェッチされる。
水平アドレスポインタは、ラインバッファＬＢ０〜ＬＢ５に対して８であり、水平アドレスポインタは、ラインバッファＬＢ６に対しては０であるが、ソースイメージデータの同じ水平位置を示す。
したがって、ラインバッファＬＢ６に保存されたメタ行Ｘｄのイメージデータは、他の水平ラインバッファメモリアドレスで始める。
【０１０１】
図１１は、メタフレームラインバッファ（６２４１−２−Ｙ）に保存されたメタ行のムービング・ウィンドウ補間の垂直開始位置ウィニーシフト（ｗｉｎｙ  ｓｈｉｆｔ）での変化を示す図９のラインバッファの実施形態（６２４１−２−Ｙ）を説明するための図である。
目標フレームの各行Ｒｄのムービング・ウィンドウ補間工程の間に補間の垂直位置を表わすための図８に示した方法を行う図１のＤＩＳ回路の図２のＤＩＳ補償ユニット６０００の実施形態で、２ビット内部信号がある。
補間ウィンドウ（ｘ’、ｙ’）のラインバッファ位置のセンターは、ブレイクライン指示子（ｂｒｅａｋｉｎｇ  ｌｉｎｅ  ｉｎｄｉｃａｔｏｒ）に依存して変わる。
【０１０２】
表１は、２ビット内部信号の意味を示す。
表１  ラインバッファ垂直ウィンドウ範囲選択命令（ウィニーシフト）
ＷＩＮＹＳＨＩＦＴ［１：０］
【表１】
2012165363.tif 000004
【０１０３】
図１１で、矢印の終端からなるラインによって示したように、ラインバッファＬＢ０〜ＬＢ６の他のセットは、４個の他のウィニーシフト命令に対応する。
次のセンターライン位置を表わすために、３種タイプのラインバッファ垂直方向行動がある。
もし、現在センターラインが、ｎである時、
１．  増加−次の垂直ソースフレームラインに進行（ｎ＋１）
２．  ライン反復−同じ垂直ソースフレームラインで留まる（ｎ）
３．  スキップライン−２本の垂直ソースフレームラインに進行（ｎ＋２）
【０１０４】
表２は、ラインバッファで補間ウィンドウセンターの垂直方向動きに関連した行動の特徴を示す。
【表２】
2012165363.tif 000005
【０１０５】
図１２は、垂直ブレイクライン場所の位置を表わすビットを保存するためのラインバッファを含む図２のメタフレームラインバッファ６２４０に保存されたルーマＹ及びクロマＣＢ及びＣＲソースフレームデータの保存の例示的なモードを説明するための図である。
ソースイメージデータ（ルーマＹデータ及びクロマＣＢ、ＣＲデータ）及びブレイクライン情報ビットは、図１２に示したラインバッファに保存される。垂直ブレイクライン場所の位置を表わすビットは、水平位置ごとに１ビットを含み、１ビットは、ブレイクラインの存在または非存在を表わす。
【０１０６】
図１３は、図２の水平化されたメタフレームバッファ６２４０に１つの垂直ブレイクラインによって（ソースフレームに対して目的フレームの時計回り方向回転に起因して）分割された例示的な４ｘ８ピクセル補間ウィンドウの形状を表わす図である。
円は、水平化の前に４ｘ８ピクセル補間ウィンドウの数学的中心（ｍａｔｈｅｍａｔｉｃａｌ  ｃｅｎｔｅｒ）と、補間されなければならない目標フレームのピクセルの大略の位置とを表わす。
【０１０７】
図１４の（ａ）〜（ｄ）は、目標フレームの他の行Ｒｄでピクセルを補間するために分割されていない例示的な４ｘ８ピクセル補間ウィンドウの規則的な長方形状と垂直位置とを示した図である。
図１４の（ａ）〜（ｄ）は、７ライン水平化されたメタフレームラインバッファに保存されたメタ行のムービング・ウィンドウ補間の垂直開始位置ウィニーシフトの他の値を表わす。
目標フレームピクセルは、図２の水平化されたメタフレームバッファ６２４０で４本のラインバッファに保存された目標メタフレームの４個の水平のメタ行に含まれたソースフレームデータＤｓｆから補間される。
各垂直開始位置ウィニーシフトの値も表わす。
【０１０８】
図１５の（ａ）〜（ｅ）は、図２の水平化されたメタフレームバッファ６２４０に保存された目標メタフレームの水平メタ行に含まれたソースフレームデータＤｓｆから第１の時計回り方向に回転した目標フレームの他のピクセルを補間するために分割された例示的な４ｘ８ピクセルムービング・ウィンドウの形状及び位置を表わす図である。
図１５の（ａ）〜（ｅ）は、図２の水平化されたメタフレームバッファ６２４０に１つの垂直ブレイクラインによってソースフレームに対する目標フレームの時計回り方向回転に起因して分割された例示的な４ｘ８ピクセル補間ウィンドウの形状を表わす図である。
各垂直開始位置ウィニーシフトの値も表わす。
【０１０９】
図１５の（ｆ）〜（ｊ）は、図２の水平化されたメタフレームバッファ６２４０に保存された目標メタフレームの水平メタ行に含まれたソースフレームデータＤｓｆから第２の逆時計回り方向に回転した目標フレームの他のピクセルを補間するために分割された例示的な４ｘ８ピクセルムービング・ウィンドウの形状及び位置を表わす図である。
図１５の（ｆ）〜（ｊ）は、図２の水平化されたメタフレームバッファ６２４０に１つの垂直ブレイクラインによってソースフレームに対して目標フレームの逆時計回り方向回転に起因して分割された例示的な４ｘ８ピクセル補間ウィンドウの形状を表わす図である。
【０１１０】
図１４の（ａ）〜（ｄ）及び図１５の（ａ）〜（ｊ）のそれぞれにおいて、各４ｘ８補間ウィンドウ領域内には、少なくとも１つのブレイクラインがある。単に１つのブレイクラインが４ｘ８補間ウィンドウ領域内で発生するために、デザイン選択としてのこの制限は、具現複雑性（ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  ｃｏｍｐｌｅｘｉｔｙ）を減らすことができるが、補間されうる回転角の範囲を減らす。
適切なソースフレームデータは、ブレイクラインマーキング点に基づいて収集されなければならない。
補間ソースフレームデータの各行は、同じソースフレームラインからもたらされなければならない。第２アフィン変換エンジンは、出力座標情報を第１アフィン変換エンジンによって計算され、ある内部ＦＩＦＯｓ及びラインバッファに保存された座標情報と比べることで、補間ウィンドウ位置（形状）を決定する。
【０１１１】
本発明は、ソースフレームデータアクセスのオーバーヘッドを減らし、出力目標フレームデータのラスター順序でスキャンタイプを生成させる。
出力目標フレームデータのラスタースキャン順序は、対角線に分配されたソースフレームデータを複数のラインバッファへの再配列によって具現される。
【０１１２】
本発明の概念の実施形態の利用は、オーバーヘッドを減らすことができる。
何故ならば、タイリング（ｔｉｌｉｎｇ）方法において、ソースフレームデータの重複読み出しに比べれば、本発明のソースフレームデータは、単に一回だけ読み出されるためである。
また、追加的な計算やメモリオーバーヘッドなしにラスター順序目標フレームデータ出力シーケンスを滑らかに生成することができる。
【０１１３】
上記開示された発明は、実施形態として考慮されたものであるので、制限されて解析されてはならず、添付の請求項は、発明の思想によって変形、添加、及び他の実施形態まで含むものと理解しなければならない。
したがって、後続する請求項及びその均等物の最大限の解析によって発明の保護範囲は、法によって許容される最大の内容まで決定されなければならず、前述した詳細な説明によって制限的に解析されてはならない。
【符号の説明】
【０１１４】
２０００    検出ユニット（ＤＵ）
４０００    軌跡ユニット（ＴＵ）
６０００    ＤＩＳ補償ユニット（ＣＵ）
６２１０    環境設定レジスタ
６２１２    ＡＰＢインターフェース
６２２０    第１アフィン変換エンジン
６２３０    ソースフレームバッファ
６２３２    ＤＭＡコントローラ／読み出しマスタ
６２４０    水平化されたメタフレームバッファ
６２４１−Ｙ    ルーマＹメタフレームバッファ
６２４１−Ｃ    クロマＣラインバッファ
６２５０    第２アフィン変換エンジン
６２５２    並列データ出力インターフェース
【図１】
2012165363.tif 000006
【図２】
2012165363.tif 000007
【図３】
2012165363.tif 000008
【図４】
2012165363.tif 000009
【図５】
2012165363.tif 000010
【図６】
2012165363.tif 000011
【図７Ａ】
2012165363.tif 000012
【図７Ｂ】
2012165363.tif 000013
【図８】
2012165363.tif 000014
【図９】
2012165363.tif 000015
【図１０】
2012165363.tif 000016
【図１１】
2012165363.tif 000017
【図１２】
2012165363.tif 000018
【図１３】
2012165363.tif 000019
【図１４】
2012165363.tif 000020
【図１５】
2012165363.tif 000021
【外国語明細書】
2012165363000001.pdf