本開示の1つ以上のある特定の実施形態を以下に述べる。これらの述べる実施形態は、本明細書で開示されている技術の実施例に過ぎない。更に、これらの実施形態の簡潔な説明を提供するために、本明細書に実際の実施態様のすべての特徴が示されるとは限らない。いずれの工学プロジェクト又は設計プロジェクトの場合とも同様に、いずれのそのような実際的な実装の開発に際しても、実装ごとに異なり得る、システム関連及びビジネス関連の制約の準拠などの、開発者の具体的な目的を達成するために、実装に固有の多数の決定を行わなければならないことを理解するべきである。更に、開発努力は複雑で時間がかかる可能性があるが、それでも、本開示の利益を有する当業者には、設計、製作、及び製造の通常業務であり得ることを理解されたい。
本開示の様々な実施形態の要素を紹介するときに、冠詞「a」、「an」、及び「the」は、1つ以上の要素があることを意味する。用語「備える」、「含む」、及び「有する」は、包括的であることを意図し、列挙した要素以外の付加的な要素がある可能性があることを意味する。更に、本開示の「一実施形態」又は「実施形態」の参照は、列挙した特徴を組み込む追加の実施形態の存在を除外するように解釈されることを意図したものではないことを理解されたい。
本開示は、概して、例えば、1つ以上の画像フレーム内の画像として、情報の視覚表現を提示するために使用することができる電子ディスプレイに関する。画像を表示するために、電子ディスプレイは、画像の目標特性を示す画像データに少なくとも部分的に基づいてその表示画素からの発光を制御することができる。例えば、画像データは、共にブレンドされる(例えば、平均化される)と異なる色の範囲の知覚となり得る、画像の一部分(例えば、画像画素)の特定の色成分の目標ルミナンス(例えば、輝度)を示すことができる。
一般に、電子ディスプレイ内のそれぞれの表示画素は、表示されることになる画像内の画像画素に対応することができる。換言すれば、表示画素及び画像画素は、画素位置に対応することができる。画像を表示することを容易にするために、表示画素は、画素位置の1つの色成分のルミナンスをそれぞれ制御する1つ以上の副画素を含むことができる。例えば、表示画素は、赤色成分のルミナンスを制御する赤の副画素、緑色成分のルミナンスを制御する緑の副画素、及び/又は青色成分のルミナンスを制御する青の副画素を含むことができる。
しかし、異なる電子ディスプレイは、異なる副画素レイアウトを実装することができる。いくつかの例では、異なる電子ディスプレイ内の表示画素当たりの副画素の数は、異なることができる。例えば、第1の電子ディスプレイでは、それぞれの表示画素は、3つの副画素を含むことができる。一方、第2の電子ディスプレイでは、それぞれの表示画素は、2つの副画素を含むことができる。更に、他の電子ディスプレイ内の表示画素は、例えば、表示画素当たり1つの副画素から表示画素当たり5つ以上の副画素までの間の、任意の好適な数の副画素を含むことができる。
加えて、いくつかの例では、異なる電子ディスプレイの表示画素に実装される副画素の色成分は、異なることができる。例えば、第1の電子ディスプレイでは、それぞれの表示画素は、赤の副画素、緑の副画素、及び青の副画素を含むことができる。一方、第2の電子ディスプレイでは、表示画素の一部(例えば、約半分)は、緑の副画素及び赤の副画素をそれぞれ含むことができ、他の表示画素は、緑の副画素及び青の副画素をそれぞれ含むことができる。更に、他の電子ディスプレイ内の表示画素は、例えば、表示画素当たり同じ色成分の複数の副画素を有する、色成分副画素の任意の好適な組み合わせを含むことができる。
更にいくつかの例では、異なる電子ディスプレイ内の表示画素内の副画素の位置は、異なることができる。例えば、第1の電子ディスプレイでは、副画素間の間隔(例えば、距離)は、より小さくすることができる。そのように、この間隔の知覚可能性をより低くすることができ、したがって、表示画素内の副画素は、概して同じ場所に配置されていると考えることができる。一方、第2の電子ディスプレイでは、副画素間の間隔は、より点光源のように機能するそれぞれの副画素により、より大きくすることができる。そのように、この間隔の知覚可能性をより高くすることができ、したがって、第2の電子ディスプレイの表示画素内の副画素は、概して互いにオフセットしていると考えることができる。例えば、第2の電子ディスプレイ内の表示画素は、対応する画像画素と同じ場所に配置された第1の副画素、及び対応する画像画素からオフセットした第2の副画素を含むことができる。
更に、いくつかの例では、異なる電子ディスプレイ内の副画素は、異なる形状を有する表示領域になるように実装することができる。例えば、第1の電子ディスプレイは、矩形形状を有する第1の表示領域を有して実装することができる。換言すれば、第1の表示領域は、約90度の角で接続された4つの直線境界を有することができる。一方、第2の電子ディスプレイは、非矩形形状を有する第2の表示領域を有して実装することができる。例えば、第2の表示領域は、4つの丸みのある(例えば、曲線状の)境界で接続された4つの直線境界を有することができる。
いくつかの例では、画像データソースは、表示されることになる画像の画像画素に対応する画像データを生成することができる。電子ディスプレイは多くの場合矩形表示領域を有するので、画像データソースは、矩形画像に対応する画像データを生成することができる。そのように、第1の表示領域が矩形形状を有するので、矩形画像内のそれぞれの画像画素は、第1の電子ディスプレイ内の表示画素に対応することができる。換言すれば、それぞれの画素位置は、画像画素及び表示画素の両方に対応することができる。
しかし、非矩形形状を有して実装されているので、矩形画像内の一部の画像画素は、第2の電子ディスプレイの第2の表示領域の外側の画素位置に対応することがある。例えば、矩形画像の上部境界が第2の表示領域の上部境界と位置合わせされ、かつ矩形画像の左側境界が第2の表示領域の左側境界と位置合わせされているとき、矩形画像の左上角の画像画素は、第2の表示領域の左上の丸みのある境界(例えば、角)の外側の画素位置に対応することができる。
にもかかわらず、運用上の柔軟性を高めるために、画像データソースは、電子ディスプレイの副画素レイアウトをほとんど又は全く考慮せずに同じ画像データを出力することがある。例えば、画像データソースは、画像が第1の電子ディスプレイに表示されることになるか第2の電子ディスプレイ上に表示されることになるかにかかわらず、矩形画像に対応する画像データを出力することがある。しかし、いくつかの例では、知覚される画像品質は、電子ディスプレイの副画素レイアウトによって影響を受けることがある。例えば、第2の電子ディスプレイの副画素レイアウトは、第2の表示領域の境界(例えば、上部直線境界、下部直線境界、左側直線境界、及び/又は右側直線境界)に沿った知覚可能な色縁をもたらすことがある。加えて又は代わりに、第2の電子ディスプレイの副画素レイアウトは、表示領域の丸みのある(例えば、左上、右上、左下、及び/又は右下)境界に沿った知覚可能なエイリアシングをもたらすことがある。
したがって、本開示は、例えば、電子ディスプレイの副画素レイアウトに少なくとも部分的に基づいて画像データを処理することにより、電子ディスプレイの知覚される画像品質を改善するための技術を提供する。いくつかの実施形態では、ディスプレイパイプラインは、対応する画像が電子ディスプレイ上に表示される前に、画像データソースによって生成された画像データを受信して処理することができる。例えば、ディスプレイパイプラインは、ソース(例えば、RGB)形式の画像データを処理して、表示(例えば、GR又はGB)形式の画像データを決定することができる。より具体的には、いくつかの実施形態では、ディスプレイパイプラインは、フィルタリング(例えば、補間又はサンプリング)して、画像画素画像データ(例えば、画像画素に対応する画像データ)にゲイン値を適用することにより、表示画素画像データ(例えば、表示画素に対応する画像データ)を決定することができる。
いくつかの実施形態では、ディスプレイパイプラインは、周囲の画像画素画像データに少なくとも部分的に基づいて画像画素画像データをフィルタリングすることにより、表示画素画像データを決定することができる。例えば、ディスプレイパイプラインは、周囲の画像画素の対応する色成分画像データを等しく平均化するローパスフィルタを適用することにより、オフセット副画素画像データ(例えば、オフセット副画素に対応する画像データ)を決定することができる。周囲の画像画素からオフセットされているため、このようにしてオフセット副画素画像データを決定することにより、より漸進的なルミナンス変化とすることができる。
しかし、電子ディスプレイの副画素レイアウトに少なくとも部分的に起因して、より漸進的なルミナンス変化により、いくつかの例では、表示領域の境界に沿った色縁及び/又は表示領域の丸みのある境界に沿ったエイリアシングなどの知覚可能な視覚アーチファクトをもたらすことがある。例えば、表示画素が同じ場所に配置された緑の副画素を有するとき、表示領域の第1の(例えば、上部又は下部)直線境界に沿って緑色の色縁が知覚可能なことがある。加えて、表示画素がオフセットした赤の副画素又はオフセットした青の副画素のいずれかを交互に有するとき、表示領域の第2の(例えば、左側又は右側)直線境界に沿って紫色の色縁が知覚可能なことがある。更に、表示画素がオフセット副画素を有するとき、表示領域の丸みのある(例えば、左上、右上、左下、又は右下)境界に沿ってエイリアシング(例えば、ギザギザ)が知覚可能なことがある。
知覚可能な視覚アーチファクトを生成する可能性を低減するために、いくつかの実施形態では、ディスプレイパイプラインは、画像画素画像データをフィルタリングした後でゲイン値を適用して表示領域の境界に沿った副画素を暗くすることにより、表示画素画像データを決定することができる。例えば、知覚可能な色縁を生成する可能性を低減するために、ディスプレイパイプラインは、中間ゲイン値(例えば、ゼロより大きくかつ1未満)を適用して表示領域の境界(例えば、直線境界)に沿った表示画素内の副画素を暗くすることができる。加えて、知覚可能なエイリアシングを生成する可能性を低減するために、ディスプレイパイプラインは、中間ゲイン値を適用して表示領域の丸みのある境界に沿った表示画素内の副画素を暗くすることができる。
いくつかの実施形態では、丸みのある境界に沿った表示画素内の副画素に適用されることになるゲイン値は、副画素と丸みのある境界との間の距離に少なくとも部分的に基づいて決定することができる。例えば、丸みのある境界に沿った副画素位置を含むアンチエイリアシング領域を決定することができる。加えて、アンチエイリアシング領域内のそれぞれの副画素位置に関連付けられたゲイン値は、副画素位置と丸みのある境界との間の最短距離に反比例することができる。このようにして決定されたゲイン値を適用することにより、電子ディスプレイの副画素レイアウトに少なくとも部分的に基づいて、丸みのある境界に沿った副画素を線形に暗くして、丸みのある境界に沿った知覚可能なエイリアシングを生成する可能性を低減することができる。
加えて、電子ディスプレイの表示領域及びアンチエイリアシング領域の外側の画素位置に対応するゲイン値は、ゼロに設定することができる。このようにして決定されたゲイン値を適用することにより、ブラックマスクを適用して、表示領域の外側の画素位置に対応する画像データを消すことができる。このようにして、矩形画像を調整して、非矩形表示領域を有する電子ディスプレイ上の表示を容易にすることができる。知覚される画像品質を更に改善することを容易にするために、いくつかの実施形態では、ディスプレイパイプラインは、対応する画素位置に関連付けられたゲイン値及び/又は隣接する画素位置に関連付けられたゲイン値に少なくとも部分的に基づいて、画像画素画像データに適用されるフィルタリングパラメータ(例えば、フィルタ位相又はフィルタ係数)を適応的に調整することができる。
いくつかの実施形態では、ディスプレイパイプラインは、対応する画像画素画像データを処理しながら、画素位置に関連付けられたゲイン値を計算することができる。加えて、いくつかの実施形態では、表示領域の境界に沿った表示画素に適用されることになるゲイン値は、プログラム可能なレジスタに記憶することができる。例えば、上部直線境界に沿った表示画素に適用されることになる第1の境界ゲイン値は、第1のプログラム可能なレジスタに記憶することができ、下部直線境界に沿った表示画素に適用されることになる第2の境界ゲイン値は、第2のプログラム可能なレジスタに記憶することができ、左側直線境界に沿った表示画素に適用されることになる第3のゲイン値は、第3のプログラム可能なレジスタに記憶することができ、右側直線境界に沿った表示画素に適用されることになる第4のゲイン値は、第4のプログラム可能なレジスタに記憶することができる。
更に、いくつかの実施形態では、電子ディスプレイの特性(例えば、解像度、副画素レイアウト、及び/又は表示領域形状)は一般的に固定されているため、画素位置に関連付けられたゲイン値は、予め設定することができる。例えば、設計デバイスは、それぞれの画素位置に関連付けられたゲイン値のセットを示すゲインマップとしてゲイン値を決定して記憶することができる。いくつかの実施形態では、画素位置に関連付けられたゲイン値セットは、対応する表示画素内のそれぞれの色成分に対するゲイン値を含むことができる。例えば、表示画素が赤の副画素及び緑の副画素を含むとき、その画素位置に関連付けられたゲイン値セットは、赤色のゲイン値及び緑色のゲイン値を含むことができる。加えて、表示画素が青の副画素及び緑の副画素を含むとき、その画素位置に関連付けられたゲイン値セットは、青色のゲイン値及び緑色のゲイン値を含むことができる。
いくつかの実施形態では、非圧縮ゲインマップは、それぞれの画素位置を対応するゲイン値セットに明示的に関連付ける(例えば、マッピングする)ことができる。換言すれば、非圧縮ゲインマップ内の入力の数は、電子ディスプレイの解像度以上とすることができる。そのように、非圧縮ゲインマップのサイズ(例えば、ビット数)は、特に、電子ディスプレイの解像度が増大し続けるに従って、相対的に大きくなることがある。そのサイズに対応するために、いくつかの実施形態では、非圧縮ゲインマップを外部メモリに記憶し、したがって、ダイレクトメモリアクセス(direct memory access)(DMA)チャネルを介してディスプレイパイプラインによって外部メモリから取得することができる。しかし、ダイレクトメモリアクセスチャネルを介して外部メモリにアクセスすることにより、処理効率並びに/又は電力消費及び/若しくはディスプレイパイプラインのサイズ(例えば、ハードウェア設置面積)などの実装に関連付けられたコストに影響を及ぼすことがある。
処理効率を改善すること及び/又は実装に関連付けられたコストを低減することを容易にするために、いくつかの実施形態では、圧縮ゲインマップを使用して、ゲイン値を示すことができる。例えば、設計デバイスは、非圧縮ゲインマップを圧縮して、圧縮ゲインマップを決定することができる。圧縮により、圧縮ゲインマップのサイズは、一般的に非圧縮ゲインマップより小さい。いくつかの実施形態では、低減したサイズにより、圧縮ゲインマップをディスプレイパイプラインの内部メモリに記憶することを可能にすることができる。したがって、そのような実施形態では、ゲイン値を決定するために外部メモリにアクセスすることを不要にし、それによって、処理効率を改善する及び/又はダイレクトメモリアクセス実装に関連付けられたコストを低減することができる。
圧縮を容易にするために、いくつかの実施形態では、非圧縮ゲインマップ内のそれぞれのゲインマップ行は、その対応するゲインマップ入力により示されたゲイン値に少なくとも部分的に基づいて、コード化されない行又はコード化された行のいずれかとして分類することができる。例えば、設計デバイスは、ゲインマップ行によって示されたそれぞれのゲイン値が1であるとき、コード化されない行としてゲインマップ行を分類することができる。一方、設計デバイスは、ゲインマップ行によって示された1つ以上のゲイン値が1未満であるとき、コード化された行としてゲインマップ行を分類することができる。換言すれば、コード化された行内のゲイン値は、ゼロ、1、又は中間ゲイン値(例えば、ゼロより大きく、かつ1未満)とすることができる。
加えて、行分類に基づいて、それぞれのゲインマップ行は、行ラン(row run)にグループ化することができる。例えば、設計デバイスは、1つ以上の連続したコード化された行をコード化された行ランにグループ化することができる。加えて、設計デバイスは、1つ以上の連続したコード化されない行をコード化されない行ランにグループ化することができる。いくつかの実施形態では、行ランは、コード化された行ランとコード化されない行ランとの間で交互になることができる。
更に、それぞれのコード化された行内のゲインマップ入力は、ゲインラン(gain run)にグループ化することができる。例えば、設計デバイスは、それぞれのゲインマップ入力が少なくとも1つの中間ゲイン値を示すとき、1つ以上の連続したゲインマップを中間ゲインランにグループ化することができる。加えて、設計デバイスは、ゲインマップ入力によって示されたそれぞれのゲイン値がゼロであるとき、1つ以上の連続したゲインマップ入力をゼロゲインランにグループ化することができる。更に、設計デバイスは、ゲインマップ入力によって示されたそれぞれのゲイン値が1であるとき、1つ以上の連続したゲインマップ入力を単位ゲインランにグループ化することができる。いくつかの実施形態では、コード化された行内のゲインランは、位置(例えば、ゼロ又は単位)ゲインランと中間ゲインランとの間で交互になることができる。
加えて、いくつかの実施形態では、圧縮ゲインマップは、ランマップ、位置マップ、ゲイン値マップ、及び、例えば、内部メモリのプログラム可能なレジスタに記憶された1つ以上のインジケータを含むことができる。ランマップ(run map)は、それぞれの行ラン内のゲインマップ行の数、したがって、ゲインマップ行の行ランへのグループ化に少なくとも部分的に基づいて決定された数を示すことができる。いくつかの実施形態では、それぞれのランマップ入力は、対応する行ラン内のゲインマップ行の数を明示的に示すことができる。例えば、第1の行ランが第1の10個のゲインマップ行を含み、第2の行ランが次の5個のゲインマップ行を含むとき、設計デバイスは、第1のランマップ入力内に10の値、及び第2のランマップ入力内に5の値を示すことができる。
加えて、いくつかの実施形態では、開始行ランインジケータは、非圧縮ゲインマップ内で識別された最初の行ランがコード化された行ランであるかコード化されない行ランであるかを示すことができる。例えば、最初の行ランがコード化されない行ランであるとき、設計デバイスは、開始行ランインジケータ内に第1の値(例えば、0ビット)を示すことができる。一方、最初の行ランがコード化された行ランであるとき、設計デバイスは、開始行ランインジケータ内に第2の値(例えば、1ビット)を示すことができる。
位置マップは、それぞれのコード化された行内のゲインランに関連付けられた画素位置を示すことができる。いくつかの実施形態では、それぞれの位置マップ入力は、ゲインランに含まれたゲインマップ入力の数を明示的に示すことにより、ゲインランに関連付けられた画素位置を示すことができる。例えば、第1のゲインランがゲインマップ行の最初の4個のゲインマップ入力を含み、第2のゲインランがゲインマップ行の次の6個のゲインマップ入力を含むとき、設計デバイスは、第1の位置マップ入力内に4の値、及び第2のランマップ入力内に6の値を示すことができる。
圧縮効率を改善することを容易にするために、他の実施形態では、それぞれの位置マップ入力は、別のゲインラン内の画素位置に対するゲインラン内の画素位置を示すことができる。例えば、第1のゲインランが第1のゲインマップ行の最初の4個のゲインマップ入力を含み、第2のゲインランが第2のゲインマップ行の最初の5個のゲインマップ入力を含むとき、第2のゲインランが第1のゲインランより1つ多い画素位置を含むので、設計デバイスは、プラス1の画素位置の差を決定することができる。プラス1の位置の差を示すために、設計デバイスは、第1の位置マップ入力内に第1の値(例えば、0ビット)、及び第2の位置マップ入力内に1の値を示すことができる。加えて、第3のゲインランが第1のゲインマップ行の次の6個のゲインマップ入力を含み、第4のゲインランが第2のゲインマップ行の次の5個のゲインマップ入力を含むとき、第4のゲインランが第3のゲインランより1つ少ない画素位置を含むので、設計デバイスは、マイナス1の画素位置の差を決定することができる。マイナス1の位置の差を示すために、設計デバイスは、第3の位置マップ入力内に第2の値(例えば、1ビット)、及び第4の位置マップ入力内に1の値を示すことができる。いくつかの実施形態では、画素位置の差は、エントロピ符号化して、圧縮効率を更に改善することを容易にすることができる。
ゲイン値マップは、それぞれの中間ゲインラン内の画素位置に関連付けられたゲイン値を示すことができる。いくつかの実施形態では、ゲイン値マップ入力は、画素位置に関連付けられたゲイン値を明示的に示すことができる。例えば、表示画素が第1の(例えば、緑の)副画素及び第2の(例えば、赤又は青の)副画素を含むとき、設計デバイスは、第1のゲイン値マップ入力内の第1の副画素に関連付けられた第1のゲイン値、及び第2のゲイン値マップ入力内の第2の副画素に関連付けられた第2のゲイン値を明示的に示すことができる。圧縮効率を改善することを容易にするために、一部のゲイン値マップ入力は、別の画素位置に関連付けられたゲイン値に対する画素位置に関連付けられたゲイン値を示すことができる。例えば、現在の画素位置に関連付けられた第1のゲイン値が直前の(例えば、左側に隣接する)画素位置に関連付けられた第2のゲイン値と同じであるとき、設計デバイスは、現在の画素位置に関連付けられたゲイン値マップ入力内に第1の値(例えば、1ビット)を示すことができる。一方、第1のゲイン値及び第2のゲイン値が異なるとき、設計デバイスは、ゲインマップ入力内に第2の値(例えば、0ビット)を示すことができる。いくつかの実施形態では、明示的に示されたゲイン値は、エントロピ符号化して、圧縮効率を更に改善することを容易にすることができる。
上述したように、ディスプレイパイプラインは、対応する画素位置に関連付けられたゲイン値に少なくとも部分的に基づいて、画像画素画像データを処理することができる。したがって、圧縮ゲインマップを用いて示されるとき、ディスプレイパイプラインは、圧縮ゲインマップを展開して、1つ以上の画素位置に関連付けられたゲイン値(例えば、赤色のゲイン値、青色のゲイン値、及び/又は緑色のゲイン値)を決定することができる。いくつかの実施形態では、ディスプレイパイプラインは、(例えば、ビットストリームを介して)ランマップ及び/又は開始行ランインジケータを読み取って、画像画素画像データがコード化された行ラン内の画素位置に対応するかコード化されない行ラン内の画素位置に対応するかを判定することができる。このようにして、ディスプレイパイプラインは、画素位置がコード化された行内にあるかコード化されない行内にあるかを判定することができる。
上述したように、ゲインマップ行は、そのゲインマップ入力によって示されたゲイン値のそれぞれが1に等しいとき、コード化されない行として分類することができる。したがって、画素位置がコード化されない行内にあることをディスプレイパイプラインが決定するとき、ディスプレイパイプラインは、画素位置に関連付けられたそれぞれのゲイン値が1に等しいことを決定することができる。加えて、上述したように、ゲインマップ行は、そのゲインマップ入力によって示された1つ以上のゲイン値が1未満であるとき、コード化された行として分類することができる。したがって、画素位置がコード化された行内にあることをディスプレイパイプラインが決定するとき、ディスプレイパイプラインは、位置マップを(例えば、ビットストリームを介して)読み取って、画素位置が位置ゲインラン内にあるか中間ゲインラン内にあるかを判定することができる。加えて、エントロピ符号化された画素位置の差により示されたとき、ディスプレイパイプラインは、位置マップをエントロピ複号化して、画素位置の差を決定し、例えば、上の隣接するゲインマップ行内の別のゲインランに対する画素位置の差を適用することにより、ゲインラン内の画素位置を決定することができる。
上述したように、1つ以上の連続したゲインマップ入力は、それぞれのゲインマップ入力が少なくとも1つの中間ゲイン値(例えば、ゼロより大きくかつ1未満)を含むとき、中間ゲインランとして分類することができる。したがって、画素位置が中間ゲインラン内にあることをディスプレイパイプラインが決定するとき、ディスプレイパイプラインは、ゲイン値マップを(例えば、ビットストリームを介して)読み取って、画素位置に関連付けられたゲイン値セットを決定することができる。加えて、ゲイン値がエントロピ符号化されているとき、ディスプレイパイプラインは、ゲイン値マップをエントロピ複号化して、画素位置に関連付けられたゲイン値を決定することができる。
上述したように、位置ゲインランは、ゼロゲインラン又は単位ゲインランのいずれかとすることができる。したがって、画素位置が位置ゲインラン内にあることをディスプレイパイプラインが決定するとき、ディスプレイパイプラインは、対応する位置ゲイン値インジケータを読み取って、画素位置がゼロゲインラン内にあるか単位ゲインラン内にあるかを判定することができる。加えて、上述したように、1つ以上の連続したゲインマップ入力は、それぞれの含まれたゲイン値がゼロであるとき、ゼロゲインランとして分類することができる。したがって、画素位置がゼロゲインラン内にあることを対応する位置ゲイン値インジケータが示すとき、ディスプレイパイプラインは、画素位置に関連付けられたそれぞれのゲイン値がゼロに等しいことを決定することができる。更に、上述したように、1つ以上の連続したゲインマップ入力は、それぞれの含まれたゲイン値が1であるとき、単位ゲインランとして分類することができる。したがって、画素位置が単位ゲインラン内にあることを対応する位置ゲイン値インジケータが示すとき、ディスプレイパイプラインは、画素位置に関連付けられたそれぞれのゲイン値が1に等しいことを決定することができる。
ゲイン値に少なくとも部分的に基づいて、ディスプレイパイプラインは、画像画素画像データを処理して、電子ディスプレイ上に対応する画像を表示するために使用することができる表示画素画像データを決定することができる。例えば、ゲイン値を適用することにより、ディスプレイパイプラインは、非矩形表示領域上に表示するために矩形画像を調整するブラックマスクを適用することができる。加えて、ディスプレイパイプラインは、ゲイン値に少なくとも部分的に基づいてフィルタパラメータを適応的に(例えば、動的に)調整して、画像内の縁部に沿った鮮明度(例えば、鋭い傾斜遷移)を改善することができる。更に、ゲイン値を適用することにより、ディスプレイパイプラインは、表示領域境界に沿った表示画素を暗くして、表示領域境界に沿った知覚可能な視覚アーチファクト(例えば、エイリアシング及び/又は縁)を生成する可能性を低減することができる。このようにして、ディスプレイパイプラインは、電子ディスプレイ上に対応する画像が表示される前に(例えば、圧縮又は非圧縮)ゲインマップから決定されたゲイン値に少なくとも部分的に基づいて画像データを処理して、電子ディスプレイの知覚される画像品質を改善することができる。
図示目的で、電子ディスプレイ12を用いる電子デバイス10の一実施形態を、図1に示す。以下により詳細に説明するように、電子デバイス10は、ハンドヘルド電子デバイス、タブレット電子デバイス、ノートブックコンピュータなどの、任意の好適な電子デバイスとすることができる。したがって、図1は、特定の実施態様の一実施例に過ぎず、電子デバイス10内に存在し得る構成要素のタイプを例示することを意図するものであることに留意されたい。
図示した実施形態では、電子デバイス10は、電子ディスプレイ12、入力デバイス14、入出力(input/output)(I/O)ポート16、1つ以上のプロセッサ(単数又は複数)又はプロセッサコアを有するプロセッサコア複合体18、ローカルメモリ20、メインメモリ記憶装置22、ネットワークインタフェース24、電源26、及び画像処理回路27を含む。図1に記載される様々な構成要素は、ハードウェア要素(例えば、回路)、ソフトウェア要素(例えば、命令を記憶する有形的非一時的コンピュータ可読媒体)、又はハードウェア要素とソフトウェア要素両方の組み合わせを含んでもよい。様々な図示された構成要素は、より数の少ない構成要素に組み合わされてもよく、あるいは追加の構成要素に分けられてもよいことを留意されたい。例えば、ローカルメモリ20及びメインメモリ記憶装置22は、単一の構成要素に含めることができる。加えて、画像処理回路27(例えば、グラフィック処理ユニット)が、プロセッサコア複合体18に含まれてもよい。
図示したように、プロセッサコア複合体18は、ローカルメモリ20及びメインメモリ記憶装置22に動作可能に接続される。いくつかの実施形態では、ローカルメモリ20及び/又はメインメモリ記憶装置22は、プロセッサコア複合体18によって実行可能な命令及び/又はプロセッサコア複合体18によって処理されることになるデータを記憶する有形的非一時的コンピュータ可読媒体とすることができる。例えば、ローカルメモリ20は、ランダムアクセスメモリ(random access memory)(RAM)を含んでもよく、メインメモリ記憶装置22は、読み出し専用メモリ(read only memory)(ROM)、フラッシュメモリ、ハードドライブ、光学ディスクなどの書き換え可能不揮発性メモリを含んでもよい。
いくつかの実施形態では、プロセッサコア複合体18は、ローカルメモリ20及び/又はメインメモリ記憶装置22に記憶された命令を実行して、ソース画像データを生成することなどの動作を実行することができる。このように、プロセッサコア複合体18は、1つ以上の汎用マイクロプロセッサ、1つ以上の特定用途向けプロセッサ(application specific processors)(ASIC)、1つ以上のフィールドプログラマブルロジックアレイ(field programmable logic arrays)(FPGA)、又はそれらの任意の組み合わせを含むことができる。
図示したように、プロセッサコア複合体18はまた、ネットワークインタフェース24に動作可能に接続される。ネットワークインタフェース24を使用して、電子デバイス10は、ネットワーク及び/又は他の電子デバイスに通信可能に接続することができる。例えば、ネットワークインタフェース24は、電子デバイス10を、Bluetooth(登録商標)ネットワークなどのパーソナルエリアネットワーク(personal area network)(PAN)、802.11x Wi−Fi(登録商標)ネットワークなどのローカルエリアネットワーク(local area network)(LAN)、4G又はLTE(登録商標)セルラーネットワークなどの広域ネットワーク(wide area network)(WAN)に接続してもよい。このようにして、ネットワークインタフェース24は、電子デバイス10が画像データをネットワークに送信する、及び/又はネットワークから画像データを受信することを可能にすることができる。
加えて、図示したように、プロセッサコア複合体18は、電源26に動作可能に接続される。いくつかの実施形態では、電源26は、電子デバイス10内のプロセッサコア複合体18及び/又は他の構成要素を動作させるための電力を供給することができる。したがって、電源26は、充電式リチウムポリマー(lithium polymer)(Li−poly)バッテリ及び/又は交流(AC)電力変換器などの任意の好適なエネルギ源を含んでもよい。
更に、図示したように、プロセッサコア複合体18は、I/Oポート16及び入力デバイス14に動作可能に接続される。いくつかの実施形態では、I/Oポート16は、電子デバイス10が様々な他の電子デバイスとインタフェースすることを可能にすることができる。加えて、いくつかの実施形態では、入力デバイス14は、ユーザが電子デバイス10と双方向作用することを可能にすることができる。例えば、入力デバイス14は、ボタン、キーボード、マウス、トラックパッドなどを含んでもよい。加えて又は代わりに、電子ディスプレイ12は、そのスクリーン(例えば、電子ディスプレイ12の表面)をタッチする物体の発生及び/又は位置を検出することにより電子デバイス10へのユーザ入力を可能にするタッチ感知構成要素を含むことができる。
ユーザ入力を可能にすることに加えて、電子ディスプレイ12は、画像を(例えば、1つ以上の画像フレーム内に)表示することにより情報の視覚表現を提供することを容易にする。例えば、電子ディスプレイ12は、オペレーティングシステムのグラフィカルユーザインタフェース(graphical user interface)(GUI)、アプリケーションインタフェース、テキスト、静止画、又はビデオコンテンツを表示することができる。画像を表示することを容易にするために、電子ディスプレイ12は、1つ以上の表示画素を有するディスプレイパネルを含むことができる。加えて、それぞれの表示画素は、1つの色成分(例えば、赤色、青色、又は緑色)のルミナンスをそれぞれ制御する1つ以上の副画素を含むことができる。
上述したように、電子ディスプレイ12は、対応する画像データ(例えば、画像画素画像データ及び/又は表示画素画像データ)に少なくとも部分的に基づいて副画素のルミナンスを制御することにより画像を表示することができる。いくつかの実施形態では、画像データは、例えば、ネットワークインタフェース24及び/又はI/Oポート16を介して別の電子デバイスから受信することができる。加えて又は代わりに、画像データは、プロセッサコア複合体18及び/又は画像処理回路27によって生成することができる。
上述したように、電子デバイス10は、任意の好適な電子デバイスであってもよい。図示目的で、好適な電子デバイス10の一実施例、具体的にはハンドヘルドデバイス10Aを図2に示す。いくつかの実施形態では、ハンドヘルドデバイス10Aは、ポータブル電話機、メディアプレーヤ、パーソナルデータオーガナイザ、ハンドヘルドゲームプラットフォーム及び/又は同様なものとすることができる。例えば、ハンドヘルドデバイス10Aは、Apple Inc.から入手可能な任意のiPhone(登録商標)モデルなどのスマートフォンとすることができる。
図示したように、ハンドヘルドデバイス10Aは、エンクロージャ28(例えば、筐体)を含む。いくつかの実施形態では、エンクロージャ28は、内部構成要素を物理的破損から保護する及び/又は電磁干渉から遮蔽することができる。加えて、図示したように、エンクロージャ28は、電子ディスプレイ12を囲む。図示した実施形態では、電子ディスプレイ12は、アイコン32のアレイを有するグラフィカルユーザインタフェース(GUI)30を表示している。例として、アイコン32が電子ディスプレイ12の入力デバイス14又はタッチ感知構成要素のいずれかによって選択されると、アプリケーションプログラムを起動することができる。
更に、図示するように、入力デバイス14は、エンクロージャ28を通って開いている。上述したように、入力デバイス14は、ユーザがハンドヘルドデバイス10Aと双方向作用することを可能にすることができる。例えば、入力デバイス14は、ユーザに、ハンドヘルドデバイス10Aをアクティブ若しくは非アクティブにすること、ユーザインタフェースをホーム画面にナビゲーションすること、ユーザインタフェースをユーザが構成変更可能なアプリケーション画面にナビゲーションすること、音声認識機能、音量調節を提供すること、及び/又は振動モードと鳴動モードとの間で切り換えることを可能にすることができる。図示するように、I/Oポート16もまた、エンクロージャ28を通して開いている。いくつかの実施形態では、I/Oポート16は、例えば、外部デバイスに接続するためのオーディオジャックを含んでもよい。
更に例示するために、好適な電子デバイス10の別の実施例、具体的にはタブレットデバイス10Bを図3に示す。例示のために、タブレットデバイス10Bは、Apple Inc.から入手可能な任意のiPad(登録商標)モデルであってもよい。好適な電子デバイス10の更なる実施例、具体的にはコンピュータ10Cを図4に示す。例示のために、コンピュータ10Cは、Apple Inc.から入手可能な任意のMacbook(登録商標)又はiMac(登録商標)モデルであってもよい。好適な電子デバイス10の別の実施例、具体的には携帯時計10Dを図5に示す。例示するために、携帯時計10Dは、Apple Inc.から入手可能な任意のApple Watch(登録商標)モデルであってもよい。図示したように、タブレットデバイス10B、コンピュータ10C、及び携帯時計10Dもそれぞれ、電子ディスプレイ12、入力デバイス14、I/Oポート16、及びエンクロージャ28を含む。
上述したように、電子ディスプレイ12は、例えば、プロセッサコア複合体18及び/又は画像処理回路27から受信される画像データに少なくとも部分的に基づいて画像を表示してもよい。加えて、上述したように、画像データは、電子ディスプレイ12上に画像を表示するために使用される前に処理することができる。いくつかの実施形態では、ディスプレイパイプラインは、例えば、対応する画素位置に関連付けられたゲイン値に基づいて画像データを処理して、電子ディスプレイ12の知覚される画像品質を改善することを容易にすることができる。
図示目的で、ディスプレイパイプライン36を含む電子デバイス10の一部分34を、図6に示す。いくつかの実施形態では、ディスプレイパイプライン36は、電子デバイス10内の回路、電子ディスプレイ12内の回路、又はそれらの組み合わせによって実装することができる。例えば、ディスプレイパイプライン36は、プロセッサコア複合体18、画像処理回路27、電子ディスプレイ12内のタイミングコントローラ(timing controller)(TCON)、又はそれらの任意の組み合わせに含めることができる。
図示したように、電子デバイス10の一部分34はまた、画像データソース38、ディスプレイドライバ40、コントローラ42、及び外部メモリ44を含む。いくつかの実施形態では、コントローラ42は、ディスプレイパイプライン36、画像データソース38、及び/又はディスプレイドライバ40の動作を制御することができる。動作の制御を容易にするために、コントローラ42は、コントローラプロセッサ50及びコントローラメモリ52を含むことができる。いくつかの実施形態では、コントローラプロセッサ50は、コントローラメモリ52に記憶された命令を実行することができる。したがって、いくつかの実施形態では、コントローラプロセッサ50は、プロセッサコア複合体18、画像処理回路27、電子ディスプレイ12内のタイミングコントローラ、別個の処理モジュール、又はそれらの任意の組み合わせに含めることができる。加えて、いくつかの実施形態では、コントローラメモリ52は、ローカルメモリ20、メインメモリ記憶装置22、外部メモリ44、ディスプレイパイプライン36の内部メモリ46、別個の有形的非一時的コンピュータ可読媒体、又はそれらの任意の組み合わせに含めることができる。
図示した実施形態では、ディスプレイパイプライン36は、画像データソース38に通信可能に接続される。このようにして、ディスプレイパイプライン36は、例えば、ソース(例えば、RGB)形式で及び/又は矩形画像として、画像データソース38から電子ディスプレイ12上に表示されることになる画像に対応する画像データを受信することができる。いくつかの実施形態では、画像データソース38は、プロセッサコア複合体18、画像処理回路27、又はそれらの組み合わせに含めることができる。
上述したように、ディスプレイパイプライン36は、画像データソース38から受信した画像データを処理することができる。画像データを処理するために、ディスプレイパイプライン36は、1つ以上の画像データ処理ブロック54を含むことができる。例えば、図示した実施形態では、画像データ処理ブロック54は、副画素レイアウトリサンプラ(sub-pixel layout resampler)(SPLR)ブロック56を含む。いくつかの実施形態では、画像データ処理ブロック54は、環境適応画素(ambient adaptive pixel)(AAP)ブロック、動的画素バックライト(dynamic pixel backlight)(DPB)ブロック、白色点補正(white point correction)(WPC)ブロック、副画素レイアウト補償(sub-pixel layout compensation)(SPLC)ブロック、焼き付き補償(burn-in compensation)(BIC)ブロック、パネル応答補正(panel response correction)(PRC)ブロック、ディザリングブロック、副画素均一性補償(sub-pixel uniformity compensation)(SPUC)ブロック、コンテンツフレーム依存持続時間(content frame dependent duration)(CDFD)ブロック、環境光感知(ambient light sensing)(ALS)ブロック、又はそれらの任意の組み合わせを、加えて又は代わりに含むことができる。
以下により詳細に説明するように、ディスプレイパイプライン36は、外部メモリ44及び/又は内部メモリ46に記憶したデータに少なくとも部分的に基づいて、画像データソース38から受信した画像データを処理することができる。一般的に、内部メモリ46に対して、外部メモリ44にデータを記憶することにより、様々な実装に関連付けられたコスト及び/又は処理効率のトレードオフを引き起こすことがある。例えば、物理的サイズの制約条件に少なくとも部分的に起因して、外部メモリ44の記憶容量を増大することは、内部メモリ46の記憶容量を増大することより容易であり得る。そのように、外部メモリ44の記憶容量は、概して、内部メモリ46の記憶容量より大きくすることができる。
加えて、外部メモリ44及び内部メモリ46へのアクセスは、異なることがある。例えば、内部メモリ46は、ディスプレイパイプライン36による使用に専用とすることができる。換言すれば、内部メモリ46に記憶されたデータは、例えば、ディスプレイパイプライン36の処理効率を改善することを容易にすることができる低減した待ち時間で、ディスプレイパイプライン36によってより容易にアクセス可能である。比較すると、ディスプレイパイプライン36の外部であるため、ディスプレイパイプライン36は、ダイレクトメモリアクセス(DMA)チャネル58を介して外部メモリ44にアクセスすることができる。しかし、このようにしてデータアクセスを提供するために、ダイレクトメモリアクセスチャネル58は、実装に関連付けられたコストを増加する増大した帯域幅を有して実装され得る。更に、外部メモリ44が他の構成要素と共有される場合、データアクセス待ち時間、したがってディスプレイパイプライン36の処理効率に影響を及ぼすことがある。
処理後に、ディスプレイパイプライン36は、表示画素画像データなどの処理した画像データをディスプレイドライバ40に出力することができる。処理した画像データに少なくとも部分的に基づいて、ディスプレイドライバ40は、アナログ電気信号を電子ディスプレイ12の表示画素に適用して、1つ以上の画像フレーム内に画像を表示することができる。このようにして、ディスプレイパイプライン36は、動作して、電子ディスプレイ12上の情報の視覚表現を提供することを容易にすることができる。
図示目的で、ディスプレイパイプライン36を動作させるためのプロセス60の一実施形態を、図7に示す。一般的に、プロセス60は、画像画素画像データを受信すること(プロセスブロック62)と、画像画素画像データを処理して表示画素画像データを決定すること(プロセスブロック64)と、表示画素画像データを出力すること(プロセスブロック66)とを含む。いくつかの実施形態では、プロセス60は、ディスプレイパイプライン36内に形成された回路接続に基づいて実施することができる。加えて又は代わりに、いくつかの実施形態では、プロセス60は、コントローラプロセッサ50などの処理回路を用いてコントローラメモリ52などの有形的非一時的コンピュータ可読媒体に記憶された命令を実行することにより実施することができる。
上述したように、ディスプレイパイプライン36は、画像データソース38から、画像内の点(例えば、画像画素)の色成分の目標ルミナンスを示す画像画素画像データを受信することができる(プロセスブロック62)。いくつかの実施形態では、画像画素画像データは、矩形画像に対応することができる。加えて、いくつかの実施形態では、画像画素画像データは、ソース形式とすることができる。例えば、ソース形式がRGB形式である場合、画像画素画像データは、対応する画素位置での赤色成分の目標ルミナンス、青色成分の目標ルミナンス、及び緑色成分の目標ルミナンスを示すことができる。
加えて、コントローラ42は、ディスプレイパイプライン36に、画像画素画像データを処理して、電子ディスプレイ12の表示画素の色成分の目標ルミナンスを示す表示画素画像データを決定し(プロセスブロック64)、表示画素画像データをディスプレイドライバ40に出力する(プロセスブロック66)ように命令することができる。表示画素画像データを決定するために、ディスプレイパイプライン36は、ソース形式から表示形式に画像データを変換することができる。いくつかの実施形態では、ディスプレイパイプライン36は、電子ディスプレイ12内の副画素のレイアウトに少なくとも部分的に基づくことができる表示形式を決定することができる。例えば、一部の表示画素が緑及び赤の副画素を含み、他の表示画素が緑及び青の副画素を含む場合、表示形式は、緑−赤及び緑−青(green-red and green-blue)(GRGB)形式とすることができる。
図示目的で、副画素レイアウトリサンプラブロック56を含むディスプレイパイプライン36の一部分68を、図8に示す。図示したように、副画素レイアウトリサンプラブロック56は、現在の画像画素に対応する画像画素画像データ70を受信し、現在の表示画素に対応する表示画素画像データ72を出力する。いくつかの実施形態では、副画素レイアウトリサンプラブロック56は、別の画像データ処理ブロック54及び/又は画像データソース38から画像画素画像データ70を受信することができる。加えて、いくつかの実施形態では、副画素レイアウトリサンプラブロック56は、別の画像データ処理ブロック54及び/又はディスプレイドライバ40に表示画素画像データ72を出力することができる。
表示画素画像データ72を生成することを容易にするために、副画素レイアウトリサンプラブロック56は、デガンマ(de-gamma)ブロック78、エッジ検出ブロック80、フィルタブロック82、ゲイン展開ブロック84、境界検出ブロック86、及びリガンマ(re-gamma)ブロック88を含むことができる。いくつかの実施形態では、画像画素画像データ70は、ガンマ(例えば、非線形)ドメイン内とすることができる。その後の処理を容易にするために、デガンマブロック78は、画像画素画像データ70を線形ドメインに変換することができる。
加えて、エッジ検出ブロック80は、現在の表示画素のオフセット副画素で発生するエッジの可能性及び/又はオフセット副画素でのエッジの予想される方向などのエッジパラメータを決定することができる。いくつかの実施形態では、エッジ検出ブロック80は、オフセット副画素の周囲のエリアの傾斜などのオフセット副画素の特性に少なくとも部分的に基づいて、エッジパラメータを決定することができる。特性を決定することを容易にするために、エッジ検出ブロック80は、特性を示す統計値を決定することができる。例えば、エッジ検出ブロック80は、オフセット副画素の周囲の傾斜を示し、したがってエッジパラメータを決定するために使用し得る、オフセット副画素の周囲の画像画素ブロック間の差の測定値(例えば、差分絶対値の和)を決定することができる。
いくつかの実施形態では、画像データバッファ76は、例えば、現在の画像画素に隣接する画素位置での他の画像画素に対応する画像データを記憶することができる。換言すれば、フレームバッファは、オフセット副画素の周囲の画像画素ブロックに対応する画像データを記憶することができる。したがって、エッジパラメータを決定することを容易にするために、副画素レイアウトリサンプラブロック56は、画像データバッファ76に通信可能に接続することができる。
更に、フィルタブロック82は、エッジパラメータに少なくとも部分的に基づいて、ソース(例えば、RGB)形式から表示(例えば、GRGB)形式に画像画素画像データを変換することができる。表示形式に変換するために、いくつかの実施形態では、フィルタブロック82は、フィルタパラメータを決定して画像画素画像データ70に適用することができる。例えば、フィルタブロック82は、RGBの画像画素画像データ70をフィルタリング(例えば、サンプリング)して、緑−赤(green-red)(GR)又は緑−青(green-blue)(GB)形式の表示画素画像データ72を生成することができる。換言すれば、フィルタブロック82は、オフセット副画素に対応する画像データ及び現在の表示画素の同じ場所に配置された副画素に対応する画像データを決定することができる。
いくつかの実施形態では、フィルタブロック82は、現在の画像画素の現在の画素位置に関連付けられたゲイン値に少なくとも部分的に基づいて、画像画素画像データ70に適用されることになるフィルタパラメータを決定することができる。加えて、フィルタリングした後で、フィルタブロック82は、現在の画素位置に関連付けられたゲイン値を表示画素画像データ72に適用することができる。いくつかの実施形態では、ディスプレイパイプライン36は、画素位置に関連付けられたゲイン値をアルゴリズムで計算することができる。
加えて又は代わりに、ゲイン値は、予め設定してゲインマップにより記憶することができる。いくつかの実施形態では、非圧縮ゲインマップは、それぞれの画素位置をゲイン値のセットに明示的に関連付ける(例えば、マッピングする)ことができる。画素位置に関連付けられたゲイン値のセットは、画素位置での表示画素のそれぞれの副画素に対して1つのゲイン値を含むことができる。例えば、表示画素が赤の副画素、青の副画素、及び緑の副画素を含むとき、その画素位置に関連付けられたゲイン値のセットは、赤色のゲイン値、青色のゲイン値、及び緑色のゲイン値を含むことができる。加えて、表示画素が緑の副画素及び赤の副画素を含むとき、その画素位置に関連付けられたゲイン値のセットは、赤色のゲイン値及び緑色のゲイン値を含むことができる。更に、表示画素が緑の副画素及び青の副画素を含むとき、その画素位置に関連付けられたゲイン値のセットは、青色のゲイン値及び緑色のゲイン値を含むことができる。
非圧縮ゲインマップがゲイン値セットをそれぞれの表示画素に対応する画素位置に少なくとも関連付けるため、非圧縮ゲインマップのサイズは、電子ディスプレイ12の解像度に基づいて変化する。換言すれば、非圧縮ゲインマップのサイズは、特に、電子ディスプレイの解像度が増大し続けるに従って、相対的に大きくなることがある。したがって、いくつかの実施形態では、非圧縮ゲインマップは、外部メモリ44に記憶して、ダイレクトメモリアクセスチャネル58を介してアクセスすることができる。
しかし、上述したように、ディスプレイパイプライン36に外部メモリ44へのアクセスを提供することにより、実装に関連付けられたコスト及び/又は処理効率に影響を及ぼすことがある。したがって、いくつかの実施形態では、それぞれの画素位置に関連付けられたゲイン値を示すデータは、内部メモリ46に記憶することができる。例えば、図示した実施形態では、内部メモリ46は、対応する非圧縮ゲインマップを圧縮することにより決定することができる圧縮ゲインマップ90、及び対応する(例えば、上部、下部、左側、又は右側)表示領域境界に沿った表示画素に適用されることになるゲイン値をそれぞれ示す1つ以上のプログラム可能な境界ゲイン値インジケータ92を記憶する。
したがって、現在の画素位置に関連付けられたゲイン値を決定することを容易にするために、ゲイン展開ブロック84は、圧縮ゲインマップ90を展開することができる。加えて、境界検出ブロック86は、現在の表示画素が表示領域の境界に沿っているか否かを判定して、現在の表示画素が境界に沿っているときにプログラム可能な境界ゲイン値インジケータ92のうちの対応する1つを決定することができる。上述したように、ゲイン値に少なくとも部分的に基づいて、副画素レイアウトリサンプラブロック56は、画像画素画像データ70を処理して、表示画素画像データ72を決定することができる。線形ドメインで決定されたため、リガンマブロック88は、表示画素画像データ72をガンマドメインに変換することができる。加えて、表示形式であるため、副画素レイアウトリサンプラブロック56は、表示画素画像データ72をソース形式にアップスケーリングすることができる。
したがって、表示画素画像データ72を決定することを容易にするため、圧縮ゲインマップ90及びプログラム可能な境界ゲイン値インジケータ92を、決定して内部メモリ46に記憶することができる。いくつかの実施形態では、設計デバイスは、対応する非圧縮ゲインマップに少なくとも部分的に基づいて、圧縮ゲインマップ90を決定することができる。加えて、いくつかの実施形態では、設計デバイスは、ディスプレイパイプライン36及び/又は電子ディスプレイ12の配置前に、圧縮ゲインマップ90及びプログラム可能な境界ゲイン値インジケータ92を内部メモリ46に記憶することができる。
図示目的で、内部メモリ46に通信可能に接続された設計デバイス94の一実施形態を、図9に示す。加えて、圧縮ゲインマップ90の一実施例が、内部メモリ46に記憶されている。例示的な圧縮ゲインマップ90は、単に例示することを意図しているに過ぎず、限定するものではないことを理解されたい。換言すれば、他の実施形態における圧縮ゲインマップ90は、例えば、設計デバイス94によって実施される圧縮技術に基づいて、異なってもよい。
上述したように、設計デバイス94は、圧縮ゲインマップ90を決定して内部メモリ46に記憶することができる。圧縮ゲインマップ90を決定することを容易にするために、設計デバイス94は、デバイスプロセッサ96及びデバイスメモリ98を含むことができる。いくつかの実施形態では、デバイスプロセッサ96は、デバイスメモリ98に記憶された命令を実行することができる。したがって、いくつかの実施形態では、デバイスプロセッサ96は、プロセッサコア複合体18、画像処理回路27、電子ディスプレイ12内のタイミングコントローラ、コントローラプロセッサ50、別個の処理モジュール、又はそれらの任意の組み合わせに含めることができる。加えて、いくつかの実施形態では、デバイスメモリ98は、ローカルメモリ20、メインメモリ記憶装置22、外部メモリ44、内部メモリ46、コントローラメモリ52、別個の有形的非一時的コンピュータ可読媒体、又はそれらの任意の組み合わせに含めることができる。
図示した実施形態では、圧縮ゲインマップ90は、ランマップ100、位置マップ102、ゲイン値マップ104、及び内部メモリ46のプログラム可能なレジスタ106に記憶することができる1つ以上のインジケータを含む。いくつかの実施形態では、ランマップ100は、ゲインマップ行の数、したがって、それぞれの行ランに含まれた画素位置行の数を示すことができる。以下により詳細に説明するように、単位ゲイン値のみをそれぞれ含む1つ以上の連続したゲインマップ行は、コード化されない行ランにグループ化することができる。加えて、少なくとも1つの中間ゲイン値又はゼロゲイン値をそれぞれ含む1つ以上の連続したゲインマップ行は、コード化された行ランにグループ化することができる。したがって、以下により詳細に説明するように、画素位置を含む行ランは、ランマップ100に少なくとも部分的に基づいて決定することができる。
いくつかの実施形態では、開始行ランインジケータ108は、行ランがコード化された行ランかコード化されない行ランかを示すことができる。例えば、ゼロの開始行ランインジケータ108は、行ランがコード化されたランであることを示すことができ、1の開始行ランインジケータ108は、行ランがコード化されないランであることを示すことができる、又はその逆も同様である。いくつかの実施形態では、開始行ランインジケータ108は、それぞれの行ランに関連付けて、対応する行ランの分類を明示的に示すことができる。圧縮ゲインマップ90のサイズを低減することを容易にするために、他の実施形態では、行ランがコード化された行ランとコード化されない行ランとの間で交互になることができるとき、開始行ランインジケータ108は、第1(例えば、最上位)の行ランのみに関連付けることができる。したがって、以下により詳細に説明するように、行ランの分類、したがって、画素位置を含むゲインマップ行は、ランマップ100及び開始行ランインジケータ108に少なくとも部分的に基づいて決定することができる。
加えて、いくつかの実施形態では、位置マップ102は、それぞれのコード化された行のゲインランに含まれた画素位置を示すことができる。以下により詳細に説明するように、少なくとも1つの中間(例えば、ゼロと1との間の)ゲイン値をそれぞれ含む1つ以上の連続したゲインマップ入力は、中間ゲインランにグループ化することができる。加えて、ゼロゲイン値のみ又は単位ゲイン値のみをそれぞれ含む1つ以上の連続したゲインマップ入力は、位置ゲインランにグループ化することができる。換言すれば、位置ゲインランは、ゼロゲインラン又は単位ゲインランとすることができる。
ゲインランに含まれた画素位置を決定することを容易にするために、いくつかの実施形態では、位置マップ102は、ゲインランに含まれた画素位置の数を示すことができる。加えて、いくつかの実施形態では、コード化された行は、位置ゲインランと中間ゲインランとの間で交互になることができる。更に、いくつかの実施形態では、位置マップ102は、第2のゲインランに含まれた画素位置に対する第1のゲインランに含まれた画素位置を示すことができる。したがって、以下により詳細に説明するように、画素位置を含むゲインランは、位置マップ100に少なくとも部分的に基づいて決定することができる。
いくつかの実施形態では、位置ゲイン値インジケータ110は、対応する位置ラン内のそれぞれの画素位置に関連付けられたゲイン値を示すことができる。例えば、ゼロの位置ゲイン値インジケータ110は、対応する位置ラン内の画素位置に関連付けられたそれぞれ(例えば、赤色、緑色、及び/又は青色)のゲイン値がゼロであることを示すことができる。加えて、1の位置ゲイン値インジケータ110は、対応する位置ラン内の画素位置に関連付けられたそれぞれのゲイン値が1であることを示すことができる。いくつかの実施形態では、位置ゲイン値インジケータ110は、それぞれの位置ランに関連付けることができる。したがって、以下により詳細に説明するように、位置ラン内の画素位置に関連付けられたゲイン値は、対応する位置ゲイン値インジケータ110に少なくとも部分的に基づいて決定することができる。
更に、いくつかの実施形態では、ゲイン値マップ104は、それぞれの中間ゲインラン内の画素位置に関連付けられたゲイン値を示すことができる。いくつかの実施形態では、画素位置に関連付けられたゲイン値セットは、画素位置での表示画素の副画素当たり1つのゲイン値を含むことができる。例えば、中間ゲインラン内の画素位置での表示画素が3つの副画素を含む場合、ゲイン値マップ104は、画素位置を3つのゲイン値に関連付けることができる。加えて、中間ゲインラン内の画素位置での表示画素が同じ場所に配置された副画素及びオフセット副画素を含む場合、ゲイン値マップ104は、画素位置を同じ場所に配置されたゲイン値及びオフセットゲイン値に関連付けることができる。
加えて又は代わりに、画素位置に関連付けられたゲイン値セットは、画素位置での表示画素の色成分当たり1つのゲイン値を含むことができる。例えば、中間ゲインラン内の画素位置での表示画素が赤の副画素及び緑の副画素を含む場合、ゲイン値マップ104は、画素位置を赤色のゲイン値及び緑色の副画素に関連付けることができる。加えて、中間ゲインラン内の画素位置での表示画素が青の副画素及び緑の副画素を含む場合、ゲイン値マップ104は、画素位置を青色のゲイン値及び緑色の副画素に関連付けることができる。したがって、以下により詳細に説明するように、中間ゲインラン内の画素位置に関連付けられたゲイン値は、ゲイン値マップ104に少なくとも部分的に基づいて決定することができる。
設計デバイス94を動作させるためのプロセス112の一実施形態を、図10に示す。一般的に、プロセス112は、非圧縮ゲインマップを決定することと(プロセスブロック114)、圧縮ゲインマップを決定することと(プロセスブロック116)、圧縮ゲインマップを記憶することと(プロセスブロック118)を含む。いくつかの実施形態では、プロセス112は、デバイスプロセッサ96などの処理回路を用いてデバイスメモリ98などの有形的非一時的コンピュータ可読媒体に記憶された命令を実行することにより実施することができる。
したがって、いくつかの実施形態では、設計デバイス94は、非圧縮ゲインマップを決定することができる(プロセスブロック114)。上述したように、非圧縮ゲインマップは、それぞれの画素位置をゲイン値セットに明示的に関連付ける(例えば、マッピングする)ことができる。加えて、いくつかの実施形態では、非圧縮ゲインマップは、電子ディスプレイ12の副画素レイアウト、画像データソース38から受信した画像画素画像データ70に対応する画像の形状、及び/又は電子ディスプレイ12の表示領域形状に少なくとも部分的に基づいて決定することができる。
図示目的で、例示的な矩形画像フレーム120を、図11に示す。図示したように、矩形画像フレーム120は、90度の4つの角124によって接続された4つの直線境界125を含む。例えば、矩形画像フレーム120、左上の90度の角124Aで接続された上部直線境界125A及び左側直線境界125B。矩形画像フレーム120を表示するために、ディスプレイパイプライン36は、矩形画像フレーム120内のそれぞれの画像画素に対応する画像画素画像データ70を受信することができる。
図示目的で、矩形画像フレーム120の左上部分122内の画像画素126を、図12に示す。図示した実施形態では、それぞれの画像画素126は、画素位置に対応する。上述したように、画像画素126に対応する画像画素画像データ70は、画像内の画素位置での目標ルミナンスを示すことができる。例えば、第1の画像画素126Aに対応する画像画素画像データ70は、第1の画素位置での赤色成分の目標ルミナンス、青色成分の目標ルミナンス、及び緑色成分の目標ルミナンスを示すことができる。
しかし、上述したように、異なる電子ディスプレイ12は、異なる表示領域形状を有することができる。図示目的で、非矩形表示領域128の一実施例を、図13に示す。図示した表示領域は、単に例示することを意図しているに過ぎず、限定するものではないことを理解されたい。換言すれば、他の電子ディスプレイ12に実装される非矩形表示領域は、形状が異なってもよい。例えば、電子ディスプレイ12は、円形状(例えば、非矩形)の表示領域を有して実装することができる。
図示したように、非矩形表示領域128は、丸みのある(例えば、曲線状の)境界130によって接続された複数の直線境界134を含む。例えば、非矩形表示領域128は、左上の丸みのある境界130Aを介して接続された上部直線境界134A及び左側直線境界134Bを含む。いくつかの実施形態では、非矩形表示領域128は、それにもかかわらず90度の1つ以上の角132を含むことができる。
上述したように、電子ディスプレイ12は、対応する画像データに基づいて画像を表示することができる。例えば、電子ディスプレイ12は、画像画素画像データ70を処理することにより生成された表示画素画像データ72に基づいて、その表示画素のルミナンスを制御することにより画像を表示することができる。したがって、非矩形表示領域128は、電子ディスプレイ12に実装された表示画素に対応する画素位置によって画定することができる。
図示目的で、非矩形表示領域128の左上部分138内の表示画素136を、図13に示す。図示した表示画素136は、単に例示することを意図しているに過ぎず、限定するものではないことを理解されたい。換言すれば、他の電子ディスプレイ12内の表示画素136は、異なる副画素レイアウトで実装することができる。
図示した実施形態では、表示画素136は、行及び列に構成される。例えば、第1の表示画素行は、第1の表示画素136A、第2の表示画素136B、第3の表示画素136Cなどを含む。加えて、第2の表示画素行は、第4の表示画素136D、第5の表示画素136E、第6の表示画素136Fなどを含む。
上述したように、表示画素136は、対応する色成分のルミナンスをそれぞれ制御する1つ以上の副画素を含むことができる。図示した実施形態では、表示画素136は、赤の副画素138、緑の副画素140、及び青の副画素142を含む。加えて、図示した実施形態では、非矩形表示領域128内に完全に含まれた表示画素136は、2つの副画素、すなわち、緑の副画素140及び交互に赤の副画素138又は青の副画素142をそれぞれ含む。例えば、第2の表示画素行に沿って、第4の表示画素136Dは、青の副画素142及び緑の副画素140を含み、第5の表示画素136Eは、赤の副画素138及び緑の副画素140を含み、第6の表示画素136Fは、赤の副画素138及び緑の副画素140を含む、などとなっている。
非矩形表示領域128を実装するために、丸みのある境界130に沿った一部の表示画素136は、より少ない副画素を含むことができる。図示した実施形態では、そのような表示画素136は、1つの副画素、すなわち、交互に赤の副画素138又は青の副画素142をそれぞれ含むことができる。例えば、左上の丸みのある境界130Aのために、第1の表示画素136Aは、青の副画素142のみを含み、第2の表示画素136Bは、赤の副画素138のみを含み、第3の表示画素136Cは、青の副画素142のみを含む。
いずれの場合でも、上述したように、それぞれの表示画素136は、画素位置、したがって、画像データソース38から受信した画像画素に対応することができる。図示した実施形態に関して、それぞれの表示画素136は、その緑の副画素140と同じ場所に配置された画像画素126、又は対応する緑の副画素140が別の方法で配置されるであろう場所に対応することができる。換言すれば、緑の副画素140は、同じ場所に配置された副画素とすることができ、赤の副画素138及び青の副画素142は、オフセット副画素である。加えて、図示した実施形態では、オフセット副画素(例えば、赤の副画素138又は青の副画素142)は、同じ場所に配置された副画素(例えば、緑の副画素140)の右下にオフセットしている。他の実施形態では、オフセット副画素は、同じ場所に配置された副画素の右上、左上、又は左下にオフセットすることができる。
画像フレームを表示するために、それぞれの表示画素136のルミナンスは、その画素位置での画像画素126に対応する画像画素画像データ70に少なくとも部分的に基づいて制御することができる。しかし、いくつかの例では、画像フレームの形状は、電子ディスプレイ12の表示領域形状とは異なることができる。そのような例では、1つ以上の画像画素126は、表示領域の外側の画素位置に対応することができる。例えば、矩形画像フレーム120内の第1の画像画素126Aは、非矩形表示領域128の外側の画素位置143に対応することができる。換言すれば、表示画素136は、画像画素126に対応する画素位置で電子ディスプレイ12に実装されなくてもよい。
したがって、異なる形状を有する表示領域上に画像フレームを表示することを容易にするために、画像フレームは、例えば、ブラックマスクを適用することにより、表示する前に調整することができる。しかし、上述したように、表示画素136は、色ブレンドに依拠して、異なる色の範囲の知覚を可能にすることができる。換言すれば、単に表示領域の外側の画素位置に対応する画像画素を無視することにより、いくつかの例では、そうでなければ表示画素136がブレンドされるであろう隣接する表示画素136が存在しないため、丸みのある境界130に沿った表示画素136での知覚可能なエイリアシングをもたらすことがある。更に、そうでなければ表示画素136がブレンドされるであろう隣接する表示画素136が存在しないため、直線境界134に沿った表示画素136で知覚可能な色縁が発生することがある。
知覚される画像品質を改善することを容易にするために、上述したように、画像画素画像データ70は、対応する画素位置に関連付けられたゲイン値に基づいて処理することができる。加えて、上述したように、設計デバイス94は、それぞれの画素位置をゲイン値セットに明示的に関連付ける(例えば、マッピングする)非圧縮ゲインマップを決定することができる。したがって、非圧縮ゲインマップを決定するために、設計デバイス94は、それぞれの画素位置、したがって、画素位置でのそれぞれの副画素位置に関連付けられた1つ以上のゲイン値を決定することができる。
図示目的で、ゲイン値を副画素位置に関連付けるためのプロセス144の一実施形態を、図15に示す。一般的に、プロセス144は、表示領域の特性を決定することと(プロセスブロック146)、アンチエイリアシング領域を決定することと(プロセスブロック148)、副画素位置を決定することと(プロセスブロック150)、副画素位置がアンチエイリアシング領域内にあるか否かを判定することと(判定ブロック152)を含む。副画素位置がアンチエイリアシング領域内にある場合に、プロセス144は、副画素位置と表示領域の境界との間の最短距離を判定することと(プロセスブロック154)、最短距離に基づいて決定されたゲイン値を副画素位置に関連付けることと(プロセスブロック156)を含む。副画素位置がアンチエイリアシング領域内にない場合に、プロセス144は、副画素位置が表示領域内にあるか否かを判定することと(判定ブロック158)、副画素が表示領域内にあるときに単位ゲイン値を副画素位置に関連付けることと(プロセスブロック160)、副画素が表示領域内にないときにゼロのゲイン値を副画素位置に関連付けることと(プロセスブロック162)を含む。いくつかの実施形態では、プロセス144は、デバイスプロセッサ96などの処理回路を用いてデバイスメモリ98などの有形的非一時的コンピュータ可読媒体に記憶された命令を実行することにより実施することができる。
したがって、いくつかの実施形態では、設計デバイス94は、電子ディスプレイ12に実装された表示領域の予想される特性を決定することができる(プロセスブロック146)。いくつかの実施形態では、表示領域の特性は、副画素レイアウト、表示領域の形状、その境界の位置、表示領域内の副画素位置、及び/又は同様なものを含むことができる。一般的に、電子ディスプレイ12の特性は、固定することができる。したがって、いくつかの実施形態では、表示領域の予想される特性を決定して、例えば、製造業者によって1つ以上の入力デバイスを介して、設計デバイス94に入力することができる。加えて又は代わりに、設計デバイス94は、電子ディスプレイ12を分析することにより、表示領域の予想される特性を決定することができる。
知覚可能なエイリアシングを生成する可能性を低減するために、設計デバイス94は、表示領域の境界に沿った1つ以上のアンチエイリアシング領域を決定することができる(プロセスブロック148)。上述したように、知覚可能なエイリアシングは、表示領域の丸みのある境界に沿って発生することがある。したがって、いくつかの実施形態では、設計デバイス94は、丸みのある境界に隣接する1つ以上の画素位置での副画素位置を含む、表示領域の丸みのある境界に沿ったアンチエイリアシング領域を決定することができる。
図示目的で、非矩形表示領域128の左上の丸みのある角130Aに沿ったアンチエイリアシング領域164の2つの実施例を、図16及び図17に示す。具体的には、非矩形表示領域128の外側の副画素位置166を含む第1のアンチエイリアシング領域164Aを、図16に示す。一方、非矩形表示領域128の内側の副画素位置166を含む第2のアンチエイリアシング領域164Bを、図17に示す。例示したアンチエイリアシング領域164は、単に例示することを意図しているに過ぎず、限定するものではないことを理解されたい。換言すれば、他の実施形態は、異なる形状及び/又は異なる数の副画素位置を有するアンチエイリアシング領域164を実装することができる。
図16に関して、第1のアンチエイリアシング領域164Aは、それぞれが左上の丸みのある角130Aから固定閾値距離内の副画素166を含む。いくつかの実施形態では、固定閾値距離は、隣接する画素位置間の予想される距離、隣接する画像画素126間の予想される距離、又は隣接する表示画素136内の同じ場所に配置された副画素間の予想される距離とすることができる。したがって、いくつかの実施形態では、丸みのある表示領域境界から一定距離内の副画素位置166を含むように、アンチエイリアシング領域164を決定することができる。
加えて、図17に関して、第2のアンチエイリアシング領域164Bは、それぞれが左上の丸みのある角130Aから可変距離の閾値距離内の副画素位置166を含む。いくつかの実施形態では、距離閾値は、丸みのある表示領域境界の湾曲に少なくとも部分的に基づいて、変化することができる。例えば、左上の丸みのある角130Aの形状及び副画素レイアウトに起因して、可変距離閾値は、左上の丸みのある角130Aの中央部分でより大きくすることができる。したがって、いくつかの実施形態では、丸みのある表示領域境界から可変距離内の副画素位置166を含むように、アンチエイリアシング領域164を決定することができる。
いくつかの実施形態では、アンチエイリアシング領域164は、含まれる副画素位置166によって示すことができる。したがって、その後にアンチエイリアシング領域164を識別することを容易にするために、設計デバイスは、アンチエイリアシング領域164の特性を予め設定して、その含まれる副画素位置をデバイスメモリ98などのメモリ構成要素に記憶することができる。同様な方法で、設計デバイス94は、それぞれの丸みのある表示領域境界に沿ったアンチエイリアシング領域164を決定することができる。
図15のプロセス144に戻って、設計デバイス94は、副画素位置を決定することができる(プロセスブロック150)。上述したように、表示画素136は、1つ以上の副画素を含むことができる。したがって、表示画素136に対応する画素位置は、1つ以上の副画素のそれぞれに対応する副画素位置を含むことができる。いくつかの実施形態では、副画素位置を決定して、例えば、製造業者によって1つ以上の入力デバイスを介して、設計デバイス94に入力することができる。加えて又は代わりに、設計デバイス94は、電子ディスプレイ12及び/又は予想される画像画素画像データ70を分析することにより、副画素位置を決定することができる。
設計デバイス94は、副画素位置がアンチエイリアシング領域164内であることが予想されるか否かを判定することができる(判定ブロック152)。上述したように、いくつかの実施形態では、アンチエイリアシング領域164は、デバイスメモリ98などのメモリ構成要素に記憶することができる、含まれる副画素位置によって示すことができる。したがって、そのような実施形態では、設計デバイス94は、メモリ構成要素をポーリングして、アンチエイリアシング領域164に含まれる副画素位置を決定し、副画素位置をアンチエイリアシング領域164に含まれた副画素位置と比較することにより、副画素位置がアンチエイリアシング領域164内であることが予想されるか否かを判定することができる。加えて又は代わりに、設計デバイス94は、アンチエイリアシング領域164に関連付けられた距離閾値に少なくとも部分的に基づいて、副画素位置がアンチエイリアシング領域164内であることが予想されるか否かを判定することができる。
アンチエイリアシング領域164内でない場合、設計デバイス94は、副画素位置が表示領域内であることが予想されるか否かを判定することができる(判定ブロック158)。上述したように、いくつかの実施形態では、表示領域は、デバイスメモリ98などのメモリ構成要素に記憶することができる、含まれる副画素位置によって示すことができる。したがって、そのような実施形態では、設計デバイス94は、メモリ構成要素をポーリングして、表示領域に含まれる副画素位置を決定し、副画素位置を表示領域に含まれた副画素位置と比較することにより、副画素位置が表示領域内であることが予想されるか否かを判定することができる。
副画素位置が表示領域内であることが予想されない場合、設計デバイス94は、副画素が副画素位置に電子ディスプレイ12に実装されていることが予想されないことを決定する、したがって、副画素位置をゼロのゲイン値に関連付けることができる(プロセスブロック162)。一方、副画素位置が表示領域内であることが予想される場合、設計デバイス94は、副画素が副画素位置に電子ディスプレイ12に実装されていることが予想されることを決定する、したがって、副画素位置を単位ゲイン値に関連付けることができる(プロセスブロック160)。このようにして、設計デバイス94は、適用されると表示領域の外側の副画素位置に対応する画像データに適用されるブラックマスクとなるゲイン値を決定することができる。
副画素位置がアンチエイリアシング領域164内であることが予想される場合、設計デバイス94は、副画素位置と表示領域の境界との間の予想される距離を決定することができる(プロセスブロック154)。上述したように、いくつかの実施形態では、表示領域の予想される特性は、予め設定して、デバイスメモリ98などのメモリ構成要素に記憶することができる。したがって、そのような実施形態では、設計デバイス94は、メモリ構成要素をポーリングして、表示領域境界の予想される位置を決定し、副画素位置と表示領域境界の予想される位置との間の相対距離に少なくとも部分的に基づいて、副画素位置と表示領域境界との間の予想される距離を決定することができる。
表示領域境界からの最短距離に少なくとも部分的に基づいて、設計デバイス94は、ゲイン値を副画素位置に関連付けることができる(プロセスブロック156)。いくつかの実施形態では、ゲイン値は、副画素と表示領域境界との間の最短距離に反比例することができる。換言すれば、副画素と表示領域境界との間の予想される距離が増大するに従って、ゲイン値を減少させることができる。このようにして決定されたゲイン値を適用することにより、副画素を相対的に線形に暗くすることができ、これにより、表示領域境界の丸みのある部分に沿った知覚可能なエイリアシングを生成する可能性を低減することができる。
同様な方法で、設計デバイス94は、ゲイン値をそれぞれの副画素位置、したがって、それぞれの画素位置に関連付けることができる。上述したように、非圧縮ゲインは、ゲイン値セットをそれぞれの画素位置に明示的に関連付ける(例えば、マッピングする)ことができる。したがって、設計デバイス94は、それぞれの副画素位置に関連付けられたゲイン値に基づいて非圧縮ゲインマップを決定することができる。
図示目的で、非圧縮ゲインマップ170の一実施例を、図18に示す。説明した非圧縮ゲインマップ170は、単に例示することを意図しているに過ぎず、限定するものではないことを理解されたい。換言すれば、他の実施形態は、他の形態の非圧縮ゲインマップ170を実装することができる。
いずれの場合でも、図示した実施形態では、非圧縮ゲインマップ170は、複数のゲインマップ行172に構成されたゲインマップ入力174を含む。それぞれのゲインマップ入力174は、画素位置に対応する、したがって、画素位置をゲイン値セットに明示的にマッピングすることができる。例えば、第1のゲインマップ入力174Aは、最初の画像画素126Aの画素位置143をゲイン値セットに関連付けることができる。上述したように、画素位置は、1つ以上の副画素位置を含むことができ、ゲイン値セットは、画素位置でのそれぞれの副画素位置に対応するゲイン値を含むことができる。換言すれば、ゲインマップ入力174は、ゲイン値を対応する画素位置でのそれぞれの副画素位置に明示的にマッピングすることができる。
上述したように、非圧縮ゲインマップ170のサイズは、電子ディスプレイ12の解像度に依存し得、したがって、相対的に大きくなり得る。したがって、いくつかの実施形態では、設計デバイス94は、非圧縮ゲイン170を外部メモリ44に記憶して、それによって、ダイレクトメモリアクセスチャネル58を介してディスプレイパイプライン36に非圧縮ゲイン170へのアクセスを提供することができる。しかし、上述したように、ダイレクトメモリアクセスチャネル58を介してディスプレイパイプライン36に非圧縮ゲイン170へのアクセスを提供することにより、実装に関連付けられたコスト(例えば、ダイレクトメモリアクセスチャネル58の帯域幅を増大するための)及び/又はディスプレイパイプライン36の処理効率に影響を及ぼすことがある。
したがって、図10のプロセス112に戻って、設計デバイス94は、圧縮ゲインマップ90を決定することができる(プロセスブロック116)。いくつかの実施形態では、圧縮ゲインマップ90は、それぞれの画素位置をゲイン値セットに間接的に関連付けることができる。例えば、ディスプレイパイプライン36は、対応する非圧縮ゲインマップ170を決定するために圧縮ゲインマップ90を展開することにより、画素位置に関連付けられたゲイン値セットを決定することができる。したがって、いくつかの実施形態では、設計デバイス94は、対応する非圧縮ゲインマップ170に少なくとも部分的に基づいて、圧縮ゲインマップ90を決定することができる。
図示目的で、圧縮ゲインマップ90を決定するためのプロセス176の一実施形態を、図19に示す。一般的に、プロセス176は、ランマップを決定することと(プロセスブロック178)、位置マップを決定することと(プロセスブロック180)、ゲイン値マップを決定することと(プロセスブロック182)を含む。いくつかの実施形態では、プロセス176は、デバイスプロセッサ96などの処理回路を用いてデバイスメモリ98などの有形的非一時的コンピュータ可読媒体に記憶された命令を実行することにより実施することができる。
したがって、いくつかの実施形態では、設計デバイス94は、非圧縮ゲインマップ170に基づいてランマップ100を決定することができる(プロセスブロック178)。上述したように、ランマップ100は、それぞれの行ランに含まれたゲインマップ行172の数を示す。加えて、上述したように、同じ分類(例えば、コード化された行又はコード化されない行)を有する1つ以上の連続したゲインマップ行172は、行ラン(例えば、コード化された行ラン又はコード化されない行ラン)にグループ化することができる。
ランマップ100を決定するためのプロセス184の一実施形態を、図20に示す。一般的に、プロセス184は、それぞれのゲインマップ入力を分類することと(プロセスブロック185)、それぞれのゲインマップ行をコード化された行又はコード化されない行として分類することと(プロセスブロック186)、連続したコード化された行をコード化された行ランにグループ化することと(プロセスブロック188)、連続したコード化されない行をコード化されない行ランにグループ化することと(プロセスブロック190)、それぞれの行ラン内のゲインマップ行の数を決定することと(プロセスブロック192)を含む。いくつかの実施形態では、プロセス184は、デバイスプロセッサ96などの処理回路を用いてデバイスメモリ98などの有形的非一時的コンピュータ可読媒体に記憶された命令を実行することにより実施することができる。
したがって、いくつかの実施形態では、設計デバイス94は、非圧縮ゲインマップ170を分析して、それぞれのゲインマップ入力174をゼロゲインマップ入力、中間ゲインマップ入力、又は単位ゲインマップ入力として分類することができる(プロセスブロック185)。いくつかの実施形態では、ゲインマップ入力174は、そのゲイン値のそれぞれが1であるとき、単位ゲインマップ入力として分類することができる。加えて、ゲインマップ入力174は、そのゲイン値のそれぞれがゼロであるとき、ゼロゲインマップ入力として分類することができる。更に、ゲインマップ入力174は、そのゲイン値のうちの少なくとも1つが中間ゲイン値(例えば、ゼロより大きくかつ1未満)であるとき、中間ゲインマップ入力として分類することができる。
例えば、図18の非圧縮ゲインマップ170に関して、設計デバイス94は、第1のゲインマップ行172A内の最初のN個のゲインマップ入力174のそれぞれをゼロゲインマップ入力174Zとして、及び第1のゲインマップ行172A内の次のM個のゲインマップ入力のそれぞれを中間ゲインマップ入力174Iとして分類することができる。加えて、設計デバイス94は、第2のゲインマップ行172B内の最初のN−1個のゲインマップ入力174のそれぞれをゼロゲインマップ入力174Zとして、及び第2のゲインマップ行172B内の次のM個のゲインマップ入力のそれぞれを中間ゲインマップ入力174Iとして分類することができる。更に、設計デバイス94は、第7のゲインマップ行172C内のそれぞれのゲインマップ入力174を単位ゲインマップ入力174Uとして分類することができる。このようにして、設計デバイス94は、非圧縮ゲインマップ170内のそれぞれのゲインマップ入力174をゼロゲインマップ入力174Z、中間ゲインマップ入力174I、又は単位ゲインマップ入力174Uとして分類することができる。
図20のプロセス184に戻って、ゲインマップ入力174の分類に少なくとも部分的に基づいて、設計デバイス94は、それぞれのゲインマップ行172をコード化された行又はコード化されない行のいずれかとして分類することができる(プロセスブロック186)。上述したように、ゲインマップ行172は、ゲインマップ入力174のうちの少なくとも1つが中間ゲイン値又はゼロのゲイン値を含むとき、コード化された行として分類することができる。換言すれば、設計デバイス94は、ゲインマップ行172が少なくとも1つのゼロゲインマップ入力174Z又は中間ゲインマップ入力174を含むとき、ゲインマップ行172をコード化された行として分類することができる。例えば、図18の非圧縮ゲインマップ170に関して、複数のゼロゲインマップ入力174Z及び中間ゲインマップ入力174をそれぞれが含むため、設計デバイス94は、最初の6個のゲインマップ行172のそれぞれをコード化された行に分類することができる。
加えて、上述したように、ゲインマップ行172は、ゲインマップ行172が単位ゲイン値のみを含むとき、コード化されない行として分類することができる。換言すれば、設計デバイス94は、ゲインマップ行172が単位ゲインマップ入力174Uのみを含むとき、ゲインマップ行172をコード化されない行として分類することができる。例えば、図18の非圧縮ゲインマップ170に関して、単位ゲインマップ入力174Uのみをそれぞれが含むため、設計デバイス94は、次の4個のゲインマップ行172のそれぞれをコード化されない行に分類することができる。このようにして、設計デバイス94は、非圧縮ゲインマップ170内のそれぞれのゲインマップ行172をコード化された行又はコード化されない行のいずれかとして分類することができる。
図20のプロセス184に戻って、設計デバイス94は、その行分類に少なくとも部分的に基づいて、それぞれのゲインマップ行172を行ランにグループ化することができる。具体的には、設計デバイス94は、コード化された行としてそれぞれ分類された1つ以上の連続したゲインマップ行172をコード化された行ランにグループ化することができる(プロセスブロック188)。加えて、設計デバイス94は、コード化されない行としてそれぞれ分類された1つ以上の連続したゲインマップ行172をコード化されない行ランにグループ化することができる(プロセスブロック190)。例えば、図18の非圧縮ゲインマップ170に関して、設計デバイス94は、コード化された行としてそれぞれが分類されているため、最初の6個のゲインマップ行172を第1の行ラン194A(例えば、コード化された行ラン)にグループ化することができる。加えて、設計デバイス94は、コード化されない行としてそれぞれが分類されているため、次の4個のゲインマップ行172を第2の行ラン194B(例えば、コード化されない行ラン)にグループ化することができる。このようにして、設計デバイス94は、非圧縮ゲインマップ170のそれぞれのゲインマップ行172を行ランにグループ化することができる。
図20のプロセス184に戻って、設計デバイス94は、それぞれの行ラン内のゲインマップ行172の数を決定することができる(プロセスブロック192)。例えば、図18の非圧縮ゲインマップ170に関して、設計デバイス94は、第1の行ラン194Aが6個のゲインマップ行172を含むことを決定する、したがって、第1のランマップ入力内の6個の値を示すことができる。加えて、設計デバイス94は、第2の行ラン194Bが4個のゲインマップ行172を含むことを決定する、したがって、第2のランマップ入力内の4個の値を示すことができる。このようにして、設計デバイス94は、それぞれのランマップ入力が対応する行ランに含まれた非圧縮ゲインマップ170のゲインマップ行172の数を示すように、ランマップ100を決定することができる。
その後の展開を容易にするために、いくつかの実施形態では、ランマップ100は、それぞれの行ラン194がコード化された行ランかコード化されない行ランかを明示的に示すことができる。他の実施形態では、圧縮ゲインマップ90のサイズを更に低減することを容易にするために、設計デバイス94は、開始行ランインジケータ108を決定して、連続した行ラン194をコード化された行ランとコード化されない行ランとして分類することの間で交互になることができる。そのような実施形態では、最初の行ラン194Aの分類は、開始行ランインジケータ108に基づいて決定することができ、その後の行ラン194のそれぞれの分類は、直前の(例えば、上に隣接する)行ラン194の分類に基づいて決定し、それによって、そうでなければその後の行ラン194のそれぞれがコード化された行ランかコード化されない行ランかを明示的に指定するために使用され得るビットを不要にすることができる。このようにして、設計デバイス94は、例えば、ディスプレイパイプライン36によって、ランマップ100及び1つ以上の開始行ランインジケータ108を決定して、それぞれの行ラン194の分類、したがって、それぞれのゲインマップ行172及び/又はコード化されない行内の画素位置に関連付けられたゲイン値の分類を決定することを容易にすることができる。
図19のプロセス176に戻って、設計デバイス94は、非圧縮ゲインマップ170に少なくとも部分的に基づいて位置マップ102を決定することができる(プロセスブロック180)。上述したように、位置マップ102は、コード化された行のそれぞれのゲインランに含まれたゲインマップ入力174の数を示すことができる。加えて、上述したように、同じ分類を有する1つ以上の連続したゲインマップ入力は、ゲインランにグループ化することができる。
位置マップ102を決定するためのプロセス196の一実施形態を、図21に示す。一般的に、プロセス196は、連続した位置ゲインマップ入力を位置ゲインランにグループ化することと(プロセスブロック198)、連続した中間ゲインマップ入力を中間ゲインランにグループ化することと(プロセスブロック200)、前の行と比較した現在の行内のゲインランとの間の位置の差を決定することと(プロセスブロック202)、位置の差をエントロピ符号化することと(プロセスブロック204)を含む。いくつかの実施形態では、プロセス196は、デバイスプロセッサ96などの処理回路を用いてデバイスメモリ98などの有形的非一時的コンピュータ可読媒体に記憶された命令を実行することにより実施することができる。
したがって、いくつかの実施形態では、設計デバイス94は、それぞれの入力分類に少なくとも部分的に基づいて、コード化された行内の連続したゲインマップ入力174をゲインランにグループ化することができる。具体的には、設計デバイス94は、1つ以上の連続したゼロゲインマップ入力174Z又は1つ以上の連続した単位ゲインマップ入力174Uを位置ゲインランにグループ化することができる(プロセスブロック198)。換言すれば、位置ゲインランは、ゼロゲインマップ入力174Zのみを含むゼロゲインラン、又は単位ゲインマップ入力174Uのみを含む単位ゲインランとすることができる。加えて、設計デバイス94は、1つ以上の連続した中間ゲインマップ入力174Iを中間ゲインランにグループ化することができる(プロセスブロック200)。
例えば、図18の非圧縮ゲインマップ170に関して、設計デバイス94は、ゼロゲインマップ入力174Zとしてそれぞれが分類されているため、第1のゲインマップ行172A内の最初のN個のゲインマップ入力174を第1の位置ゲインラン206Aにグループ化することができる。加えて、設計デバイス94は、中間ゲインマップ入力174Iとしてそれぞれが分類されているため、第1のゲインマップ行172A内の次のM個のゲインマップ入力174を第1の中間ゲインラン208Aにグループ化することができる。更に、設計デバイス94は、第2のゲインマップ行172内の最初のN−1個のゲインマップ入力174を第2の位置ゲインラン206Bに、及び次のM個のゲイン入力を第2の中間ゲインラン208Bにグループ化することができる。
それぞれの先行するゲインラン内のゲインマップ入力174の数に少なくとも部分的に基づいて、ゲインマップ入力174、したがって、それぞれのゲインランに含まれた画素位置を決定することができる。例えば、第1の位置ゲインラン206AがN個のゲインマップ入力174を含むことを示すことにより、第1のゲインマップ行172Aの最初のN個のゲインマップ入力174が第1に含まれていること、及び第1の中間ゲインラン208Aが第1のゲインマップ行172AのN+1番目のゲインマップ入力174で開始することを決定することが可能になる。加えて、第1の中間ゲインラン208AがM個のゲインマップ入力174を含むことを示すことにより、第1のゲインマップ行172Aの次のM個のゲインマップ入力174が第1の中間ゲインラン208Aに含まれていること、及び第1の中間ゲインラン208Aが第1のゲインマップ行172AのN+M番目のゲインマップ入力174で終了することを決定することが可能になる。したがって、その後の展開を容易にするために、いくつかの実施形態では、位置マップ102は、それぞれのゲインランに含まれたゲインマップ入力174の数を明示的示すことができる。
図21のプロセス196に戻って、他の実施形態では、設計デバイス94は、直前の(例えば、上に隣接する)行と比較した現在の行内のゲインランの位置の差を決定して(プロセスブロック202)、位置の差をエントロピ符号化し(プロセスブロック204)、圧縮ゲインマップ90のサイズを更に低減することを容易にすることができる。いくつかの実施形態では、位置の差は、現在の行内のゲインランの開始ゲインマップ入力174と直前の行内の対応するゲインランの開始ゲインマップ入力174を分離する画素位置の数を示すことができる。
例えば、図18の非圧縮ゲインマップ170に関して、設計デバイス94は、第1の中間ゲインラン208Aが第1のゲインマップ行172AのN+1番目のゲインマップ入力174で開始することを決定することができる。加えて、設計デバイス94は、第2の中間ゲインラン208Bが第2のゲインマップ行172BのN番目のゲインマップ入力174で開始することを決定することができる。したがって、第2のゲインマップ行172Bの第2の位置ゲインランがN−1個のゲインマップ入力174を含むことを明示的に示すことの代わりに、第2の中間ゲインラン208の開始ゲインマップ入力174は、第1のゲインマップ行172A内の第1の中間ゲインラン208の開始ゲインマップ入力174の1つ前の画素位置として示すことができる。加えて、いくつかの実施形態では、位置の差は、指数Golomb符号化アルゴリズムを用いてエントロピ符号化することができる。このようにして、設計デバイス94は、位置マップ102を決定して、コード化された行のそれぞれのゲインラン内の画素位置を決定することを容易にすることができる。
いずれの場合でも、その後の展開を容易にするために、圧縮ゲインマップ90は、位置ゲインランがゼロゲインランか単位ゲインランかを示すことができる。上述したように、位置ゲイン値インジケータ110は、対応する位置ゲインラン内のそれぞれのゲインマップ入力174のゲイン値を示すことができる。したがって、設計デバイス94は、位置ゲイン値インジケータ110を決定してそれぞれの位置ゲインランに関連付けることができる。
例えば、図18の非圧縮ゲインマップ170に関して、設計デバイス94は、第1の位置ゲイン値インジケータ110を、第1の位置ゲインラン内のそれぞれのゲインマップ入力174がゼロゲインマップ入力174Zであることを示す第1の位置ゲインラン206Aに関連付けることができる。加えて、設計デバイス94は、第2の位置ゲイン値インジケータ110を、第2の位置ゲインラン内のそれぞれのゲインマップ入力174がゼロゲインマップ入力174Zであることを示す第2の位置ゲインラン206Bに関連付けることができる。加えて又は代わりに、設計デバイス94は、位置ゲイン値インジケータ110を、位置ゲインラン内のそれぞれのゲインマップ入力174が単位ゲインマップ入力174Uであることを示す位置ゲインランに関連付けることができる。このようにして、設計デバイス94は、例えば、ディスプレイパイプライン36によって、位置マップ102及び1つ以上の位置ゲイン値インジケータ110を決定して、位置ゲインラン内のそれぞれの画素位置に関連付けられたゲイン値を決定することを容易にすることができる。
図17のプロセス176に戻って、設計デバイス94は、非圧縮ゲインマップ170に少なくとも部分的に基づいてゲイン値マップ104を決定することができる(プロセスブロック182)。上述したように、ゲイン値マップ104は、ゲインマップ入力174のゲイン値、したがって、それぞれの中間ゲインラン内の対応する画素位置に関連付けられたゲイン値を示すことができる。加えて、いくつかの実施形態では、ゲイン値マップ104は、直前の(例えば、左の隣接する)ゲインマップ入力174のゲイン値に少なくとも部分的に基づいて、ゲインマップ入力174のゲイン値を示すことができる。
ゲイン値マップ104を決定するためのプロセス210の一実施形態を、図22に示す。一般的に、プロセス210は、ゲイン値を決定することと(プロセスブロック212)、ゲイン値が前のゲイン値と等しいか否かを判定することと(判定ブロック214)、ゲイン値が前のゲイン値と等しい場合にゼロビットを記憶することと(プロセスブロック216)を含む。加えて、ゲイン値が前のゲイン値と等しくない場合に、プロセス210は、1ビットを記憶することと(プロセスブロック218)、ゲイン値がゼロに等しいか否かを判定することと(判定ブロック220)、ゲイン値がゼロに等しい場合にゼロビットを記憶することと(プロセスブロック222)、ゲイン値がゼロに等しくない場合にゲイン値をエントロピ符号化することと(プロセスブロック224)を含む。いくつかの実施形態では、プロセス210は、デバイスプロセッサ96などの処理回路を用いてデバイスメモリ98などの有形的非一時的コンピュータ可読媒体に記憶された命令を実行することにより実施することができる。
したがって、いくつかの実施形態では、設計デバイス94は、非圧縮ゲインマップ170から中間ゲインラン内の現在のゲインマップ入力174に関連付けられたゲイン値を決定することができる(プロセスブロック212)。加えて、設計デバイス94は、非圧縮ゲインマップ170から直前のゲインマップ入力174に関連付けられたゲイン値を決定することができる。いくつかの実施形態では、表示画素行に対応する画像データは、左から右に処理することができる。したがって、そのような実施形態では、直前のゲインマップ入力174は、現在のゲインマップ入力174の左の隣接するものとすることができる。
上述したように、ゲインマップ入力174は、異なる色成分及び/又は異なる副画素にそれぞれ関連付けられた複数のゲイン値を含むことができる。一般的に、隣接する表示画素136に適用されることになるゲイン値に影響を及ぼす要因は、相対的に類似し得る。そのように、隣接する画素位置での同じ色成分に対応するゲイン値は、相対的に類似し又は同じでもあり得る。したがって、設計デバイス94は、現在のゲインマップ入力174に含まれたゲイン値を直前のゲインマップ入力174内の同じ色成分に関連付けられたゲイン値と比較して、それらが等しいか否かを判定することができる(判定ブロック214)。
ゲイン値が等しい場合に、設計デバイス94は、ゲイン値マップ104にゼロビットを記憶することができる(プロセスブロック216)。一方、ゲイン値が等しくない場合に、設計デバイス94は、ゲイン値マップ104に1ビットを記憶することができる(プロセスブロック218)。したがって、圧縮ゲインマップ90がその後展開されると、現在のゲインマップ入力174に関連付けられた最初のビットは、現在のゲインマップ入力174内のゲイン値が直前のゲインマップ入力174内の対応するゲイン値と同じであるか否かを示すことができる。更に、ゲイン値が等しい場合に、このようにして圧縮することにより、そうでなければゲイン値のうちの1つ以上を明示的に示すために使用されるであろうビットを不要にし、それによって圧縮ゲインマップ90のサイズを低減することを可能にすることができる。
ゲイン値が等しくない場合、設計デバイス94は、現在のゲインマップ入力174内のゲイン値がゼロに等しいか否かを判定することができる(判定ブロック220)。加えて、現在のゲインマップ入力174内のゲイン値がゼロに等しい場合に、設計デバイス94は、ゲイン値マップ104にゼロビットを記憶することができる(プロセスブロック222)。したがって、現在のゲインマップ入力174のゲイン値がゼロに等しい場合に、このようにして圧縮することにより、そうでなければゲイン値を明示的に示すために使用されるであろうビットを不要にし、それによって圧縮ゲインマップ90のサイズを低減することを可能にすることができる。
一方、ゲイン値がゼロに等しくない場合に、設計デバイス94は、現在のゲイン値マップ入力174のゲイン値をエントロピ符号化することができる(プロセスブロック224)。いくつかの実施形態では、設計デバイス94は、指数Golomb符号化アルゴリズムを用いてゲイン値をエントロピ符号化することができる。このようにして、設計デバイス94は、ゲイン値マップがそれぞれの中間ゲインラン内の画素位置に関連付けられたゲイン値を示すように、ゲイン値マップ104を決定することができる。
上述した圧縮技術を用いて、設計デバイス94は、ランマップ100、位置マップ102、ゲイン値マップ104、及び1つ以上のプログラム可能なインジケータ(例えば、開始行ランインジケータ108及び/又は位置ゲイン値インジケータ110)を含む圧縮ゲインマップ90を決定することができる。圧縮技術は、例えば、表示領域境界に沿ってゲイン値を適用するために実施されない場合でも、任意の非圧縮ゲインマップ170に適用可能とすることができることを理解されたい。いくつかの実施形態では、説明した圧縮技術の圧縮効率は、コード化されない行の数が増大する、位置ゲインラン内の画素位置の数が増大する、同じゲイン値に関連付けられた連続した画素位置の数が増大する、及び/又は中間ゲインラン内の画素位置の数が減少するに従って、向上させることができる。したがって、いくつかの実施形態では、圧縮技術は、相対的に均一なコンテンツに適用されることになるゲインマップを圧縮するために有用であり得る。
図10のプロセス112に戻って、設計デバイス94は、圧縮ゲインマップ90をメモリ構成要素に記憶して、メモリ構成要素からのその後のアクセスを可能にすることができる(プロセスブロック118)。上述したように、圧縮ゲインマップ90のサイズは、対応する非圧縮ゲインマップ170のサイズより小さくすることができる。いくつかの実施形態では、このサイズの低減により、圧縮ゲインマップ90をディスプレイパイプライン36の内部メモリ46に記憶することを可能にすることができ、これにより、上述したように、処理効率を改善すること及び/又は実装に関連付けられたコストを低減することを容易にすることができる。他の実施形態では、圧縮ゲインマップ90は、それにもかかわらず外部メモリ44に記憶することができる。いずれの場合でも、上述したように、副画素レイアウトリサンプラブロック56は、その後ゲインマップにアクセスして、ゲインマップによって示されたゲイン値に少なくとも部分的に基づいて画像データを処理することができる。
図示目的で、副画素レイアウトリサンプラブロック56を動作させるためのプロセス226の一実施形態を、図23に示す。一般的に、プロセス226は、画像画素画像データをデガンマ変換することと(プロセスブロック228)、ゲインマップからゲイン値を決定することと(プロセスブロック230)、画像画素画像データをフィルタリングして表示画素画像データを決定することと(プロセスブロック232)、ゲイン値を表示画素画像データに適用することと(プロセスブロック234)、表示画素画像データをリガンマ変換することと(プロセスブロック236)、表示画素画像データをアップスケーリングすることと(プロセスブロック238)を含む。いくつかの実施形態では、プロセス226は、ディスプレイパイプライン36内に形成された回路接続に基づいて実施することができる。加えて又は代わりに、いくつかの実施形態では、プロセス226は、コントローラプロセッサ50などの処理回路を用いてコントローラメモリ52などの有形的非一時的コンピュータ可読媒体に記憶された命令を実行することにより実施することができる。
したがって、いくつかの実施形態では、副画素レイアウトリサンプラブロック56は、画像画素画像データ70をデガンマ変換することができる(プロセスブロック228)。上述したように、副画素レイアウトリサンプラブロック56は、ガンマ(例えば、非線形)ドメインの画像画素画像データ70を受信することができる。その後の処理を容易にするために、副画素レイアウトリサンプラブロック56は、画像画素画像データ70をガンマドメインから線形ドメインに変換することにより、デガンマすることができる。
加えて、副画素レイアウトリサンプラブロック56は、ゲインマップから1つ以上のゲイン値を決定することができる(プロセスブロック230)。上述したように、いくつかの実施形態では、非圧縮ゲインマップ170は、外部メモリ44に記憶することができる。したがって、そのような実施形態では、副画素レイアウトリサンプラブロック56は、外部メモリ44からダイレクトメモリアクセスチャネル58を介して、対応する画素位置に関連付けられた1つ以上のゲイン値を明示的に示す非圧縮ゲインマップ170の少なくとも一部分(例えば、ゲインマップ入力174)を取得することができる。
上述したように、他の実施形態では、圧縮ゲインマップ90は、内部メモリ46に記憶することができる。したがって、そのような実施形態では、副画素レイアウトリサンプラブロック56は、内部メモリ46から圧縮ゲインマップ90の少なくとも一部分を取得することができる。圧縮されているため、副画素レイアウトリサンプラブロック56は、圧縮ゲインマップ90を展開して、対応する画素位置に関連付けられた1つ以上のゲイン値を決定することができる。
圧縮ゲインマップ90を展開するためのプロセス240の一実施形態を、図24に示す。一般的に、プロセス240は、画素位置を決定することと(プロセスブロック242)、ランマップを読み取ることと(プロセスブロック244)、画素位置がコード化されない行内にあるか否かを判定することと(判定ブロック246)、画素位置がコード化されない行内にある場合に画素位置に関連付けられたそれぞれのゲイン値が単位ゲイン値であることを決定することと(プロセスブロック248)を含む。画素位置がコード化されない行内にない場合、プロセス240は、位置マップを読み取ることと(プロセスブロック250)、画素位置が中間ゲインラン内にあるか否かを判定することと(判定ブロック252)、画素位置が中間ゲインラン内にない場合に位置ゲイン値インジケータに基づいて画素位置に関連付けられたそれぞれのゲイン値を決定することと(プロセスブロック254)、画素位置が中間ゲインラン内にある場合にゲイン値マップを読み取ることと(プロセスブロック256)を含む。いくつかの実施形態では、プロセス240は、ディスプレイパイプライン36内に形成された回路接続に基づいて実施することができる。加えて又は代わりに、いくつかの実施形態では、プロセス240は、コントローラプロセッサ50などの処理回路を用いてコントローラメモリ52などの有形的非一時的コンピュータ可読媒体に記憶された命令を実行することにより実施することができる。
したがって、いくつかの実施形態では、副画素レイアウトリサンプラブロック56は、受信した画像画素画像データ70に対応する画素位置を決定することができる(プロセスブロック242)。いくつかの実施形態では、副画素レイアウトリサンプラブロック56は、画像画素画像データ70をビットストリームとして受信することができる。したがって、そのような実施形態では、副画素レイアウトリサンプラブロック56は、画像画素画像データ70が受信される順序及び/又は電子ディスプレイ12の解像度に少なくとも部分的に基づいて、画素位置を決定することができる。画素位置に基づいて、副画素レイアウトリサンプラブロック56は、対応するゲインマップ入力174、したがって、ゲインマップ入力174を含むゲインマップ行172を決定することができる。
加えて、副画素レイアウトリサンプラブロック56は、ランマップ100を読み取って、ゲインマップ行172の行分類を決定することができる(プロセスブロック244)。上述したように、ランマップ100は、それぞれの行ラン194に含まれたゲインマップ行172の数を示すことができる。したがって、ランマップ100に少なくとも部分的に基づいて、副画素レイアウトリサンプラブロック56は、ゲインマップ行172を含む行ラン194、したがって、画素位置を識別することができる。いくつかの実施形態では、ランマップ100は、ディスプレイパイプライン36の内部メモリ46に記憶することができる。したがって、そのような実施形態では、副画素レイアウトリサンプラブロック56は、内部メモリ46からランマップ100を読み取ることができる。
行ランの分類を決定することを容易にするために、副画素レイアウトリサンプラブロック56は、開始行ランインジケータ108を読み取ることができる。上述したように、開始行ランインジケータ108は、対応する行ラン194がコード化された行ラン又はコード化されない行ランかを示すことができる。圧縮ゲインマップ90のサイズを低減することを容易にするために、いくつかの実施形態では、開始行ランインジケータ108は、第1の行ラン194Aのみを指定することができる。そのような実施形態では、行ラン194が第1の行ラン194Aでない場合、副画素レイアウトリサンプラブロック56は、直前の(例えば、上の隣接する)行ラン194の分類に少なくとも部分的に基づいて、行ラン194の分類を決定することができる。換言すれば、副画素レイアウトリサンプラブロック56は、行ラン194を第1の行ラン194Aから分離する他の行ラン194の数に基づいて、行ラン194の分類を決定することができる。
したがって、ランマップ100及び開始行ランインジケータ108に少なくとも部分的に基づいて、副画素レイアウトリサンプラブロック56は、行ラン194がコード化されない行ランであるか否か、したがって、画素位置を含むゲインマップ行172がコード化されない行であるか否かを判定することができる(判定ブロック246)。上述したように、ゲインマップ行172は、ゲイン値のそれぞれが1に等しいとき、コード化されない行とすることができる。したがって、ゲインマップ行172がコード化されない行である場合、副画素レイアウトリサンプラブロック56は、画像画素画像データ70を処理するために使用されるそれぞれのゲイン値が単位ゲイン値であることを決定することができる(プロセスブロック248)。
一方、コード化されない行でない場合、副画素レイアウトリサンプラブロック56は、ゲインマップ行172がコード化された行であることを決定する、したがって、位置マップ102を読み取ることができる(プロセスブロック250)。上述したように、位置マップ102は、コード化された行のそれぞれのゲインランに含まれた画素位置を示すことができる。いくつかの実施形態では、位置マップ102は、ディスプレイパイプライン36の内部メモリ46に記憶することができる。したがって、そのような実施形態では、副画素レイアウトリサンプラブロック56は、内部メモリ46から位置マップ102を読み取ることができる。
加えて、いくつかの実施形態では、位置マップ102は、エントロピ符号化することができる。したがって、そのような実施形態では、副画素レイアウトリサンプラブロック56は、位置マップ102をエントロピ復号化することにより、それぞれのゲインランに含まれた画素位置を決定することができる。例えば、副画素レイアウトリサンプラブロック56は、指数Golomb復号化アルゴリズムを用いて、位置マップ102をエントロピ複号化することができる。更に、いくつかの実施形態では、位置マップ102は、位置の差に基づいて、別のゲインランに対するゲインランに含まれた画素位置を示すことができる。したがって、そのような実施形態では、副画素レイアウトリサンプラブロック56は、位置の差を他のゲインラン内の(例えば、開始又は終了)画素位置に適用することにより、ゲインラン内に含まれた画素位置を決定することができる。
位置マップ102に少なくとも部分的に基づいて、副画素レイアウトリサンプラブロック56は、画素位置が中間ゲインラン内にあるか否かを判定することができる(判定ブロック252)。上述したように、中間ゲインラン内のそれぞれのゲインマップ入力174は、1つ以上の中間ゲイン値(例えば、ゼロより大きくかつ1未満)を含む。したがって、中間ゲインラン内でない場合、副画素レイアウトリサンプラブロック56は、画素位置が位置ラン内であることを決定する、したがって、対応する位置ゲイン値インジケータ110に基づいて画像画素画像データ70を処理するために使用されるゲイン値を決定することができる。いくつかの実施形態では、位置ゲイン値インジケータ110は、プログラム可能なレジスタ106に記憶することができる。したがって、そのような実施形態では、副画素レイアウトリサンプラブロック56は、プログラム可能なレジスタ106をポーリングすることにより、位置ゲイン値インジケータ110を決定することができる。
一方、中間ゲインラン内である場合、副画素レイアウトリサンプラブロック56は、ゲイン値マップ104を読み取ることができる(プロセスブロック256)。上述したように、ゲイン値マップ104は、中間ゲインラン内のゲイン値を示すことができる。いくつかの実施形態では、ゲイン値マップ104は、ディスプレイパイプライン36の内部メモリ46に記憶することができる。したがって、そのような実施形態では、副画素レイアウトリサンプラブロック56は、内部メモリ46からゲイン値マップ104を読み取ることができる。
加えて、いくつかの実施形態では、ゲイン値マップ104は、エントロピ符号化することができる。したがって、そのような実施形態では、副画素レイアウトリサンプラブロック56は、ゲイン値マップ104をエントロピ復号化することにより、画素位置に関連付けられたゲイン値を決定することができる。例えば、副画素レイアウトリサンプラブロック56は、指数Golomb復号化アルゴリズムを用いて、ゲイン値マップ104をエントロピ複号化することができる。このようにして、副画素レイアウトリサンプラブロック56は、圧縮ゲインマップ90を展開して、画像画素画像データ70に対応する画素位置に関連付けられた1つ以上のゲイン値を決定することができる。
図23のプロセス226に戻って、副画素レイアウトリサンプラブロック56は、画像画素画像データ70をフィルタリングして、対応する表示画素画像データ72を決定することができる(プロセスブロック232)。上述したように、副画素レイアウトリサンプラブロック56は、オフセットフィルタ位相値及び/又はオフセット副画素フィルタ係数などのフィルタパラメータに基づいて、画像画素画像データ70をフィルタリングすることができる。加えて、いくつかの実施形態では、副画素レイアウトリサンプラブロック56は、ゲインマップから決定されたゲイン値に少なくとも部分的に基づいて、適用されることになるフィルタパラメータを決定することができる。
図示目的で、フィルタ位相値及びオフセット副画素フィルタ係数を決定するためのプロセス258の一実施形態を、図25に示す。一般的に、プロセス258は、現在の位相値を決定することと(プロセスブロック260)、隣接する位相値を決定することと(プロセスブロック262)、変更した位相値を決定することと(プロセスブロック264)、オフセットフィルタ位相値を選択することと(プロセスブロック266)、オフセット副画素フィルタ係数を決定することと(プロセスブロック268)を含む。いくつかの実施形態では、プロセス258は、ディスプレイパイプライン36内に形成された回路接続に基づいて実施することができる。加えて又は代わりに、いくつかの実施形態では、プロセス258は、コントローラプロセッサ50などの処理回路を用いてコントローラメモリ52などの有形的非一時的コンピュータ可読媒体に記憶された命令を実行することにより実施することができる。
したがって、いくつかの実施形態では、副画素レイアウトリサンプラブロック56は、受信した画像画素画像データ70に対応する現在の画像画素を含む現在の画像画素ブロックに関連付けられた位相値を決定することができる(プロセスブロック260)。いくつかの実施形態では、現在の画像画素ブロックは、現在の画像画素に対応する現在の表示画素136のオフセット副画素の周囲の画像画素の2×2のブロックとすることができる。加えて、いくつかの実施形態では、副画素レイアウトリサンプラブロック56は、現在の画像画素ブロックと現在の画像画素ブロックからオフセットした隣接する画像画素ブロックとの間の差分絶対値の和などの、現在の画像画素ブロックに関連付けられた差の測定値に少なくとも部分的に基づいて、現在の位相値を決定することができる。いくつかの実施形態では、現在の位相値は、既定のフィルタ(例えば、均等補間)モードと比較した適用されることになるフィルタリングの変化量を示すことができる。
加えて、それぞれの隣接する画像画素ブロックに関連付けられた位相値を決定するための副画素レイアウトリサンプラブロック56(プロセスブロック262)。いくつかの実施形態では、副画素レイアウトリサンプラブロック56は、現在のブロックに関連付けられた現在の位相値と同様な方法で、隣接するブロックに関連付けられた隣接する位相値を決定することができる。例えば、副画素レイアウトリサンプラブロック56は、上の隣接する画像画素ブロックに関連付けられた差の測定値に少なくとも部分的に基づいて、上の隣接するブロックに対応する上の隣接する位相値を決定することができる。
現在の位相値及び隣接する位相値に少なくとも部分的に基づいて、副画素レイアウトリサンプラブロック56は、変更された位相値を決定することができる(プロセスブロック264)。いくつかの実施形態では、副画素レイアウトリサンプラブロック56は、隣接する位相値に基づいて現在の位相値をフィルタリングすることにより、変更された位相値を決定することができる。例えば、副画素レイアウトリサンプラブロック56は、現在のフィルタ位相値をそれぞれの隣接する画像画素ブロックの隣接するフィルタ位相値でフィルタリングすることにより、変更されたフィルタ位相値を決定することができる。
加えて、副画素レイアウトリサンプラブロック56は、オフセットフィルタ位相値を決定することができる(プロセスブロック266)。いくつかの実施形態では、副画素レイアウトリサンプラブロック56は、現在の位相値及び/又は変更された位相値に少なくとも部分的に基づいて、オフセットフィルタ位相値を設定することができる。例えば、副画素レイアウトリサンプラブロック56は、ゲインマップ内の現在の画像画素の画素位置に関連付けられたゲイン値(例えば、オフセットゲイン値及び/又は同じ場所に配置されたゲイン値)に少なくとも部分的に基づいて、現在の位相値として又は変更された位相値としてオフセットフィルタ位相値を設定することができる。
図示目的で、オフセットフィルタ位相値を決定するためのプロセス270の一実施形態を、図26に示す。一般的に、プロセス270は、同じ場所に配置された副画素に関連付けられたゲイン値を決定することと(プロセスブロック272)、オフセット副画素に関連付けられたゲイン値を決定することと(プロセスブロック274)、同じ場所に配置されたゲイン及びオフセットゲインの両方がゼロでないか否かを判定することと(判定ブロック276)、同じ場所に配置されたゲイン及びオフセットゲインの両方が1でないか否かを判定することと(判定ブロック278)を含む。同じ場所に配置されたゲインがゼロ又は1でなく、かつオフセットゲインがゼロ又は1でない場合、プロセス270は、オフセットフィルタ位相値を現在の位相値に設定することを含む(プロセスブロック280)。そうでなければ、プロセス270は、オフセットフィルタ位相値を変更された位相値に設定することを含む(プロセスブロック282)。いくつかの実施形態では、プロセス270は、ディスプレイパイプライン36内に形成された回路接続に基づいて実施することができる。加えて又は代わりに、いくつかの実施形態では、プロセス270は、コントローラプロセッサ50などの処理回路を用いてコントローラメモリ52などの有形的非一時的コンピュータ可読媒体に記憶された命令を実行することにより実施することができる。
したがって、いくつかの実施形態では、副画素レイアウトリサンプラブロック56は、現在の表示画素内の同じ場所に配置された副画素に適用されることになるゲイン値を決定することができる(プロセスブロック272)。加えて、コントローラ42は、副画素レイアウトリサンプラブロック56に、現在の表示画素内のオフセット副画素に適用されることになるゲイン値を決定するように命令することができる(プロセスブロック274)。いくつかの実施形態では、副画素レイアウトリサンプラブロック56は、例えば、図24のプロセス240を用いて圧縮ゲインマップ90を展開することにより圧縮ゲインマップ90に少なくとも部分的に基づいて、同じ場所に配置された副画素に関連付けられたゲイン値及び/又はオフセット副画素に関連付けられたゲイン値を決定することができる。
ゲイン値に少なくとも部分的に基づいて、副画素レイアウトリサンプラブロック56は、変更された位相値としてオフセットフィルタ位相値を設定する(プロセスブロック282)、又は現在の位相値としてオフセットフィルタ位相値を設定する(プロセスブロック280)ことができる。例えば、副画素レイアウトリサンプラブロック56は、同じ場所に配置されたゲイン及びオフセットゲインが両方ともゼロ又は1に等しくない場合にオフセットフィルタ位相を現在のフィルタ位相に設定することができる。一方、副画素レイアウトリサンプラブロック56は、同じ場所に配置されたゲイン及びオフセットゲインのうちの少なくとも1つがゼロ又は1に等しい場合にオフセットフィルタ位相を変更されたフィルタ位相に設定することができる。このようにして、副画素レイアウトリサンプラブロック56は、現在の画素位置に関連付けられたゲイン値に少なくとも部分的に基づいて、オフセットフィルタ位相値を決定することができる。
図25のプロセス258に戻って、副画素レイアウトリサンプラブロック56は、オフセットフィルタ位相値に少なくとも部分的に基づいてオフセット副画素フィルタ係数を決定することができる(プロセスブロック268)。いくつかの実施形態では、オフセット副画素フィルタ係数を使用して、オフセットフィルタ位相値を実装することができる。したがって、そのような実施形態では、副画素レイアウトリサンプラブロック56は、フィルタブロック82によって適用されることになるオフセット副画素フィルタ係数を決定することができる。このようにして、副画素レイアウトリサンプラブロック56は、ゲインマップ内の現在の画素位置に関連付けられたゲイン値に少なくとも部分的に基づいて、画像画素画像データ70に適用されることになるフィルタパラメータ(例えば、オフセットフィルタ位相値及び/又はオフセット副画素フィルタ係数)を決定することができる。
図23のプロセス226に戻って、副画素レイアウトリサンプラブロック56は、フィルタパラメータに少なくとも部分的に基づいて現在の画素位置に対応する表示画素画像データ72を決定することができる(プロセスブロック114)。いくつかの実施形態では、副画素レイアウトリサンプラブロック56は、表示画素画像データ72を決定するためのフィルタパラメータに基づいて、現在の画像画素の周囲の画像画素の群に対応する画像画素画像データ70をフィルタリングすることができる。
フィルタリングの後で、副画素レイアウトリサンプラブロック56は、ゲイン値を表示画素画像データ72に適用することができる(プロセスブロック234)。上述したように、ゲインマップは、それぞれの画素位置に関連付けられたゲイン値を示すことができる。加えて、上述したように、プログラム可能な境界ゲイン値インジケータ92は、表示領域境界に沿った画素位置に選択的に適用されるゲイン値を示すことができる。したがって、いくつかの実施形態では、副画素レイアウトリサンプラブロック56は、ゲインマップによって示されたゲイン値又はプログラム可能な境界ゲイン値インジケータ92によって示されたゲイン値を適用するかを判定することができる。
図示目的で、ゲイン値を表示画素画像データ72に適用するためのプロセス284の一実施形態を、図27に示す。一般的に、プロセス284は、表示画素画像データの画素位置を決定することと(プロセスブロック286)、画素位置が中間ゲインラン内にあるか否かを判定することと(判定ブロック288)、画素位置が直線境界に隣接するか否かを判定することと(判定ブロック290)、プログラム可能な境界ゲインが有効にされているか否かを判定することと(判定ブロック292)、画素位置が中間ゲインラン内になく、画素位置が直線境界に隣接しており、かつプログラム可能な境界ゲインが有効にされている場合にプログラム可能な境界ゲイン値を適用することと(プロセスブロック294)を含む。加えて、プロセス284は、画素位置が中間ゲインラン内にある、画素位置が直線境界に隣接していない、又はプログラム可能な境界ゲインが有効にされていない場合にゲインマップから決定されたゲイン値を適用することを含む(プロセスブロック296)。いくつかの実施形態では、プロセス284は、ディスプレイパイプライン36内に形成された回路接続に基づいて実施することができる。加えて又は代わりに、いくつかの実施形態では、プロセス284は、コントローラプロセッサ50などの処理回路を用いてコントローラメモリ52などの有形的非一時的コンピュータ可読媒体に記憶された命令を実行することにより実施することができる。
したがって、いくつかの実施形態では、副画素レイアウトリサンプラブロック56は、表示画素画像データ72に対応する画素位置を決定することができる(プロセスブロック286)。上述したように、表示画素画像データ72は、対応する画像画素画像データ70を処理することにより決定することができる。換言すれば、表示画素画像データ72は、画像画素画像データ70と同じ画素位置に対応することができる。そのように、副画素レイアウトリサンプラブロック56は、例えば、画像画素画像データ70が受信される順序及び/又は電子ディスプレイ12の解像度に少なくとも部分的に基づいて、画像画素画像データ70に対応する画素位置を決定することにより、表示画素画像データ72に対応する画素位置を決定することができる。
加えて、副画素レイアウトリサンプラブロック56は、画素位置が中間ゲインラン内にあるか否かを判定することができる(プロセスブロック288)。上述したように、ランマップ100は、それぞれの行ラン194に含まれたゲインマップ行172の数を示すことができ、開始行ランインジケータ108は、それぞれの行ラン194の分類を示すことができる。したがって、ランマップ100及び開始行ランインジケータ108に少なくとも部分的に基づいて、副画素レイアウトリサンプラブロック56は、画素位置を含む行ラン194の分類、したがって、画素位置がコード化された行に含まれているかコード化されない行に含まれているかを判定することができる。コード化されない行は単位ゲイン値のみを含むため、副画素レイアウトリサンプラブロック56は、コード化されない行内のとき画素位置が中間ゲインラン内にないことを判定することができる。
加えて、上述したように、位置マップ102は、コード化された行のそれぞれのゲインランに含まれた画素位置を示すことができ、位置ゲイン値インジケータ110は、それぞれの位置ゲインランに関連付けることができる。したがって、位置マップ102及び位置ゲイン値インジケータ110に少なくとも部分的に基づいて、副画素レイアウトリサンプラブロック56は、それぞれの中間ゲインラン内の画素位置、したがって、画素位置が中間ゲインラン内にあるか否かを判定することができる。
更に、副画素レイアウトリサンプラブロック56は、画素位置が表示領域の直線境界に隣接するか否かを判定することができる(判定ブロック290)。いくつかの実施形態では、境界検出ブロック86は、表示領域の特性に少なくとも部分的に基づいて、画素位置が直線境界に隣接するか否かを判定することができる。例えば、境界検出ブロック86は、表示領域境界の位置及び/又は直線境界に隣接するとして定義済みの画素位置に少なくとも部分的に基づいて、画素位置が直線境界に隣接するか否かを判定することができる。上述したように、いくつかの実施形態では、表示領域の予想される特性は、予め設定して、デバイスメモリ98などのメモリ構成要素に記憶することができる。したがって、そのような実施形態では、設計デバイス94は、メモリ構成要素をポーリングして、表示領域の特性を決定することができる。
副画素レイアウトリサンプラブロック56はまた、プログラム可能な境界ゲインが有効にされているか否かを判定することができる(判定ブロック292)。いくつかの実施形態では、副画素レイアウトリサンプラブロック56は、例えば、内部メモリ46又はプログラム可能なレジスタ106に記憶されたインジケータに少なくとも部分的に基づいて、プログラム可能な境界ゲインが有効にされているか否かを判定することができる。例えば、副画素レイアウトリサンプラブロック56は、インジケータが第1の値(例えば、1ビット)を有するときにプログラム可能な境界ゲインが有効にされていること、及びインジケータが第2の値(例えば、0ビット)を有するときにプログラム可能な境界ゲインが有効にされていることを決定することができる。
これらの決定に基づいて、副画素レイアウトリサンプラブロック56は、ゲインマップから決定されたゲイン値(プロセスブロック296)又はプログラム可能な境界ゲイン値92(プロセスブロック294)のいずれかを適用することができる。上述したように、ゲインマップからのゲイン値を適用することにより、例えば、表示領域の外側の画素位置にブラックマスクを適用することにより異なる(例えば、非矩形)形状を有する表示領域上に表示するために画像又は画像フレームを調整することを容易にすることができる。加えて、上述したように、ゲインマップからのゲイン値を適用することにより、表示領域の丸みのある境界に沿った副画素を暗くして、丸みのある境界に沿った知覚可能なエイリアシングを生成する可能性を低減することを容易にすることができる。
更に、いくつかの実施形態では、プログラム可能な境界ゲイン値を決定して、表示領域の境界(例えば、直線境界)に沿った知覚可能な色縁を生成する可能性を低減することができる。いくつかの例では、境界に沿って発生する縁は、電子ディスプレイ12に実装された副画素レイアウトによって影響を受けることがある。換言すれば、異なる境界に沿って発生する縁は、異なることがある。例えば、電子ディスプレイの表示画素136が緑の副画素及び交互に赤の副画素又は青の副画素のいずれかをそれぞれ含む場合、緑色の縁が第1の(例えば、上部)直線境界に沿って発生することがあり、一方で紫色の縁が第2の(例えば、左側)直線境界に沿って発生することがある。
したがって、知覚可能な色縁を生成する可能性を低減するために、異なるプログラム可能な境界ゲイン値を異なる境界に関連付けることができる。そのように、プログラム可能な境界ゲイン値が適用されることになる場合、副画素レイアウトリサンプラブロック56は、どの境界が画素位置に隣接するかを判定して、対応するプログラム可能な境界ゲイン値を選択することができる。このようにして、副画素レイアウトリサンプラブロック56は、ゲイン値を表示画素画像データ72に選択的に(例えば、適応的に)適用することにより、電子ディスプレイの知覚される画像品質を改善することを容易にすることができる。
図23のプロセス226に戻って、出力画像データがガンマドメインであることが予想されるとき、副画素レイアウトリサンプラブロック56は、表示画素画像データ72を線形ドメインからガンマドメインに変換することができる(プロセスブロック236)。更に、出力画像データがソース形式(例えば、RGB形式)であることが予想されるとき、副画素レイアウトリサンプラブロック56は、表示画素画像データ72をアップスケーリングして、表示形式(例えば、GR又はGB形式)からソース形式に変換することができる(プロセスブロック238)。いくつかの実施形態では、副画素レイアウトリサンプラブロック56は、欠落している色成分に対応する画像データを表示画素画像データ72に追加することにより、ソース形式に変換することができる。
図示目的で、表示画素画像データ72を表示形式からソース形式に変換するためのプロセス298の一実施形態を、図28に示す。一般的に、プロセス298は、表示画素画像データ内の欠落している色成分を決定することと(プロセスブロック300)、表示画素画像データに対応する表示画素が最後の画素であり、かつ画像が奇数の画像画素を含むか否かを判定することと(判定ブロック302)、表示画素が最後の画素であり、かつ画像が奇数の画素を含む場合に後続のダミー画素を生成することと(プロセスブロック304)を含む。加えて、プロセス298は、欠落している成分を直前又は直後の表示画素画像データ内の対応する色成分に設定することを含む(プロセスブロック306)。いくつかの実施形態では、プロセス298は、ディスプレイパイプライン36内に形成された回路接続に基づいて実施することができる。加えて又は代わりに、いくつかの実施形態では、プロセス298は、コントローラプロセッサ50などの処理回路を用いてコントローラメモリ52などの有形的非一時的コンピュータ可読媒体に記憶された命令を実行することにより実施することができる。
したがって、いくつかの実施形態では、副画素レイアウトリサンプラブロック56は、現在の表示画素に対応する表示画素画像データ72から欠落している成分を決定することができる(プロセスブロック300)。例えば、表示画素画像データ72がGR形式である場合、副画素レイアウトリサンプラブロック56は、青色成分が欠落していることを決定することができる。一方、表示画素画像データ72がGB形式である場合、副画素レイアウトリサンプラブロック56は、赤色成分が欠落していることを決定することができる。
ソース形式(例えば、RGB形式)に変換するために、コントローラ42は、副画素レイアウトリサンプラブロック56に直前又は直後の表示画素画像データから欠落している色成分の画像データをコピーするように命令することができる(プロセスブロック306)。例えば、青色の色成分が現在の表示画素画像データから欠落している場合、副画素レイアウトリサンプラブロックは、直前の表示画素画像データから現在の表示画素画像データに青色成分の画像データをコピーし、現在の表示画素画像データから直前の表示画素画像データに赤色成分の画像データをコピーすることができる。
したがって、現在の表示画素が最後の表示画素であり、かつ画像が奇数の画像画素を含む場合、後続の表示画素画像データは、色成分の画像データを現在の表示画素画像データと取り替えるために利用可能でないことがある。したがって、コントローラ42は、副画素レイアウトリサンプラブロック56に後続のダミー画素を生成するように命令することができる(プロセスブロック304)。いくつかの実施形態では、ダミー画素は、それぞれの色成分をゼロに設定した画像データを含むことができる。他の実施形態では、ダミー画素は、他の表示画素画像データのコピーとする、及び/又は色成分を任意の好適な値に設定した画像データを含むことができる。このようにして、副画素レイアウトリサンプラブロック56は、画像を表示するために使用されると向上した知覚される画像品質を提供する表示画素画像データ72を決定することができる。
上述したように、いくつかの実施形態では、圧縮ゲインマップ90は、相対的に、例えば、別の画素位置126に対して、画素位置126に関連付けられたゲイン値を示すことができる。そのような実施形態では、ディスプレイパイプライン56は、圧縮ゲインマップ90を展開して、それによって展開効率(例えば、画素位置に関連付けられたゲイン値が決定される速度)が制限される場合に、データ依存性に遭遇することがある。
展開効率を改善することを容易にするために、いくつかの実施形態では、画素位置126及び関連付けられたゲイン値は、例えば、非圧縮ゲインマップ170を複数の非圧縮ゲインマップ170に分割することにより、複数の画素領域にグループ化することができる。それぞれの非圧縮ゲインマップ170を圧縮することにより、画素領域のうちの1つにそれぞれ対応する複数の圧縮ゲインマップ90を決定することができる。このようにして、異なる画素領域内の画素位置に関連付けられたゲイン値の間のデータ依存性を低減することができる。実際に、このようにして複数の圧縮ゲインマップ90を実装することにより、ディスプレイパイプライン56が、ゲイン値が決定される順序、したがって、圧縮ゲインマップへのアクセス(例えば、フェッチ)パターンを変更することを可能にすることができる。いくつかの実施形態では、ディスプレイパイプライン56は、ゲイン値決定順序を制御して、例えば、ランダムアクセスパターンを実行することにより、メモリアクセス効率を改善することができる。
上述の具体的な実施形態は、例として示されたものであり、これらの実施形態は、様々な修正形態及び代替形態の影響を受けやすいものであり得ることを理解するべきである。更に、特許請求の範囲が、開示された特定の形態に限定されず、むしろこの開示の趣旨と意図の範囲にある全ての修正物、均等物、及び代替物を対象として含むことを理解されたい。