(57)【要約】【課題】メディアプロセッサ平行命令を利用することによってデータレベル並行性を使用して四面体補間計算のための効率的な方法を提供する。【解決手段】画像処理システムのための色空間を変換する方法は、マッピングされた入力ポイントを含む四面体を識別するためにＣＭＹＫ値の小数値を使用し、デルタ分数（小数値の差分）を計算し、３Ｄルックアップテーブルから四面体ノード値ＣＭとＹＫを取り出し、補間出力を計算する命令の中で直接に前記値を使用し、二重命令または四重命令の使用に基づいて、補間出力をパッキングし、バイト単位のマッピングを使用してパックされた補間出力を調整することを含む。【選択図】図２
2007293863.tif 000002
【特許請求の範囲】
【請求項１】
マッピングされた入力ポイントを含む四面体を識別するためにＣＭＹＫ値の小数値を使用し、デルタ分数を計算することと、
３Ｄルックアップテーブルから四面体ノード値ＣＭとＹＫを取り出すことと、
補間出力を計算する命令の中で直接的に前記値を使用することと、
二重命令または四重命令の使用に基づいて、補間出力をパッキングすることと、
バイト単位のマッピングを使用してパックされた補間出力を調整することと、
を含む画像処理システムのための色空間を変換する方法。
【請求項２】
データレベル並行性をメディアプロセッサに与えることと、
８ビット演算である固定されたＨＷ精度を提供することと、
８ビットで符号なしの値でノード値を与えることと、
出力値は、
出力i＝１／１２８（１２８＊Ｐ０I＋Ｘfrc＊ΔＸi＋Ｙfrc＊ΔＹI＋Ｚfrc＊ΔＺi）
の方程式を満たし、
ここでｉ∈｛Ｃ，Ｍ，Ｙ，Ｋ｝であることを含む、データ処理方法。
【請求項３】
前記方程式：出力i＝１／１２８（１２８＊Ｐ０i＋Ｘfrc＊ΔＸi＋Ｙfrc＊ΔＹI＋Ｚfrc＊ΔＺi）が、
【数１】
2007293863.tif 000006
を含む処理により、行列形式での四面体の四つのポイントの小数値の差分演算を使用して修正することができ、この場合ｉ∈｛Ｃ，Ｍ，Ｙ，Ｋ｝であり、Ｐ０i，Ｐ１i，Ｐ２i，Ｐ３iは四つの四面体ポイントを表し、値ΔＸi、ΔＹi、ΔＺiが計算される、請求項２に記載の方法。
【請求項４】
前記処理が前記小数値の順序付けることを含み、前記順序付けにより前記小数値の差分が、大きな数から小さな数の減算となるためつねに正の結果であることを保証され、四面体のケースに適用して前記マッピングされた入力ポイントを含む特定の四面体を識別するために使用できる、請求項３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理方法及びシステムに関する。本発明は画像処理装置及び技法にも関する。本発明は、さらに画像処理用途における色空間変換にも関する。
【背景技術】
【０００２】
四面体補間を用いる三次元（３Ｄ）ルックアップに基づいた色空間変換において、補間ステージでは入力三次元空間内の現在位置に最も近い四つのノードの所与のＣＭＹＫ値に基づいて推定［ＣＭＹＫ］出力値を計算する。このような方法論は、色の変換が相対的に円滑であり、変換が隣接するノード間でほぼ区分的に線形であるようにノードが十分近くに設置されていると仮定している。
【０００３】
近似レベル（及び結果として生じる色変換精度）は、通常、ノードの数、その相対的な位置、及び所与の近隣における色変換の非線形性に依存している。既存の方法である補間計算等式は以下のように提供できる。
【０００４】
出力i＝１／１２８（１２８＊Ｐ０i＋Ｘfrc＊ΔＸi＋Ｙfrc＊ΔＹI＋Ｚfrc＊ΔＺI）
但し、ｉ∈｛Ｃ，Ｍ，Ｋ，Ｙ｝
【０００５】
前記方程式は、出力色成分（Ｃ、Ｍ、Ｙ及びＫ）ごとに計算することが可能であり、この場合ノードデルタ（差分）値（ΔＸ、ΔＹ、ΔＺ）は入力色空間内（例えば、（Ｌ，ａ，ｂ）または（Ｙ，Ｃｂ，Ｃｒ）内）にマッピングされた入力ポイントを含む四面体に依存している。ある応用例では、入力色空間の各立方体は同じサイズの重複しない六個の四面体に分割できる。或いは、空間を五個の四面体（つまり、さらに少ない数）にも分割できるが、この場合、中心の四面体はより大きなサイズを有し、そのため計算を若干複雑化する。したがって、本明細書では六個の四面体のケースに焦点を当てる。以下の表１は、既存の方法に関して考えられるすべての四面体のノード値デルタ（差分）計算を描いている。
【０００６】
【表１】
2007293863.tif 000003
【０００７】
入力ポイントが存在する特定の四面体は、小数デルタ値（ΔＸ、ΔＹ、ΔＺ）を単に順序付けることによって容易に決定できる。補間アルゴリズムは、四捨五入を使用して、最終的な結果を好ましい出力範囲（例えば８ビット出力の場合、０と２５５の間）に制限して出力値を計算する。補間ＣＭＹＫポイントが計算された後、その色成分のそれぞれは四つの異なる１Ｄ（一次元）ルックアップテーブルに対するアドレスインデックスとして使用できる。四つのルックアップテーブルからアクセスされる値は、最終的な出力値となる調整済みのＣＭＹＫ値を表す。次に、出力チャネル（Ｃ、Ｍ、Ｙ、及びＫ）ごとに、マッピングされたＬａｂまたはＹＣＣ入力ポイントに最も近いノードを表す四つの出力値が表の中で調べられ、近似ＣＭＹＫ出力値を求めるために四面体補間ステップで使用される。結果として生じる出力値は、次に四つの１Ｄルックアップテーブルを使用してバイトごとにマッピングすることによって調整される。
【０００８】
四面体補間を用いる３Ｄルックアップテーブルを介した色空間変換は、ある色空間（例えば、ＲＧＢまたはＬａｂ）から別の色空間（例えば、印刷のためのＣＭＹＫ）に変換するための周知のアルゴリズムである。汎用プロセッサ上でのソフトウェア実装では、例えば、計算ステップは逐次方式で、つまり一度に一つの色分解（色セパレーション）ずつ処理される。特定の四面体の中の部分的位置は色分解ごとに同じであるが、ノード値は異なるため、色分解ごとに個別の計算を必要とする。対照的に、該アルゴリズムは、データをパッキングし、カラーチャネルの変換を並行して処理することによってハードウェアで効率的に実現できる。この応用例を利用することによって、データレベル並行性のある特定のメディアプロセッサは、汎用プロセッサ及び共通ハードウェアへの実装と比較して、より高性能の色空間変換を実現できると考えられている。
【０００９】
一つの公知の従来技術による応用例は、色空間変換を実行する際の効率と速度の改善のための補間技法を含む。このような場合、放射補間技法（動径基底補間法:radial interpolation）は、連続するサブキューブを生成することによって補間を達成できる。生成された最後のサブキューブの頂点の値は、補間の結果として使用できる。サブキューブは、選択された頂点値を、残りの頂点のそれぞれの頂点値で平均することによって生成される。枝刈り放射状補間技法（pruned radial interpolation）は、補間の結果を生成するために初期に選択された立方体の頂点値の部分集合を利用し、それによって放射補間の効率を改良する。四面体補間技法は、連続するサブキューブを作成することによって補間を達成する。
【００１０】
生成された最後のサブキューブの頂点の値は、補間の結果として使用できる。サブキューブは、一連の論理ＡＮＤ演算、論理ＯＲ演算及び平均化演算を通してサブキューブ頂点値の計算を可能にする数学関係式を適用することによって生成される。枝刈り四面体補間技法は補間の結果を生成するために初期に選択された立方体の頂点値の部分集合を利用し、それによって四面体補間の効率を改良する。枝刈り放射補間、及び枝刈り四面体補間の共通ハードウェアへの実装は、枝刈り放射補間、または枝刈り四面体補間のどちらかの実行を可能にするために入力頂点値の多重化を用いる該二つの技術の該共通のハードウェア構造を使用する。非対称枝刈り放射補間と、非対称枝刈り四面体補間が、色空間の特徴に従って変化する分解能の色空間にわたって分散される補間データ値を使用する補間を可能にする。補間データ値を非対称枝刈り放射補間ハードウェア及び非対称枝刈り四面体補間ハードウェアに多重化すると、共通ハードウェアでの実装が可能になる。
【００１１】
別の従来の技術は、計算の複雑さを引き下げるために、階数微分及び色差の点で補間を修正することによる四面体補間を含む。
【００１２】
これらの従来の技術にまつわる問題の一つは、このような方法論及び関連装置が非効率的であり、幅広い範囲の画像処理用途に容易に適応できないという点である。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
これらの問題を克服するために、本明細書に開示されている実施形態は、ソフトウェア処理とハードウェア処理の両方における効率の上昇のために実現できると考えられる。本発明は、メディアプロセッサ平行命令を利用することによってデータレベル並行性を使用して四面体補間計算のための効率的な方法を提供する。
【課題を解決するための手段】
【００１４】
したがって、本発明の一態様は改善されたデータ処理システム及び方法を提供する。
【００１５】
本発明の別の態様は、改善された画像処理システム及び方法を提供する。
【００１６】
本発明のさらなる態様は、画像処理用途においてさらに高性能の色空間変換を実現させることによって近似された出力ポイントのさらに効率的な計算を提供する一方で、メディアプロセッサ平行命令を利用することによってデータレベル並行性を使用して四面体補間計算のための効率的な方法を提供する。
【００１７】
即ち、請求項１に係る発明は画像処理システムのための色空間を変換する方法であって、マッピングされた入力ポイントを含む四面体を識別するためにＣＭＹＫ値の小数値を使用し、デルタ分数を計算することと、３Ｄルックアップテーブルから四面体ノード値ＣＭとＹＫを取り出すことと、補間出力を計算する命令の中で直接的に前記値を使用することと、二重命令または四重命令の使用に基づいて、補間出力をパッキングすることと、バイト単位のマッピングを使用してパックされた補間出力を調整することと、を含むことを特徴とする。
【００１８】
請求項２に係る発明はデータ処理方法であって、データレベル並行性をメディアプロセッサに与えることと、８ビット演算である固定されたＨＷ精度を提供することと、８ビットで符号なしの値でノード値を与えることと、出力値は、
出力i＝１／１２８（１２８＊Ｐ０I＋Ｘfrc＊ΔＸi＋Ｙfrc＊ΔＹI＋Ｚfrc＊ΔＺi）  
の方程式を満たし、ここでｉ∈｛Ｃ，Ｍ，Ｙ，Ｋ｝であることを含むことを特徴
とする。
【００１９】
請求項３に係る発明は、請求項２に記載の方法において、
前記方程式：出力i＝１／１２８（１２８＊Ｐ０i＋Ｘfrc＊ΔＸi＋Ｙfrc＊ΔＹI＋Ｚfrc＊ΔＺi）が、
【数１】
2007293863.tif 000004
を含む処理により、行列形式での四面体の四つのポイントの小数値の差分演算を使用して修正することができ、この場合ｉ∈｛Ｃ，Ｍ，Ｙ，Ｋ｝であり、Ｐ０i，Ｐ１i，Ｐ２i，Ｐ３iは四つの四面体ポイントを表し、値ΔＸi、ΔＹi、ΔＺiが計算されることを特徴とする。
【００２０】
請求項４に係る発明は、請求項３に記載の方法において、前記処理が前記小数値の順序付けることを含み、前記順序付けにより前記小数値の差分が、大きな数から小さな数の減算となるためつねに正の結果であることを保証され、四面体のケースに適用して前記マッピングされた入力ポイントを含む特定の四面体を識別するために使用できることを特徴とする。
【発明の効果】
【００２１】
前述された態様及び他の目的と優位点は、ここで本明細書に説明されるように達成できる。メディアプロセッサにおけるデータレベル並行性を活用する、データレベル並行性を使用する四面体補間計算のためのシステム及び方法が開示されている。３Ｄルックアップテーブルの中の四面体のポイント（頂点）がメモリの中にともにパックされる場合、補間計算はそれらをアンパックするための追加の命令なしに実現できる。補間方程式の代数操作により、四面体ノード値の代わりに分数（小数）係数（ｆｒａｃｔｉｏｎ  ｃｏｅｆｆｉｃｉｅｎｔ）での差を計算することが可能になる。この技法はオーバフロー（桁あふれ）またはアンダーフロー（下位桁あふれ）なしで完全精度を保つだけではなく、３Ｄルックアップからのパックされたデータはそのまま（アンパックせずに）直接使用することもでき、それによって色空間変換全体をさらに高速に実施することを可能にし、メディアプロセッサ上での直接コピー画像経路の一部を実現する。このようなシステム及び方法により、必要とされる製品設計速度を取得する一方で、直接コピーパイプラインの実施が顧客指定で要求される必要性能速度で機能できるようになる。
【発明を実施するための最良の形態】
【００２２】
図１を参照すると、好適な実施形態に従ってデータレベル並行性を使用して四面体補間計算の基本的な機能アーキテクチャを示すシステム１００のブロック図が描かれている。四面体補間を用いる３Ｄルックアップテーブルを介した色空間変換はある色空間（例えば、ＲＧＢまたはＬａｂ）１０１を別の色空間（例えば、印刷用のＣＭＹＫ１０８）に変換するための周知のあるアルゴリズムである。データレベル並行性は、ＨＷ精度演算１０３でカラーチャネルにつき８ビット値の四面体の頂点が、３Ｄルックアップテーブル１０４の形で、一つの３２ビットワードとしてメモリにともにパックされる場合に、メディアプロセッサ１０２（ＩＮＴＥＬ  ＭＸＰ５８００等）で発生する。その場合、補間計算は、これらをアンパックするための余分な命令なしで実現できる。行列形式の補間は、メディアプロセッサ平行命令及び３Ｄルックアップテーブルからパック済みのデータ１０５を構成することによって取得でき、このようにして既存のＨＷ精度の範囲内で、確度を損失することなく実現できる。補間方程式の代数操作は、次に分数係数（ｆｒａｃｔｉｏｎａｌ  ｃｏｅｆｆｉｃｉｅｎｔ）１０７の差の計算を可能にするために適用できる。その結果、色空間変換が出力チャネル１０８に適用できる。
【００２３】
図２を参照すると、好適な実施形態によりデータレベル並行性を活用して四面体補間計算の基本的な機能アーキテクチャを実現するための論理的な操作ステップを描く高レベルフローチャート２００が描かれている。ブロック２０１に示されているように、第一の処理が開始できる。その後、ブロック２０２に描かれているように、メディアプロセッサの平行命令が、ブロック２０３に描かれているように固定されたＨＷ精度演算（例えば８ビット）を使用して構成できる。その後、ノード値ではなく、ブロック２０４に示されるような小数値で減算を行うことによって、方程式：
出力i＝１／１２８（１２８＊Ｐ０i＋Ｘfrc＊ΔＸi＋Ｙfrc＊ΔＹI＋Ｚfrc＊ΔＺI）
但し、ｉ∈｛Ｃ，Ｍ，Ｙ，Ｋ｝
が、ブロック２０６で描かれているような補間と関連付けられた乗累算のための二重命令（dual instruction）を使用することによる行列形式の補間によって、ブロック２０５に描かれているように再編成できる。形成された代替補間計算方程式は以下のように提供され、
出力i＝１／１２８（Δ０＊Ｐ０I＋Δ１＊Ｐ１I＋Δ２＊Ｐ２I＋Δ３＊Ｐ３I）
ここで、ｉ∈｛Ｃ，Ｍ，Ｙ，Ｋ｝であり，Ｐ０I，Ｐ１I，Ｐ２I，Ｐ３Iは四つの四面体のポイント（頂点）を表し、値ΔＸi、ΔＹi、ΔＺiが計算される。ブロック２０８に描かれているような小数値の順序付けによって、プロセスは小数値のデルタ（差分）が大きい数から小さい数の減算のためにつねに正の結果であり、したがってブロック２０９に描かれているようにマッピングされた入力ポイントを含む特定の四面体を特定するために使用できることを実質的に保証することができる。これは、あらゆる四面体のケースに適用できる。結局、これはブロック２１０に示されているように補間出力の計算における符号なしの二重（または四重）命令の使用に導く。
【００２４】
図３Ａから図３Ｅは、好適な実施形態及び代替的な実施形態による補間プロセス３００のグラフィック表現を描いている。図３Ａに描かれているプロセス３００は、データレベル並行性を使用する四面体補間計算のための方法の補間体積を描いている。図３Ｂは四面体補間のための面ポイントを描いている。図３Ｃは該面ポイントに関する四面体を描いている。図３Ｄは四面体補間のための頂点ポイントを描いている。さらに図３Ｅは該四つの頂点ポイントを示す四面体補間を描いている。
【００２５】
前記に基づき、メディアプロセッサ（例えばＩＮＴＥＬ  ＭＸＰ５８００等）におけるデータレベル並行性を利用することにより、つまり３Ｄルックアップテーブル内に四面体のポイント（通常カラーチャネルごとの８ビット値）が、例えば一つの３２ビットワードとしてメモリにともにパックされる場合、補間計算はそれらをアンパックするための余分な命令なしに実現できることが理解できる。補間方程式の代数操作により、四面体ノード値の代わりに分数係数での差の計算が可能になる。
【００２６】
本書に説明されている本発明の技法はオーバフロー又はアンダーフローのない完全精度を保つだけではなく、３Ｄルックアップテーブルからパック済みデータはそのままで（アンパックすることなく）直接的に使用でき、それにより色空間変換全体をより高速に実施することを可能にする。この方法はメディアプロセッサでの直接コピー画像経路の一部として実現される。この方法により、直接コピーパイプラインの実施が、カスタマ指定で要求されるような必要性能で動作できるようになる。この方法を使用しない場合、色空間変換の性能は必要とされる製品設計速度を満たすことができないであろう。
【００２７】
メディアプロセッサ平行命令を利用するため、及び近似出力ポイントのより効率的な計算を行うために、アルゴリズムをわずかに修正することができる。費用対性能の理由から、大部分のメディアプロセッサは固定されたＨＷ精度演算（例えば８ビット）を使用する。ノード値は８ビットの符号なしの値であるため、表１に関する既存の等式での減算演算の結果は、完全精度を保つために通常９ビットを必要とする。
【００２８】
したがって、既存の方程式がそのままで使用されると、精度の全般的な損失が発生する可能性がある。しかしながら、既存の方程式を行列形式に再編することによって、ノード値に対してではなく小数値に対して減算を行う機会が生じる。小数値は７ビットの符号なしの値に限定されるため、減算演算の結果は８ビットの精度を必要とし、このようにして精度を失うことなく既存のＨＷ精度の中で実現できる。これは補間に関連する乗累算のために二重命令を使用することを特に魅力的にする。
【００２９】
小数値に順序を付けることによって、分数のデルタが、大きい数から小さい数の減算のためにつねに正の値になることが保証できるため、これはマッピングされた入力ポイントを含む特定の四面体を識別するために使用できる。これはあらゆる四面体のケースに適用できる。以下に、考えられるすべての四面体のためのデルタ（差分）分数を示す。結局、これは補間出力の計算における符号なし二重（または四重）命令の使用に導く。したがって、データレベル並行性を用いたメディアプロセッサにおける四面体補間段階の実施は、修正され、形成された方程式の最後の項及び以下の表２に定められる差分の定義に続いて効率的に計算できる。
【００３０】
ここですべての四面体に適用できる一連のステップを要約する。マッピングされた入力ポイントを含む四面体を識別するために小数値を使用した後、デルタ分数（小数値の差分）が以下に従って計算できる。次に、四面体ノード値ＣＭとＹＫ（或いはＣＭＹＫが３２ビットワードでのパッキングである）が３Ｄルックアップテーブルから取り出され、補間出力を計算する符号なし−二重（または四重）の乗累算命令で直接的に使用できる。ＣＭＹＫチャネルの補間がいったん計算されると、補間出力は二重（または四重）命令のためにパッキングされ、トーン再生曲線を使用するバイト単位のマッピングを使用して直接的に調整できる。
【００３１】
以下の表２は、例えば修正された方法に関してデルタ分数の計算を描いている。
【００３２】
【表２】
2007293863.tif 000005
【００３３】
修正された方法に関する代替補間計算方程式は以下のとおりに示される。
出力i＝１／１２８（Δ０＊Ｐ０i＋Δ１＊Ｐ１i＋Δ２＊Ｐ２i＋Δ３＊Ｐ３i）
この場合、ｉ∈｛Ｃ，Ｍ，Ｙ，Ｋ｝であり、Ｐ０i，Ｐ１i，Ｐ２i，Ｐ３iは四つの四面体のポイント（頂点）を表し、値ΔＸi、ΔＹi、ΔＺiが計算される。
【００３４】
実施形態がモジュールの様態で実現できることに留意されたい。このようなモジュールは、例えばコンピュータシステムの電子構成要素等のハードウェアモジュールを構成してもよい。このようなモジュールはソフトウェアモジュールをも構成してもよい。コンピュータプログラミング技術では、ソフトウェアモジュールは、通常、特定のタスクを実行する、あるいは特定の抽象データタイプを実現するルーチンとデータ構造の集合体として実現できる。
【００３５】
ソフトウェアモジュールは、通常、二つの部分から構成されている。第一に、ソフトウェアモジュールは、他のモジュールまたはルーチンによってアクセスできる定数、データタイプ、変数、ルーチン等を列挙することができる。第二に、ソフトウェアモジュールは非公開（つまりおそらくモジュールに対してだけアクセス可能）であり、モジュールが基づいているルーチンまたはサブルーチンを実際に実現するソースコードを含む実現物として構成できる。したがって、モジュールという用語は、本明細書に使用されているように、ソフトウェアモジュールまたはその実現物を指すことができる。このようなモジュールは、設計上の考慮及び媒体配信目標に応じて、伝送媒体と記録可能媒体を含む、信号担持媒体を通して実現できるコンピュータメモリに常駐する命令媒体に基づいてプログラム製品を形成するために、別々にまたは併せて活用できる。したがって、このような命令媒体は、コンピュータメモリから取り出され、例えばマイクロプロセッサのような処理装置を介して処理できる。
【００３６】
例えば図１から図２に関して前述されたシステム及び方法は、一つまたは複数のこのようなモジュールとして実現できる。このようなモジュールは「命令モジュール」とも呼ぶことができ、データ処理装置のメモリの中に記憶されてよい。このような命令モジュールは結果として生じるプログラム製品（つまり、プログラム「コード」）の様態で実現されてよい。モジュール及びコードという用語は、同じ装置または媒体を参照するために本明細書では置き換え可能に使用できることに留意されたい。同様に、図１から図２に描かれている特長の多くはこのようなモジュールによって、あるいはこのようなモジュールの形で提供できる。
【図面の簡単な説明】
【００３７】
【図１】好適な実施形態によるデータレベル並行性を使用する四面体補間計算のための基本的な機能アーキテクチャを描くブロック図である。
【図２】好適な実施形態によるデータレベル並行性を使用する四面体補間計算のための論理的な操作ステップを示す動作のフローチャートである。
【図３Ａ】好適な実施形態による補間体積を示す図である。
【図３Ｂ】好適な実施形態による補間体積を示す図である。
【図３Ｃ】好適な実施形態による補間体積を示す図である。
【図３Ｄ】好適な実施形態による補間体積を示す図である。
【図３Ｅ】好適な実施形態による補間体積を示す図である。
【図１】
2007293863.tif 000007
【図２】
2007293863.tif 000008
【図３Ａ】
2007293863.tif 000009
【図３Ｂ】
2007293863.tif 000010
【図３Ｃ】
2007293863.tif 000011
【図３Ｄ】
2007293863.tif 000012
【図３Ｅ】
2007293863.tif 000013