(57)【特許請求の範囲】
【請求項１】
バッファとプロセッサとを有するコンピュータシステムにおける方法において、
前記プロセッサが、ピクセルの行及び列を含む入力フレームを受け取って、前記バッファに記憶するステップと、
前記プロセッサが、前記バッファから前記入力フレームを取り出し、前記入力フレームの前記行及び列に重み適応過完備順変換を適用することによって、前記入力フレームに対応する係数の組を取得するステップと、
前記重み適応過完備順変換が、２次元順変換である２−Ｄ順変換を含み、
前記重み適応過完備順変換が、
（１）  １≦ｊ≦Ｗのｊについて、Ｘ１（１：Ｈ−Ｐ＋１，ｊ，１：Ｐ）＝ＯＴ１（Ｘ（１：Ｈ，ｊ））を計算するステップと、
（２）  １≦ｉ≦Ｈ−Ｐ＋１のｉについて、Ｙ（ｉ，１：Ｗ−Ｐ＋１，ｍ，１：Ｐ）＝ＯＴ１（Ｘ１（ｉ，１：Ｗ，ｍ））を計算するステップと、
によって実行され、
Ｘ１（ｉ，ｊ）は、バッファに記憶され、
Ｙ（ｉ，ｊ，ｍ，ｎ）は、左上のピクセルが（ｉ，ｊ）で表されるＸ内のＰ×Ｐブロックの２−Ｄ変換における第（ｍ，ｎ）係数を表し、Ｈ及びＷは、フレームの高さ及び幅を表し、Ｐは、変換のサイズを表し、ＯＴ１（）は、１−Ｄ重み適応過完備変換オペレーションを表す、方法。
【請求項２】
前記プロセッサが、前記入力フレームの前記係数の組にデータ処理オペレーションを適用して、処理された係数の組を取得するステップを更に含む、請求項１に記載の方法。
【請求項３】
前記２−Ｄ順変換を適用することが、
前記入力フレームの行の第１の組に第１の１次元（１−Ｄ）変換を適用して、列変換結果を取得することと、
前記列変換結果の行に第２の１−Ｄ変換を適用することと、を含む、請求項１に記載の方法。
【請求項４】
前記第１の１−Ｄ変換および前記第２の１−Ｄ変換を適用することが、
第１のバッファ内のデータのすべての列にわたって列方向に１−Ｄ順変換を実行すること、を含む、請求項３に記載の方法。
【請求項５】
前記重み適応過完備順変換が、高速アダマール２−Ｄ順変換を含む、請求項１に記載の方法。
【請求項６】
前記１−Ｄ重み適応過完備変換の少なくとも１つが、高速アダマール１−Ｄ変換を含む、請求項１に記載の方法。
【請求項７】
前記列変換結果が、行の前記第１の組に等しい行数を有するバッファ内に保存され、行の前記第１の組が、前記入力フレームの行総数よりも小さいサイズを有する、請求項３に記載の方法。
【請求項８】
前記第２の１−Ｄ変換が、前記バッファの前記行数に等しい行数を有するブロックに基づいて、前記列変換結果の各行について実行される、請求項７に記載の方法。
【請求項９】
前記データ処理オペレーションが、あらかじめ定められたノイズ除去規則に基づいて実行されるノイズ除去オペレーションを含む、請求項２に記載の方法。
【請求項１０】
バッファとプロセッサとを有するコンピュータシステムにおける方法において、
前記プロセッサが、ピクセルの行及び列を含む入力フレームを受け取って、前記バッファに記憶するステップと、
前記プロセッサが、前記バッファから前記入力フレームを取り出し、前記入力フレームの前記行及び列に重み適応過完備順変換を適用することによって、前記入力フレームに対応する係数の組を取得するステップと、を含み、
前記重み適応過完備順変換が、
現在の入力フレームのＰ個の行を含む第１のバッファ及び過去のフレームのＰ個の行を有する第２のバッファ内のデータに対して列方向に順変換を計算し、結果を第３及び第４のバッファ内にそれぞれ保存するステップと、
前記第３及び第４のバッファ内のデータに対して行方向に前記順変換を計算し、結果を第５及び第６のバッファ内に保存するステップと、
前記第５及び第６のバッファ内の係数に基づいて、前記第５のバッファ内の係数に対して画像処理オペレーションを実行し、結果を第７のバッファ内に保存するステップと、
前記第７のバッファ内の係数の行方向の逆変換を前記逆変換の重み乗算に基づいて計算し、結果を第８のバッファ内に保存するステップと、
１以上のロケーションに保存されたデータに重みを加算することによって、第１０のバッファ内のデータを更新するステップと、
前記第８のバッファ内のデータに対して列方向に逆変換を計算し、結果を第９のバッファ内に保存するステップと、
前記第９のバッファ及び前記第１０のバッファ内のデータを使用して実行される除算オペレーションの結果に基づいて出力フレームバッファを更新するステップと、によって実行される、方法。
【請求項１１】
前記出力フレームバッファを更新するステップによる更新処理の後に、
前記現在の入力フレームの前記Ｐ個の行を含むバッファ、前記過去の出力フレームの前記Ｐ個の行を含むバッファ、前記第９のデータバッファ、及び前記第１０のデータバッファの前記Ｐ個の行のそれぞれを他の行に移動して更新するステップを更に含む、請求項１０に記載の方法。
【請求項１２】
前記重み適応過完備順変換を再び実行する場合に、前記第３、第４、及び第８のバッファが、ゼロに初期化されない、請求項１０に記載の方法。
【請求項１３】
変換係数の入力の組を受け取るステップと、
変換係数の前記入力の組に重み適応過完備逆変換を適用して、出力フレームを取得するステップと、を含み、
重み適応過完備逆変換を適用するステップが、
第１、第２、及び第３のバッファを初期化するステップと、
入力画像またはビデオフレームにおける特定の行と列に左上のピクセルを有するピクセルのブロックの変換係数に対して１−Ｄ逆変換及び重み乗算を実行するステップと、
前記第３のバッファの現在の内容に前記１−Ｄ逆変換及び重み乗算の結果を加算することによって、前記第３のバッファを更新するステップと、
前記第２のバッファ内のロケーションに重みを加算することによって、前記第２のバッファを更新するステップと、
特定の行のいずれか可能な列に左上のピクセルがあるピクセルのすべてのブロックからの前記変換係数が処理されるまで、実行及び更新のオペレーションを繰り返すステップと、
前記第３のバッファ内のデータに対して列方向に１−Ｄ逆変換を実行するステップと、
前記第１のバッファの現在の内容に列変換における前記１−Ｄ逆変換の結果を加算することによって、前記第１のバッファを更新するステップと、
いずれか可能な行といずれか可能な列に左上のピクセルがあるピクセルのすべてのブロックからの前記変換係数が処理されるまで、前記第３のバッファの初期化、１−Ｄ逆変換の実行、並びに前記第１、第２、及び第３のバッファの更新のオペレーションを繰り返すステップと、
前記第１のバッファ内のデータを前記第２のバッファに属するデータで除算することによって、除算オペレーションを実行するステップと、を含む、方法。
【請求項１４】
前記重み乗算が、値の離散集合から選択される前記重みと、重み適応逆変換行列とを用いて、逆変換オペレーションによって実行される、請求項１３に記載の方法。
【請求項１５】
前記除算オペレーションが、乗算、加算、及びシフトの使用によって近似される、請求項１３に記載の方法。
【請求項１６】
前記逆変換を適用するステップが、２つのオペレーションにおいて２次元逆変換を実行することを含み、前記２つのオペレーションの各々が、１次元逆変換を含む、請求項１３に記載の方法。
【請求項１７】
前記１−Ｄ逆変換を実行することが、少なくとも１つの重み適応逆変換に対して重み乗算を実行することを含む、請求項１３に記載の方法。
【請求項１８】
前記重み適応逆変換に基づいて前記重み乗算を実行することが、重みの行列内に保存された重みを選択することを含む、請求項１７に記載の方法。
【請求項１９】
変換係数の前記入力の組が、処理された変換係数に対応する、請求項１３に記載の方法。
【請求項２０】
前記処理された変換係数が、あらかじめ定められたノイズ除去規則に基づいて実行されるノイズ除去オペレーションに対応する、請求項１９に記載の方法。
【請求項２１】
格納した命令を含む機械可読媒体であって、前記命令は、プロセッサによって実行されたときに、前記プロセッサに
ピクセルの行及び列を含む入力フレームを受け取り、バッファに記憶させるステップと、
前記バッファに記憶された入力フレームの前記行及び列に重み適応過完備順変換を適用することによって、前記入力フレームに対応する係数の組を取得するステップと、含み、
前記重み適応過完備順変換が、２次元順変換である２−Ｄ順変換を含み、
前記重み適応過完備順変換が、
（１）  １≦ｊ≦Ｗのｊについて、Ｘ１（１：Ｈ−Ｐ＋１，ｊ，１：Ｐ）＝ＯＴ１（Ｘ（１：Ｈ，ｊ））を計算するステップと、
（２）  １≦ｉ≦Ｈ−Ｐ＋１のｉについて、Ｙ（ｉ，１：Ｗ−Ｐ＋１，ｍ，１：Ｐ）＝ＯＴ１（Ｘ１（ｉ，１：Ｗ，ｍ））を計算するステップと、
によって実行され、
Ｘ１（ｉ，ｊ）は、バッファに記憶され、
Ｙ（ｉ，ｊ，ｍ，ｎ）は、左上のピクセルが（ｉ，ｊ）で表されるＸ内のＰ×Ｐブロックの２−Ｄ変換における第（ｍ，ｎ）係数を表し、Ｈ及びＷは、フレームの高さ及び幅を表し、Ｐは、変換のサイズを表し、ＯＴ１（）は、１−Ｄ重み適応過完備変換オペレーションを表す、ようにオペレーションを実行させる、機械可読媒体。
【請求項２２】
格納した命令を含む機械可読媒体であって、前記命令は、プロセッサによって実行されたときに、前記プロセッサに
ピクセルの行及び列を含む入力フレームを受け取り、第１のバッファに記憶させるステップと、
前記第１のバッファに記憶された入力フレームの前記行及び列に重み適応過完備順変換を適用することによって、前記入力フレームに対応する係数の組を取得するステップと、含み、
前記重み適応過完備順変換が、
現在の入力フレームのＰ個の行を含む前記第１のバッファ及び過去のフレームのＰ個の行を有する第２のバッファ内のデータに対して列方向に順変換を計算し、結果を第３及び第４のバッファ内にそれぞれ保存するステップと、
前記第３及び第４のバッファ内のデータに対して行方向に前記順変換を計算し、結果を第５及び第６のバッファ内に保存するステップと、
前記第５及び第６のバッファ内の係数に基づいて、前記第５のバッファ内の係数に対して画像処理オペレーションを実行し、結果を第７のバッファ内に保存するステップと、
前記第７のバッファ内の係数の行方向の逆変換を前記逆変換の重み乗算に基づいて計算し、結果を第８のバッファ内に保存するステップと、
１以上のロケーションに保存されたデータに重みを加算することによって、第１０のバッファ内のデータを更新するステップと、
前記第８のバッファ内のデータに対して列方向に逆変換を計算し、結果を第９のバッファ内に保存するステップと、
前記第９のバッファ及び前記第１０のバッファ内のデータを使用して実行される除算オペレーションの結果に基づいて出力フレームバッファを更新するステップと、によって実行される、ようオペレーションを実行させる、機械可読媒体。
【請求項２３】
格納した命令を含む機械可読媒体であって、前記命令は、プロセッサによって実行されたときに、前記プロセッサに
変換係数の入力の組を受け取るステップと、
変換係数の前記入力の組に重み適応過完備逆変換を適用して、出力フレームを取得するステップと、を含み、
重み適応過完備逆変換を適用するステップが、
第１、第２、及び第３のバッファを初期化するステップと、
入力画像またはビデオフレームにおける特定の行と列に左上のピクセルを有するピクセルのブロックの変換係数に対して１−Ｄ逆変換及び重み乗算を実行するステップと、
前記第３のバッファの現在の内容に前記１−Ｄ逆変換及び重み乗算の結果を加算することによって、前記第３のバッファを更新するステップと、
前記第２のバッファ内のロケーションに重みを加算することによって、前記第２のバッファを更新するステップと、
特定の行のいずれか可能な列に左上のピクセルがあるピクセルのすべてのブロックからの前記変換係数が処理されるまで、実行及び更新のオペレーションを繰り返すステップと、
前記第３のバッファ内のデータに対して列方向に１−Ｄ逆変換を実行するステップと、
前記第１のバッファの現在の内容に列変換における前記１−Ｄ逆変換の結果を加算することによって、前記第１のバッファを更新するステップと、
いずれか可能な行といずれか可能な列に左上のピクセルがあるピクセルのすべてのブロックからの前記変換係数が処理されるまで、前記第３のバッファの初期化、１−Ｄ逆変換の実行、並びに前記第１、第２、及び第３のバッファの更新のオペレーションを繰り返すステップと、
前記第１のバッファ内のデータを前記第２のバッファに属するデータで除算することによって、除算オペレーションを実行するステップと、を含むオペレーションを実行させる、機械可読媒体。
【発明の詳細な説明】
【優先権】
【０００１】
[0001]本特許出願は、２００８年２月５日に出願された「Ｆｌｉｃｋｅｒ  Ｒｅｄｕｃｔｉｏｎ  ｉｎ  Ｖｉｄｅｏ  Ｓｅｑｕｅｎｃｅｓ  Ｕｓｉｎｇ  Ｔｅｍｐｏｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ」と題する米国仮出願第６１／０２６４５３号の優先権を主張し、参照することにより当該仮出願を援用するものである。
【発明の分野】
【０００２】
[0002]本発明の実施形態は、画像及びビデオの信号処理の分野に関するものであり、ピクセル領域の画像／ビデオの変換領域への変換、変換領域における処理、及び、処理された変換領域の画像／ビデオのピクセル領域への変換を伴うものである。より詳細には、本発明は、入力フレームに対して重み適応過完備順変換（ｆｏｒｗａｒｄ  ｗｅｉｇｈｔ−ａｄａｐｔｉｖｅ  ｏｖｅｒ−ｃｏｍｐｌｅｔｅ  ｔｒａｎｓｆｏｒｍ）を実行し、変換係数（ｔｒａｎｓｆｏｒｍ  ｃｏｅｆｆｉｃｉｅｎｔ）に対して信号処理を実行し、処理された変換係数に対して重み適応過完備逆変換（ｉｎｖｅｒｓｅ  ｗｅｉｇｈｔ−ａｄａｐｔｉｖｅ  ｏｖｅｒ−ｃｏｍｐｌｅｔｅ  ｔｒａｎｓｆｏｒｍ）を適用して、出力データ（例えば出力フレーム）を生成することに関するものである。
【発明の背景】
【０００３】
[0003]画像／ビデオ系列の超解像、品質向上、ノイズ除去、フリッカー低減、及び圧縮には、変換を利用する多くの知られた適用例が存在する。これらのプロセスの通常の実施は、コンピュータシステムにおいて計算リソース及びメモリリソースを効率的に利用しないものである。したがって、変換（例えば過完備変換）を含むこれらのプロセスを実行するためのメモリ効率及び計算効率の良い方法が必要とされている。
【発明の概要】
【０００４】
[0004]本発明の実施形態は、画像／ビデオフレームの重み適応過完備順変換、画像／ビデオフレームの重み適応過完備逆変換を実施するための１組のプロセス及びシステムと、重み適応過完備順変換の実行、変換領域における係数の処理、及び重み適応過完備逆変換の実行を同時に行うための高速で低メモリ消費のプロセスと、を含む。
【０００５】
[0005]本発明を例示によって説明するが、本発明は添付の図面の各図において限定されるものではない。図面においては、同じ参照符号は同様の要素を示している。本開示における「ａｎ（一つの）」又は「ｏｎｅ（一つの）」実施形態に対する言及は、必ずしも同じ実施形態に対する言及である必要はなく、そのような言及は、「少なくとも１つ」を意味することに留意されたい。
【図面の簡単な説明】
【０００６】
【図１】重み適応過完備順変換及び逆変換を実行するためのシステムの一実施形態の図である。
【図２Ａ】重み適応過完備順変換を実行し、オプションとして信号処理を適用して、処理された変換係数を取得するためのプロセスの一実施形態のフロー図である。
【図２Ｂ】入力画像／ビデオフレーム及びバッファの実施形態の図である。
【図２Ｃ】図２Ａのブロック２２０において実行されるオペレーションの一実施形態の図である。
【図２Ｄ】図２Ａのブロック２３０において実行されるオペレーションの一実施形態の図である。
【図３Ａ】重み適応過完備逆変換を実行するためのプロセスの一実施形態のフロー図である。
【図３Ｂ】図３Ａのブロック３３５において実行されるオペレーションの一実施形態の図である。
【図３Ｃ】図３Ａのブロック３４０において実行されるオペレーションの一実施形態の図である。
【図３Ｄ】図３Ａのブロック３５０において実行されるオペレーションの一実施形態の図である。
【図４】重み適応過完備順変換の実行、変換領域における処理、及び重み適応過完備逆変換の実行を同時に行うためのシステムの一実施形態の図である。
【図５】本明細書で説明するオペレーションのうちの一以上を実行する例示的なシステムの一実施形態の図である。
【図６】ノイズ除去ビデオフレームを取得するためのプロセスの一実施形態のフロー図である。
【図７】多数の変換を使用してノイズ除去ビデオフレームを取得するためのプロセスの一実施形態のブロック図である。
【図８】品質を向上し及び／又は解像度を高めるためのプロセスの一実施形態のフロー図である。
【図９】アップサンプリングプロセスの一実施形態のフロー図である。
【図１０Ａ】サブフレームタイプのライブラリに対応するマスクの例を示す図である。
【図１０Ｂ】サブフレームタイプのライブラリに対応するマスクの例を示す図である。
【図１０Ｃ】サブフレームタイプのライブラリに対応するマスクの例を示す図である。
【図１０Ｄ】サブフレームタイプのライブラリに対応するマスクの例を示す図である。
【図１０Ｅ】サブフレームタイプのライブラリに対応するマスクの例を示す図である。
【図１０Ｆ】サブフレームタイプのライブラリに対応するマスクの例を示す図である。
【図１０Ｇ】サブフレームタイプのライブラリに対応するマスクの例を示す図である。
【図１０Ｈ】サブフレームタイプのライブラリに対応するマスクの例を示す図である。
【図１０Ｉ】サブフレームタイプのライブラリに対応するマスクの例を示す図である。
【図１０Ｊ】サブフレームタイプのライブラリに対応するマスクの例を示す図である。
【図１０Ｋ】サブフレームタイプのライブラリに対応するマスクの例を示す図である。
【図１０Ｌ】サブフレームタイプのライブラリに対応するマスクの例を示す図である。
【図１０Ｍ】サブフレームタイプのライブラリに対応するマスクの例を示す図である。
【図１１】ピクセルをラスタスキャン順で番号付けする場合の、ピクセルｉにおけるサブフレームｚｉの一例を示す図である。
【図１２】サブフレーム選択処理の一実施形態のフロー図である。
【図１３】サブフレーム用の変換選択プロセスの一実施形態のフロー図である。
【図１４】閾値処理変換係数のための閾値処理プロセスの一実施形態のフロー図である。
【図１５】単調減少階段状関数を示す図である。
【図１６】サブフレームを組み合わせてフレームを形成するためのプロセスの一実施形態のフロー図である。
【図１７】データ整合性オペレーションの一実施形態のデータフロー図である。
【図１８】ビデオ系列に対して画像処理を実行するためのプロセスの一実施形態のフロー図である。
【図１９】サブフレームタイプ選択プロセスの一実施形態のフロー図である。
【図２０】過去の出力フレームからのサブフレーム形成プロセスの一実施形態のフロー図である。
【図２１】空間変換選択プロセスの一実施形態のフロー図である。
【図２２】時間変換選択プロセスの一実施形態のフロー図である。
【図２３】変換係数を閾値処理するための閾値処理プロセスの一実施形態のフロー図である。
【図２４】サブフレームを組み合わせてフレームを生成するためのプロセスの一実施形態のフロー図である。
【図２５】ビデオ系列に対して画像処理を実行するためのプロセスの別の実施形態のフロー図である。
【図２６Ａ】選択されたピクセルのサブセット例を示す図である。
【図２６Ｂ】選択されたピクセルのサブセット例を示す図である。
【図２６Ｃ】選択されたピクセルのサブセット例を示す図である。
【図２６Ｄ】選択されたピクセルのサブセット例を示す図である。
【図２６Ｅ】選択されたピクセルのサブセット例を示す図である。
【詳細な説明】
【０００７】
[0038]画像処理を実行する方法及び装置について説明する。画像処理は、変換領域において実行される。一実施形態では、メモリ及び計算の点で効率的に順変換及び逆変換が実行される。
【０００８】
[0039]本発明の実施形態についての以下の詳細な説明では、添付の図面を参照する。図面においては、同じ参照符号は同様の要素を示しており、本発明が実施され得る特定の実施形態が例示によって示されている。これらの実施形態は、当業者が本発明を実施できるように十分詳細に説明されており、他の実施形態を、本発明の範囲から逸脱することなく利用することができること、また論理的、機械的、機能的、及び他の変更を加えることができることを理解されたい。したがって、以下の詳細な説明は、限定的な意味に理解されるべきではなく、本発明の範囲は、もっぱら添付の特許請求の範囲によって確定される。これらの特定の詳細の幾つかを伴わずとも実施形態が実施され得ることは当業者には明らかであろう。他の例では、ある構造及びデバイスは、様々な実施形態の細部を曖昧にしないように、省略又は簡略化される。本明細書で使用される「ｓｅｔ（組）」という語は、１つの項目を含む、任意の全数の項目のことを指す。
【０００９】
[0040]本発明の実施形態は、米国特許出願第６１／０２６４５３号、第１２／１４０８２９号、及び第１１／３３１８１４号において説明されているプロセスの実施に関するものである。上述のプロセスは、ピクセルを有する様々なブロックに対する２−Ｄ分離可能変換（ｓｅｐａｒａｂｌｅ  ｔｒａｎｓｆｏｒｍ）を処理することを含み、ブロックサイズは、変換のサイズに等しい。一実施形態では、変換において使用されるブロックは、互いにオーバラップすることができる。したがって、各ピクセルは、多数のブロックにおける変換係数で表現され得る。別の実施形態では、ブロックは、ブロック統計量に適応した重みを使用して、スケーリングすることもできる。このタイプの変換の場合、順変換は、重み適応過完備順変換と呼ばれ、逆変換は、重み適応過完備逆変換と呼ばれる。
【００１０】
＜順変換及び逆変換＞
【００１１】
[0041]図１は、上で説明した信号処理技法とともに重み適応過完備順変換及び逆変換を実行するためのシステム１００の一実施形態を示している。図１のブロックの各々は、ハードウェア（回路、専用ロジックなど）、ソフトウェア（汎用コンピュータシステム若しくは専用装置上で実行される）、又は双方の組み合わせを含み得る。
【００１２】
[0042]一実施形態では、現在の入力フレーム１１０が、重み適応過完備順変換モジュール１２０への入力として受け取られる。現在の入力フレーム１１０は、画像データ又はビデオデータを表し得る。重み適応過完備順変換モジュール１２０は、入力フレームに対して重み適応過完備順変換を実行し、変換係数１２５を出力する。変換係数１２５は、次いで、信号処理モジュール１３０への入力として受け取られる。
【００１３】
[0043]信号処理モジュール１３０は、変換係数１２５に対して一以上のデータ処理オペレーションを実行する。一実施形態では、これらのオペレーションは、限定するものではないが、２００８年２月５日に出願された「Ｆｌｉｃｋｅｒ  Ｒｅｄｕｃｔｉｏｎ  ｉｎ  Ｖｉｄｅｏ  Ｓｅｑｕｅｎｃｅｓ  Ｕｓｉｎｇ  Ｔｅｍｐｏｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ」と題する米国特許出願第６１／０２６４５３号、２００８年６月１７日に出願された「Ｉｍａｇｅ／Ｖｉｄｅｏ  Ｑｕａｌｉｔｙ  Ｅｎｈａｎｃｅｍｅｎｔ  ａｎｄ  Ｓｕｐｅｒ  Ｒｅｓｏｌｕｔｉｏｎ  Ｕｓｉｎｇ  Ｓｐａｒｓｅ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎｓ」と題する出願第１２／１４０８２９号、及び２００６年１月１２日に出願された「Ｎｏｎｌｉｎｅａｒ，Ｉｎ−Ｔｈｅ−Ｌｏｏｐ，Ｄｅｎｏｉｓｉｎｇ  Ｆｉｌｔｅｒ  Ｆｏｒ  Ｑｕａｎｔｉｚａｔｉｏｎ  Ｎｏｉｓｅ  Ｒｅｍｏｖａｌ  Ｆｏｒ  Ｈｙｂｒｉｄ  Ｖｉｄｅｏ  Ｃｏｍｐｒｅｓｓｉｏｎ」と題する米国出願第１１／３３１８１４号において説明されているオペレーションを含む。処理された変換係数１３５は、次いで、信号処理モジュール１３０によって出力され、重み適応過完備逆変換モジュール１４０への入力として受け取られる。
【００１４】
[0044]重み適応過完備逆変換モジュール１４０は、処理された変換係数１３５に対して重み適応過完備逆変換を実行して、現在の出力フレーム１５０を出力として生成する。現在の出力フレーム１５０は、重み適応過完備順変換及び逆変換オペレーションに加えて、変換領域において信号処理を施された処理された画像／ビデオフレームを表す。
【００１５】
[0045]一実施形態では、現在の入力フレーム１１０は、重み適応過完備順変換１２０によって変換される前にアップサンプリングされることに留意されたい。また、一実施形態では、逆変換１４０の出力は、データ整合性（ｄａｔａ  ｃｏｎｓｉｓｔｅｎｃｙ）オペレーションを施される。
【００１６】
＜重み適応過完備順変換＞
【００１７】
[0046]図２Ａは、重み適応過完備順変換を実行し、信号処理を適用して、処理された変換係数を取得するためのプロセス２００の一実施形態のフロー図である。プロセスは、ハードウェア（例えば、回路、専用ロジックなど）、ソフトウェア（汎用コンピュータシステム若しくは専用装置上で実行される）、又は双方の組み合わせを含む得る処理ロジックによって実行され得る。
【００１８】
[0047]一実施形態では、数学的表記Ｘ（ｉ，ｊ）は、入力画像／ビデオフレーム内の第（ｉ，ｊ）ピクセルを表し、Ｙ（ｉ，ｊ，ｍ，ｎ）は、左上のピクセルが（ｉ，ｊ）で表されるＸ内のＰ×Ｐブロックの２−Ｄ変換における第（ｍ，ｎ）係数を表す。したがって、数学的表記Ｙ（ｉ，ｊ，ｍ，ｎ）は、Ｘ（ｉ，ｊ）の重み適応過完備変換を表す。
【００１９】
[0048]一実施形態では、変数Ｐは、変換のサイズを表し、結果として、変数ｍ、ｎ、Ｐの間の数学的関係は、１≦ｍ，ｎ≦Ｐと表すことができる。そして、変数Ｈ及びＷは、入力画像／ビデオフレームの高さ及び幅を表す。表記上、シンボル「：」は、変数のインデックスの範囲を示すために使用されている。一例は、Ｘ（ｉ，ｊ：ｊ＋Ｐ−１）であり、これは、１×Ｐベクトル［Ｘ（ｉ，ｊ）  Ｘ（ｉ，ｊ＋１）  ．．．  Ｘ（ｉ，ｊ＋Ｐ−１）］を表す。同様に、数学的表記Ｘ（ｉ：ｉ＋Ｐ−１，ｊ：ｊ＋Ｐ−１）は、サイズがＰ×Ｐの行列を表す。
【００２０】
[0049]図２Ａを参照すると、プロセス２００は、１≦ｉ≦Ｈ−Ｐ＋１のｉについてのループで開始する（処理ブロック２１０）。処理ロジックは、入力フレームの列に対して１次元（１−Ｄ）変換を実行して、列変換結果を取得する（処理ブロック２２０）。一実施形態では、このオペレーションは、数学的表記によって
１≦ｊ≦Ｗのｊについて、ＸＣ（１：Ｐ，ｊ）＝Ｔ（Ｘ（ｉ：ｉ＋Ｐ−１，ｊ））
と表すことができる。ここで、Ｔ（）は、１−Ｄ順変換オペレーションを表す。ＸＣは、重み適応過完備順変換オペレーションにおいて内部的に使用されるサイズがＰ×Ｗのバッファである。
【００２１】
[0050]処理ブロック２３０において、処理ロジックは、列変換結果の行に対して１−Ｄ変換を実行する。一実施形態では、このオペレーションは、以下の数学的表記によって表すことができる。
１≦ｊ≦Ｗ−Ｐ＋１のｊ、１≦ｋ≦Ｐのｋについて、Ｙ（ｉ，ｊ，ｋ，１：Ｐ）＝Ｔ（ＸＣ（ｋ，ｊ：ｊ＋Ｐ−１））
【００２２】
[0051]一実施形態では、１−Ｄ順変換オペレーションＴ（）は、
【数１】
0005517954.tif 000002
と定義される。この実施形態では、ＨＴは、変換を定義するＰ×Ｐ行列を表す。
【００２３】
[0052]処理ブロック２３５において、更なる反復が存在する場合には、ループの処理は、処理ブロック２１０に復帰し、ブロック２２０及び２３０におけるオペレーションが繰り返される。更なる反復が存在しない場合には、処理ブロック２４０において、処理ロジックは、変換係数を出力する。
【００２４】
[0053]次に、処理ロジックは、信号処理オペレーションを実行する（処理ブロック２５０）。これはオプションである。一実施形態では、信号処理オペレーションは、米国特許出願第６１／０２６４５３号、第１２／１４０８２９号、及び第１１／３３１８１４号に開示されている信号処理オペレーションのうち一つであり得る。処理ブロック２６０においては、処理ロジックは、処理された変換係数を出力する。
【００２５】
[0054]図２Ｂは、図２Ａにおいて上述した処理に含まれる入力画像／ビデオフレーム及びバッファの実施形態を示している。一実施形態では、入力フレーム２７０は、高さがＨ、幅がＷの行及び列として表されるピクセルデータを含む。バッファ２７２は、図２Ａで説明した変換オペレーションにおいて使用される高さがＰ、幅がＷのバッファを表す。一実施形態では、変数Ｐは、変換のサイズに対応する。
【００２６】
[0055]図２Ｃは、図２Ａの処理ブロック２２０に対応するオペレーションをより詳細に示している。一実施形態では、高さがＨ、幅がＷの入力フレーム２８０の列に対して、１−Ｄ順変換が実行される。高さがＰ、幅がＷのバッファ２８２は、各列の１−Ｄ順変換オペレーションからの変換係数を用いて更新される。バッファ２８２は、列変換計算の異なるステージにおける表現で示されている。
【００２７】
[0056]図２Ｄは、図２Ａの処理ブロック２３０に対応するオペレーションをより詳細に示している。一実施形態では、バッファ２９０内の列変換結果の行に対して、１−Ｄ順変換が実行される。バッファ２９０は、バッファ２８２と同じである。このようにして、２−Ｄ変換係数２９２は、バッファ２９０内に保存された列変換係数に対する１−Ｄ順変換によって取得することができる。
【００２８】
[0057]別の実施形態では、
【数２】
0005517954.tif 000003
であり、ＨＴは、４×４アダマール変換に対応し、その要素を集合｛−１，１｝からとる。この実施形態では、Ｔ（）によって表されるオペレーションは、加算オペレーションを用いて計算することができる。別の実施形態では、
【数３】
0005517954.tif 000004
であり、Ｐ＝３である。この実施形態では、オペレーションは、加算オペレーション及びシフトオペレーションを用いて計算することができる。
【００２９】
[0058]別の実施形態では、ＨＴがアダマール変換に対応し、その要素を集合｛−１，１｝からとる場合に、重み適応過完備順変換を計算するための、高速アダマール２−Ｄ変換実施形態と呼ばれる、高速実施は、以下のように記述される。
・  １≦ｉ≦Ｈ−Ｐのｉ、１≦ｊ≦Ｗのｊについて、Ａ（ｉ，ｊ）＝Ｘ（ｉ＋Ｐ，ｊ）−Ｘ（ｉ，ｊ）を計算する。
・  １≦ｉ≦Ｈ−Ｐのｉ、１≦ｊ≦Ｗ−Ｐのｊについて、Ｂ（ｉ，ｊ）＝Ａ（ｉ，ｊ＋Ｐ）−Ａ（ｉ，ｊ）を計算する。
・  １≦ｉ≦Ｈ−Ｐのｉ、１≦ｎ≦Ｐのｎについて、Ｃ（ｉ，１，ｎ）＝ＨＴ（ｎ，１：Ｐ）＊［Ａ（ｉ，１）  Ａ（ｉ，２）  ．．．  Ａ（ｉ，Ｐ）］Ｔを計算する。
・  １≦ｉ≦Ｈ−Ｐのｉ、１≦ｊ≦Ｗ−Ｐのｊ、１≦ｎ≦Ｐのｎについて、Ｃ（ｉ，ｊ＋１，ｎ）＝Ｄ０（ｎ）×Ｃ（ｉ，ｊ，ｆ（ｎ））＋Ｄ１（ｎ）×Ｂ（ｉ，ｊ）を計算する。ここで、写像ｆ（）：｛１，２，．．．，Ｐ｝→｛１，２，．．．，Ｐ｝、及びスカラ値Ｄ０（ｎ）、Ｄ１（ｎ）は、Ｃ（ｉ，ｊ＋１，ｎ）＝ＨＴ（ｎ，１：Ｐ）＊［Ａ（ｉ，ｊ＋１）  Ａ（ｉ，ｊ＋２）  ．．．  Ａ（ｉ，ｊ＋Ｐ）］Ｔとなるように決定される。
・  １≦ｊ≦Ｗ−Ｐ＋１のｊについて、
【数４】
0005517954.tif 000005
を計算する。
・  １≦ｉ≦Ｈ−Ｐのｉ、１≦ｊ≦Ｗ−Ｐ＋１のｊ、１≦ｍ≦Ｐのｍ、１≦ｎ≦Ｐのｎについて、Ｙ（ｉ＋１，ｊ，ｍ，ｎ）＝Ｄ０（ｍ）×Ｙ（ｉ，ｊ，ｆ（ｍ），ｎ）＋Ｄ１（ｍ）×Ｃ（ｉ，ｊ，ｎ）を計算する。ここで、写像ｆ（）：｛１，２，．．．，Ｐ｝→｛１，２，．．．，Ｐ｝、及びスカラ値Ｄ０（ｍ）、Ｄ１（ｍ）は、
【数５】
0005517954.tif 000006
となるように決定される。
一実施形態では、
【数６】
0005517954.tif 000007
である場合、
【数７】
0005517954.tif 000008
及び
【数８】
0005517954.tif 000009
である。
【００３０】
[0059]更に別の実施形態では、ＨＴがアダマール変換に対応し、その要素を集合｛−１，１｝からとる場合に、重み適応過完備順変換を計算する高速方法は、以下のように記述される。この実施形態では、２−Ｄ重み適応過完備変換は、２つ（各次元につき１つ）の１−Ｄ重み適応過完備変換オペレーションを行うことによって計算される。１−Ｄ重み適応過完備変換オペレーションは、ＯＴ１（）によって表され、オペレーションのＩ／Ｏ特性は、
Ｆ（１：ＬＥ−Ｐ＋１，１：Ｐ）＝ＯＴ１（Ｅ（１：ＬＥ））
によって記述される。ここで、Ｅ及びＦは、入力ベクトル及び出力ベクトルを表す変数であり、ＬＥは、ベクトルＥの長さを示す整数である。ＨＴがアダマール変換を表す場合、Ｐ＝２ｐであり、ここで、ｐはゼロよりも大きな整数である。
【００３１】
[0060]高速アダマール１−Ｄ変換実施形態と呼ばれる一実施形態では、１−Ｄ重み適応過完備変換オペレーションＯＴ１（）の高速実施は、以下のように定義される。
・  Ｅ０（ｉ，ｌ）＝Ｅ（ｉ）に設定する。
・  １≦ｊ≦Ｐ−１のｊ、１≦ｉ≦ＬＥ−ｊのｉ、１≦ｎ≦２ｊ−１のｎについて、
Ｅｊ（ｉ，２＊ｎ−１）＝Ｅｊ−１（ｉ，ｎ）＋Ｅｊ−１（ｉ＋ｌ，ｎ）
Ｅｊ（ｉ，２＊ｎ）＝Ｅｊ−１（ｉ，ｎ）−Ｅｊ−１（ｉ＋ｌ，ｎ）
を再帰的に計算する。
・  １≦ｉ≦ＬＥ−Ｐ＋１のｉ、１≦ｍ≦Ｐのｍについて、
【数９】
0005517954.tif 000010
を計算する。ここで、写像
【数１０】
0005517954.tif 000011
、及びスカラ値
【数１１】
0005517954.tif 000012
は、Ｆ（ｉ，ｍ）＝ＨＴ（ｍ，１：Ｐ）＊［Ｅ（ｉ）  Ｅ（ｉ＋１）  ．．．  Ｅ（ｉ＋Ｐ−１）］Ｔとなるように決定される。
一実施形態では、
【数１２】
0005517954.tif 000013
である場合、
【数１３】
0005517954.tif 000014
及び
【数１４】
0005517954.tif 000015
である。
【００３２】
[0061]一実施形態では、２−Ｄ重み適応過完備変換は、以下のように２つの１−Ｄ変換オペレーションを使用して計算される。
（１）  １≦ｊ≦Ｗのｊについて、Ｈ１（１：Ｈ−Ｐ＋１，ｊ，１：Ｐ）＝ＯＴ１（Ｘ（１：Ｈ，ｊ））を計算する。
（２）  １≦ｉ≦Ｈ−Ｐ＋１のｉ、１≦ｍ≦Ｐのｊについて、Ｙ（ｉ，ｌ：Ｗ−Ｐ＋１，ｍ，１：Ｐ）＝ＯＴ１（Ｘ１（ｉ，１：Ｗ，ｍ））を計算する。
２つの次元が処理される順序は、一般性を失うことなく、交換することができる。すなわち、上の式は、最初に列方向において１−Ｄ変換を計算し、それに続いて行方向において１−Ｄ変換を計算するために与えられた。最初に行方向において１−Ｄ変換を計算し、それに続いて列方向において１−Ｄ変換を計算するために、類似の１組の式を書くことができる。
【００３３】
＜重み適応過完備逆変換＞
【００３４】
[0062]図３Ａは、重み適応過完備逆変換を実行するためのプロセス３００の一実施形態を示している。プロセスは、ハードウェア（例えば、回路、専用ロジックなど）、ソフトウェア（汎用コンピュータシステム若しくは専用装置上で実行される）、又は双方の組み合わせを含み得る処理ロジックによって実行される。
【００３５】
[0063]一実施形態では、数学的表記
【数１５】
0005517954.tif 000016
は、変換係数Ｙ（ｉ，ｊ，ｍ，ｎ）の処理結果を表し、
【数１６】
0005517954.tif 000017
は、
【数１７】
0005517954.tif 000018
の重み適応過完備逆変換結果を表す。数学的表記ｗ（ｉ，ｊ）は、信号処理オペレーション（例えば、図１の信号処理モジュール１３０又は図２Ａのブロック２５０によって実行される）によって決定される重みの行列を表し、変換係数Ｙ（ｉ，ｊ，ｍ，ｎ）から処理された変換係数
【数１８】
0005517954.tif 000019
を生成し得る。
【００３６】
[0064]図３Ａを参照すると、プロセスは、処理ロジックが重み適応過完備逆変換のために使用されるバッファを初期化することによって開始する（処理ブロック３１０）。一実施形態では、このオペレーションは、
１≦ｉ≦Ｈのｉ、１≦ｊ≦Ｗのｊについて、
【数１９】
0005517954.tif 000020
及び、Ｎ（ｉ，ｊ）＝０と設定する
という表記によって表すことができる。ここで、Ｎは、重み適応過完備逆変換計算において使用されるサイズＨ×Ｗのバッファを表す。
【００３７】
[0065]次に、処理ロジックは、
１≦ｉ≦Ｈ−Ｐ＋１のｉについて
という表記によって表されるループの実行を開始する（処理ブロック３２０）。
【００３８】
[0066]次いで、処理ロジックは、バッファ
【数２０】
0005517954.tif 000021
を初期化する（処理ブロック３２５）。一実施形態では、バッファ
【数２１】
0005517954.tif 000022
は、重み適応過完備逆変換オペレーションのために使用されるサイズＰ×Ｗのバッファを表す。一実施形態では、バッファ
【数２２】
0005517954.tif 000023
の初期化は、
１≦ｊ≦Ｗのｊについて、
【数２３】
0005517954.tif 000024
と設定する
という表記によって表される。
【００３９】
[0067]バッファ
【数２４】
0005517954.tif 000025
を初期化した後、処理ロジックは、
１≦ｊ≦Ｗ−Ｐ＋１のｊについて
によって表される別のループに入る（処理ブロック３３０）。
【００４０】
[0068]このループにおいて、処理ロジックは、処理された変換係数の行の１−Ｄ逆変換の重み乗算を実行する（処理ブロック３３５）。このオペレーションは、以下のように実行される。
１≦ｋ≦Ｐのｋについて、
【数２５】
0005517954.tif 000026
ここで、
【数２６】
0005517954.tif 000027
は、１−Ｄ逆変換オペレーションを表し、ｗ（ｉ，ｊ）は、重みの行列を表す。そして、バッファ
【数２７】
0005517954.tif 000028
は、このオペレーションの結果を用いて更新される。図３Ｂは、図３Ａの処理ブロック３３５の１−Ｄ逆変換オペレーションをより詳細に示している。一実施形態では、加算器３３７は、
【数２８】
0005517954.tif 000029
の現在の内容に、１−Ｄ逆変換オペレーションの結果を加算して、更新されたバッファ
【数２９】
0005517954.tif 000030
（３３９）を生成する。
【００４１】
[0069]ブロック３４０において、処理ロジックは、ｗ（ｉ，ｊ）を加算することによって、ブロック３３５のオペレーションの結果を用いて、バッファＮを更新する。一実施形態では、このオペレーションは、以下のように実行される。
Ｎ（ｉ：ｉ＋Ｐ−１，ｊ：ｊ＋Ｐ−１）＝Ｎ（ｉ：ｉ＋Ｐ−１，ｊ：ｊ＋Ｐ−１）＋ｗ（ｉ，ｊ）
図３Ｃは、図３Ａの処理ブロック３４０において実行されるオペレーションをより詳細に示している。一実施形態では、バッファ３４２は、バッファＮの更新されたバージョンに対応する。
【００４２】
[0070]図３Ａを再び参照すると、処理ロジックは、更なる反復が必要かどうかをテストする（処理ブロック３４５）。更なる反復が必要とされる場合、プロセスは、処理ブロック３３０に移って、更なるオペレーションを実行する。更なる反復が必要とされない場合、プロセスは、ブロック３５０に移って、バッファ
【数３０】
0005517954.tif 000031
の列の１−Ｄ逆変換を実行し、１−Ｄ逆変換の結果を用いて、バッファ
【数３１】
0005517954.tif 000032
を更新する。一実施形態では、このオペレーションは、以下のように実行される。
１≦ｊ≦Ｗのｊについて、
【数３２】
0005517954.tif 000033
図３Ｄは、図３Ａの処理ブロック３５０において実行されるオペレーションをより詳細に示している。一実施形態では、加算器３５２が、バッファ
【数３３】
0005517954.tif 000034
の現在の内容に、１−Ｄ逆変換オペレーションの結果を加算して、更新されたバッファ
【数３４】
0005517954.tif 000035
（３５４）を生成する。
【００４３】
[0071]
【数３５】
0005517954.tif 000036
を更新した後、処理ロジックは、更なる反復が存在するか否かをテストする（処理ブロック３５５）。存在する場合、プロセスは、処理ブロック３２０に移る。存在しない場合、プロセスは、処理ブロック３６０に移る。
【００４４】
[0072]処理ブロック３６０において、処理ロジックは、除算オペレーションを実行して、処理された画像／ビデオデータを表す出力フレームを取得する。一実施形態では、この演算は、以下の表記によって表される。
１≦ｉ≦Ｈのｉ、１≦ｊ≦Ｗのｊについて、
【数３６】
0005517954.tif 000037
ここで、ｈは、１−Ｄ逆変換オペレーション
【数３７】
0005517954.tif 000038
の一部として以下に定義される。
【００４５】
[0073]一実施形態では、１−Ｄ逆変換オペレーション
【数３８】
0005517954.tif 000039
は、
【数３９】
0005517954.tif 000040
と定義される。
【００４６】
[0074]ここで、
【数４０】
0005517954.tif 000041
は、
【数４１】
0005517954.tif 000042
となるような、Ｐ×Ｐ行列である。ここで、ｈは、実数であり、Ｉは、サイズＰ×Ｐの単位行列である。別の実施形態では、
【数４２】
0005517954.tif 000043
である場合、
【数４３】
0005517954.tif 000044
である。
【００４７】
[0075]また別の実施形態では、
【数４４】
0005517954.tif 000045
である場合、
【数４５】
0005517954.tif 000046
である。
【００４８】
[0076]一実施形態では、重み乗算
【数４６】
0005517954.tif 000047
は、逆変換オペレーション
【数４７】
0005517954.tif 000048
によって、暗黙的に実行される。これを達成するため、逆変換オペレーションは、
【数４８】
0005517954.tif 000049
となるように設計された
【数４９】
0005517954.tif 000050
（重み適応
【数５０】
0005517954.tif 000051
）を使用して行われる。一実施形態では、重みｗ（ｉ，ｊ）は、値の離散集合から選択され、離散集合内の値の各々に対応する重み適応
【数５１】
0005517954.tif 000052
行列は、ルックアップテーブル内に保存することができる。
【００４９】
[0077]一実施形態では、除算オペレーション
【数５２】
0005517954.tif 000053
は、
【数５３】
0005517954.tif 000054
のように近似される。ここで、ｆ（Ｎ（ｉ，ｊ））は、ルックアップテーブル内に保存された値である。Ｌは、０よりも大きな整数である。一実施形態では、
【数５４】
0005517954.tif 000055
である。
【００５０】
＜高速で低メモリ消費の実施のための例示的なシステム＞
【００５１】
[0078]図４は、先述したように、２００８年２月５日に出願された「Ｆｌｉｃｋｅｒ  Ｒｅｄｕｃｔｉｏｎ  ｉｎ  Ｖｉｄｅｏ  Ｓｅｑｕｅｎｃｅｓ  Ｕｓｉｎｇ  Ｔｅｍｐｏｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ」と題する米国仮出願第６１／０２６４５３号、２００８年６月１７日に出願された「Ｉｍａｇｅ／Ｖｉｄｅｏ  Ｑｕａｌｉｔｙ  Ｅｎｈａｎｃｅｍｅｎｔ  ａｎｄ  Ｓｕｐｅｒ  Ｒｅｓｏｌｕｔｉｏｎ  Ｕｓｉｎｇ  Ｓｐａｒｓｅ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎｓ」と題する出願第１２／１４０８２９号、及び２００６年１月１２日に出願された「Ｎｏｎｌｉｎｅａｒ，Ｉｎ−Ｔｈｅ−Ｌｏｏｐ，Ｄｅｎｏｉｓｉｎｇ  Ｆｉｌｔｅｒ  Ｆｏｒ  Ｑｕａｎｔｉｚａｔｉｏｎ  Ｎｏｉｓｅ  Ｒｅｍｏｖａｌ  Ｆｏｒ  Ｈｙｂｒｉｄ  Ｖｉｄｅｏ  Ｃｏｍｐｒｅｓｓｉｏｎ」と題する米国出願第１１／３３１８１４号において説明されているプロセスを実行するためのシステム４００の一実施形態を示している。図４のブロックの各々は、ハードウェア（例えば、回路、専用ロジックなど）、ソフトウェア（汎用コンピュータシステム若しくは専用装置上で実行される）、又は双方の組み合わせを含み得る。一実施形態では、プロセスは、プロセッサ４０５上で実施される。一実施形態では、プロセッサ４０５は、単一命令複数データ（ＳＩＭＤ：Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ，  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）プロセッサであり、同一のオペレーションを施される複数のデータユニットが一斉に処理される。ＳＩＭＤプロセッサは、１以上のサブプロセッサを有し、各サブプロセッサは、同時に１以上のスレッドを実行することができる。これらのプロセスは、メモリ要件及びメモリＩ／Ｏ動作を最低限に抑えるように実施することができる。
【００５２】
[0079]一実施形態では、重み適応過完備順変換の計算、変換領域における係数の処理、及び重み適応過完備逆変換の計算は、以下の解説において説明するように、同時に行われる。一実施形態では、変数Ｘは、現在の入力フレーム４１０を表し、
【数５５】
0005517954.tif 000056
及びＺは、現在の出力フレーム４９３及び過去の出力フレーム４４０をそれぞれ表す。一実施形態では、システム４００は、これらのプロセスを実施するために使用されるバッファを含む。これらのバッファは、図４に示すように、以下のものを含む。
Ｘｐ−Ｘすなわち現在の入力フレーム４１０のＰ個の行を含むサイズＰ×Ｗのバッファ４２０。
ＸＣ−サイズＰ×Ｗのバッファ４３０。
Ｚｐ−Ｚすなわち過去の出力フレーム４４０のＰ個の行を含むサイズＰ×Ｗのバッファ４４５。このバッファは、２００８年６月１７日に出願された「Ｉｍａｇｅ／Ｖｉｄｅｏ  Ｑｕａｌｉｔｙ  Ｅｎｈａｎｃｅｍｅｎｔ  ａｎｄ  Ｓｕｐｅｒ  Ｒｅｓｏｌｕｔｉｏｎ  Ｕｓｉｎｇ  Ｓｐａｒｓｅ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎｓ」と題する米国特許出願第１２／１４０８２９号、及び２００６年１月１２日に出願された「Ｎｏｎｌｉｎｅａｒ，Ｉｎ−Ｔｈｅ−Ｌｏｏｐ，Ｄｅｎｏｉｓｉｎｇ  Ｆｉｌｔｅｒ  Ｆｏｒ  Ｑｕａｎｔｉｚａｔｉｏｎ  Ｎｏｉｓｅ  Ｒｅｍｏｖａｌ  Ｆｏｒ  Ｈｙｂｒｉｄ  Ｖｉｄｅｏ  Ｃｏｍｐｒｅｓｓｉｏｎ」と題する米国特許出願第１１／３３１８１４号において説明されているプロセスには必要でない。
ＺＣ−サイズＰ×Ｗのバッファ４５０。このバッファは、２００８年６月１７日に出願された「Ｉｍａｇｅ／Ｖｉｄｅｏ  Ｑｕａｌｉｔｙ  Ｅｎｈａｎｃｅｍｅｎｔ  ａｎｄ  Ｓｕｐｅｒ  Ｒｅｓｏｌｕｔｉｏｎ  Ｕｓｉｎｇ  Ｓｐａｒｓｅ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎｓ」と題する米国特許出願第１２／１４０８２９号、及び２００６年１月１２日に出願された「Ｎｏｎｌｉｎｅａｒ，Ｉｎ−Ｔｈｅ−Ｌｏｏｐ，Ｄｅｎｏｉｓｉｎｇ  Ｆｉｌｔｅｒ  Ｆｏｒ  Ｑｕａｎｔｉｚａｔｉｏｎ  Ｎｏｉｓｅ  Ｒｅｍｏｖａｌ  Ｆｏｒ  Ｈｙｂｒｉｄ  Ｖｉｄｅｏ  Ｃｏｍｐｒｅｓｓｉｏｎ」と題する米国特許出願第１１／３３１８１４号において説明されているプロセスには必要でない。
【数５６】
0005517954.tif 000057
−サイズＰ×Ｗのバッファ４７０。
【数５７】
0005517954.tif 000058
−
【数５８】
0005517954.tif 000059
すなわち現在の出力フレーム４９３のＰ個の行を含むサイズＰ×Ｗのバッファ４８０。
Ｎｐ−サイズＰ×Ｗのバッファ４９０。
ＸＹ−サイズＰ×Ｐのバッファ４３５。
ＺＹ−サイズＰ×Ｐのバッファ４５５。このバッファは、２００８年６月１７日に出願された「Ｉｍａｇｅ／Ｖｉｄｅｏ  Ｑｕａｌｉｔｙ  Ｅｎｈａｎｃｅｍｅｎｔ  ａｎｄ  Ｓｕｐｅｒ  Ｒｅｓｏｌｕｔｉｏｎ  Ｕｓｉｎｇ  Ｓｐａｒｓｅ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎｓ」と題する米国特許出願第１２／１４０８２９号、及び２００６年１月１２日に出願された「Ｎｏｎｌｉｎｅａｒ，Ｉｎ−Ｔｈｅ−Ｌｏｏｐ，Ｄｅｎｏｉｓｉｎｇ  Ｆｉｌｔｅｒ  Ｆｏｒ  Ｑｕａｎｔｉｚａｔｉｏｎ  Ｎｏｉｓｅ  Ｒｅｍｏｖａｌ  Ｆｏｒ  Ｈｙｂｒｉｄ  Ｖｉｄｅｏ  Ｃｏｍｐｒｅｓｓｉｏｎ」と題する米国特許出願第１１／３３１８１４号において説明されているプロセスには必要でない。
【数５９】
0005517954.tif 000060
−サイズＰ×Ｐのバッファ４６５。
【００５３】
[0080]一実施形態では、過去の出力フレーム４４０は、フレームストアバッファ４３８内に保存される。
【００５４】
[0081]一実施形態では、プロセスの高速で低メモリ消費の実施は、以下のオペレーションを含む。
１．バッファ初期化
ａ．  Ｘすなわち現在の入力フレーム４１０の最初のＰ個の行を、Ｘｐすなわちバッファ４２０にコピーする。
ｂ．  Ｚすなわち過去の出力フレーム４４０の最初のＰ個の行を、Ｚｐすなわちバッファ４４５にコピーする。
ｃ．  １≦ｉ≦Ｐのｉ、１≦ｊ≦Ｗのｊについて、バッファ４８０を
【数６０】
0005517954.tif 000061
に設定し、バッファ４９０をＮｐ（ｉ，ｊ）＝０に設定する。
２．メインループ。１≦ｉ≦Ｈ−Ｐ＋１のｉについて、以下のオペレーションを実行する。
ａ．  以下の表記によって表されるように、バッファ４２０及び４４５内のデータに対して列方向に順変換を計算し、結果をバッファ４３０及び４５０内にそれぞれ保存する。
１≦ｊ≦Ｗのｊについて、ＸＣ（１：Ｐ，ｊ）＝Ｔ（Ｘｐ（１：Ｐ，ｊ））、ＺＣ（１：Ｐ，ｊ）＝Ｔ（Ｚｐ（１：Ｐ，ｊ））
ｂ．  １≦ｉ≦Ｐのｉ、１≦ｊ≦Ｗのｊについて、バッファ４７０を
【数６１】
0005517954.tif 000062
に設定する。
ｃ．  １≦ｊ≦Ｗ−Ｐ＋１のｊについて、以下のオペレーションを実行する。
ｉ．  以下の表記によって表されるように、バッファ４３０内のデータに対して行方向に順変換を計算し、結果をバッファ４３５内にそれぞれ保存する。
１≦ｋ≦Ｐのｋについて、ＸＹ（ｋ，１：Ｐ）＝Ｔ（ＸＣ（ｋ，ｊ：ｊ＋Ｐ−１））
ｉｉ．  以下の表記によって表されるように、バッファ４５０内のデータに対して行方向に順変換を計算し、結果をバッファ４５５内にそれぞれ保存する。
１≦ｋ≦Ｐのｋについて、ＸＺ（ｋ，１：Ｐ）＝Ｔ（ＺＣ（ｋ，ｊ：ｊ＋Ｐ−１））
ｉｉｉ．  ２００８年２月５日に出願された「Ｆｌｉｃｋｅｒ  Ｒｅｄｕｃｔｉｏｎ  ｉｎ  Ｖｉｄｅｏ  Ｓｅｑｕｅｎｃｅｓ  Ｕｓｉｎｇ  Ｔｅｍｐｏｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ」と題する米国特許出願第６１／０２６４５３号、２００８年６月１７日に出願された「Ｉｍａｇｅ／Ｖｉｄｅｏ  Ｑｕａｌｉｔｙ  Ｅｎｈａｎｃｅｍｅｎｔ  ａｎｄ  Ｓｕｐｅｒ  Ｒｅｓｏｌｕｔｉｏｎ  Ｕｓｉｎｇ  Ｓｐａｒｓｅ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎｓ」と題する米国特許出願第１２／１４０８２９号、及び２００６年１月１２日に出願された「Ｎｏｎｌｉｎｅａｒ，Ｉｎ−Ｔｈｅ−Ｌｏｏｐ，Ｄｅｎｏｉｓｉｎｇ  Ｆｉｌｔｅｒ  Ｆｏｒ  Ｑｕａｎｔｉｚａｔｉｏｎ  Ｎｏｉｓｅ  Ｒｅｍｏｖａｌ  Ｆｏｒ  Ｈｙｂｒｉｄ  Ｖｉｄｅｏ  Ｃｏｍｐｒｅｓｓｉｏｎ」と題する米国特許出願第１１／３３１８１４号において説明されているプロセスの１つ（又は複数）を使用して、信号処理モジュール４６０において、ＸＹ（１：Ｐ，１：Ｐ）すなわちバッファ４３５及びＺＹ（１：Ｐ，１：Ｐ）すなわちバッファ４５５から、
【数６２】
0005517954.tif 000063
すなわち処理されたバッファ４６５及び重み行列ｗ（ｉ，ｊ）を計算する。
ｉｖ．  逆変換の重み乗算に基づいてバッファ４６５内の係数に対して行方向に逆変換を計算し、その結果は、その後、以下の表記によって表されるように、バッファ４７０において更新される。
１≦ｋ≦Ｐのｋについて、
【数６３】
0005517954.tif 000064
ｖ．  以下の表記によって表されるように、バッファ４９０を更新する。
Ｎｐ（１：Ｐ，ｊ：ｊ＋Ｐ−１）＝Ｎｐ（１：Ｐ，ｊ：ｊ＋Ｐ−１）＋ｗ（ｉ，ｊ）
ｄ．  バッファ４７０内のデータに対して列方向に逆変換を計算し、その後、その結果は、以下の表記によって表されるように、バッファ４８０において更新される。
１≦ｊ≦Ｗのｊについて、
【数６４】
0005517954.tif 000065
ｅ．  以下の表記によって表されるように、除算器４８５によって除算演算を実行する。
１≦ｊ≦Ｗのｊについて、
【数６５】
0005517954.tif 000066
ｆ．  バッファ４８０の第１行
【数６６】
0005517954.tif 000067
を、
【数６７】
0005517954.tif 000068
すなわち現在の出力フレーム４９３の第ｉ行にコピーする。
ｇ．  バッファを回転／更新する。バッファ内の同じ空間を再利用して、異なる時間のフレームに対応する異なるデータを保持するために、回転が利用される。
ｉ．  １≦ｋ≦Ｐ−１のｋについて、以下のオペレーションを実行する。
１．  以下のようにバッファ４２０を回転／更新する。
Ｘｐ（ｋ，１：Ｗ）＝Ｘｐ（ｋ＋１，１：Ｗ）
２．  以下のようにバッファ４４５を回転／更新する。
Ｚｐ（ｋ，１：Ｗ）＝Ｚｐ（ｋ＋１，１：Ｗ）
３．  以下のようにバッファ４８０を回転／更新する。
【数６８】
0005517954.tif 000069
４．  以下のようにバッファ４９０を回転／更新する。
Ｎｐ（ｋ，１：Ｗ）＝Ｎｐ（ｋ＋１，１：Ｗ）
ｉｉ．  Ｘすなわち現在の入力フレーム４１０の第ｉ＋Ｐ行を、バッファ４２０の第Ｐ行Ｘｐ（Ｐ，１：Ｗ）にコピーする。
ｉｉｉ．  Ｚすなわち過去の出力フレーム４４０の第ｉ＋Ｐ行を、バッファ４４５の第Ｐ行Ｚｐ（Ｐ，１：Ｗ）にコピーする。
ｉｖ．  バッファ４８０の第Ｐ行、バッファ４９０の第Ｐ行をゼロに設定する。
すなわち、１≦ｊ≦Ｗのｊについて、
【数６９】
0005517954.tif 000070
、Ｎｐ（Ｐ，ｊ）＝０
オペレーション２．ｇ．ｉ．３及び２．ｇ．ｉ．４において、バッファ全体が変更されるわけではないことに留意されたい。オペレーション２．ｇ．ｉ．３及び２．ｇ．ｉ．４は、第１からＰ−１行までに作用し、オペレーション２．ｇ．ｉｖは、第Ｐ行に作用する。
３．  最後のＰ−１個の行を出力する。１≦ｉ≦Ｐ−１のｉについて、以下のオペレーションを実行する。
ａ．  以下の表記によって表されるように、除算演算を実行する。
１≦ｊ≦Ｗのｊについて、
【数７０】
0005517954.tif 000071
ｂ．  バッファ４８０の第ｉ行
【数７１】
0005517954.tif 000072
を、
【数７２】
0005517954.tif 000073
すなわち現在の出力フレーム４９３の第ｉ＋Ｈ−（Ｐ−１）行にコピーする。
上述したように、一実施形態では、順変換及び逆変換は、同時に適用される。上記のステップでは、順変換、変換領域処理、及び逆変換は全て、ステップ２の下のループにおいて実行される。フレーム全体に対して順変換を行い、その後、変換済の係数の組全体を処理のために渡し、その後、処理された変換済の係数の組全体に対して逆変換を行う代わりに、３つの演算（順変換、処理、逆変換）が、フレームの小さな部分に対して実行され、その場合、フレームの異なる小さな部分に対して３つのステップを繰り返すためなどに、同じメモリが使用される。このため、いかなる場合においても変換済の係数の組全体が保存されることはないので、必要とされるメモリの量が削減される。
【００５５】
[0082]一実施形態では、現在の出力フレーム４９３は、フレームストアバッファ４３８内に保存され得る。別の実施形態では、図４に関連して上述した順変換及び逆変換オペレーションは、それぞれ重み適応過完備順変換及び逆変換オペレーションである。
【００５６】
[0083]高速で低メモリ消費の実施形態である別の実施形態では、１−Ｄバッファを使用して、２−Ｄバッファが形成される。例えば、各々の長さがＷのＰ個の１−Ｄバッファを使用して、Ｐ×Ｗの２−Ｄバッファが形成される。このバッファアーキテクチャを用いた場合、上述したステップ２．ｇ（「バッファを回転／更新する」）におけるバッファの回転は、２−Ｄバッファの１部分から別の部分にデータをコピーすることなく、単に２−Ｄバッファ内における１−Ｄバッファの順序を再組織するだけで行うことができる。
【００５７】
[0084]高速で低メモリ消費の実施形態である別の実施形態では、
バッファ
【数７３】
0005517954.tif 000074
をゼロに初期化する上述のステップ２．ｂは、以下のようにステップ２．ｃ．ｉｖを修正することによって排除することができる。
１≦ｋ≦Ｐのｋについて
【数７４】
0005517954.tif 000075
が
【数７５】
0005517954.tif 000076
の出力を表すものとする。
（ｊが１に等しい）場合、
【数７６】
0005517954.tif 000077
それ以外の場合、
【数７７】
0005517954.tif 000078
【数７８】
0005517954.tif 000079
【００５８】
[0085]上述した技法は、一度にＰ個の行を処理することを含む。しかし、一般性を失うことなく、（行と列の次元を入れ替えることによって）一度にＰ個の列を処理するように技法を普通に修正できることに留意されたい。
【００５９】
[0086]一実施形態では、米国特許出願第６１／０２６４５３号、第１２／１４０８２９号、及び第１１／３３１８１４号において説明されているプロセスは、整数演算を使用して実施される。別の実施形態では、上述の米国特許出願において説明されているプロセスは、固定小数点数演算を使用して実施される。一実施形態では、固定小数点数演算の精度は、１６ビットに等しい。整数演算及び固定小数点数演算実施の双方について、実施における中間データは、整数及び固定小数点数表現から生じるオーバフロー問題を防止するために必要である場合には、スケーリングされる。
【００６０】
[0087]一実施形態では、米国特許出願第６１／０２６４５３号、第１２／１４０８２９号、及び第１１／３３１８１４号において説明されているプロセスは、高度に並列化され、任意の並列コンピューティングリソースを利用するように設計することができる。一実施形態では、プロセスは、ＳＩＭＤプロセッサ上で実施され、同一のオペレーションを施される複数のデータユニットが一斉に処理される。ＳＩＭＤプロセッサは、１以上のサブプロセッサを有し、各サブプロセッサは、同時に１以上のスレッドを実行することができる。例えば、一般性を失うことなく、各サブプロセッサは、ｉの特定の値、ｊの全ての値について、Ｙ（ｉ，ｊ，１：Ｐ，１：Ｐ）を計算し、各サブプロセッサのタスクは、多数のスレッドに更に分割されて、各スレッドが、ｊの特定の値について計算を行う。別の実施形態では、プロセスは、マルチコアプロセッサ上で実施され、異なるコアは、異なるデータユニットに対して同じオペレーションを実行し、又は異なるコアは、異なるオペレーションを実行し、若しくはその双方の組み合わせを実行する。
【００６１】
＜例示的なコンピュータシステム＞
【００６２】
[0088]図５は、本明細書で説明するオペレーションの一つ以上を実行できる例示的なコンピュータシステムのブロック図である。コンピュータシステム５００は、例示的なクライアント又はサーバコンピュータシステムを含み得る。コンピュータシステムに関して説明されるコンポーネントは、ハンドヘルド又はモバイルデバイス（例えばセル電話）の一部であってもよい。
【００６３】
[0089]図５を参照すると、コンピュータシステム５００は、情報を伝達するための通信機構、即ちバス５１１と、情報を処理するためのバス５１１に結合されたプロセッサ５１２と、を含む。プロセッサ５１２は、例えばＰｅｎｔｉｕｍ（商標）プロセッサなどのマイクロプロセッサを含むが、マイクロプロセッサに限定されるものではない。
【００６４】
[0090]システム５００は、情報及びプロセッサ５１２によって実行される命令を保存するためのバス５１１に結合された、（メインメモリと呼ばれる）ランダムアクセスメモリ（ＲＡＭ）又は他の動的ストレージデバイス５０４を更に含む。メインメモリ５０４は、プロセッサ５１２による命令の実行中に、一時変数又は他の中間情報を保存するためにも使用され得る。
【００６５】
[0091]コンピュータシステム５００は、プロセッサ５１２のための静的情報及び命令を保存するためのバス５１１に結合されたリードオンリメモリ（ＲＯＭ）及び／又は他の静的ストレージデバイス５０６と、磁気ディスク又は光ディスク及び対応するディスクドライブなどのデータストレージデバイス５０７も含む。データストレージデバイス５０７は、情報及び命令を保存するため、バス５１１に結合される。
【００６６】
[0092]コンピュータシステム５００は、コンピュータユーザに情報を表示するためのバス５１１に結合されたブラウン管（ＣＲＴ）又は液晶ディスプレイ（ＬＣＤ）などの表示デバイス５２１に更に結合され得る。プロセッサ５１２に情報及びコマンド選択を伝達するための英数字及び他のキーを含む英数字入力デバイス５２２も、バス５１１に結合され得る。更なるユーザ入力デバイスは、プロセッサ５１２に情報及びコマンド選択を伝達するため、並びにディスプレイ５２１上でのカーソルの動きを制御するためのバス５１１に結合されたマウス、トラックボール、トラックパッド、スタイラス、又はカーソル方向キーなどのカーソルコントロール５２３である。
【００６７】
[0093]バス５１１に結合され得る別のデバイスは、紙、フィルム、又は類似のタイプの媒体などの媒体上に情報を記録するために使用され得るハードコピーデバイス５２４である。バス５１１に結合され得る別のデバイスは、電話又はハンドヘルドパームデバイスと通信するための有線／無線通信機能５２５である。
【００６８】
[0094]システム５００のコンポーネントのいずれか又はすべて、及び関連ハードウェアが、本発明において使用され得ることに留意されたい。しかし、コンピュータシステムの他の構成が、デバイスのいくつか又はすべてを含み得ることが理解できよう。
【００６９】
［応用例］
【００７０】
＜ノイズ除去用途＞
【００７１】
[0095]一実施形態では、上述した技法、特に順変換及び逆変換は、ノイズ除去フィルタプロセスにおいて使用される。そのようなプロセスは、ハイブリッドビデオ圧縮における量子化ノイズを取り除くために使用され得る。
【００７２】
[0096]図６は、ノイズ除去ビデオフレームを取得するためのプロセスの一実施形態のフロー図である。プロセスは、ハードウェア（例えば、回路、専用ロジックなど）、ソフトウェア（汎用コンピュータシステム若しくは専用装置上で実行される）、又は双方の組み合わせを含み得る処理ロジックによって実行される。処理ロジックは、ファームウェアを含み得る。一実施形態では、処理ロジックは、ノイズ除去フィルタ内に存在する。
【００７３】
[0097]図６を参照すると、プロセスは、処理ロジックが、復号フレームｙを取得し、他の利用可能な情報を収集することによって開始する（処理ブロック６０１）。他の利用可能な情報は、量子化パラメータ、動き情報、及びモード情報を含み得る。
【００７４】
[0098]その後、処理ロジックは、復号フレームｙに変換Ｈを適用することによって、１組の係数ｄを取得する（処理ブロック６０２）。例えば、変換Ｈは、ブロック単位の２次元ＤＣＴを表し得る。処理ロジックはまた、１組の画像要素ｅをｙの要素に等しく設定する。
【００７５】
[0099]その後、処理ロジックは、１組の画像要素ｅに基づいて、ｄ内の各係数について、ｃ（ｉ）、すなわち条件付き期待値（ｃｏｎｄｉｔｉｏｎａｌ  ｅｘｐｅｃｔａｔｉｏｎ）を計算し、ｄ内の係数の値及びｃ（ｉ）すなわち条件付き期待値を使用して、ノイズ除去規則を適用することによって、フィルタリングされた係数
【数７９】
0005517954.tif 000080
を取得する（処理ブロック６０３）。その後、処理ロジックは、１組の係数
【数８０】
0005517954.tif 000081
にＨの逆変換を適用することによって、フィルタリングされたフレーム
【数８１】
0005517954.tif 000082
を取得する（処理ブロック６０４）。
【００７６】
[00100]フィルタリングされたフレームを取得した後、処理ロジックは、更なる反復が必要とされているか否かを決定する（処理ブロック６０５）。例えば、２回など一定の回数の反復を事前に設定しておいてもよい。更なる反復が必要とされている場合、処理ロジックは、１組の画像要素ｅを
【数８２】
0005517954.tif 000083
に等しく設定し（処理ブロック６０７）、処理トランザクションを処理ブロック６０３に進める。それ以外の場合、処理フローは、処理ブロック６０６に進み、処理ロジックは、フィルタリングされたフレーム
【数８３】
0005517954.tif 000084
を出力する。
【００７７】
[00101]単一の線形変換Ｈを使用する上述の基本手続きは、許容可能なノイズ除去性能を提供するが、いくつかの異なる線形変換Ｈ１，Ｈ２，．．．，ＨＭを使用することによって、より良い性能を得ることができる。これらの変換の各々を独自の基本手続きにおいて使用して、
【数８４】
0005517954.tif 000085
によって与えられる元の非量子化ビデオフレームｘの推定を生成する。これらの個々の推定を組み合わせて、各々の推定よりも優れた全体的推定
【数８５】
0005517954.tif 000086
を形成する。多数の変換を使用するそのようなプロセスの一実施形態を、図７に示す。
【００７８】
[00102]図７のプロセスは、ハードウェア（例えば、回路、専用ロジックなど）、ソフトウェア（汎用コンピュータシステム若しくは専用装置上で実行される）、又は双方の組み合わせを含み得る処理ロジックによって実行される。処理ロジックは、ファームウェアを含み得る。一実施形態では、処理ロジックは、ノイズ除去フィルタの一部である。
【００７９】
[00103]図７を参照すると、プロセスは、処理ロジックが、復号フレームｙを取得し、他の利用可能な情報を収集することによって開始する（処理ブロック７０１）。他の利用可能な情報は、量子化パラメータ、動き情報、及びモード情報などの圧縮パラメータを含み得る。
【００８０】
[00104]復号フレームを取得し、他の情報を収集した後、処理ロジックは、復号フレームｙにＭ個の変換Ｈｉを適用することによって、１組の係数ｄ１：Ｍを取得する（処理ブロック７０２）。例えば、各変換Ｈｉは、ブロック単位の２次元ＤＣＴを表ことができ、ブロックアライメントは、ｊに依存する。処理ロジックはまた、１組の画像要素ｅをｙの要素に等しく設定する。
【００８１】
[00105]その後、処理ロジックは、圧縮パラメータに基づいて、各係数について、係数ノイズ除去パラメータを決定し（処理ブロック７０３）、圧縮パラメータに基づいて、マスクを決定する（処理ブロック７０４）。
【００８２】
[00106]この情報を用いて、処理ロジックは、ｅ及び係数パラメータに基づいて、ｄ１：Ｍ内の各係数について、条件付き期待値ｃ１：Ｍ（ｉ）を計算し、ｄ１：Ｍ内の係数の値及びｃ１：Ｍ（ｉ）すなわち条件付き期待値を使用して、ノイズ除去規則を適用することによって、フィルタリングされた係数
【数８６】
0005517954.tif 000087
を取得する（処理ブロック７０５）。
【００８３】
[00107]次に、処理ロジックは、Ｈ１：Ｍの逆変換を１組の係数
【数８７】
0005517954.tif 000088
に適用した結果にマスク関数を適用することによって、フィルタリングされたフレーム
【数８８】
0005517954.tif 000089
を取得する（処理ブロック７０６）。
【００８４】
[00108]その後、処理ロジックは、全体的推定
【数８９】
0005517954.tif 000090
を決定する（処理ブロック７０７）。これは、すべての推定を一緒に平均することによって実行し得る。平均は、加重平均であってもよい。一実施形態では、図７の全体的推定ブロックは、個々の推定
【数９０】
0005517954.tif 000091
の加重平均によって与えられる。これは、等しい重みを用いて行うこと、又は、例えば、３つの異なる重み付け技法を特定している、Ｏｎｕｒ  Ｇ．Ｇｕｌｅｒｙｕｚ、「Ｗｅｉｇｈｔｅｄ  Ｏｖｅｒｃｏｍｐｌｅｔｅ  Ｄｅｎｏｉｓｉｎｇ」、Ｐｒｏｃ．Ａｓｉｌｏｍａｒ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｓｉｇｎａｌｓ  ａｎｄ  Ｓｙｓｔｅｍｓ、Ｐａｃｉｆｉｃ  Ｇｒｏｖｅ、ＣＡ、Ｎｏｖ．２００３において説明されている技法など、当技術分野で知られたより複雑な重み決定技法を使用して行うことができる。一実施形態では、３つのうちで最も単純なものが本発明で使用される。したがって、全体的推定が取得され、その後、それがマスクされる。代替実施形態では、個々の推定がマスクされ、その後、全体的推定が形成される。
【００８５】
[00109]全体的推定が取得された後、処理ロジックは、更なる反復が必要とされているか否かを決定する（処理ブロック７０８）。例えば、２回など一定の回数の反復を事前に設定しておいてもよい。更なる反復が必要とされている場合、処理ロジックは、１組の画像要素ｅを
【数９１】
0005517954.tif 000092
に等しく設定し（処理ブロック７０９）、プロセスは、処理ブロック７０５に移り、それ以外の場合、プロセスは、処理ブロック７１０に移り、処理ロジックは、フィルタリングされたフレーム
【数９２】
0005517954.tif 000093
を出力する。
【００８６】
[00110]そこに含まれるオペレーションを含め、上記のノイズ除去プロセスは、２００６年１月１２日に出願された「Ｎｏｎｌｉｎｅａｒ，Ｉｎ−Ｔｈｅ−Ｌｏｏｐ，Ｄｅｎｏｉｓｉｎｇ  Ｆｉｌｔｅｒ  Ｆｏｒ  Ｑｕａｎｔｉｚａｔｉｏｎ  Ｎｏｉｓｅ  Ｒｅｍｏｖａｌ  Ｆｏｒ  Ｈｙｂｒｉｄ  Ｖｉｄｅｏ  Ｃｏｍｐｒｅｓｓｉｏｎ」と題する米国特許出願第１１／３３１８１４号においてより詳細に説明されている。
【００８７】
＜品質向上及び超解像＞
【００８８】
[00111]一実施形態では、上述した技法、特に順変換及び逆変換は、品質向上プロセス又は超解像プロセスにおいて使用される。
【００８９】
[00112]図８は、品質を向上させるため及び／又は解像度を高めるためのプロセスの一実施形態のフロー図である。プロセスは、ハードウェア（回路、専用ロジックなど）、ソフトウェア（汎用コンピュータシステム若しくは専用装置上で実行される）、又は双方の組み合わせを含み得る処理ロジックによって実行される。
【００９０】
[00113]図８を参照すると、ｘは、低解像度（ＬＲ）の入力画像／ビデオフレームを表す。一実施形態では、すべての画像／ビデオフレームは、ピクセルをラスタスキャン順に配列することによってベクトルとして表される。或いは、データは、ベクトル、行列、又は任意の他のフォーマットで表し、及び／又は保存することができる。
【００９１】
[00114]最初に、処理ロジックは、入力フレームｘをアップサンプリングして、アップサンプリングされたフレームｙを取得する（処理ブロック８０１）。アップサンプリングは、入力フレームｘのアップサンプリングバージョン（ｙ）を導出するために選択されたアップサンプリング２−Ｄフィルタを使用して実行することができる。図９は、アップサンプリングプロセスの一実施形態を示しており、以下により詳細に説明する。このオペレーションは、本明細書で説明される技法を品質向上のために使用する場合はオプションである。このオペレーションが実行されない場合、フレームｙは、フレームｘに等しく設定される。
【００９２】
[00115]入力フレームｘをアップサンプリングして、アップサンプリングされたフレームｙを取得した後、処理ロジックは、各ピクセルｉ＝１：Ｎについて、ピクセルｉをピボット（ｐｉｖｏｔ）とするサブフレームｚｉを選択する（処理ブロック８０２）。Ｎは、ｙ内のピクセルの数を表す。この実施形態では、画像内の各ピクセルについて、サブフレームが形成され、処理される。しかし、別の実施形態では、処理は、選択されたピクセルのサブセットに対してのみ実行され得るものであり、画像内のすべてのピクセルに対しては実行されない。サブセットは、事前に決定しておいてもよく、又はサイド情報の一部として通知してもよい。図２６Ａ〜Ｅは、そのようなサブセットの例を示しており、本明細書で説明する教示とともに他のサブセットを使用し得る。
【００９３】
[00116]ピクセルｉをピボットとするサブフレームｚｉを選択した後、処理ロジックは、変換Ｈｉを選択し、サブフレームｚｉに対して変換Ｈｉを適用することによって、係数ｄｉを計算する（処理ブロック８０３）。一実施形態では、変換は、２−Ｄ  ＤＣＴである。別の実施形態では、変換は、２−Ｄアダマール変換である。マスタ閾値は、変換を選択するために使用することができる入力である。
【００９４】
[00117]係数ｄｉを生成した後、処理ロジックは、係数ｄｉに対してマスタ閾値
【数９３】
0005517954.tif 000094
を適用して、
【数９４】
0005517954.tif 000095
を取得し、適応閾値
【数９５】
0005517954.tif 000096
を計算し、係数ｄｉに対して適応閾値
【数９６】
0005517954.tif 000097
を適用して、それらを適応的に閾値処理し、
【数９７】
0005517954.tif 000098
を取得する（処理ブロック８０４）。その後、処理ロジックは、閾値処理された係数
【数９８】
0005517954.tif 000099
に逆変換Ｈｉ−１を適用して、処理されたサブフレーム
【数９９】
0005517954.tif 000100
を取得する（処理ブロック８０５）。
【００９５】
[00118]次に、処理ロジックは、すべてのピクセルに対応するすべての処理されたサブフレーム
【数１００】
0005517954.tif 000101
を重み付け方式で組み合わせて、フレーム
【数１０１】
0005517954.tif 000102
を形成する（処理ブロック８０６）。その後、処理ロジックは、フレーム
【数１０２】
0005517954.tif 000103
に対してデータ整合性ステップを実行して、フレームｙ’を取得する（処理ブロック８０７）。データ整合性ステップは、
【数１０３】
0005517954.tif 000104
と定義することができる。
【００９６】
[00119]処理ロジックは、ｙ’のダウンサンプリングが入力フレームｘを与えるように、
【数１０４】
0005517954.tif 000105
を計算する。このオペレーションは、本明細書で説明する技法を品質向上のために使用する場合にはオプションである。このオペレーションが実行されない場合、フレームｙ’は、フレーム
【数１０５】
0005517954.tif 000106
に等しく設定される。
【００９７】
[00120]その後、処理ロジックは、更なる反復が必要とされているか否かを決定する（処理ブロック８０８）。一実施形態では、反復の回数は２である。反復の実際の回数は、サイド情報の一部として通知することができる。更なる反復が必要とされている場合、プロセスは、処理ブロック８２０に移り、処理ロジックは、新しいマスタ閾値
【数１０６】
0005517954.tif 000107
を計算し、フレームｙをｙ’に等しく設定し（処理ブロック８１１）、その後、プロセスは、処理ブロック８０２に移る。更なる反復は必要でないと処理ロジックが決定した場合、プロセスは、処理ブロック８０９に移り、処理ロジックは、出力フレームｙ’を出力して、プロセスは終了する。一実施形態では、処理ブロック８０１の線形補間オペレーション及び処理ブロック８０６のデータ整合性オペレーションはオプションであることに留意されたい。線形補間オペレーションが（例えば線形補間モジュールが使用不可であることによって）実行されない場合、ビデオ／画像の出力解像度は、入力解像度と同じである。したがって、この実施形態の下では、ビデオ／画像の品質は向上するが、超解像は存在しない。
【００９８】
[00121]図９は、アップサンプリングプロセスの一実施形態のフロー図である。図１０Ａ〜図１０Ｍは、サブフレームタイプのライブラリに対応するマスクの例を示している。図１１は、ピクセルがラスタスキャン順で番号付けられている場合の、ピクセルｉにおけるサブフレームｚｉの一例を示している。図１２は、サブフレーム選択処理の一実施形態のフロー図である。図１３は、サブフレームのための変換選択プロセスの一実施形態のフロー図である。図１４は、閾値処理変換係数のための閾値処理プロセスの一実施形態のフロー図である。図１５は、単調減少階段関数を示している。図１６は、サブフレームを組み合わせてフレームを形成するためのプロセスの一実施形態のフロー図である。図１７は、データ整合性オペレーションの一実施形態のデータフロー図である。
【００９９】
[00122]このプロセス及び上述したオペレーションの一実施形態に関するより多くの情報については、参照することにより本明細書に援用する、Ｓ．Ｋａｎｕｍｕｒｉ、Ｏ．Ｇ．Ｇｕｌｅｒｙｕｚ  ａｎｄ  Ｍ．Ｒ．Ｃｉｖａｎｌａｒ、「Ｆａｓｔ  ｓｕｐｅｒ−ｒｅｓｏｌｕｔｉｏｎ  ｒｅｃｏｎｓｔｒｕｃｔｉｏｎｓ  ｏｆ  ｍｏｂｉｌｅ  ｖｉｄｅｏ  ｕｓｉｎｇ  ｗａｒｐｅｄ  ｔｒａｎｓｆｏｒｍｓ  ａｎｄ  ａｄａｐｔｉｖｅ  ｔｈｒｅｓｈｏｌｄｉｎｇ」、Ｐｒｏｃ．ＳＰＩＥ  Ｃｏｎｆ  ｏｎ  Ａｐｐｌｉｃａｔｉｏｎｓ  ｏｆ  Ｄｉｇｉｔａｌ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ  ＸＸＸ、Ｓａｎ  Ｄｉｅｇｏ、ＣＡ、Ａｕｇ．２００７を参照されたく、また２００８年６月１７日に出願された「Ｉｍａｇｅ／Ｖｉｄｅｏ  Ｑｕａｌｉｔｙ  Ｅｎｈａｎｃｅｍｅｎｔ  ａｎｄ  Ｓｕｐｅｒ  Ｒｅｓｏｌｕｔｉｏｎ  Ｕｓｉｎｇ  Ｓｐａｒｓｅ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎｓ」と題する米国特許出願第１２／１４０８２９号において説明されている。
【０１００】
＜ノイズ及びフリッカー低減＞
【０１０１】
[00123]一実施形態では、上述した技法、特に順変換及び逆変換は、品質向上プロセス又は超解像プロセスにおいて使用される。図１８は、ビデオ系列に対して画像処理を実行するためのプロセスの一実施形態のフロー図である。プロセスは、ハードウェア（回路、専用ロジックなど）、ソフトウェア（汎用コンピュータシステム若しくは専用装置上で実行される）、又は双方の組み合わせを含み得る処理ロジックによって実行される。
【０１０２】
[00124]以下に説明するプロセスでは、ｘは、本明細書に説明する技法によって処理される入力ビデオからの現在のフレームを表し、
【数１０７】
0005517954.tif 000108
は、本明細書に説明する技法を使用した後に出力された過去のフレームを表し、
【数１０８】
0005517954.tif 000109
は、画像処理プロセスによって使用される閾値パラメータを表す。さらに、他のオプションのパラメータを含むＯＰによって表されるベクトルを供給することもできる。ユーザ又はアルゴリズムは、主観的／客観的品質の最適化を使用して、モデルベースの技法を使用して、又は他の方法を使用して、最も望ましいパラメータを決定することができる。較正アルゴリズムも使用することができる。そのようなアルゴリズムは、ビデオ処理パイプライン若しくは入力ビデオ又は双方の部分的／完全な知識を利用することもできる。一実施形態では、すべてのビデオフレームは、ピクセルをラスタスキャン順に配列することによってベクトルとして表され、Ｎは、各ビデオフレーム内のピクセルの数を表す。
【０１０３】
[00125]フレームｘが取得された後、図１８の処理ブロック１８０２のサブフレーム選択プロセスが開始する。サブフレームタイプＳは、Ｍ２×１整数値ベクトルとして定義される。本明細書における目的では、Ｍは、ゼロよりも大きな任意の整数とすることができる。｛Ｓ１，Ｓ２，Ｓ３，．．．｝は、サブフレームタイプのライブラリである。ピクセルがラスタスキャン順で番号付けられているフレームｘから選択されたピクセルの組内の各ピクセルｉについて、サブフレームタイプｓｉが、ライブラリから選択され、ベクトルｐｉが、
【数１０９】
0005517954.tif 000110
として形成される。ここで、
【数１１０】
0005517954.tif 000111
は、すべての要素が１に等しいＭ２×１ベクトルである。一実施形態では、選択されないピクセルについて、ｐｉは、ゼロからなるベクトルである。選択されたピクセルの組は、事前に決定しておくことができ、又はベクトルＯＰ内で通知することができる。この実施形態では、画像内の各ピクセルについて、サブフレームが形成され、処理される。すなわち、選択されたピクセルの組は、フレーム内のすべてのピクセルの組である。しかし、別の実施形態では、処理は、選択されたピクセルのサブセットに対してのみ実行することができ、画像内のすべてのピクセルに対しては実行されない。サブセットは、事前に決定しておいてもよく、又は、サイド情報の一部として通知することができる。図２６Ａ〜Ｅは、そのようなサブセットの例を示している。本明細書で説明する教示とともに、他のサブセットを使用してもよい。サブフレームと呼ばれるＭ２×１ベクトルｚｉは、ｐｉの要素に対応するロケーションの、フレームｘのピクセル値を用いて形成される。ピクセルｉは、サブフレームｚｉのピボットと呼ばれる。図１１は、ピクセルがラスタスキャン順で番号付けられている場合の、ピクセルｉにおけるサブフレームｚｉの一例を示している。図１１を参照すると、ピクセルのラスタスキャン配列は、「１」から始めてその順序で、ピクセルを番号付けることによって生じる。サブフレームは、ピクセルｉにおいてピボットされて示されている。サブフレームは、ワーピングされた行（ｗａｒｐｅｄ  ｒｏｗ）と呼ばれるＭ個のベクトルに編成される。第１のワーピングされた行は、サブフレーム要素１からＭをその順序で有し、第２のワーピングされた行は、サブフレーム要素（Ｍ＋１）から２Ｍを有し、以降も同様である。
【０１０４】
[00126]一実施形態では、Ｍは４に等しく、サブフレームタイプのライブラリは、図１０Ａ〜図１０Ｍに示されたマスクの組に対応する。図１０Ａ〜図１０Ｍを参照すると、サブフレームのこのライブラリを用いた場合、マスクは、矢印で示されるような異なる方向に対応する。図１０Ａのマスクは、正規の水平方向又は垂直方向に対応しているので、本明細書では正規マスク（ｒｅｇｕｌａｒ  ｍａｓｋ）と呼ばれる。他のマスクは、非通常の方向に対応しているので、方向マスク（ｄｉｒｅｃｔｉｏｎａｌ  ｍａｓｋ）と呼ばれる。マスク内のピクセル（「ａ」から「ｐ」）の差分位置（ｄｉｆｆｅｒｅｎｔｉａｌ−ｐｏｓｉｔｉｏｎ）（Ω）は、Ω＝ＣＣ＋Ｗ×ＣＲとして定義され、ここで、Ｗはフレームｙの幅である。ＣＣは、対象とする現在のピクセルの列に達するために、ピクセル「ａ」の列から開始して右に水平に動く必要がある列の数である。ＣＲは、対象とする現在のピクセルの行に達するために、ピクセル「ａ」の行から開始して下に垂直に動く必要がある列の数である。例えば、図１０Ｈのマスクの場合、ピクセル「ｃ」は、ＣＣ＝−１、ＣＲ＝２である。マスクに対応するサブフレームタイプは、「ａ」から「ｐ」の順に並べられた、そのマスク内におけるピクセルの差分位置を含むベクトルである。
【０１０５】
[00127]一実施形態では、ピクセルのサブフレームタイプの選択は、正規マスクに対応するサブフレームタイプを常に選択することによって行われる。別の実施形態では、ピクセルのサブフレームタイプの選択は、選択された各ピクセルについて、（１）各サブフレームタイプについて、形成されたサブフレーム上で２−Ｄ  ＤＣＴを評価し、（２）与えられた閾値Ｔについて、大きさがＴよりも大きい非ゼロ変換係数の数を最小化するサブフレームタイプを選択することによって行われる。また別の実施形態では、ピクセルのサブフレームタイプの選択は、選択された各ピクセルについて、すべてのワーピングされた行にわたって平均されたピクセル値のワーピングされた行の分散（ｗａｒｐｅｄ  ｒｏｗ  ｖａｒｉａｎｃｅ）を最小化するサブフレームタイプを選択することによって行われる。更に別の実施形態では、ピクセルのサブフレームタイプの選択は、Ｋ×Ｌピクセルのブロックについて、各ピクセルに（すべてのワーピングされた行にわたって平均されたピクセル値のワーピングされた行の分散を最小化するサブフレームタイプに基づいて）サブフレームタイプに投票させ、Ｋ×Ｌブロック内のすべてのピクセルについて最も多くの得票を得たサブフレームタイプを選択することによって行われ、ここで、Ｋ及びＬは、０よりも大きな任意の整数とすることができる。一実施形態では、Ｋ及びＬはともに、４に設定される。更に別の実施形態では、ピクセルのサブフレームタイプの選択は、各ピクセルについて、Ｋ×Ｌピクセルのブロックを形成し、このブロック上で先の投票方式を使用してサブフレームタイプを選択することによって行われる。どの場合も、選択されたサブフレームタイプが、現在のピクセルのために使用される。したがって、各マスクについて測定されたこれらの統計量の１つを使用することによって、サブフレームの選択が実行される。図１０Ａ〜図１０Ｍのマスク以外のマスクが使用できることに留意されたい。
【０１０６】
[00128]図１９は、サブフレームタイプ選択プロセスの一実施形態のフロー図である。図２０は、過去の出力フレームからのサブフレーム形成プロセスの一実施形態のフロー図である。
【０１０７】
[00129]図１８の処理ブロック１８０４の一部として、処理ロジックは、空間変換の選択及び適用も実行する。より具体的には、処理ロジックは、ピクセル適応のワープ空間変換（ｐｉｘｅｌ−ａｄａｐｔｉｖｅ  ｗａｒｐｅｄ  ｓｐａｔｉａｌ  ｔｒａｎｓｆｏｒｍ）Ｈｉを使用して、サブフレームｚｉ及び
【数１１１】
0005517954.tif 000112
を、ｅｉ及び
【数１１２】
0005517954.tif 000113
にそれぞれ変換する。図２１は、空間変換選択プロセスの一実施形態のフロー図である。
【０１０８】
[00130]図１８の処理ブロック１８０４の一部として、処理ロジックは、閾値処理も実行する。より具体的には、処理ロジックは、ｅｉの選択された要素に対して適応閾値
【数１１３】
0005517954.tif 000114
を適用して、ａｉを取得する。一実施形態では、ｅｉのすべての要素が選択される。別の実施形態では、第１の要素（通常はＤＣ要素）を除くすべての要素が選択される。更に別の実施形態では、要素はどれも選択されない。また、変換係数ｅｉを、マスタ閾値
【数１１４】
0005517954.tif 000115
を使用して閾値処理し、
【数１１５】
0005517954.tif 000116
を取得する。閾値処理オペレーションは、例えば、硬閾値処理（ｈａｒｄ  ｔｈｒｅｓｈｏｌｄｉｎｇ）及び軟閾値処理（ｓｏｆｔ  ｔｈｒｅｓｈｏｌｄｉｎｇ）など様々な方法で行うことができる。
【０１０９】
[00131]処理ブロック１８０５における処理ロジックは、閾値処理の結果、すなわちベクトルａｉ及び
【数１１６】
0005517954.tif 000117
を使用して、Ｍ２×２行列
【数１１７】
0005517954.tif 000118
を形成する。本明細書における目的では、関数ｈ（）は、恒等関数、輝度変化に一致した
【数１１８】
0005517954.tif 000119
のすべての要素の単純な線形スケーリング、又はフェードなどのより複雑なシーン特性を捉えたより一般的な関数とし得る。処理ロジックは、ピクセル適応時間変換
【数１１９】
0005517954.tif 000120
を使用して、
【数１２０】
0005517954.tif 000121
をｂｉに変換する。変換Ｇｉは、変換のライブラリから選択することができる。変換は、異なるピクセルにおいてピボットされたサブフレームは異なる変換を使用できるので、ピクセル適応と呼ばれる。適応的である場合、選択された変換は、絶対値がマスタ閾値
【数１２１】
0005517954.tif 000122
よりも大きなｂｉ内の係数を最も少なく有する変換である。図２２は、時間変換選択プロセスの一実施形態のフロー図である。
【０１１０】
[00132]変換係数ｂｉを生成した後、変換係数ｂｉは、ｃｉを取得するために、
【数１２２】
0005517954.tif 000123
を使用して閾値処理される（図１８の処理ブロック１８０６）。閾値処理オペレーションは、上述したように、硬閾値処理及び軟閾値処理など様々な方法で行うことができる。閾値処理の選択は、ベクトルＯＰ内で通知することができる。図２３は、変換係数を閾値処理するための閾値処理プロセスの一実施形態のフロー図である。
【０１１１】
[00133]閾値処理された係数に逆変換を適用した後、処理されたサブフレームのすべてが、重み付け方式で組み合わされて、フレームｙが形成される。図２４は、サブフレームを組み合わせてフレームを生成するためのプロセスの一実施形態のフロー図である。
【０１１２】
[00134]フレームｙは、現在の入力フレームｘに対応する出力である。処理する更なるフレームが存在する場合、処理ロジックは、現在の入力フレームｘを更新し、ｙを
【数１２３】
0005517954.tif 000124
にコピーし、図１８に示されるプロセスを繰り返す（処理ブロック１８１２）。
【０１１３】
[00135]図２５は、ビデオ系列に対して画像処理を実行するためのプロセスの別の実施形態のフロー図である。
【０１１４】
[00136]図２６Ａ〜Ｅは、選択されたピクセルのサブセット例を示す図である。
【０１１５】
[00137]このノイズ及び／又はフリッカー低減プロセスの一実施形態に関するより多くの情報については、２００８年９月１８日に出願された「Ｎｏｉｓｅ  ａｎｄ／ｏｒ  Ｆｌｉｃｋｅｒ  Ｒｅｄｕｃｔｉｏｎ  ｉｎ  Ｖｉｄｅｏ  Ｓｅｑｕｅｎｃｅｓ  ｕｓｉｎｇ  Ｓｐａｔｉａｌ  ａｎｄ  Ｔｅｍｐｏｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ」と題する米国出願第１２／２３３４６８号を参照されたい。また参照することにより本明細書に援用される、Ｓ．Ｋａｎｕｍｕｒｉ、Ｏ．Ｇ．Ｇｕｌｅｒｙｕｚ、Ｍ．Ｒ．Ｃｉｖａｎｌａｒ、Ａ．Ｆｕｊｉｂａｙａｓｈｉ  ａｎｄ  Ｃ．Ｓ．Ｂｏｏｎ、「Ｔｅｍｐｏｒａｌ  Ｆｌｉｃｋｅｒ  Ｒｅｄｕｃｔｉｏｎ  ａｎｄ  Ｄｅｎｏｉｓｉｎｇ  ｉｎ  Ｖｉｄｅｏ  ｕｓｉｎｇ  Ｓｐａｒｓｅ  Ｄｉｒｅｃｔｉｏｎａｌ  Ｔｒａｎｓｆｏｒｍｓ」、Ｐｒｏｃ．ＳＰＩＥ  Ｃｏｎｆ  ｏｎ  Ａｐｐｌｉｃａｔｉｏｎｓ  ｏｆ  Ｄｉｇｉｔａｌ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ  ＸＸＸＩ、Ｓａｎ  Ｄｉｅｇｏ、ＣＡ、Ａｕｇ．２００８において説明されている。
【０１１６】
[00138]他の実施形態も、本明細書に説明した技法を使用し得る。
【０１１７】
[00139]本発明の実施形態を、大部分において、図に示し上述した特定の例を参照して説明した。しかし、本発明の範囲から逸脱することのなく、本発明の実施形態の代替及び変更が当業者に明らかなことが当業者には理解されよう。そのような変形及び実施は、以下の特許請求の範囲に従って獲得されることが理解される。
【０１１８】
[00140]本明細書で説明したプロセスは、上述したオペレーションをプログラム可能プロセッサに実行させるためのデータ及び命令が保存された機械可読媒体とすることができる。他の実施形態では、オペレーションは、ハードワイヤードロジックを含む特定のハードウェアコンポーネントによって実行することができる。それらのオペレーションは、或いは、プログラムされたコンピュータコンポーネント及びカスタムハードウェアコンポーネントの任意の組み合わせによって実行することができる。
【０１１９】
[00141]プログラム可能プロセッサ用の命令は、プロセッサによって直接実行可能な形式（「オブジェクト」又は「実行可能ファイル」形式）で保存することができ、又は命令は、「ソースコード」と呼ばれる人間が読めるテキスト形式で保存することができ、ソースコードは、「コンパイラ」として一般に知られる開発ツールによって自動的に処理されて、実行可能コードを生成することができる。命令は、基本ソースコードの所定のバージョンからの差分又は「デルタ」として指定することもできる。デルタ（「パッチ」とも呼ばれる）は、実施形態を含まない一般に利用可能なソースコードパッケージを元として、本発明の実施形態を実施するための命令を準備するために使用することができる。
【０１２０】
[00142]先の説明では、多くの細部を説明した。しかし、本発明がこれらの特定の細部がなくとも実施できることは当業者には明らかであろう。いくつかの場合では、よく知られた構造及びデバイスは、本発明を曖昧にしないように、詳細にではなく、ブロック図形式で示している。
【０１２１】
[00143]詳細な説明のいくつかの部分は、アルゴリズムと、コンピュータメモリ内のデータビットに対するオペレーションのシンボル表現とによって提示された。これらのアルゴリズム記述及び表現は、仕事の内容を他の当業者に最も効率的に伝えるためにデータ処理分野の当業者によって使用される手段である。アルゴリズムは、ここでは一般に、所望の結果をもたらす自己矛盾のないステップの系列であると見なされている。ステップは、物理量に対する必要とされる物理的オペレーションである。必ずしも必要ではないが通常は、これらの量は、保存、転送、組み合わせ、比較、及び他のオペレーションが可能な、電気的又は磁気的信号の形式をとる。これらの信号をビット、値、要素、シンボル、文字、項、又は数などと呼ぶことが主として共通使用の理由から便利であることが分かっている。
【０１２２】
[00144]しかし、上記及び類似の用語のすべては、適切な物理量に関連付けられ、これらの量に適用される単に便利なラベルにすぎないことに留意すべきである。先の解説から明らかなように別途具体的に述べられない限り、説明の全体にわたって、「処理する」、「計算する」、「算出する」、「決定する」、又は「表示する」などの用語を利用した解説は、コンピュータシステムのレジスタ及びメモリ内の物理（電子的）量として表現されるデータをオペレーション及び変形して、コンピュータシステムのメモリ若しくはレジスタ内の、又は他のそのような情報ストレージ、伝送、若しくは表示デバイス内の物理量として同様に表現される他のデータにする、コンピュータシステム又は類似の電子コンピューティングデバイスの動作及びプロセスに言及していることが理解される。
【０１２３】
[00145]本発明は、本明細書のオペレーションを実行するための装置にも関する。この装置は、必要とされる目的のために特に構成することができ、又はコンピュータ内に保存されたコンピュータプログラムによって選択的に活動化又は再構成される汎用コンピュータを含むことができる。そのようなコンピュータプログラムは、フロッピディスク、光ディスク、コンパクトディスクリードオンリメモリ（「ＣＤ−ＲＯＭ」）、及び磁気光ディスクを含む任意のタイプのディスク、リードオンリメモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、消去可能プログラマブルリードオンリメモリ（「ＥＰＲＯＭ」）、電気的消去可能プログラマブルリードオンリメモリ（「ＥＥＰＲＯＭ」）、フラッシュメモリ、磁気若しくは光カード、又は電子的命令を保存するのに適した任意のタイプの媒体などの、しかしこれらに限定されない、コンピュータ可読記憶媒体内に保存することができる。
【０１２４】
[00146]本明細書で提示したアルゴリズム及び表示は、いずれか特定のコンピュータ又は他の装置に本質的に関係しない。様々な汎用システムが、本明細書の教示によるプログラムとともに使用することができ、又は必要とされるプロセスステップを実行するためにより専門的な装置を構成することが便利であると分かることもある。様々なこれらのシステムに必要とされる構造は、以下の説明から明らかとなる。加えて、本発明は、いずれか特定のプログラミング言語を参照して説明されない。本明細書で説明した本発明の教示を実施するために、様々なプログラミング言語が使用できることが理解されよう。
【０１２５】
[00147]本発明の応用例を、大部分において、特定の例に言及することによって、また機能をあるハードウェア及び／又はソフトウェアコンポーネントに個々に割り当てることによって説明した。しかし、本明細書で説明した技法が、本明細書での説明とは異なって、本発明の実施形態の機能を分散させたソフトウェア及びハードウェアによっても達成できることが当業者には理解されよう。そのような変形及び実施は、以下の特許請求の範囲に従って獲得されることが理解される。
【図１】
0005517954.tif 000125
【図２Ａ】
0005517954.tif 000126
【図２Ｂ】
0005517954.tif 000127
【図２Ｃ】
0005517954.tif 000128
【図２Ｄ】
0005517954.tif 000129
【図３Ａ】
0005517954.tif 000130
【図３Ｂ】
0005517954.tif 000131
【図４】
0005517954.tif 000132
【図５】
0005517954.tif 000133
【図６】
0005517954.tif 000134
【図７】
0005517954.tif 000135
【図８】
0005517954.tif 000136
【図１０Ａ】
0005517954.tif 000137
【図１０Ｂ】
0005517954.tif 000138
【図１０Ｃ】
0005517954.tif 000139
【図１０Ｄ】
0005517954.tif 000140
【図１０Ｅ】
0005517954.tif 000141
【図１０Ｆ】
0005517954.tif 000142
【図１０Ｇ】
0005517954.tif 000143
【図１０Ｈ】
0005517954.tif 000144
【図１０Ｉ】
0005517954.tif 000145
【図１０Ｊ】
0005517954.tif 000146
【図１０Ｋ】
0005517954.tif 000147
【図１０Ｌ】
0005517954.tif 000148
【図１０Ｍ】
0005517954.tif 000149
【図１２】
0005517954.tif 000150
【図１３】
0005517954.tif 000151
【図１４】
0005517954.tif 000152
【図１５】
0005517954.tif 000153
【図１６】
0005517954.tif 000154
【図１７】
0005517954.tif 000155
【図１８】
0005517954.tif 000156
【図１９】
0005517954.tif 000157
【図２０】
0005517954.tif 000158
【図２１】
0005517954.tif 000159
【図２２】
0005517954.tif 000160
【図２３】
0005517954.tif 000161
【図２４】
0005517954.tif 000162
【図２５】
0005517954.tif 000163
【図２６Ａ】
0005517954.tif 000164
【図２６Ｂ】
0005517954.tif 000165
【図２６Ｃ】
0005517954.tif 000166
【図２６Ｄ】
0005517954.tif 000167
【図２６Ｅ】
0005517954.tif 000168
【図３Ｃ】
0005517954.tif 000169
【図３Ｄ】
0005517954.tif 000170
【図９】
0005517954.tif 000171
【図１１】
0005517954.tif 000172