(57)【要約】  一般には、本開示は、画像データを拡大縮小するために使用され得るエッジ方向付け拡大縮小フィルタを提供するための様々な技法を説明する。例示的な装置は、第１の探索テーブルと第２の探索テーブルとを格納するように構成された記憶媒体と、それぞれがソース画像内の少なくとも２つの画素の値の間の勾配を示す、１つ以上の勾配値を取得するように構成された１つ以上のプロセッサとを含む。この１つ以上のプロセッサは、それらの勾配値に基づいて、第１の探索テーブルから１つ以上の逆勾配値を生成して、それらの逆勾配値に基づいて、第２の探索テーブルから１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成するようにも構成される。この１つ以上のプロセッサは、それらの係数に基づいて、エッジ方向付けフィルタを生成して、補間画素を生成するために、そのフィルタをそれらの少なくとも２つの画素に適用するようにさらに構成され得る。
2012501594.tif 000002
【特許請求の範囲】
【請求項１】
それぞれがソース画像内の少なくとも２つの画素の値の間の勾配を示す、１つ以上の勾配値を取得することと、前記１つ以上の勾配値に基づいて、第１の探索テーブルから１つ以上の逆勾配値を生成することと、前記１つ以上の逆勾配値に基づいて、第２の探索テーブルから１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成することとを含む方法。
【請求項２】
前記１つ以上のエッジ方向付け拡大縮小フィルタ係数に基づいて、エッジ方向付け拡大縮小フィルタを生成することをさらに含む、請求項１に記載の方法。
【請求項３】
拡大縮小された画像内で補間画素を生成するために、前記エッジ方向付け拡大縮小フィルタを前記ソース画像内の前記少なくとも２つの画素に適用することと、前記拡大縮小された画像の前記補間画素をディスプレイ装置上に表示することとをさらに含み、前記拡大縮小された画像が、拡大された画像又は縮小された画像のうちの１つを含む、請求項２に記載の方法。
【請求項４】
前記１つ以上の逆勾配値が、１つ以上の事前に計算された逆勾配値を含み、前記１つ以上のエッジ方向付け拡大縮小フィルタ係数が、１つ以上の事前に計算されたエッジ方向付け拡大縮小フィルタ係数を含む、請求項１に記載の方法。
【請求項５】
前記１つ以上の勾配値を取得することが、拡大縮小された画像内で補間されることになる画素の第１の側に配置された、前記ソース画像内の前記少なくとも２つの画素の値の間の第１の勾配を示す第１の勾配値を取得することと、前記拡大縮小された画像内で補間されることになる前記画素の第２の異なる側に配置された、前記ソース画像内の少なくとも２つの追加の画素の値の間の第２の勾配を示す第２の勾配値を取得することとを含み、前記１つ以上の逆勾配値を生成することが、前記第１の勾配値に基づいて、前記第１の探索テーブルから第１の逆勾配値を生成することと、前記第２の勾配値に基づいて、前記第１の探索テーブルから第２の逆勾配値を生成することとを含む、請求項１に記載の方法。
【請求項６】
前記第２の探索テーブルから前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成することが、前記第１の逆勾配値及び前記第２の逆勾配値に基づいて、前記第２の探索テーブルから少なくとも４つのエッジ方向付け拡大縮小フィルタ係数を生成することを含む、請求項５に記載の方法。
【請求項７】
補間画素を生成するために、前記少なくとも４つのエッジ方向付け拡大縮小フィルタ係数を前記少なくとも２つの画素と前記少なくとも２つの追加の画素とに適用することをさらに含む、請求項６に記載の方法。
【請求項８】
１つ以上の量子化された勾配値を取得するために、前記１つ以上の勾配値の不均一量子化を実行することをさらに含み、前記１つ以上の逆勾配値を生成することが、前記１つ以上の量子化された勾配値に基づいて、前記第１の探索テーブルから前記１つ以上の逆勾配値を生成することを含む、請求項１に記載の方法。
【請求項９】
前記１つ以上の逆勾配値を生成することが、前記１つ以上の勾配値に基づいて、前記第１の探索テーブルから１つ以上の量子化された逆勾配値を生成することを含み、前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成することが、前記１つ以上の量子化された逆勾配値に基づいて、前記第２の探索テーブルから前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成することを含み、前記１つ以上の量子化された逆勾配値が、１つ以上の不均一量子化アルゴリズムから計算された所定の値を含む、請求項１に記載の方法。
【請求項１０】
前記１つ以上の不均一量子化アルゴリズムが、１つ以上のクランプ関数を含む、請求項９に記載の方法。
【請求項１１】
前記ソース画像内の前記少なくとも２つの画素に関して補間されることになる画素の位置を少なくとも一部示す位相情報を受信することをさらに含み、前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成することが、前記１つ以上の逆勾配値と前記位相情報とに基づいて、前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成することを含む、請求項１に記載の方法。
【請求項１２】
前記１つ以上の勾配値を前記取得することと、前記１つ以上の逆勾配値を前記生成することと、拡大縮小された画像内で複数の補間画素を生成するために、前記ソース画像内の複数の画素に関する前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を前記生成することとを繰り返すことをさらに含み、前記繰り返すことが、前記拡大縮小された画像の前記補間画素を生成するために、前記生成されたエッジ方向付け拡大縮小フィルタ係数を前記ソース画像内の前記複数の画素に対して水平方向又は垂直方向に繰り返される形で適用することをさらに含む、請求項１に記載の方法。
【請求項１３】
第１の探索テーブルと第２の探索テーブルとを格納するように構成された記憶媒体と、それぞれがソース画像内の少なくとも２つの画素の値の間の勾配を示す、１つ以上の勾配値を取得して、前記１つ以上の勾配値に基づいて、前記第１の探索テーブルから１つ以上の逆勾配値を生成して、前記１つ以上の逆勾配値に基づいて、前記第２の探索テーブルから１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成するように構成された１つ以上のプロセッサとを備える装置。
【請求項１４】
前記１つ以上のプロセッサが、前記１つ以上のエッジ方向付け拡大縮小フィルタ係数に基づいて、エッジ方向付け拡大縮小フィルタを生成するようにさらに構成された、請求項１３に記載の装置。
【請求項１５】
ディスプレイ装置をさらに備え、前記１つ以上のプロセッサが、拡大縮小された画像内で補間画素を生成するために、前記エッジ方向付け拡大縮小フィルタを前記ソース画像内の前記少なくとも２つの画素に適用するようにさらに構成され、前記ディスプレイ装置が、前記拡大縮小された画像の前記補間画素を表示するように構成され、前記拡大縮小された画像が、拡大された画像又は縮小された画像のうちの１つを含み、前記１つ以上のプロセッサのそれぞれがディスプレイプロセッサ、グラフィックスプロセッサ、又は制御プロセッサを備える、請求項１４に記載の装置。
【請求項１６】
前記１つ以上の逆勾配値が、１つ以上の事前に計算された逆勾配値を含み、前記１つ以上のエッジ方向付け拡大縮小フィルタ係数が、１つ以上の事前に計算されたエッジ方向付け拡大縮小フィルタ係数を含む、請求項１３に記載の装置。
【請求項１７】
前記１つ以上のプロセッサが、少なくとも一部、拡大縮小された画像内で補間されることになる画素の第１の側に配置された、前記ソース画像内の前記少なくとも２つの画素の値の間の第１の勾配を示す第１の勾配値を取得することによって、かつ前記拡大縮小された画像内で補間されることになる前記画素の第２の異なる側に配置された、前記ソース画像内の少なくとも２つの追加の画素の値の第２の勾配を示す第２の勾配値を取得することによって、前記１つ以上の勾配値を取得するように構成され、前記１つ以上のプロセッサが、少なくとも一部、前記第１の勾配値に基づいて、前記第１の探索テーブルから第１の逆勾配値を生成して、前記第２の勾配値に基づいて、前記第１の探索テーブルから第２の逆勾配値を生成することによって、前記１つ以上の逆勾配値を生成するように構成された、請求項１３に記載の装置。
【請求項１８】
前記１つ以上のプロセッサが、少なくとも一部、前記第１の逆勾配値及び前記第２の逆勾配値に基づいて、前記第２の探索テーブルから少なくとも４つのエッジ方向付け拡大縮小フィルタ係数を生成することによって、前記第２の探索テーブルから前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成するように構成された、請求項１７に記載の装置。
【請求項１９】
前記１つ以上のプロセッサが、補間画素を生成するために、前記少なくとも４つのエッジ方向付け拡大縮小フィルタ係数を前記少なくとも２つの画素と前記少なくとも２つの追加の画素とに適用するようにさらに構成された、請求項１８に記載の装置。
【請求項２０】
前記１つ以上のプロセッサが、１つ以上の量子化された勾配値を取得するために、前記１つ以上の勾配値の不均一量子化を実行するようにさらに構成され、前記１つ以上のプロセッサが、少なくとも一部、前記１つ以上の量子化された勾配値に基づいて、前記第１の探索テーブルから前記１つ以上の逆勾配値を生成することによって、前記１つ以上の逆勾配値を生成するように構成された、請求項１３に記載の装置。
【請求項２１】
前記１つ以上のプロセッサが、少なくとも一部、前記１つ以上の勾配値に基づいて、前記第１の探索テーブルから１つ以上の量子化された逆勾配値を生成することによって、前記１つ以上の逆勾配値を生成するように構成され、前記１つ以上のプロセッサが、少なくとも一部、前記１つ以上の量子化された逆勾配値に基づいて、前記第２の探索テーブルから前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成することによって、前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成するように構成され、前記１つ以上の量子化された逆勾配値が、１つ以上の不均一量子化アルゴリズムから計算された所定の値を含む、請求項１３に記載の装置。
【請求項２２】
前記１つ以上の不均一量子化アルゴリズムが、１つ以上のクランプ関数を含む、請求項２１に記載の装置。
【請求項２３】
前記１つ以上のプロセッサが、前記ソース画像内の前記少なくとも２つの画素に関して補間されることになる画素の位置を少なくとも一部示す位相情報を受信するようにさらに構成され、前記１つ以上のプロセッサが、少なくとも一部、前記１つ以上の逆勾配値と前記位相情報とに基づいて、前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成することによって、前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成するように構成された、請求項１３に記載の装置。
【請求項２４】
前記１つ以上のプロセッサが、前記１つ以上の勾配値を取得することと、前記１つ以上の逆勾配値を生成することと、拡大縮小された画像内で複数の補間画素を生成するために、前記ソース画像内の複数の画素に関する前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成することとを繰り返すようにさらに構成され、前記１つ以上のプロセッサが、前記拡大縮小された画像の前記補間画素を生成するために、前記生成されたエッジ方向付け拡大縮小フィルタ係数を前記ソース画像内の前記複数の画素に対して水平方向又は垂直方向に繰り返される形で適用するようにさらに構成された、請求項１３に記載の装置。
【請求項２５】
前記装置が、無線通信装置ハンドセットを備える、請求項１３に記載の装置。
【請求項２６】
前記装置が、１つ以上の集積回路装置を備える、請求項１３に記載の装置。
【請求項２７】
それぞれがソース画像内の少なくとも２つの画素の値の間の勾配を示す、１つ以上の勾配値を取得するために手段と、前記１つ以上の勾配値に基づいて、第１の探索テーブルから１つ以上の逆勾配値を生成するための手段と、前記１つ以上の逆勾配値に基づいて、第２の探索テーブルから１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成するための手段とを備える装置。
【請求項２８】
前記１つ以上のエッジ方向付け拡大縮小フィルタ係数に基づいて、エッジ方向付け拡大縮小フィルタを生成するための手段をさらに備える、請求項２７に記載の装置。
【請求項２９】
拡大縮小された画像内で補間画素を生成するために、前記エッジ方向付け拡大縮小フィルタを前記ソース画像内の前記少なくとも２つの画素に適用するための手段と、前記拡大縮小された画像の前記補間画素をディスプレイ装置上に表示するための手段とをさらに備え、前記拡大縮小された画像が、拡大された画像又は縮小された画像のうちの１つを含む、請求項２８に記載の装置。
【請求項３０】
前記１つ以上の逆勾配値が、１つ以上の事前に計算された逆勾配値を含み、前記１つ以上のエッジ方向付け拡大縮小フィルタ係数が、１つ以上の事前に計算されたエッジ方向付け拡大縮小フィルタ係数を含む、請求項２７に記載の装置。
【請求項３１】
前記１つ以上の勾配値を取得するための前記手段が、拡大縮小された画像内で補間されることになる画素の第１の側に配置された、前記ソース画像の前記少なくとも２つの画素の値の間の第１の勾配を示す第１の勾配値を取得するための手段と、前記拡大縮小された画像内で補間されることになる前記画素の第２の異なる側に配置された、前記ソース画像内の少なくとも２つの追加の画素の値の間の第２の勾配を示す第２の勾配値を取得するための手段とを備え、前記１つ以上の逆勾配値を生成するための前記手段が、前記第１の勾配値に基づいて、前記第１の探索テーブルから第１の逆勾配値を生成するための手段と、前記第２の勾配値に基づいて、前記第１の探索テーブルから第２の逆勾配値を生成するための手段とを備える、請求項２７に記載の装置。
【請求項３２】
前記第２の探索テーブルから前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成するための前記手段が、前記第１の逆勾配値と前記第２の逆勾配値とに基づいて、前記第２の探索テーブルから少なくとも４つのエッジ方向付け拡大縮小フィルタ係数を生成するための手段を備える、請求項３１に記載の装置。
【請求項３３】
補間画素を生成するために、前記少なくとも４つのエッジ方向付け拡大縮小フィルタ係数を前記少なくとも２つの画素と前記少なくとも２つの追加の画素とに適用するための手段をさらに備える、請求項３２に記載の装置。
【請求項３４】
１つ以上の量子化された勾配値を取得するために、前記１つ以上の勾配値の不均一量子化を実行するための手段をさらに備え、前記１つ以上の逆勾配値を生成するための前記手段が、前記１つ以上の量子化された勾配値に基づいて、前記第１の探索テーブルから前記１つ以上の逆勾配値を生成するための手段を備える、請求項２７に記載の装置。
【請求項３５】
前記１つ以上の逆勾配値を生成するための前記手段が、前記１つ以上の勾配値に基づいて、前記第１の探索テーブルから１つ以上の量子化された逆勾配値を生成するための手段を備え、前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成するための前記手段が、前記１つ以上の量子化された逆勾配値に基づいて、前記第２の探索テーブルから前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成するための手段を備え、前記１つ以上の量子化された逆勾配値が、１つ以上の不均一量子化アルゴリズムから計算された所定の値を含む、請求項２７に記載の装置。
【請求項３６】
前記１つ以上の不均一量子化アルゴリズムが、１つ以上のクランプ関数を含む、請求項３５に記載の装置。
【請求項３７】
前記ソース画像内の前記少なくとも２つの画素に関して補間されることになる画素の位置を少なくとも一部示す位相情報を受信するための手段をさらに備え、前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成するための前記手段が、前記１つ以上の逆勾配値と前記位相情報とに基づいて、前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成するための手段を備える、請求項２７に記載の装置。
【請求項３８】
前記１つ以上の勾配値を前記取得することと、前記１つ以上の逆勾配値を前記生成することと、拡大縮小された画像内で複数の補間画素を生成するために、前記ソース画像内の複数の画素に関する前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を前記生成することとを繰り返すための手段をさらに備え、繰り返すための前記手段が、前記拡大縮小された画像の前記補間画素を生成するために、前記生成されたエッジ方向付け拡大縮小フィルタ係数を前記ソース画像内の前記複数の画素に対して水平方向又は垂直方向に繰り返される形で適用するための手段を備える、請求項２７に記載の装置。
【請求項３９】
１つ以上のプロセッサに、それぞれがソース画像内の少なくとも２つの画素の値の間の勾配を示す、１つ以上の勾配値を取得させて、前記１つ以上の勾配値に基づいて、第１の探索テーブルから１つ以上の逆勾配値を生成させ、前記１つ以上の逆勾配値に基づいて、第２の探索テーブルから１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成させるための命令を含むコンピュータ可読媒体。
【請求項４０】
前記１つ以上のプロセッサに、前記１つ以上のエッジ方向付け拡大縮小フィルタ係数に基づいて、エッジ方向付け拡大縮小フィルタを生成させるための命令をさらに含む、請求項３９に記載のコンピュータ可読媒体。
【請求項４１】
前記１つ以上のプロセッサに、拡大縮小された画像内で補間画素を生成するために、前記エッジ方向付け拡大縮小フィルタを前記ソース画像内の前記少なくとも２つの画素に適用させて、前記拡大縮小された画像の前記補間画素をディスプレイ装置上に表示させるための命令をさらに含み、前記拡大縮小された画像が、拡大された画像又は縮小された画像のうちの１つを含む、請求項４０に記載のコンピュータ可読媒体。
【請求項４２】
前記１つ以上の逆勾配値が、１つ以上の事前に計算された逆勾配値を含み、前記１つ以上のエッジ方向付け拡大縮小フィルタ係数が、１つ以上の事前に計算されたエッジ方向付け拡大縮小フィルタ係数を含む、請求項３９に記載のコンピュータ可読媒体。
【請求項４３】
前記１つ以上のプロセッサに前記１つ以上の勾配値を取得させるための前記命令が、前記１つ以上のプロセッサに、拡大縮小された画像内で補間されることになる画素の第１の側に配置された、前記ソース画像内の前記少なくとも２つの画素の値の間の第１の勾配を示す第１の勾配値を取得させて、前記拡大縮小された画像内で補間されることになる前記画素の第２の異なる側に配置された、前記ソース画像内の少なくとも２つの追加の画素の値の間の第２の勾配を示す第２の勾配値を取得させるための命令を含み、前記１つ以上のプロセッサに前記１つ以上の逆勾配値を生成させるための前記命令が、前記１つ以上のプロセッサに、前記第１の勾配値に基づいて、前記第１の探索テーブルから第１の逆勾配値を生成させて、前記第２の勾配値に基づいて、前記第１の探索テーブルから第２の逆勾配値を生成させるための命令を含む、請求項３９に記載のコンピュータ可読媒体。
【請求項４４】
前記１つ以上のプロセッサに前記第２の探索テーブルから前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成させるための前記命令が、前記１つ以上のプロセッサに、前記第１の逆勾配値及び前記第２の逆勾配値に基づいて、前記第２の探索テーブルから少なくとも４つのエッジ方向付け拡大縮小フィルタ係数を生成させるための命令を含む、請求項４３に記載のコンピュータ可読媒体。
【請求項４５】
前記１つ以上のプロセッサに、補間画素を生成するために、前記少なくとも４つのエッジ方向付け拡大縮小フィルタ係数を前記少なくとも２つの画素と前記少なくとも２つの追加の画素とに適用させるための命令をさらに含む、請求項４４に記載のコンピュータ可読媒体。
【請求項４６】
前記１つ以上のプロセッサに、１つ以上の量子化された勾配値を取得するために、前記１つ以上の勾配値の不均一量子化を実行させるための命令をさらに含み、前記１つ以上のプロセッサに、前記１つ以上の逆勾配値を生成させるための前記命令が、前記１つ以上のプロセッサに、前記１つ以上の量子化された勾配値に基づいて、前記第１の探索テーブルから前記１つ以上の逆勾配値を生成させるための命令を含む、請求項３９に記載のコンピュータ可読媒体。
【請求項４７】
前記１つ以上のプロセッサに前記１つ以上の逆勾配値を生成させるための前記命令が、前記１つ以上のプロセッサに、前記１つ以上の勾配値に基づいて、前記第１の探索テーブルから１つ以上の量子化された逆勾配値を生成させるため命令を含み、前記１つ以上のプロセッサに、前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成させるための前記命令が、前記１つ以上のプロセッサに、前記１つ以上の量子化された逆勾配値に基づいて、前記第２の探索テーブルから前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成させるための命令を含み、前記１つ以上の量子化された逆勾配値が、１つ以上の不均一量子化アルゴリズムから計算された所定の値を含む、請求項３９に記載のコンピュータ可読媒体。
【請求項４８】
前記１つ以上の不均一量子化アルゴリズムが、１つ以上のクランプ関数を含む、請求項４７に記載のコンピュータ可読媒体。
【請求項４９】
前記１つ以上のプロセッサに、前記ソース画像内の前記少なくとも２つの画素に関して補間されることになる画素の位置を少なくとも一部示す位相情報を受信させるための命令をさらに含み、前記１つ以上のプロセッサに、前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成させるための前記命令が、前記１つ以上のプロセッサに、前記１つ以上の逆勾配値と前記位相情報とに基づいて、前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成させるための命令を含む、請求項３９に記載のコンピュータ可読媒体。
【請求項５０】
前記１つ以上のプロセッサに、前記１つ以上の勾配値を前記取得させることと、前記１つ以上の逆勾配値を前記生成させることと、拡大縮小された画像内で複数の補間画素を生成するために、前記ソース画像内の複数の画素に関する前記１つ以上のエッジ方向付け拡大縮小フィルタ係数を前記生成させることとを繰り返させるための命令をさらに含み、前記１つ以上のプロセッサに繰り返させるための前記命令が、前記１つ以上のプロセッサに、前記拡大縮小された画像の前記補間画素を生成するために、前記生成されたエッジ方向付け拡大縮小フィルタ係数を前記ソース画像内の前記複数の画素に対して水平方向又は垂直方向に繰り返される形で適用させるための命令をさらに含む、請求項３９に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、グラフィックス処理システム内／ビデオ処理システム内で画像データ／ビデオデータを拡大縮小するための技法に関する。
【背景技術】
【０００２】
ディスプレイ装置は、２〜３の例を挙げると、ディジタルビデオカメラもしくは静止写真カメラによって捕捉された画像データ、ビデオアーカイブもしくは静止写真アーカイブから取得された画像データ、ソフトウェアアプリケーションによって作成された画像データ、又はブロードキャストメディアもしくはストリーミングメディアから取得された画像データすら含む、様々な異なるタイプの画像データを表示することが可能である。ディスプレイ装置は、デスクトップコンピュータもしくはラップトップコンピュータ、コンピュータワークステーション、携帯情報端末（ＰＤＡ）もしくは移動体電話などの移動体デバイス、無線通信デバイス、マルチメディアデバイス、カメラ、又はテレビなどの専用ビューイングステーション（viewing stations）など、様々なデバイスと一体化されることが可能であり、それらに結合されることも可能であり、あるいはそうでない場合、それらと関連付けられることが可能である。ディスプレイ装置は、液晶ディスプレイ（ＬＣＤ）、ブラウン管（ＣＲＴ）ディスプレイ、プラズマディスプレイ、プロジェクションディスプレイなどを含み得る。
【０００３】
多くの場合、ディスプレイ装置は、ディスプレイされることが可能な画像データの画素の数によって制限される固有の最大解像度を有し得る。一般には、ディスプレイ装置は、固有の最大解像度以下の画像解像度の範囲を生み出すことができる。しかし、画像データ又は画像情報が、表示画素のすべてより少ない値を確定する場合、そのデバイスは、より大きな解像度に対して画像データを上方に拡大縮小することが可能である。例えば、ディスプレイ装置は、より大きなフォーマットに画像データを拡大縮小するための補間によって追加の画像を生み出すことが可能である。ディスプレイ装置がより大きくなるにつれて、画像拡大縮小はますます重要になる。移動体アプリケーションの場合、ユーザがより大きなディスプレイを望む場合があるとしても、チャネル制限は、移動装置に送信され得る画像データの量を低減する傾向があり、結果として、より小さなフォーマット画像をもたらす。したがって、画像のアップ拡大縮小は、ある種の移動体アプリケーションにとって望ましい場合がある。
【０００４】
現在、画像の拡大又は縮小を達成するための多くの技法が存在する。一般的な補間技法は、バイリニア補間（bilinear interpolation）、バイキュービック補間、３次スプライン補間、及びエッジ方向付け補間（edge directed interpolation）（ＥＤＩ）を含む。
【発明の概要】
【０００５】
一般に、本開示は、拡大又は縮小など、エッジ方向付け画像拡大縮小に関する双方向探索テーブル設計を提供するための技法に関する。この設計は、補間アルゴリズム又はデシメーションアルゴリズムなど、勾配ベースのエッジ方向付けアルゴリズムをサポートする。補間アルゴリズムの一形態では、補間フィルタの係数は、画像データの局所勾配レベルに対して適応性があり、探索テーブルのうちの１つの中に格納されることが可能である。この補間アルゴリズムは、バイキュービック補間アルゴリズム又は３次スプライン補間アルゴリズムと比べて、より鋭い拡大縮小画像を生み出すことが可能である。さらに、元の高解像度画像に関する補間画像の忠実度が強化され得る。いくつかの態様では、エッジ方向付け拡大縮小方法は、画素に関する平方根演算及び／又は逆演算など、ある種の複雑な演算を必要とする場合がある。しかし、デュアル探索テーブル設計は、低い複雑性、エッジ方向付け拡大縮小のメモリ効率の高い実装をサポートすることが可能である。
【０００６】
一態様では、本開示は、それぞれがソース画像内の少なくとも２つの画素の値の間の勾配を示す、１つ以上の勾配値を取得することと、その１つ以上の勾配値に基づいて、第１の探索テーブルから１つ以上の逆勾配値を生成することと、その１つ以上の逆勾配値に基づいて、第２の探索テーブルから１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成することとを含む方法を提供する。この方法は、それらのエッジ方向付け拡大縮小フィルタ係数に基づいて、エッジ方向付け拡大縮小フィルタを生成することと、補間画素を生み出すために、そのエッジ方向付け拡大縮小フィルタをそれらの少なくとも２つの画素に適用することとをさらに含み得る。
【０００７】
もう１つの態様では、本開示は、第１の探索テーブルと第２の探索テーブルとを格納するように構成された記憶媒体と、それぞれがソース画像内の少なくとも２つの画素の値の間の勾配を示す、１つ以上の勾配値を取得するように構成された１つ以上のプロセッサとを備えたデバイスを提供する。この１つ以上のプロセッサは、その１つ以上の勾配値に基づいて、第１の探索テーブルから１つ以上の逆勾配値を生成して、その１つ以上の逆勾配値に基づいて、第２の探索テーブルから１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成するようにも構成される。この１つ以上のプロセッサは、それらの係数に基づいて、エッジ方向付け拡大縮小フィルタを生成して、補間画素を生成するために、そのフィルタをそれらの少なくとも２つの画素に適用するようにさらに構成され得る。
【０００８】
もう１つの態様では、本開示は、命令を含むコンピュータ可読媒体に関する。これらの命令は、プログラマブルプロセッサに、それぞれがソース画像内の少なくとも２つの画素の値の間の勾配を示す、１つ以上の勾配値を取得させて、その１つ以上の勾配値に基づいて、第１の探索テーブルから１つ以上の逆勾配値を生成させ、その１つ以上の逆勾配値に基づいて、第２の探索テーブルから１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成させる。このコンピュータ可読媒体は、プログラマブルプロセッサに、それらのエッジ方向付け拡大縮小フィルタ係数に基づいて、エッジ方向付け拡大縮小フィルタを生成させて、補間画素を生み出すために、そのエッジ方向付け拡大縮小フィルタをそれらの少なくとも２つの画素に適用させる、さらなる命令を含み得る。
【０００９】
本開示の１つ以上の態様の詳細が添付の図面及び下の説明に記載される。本開示のその他の特徴、目的、及び利点は、その説明及び図面から、かつ特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１】本開示の一態様による、画像データに関する拡大縮小演算を実行するために使用され得るグラフィックス装置を例示するブロック図。
【図２】本開示の一態様による、画像データに関する例示的な画素位置及び勾配値測定値を示すグラフ図。
【図３Ａ】本開示の一態様による、画像データに関する拡大縮小演算を実行するために使用され得るグラフィックス装置の様々なモジュールを例示するブロック図。
【図３Ｂ】本開示の一態様による、図３Ａに示されたいくつかのモジュールの追加の詳細を例示するブロック図。
【図３Ｃ】図３Ａに示されるデバイスの一部であり得る第１の探索テーブル内のエンティティの例を示すブロック図。
【図３Ｄ】アドレス計算ブロック、及び図３Ａに示されるグラフィックス装置の一部であり得る第２の探索テーブルの一例を示すブロック図。
【図４】図３Ｄに示された第２の探索テーブルなど、第２の探索テーブル内に含まれ得るエンティティの一例を示すブロック図。
【図５】本開示の一態様による、勾配値及び逆勾配値を例示するグラフ図。
【図６】本開示の一態様による、画素補間に関する拡大縮小フィルタ係数を生成するために、グラフィックス装置によって実行され得る方法を例示する流れ図。
【図７】本開示の一態様による、複数の補間画素を生成するために、グラフィックス装置によって実行され得る方法を例示する流れ図。
【発明を実施するための形態】
【００１１】
図１は、本開示の一態様による、画像データに関する拡大縮小演算を実行するために使用され得るグラフィックス装置１００を例示すブロック図である。グラフィックス装置１００は、独立型装置であってよく、又はより大きなシステムの一部であってもよい。例えば、グラフィックス装置１００は、（無線移動体ハンドセットなど）無線通信装置を備えてよく、又はディジタルカメラ、ビデオカメラ、ディジタルマルチメディアプレイヤ、携帯情報端末（ＰＤＡ）、ビデオゲーム制御卓、その他のビデオ装置、又は（テレビなど）専用のビューイングステーションの一部であってもよい。グラフィックス装置１００は、（ウルトラモバイルパーソナルコンピュータなど）パーソナルコンピュータ又はラップトップ装置を備えることも可能である。グラフィックス装置１００は、上で説明された装置のうちのいくつか又はすべての中で使用され得る、１つ以上の集積回路内、又は１つ以上のチップ内に含まれることも可能である。
【００１２】
いくつかの事例では、グラフィックス装置１００は、グラフィックスアプリケーション、ビデオアプリケーション、音声アプリケーション、及び／又はその他のマルチメディアアプリケーションなど、様々なアプリケーションを実行することが可能であり得る。例えば、グラフィックス装置１００は、グラフィックスアプリケーション、ビデオゲームアプリケーション、ビデオ再生アプリケーション、ディジタルカメラアプリケーション、インスタントメッセージングアプリケーション、ビデオテレビ会議アプリケーション、移動体アプリケーション、又はビデオストリーミングアプリケーションに関して使用されることが可能である。
【００１３】
グラフィックス装置１００は、様々な異なるデータタイプ及びデータフォーマットを処理することが可能であり得る。例えば、グラフィックス装置１００は、下でより詳細に説明されるように、静止画像データ、動画（ビデオ）データ、又はその他のマルチメディアデータを処理することが可能である。これらの画像データは、コンピュータ生成されたグラフィックスデータを含み得る。図１の例では、グラフィックス装置１００は、グラフィックス処理システム１０２と、（メモリを備える）記憶媒体１０４と、ディスプレイ装置１０６とを含む。プログラマブルプロセッサ１０８、１１０、及び１１４は、グラフィックス処理システム１０２内に含まれ得る。プログラマブルプロセッサ１０８は、制御プロセッサ又は汎用プロセッサである。プログラマブルプロセッサ１１０は、グラフィックスプロセッサであり、プログラマブルプロセッサ１１４は、ディスプレイプロセッサであり得る。制御プロセッサ１０８は、グラフィックスプロセッサ１１０とディスプレイプロセッサ１１４の両方を制御することが可能であり得る。プロセッサ１０８、１１０、及び１１４は、スカラプロセッサ又はベクトルプロセッサであり得る。一態様では、グラフィックス装置１００は、その他の形態のマルチメディアプロセッサを含み得る。
【００１４】
グラフィックス装置１００では、グラフィックス処理システム１０２は、記憶媒体１０４とディスプレイ装置１０６の両方に結合される。記憶媒体１０４は、例えば、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、埋込み式ダイナミックランダムアクセスメモリ（ｅＤＲＡＭ）、静的ランダムアクセスメモリ（ＳＲＡＭ）、又はフラッシュメモリなど、命令及び／もしくはデータを格納することが可能な任意の永久メモリ又は揮発性メモリを含み得る。ディスプレイ装置１０６は、ＬＣＤ（液晶ディスプレイ）、プラズマディスプレイ装置、又はその他のテレビ（ＴＶ）ディスプレイ装置など、表示のために画像データを表示することが可能な任意の装置であってよい。
【００１５】
グラフィックスプロセッサ１１０は、コンピュータ化されたグラフィックを提示し、操作し、表示するために利用される専用のグラフィック表示装置であってよい。グラフィックスプロセッサ１１０は、様々な複雑なグラフィックス関連アルゴリズムを実装することが可能である。例えば、これらの複雑なアルゴリズムは、二次元又は三次元のコンピュータ化されたグラフィックスの表示に対応し得る。グラフィックスプロセッサ１１０は、ディスプレイ装置１０６など、ディスプレイ上で複雑な三次元画像を作成するために、点、線、及び三角形、又はその他の多角面を形成することなど、いくつかのいわゆる「基本」グラフィック演算を実施することが可能である。
【００１６】
グラフィックスプロセッサ１１０は、記憶媒体１０４内に格納された命令を実行することが可能である。記憶媒体１０４は、（グラフィックスアプリケーション又はビデオアプリケーションなど）アプリケーションに関するアプリケーション命令１１８と、表情報１１２と、画像データ１２０とを格納することが可能である。アプリケーション命令１１８は、実行のために、記憶媒体１０４からグラフィックス処理システム１０２内にロードされ得る。例えば、制御プロセッサ１０８、グラフィックスプロセッサ１１０、及びディスプレイプロセッサ１１４のうちの１つ又は複数が命令１１８を実行できる。一態様では、アプリケーション命令１１８は、無線で記憶媒体１０４内に動的にダウンロードされた、１つ以上のダウンロード可能なモジュールを備え得る。
【００１７】
記憶媒体１０４は、画像データ１２０をさらに含む。画像データ１２０は、グラフィックス処理システム１０２内で処理されることが可能であり、かつ／あるいはディスプレイ装置１０６上で表示されることが可能な静止画像又は動画を含めて、１つ以上の画像に関連するデータを含む。記憶媒体１０４は、表情報１１２も含む。表情報１１２は、画像データ１２０を処理するときに、グラフィックス処理システム１０２内にロードされて、グラフィックス処理システム１０２によって使用されることが可能な、探索テーブルなど、１つ以上の表を含み得る。
【００１８】
例えば、ディスプレイプロセッサ１１４は、下でより詳細に説明されるように、表示のために画像データ１２０を拡大縮小するために、表情報１１２を使用することが可能である。ディスプレイプロセッサ１１４は、多くの場合、ディスプレイ装置１０６上で表示されることになる、対応する拡大縮小された（拡大された、又は縮小された）画像データ１２２を生成するために、画像データ１２０を拡大すること又は縮小することが可能である。いくつかの事例では、アプリケーション命令１１８は、ディスプレイプロセッサ１１４によって実行されたとき、拡大縮小された画像データ１２２を生成するために画像データ１２０を拡大縮小する、いくつかの命令を含み得る。
【００１９】
縮小された画像データを生成するとき、ディスプレイプロセッサ１１４は、デシメーションアルゴリズム又はデシメーション技法のうちの１つ以上を使用することが可能である。拡大された画像データを生成するとき、ディスプレイプロセッサ１１４は、補間を含み得る、１つ以上のアルゴリズム又は技法を使用することが可能である。一般的な補間技法は、バイリニア補間、バイキュービック補間、３次スプライン補間、又はエッジ方向付け補間（ＥＤＩ）を含み得る。ＮＥＤＩ（新エッジ方向付け補間（New Edge-Directed Interpolation）［Xin Li、Michael T.Orchard、IEEE Transactions on Image Processing、２００１年１０月］）など、いくつかの技法は、特に、グラフィックス装置１００が小さな移動装置である場合、グラフィックス装置１００内で過剰な量のシステムリソースを消費する複雑な計算を必要とする場合がある。さらに、いくつかの既存の補間技法は、画像データ１２０がカラー画像情報を含むとき、不適当な場合があり、これらの技法は、結果として、カラーブリーディング（color bleeding）（色のにじみ）又はその他の産物をもたらす可能性がある。
【００２０】
一態様では、グラフィックス装置１００は、補間など、勾配ベースのエッジ方向付け拡大縮小を実行することが可能である。勾配ベースのエッジ方向付け拡大縮小アルゴリズムは、一次元又は多次元（例えば、二次元）のシナリオで実施し得る。いくつかの例では、グラフィックス装置１００内のハードウェア実装形態の場合、一次元実装形態がより好ましい場合がある。本開示の一態様によれば、二次元拡大縮小は、２つの別個の一次元拡大縮小プロセスによって実施し得る。例示のためだけに、限定することなく、本開示の残りの部分は一次元拡大縮小プロセスを仮定する。
【００２１】
一態様では、グラフィックス装置１００は、画像データ１２０に関する勾配ベースのエッジ方向付け拡大縮小アルゴリズムを実装して、拡大縮小された画像データ１２２を生成するために、表情報１１２を使用する。この態様では、プロセッサ１０８、１１０、及び１１４のうちの１つ又は複数は、画像データ１２０の拡大縮小のために使用される、１つ以上の勾配値を受信することが可能であり、それぞれの勾配値は、画像データ１２０の少なくとも２つの画素と関連付けられている。プロセッサ１０８、１１０、及び／又は１１４は、次いで、少なくとも、１つ以上の勾配値を第１の探索テーブル内への入力として使用することによって、第１の探索テーブルからの出力として、１つ以上の所定の逆勾配値を取得して、少なくとも、１つ以上の逆勾配値を第２の探索テーブル内への入力として使用することによって、第２の探索テーブルからの出力として、１つ以上の所定のエッジ方向付け拡大縮小フィルタ係数を取得することも可能である。したがって、これらの勾配値は、第１の探索テーブル指標を形成する。この第１の探索テーブルは、これらの勾配値を対応する所定の逆勾配値にマッピングする。次いで、これらの所定の逆勾配値は、第２の探索テーブル指標を形成する。この第２の探索テーブルは、所定の逆勾配値を対応する所定のエッジ方向付け拡大縮小フィルタ係数にマッピングする。第１の探索テーブル及び第２の探索テーブルは、表情報１１２内に含まれて、グラフィックス処理システム１０２内にロードされることが可能である。１つ以上の探索テーブルの使用は、エッジ方向付け補間に関連し得る、グラフィックス装置１００内の様々な実装複雑性を回避するのに役立つ可能性がある。
【００２２】
任意の拡大縮小係数をサポートする（勾配ベースのエッジ方向付け拡大縮小アルゴリズムなど）拡大縮小アルゴリズムでは、多くの場合、２つの主なステップが含まれる。すなわち、（１）位置決定、及び（２）拡大縮小フィルタ係数の決定である。通常、位置決定は、補間されることになる画素の位置の決定、並びに拡大縮小された画像内の当該画素の補間に必要とされるべき、元の画像からの画素の識別を指す。拡大縮小フィルタ係数の決定は、通常、拡大縮小フィルタを形成するために使用されることになるフィルタ係数の決定を指す。形成された拡大縮小フィルタは、次いで、拡大縮小された画像内の画素を補間するために使用され得る。それぞれのステップの詳細は、下で説明される。
【００２３】
分かりやすくするために、いくつかの記号の意味が下に提示される。
【００２４】
・ｉ：拡大縮小データ内の画素の位置。（ｉは整数を表す。）
・ｘ（ｉ）：位置ｉに関係する、拡大縮小に先立つ元の画素の位置。（これは、少数値を含み得る。）
・ｔx：初期位相。
【００２５】
・Ｐ-1、Ｐ0、Ｐ1、Ｐ2：画像画素。２つの勾配レベルが計算されるように、４つの例示的な画素が示される。各画素は、図２に示すように、別個の位置を有する。
【００２６】
・Δｇl、Δｇr：勾配レベル。各勾配レベルは、下で説明されるように、例示的な画素のうちの２つから決定される。
【００２７】
・ｈl、ｈr：逆勾配レベル。これらの逆勾配レベルは、下で説明されるように、勾配レベルから決定される。
【００２８】
位置決定に関して、元の画像データ１２０内の対応する列上の画素に基づいて、拡大縮小画像データ１２２内の列上の画素を補間することが可能である。拡大縮小画像データ１２２内の位置ｉにおける画素の場合、元の画像データ１２０内のその位置ｘ（ｉ）は、
【数１】
2012501594.tif 000003
【００２９】
に従って決定され、式中、ｓxは、（元の画像幅／拡大縮小画像幅）と定義される。パラメータｔxは、固定小数点実装における初期位相を指定する、事前に定義された定数である。
【００３０】
方程式（１）は、グラフィックスベースの位置マッピングである。様々な拡大縮小係数が、様々なｓx値に対応し得る。このマッピングに従って、任意の拡大縮小係数がサポートされ得る。拡大縮小のために使用される、元の画像データ１２０内の画素は、位置ｘ（ｉ）によって決定され得る。使用される画素の半分は、その位置の片側にあってよく、もう半分はその位置のもう片側にあってよい。
【００３１】
拡大縮小に必要とされる、元の画像データ１２０内の画素の位置を突き止めた後で、次いで、拡大縮小（例えば、拡大、縮小）フィルタ係数が決定され得る。これらの拡大縮小フィルタ係数は、画像データを拡大縮小するために使用される拡大縮小フィルタを形成するため、又は当該拡大縮小フィルタを生成するために使用される。例えば、拡大フィルタ係数は、補間を完了するために決定されることが可能であり、一方、縮小係数は、デシメーションを完了するために決定され得る。３次スプライン補間では、拡大縮小フィルタの係数は、通常、位置ｘ（ｉ）によって決定され、多くの場合、ｘ（ｉ）の少数部分によって決定される。エッジ方向付け拡大縮小アルゴリズムでは、３次スプライン補間フィルタの係数は、いくつかの事例では、局所勾配レベルに従って重み付けされてよい。この原理は、図２を参照して例示され得る。
【００３２】
図２は、本開示の一態様による、画像データに関する例示的な画素位置及び勾配値測定値を示すグラフ図である。図２において、ｘ軸は、一次元の軸に沿った画素位置（すなわち、指標）を表し、ｙ軸は画素の強度を表す。図２において、補間されることになる画素は、位置Ｙにおける画素であり、位置ｘ０とＹとの間の距離はｓであることが仮定され得る。それぞれ、Ｘ-1、Ｘ0、Ｘ1、及びＸ2にある画素Ｐ-1、Ｐ0、Ｐ1、及びＰ2を通過するために、（図２に示される）２つの異なる曲線Ａ及びＢを引くことができる。値Ｂ（Ｙ）及び値Ａ（Ｙ）である、Ｙにおけるこれらの値は、補間画素に関する候補と見なされ得る。一態様では、Ｂ（Ｙ）とＡ（Ｙ）との間で選択するために、追加の制約を課すことができる。Ｐ-1とＰ0との間の勾配レベル、及びＰ1とＰ2との間の勾配レベルを比較する際、Δｇl＜Δｇrであると決定されることが可能であり、式中、Δｇl及びΔｇrは、勾配レベルを表す（式中、ｌ＝左、及びｒ＝右）。
【００３３】
この例では、左側の画素は、強度の点でよりゆっくりと変化するようである。直感的に、周囲画素が大きさの点でゆっくり変化している場合、補間されることになる画素は、より予測可能であり得る。この観察に基づいて、大きさの点でゆっくり変化する画素により重い重みが割り当てられてよい。したがって、Ａ（Ｙ）及びＢ（Ｙ）がサイトＹにおける画素の補間に関する２つの候補曲線である場合、Ｂ（Ｙ）は、最終的な拡大縮小結果として選択され得る。
【００３４】
一態様では、よりゆっくり変化している画素により重い重みが割り当てられてよいという概念は、方程式（２）から（５）を介して実装される。まず、計算された勾配Δｇl及びΔｇrの場合、逆勾配を
【数２】
2012501594.tif 000004
【００３５】
及び
【数３】
2012501594.tif 000005
【００３６】
と定義することが可能であり、式中、αは、逆勾配ｈl及びｈrに対する勾配Δｇl並びにΔｇrの寄与と、最終的に、フィルタ係数の重み付け方法に対する勾配Δｇl及びΔｇrの寄与とを制御するスカラパラメータを表す。より大きなα値は、通常、より鋭い補間画像をもたらす。拡大縮小された画像が鋭いと同様に、高い忠実性のものであるようにαを調整する。例えば、拡大縮小された画像は、高いピークＳＮ比（ＰＳＮＲ）値を現す場合がある。逆勾配ｈl及びｈrに基づいて、重みベクトルは
【数４】
2012501594.tif 000006
【００３７】
として構築されることが可能であり、式中、Ｎは、拡大縮小フィルタのタップの数である。
【００３８】
３次スプライン拡大縮小フィルタは、次いで、
【数５】
2012501594.tif 000007
【００３９】
（●）Tは、移送演算子（transposing operator）を表す。分割演算は、重み付けされた補間フィルタが周波数ゼロ（直流成分、すなわちＤＣ成分）で、１の利得を有することを保証するために、重み付けされたフィルタ係数を正規化することが可能である。ＤＣ成分におけるエネルギー漏れは、拡大縮小された画像の平均照度レベルを変更することになるため、これは低域フィルタに関して重要な場合がある。
【００４０】
一態様では、グラフィックス装置１００（図１）は、その中で、いくつかの結果が予め決まっており（例えば、事前に計算され）、表情報１１２内の１つ以上の表内に格納されるデュアル探索テーブル（ＬＵＴ）ハードウェア実装を利用することが可能である。デュアルＬＵＴ手法のハードウェア実装は、複雑な演算を最小限に抑えることにより、算術演算のより複雑な実装と比べてかなり低い可能性がある。下でより詳細に説明されるように、性能を維持しながら、デュアルＬＵＴ実装のメモリ要件を削減することも可能である。
【００４１】
図３Ａは、本開示の一態様による、図１に示された画像データ１２０に関する拡大縮小演算を実行するために使用され得る様々なモジュールを例示するブロック図である。この態様では、様々なモジュール３００、３０２、３０４、３０６、３０８、３１０は、図１に示されるグラフィックス装置１００内で実装され得るプログラム可能な特徴を備える。いくつかの事例では、これらのモジュールは、ディスプレイ装置１０６上で表示するために、拡大された又は縮小された画像データ１２２を生成する目的で、プロセッサ１０８、１１０、及び１１４のうちの１つ以上によって実行されるアプリケーション命令１１８、並びに表情報１１２及び画像データの使用のうちの１つ以上によって実装されることが可能である。
【００４２】
図３Ａに示すように、これらのモジュールは、勾配値計算機３００と、勾配量子化モジュール３０２と、逆勾配探索モジュール３０４と、アドレス計算機３０６と、フィルタ係数探索モジュール３０８と、画像拡大縮小フィルタ３１０とを含む。勾配値計算機３００は、勾配値を計算する。勾配量子化モジュール３０２は、勾配値の不均一量子化を実行する。逆勾配探索モジュール３０４は、指標として、量子化された勾配値を第１の探索テーブルに適用して、対応する所定の量子化された逆勾配値を取り出す。アドレス計算機３０６は、第２の探索テーブル内の指標アドレスを計算するために、逆勾配値と位相情報とを使用する。フィルタ係数探索モジュール３０８は、拡大縮小フィルタ係数を取り出すために、第２の探索テーブル内で探索を実行する目的でアドレスを使用する。画像拡大縮小フィルタ３１０は、次いで、画像データ１２０など、画像データを拡大縮小するために使用される拡大縮小フィルタを作成するために、これらの係数を使用する。次に、これらのモジュールが下でさらに詳細に説明される。
【００４３】
勾配値計算機３００は、拡大縮小のために使用され得る、１つ以上の勾配値を計算することが可能である。それぞれの勾配値は、画像データ１２０内の２つの別個の画素の位置に基づいて計算され得る。
【００４４】
勾配量子化モジュール３０２は、勾配値計算機３００によって計算された勾配値の不均一量子化を実行することが可能である。一態様では、この不均一量子化は、非線形量子化を備え得る。下でより詳細に説明されるように、勾配値のこの不均一量子化は、有限の、多くの場合、小数の勾配値を生成することが可能であり、これらの値は表情報１１２内のデータにアクセスするために使用され得るため、これは、最終的に、表情報１１２のサイズをより小さくするか、又は最小限に抑えるのに役立つ可能性がある。
【００４５】
逆勾配探索モジュール３０４は、所定の量子化された逆勾配値の第１の表探索を実行することが可能である。この第１の表探索は、表情報１１２内の第１の表に関して実行され得る。逆勾配探索モジュール３０４は、所定の量子化された逆勾配値を探索するためのこの第１の表内への入力として、勾配量子化モジュール３０２によって生成された、量子化された勾配値を使用することが可能である。例えば、逆勾配探索モジュール３０４は、第１の表内への指標として、量子化された勾配値を使用することが可能である。第１の探索テーブルは、量子化された勾配値によって提供された入力指標を所定の逆勾配値にマッピングする。したがって、この第１の表は、出力として、対応する逆勾配値を提供する。これらの逆勾配値は、第１の表内に格納され得る、所定の量子化された値である。例えば、これらの値は、公式に基づいて計算されて、第１の探索テーブル内にロードされた、事前に計算された値を備え得る。いくつかの事例では、これらの値は、装置１００の製造中に第１の探索テーブル内に事前にロードされる。それぞれの出力逆勾配値は、その値が有限サイズを有することができるように量子化される。第１の表のサイズは、表内の入力として使用され得る勾配値が勾配量子化モジュール３０２によって量子化されたとき、削減され得る。
【００４６】
上記のように、それぞれの出力逆勾配値は、事前に計算された値を備え得る。下でより詳細に説明されるように、この第１の表、すなわち、表１は、出力として逆勾配値を提供するために、平方根計算及び逆計算を置換する目的で使用され得る。詳細には、量子化された勾配値と量子化された逆勾配値との間のマッピングは、対応する量子化された勾配値が計算に対する入力であるとき、逆勾配値が平方根計算及び逆計算の出力を表すように、かかる計算を概算することができる。例えば、量子化された勾配値と量子化された逆勾配値との間のマッピングは、平方根計算と、上の方程式（２）及び（３）で示された逆計算とを概算することが可能である。
【００４７】
アドレス計算機３０６は、所定のエッジ方向付け拡大縮小フィルタの第２の表探索を実行するために、フィルタ係数探索モジュール３０８によって使用されるアドレスを計算する。第２の探索テーブル、すなわち、表２は、この第２の表探索を実行するときに使用されることが可能であり、この第２の表は、表情報１１２（図１）内に格納され得る。アドレス計算機３０６は、表２内への探索のためのアドレスを計算するために、表１の出力（所定の逆勾配値）を使用する。アドレス計算機３０６は、後に説明されるように、アドレス計算を実行するとき、フィルタ位相情報を使用することも可能である。フィルタ係数探索モジュール３０８は、次いで、所定のエッジ方向付け拡大縮小フィルタ係数の第２の表探索を実行するために、計算されたアドレスを使用することが可能である。拡大縮小が拡大であるとき、これらの拡大縮小フィルタ係数は、補間フィルタ係数を含み得る。
【００４８】
フィルタ係数探索モジュール３０８は、拡大縮小フィルタ係数の第２の表探索を実行することが可能である。この第２の表探索は、表情報１１２内の第２の表に関して実行され得る。拡大縮小フィルタ探索モジュール３０４は、拡大縮小フィルタ係数を探索するためのこの第２の表内への指標として、アドレス計算機からのアドレスを使用することができる。いくつかの態様では、フィルタ係数探索モジュール３０８によって実行されるこの探索演算は、上に示された方程式（４）及び（５）の計算を置換することができる。
【００４９】
所定のエッジ方向付け拡大縮小フィルタ係数が表２から読み取られると、これらの係数は、画像データ１２０を拡大縮小して、ディスプレイ装置１０６上に表示するために拡大縮小された画像データ１２２内で補間画素を生成するために使用され得る拡大縮小フィルタを作成する目的で、画像拡大縮小フィルタ３１０によって使用されることが可能である。表１及び表２の使用は、デュアル探索テーブル構造を備えることが可能であり、グラフィックス装置１００内の拡大縮小の複雑性を低減することができる。勾配値及び／又は逆勾配値など、様々な値の量子化は、表情報１１２内のこれらの表のサイズを最小限に抑えるのに役立つ可能性がある。同時に、エッジ方向付け拡大縮小フィルタ実装は、グラフィックス装置１００内で実行されることが可能であり、これは、３次スプライン技法など、いくつかのその他の技法に対して改善された拡大縮小性能を提供し得る。
【００５０】
画像拡大縮小フィルタ３１０が、拡大縮小された画像データ１２２内で補間画素を生成するために拡大縮小フィルタを使用した後で、ソース画像データ１２０からの複数のソース画素に関してプロセス実装されたモジュール３００、３０２、３０４、３０６、３０８、及び３１０を繰り返すことによって、追加の補間画素が生成され得る。エッジ方向付け拡大縮小フィルタ係数は、繰り返し生成されて、補間画素を生成するために、複数のソース画素に対して水平方向及び／又は垂直方向に適用されることが可能である。１つの個々のフィルタ係数が「スライドウィンドウ」内の個々のソース画素に適用されるように、補間画素を生成するとき、フィルタ係数をソース画素に繰り返し適用するために、「スライドウィンドウ（sliding window）」が使用され得る。この「スライドウィンドウ」は、複数のソース画素を含むことが可能であり、まず、ソース画像の列内の画素を通して水平方向（左から右）に移動されることが可能である。「スライドウィンドウ」は、ソース画像内の様々な画素を通してスライドするために、垂直方向（上から下）に移動されることも可能である。「スライドウィンドウ」が移動するにつれて、生成されたフィルタ係数は「スライドウィンドウ」内のソース画素に適用されることが可能である。かかる様式で、拡大縮小された画像に関して複数の補間画素を生成することによって、ソース画像全体が拡大縮小され得る。
【００５１】
図３Ｂは、本開示の１つの例示的な態様による、図３Ａに示されたモジュール３００、３０２、３０４、３０６、及び３０８の追加の詳細を例示するブロック図である。この態様では、表２が補間フィルタ係数を含むように、拡大演算が実行されていることが仮定される。しかし、本開示において説明される技法は、縮小演算にも容易に適用され得る。図３Ｂの例に示されように、勾配値計算機３００は、減算演算と絶対値演算とを含む。例示的な画素Ｐ-1、Ｐ0、Ｐ1、及びＰ2が示され、それぞれの画素は、それぞれの画素の強度レベルを表す、８個の符号なしビット（「ｕ８」）によって表される。これらの画素は、例えば、（Ｘ-1がＰ-1の位置であり、Ｘ0がＰ0の位置であり、Ｘ1がＰ1の位置であり、Ｘ2がＰ2の位置である）図２に示されるように、画素内の水平線又は垂直線に沿って空間的に順序付けられると仮定される。したがって、図３Ｂに示されるように、勾配値計算機３００は、この仮定された順序に従って、２つの隣接する画素に関する勾配値を計算する。例えば、（拡大された画像内で位置Ｙ、図２、において補間されることになる画素の左側に配置される）画素Ｐ-1及びＰ0に関して、ある勾配値が計算され、（拡大された画像内で位置Ｙにおいて補間されることになる画素の右側に配置された）画素Ｐ1及びＰ2に関して、別の勾配値が計算される。
【００５２】
勾配値計算機３００は、まず、２つの隣接する画素に関して減算演算を実行し、次いで、絶対値演算を実行する。図３Ｂの例では、Ｐ0は、Ｐ0の負の値（「Ｎｅｇ」）を減じ、次いで、この負の値をＰ-1に加算することによって、Ｐ-1から減算される。Ｐ0の負の値は、９ビットの符号付き値（「ｓ９」）として表される。加えて、この減算の結果は、９ビットの符号付き値（「ｓ９」）である。次いで、Ｐ-1及びＰ0に関して、符号なし８ビットの勾配値を生成するために、絶対値演算（「ＡＢＳ」）が実行される。同様に、計算機３００によって、Ｐ1及びＰ2に関して、符号なし８ビットの勾配値が計算される。通常、勾配値は、２つの隣接する画素の間の画素強度の変化を表す。
【００５３】
勾配量子化モジュール３０２は、次いで、勾配値の不均一量子化を実行する。図３Ｂの例では、勾配量子化モジュール３０２は、符号なし８ビットの勾配値を「ｍ」ビットだけ右にビットシフトすること（「＞＞ｍ」）によって、この量子化を達成する。したがって、画素Ｐ-1及びＰ0に関して、モジュール３０２は、（８−ｍ）ビットを有する符号なし値を備えた、量子化された勾配値を生成する。一例では、モジュール３０２が符号なし６ビットの勾配値を生成するように、ｍ＝２である。同様に、モジュール３０２は、画素Ｐ1及びＰ2に関して、（８−ｍ）ビットの符号なし値を備えた、量子化された勾配値を生成する。勾配値の量子化のタイプ又はレベルに影響を与えるように、「ｍ」の様々な異なる値が選択され得る。「ｍ」の高い値は、量子化のレベルを高めるが、潜在的に、拡大縮小性能に影響を与える可能性がある。「ｍ」の低い値は、量子化のレベルを低減し得る。上述のように、１つのシナリオでは、ｍ＝２の値が選択され得る。
【００５４】
図３Ｂを再び参照すると、逆勾配探索モジュール３０４は、表１内で所定の量子化された逆勾配値の探索を実行する。逆勾配探索モジュール３０４は、探索を実行するとき、入力として、量子化された勾配値を使用する。この例では、それぞれの量子化された勾配値は、（８−ｍ）ビットを備えた符号なし値であり、表１は、２8-m個のエンティティを含み得る。したがって、一態様では、表１のサイズは、入力勾配値の量子化を介して削減され得る。図３Ｂの例では、表１内のそれぞれの量子化された勾配値は、所定の逆勾配値にマッピングする。この逆勾配値は、（表１内の探索演算に関して使用される入力勾配値に基づいて）有限数の選択可能値からの量子化された値を備え得る。図３Ｂの例では、それぞれの逆勾配値は、符号なし２ビット値（「ｕ２」）を備える。
【００５５】
アドレス計算機３０６は、表２内で、補間されることになる画素のフィルタ係数の探索を実行するために、フィルタ係数探索モジュール３０８によって使用され得る探索アドレスを計算する。アドレス計算機３０６は、入力として、Ｐ-1、Ｐ0に関連する逆勾配値（符号なし２ビット値）と、Ｐ1、Ｐ2に関連する逆勾配値（符号なし２ビット値）とを使用することによって、表２に関するアドレスを計算する。アドレス計算機３０６は、入力として、フィルタ位相情報も使用する。図３Ｂは、一例では、この位相情報が符号なし５ビット値（「ｕ５」）として提供され得ることを示す。図３Ｂでは、この例において、符号なし５ビット値によって位相「ｓ」が指定されることが仮定される。アドレス計算機３０６内への入力として、フィルタ位相情報内で任意の数又は任意のタイプの位相が提供され得る。
【００５６】
一態様では、位相「ｓ」の符号なし５ビット値は、３２個の異なる位相値のうちのいずれか１つを指定することが可能である。この態様では、元の画像内の（図２の画素Ｐ0とＰ1との間など）任意の２つの隣接する画素の間の距離は、３２個のセクションに等しく分割されることが可能であることが仮定され得る。上で方程式（１）において定義された、連続する値ｘ（ｉ）は、次いで、これらの３２個のセクションのうちの最近接セクション（すなわち、位相指標）によって表されることが可能である。この態様では、３２個の位相は０から３１までの指標を有する。
【００５７】
一態様では、この位相は、位相「ｓ」の値をアドレス計算機３０６に提供する位相アキュムレータの状態から導出され得る。例えば、拡大縮小された画素内の水平次元内の第Ｎ番目の画素に関連する位相アキュムレータの状態は、
【数６】
2012501594.tif 000008
【００５８】
として表されることが可能であり、位相「ｓ」は、
【数７】
2012501594.tif 000009
【００５９】
として導出されることが可能であり、式中、Ｘ＿ｐｈａｓｅ＿ｓｔｅｐｓｉｚｅは、
【数８】
2012501594.tif 000010
【００６０】
と定義されることが可能であり、式中、ｉｎ＿ｗｉｄｔｈは、水平次元の入力幅を指定し、ｏｕｔ＿ｗｉｄｔｈは、水平次元の出力幅を指定する。
【００６１】
上の方程式（７）において、対応する浮動数の固定少数点表示を取得するために、「２９」の定数値が導入され得る。その結果、ユニット「１」は定数「２29」によって表されることが可能である。方程式（７）では、切り上げるために、定数「２24」が使用され得る。初期位相条件Ｐｈａｓｅ＿ｉｎｉｔ＿ｘに関して、それを計算するために使用され得る、いくつかの異なる方法が存在する。一態様では、Ｐｈａｓｅ＿ｉｎｉｔ＿ｘはゼロに等しいことが仮定される。
【００６２】
図３Ｂを再び参照すると、アドレス計算機３０６は、表２内への（逆勾配値に関する２ビット値及び５ビットの位相値のそれぞれに基づく）アドレスとして、符号なし９ビットの（「ｕ９」）入力を提供する。フィルタ係数探索モジュール３０８は、画像データ１２０を拡大縮小するために使用され得る、補間係数など、対応するエッジ方向付け拡大縮小フィルタ係数を探索するための表２内への入力として、このアドレスを使用する。図３Ｂに示されるように、表２は、下でさらに詳細に説明されるように、Ｎ個のエンティティを含む。図３Ｂの例において、これらのエッジ方向付け拡大縮小フィルタ係数は、表２からの出力として、符号付き１２ビット値で表される。これらの係数は、次いで、拡大縮小のためにフィルタ３１０（図３Ａ）に提供される。
【００６３】
図３Ｃは、図３Ａに示され（図３Ｂにも示される）グラフィックス装置１００の一部であり得る第１の探索テーブル内のエンティティの例を示すブロック図である。逆勾配探索モジュール３０４は、これらのエンティティを処理して、所定の量子化された逆勾配値の探索を実行することが可能である。図３Ｃにおいて、この第１の探索テーブルは「表１」（表１）として示される。
【００６４】
上述のように、この例では、表１は２8-m個のエンティティを含む。逆勾配探索モジュール３０４は、入力として、２つの量子化された勾配値を使用して、２つの所定の逆勾配値の探索を実行する。１つの量子化された勾配値が「ｘｌ」（左）として図３Ｃに示され、もう１つの勾配値が「ｘｒ」（右）として示される。それぞれの量子化された勾配値は、符号なし（８−ｍ）ビット値によって表される。逆勾配探索モジュール３０４は、所定の逆勾配値「ｙｌ」の探索を実行するための表１内への入力として、量子化された勾配値「ｘｌ」を使用し、所定の逆勾配値「ｙｒ」の探索を実行するための表１内への入力として、量子化された勾配値「ｘｒ」を使用する。図３Ｂにも示されるように、この例では、「ｙｌ」と「ｙｒ」は両方とも、２ビットの符号なし値によって表される。
【００６５】
一態様では、表１は、先に（上で）示された方程式（２）及び（３）に必要とされる算術演算を置換するために構築され得る。方程式（２）及び（３）から、これらの直接実施は、平方根演算と逆演算とを含むことになることが認められよう。これらの種類の演算は、いくつかの事例では、グラフィックス装置１００内のハードウェア実装によって支持されない可能性がある。図３Ｃに示されるように、表１の入力は、量子化された勾配値「ｘｌ」及び「ｘｒ」であり、出力は、対応する逆勾配値「ｙｌ」及び「ｙｒ」である。表１のサイズは、入力勾配値を量子化することによって削減され得る。一態様では、パラメータ「ｍ」は表１のサイズを制御し得る。より小さな表は、通常、より少ないメモリを必要とし、ソフトウェアがプログラムするためにより少ない時間がかかる。
【００６６】
方程式の形態で、表１の逆勾配値出力は、入力の点から、
【数９】
2012501594.tif 000011
【００６７】
として表されることが可能であり、式中、２mは、入力勾配値を量子化するために使用される量子化係数である。この方程式は、固定小数点であり、元の方程式（２）及び（３）の固定バージョン（clamped version）であることを理解されよう。方程式（９）は、以下のように、方程式（２）及び（３）から展開され得る。まず、勾配レベルΔｇl,／ｒをそれらの量子化バージョン２mxl/rとして表現することによって、方程式（２）及び（３）は、
【数１０】
2012501594.tif 000012
【００６８】
になる。
【００６９】
一態様では、方程式（１０）内のｈl/rの範囲は、［０，１］である。その場合、１／８の係数を用いてｈl/rが量子化されて、その結果の端数が切り捨てられる（floored）場合、方程式（１０）は、
【数１１】
2012501594.tif 000013
【００７０】
になり、式中、ｙl/rは、量子化された逆勾配値を表し、切り上げるために、方程式（１１）においてスカラ０．５が使用される。最後に、クランプ演算「クランプ（ｙl/r，４，７）」が実行され得る。ｙl/r＜４である場合、ｙl/rは４に置換されてよい。ｙl/r＞７である場合、ｙl/rは７に置換されてよい。
【００７１】
したがって、いくつかの事例では、ｙl/rは、（包括的な）４と７との間にある任意の整数値を有し得る。加えて、一態様によれば、ビットを節約するために、最終的な結果が方程式（９）において表現されるように、ｙl/rから４のスカラ値を減算することによって、範囲を［４，７］から［０，３］にシフトすることが可能である。
【００７２】
方程式（９）に基づいて、いくつかの例示的なシナリオでは、表１の別個の出力は、０、１、２、又は３の整数値に対応し得る。アドレス計算機３０６によるアドレス計算を条件として、表１の出力は表２の入力内にあるため、表１の別個の出力の数を制限する１つの潜在的な目的は、（図３Ｂ及び３Ｄに示される）表２のサイズを削減するためであり得る。一態様では、表１の別個の出力を相当削減することは、結果として、グラフィックス装置１００の動作の無視できる性能劣化をもたらすか、又は性能劣化をまったくもたらさない。これは、デュアル探索テーブル（表１、表２）設計を使用することのある種の利益及び利点に関係し得る。いくつかの事例では、これは、整合曲線の非線形の属性（方程式（２））に関係し、図５に示され、下でより詳細に説明されるように、自然画像内の多くの勾配レベルは一定の範囲内で分散するということに起因する可能性がある。その結果、いくつかのシナリオでは、信頼性のある性能は、勾配レベルの範囲全体を使用する必要なしに達成され得る。
【００７３】
図３Ｃに関する１つの例示的なシナリオでは、ｍ＝２であることが仮定され得る。このシナリオにおける、表１に関する例示的な入力値「ｘｌ」及び「ｘｒ」（量子化された勾配値）、並びに対応する例示的な出力値「ｙｌ」及び「ｙｒ」（量子化された逆勾配値）が下の表Ａに示される。ｍ＝２であるため、入力値は［０〜６３］であり、クランプ演算のため、出力値は［０〜３］である。例えば、入力値０〜３、４〜８、９〜１５、及び１６〜６３は、表１によって、それぞれ、出力値３、２、１、及び０にマッピングされ得る。このシナリオでは、入力値と出力値は両方とも整数値である。
【表Ａ】
2012501594.tif 000014
【００７４】
図３Ｄは、アドレス計算機３０６、及び図３Ａに示されるグラフィックス装置１００の一部であり得る第２の探索テーブルの一例を示すブロック図である。図３Ｄにおいて、この第２の探索テーブルは、「表２」（表２）と呼ばれ、第２の探索モジュール３０８は、所定のエッジ方向付け拡大縮小フィルタ係数を取得するために、表２内で第２の表探索を実行することが可能である。
【００７５】
図３Ｄの例に示されるように、アドレス計算機３０６は、図３Ｂを参照して先に説明されたように、入力として、位相情報（「位相ｓ」）と、表１の出力とを使用して、符号なし９ビットのアドレスを生成する。この位相情報は、符号なし５ビット値を含み、表１の出力は、そのそれぞれが符号なし２ビット値を備える、２つの逆勾配値を含む。アドレス計算機３０６によって生成されたアドレスは、表２内でエッジ方向付け拡大縮小フィルタ係数の探索を実行するために、フィルタ係数探索モジュール３０８によって使用される。図３Ｄの例では、これらのフィルタ係数は、拡大に関して使用されてよく、これらのフィルタ係数は、符号付き１２ビット値によって表される。例えば、画像拡大縮小フィルタ３１０が４タップフィルタである場合、フィルタ係数探索モジュール３０８は、出力として、４つの係数を画像拡大縮小フィルタ３１０に提供することができる。画像拡大縮小フィルタ３１０が８タップフィルタである場合、フィルタ係数探索モジュール３０８は、出力として、８つの係数を画像拡大縮小フィルタ３１０に提供することができる。フィルタ係数モジュール３０８からの出力として、任意の数の係数が提供されてよい。
【００７６】
一態様では、表１は（上で既に示された）方程式（２）及び（３）の計算を置換するために使用されることが可能であるため、表２は、方程式（４）及び（５）の計算を置換するために構築され得る。例えば、グラフィックス装置１００内のハードウェア実装形態に関して、高い複雑性を有し得る分割演算が方程式（５）に必要とされる。表１及び表２が（事前に計算されたような）所定の値を含むように、一定の演算を置換するために表１を使用し、その他の演算を置換するために表２を使用することによって、グラフィックス装置１００内の実装に関する複雑性は相当低減され得る。
【００７７】
加えて、表１の個別の出力の数を制限することによって、記憶媒体１０４内の表情報１１２のサイズを最低限に抑えるのを助けるために、表２のサイズが相当削減され得る。先に述べられたように、表情報１１２は、表１と表２の両方を含み得る。３Ｄの例では、表２のサイズは、Ｎ＝１６個のエンティティに削減され得る。この例では、表２内への２つの入力逆勾配値のそれぞれは２ビット値を備えるため、Ｎ＝４×４＝１６個のエンティティであり、この場合、位相「位相ｓ」は、エンティティ内の位相を指定する、表２内への別個の５ビットの入力値によって表される。
【００７８】
図３Ｄにおいて、表２の出力は、エッジ方向付け拡大縮小フィルタ係数である。一態様では、表２の入力と出力との間の関係は、以下のように形成され得る。まず、逆勾配値ｈl／ｈrは、ｙl／，rが表１の出力を表す方程式（１２）に従って計算される。
【数１２】
2012501594.tif 000015
【００７９】
取得された逆勾配値に関して、方程式（５）に従って、拡大縮小フィルタ係数が計算される。表２内に含まれるエンティティは、予め決められて（例えば、事前に計算されて）、表２の内容を形成するためにメモリ内にロードされることが可能である。
【００８０】
図４は、図３Ｄに示された表２（「表２」）など、第２の探索テーブル内に含まれ得るエンティティ４００Ａ〜４００Ｎの例を示すブロック図である。図４は、表２内に含まれた、１つ以上のエンティティ４００Ａ〜４００Ｎの一例を示す。一態様では、エンティティの数は、アドレス計算機３０６（図３Ａ）内の入力として提供される、量子化逆勾配値のサイズによって決定され得る。例えば、２つの量子化された逆勾配値が入力として提供され、それぞれの逆勾配値が２ビット値である場合、表２は、１６個のエンティティを有し得る（すなわち、４×４＝１６、この場合、それぞれの２ビット値は、最高で４つの異なる値を表すことができる）。一態様では、４００Ａ〜４００Ｎのうちの１つに関するエンティティ指標は、アドレス計算機によって決定され得る（（ｙl＜＜２）＋ｙr）によって決定され得る。
【００８１】
表２内のそれぞれのエンティティ４００Ａ〜４００Ｎは、１つ以上の位相を含む。例えば、図４に示すように、エンティティ４００Ａは、１つ以上の位相４０２Ａ〜４０２Ｎを含み、エンティティ４００Ｎは、１つ以上の位相４１２Ａ〜４１２Ｎを含む。一態様では、それぞれのエンティティに関する位相の数は、（図３Ｄに示される「位相ｓ」のサイズなど）入力位相情報のサイズによって決定され得る。例えば、位相情報が５ビット値によって表される場合、表２のそれぞれのエンティティ４００Ａ〜４００Ｎは３２個の位相を含み得る。
【００８２】
アドレス計算機３０６は、表２の所定のエンティティ４００Ａ〜４４０Ｎ内の特定の位相のアドレスを計算するために、量子化された逆勾配値と位相情報とを使用する。例えば、１つのシナリオでは、アドレス計算機３０６は、フィルタ係数探索モジュール３０８が位相４０２Ａに関連するエッジ方向付け拡大縮小フィルタ係数４０４Ａ〜４０４Ｎの探索を実行することができるように、表２のエンティティ４００Ａ内の位相４０２Ａを識別するアドレスを生成することが可能である。これらのエッジ方向付け拡大縮小フィルタ係数は、次いで、表２から出力として提供されて（例えば、図３Ｄを参照されたい）、画像データを拡大縮小するために、フィルタ３１０（図３Ａ）によって使用されることが可能である。
【００８３】
エンティティ４００Ａ内のそれぞれの位相４０２Ａ〜４０２Ｎは、複数のエッジ方向付け拡大縮小フィルタ係数を含み、エンティティ４００Ｎ内のそれぞれの位相４１２Ａ〜４１２Ｎは、複数のエッジ方向付け拡大縮小フィルタ係数を含む。位相４０２Ａは、フィルタ係数４０４Ａ〜４０４Ｎを含み、位相４０２Ｎは、フィルタ係数４０６Ａ〜４０６Ｎを含み、位相４１２Ａは、フィルタ係数４１４Ａ〜４１４Ｎを含み、位相４１２Ｎは、フィルタ係数４１６Ａ〜４１６Ｎを含む。これらのフィルタ係数は、表２からの出力として提供され得る。一態様では、それぞれの位相に関連するフィルタ係数の数は、使用される画像拡大縮小フィルタ３１０のタイプに依存し得る。例えば、画像拡大縮小フィルタ３１０が４タップフィルタである場合、画像拡大縮小フィルタ３１０による使用のために、表２からの出力として、位相に関して４つのフィルタ係数が提供され得る（この場合、それぞれのタップは、フィルタ係数のうちの１つと関連付けられる）。しかし、画像拡大縮小フィルタ３１０が８タップフィルタである場合、出力として、位相に関して８つのフィルタ係数が提供され得る。一態様では、エンティティ４００Ａ〜４００Ｎ内のエッジ方向付け拡大縮小フィルタ係数（係数４０４Ａ〜４０４Ｎ、４０６Ａ〜４０６Ｎ、４１４Ａ〜４１４Ｎ、及び／又は４１６Ａ〜４１６Ｎなど）の値のそれぞれは、正の整数、負の整数、又は１つの値もしくはゼロを備えてよい。その他の態様では、フィルタ係数に関して、その他の値が使用され得る。
【００８４】
表２が１６個のエンティティを含む１つのシナリオにおける、表１の出力に基づく、表２内のこれらのエンティティの順序及び索引付けが下の表Ｂに示される。一態様では、アドレス計算機３０６は、これらの指標を計算することが可能である。次いで、それぞれの指標は、表２内のエンティティのうちの１つ、例えば、エンティティ４００Ａ〜４００Ｎのうちの１つなどと関連付けられることが可能である。
【表Ｂ】
2012501594.tif 000016
【００８５】
したがって、１つのシナリオでは、表２内の拡大縮小フィルタ係数のアドレス計算機３０６によるアドレスの計算は、２つの部分を含み得る。第１の部分において、（（ｙ1＜＜２）＋ｙr）に従ってエンティティ指標が決定される。これは、エンティティ４００Ａ〜４００Ｎのうちの１つなど、表２内の対応するエンティティを決定することが可能である。アドレス計算機３０６は、次いで、そのエンティティがエンティティ４００Ａに対応する場合、位相４０２Ａ〜４０２Ｎのうちの１つなど、位相（図３Ｄに示された「位相ｓ」など）に従って、対応するエンティティ内の拡大縮小フィルタ係数の開始アドレスを決定することが可能である。
【００８６】
一例では、フィルタ係数は補間に関して使用され得る。例えば、図２を参照すると、位置Ｙにおける画素を補間するために、（図３Ａに示される画像拡大縮小フィルタ３１０が４タップフィルタであるときなど）４タップフィルタによって４つのフィルタ係数が使用され得る。これらの４つのフィルタ係数は、補間画素値を生み出すために、画素Ｐ-1、Ｐ0、Ｐ1、及びＰ2のそれぞれの値に適用され得る。しかし、その他の例では、異なる数のフィルタ係数とソース画素とが使用されてよい。例えば、画像拡大縮小フィルタ３１０が８タップフィルタである場合、画素を補間するために、８つのフィルタ係数が使用され得る。この場合、これらの８つの係数は、補間画素値を生み出すために、元の画像内のそれぞれ８７の画素値Ｐ-3、Ｐ-2、Ｐ-1、Ｐ0、Ｐ1、Ｐ2、Ｐ3及びＰ4に適用され得る。一態様によれば、元の画像から使用されることになるこれらの８つの画素は、決定された手順及びそれらのそれぞれの位置に従って決定される。補間画素値を生み出すために、それぞれのフィルタ係数は、元の画像内の画素のうちの１つによって乗算され得る。これらの乗算演算の結果は、次いで、補間されることになる画素の値を取得するために合計され得る。
【００８７】
一態様では、これらのフィルタ係数は、デシメーションに関して使用されることも可能である。この態様では、元の画像内の画素は、縮小される。縮小において、位相ステップは、通常、１を超えるのに対して、拡大においては、位相ステップは、通常、１未満である。この位相ステップは、それぞれ、水平次元及び垂直次元に関して定義され得る。水平次元の場合、位相ステップは（input_width/output_width）として定義されることが可能であり、垂直次元では、位相ステップは（input_height/output_height）として定義され得る。拡大縮小に関して上で説明された様々な技法は、拡大演算と縮小演算の両方に適用されることが可能であり、この場合、縮小に関する位相ステップは、多くの場合、１を超える可能性がある。
【００８８】
図５は、本開示の一態様による、勾配値及び逆勾配値を例示するグラフ図である。図５では、水平軸（ｘ軸）に沿って例示的な勾配値が示され、垂直軸（ｙ軸）に沿って例示的な逆勾配値が示される。
【００８９】
先に説明されたように、表１の出力が表２の入力内にあることを考慮すると、表１の別個の出力の数を限定する１つの目的は、表２のサイズを削減することであり得る。一態様において、（量子化された逆勾配値に関する）表１の別個の出力を相当削減することは、結果として、グラフィックス装置１００の動作の無視できる性能劣化をもたらすか、又は性能劣化をもたらさない。これは、整合曲線の非線形の属性（方程式（２））に一部起因する可能性があり、自然画像内の多くの勾配レベルは、一定の範囲内で分散する傾向があるということに一部起因する可能性もある。例えば、１００を超える大きさの勾配値は、通常、自然画像内では稀である。
【００９０】
図５では、（元の逆勾配値に関連する、方程式（２）からの）元の整合曲線５００が（量子化された逆勾配値に関連する、方程式（１１）からの）修正された整合曲線５０２と共に示される。元の整合曲線５００は、実線を使用して示され、修正された曲線５０２は、ダッシュ破線を使用して示される。加えて、図５は、表１によって出力され得る７、６、５、及び４の４つの量子化された逆勾配値に対応する４つの別個の点Ａ、Ｂ、Ｃ、及びＤを示す。先に説明されたように、ｙl／rが（包括的な）４から７の間の任意の整数値を有し得るように、方程式（１１）の結果に関してクランプ演算が実行され得る。
【００９１】
図５では、修正された曲線５０２は、［１６，１００］の間の勾配値の範囲内で元の整合曲線５００と重複することが理解されよう。多くの事例では、勾配値のこの範囲は、自然画像内の構造を表す大部分の勾配レベルをカバーする。したがって、これらの事例では、逆勾配値の範囲は［４，７］に及ぶ。クランピングが実行されるため、修正された曲線５０２の逆勾配値は、それぞれ、図５の点Ｄ、Ｃ、Ｂ、及びＡに対応する、範囲［４，７］内で別個の整数値に量子化される。修正された曲線５０２内の７を超える任意の逆勾配値は、７に等しく設定され、４未満の任意の逆勾配値は４に等しく設定される。
【００９２】
多くの事例において、１００を超える勾配値は、通常、自然画像内で稀であるため、かつ［１６，１００］の間の値の範囲は、多くの場合、自然画像内の構造を表す大部分の勾配レベルをカバーするため、拡大縮小された画像の鋭さを維持しながら、勾配値と逆勾配値の両方の量子化が実行され得る。加えて、量子化の使用によって、かつ２つの探索テーブル（表１及び表２）の使用によって、そうでない場合、グラフィックス装置１００によって実行される必要があり得る、込み入ったアルゴリズム又は計算の複雑性を必要とせずに、グラフィックス装置１００内でエッジ方向付け拡大縮小技法が実施され得る。
【００９３】
図６は、本開示の一態様による、画像データ１２０（図１）を拡大縮小するために使用され得る拡大縮小フィルタ係数を生成するために、グラフィックス装置１００（図１及び３Ａ）によって実行され得る方法を例示する流れ図である。この態様では、グラフィックス装置１００は、画像データ１２０から拡大された又は縮小された画像データ１２２を生成するための活動６００、６０２、６０４、６０６、及び６０８を実行することが可能である。
【００９４】
６００において、勾配量子化モジュール３０２（図３Ａ）は、画像データ１２０の拡大縮小のために使用される１つ以上の勾配値を取得し、この場合、それぞれの勾配値は、ソース画像内の画像データ１２０の少なくとも２つの画素の値の間の勾配を示す。勾配値計算機３００は、この１つ以上の勾配値を計算して、処理のために、これらの値を勾配量子化モジュール３０２に提供することが可能である。
【００９５】
図６の６０２において、逆勾配探索モジュール３０４は、その１つ以上の勾配値に基づいて、第１の探索テーブル（表１）から１つ以上の（事前に計算されたような）所定の逆勾配値を生成することが可能である。これらの勾配値は、探索を実行するとき、表１内への指標として使用され得る。逆勾配探索モジュール３０４は、次いで、逆勾配値をアドレス計算機３０６に提供することが可能である。いくつかのシナリオでは、勾配量子化モジュール３０２は、１つ以上の量子化された勾配値を取得するために、１つ以上の勾配値の不均一量子化を実行することが可能である。逆勾配探索モジュール３０４は、その１つ以上の量子化された勾配値に基づいて、表１内で所定の量子化された逆勾配値の探索を実行することも可能である。アドレス計算機３０６は、次いで、表１からの出力として提供された、量子化された逆勾配値を使用することが可能である。
【００９６】
一態様では、表１内に格納された１つ以上の量子化された逆勾配値は、所定の値を備える。いくつかの事例では、これらの所定の逆勾配値は、１つ以上の不均一量子化アルゴリズムに基づいて、計算されて、表１内に事前に格納される。この１つ以上の不均一量子化アルゴリズムは、先に説明されたような、１つ以上のクランプ関数を含み得る。
【００９７】
図６の６０４において、フィルタ係数探索モジュール３０８（図３Ａ）は、（量子化された逆勾配値を備え得る）１つ以上の逆勾配値に基づいて、第２の探索テーブル（表２）から１つ以上の所定のエッジ方向付け拡大縮小フィルタ係数を生成することが可能である。この１つ以上の所定のエッジ方向付け拡大縮小フィルタは、１つ以上の事前に計算されたエッジ方向付け拡大縮小フィルタを備え得る。
【００９８】
一態様では、フィルタ係数探索モジュール３０８及びアドレス計算機３０６は、１つ以上の逆勾配値に基づいて、かつ位相情報にも基づいて、表２から１つ以上の所定のエッジ方向付け拡大縮小フィルタ係数を生成することが可能である。図３Ｄは、アドレス計算機３０６に対する入力として、「位相ｓ」に関する位相情報が使用されるようなシナリオの一例を示す。この位相情報は、ソース画像内の少なくとも２つの画素に関して補間されることになる画像の部分を少なくとも一部示すことが可能である。
【００９９】
図６の６０６において、画像拡大縮小フィルタ３１０（図３Ａ）は、１つ以上のエッジ方向付け拡大縮小フィルタ係数に基づいて、エッジ方向付け拡大縮小フィルタを生成することが可能である。６０８において、次いで、画像拡大縮小フィルタ３１０は、次いで、（図１に示されるディスプレイ装置１０６など）ディスプレイ装置上で表示され得る（拡大された又は縮小された画像など）拡大縮小された画像内で補間画素を生成するために、エッジ方向付け拡大縮小フィルタをソース画像の少なくとも２つの画素に適用することが可能である。 
一態様では、グラフィックス装置１００は、１つ以上の勾配値を取得すること（６００）と、１つ以上の逆勾配値を生成すること（６０２）と、拡大縮小された画像の拡大縮小された画像データ１２２内で複数の補間画素を生成するために、ソース画像内の画像データ１２０から複数の画素に関する１つ以上のエッジ方向付け拡大縮小フィルタ係数を生成すること（６０４）とを繰り返す。装置は、エッジ方向付けフィルタを生成すること（６０６）と、このプロセスの間にエッジ方向付けフィルタを適用すること（６０８）とを繰り返すことも可能である。
【０１００】
図７は、本開示の一態様による、複数の補間画素を生成するために、グラフィックス装置１００（図１及び３Ａ）によって実行され得る方法を例示する流れ図である。この態様では、グラフィックス装置１００は、ソース画像データ１２０から拡大縮小された画像データ１２２を生成するための活動７００、７０２、７０４、７０６、及び７０８を実行することが可能である。
【０１０１】
７００において、勾配量子化モジュール３０２（図３Ａ）は、ソース画像内の画像データ１２０の少なくとも２つの画素の値の間の第１の勾配を示す第１の勾配値を取得することが可能である。これらの少なくとも２つの画素は、拡大縮小画像の拡大縮小画像データ１２２内で補間されることになる画素の（左側など）第１の側に配置され得る。例えば、図２を参照すると、第１の勾配値は、（補間されることになる、位置Ｙにおける画素に関して）画素Ｐ-1及びＰ0と関連付けられることが可能である。
【０１０２】
図７の７０２において、勾配量子化モジュール３０２は、ソース画像内の画像データ１２０の少なくとも２つの追加の画素の値の間の第２の勾配を示す第２の勾配値を取得することが可能である。これらの少なくとも２つの追加の画素は、拡大縮小画像データ１２２内で補間されることになる画素の（右側など）第２の異なる側に配置され得る。例えば、図２を参照すると、この第２の勾配値は、（補間されることになる、位置Ｙにおける画素に関して）画素Ｐ1及びＰ2と関連付けられることが可能である。勾配値計算機３００は、次いで、勾配量子化モジュール３０２によって量子化されることも可能な、これらの第１の勾配値及び第２の勾配値を計算することができる。
【０１０３】
図７の７０４において、逆勾配探索モジュール３０４（図３Ａ）は、７００において取得された第１の勾配値に基づいて、第１の探索テーブル（表１）から第１の逆勾配値を生成することが可能である。逆勾配探索モジュール３０４は、７０２において取得された第２の勾配値に基づいて、表１から第２の逆勾配値を生成することがさらに可能である。
【０１０４】
７０６において、フィルタ係数探索モジュール３０８（図３Ａ）は、７０４において生成された第１の逆勾配値及び第２の逆勾配値に基づいて、第２の探索テーブル（表２）から少なくとも４つのエッジ方向付け拡大縮小フィルタ係数を生成することが可能である。アドレス計算機３０６は、少なくとも４つのフィルタ係数を生成する際にフィルタ係数探索モジュール３０８によって使用するための探索アドレスを表２内で計算するために、生成された第１の逆勾配値と第２の逆勾配値とを使用することができる。
【０１０５】
７０８において、画像拡大縮小フィルタ３１０（図３Ａ）は、拡大縮小された画像内で補間画素を生成するために、少なくとも４つのエッジ方向付け拡大縮小フィルタ係数をソース画像内の少なくとも２つの画素と少なくとも２つの追加の画素（ソース画素）とに適用することが可能である。一態様では、それぞれのフィルタ係数は、重み係数に対応する。画像拡大縮小フィルタ３１０は、ソース画像内のソース画素のうちの１つによって、それぞれのフィルタ係数を乗算することが可能である。例えば、ソース画像内のソース画素が、図２に示される画素Ｐ-1、Ｐ0、Ｐ1、及びＰ2に対応する場合、例えば、第１の生成されたフィルタ係数は、Ｐ-1の大きさによって乗算されることが可能であり、第２の生成されたフィルタ係数は、Ｐ0の大きさによって乗算されることが可能であり、第３の生成されたフィルタ係数は、Ｐ1の大きさによって乗算されることが可能であり、第４の生成されたフィルタ係数は、Ｐ2の大きさによって乗算されることが可能である。これらの乗算演算の結果は、次いで、一緒に合計されて、フィルタリングを完了して、位置Ｙにおける補間画素の大きさを生成するために正規化されることが可能である。一態様では、生成されたフィルタ係数のそれぞれの総和は、１に等しい。
【０１０６】
画像拡大縮小フィルタ３１０が補間画素を生成した後で、グラフィックス装置１００は、拡大縮小された画像の補間画素を生成するために、生成されたエッジ方向付け拡大縮小フィルタ係数をソース画像内の複数のソース画素に対して水平方向及び／又は垂直方向に繰り返される形で適用する目的で、７００、７０２、７０４、７０６、及び７０８を繰り返すことが可能である。１つの個々のフィルタ係数が「スライドウィンドウ」内で個々のソース画素に適用されるように、補間画素を生成するとき、フィルタ係数をソース画像内のソース画素に繰り返し適用するために、「スライドウィンドウ」が使用され得る。この「スライドウィンドウ」は、複数のソース画素を含むことが可能であり、まず、ソース画像の列内の画素を通して水平方向（左から右）に移動され得る。この「スライドウィンドウ」は、ソース画像内の様々な画素を通してスライドするために、垂直（上から下）に移動されることも可能である。「スライドウィンドウ」が移動するにつれて、生成されたフィルタ係数は、次いで、「スライドウィンドウ」内のソース画素に適用され得る。そのような形で、拡大縮小された画像に関して複数の補間画素を生成することによって、ソース画像全体が拡大縮小され得る。
【０１０７】
所定の逆勾配値を格納する第１の探索テーブルと所定のエッジ方向付け拡大縮小フィルタを格納する第２の探索テーブルとを使用することによってなど、デュアル探索テーブル設計の実装は、様々な利益及び利点を提供することができる。例えば、デュアル探索テーブル設計は、グラフィックス装置１００内で複雑な計算及び算術演算を使用することを最小限に抑えるか、又はそれを回避することに役立つ可能性がある。したがって、グラフィックス装置１００内の一定の拡大縮小機能性に関するハードウェアの複雑性が最小限に抑えられ得る。加えて、不均一量子化など、量子化の使用は、エッジ方向付け拡大縮小アルゴリズムの性能を依然として維持しながら、探索テーブルのサイズを削減するのに役立つ可能性がある。量子化された勾配値は、次いで、出力として、量子化された逆勾配値を提供することが可能な第１の探索テーブル内への入力として機能し得る。これらの量子化された逆勾配値は、次いで、第２の探索テーブル内への入力として機能し得る。逆勾配値は量子化されるため、第２の探索テーブルのサイズは相当削減され得る。
【０１０８】
本開示において説明された技法は、汎用マイクロプロセッサ、ディジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレー（ＦＰＧＡ）、又はその他の同等の論理装置の中で実装され得る。したがって、本明細書で使用される場合、「プロセッサ」又は「コントローラ」という用語は、前述の構造、又は本明細書で説明される技法の実装に適した任意のその他の構造のうちのいずれかを指す場合がある。
【０１０９】
本明細書で例示された様々な成分は、ハードウェア、ソフトウェア、ファームウェアの任意の適切な組合せ、又はそれらの任意の組合せによって実現され得る。図面では、様々な成分は別個のユニット又はモジュールとして示される。しかし、これらの図面を参照して説明された様々な成分のすべて又はいくつかは、共通のハードウェア及び／又はソフトウェアの中の組み合わされたユニット内もしくはモジュール内に統合され得る。したがって、成分、ユニット、又はモジュールとしての特徴の表示は、例示を簡単にするために特定の機能的特徴を強調することが意図され、別個のハードウェア成分又はソフトウェア成分によってかかる特徴を実現することを必要とするとは限らない。いくつかの事例では、様々なユニットは、１つ以上のプロセッサによって実行されるプログラマブルプロセスとして実装され得る。
【０１１０】
グラフィックス装置１００及び／又はその構成成分を含めて、本明細書でモジュール、装置、又は成分として説明される任意の特徴は、集積論理装置内で一緒に実装されることが可能であり、又は離散的であるが、相互運用可能な論理装置として別々に実装されることも可能である。様々な態様では、かかる成分は、集積回路チップ又はチップセットなど、集合的に集積回路装置呼ばれる場合がある、１つ以上の集積回路装置として少なくとも一部形成されることが可能である。かかる回路は、単一の集積回路チップ装置内で又は複数の相互運用可能な集積回路チップ装置内で提供されることが可能であり、様々な画像、ディスプレイ、音声、又はその他のマルチメディアアプリケーション及びマルチメディア装置のうちのいずれかの中で使用され得る。いくつかの態様では、例えば、かかる成分は、無線通信装置ハンドセットなど、移動装置の一部を形成し得る。
【０１１１】
ソフトウェアの形で実施される場合、これらの技法は、１つ以上のプロセッサによって実行されたとき、上で説明された方法のうちの１つ又は複数を実行する命令を有するコードを備えたコンピュータ可読媒体によって少なくとも一部実現され得る。このコンピュータ可読媒体は、実装材料を含み得るコンピュータプログラム製品の一部を形成し得る。このコンピュータ可読媒体は、同時ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気的に消去可能なプログラマブル読取り専用メモリ（ＥＥＰＲＯＭ）、埋込み式ダイナミックランダムアクセスメモリ（ｅＤＲＡＭ）、静的ランダムアクセスメモリ（ＳＲＡＭ）、フラッシュメモリ、磁気データ記憶媒体又は光データ記憶媒体など、ランダムアクセスメモリ（ＲＡＭ）を備え得る。
【０１１２】
これらの技法は、加えて、あるいはその代わりに、命令もしくはデータ構造の形でコードを伝播又は通信し、１つ以上のプロセッサによってアクセス、読み取り、及び／又は実行され得るコンピュータ可読通信媒体によって少なくとも一部実現され得る。任意の接続は、適切にはコンピュータ可読媒体と呼ばれる場合がある。例えば、ソフトウェアが同軸ケーブル、光ファイバケーブル、より対線、ディジタル加入者線（ＤＳＬ）、もしくは赤外線、無線、及びマイクロ波などの無線技術を使用して、ウェブサイト、サーバ、又はその他の遠隔ソースから送信される場合、それらの同軸ケーブル、光ファイバケーブル、より対線、ＤＳＬ、又は赤外線、無線、及びマイクロ波などの無線技術は、媒体の定義内に含まれる。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。利用される任意のソフトウェアは、１つ以上のＤＳＰ、汎用マイクロプロセッサ、ＡＳＩＣ、ＦＰＧＡ、あるいはその他の同等の集積論理回路又はディスクリート論理回路など、１つ以上のプロセッサによって実行され得る。
【０１１３】
本開示の様々な態様が説明されている。これらの態様及びその他の態様は、以下の特許請求の範囲の範囲内である。
【図１】
2012501594.tif 000017
【図２】
2012501594.tif 000018
【図３Ａ】
2012501594.tif 000019
【図３Ｂ】
2012501594.tif 000020
【図３Ｃ】
2012501594.tif 000021
【図３Ｄ】
2012501594.tif 000022
【図４】
2012501594.tif 000023
【図５】
2012501594.tif 000024
【図６】
2012501594.tif 000025
【図７】
2012501594.tif 000026
【国際調査報告】
2012501594.tif 000027
2012501594.tif 000028
2012501594.tif 000029