JP2010517442A - 高速フィルタ型のyuvからrgbへの変換 - Google Patents

高速フィルタ型のyuvからrgbへの変換 Download PDF

Info

Publication number
JP2010517442A
JP2010517442A JP2009547402A JP2009547402A JP2010517442A JP 2010517442 A JP2010517442 A JP 2010517442A JP 2009547402 A JP2009547402 A JP 2009547402A JP 2009547402 A JP2009547402 A JP 2009547402A JP 2010517442 A JP2010517442 A JP 2010517442A
Authority
JP
Japan
Prior art keywords
chrominance
value
contribution
values
output value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009547402A
Other languages
English (en)
Other versions
JP2010517442A5 (ja
JP4886043B2 (ja
Inventor
カーロブ ドナルド
コーザム ギレス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2010517442A publication Critical patent/JP2010517442A/ja
Publication of JP2010517442A5 publication Critical patent/JP2010517442A5/ja
Application granted granted Critical
Publication of JP4886043B2 publication Critical patent/JP4886043B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/56Processing of colour picture signals
    • H04N1/60Colour correction or control
    • H04N1/6016Conversion to subtractive colour signals
    • H04N1/6019Conversion to subtractive colour signals using look-up tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/64Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
    • H04N1/646Transmitting or storing colour television type signals, e.g. PAL, Lab; Their conversion into additive or subtractive colour signals or vice versa therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/67Circuits for processing colour signals for matrixing

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Color Image Communication Systems (AREA)
  • Processing Of Color Television Signals (AREA)
  • Facsimile Image Signal Circuits (AREA)

Abstract

それぞれの可能な成分出力R、GおよびBの値を、それぞれの可能な成分入力Y、UおよびVの全ての値について予め計算することができる。Y、UおよびV入力の各寄与をレジスタにロードし、オーバーフローせずに並列に加算して、YUV入力から計算コストの低いRGB出力を生成することができる。一実施形態では、R、GおよびBの各々に対するY、UおよびVの寄与を、予め計算された表から取り出す。R、GおよびBの各値に対するYUVの寄与は3つのデータ要素にパックされ、共に並列に加算され、その結果としてRGB出力の値が得られる。

Description

本発明は、高速フィルタ型のYUVからRGBへの変換に関する。
この背景技術は、本出願の基本的な背景を提供することが意図されており、解決すべき特定の問題を説明することは意図されていない。
コンピュータのモニタは、RGB(赤、緑、青)の光を含む色空間(color space)内で色を放射する。赤、緑、および青の光を合わせることによって可視スペクトルの全ての色を生成することができるが、モニタは、視覚スペクトルの制限された領域(すなわち、範囲)のみ表示可能である。RGB形式(format)で提示される各画素(pixel)は、画素を生成するR、G、およびBの各々について0から255の範囲の別個の値を含む。しかしながら、コンピュータは、他の様々な色空間の色を放射することもできる。例えば、別の色空間では輝度(luminance)(Y)、黄の色量に対する青のクロミナンス(chrominance)(UまたはCb)、およびシアンの色量に対する赤のクロミナンス(VまたはCr)で構成されるデータを含むことがある。RGBでは、YUV形式の画素も、Y、UおよびVの各々について別個の値で構成される。しかしながら、R、GおよびBの各値の範囲は、Y、UおよびVの範囲と直接は対応しない。例えば、或るYUV形式では、Yの値の範囲は16から235であるが、UおよびVの範囲は16から239である。したがって、コンピュータがYUVのビデオコンテンツをRGBで正確に表示するためには、各画素のYUVの値を、対応するRGBの値に変換する必要がある。
或るビデオ形式から別のビデオ形式へ変換するための現在の方法は、計算コストが高く、出力を生成するために行列変換(matrix transform)を通じて入力データを処理する必要があることがある。YUVからRGBに変換するために、各画素からのデータを、7回の乗算操作と11回の加減算操作の行列変換を通じて処理しなければならない。実際には、コンパイラは、複数の行列変換の共通する部分式を減少させることができる。例えば、YUVからRGBへ変換するための行列変換を、5回の乗算操作と7回の加減算操作に容易に減らすことができる。しかしながら、コンパイラが減少させた行列変換であっても計算コストは高い。画素変換が複雑性のために、このプロセスは典型的に、実用的な時間内で実行するためのSIMD(Single Instruction, Multiple Data)パラレル処理の拡張を含め、広範囲なサポートが必要とする。さらに、SIMD拡張を実装することができないコンピュータは、画素変換を容易に実行することができない。
この課題を解決するための手段は、以下の詳細な説明でさらに説明される概念の選択を簡略化した形で紹介するために提供される。この課題を解決するための手段は、特許請求する対象の主要な特徴または本質的な特徴を特定するようには意図されておらず、また特許請求する対象の範囲を限定するようにも意図されていない。
それぞれの可能な成分(component)の出力R、G、およびBの値を、それぞれの可能な成分の入力Y、U、およびVの全ての値について予め計算することができる。次いで、Y入力、U入力、およびV入力の各寄与(contribution)を、オーバーフローせず並列でレジスタにロードして加算し、結果として計算コストの高くないRGB出力をYUV入力から得ることができる。一実施形態では、R、GおよびBの各々に対するY、UおよびVの寄与を、予め計算された表(table)から取り出す。R、GおよびBの各値に対するYUVの寄与を、3つのデータ要素(data element)にパックし、一緒に並列で加算して、結果としてRGB出力の値を得る。
YUV形式のデータをRGB形式のデータに変換する方法を実装するコンピュータを示す図である。 コンピュータディスプレイのためにYUVビデオデータをRGBデータに変換する方法を示す図である。 コンピュータディスプレイのためにYUVビデオデータをRGBデータに変換する方法で使用するための予め計算された表を示す図である。 コンピュータディスプレイのためにYUVビデオデータをRGBデータに変換する方法で使用するための予め計算された表を示す図である。 コンピュータディスプレイのためにYUVビデオデータをRGBデータに変換する方法で使用するための予め計算された表を示す図である。 コンピュータディスプレイのためにYUVビデオデータをRGBデータに変換する方法で使用するためのメモリ要素を示す図である。 YUV入力からRGB出力の値を決定するためのメモリ要素の並列加算を示す図である。 YUV入力からRGB出力の値を決定するためのメモリ要素の並列加算を示す図である。
以下の文章では、多くの様々な実施形態についての詳細な説明を記述するが、本説明の法的な範囲は特許請求の範囲の文言によって定義されることを理解されたい。全ての可能な実施形態を説明することは、不可能ではないにしても現実的ではないので、この詳細な説明は単なる例示として解釈されるべきであり、全ての可能な実施形態を説明するものではない。現在の技術または本特許出願の日以降に開発される技術を使用して、多くの代替的な実施形態を実装することができ、これらの技術も特許請求の範囲内にある。
或る用語について「本明細書で使用されるとき、用語「〜」は、を意味するように定義される」という文、または同様の文を使用して本明細書で明確に定義されない限り、その用語の意味をその明白な意味または通常の意味を超えて明示的または暗示的に限定する意図はなく、そのような用語は、本明細書のいずれかのセクションのいずれかの記述(特許請求の範囲の文言を除く)に基づく範囲に限定されると解釈されるべきではない。特許請求の範囲に記載される任意の用語は、単一の意味に一致するように本明細書内の用語で称されるが、これは読者を混乱させないように明確性を目的とするものに過ぎず、そのような請求項の用語が、暗示または他のものによってその単一の意味だけに限定されることは意図していない。最後に、請求項の構成要素は、どのような構造にも言及しない単語「手段」および機能を記載することによって定義されない限り、任意の請求項の要素の範囲が米国連邦法典第35編第112条第6段落の適用に基づいて解釈されることは意図していない。
図1は、本明細書で説明される方法を提供するように動作することができる適切なコンピューティングシステム環境100の例を図示している。コンピューティングシステム環境100は、適切なコンピューティング環境の一例に過ぎず、特許請求の範囲における方法および装置の使用または機能の範囲に関して、いかなる限定を示唆することも意図されていないことに留意されたい。コンピューティングシステム環境100はまた、この例示的な動作環境100内に図示された複数のコンポーネントのいずれか1つのコンポーネントまたはその組み合わせに関して、どのような依存関係または要件を有するように解釈されるべきでもない。
図1を参照すると、特許請求される方法のブロックを実装するための例示的なシステムは、汎用のコンピューティング装置をコンピュータ110の形で含む。コンピュータ110のコンポーネントには、処理装置120、システムメモリ130、システムメモリ130およびビデオインタフェース190を含め様々なシステムコンポーネントを処理装置120と結合するシステムバス121が含まれるが、これらには限定されない。
コンピュータ110は、リモートコンピュータ180などの1つまたは複数のリモートコンピュータへの論理接続を使用して、LAN171および/またはWAN173を介して、モデム172または他のネットワークインタフェース170を介して、ネットワーク化された環境で動作することができる。
コンピュータ110は、典型的に様々なコンピュータ読取可能媒体を含み、該コンピュータ読取可能媒体は、コンピュータ110によってアクセス可能な任意の使用可能媒体とすることができ、揮発性および不揮発性媒体、取外し可能および取外し不能媒体の両方を含む。システムメモリ130は、ROM131およびRAM132などの揮発性および/または不揮発性メモリの形式のコンピュータ記憶媒体を含む。ROMは、基本入出力システム(BIOS)133を含むことができる。RAM132は典型的に、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137を含む、データおよび/またはプログラムモジュールを含む。コンピュータ110は、ハードディスクドライブ141、磁気ディスク152と読み書きする磁気ディスクドライブ151、および光ディスク156と読み書きする光ディスクドライブ155などの他の取外し可能または取外し不能、揮発性または不揮発性のコンピュータ記憶媒体を含むこともできる。ハードディスクドライブ141、151、および155は、インタフェース140、150を介してシステムバス121とインタフェースすることができる。
ユーザは、キーボード162、および通常はマウス、トラックボールもしくはタッチパッドと呼ばれるポインティングデバイス161などの入力装置を通じて、コンピュータ20にコマンドおよび情報を入力することができる。他の入力装置(図示せず)には、マイクロホン、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナなどが含まれ得る。これらおよび他の入力装置は、システムバスに結合されたユーザ入力インタフェース160を通じて処理装置120に接続されることが多いが、パラレルポート、ゲームポート、もしくはUSBなどの他のインタフェースとバス構造によって接続されてもよい。モニタ191または他のタイプのディスプレイ装置を、ビデオインタフェース190などのインタフェースを介してシステムバス121に接続することもできる。ビデオ変換モジュール(video conversion module)192をシステムバス121に接続することができる。ビデオ変換モジュール192は、以下で説明される方法にしたがって画素を変換または修正することができる。他の実施形態では、ビデオ変換モジュール192は、コンピュータ110の別の要素のコンポーネントである。例えば、ビデオ変換モジュール192は、処理装置120および/またはビデオインタフェース190のコンポーネントとすることができる。モニタ191に加えて、コンピュータは、出力周辺インタフェース190を通じて接続することが可能な、スピーカ197およびプリンタ196などの他の周辺出力装置を含むこともできる。
本明細書で説明される本発明の機能の大部分と本発明の原理の多くは、ソフトウェアプログラムもしくは命令、およびアプリケーション固有のIC(integrated circuit)のなどのICで最も良く実装することができる。当業者は、例えば利用可能な時間、現在の技術、および経済的な考慮を理由とする恐らく著しい努力と多くの設計上の選択に関わらず、本明細書で開示される概念と原理によって導かれることで、そのようなソフトウェア命令、プログラム、およびICを最小限の実験で容易に作成することができよう。したがって、簡潔性のため、および本発明にかかる原理と概念を不明瞭にするというリスクを最小限にするために、そのようなソフトウェアおよびICについてのさらなる議論は、あったとしても、好ましい実施形態の原理と概念に関する本質に限定される。
図2は、RGB色空間内で表示するためにYUV(YCbr)形式の画素を変換することができる方法200を示す図である。本方法を、コンピュータ110の様々なコンポーネントにおいて実行することができる。一実施形態では、方法200はビデオ変換モジュール192において実行される。別の実施形態では、方法200はビデオインタフェース190において実行される。さらなる実施形態では、本方法は処理装置120で実行される。通常、RGB、YUV、およびYCbrによって、RGBおよびYUVのファミリの全てのビデオ形式を記述することができ、該RGBおよびYUVのファミリには、これらには限られないがRGB16、RGB24、RGB32、YUV、YUY2、YV12、YV20、およびI420がそれぞれ含まれる。しかしながら、当業者には理解されるであろうが、本方法を、データ単位毎の計算コストを含み得る任意の変換または修正の一部として行うこともできる。一実施形態では、本方法を使用してビデオをYUVからRBGに変換し、この場合、変換には画素毎の計算コストが必要である。
図2を参照すると、ブロック205で、行列変換を簡約化することができる。例えば、該変換を使用して、ビデオイメージを或る画素形式から別の画素形式に変換すること、またはビデオイメージの画素を修正することができる。一実施形態では、YUV形式のビデオイメージからRGBイメージへ変換するための行列変換が簡約化される。例えば、表1の行列変換を簡約化して、結果のR、GおよびBの値に対するY、UおよびVの各々の寄与を計算することができる。
Figure 2010517442
表1によると、YUVからRGBへの変換において、RGB色空間における赤の値は、或る程度の輝度(Y)と、赤からシアンの範囲の或る程度のクロミナンス(VまたはCr)とで構成することができる。同様に、緑を、或る程度の輝度(Y)と、赤からシアンの範囲の或る程度のクロミナンス(VまたはCr)と、青から黄の範囲の或る程度のクロミナンス(UまたはCb)とで構成することができる。また、青を、或る程度の輝度(Y)と、青から黄の範囲内の或る程度のクロミナンス(UまたはCb)とで構成することができる。したがって、表2のように、YUV画素からRGB画素への変換式を簡約化して、Y、UおよびV成分の寄与を強調することができる。
Figure 2010517442
表2に示されるように、入力Y、UおよびVの各々は、或る程度、結果の赤(Red)、緑(Green)、青(Blue)の出力(output)に寄与する。Y、UおよびVの各値の寄与の合計を平面的な形で(planar form)で一緒に加算して、それぞれ赤、緑、青の出力値を生成することができる。当然、成分の寄与を強調することができる他の行列変換についての他の簡約化も存在しうる。
ブロック210で、表を計算して、全てのあり得る入力値に対応する全てのあり得る出力値を決定することができる。この表を、ターゲットの形式の範囲に等しい数の値で構成することができる。例えば、ターゲットの形式がRGBであり各成分の範囲が0から255のとき、或る入力からの可能な出力値のセット全体を各々が表す、256個の値からなる3つの表が存在しうる。これらの表を、図1に関して説明した任意の形式のコンピュータメモリに格納することができる。一実施形態では、任意の可能なY、UおよびV(Y、CbおよびCr)の入力値について、R、G、およびBの出力値が計算される。例えば、図3a〜3cに図示されるように、Y305、Cb310、およびCr315の各々に対する可能な入力値は、それぞれ16〜235、16〜239、および16〜239の値とすることができる。図3a〜cの寄与値は、有効数字3桁までであるが、当該寄与を任意の有用な精度で表すことができる。R、G、およびBに対する各入力値の寄与を、表2の式を使用して計算し、表300のセットにおける対応する位置に挿入することができる。一実施形態では、Yが17の入力305が、式(Y−16)×1.164によって変換されて、表の値320の1.164が、R325、G330、およびB335の各々に対する輝度の寄与として生成される。図3bを参照すると、U(Cb)の入力310が、式(Cb−128)×−0.400と式(Cb−128)×2.018によってそれぞれ変換されて、表の値340が、G345、B350に対する各々の寄与としてそれぞれ生成される。図3cを参照すると、V(Cr)の入力315が、式(Cr−128)×1.596と式(Cr−128)×−0.831によってそれぞれ変換されて、表の値355が、R360、G365に対する各々の寄与としてそれぞれ生成される。入力範囲に対応する出力範囲について多く異なるビデオ形式を網羅している、予め計算された表を生成するための多くの他の方法も存在し得る。
ブロック215で、方法200は変換のための入力値を受信することができる。一実施形態では、画素毎の計算コストをもたらすイメージの任意の修正に応じて、画素値を平面モードで受信する。画素毎の計算コストを必要とするオペレーションの例の一部は、或るビデオ形式から別のビデオ形式(すなわち、YUVからRGB)への変換、シェーダ変換、明度(lightness)もしくは光度(brightness)の補正、彩度変更、または色補正である。例えば、YUV画素値の組(tuple)を、YUV形式から別の形式(すなわち、YUVからRGB/RGBからYUV)への要求された変換に応じて、Yデータの平面、Uデータの平面、およびVデータの平面として方法200によって受信することができる。さらに別の実施形態では、方法200は非プレイナー、すなわち「チャンク(chunky)」データを受信する。例えば、YUVデータを、Y、U、およびVの3つの値すべてを含む単一のメモリユニットとして受信することができる。方法200はチャンクデータの各ピースを1×1の画素平面と考えることができる。チャンクデータの各ピースを、画素ごとに別個のデータ平面に変換することができる。入力値を受信して解釈するための多くの他の実施形態も存在し得る。
ブロック220で、方法200はブロック210のルックアップテーブルを使用して、出力値に対する入力の寄与を探すことができる。一実施形態では、YUVの組からの値を使用して所望の出力に対するその寄与を探す。例えば、図3a〜cを参照すると、17のY入力305は、R、G、およびBの所望の出力の各々の合計値に対して、1.164の寄与を有する。また、U(Cb)入力310の値17は、それぞれR、G、およびBの所望の出力の合計値に対して、0、44.400および−223.998の寄与を有し、V(Cr)入力315の値17は、それぞれR、B、およびBの所望の出力の合計値に対して、−177.156、92.241、および0の寄与を有する。
ブロック225で、方法200はブロック220の入力の寄与を格納することができる。一実施形態では、各成分の寄与を特定の順序で単一のメモリ位置に格納する。例えば、後続の加算処理中のオーバーフローエラーを防止するようにデータを格納することができる。図4を参照すると、方法200は、各寄与を収容するための同じ大きさの部分に分割することができるメモリ空間に、寄与を格納することができる。例えば、メモリ空間はコンピュータ110の処理装置120内にあるレジスタとすることができる。本明細書で使用されるとき、レジスタは、RAM132内の任意のメモリ位置、または処理装置120を用いて算術機能を実行できる他の任意の離散メモリユニットとすることができる。さらに、メモリ空間は、コンピュータ110によって共に処理される任意の固定サイズのビットのグループとすることができる。また、x86プラットフォームでは、メモリ空間は16ビットワードとすることができ、ダブルワード(dword)は32ビット長とすることができる。
一実施形態では、メモリ空間は、32ビットのdwordであり、各寄与には各値の間に「バッファ」または「ギャップ」410を有する10ビットのdword405が割り当てられる。バッファは、後続の加算操作中のオーバーフローエラーを防止するのに適切な任意のサイズとすることができる。例えば、バッファは、1ビットのサイズとすることができる。さらに別の実施形態では、メモリ空間は、上述した各々順序付けられた寄与を格納するのに十分なメモリを割り当てることが可能な、任意の構造とすることができ、メモリ空間の数はターゲットの形式の要素の数と同じにすることができる。例えば、RGB形式は3つの要素から構成される。したがって、方法200は3つのメモリ空間415、420、および425を使用することができる。また、寄与の組の各要素を、複数の空間にわたって同じ順序で格納することができる。例えば、3つのメモリ空間415、420、および425はそれぞれ、各値の間に1ビットのバッファを有する、最初の10ビットに格納されたY値と、2番目の10ビットに格納されたU値と、3番目の10ビットに格納されたV値とを表すデータを有することができる。したがって、成分R、GおよびBに対するY、U(Cb)およびV(Cr)の寄与を、異なるメモリ空間415、420および425に格納して、Rへの寄与、Gへの寄与、およびBへの寄与の順に配置することができる。例えば、YUVデータをRGBに変換する実施形態では、空間415はR、GおよびBの各々に対するYの寄与を順番に格納し、空間420はR、GおよびBの各々に対するU(Cb)の寄与を順番に格納し、空間425はR、GおよびBの各々に対するV(Cr)の寄与を順番に格納する。当然、これらの成分を特定の順序で格納するメモリ空間の実施形態は多数存在し、格納される成分のサイズも多数存在し得る。
ブロック230において、図5aに関連して、方法200は出力画素値を計算することができる。一実施形態では、方法200は、3つのメモリ空間415、420および425を利用する2つの並列加算操作502、504を実行する。例えば、メモリ空間415、420および425は各入力値505について、それぞれ、Y、U(Cb)およびV(Cr)のR、GおよびBに対する寄与を順番に格納することができる。この3つの値を並列に加算して(502、504)、結果の値であるR、GおよびBを計算することができる(506)。例えば、値を3つの32ビットワードとして並列に加算すると、結果として2つの加算操作502、504となる。さらなる実施形態では、ギャップ410は、バイナリの加算操作に関連するオーバーフローおよび繰り上げ規則によってR、GおよびBの成分値が互いに干渉することを防止する。各寄与の合計値510は、YUV入力からRGBの出力値を生成する並列加算処理から得ることができる。該並列加算の結果を、R、GおよびBの順番で単一の32ビットのメモリ空間に保存することができる。
別の実施形態では、結果の合計値を切り上げて、当該合計値が、ターゲットの形式の許容範囲内に留まることを保証する。例えば、図5aおよび5bを参照すると、入力のYUV画素値が17、17、17のとき、Rの合計値は負数の515となることがある。RGB形式で可能な成分値は0から255の間であるので、負の結果は許容できない。したがって、方法200は、RGB形式に変換するとき、許容可能なRGB値の範囲に対応させるように負数をゼロの517に切り上げることを決定することができる。さらに、小数の520を、許容可能な出力範囲内の値に対応する整数の525に丸めることができる。同様に、許容範囲を超えている合計値510を、該形式の許容できる最大の値まで切り捨てることができる。出力値を計算する他の実施形態も多く存在する。
ブロック235で、方法200は、変換する必要がある値がさらにあるかどうかを判断することができる。一実施形態では、方法200は、全ての変換前(pre-conversion)の画素値の復元先であるバッファをチェックして、値がまだ残っているかどうかを判断する。例えば、バッファは、方法200によって処理するためにYUV画素値がロードされる、FIFO待ち行列(queue)とすることができる。方法200が変換の必要がある値がまだあると判断した場合、該方法はブロック220に戻る。値が残っていない場合は、該方法はブロック240に進む。
ブロック240で、方法200は、変換または修正された画像を格納することができる。一実施形態では、方法200はイメージを直接、画素ごとに、バックバッファなどのメモリに格納することができる。例えば、ビデオディスプレイでは、構成層(compositing layer)が圧縮ビデオをYUV平面にデコードし、該YUV平面を中間RGBバッファに変換して、後の表示のために該RGBバッファをバックバッファにマージ/構成することができる。中間バッファを組み込んだ合成器(compositor)は、異なる速度でイメージを表示するビデオ形式間で変換するときに有用であることがある。例えば、ビデオ再生装置(playback)は、典型的なデジタルアニメーションのシーケンスよりも遅い毎秒1フレームの速度で動作することがある。ビデオ再生装置が遅いので、低速な形式の一部のフレームを高速な形式の再生中に繰り返し表示して、速度の違いを補うことができる。表示される度に同じフレームを再変換するのではなく、変換したYUVまたはRGBデータを中間バッファに保存して、前に表示されたフレームを高速に呼び出すことができる。さらに、変換ステップに相当量の計算処理がかかる場合(該ステップが各画素について表1の行列変換を使用して変換するとき)は、繰り返されるフレームを1度だけ変換して結果のデータをキャッシュすることがより効率的であろう。したがって、各画素変換においてこの変換を利用することによって、処理された画素それぞれについて追加の読取(Read)/修正(Modify)/書込(Write)のコマンドが生成されることがある。
しかしながら、ブロック220から235に関連して上述したように、変換の処理コストは非常に低い。例えば、YUVからRGBへの変換では、各ターゲット形式の成分についての表の参照と、続く並列加算のみを要する。したがって、変換のコストが非常に低いため、各画素が画素ごとに復元されるときに該変換を実行することができ、結果のデータをバックバッファに直接保存することができる。バックバッファに直接保存することで、変換処理中の中間(RGB)バッファならびに読取/修正/書込のコマンドを排除することができ、そしてキャッシュのコヒーレンス(coherency)を改善することもできる。さらに、ある特定のプロセッサの書込/結合機能により、変換および出力の性能を大幅に向上させることができる。当然、変換されたデータを格納および利用して、R/M/Wコマンド、中間バッファ、またはこれらの構造を利用するハードウェアコンポーネントを排除するための他の多くの実施形態が存在する。

Claims (20)

  1. 入力データ要素を修正する方法であって、
    複数の入力値(305、310、315)を含む入力データ要素(215)を受信するステップと、
    複数の成分データ要素(325、330、335、345、350、360、365)を複数のデータ表(300)から取り出すステップであって、各データ表は、前記複数の入力値(305、310、315)の1つに対応し、各成分データ要素は、出力値寄与(320、340、355)のセットを含み、各出力値寄与は、複数の入力値の1つに対応する、取り出すステップと、
    各成分データ要素をメモリ空間(415、420、425)に格納するステップであって、前記出力値寄与のセットの各要素は、同じ順序で各メモリ空間内に格納される、格納するステップと、
    前記メモリ空間を加算するステップであって、前記メモリ空間の合計は、複数の出力値(515、520)を含む出力データ要素(510)を含み、前記複数の出力値の各々は、前記複数の出力値の1つに対応する全ての出力値寄与の合計を含む、加算するステップと
    を含むことを特徴とする方法。
  2. 前記メモリ空間を加算するステップは、前記メモリ空間を並列に加算することを含むことを特徴とする請求項1に記載の方法。
  3. 前記入力データ要素は、YUVビデオ画素値を含み、前記出力データ要素は、RGB画素値を含むことを特徴とする請求項1に記載の方法。
  4. 前記複数の入力値は、順番に、輝度値Y、黄に対する青のクロミナンス値Cb、シアンに対する赤のクロミナンス値Crを含むことを特徴とする請求項1に記載の方法。
  5. 前記複数の出力値は、順番に、赤の値R、緑の値G、および青の値Bを含むことを特徴とする請求項1に記載の方法。
  6. 出力値寄与の各セットは、輝度寄与のセットまたはクロミナンス寄与のセットを含むことを特徴とする請求項1に記載の方法。
  7. 前記メモリ空間は、ダブルワードであり、前記複数の出力値寄与はそれぞれ、前記ダブルワードの10ビットを超えない部分を占めることを特徴とする請求項1に記載の方法。
  8. 前記複数のメモリ空間はそれぞれ、メモリ空間の加算中のオーバーフローエラーを防止するバッファを含むことを特徴とする請求項1に記載の方法。
  9. 第1のバッファと第2のバッファを前記出力値寄与のセットの各要素間に配置するステップをさらに含むことを特徴とする請求項1に記載の方法。
  10. 前記複数のメモリ空間はそれぞれ32ビットを備え、該メモリ空間の最初の10ビットは、前記出力値寄与のセットの第1の要素を備え、該メモリ空間の11番目のビットは、第1のバッファを備え、該メモリ空間の12番目から21番目のビットは、前記出力値寄与のセットの第2の要素を備え、該メモリ空間の22番目のビットは、第2のバッファを備え、該メモリ空間の23番目から32番目のビットは、前記出力値寄与のセットの第3の要素を備えることを特徴とする請求項1に記載の方法。
  11. 複数の出力値寄与のそれぞれは、赤、緑、青の各々に対する輝度およびクロミナンスの寄与を含むことを特徴とする請求項1に記載の方法。
  12. データ表の数は、前記複数の入力値のうちの入力値の数に対応することを特徴とする請求項1に記載の方法。
  13. 前記メモリ空間を加算するステップは、各出力データ要素を共に並列に加算するステップを含み、並列の加算操作の数は2を超えないことを特徴とする請求項1に記載の方法。
  14. コンピュータ実行可能コードを実行するためのプロセッサと、データおよびコンピュータ実行可能コードを記憶するためのメモリと、入出力回路とを備えたコンピュータシステムであって、前記プロセッサは、
    第1および第2の入力値(305、310、315)を含む入力画素(215)を、第1の形式で受信することと、
    出力値寄与(325、330、335、345、350、360、365)の第1のセットを、第1のデータ表(300)から取り出すことであって、前記出力値寄与の第1のセットの第1の要素は、前記第1の入力値および第1の出力値に対応し、前記出力値寄与の第1のセットの第2の要素は、前記第1の入力値および第2の出力値に対応する、取り出すことと、
    出力値寄与(325、330、335、345、350、360、365)の第2のセットを、第2のデータ表(300)から取り出すことであって、前記出力値寄与の第2のセットの第1の要素は、前記第2の入力値および第1の出力値に対応し、前記出力値寄与の第2のセットの第2の要素は、前記第2の入力値および第2の出力値に対応する、取り出すことと、
    前記出力値寄与の前記第1のセットおよび前記第2のセットを、それぞれ第1および第2のレジスタ(415、420、425)に格納することであって、前記出力値寄与の前記第1のセットおよび前記第2のセットの各要素を、前記第1および第2のレジスタの両方に同じ順序で格納することと、
    前記第1および第2のレジスタの合計を出力レジスタ(510)に格納することであって、前記第1および第2のレジスタの前記合計は、前記第1の出力値と前記第2の出力値とを含む第2の形式(510)の出力画素を備え、前記第1の出力値は、前記出力値寄与の前記第1のセットおよび前記第2のセットの両方の第1の要素の合計を含み、前記第2の出力値は、前記出力値寄与の前記第1のセットおよび前記第2のセットの両方の第2の要素の合計を含む、格納することと
    のためのコンピュータ実行可能コードを実行するように物理的に構成されたことを特徴とするコンピュータシステム。
  15. 前記第1の形式はYUVを備え、前記第2の形式はRGBを備えたことを特徴とする請求項14に記載のコンピュータシステム。
  16. 前記第1の形式の前記入力画素を前記第2の形式の前記出力画素に修正することをさらに備え、該修正は明度補正、光度の補正、コントラスト補正、彩度補正、画素毎の補正、またはシェーダ変換のうち少なくとも1つを含むことを特徴とする請求項14に記載のコンピュータシステム。
  17. YUV画素値をRGB画素値に変換する方法であって、
    輝度値Y(305)と、黄に対する青のクロミナンス値Cb(310)と、シアンに対する赤のクロミナンス値Cr(315)とを含むYUV画素値(215)を受信するステップと、
    複数の輝度寄与値(320)を含む輝度ルックアップテーブルの輝度寄与値に、Yをインデックス付けするステップであって、前記複数の輝度寄与値は、可能な範囲のYに対応し、各値は、赤(325)と緑(330)と青(335)とのうちの少なくとも1つに対する輝度寄与を含む、インデックス付けするステップと、
    複数の第1のクロミナンス寄与値(340)を含む第1のクロミナンスルックアップテーブルの第1のクロミナンス寄与値に、Cbをインデックス付けするステップであって、前記複数の第1のクロミナンス寄与値は、可能な範囲のCbに対応し、各第1のクロミナンス寄与値は、緑(345)と青(350)とのうちの少なくとも1つに対する第1のクロミナンス寄与を含む、インデックス付けするステップと、
    複数の第2のクロミナンス寄与値(355)を含む第2のクロミナンスルックアップテーブルの第2のクロミナンス寄与値に、Crをインデックス付けするステップであって、前記複数の第2のクロミナンス寄与値は、可能な範囲のCrに対応し、各第2のクロミナンス寄与値は、赤(360)と緑(365)とのうちの少なくとも1つに対する第2のクロミナンス寄与を含む、インデックス付けするステップと、
    前記輝度寄与値(320)、前記第1のクロミナンス寄与値(340)、および前記第2のクロミナンス寄与値(355)を、それぞれ複数のビットを備える第1のレジスタ(415)、第2のレジスタ(420)、および第3のレジスタ(425)にそれぞれ格納するステップであって、
    前記第1のレジスタは、赤(325)に対する輝度寄与を含む第1の輝度ビットセットと、緑(330)に対する輝度寄与を含む第2の輝度ビットセットと、青(335)に対する輝度寄与を含む第3の輝度ビットセットと、少なくとも1つの輝度バッファ(410)とを備え、
    前記第2のレジスタは、緑(345)に対する第1のクロミナンス寄与を含む第1のクロミナンスビットセットと、青(350)に対する第1のクロミナンス寄与を含む第2のクロミナンスビットセットと、少なくとも1つの第1のクロミナンスバッファ(410)とを備え、
    前記第3のレジスタは、赤(360)に対する第2のクロミナンス寄与を含む第3のクロミナンスビットセットと、緑(365)に対する第2のクロミナンス寄与を含む第4のクロミナンスビットセットと、少なくとも1つの第2のクロミナンスバッファ(410)とを備える
    該格納するステップと、
    前記第1のレジスタ、前記第2のレジスタ、および前記第3のレジスタを共に並列に加算するステップであって、前記第1のレジスタ、前記第2のレジスタ、および前記第3のレジスタの合計は前記RGB画素値(510)を備える、加算するステップと
    を備え、
    前記第1および第2の輝度バッファ、前記少なくとも1つの第1のクロミナンスバッファ、ならびに前記少なくとも1つの第2のクロミナンスバッファは、前記第1のレジスタ、前記第2のレジスタ、および前記第3のレジスタを共に並列に加算する間のオーバーフローエラーを防止することを特徴とする方法。
  18. 前記第1および前記第2の輝度ビットセット、前記第1および第2のクロミナンスビットセット、ならびに前記第3および第4のクロミナンスビットセットは、赤、緑、青に対するそれぞれの輝度、第1のクロミナンス、および第2のクロミナンスの寄与の各レジスタにおいて、任意の同一配置を備える同一順序で、それぞれ前記第1のレジスタ、第2のレジスタ、および第3のレジスタに格納されることを特徴とする請求項17に記載の方法。
  19. 前記可能な範囲のYは、16以上235以下のYの値を含むことを特徴とする請求項17に記載の方法。
  20. 前記可能な範囲のCbまたはCrは、16以上239以下の値を含むことを特徴とする請求項17に記載の方法。
JP2009547402A 2007-01-26 2008-01-23 高速フィルタ型のyuvからrgbへの変換 Expired - Fee Related JP4886043B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/627,754 US7639263B2 (en) 2007-01-26 2007-01-26 Fast filtered YUV to RGB conversion
US11/627,754 2007-01-26
PCT/US2008/051813 WO2008091955A1 (en) 2007-01-26 2008-01-23 Fast filtered yuv to rgb conversion

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011155756A Division JP2011223633A (ja) 2007-01-26 2011-07-14 高速フィルタ型のyuvからrgbへの変換

Publications (3)

Publication Number Publication Date
JP2010517442A true JP2010517442A (ja) 2010-05-20
JP2010517442A5 JP2010517442A5 (ja) 2010-11-25
JP4886043B2 JP4886043B2 (ja) 2012-02-29

Family

ID=39644870

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009547402A Expired - Fee Related JP4886043B2 (ja) 2007-01-26 2008-01-23 高速フィルタ型のyuvからrgbへの変換
JP2011155756A Pending JP2011223633A (ja) 2007-01-26 2011-07-14 高速フィルタ型のyuvからrgbへの変換

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011155756A Pending JP2011223633A (ja) 2007-01-26 2011-07-14 高速フィルタ型のyuvからrgbへの変換

Country Status (5)

Country Link
US (1) US7639263B2 (ja)
EP (1) EP2111714B1 (ja)
JP (2) JP4886043B2 (ja)
CN (1) CN101589609B (ja)
WO (1) WO2008091955A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5096986B2 (ja) * 2007-04-11 2012-12-12 パナソニック株式会社 動画像表示装置、動画像表示方法及び集積回路
US8477247B2 (en) * 2008-09-30 2013-07-02 Intel Corporation Joint enhancement of lightness, color and contrast of images and video
US20110072236A1 (en) * 2009-09-20 2011-03-24 Mimar Tibet Method for efficient and parallel color space conversion in a programmable processor
CN101923455B (zh) * 2010-09-01 2012-02-08 武汉大学 一种yuv格式的数字图像显示和分析方法
US9137488B2 (en) * 2012-10-26 2015-09-15 Google Inc. Video chat encoding pipeline
CN103096092B (zh) * 2013-02-07 2015-12-02 上海国茂数字技术有限公司 基于颜色空间变换进行编解码误差修正的方法和系统
CN105847775A (zh) * 2016-03-31 2016-08-10 乐视控股(北京)有限公司 一种yuv到hsv颜色空间的转换方法和系统
CN113538215B (zh) * 2021-06-11 2022-12-27 展讯半导体(成都)有限公司 图像格式的转换方法、装置及系统、电子设备及存储介质
CN115348432B (zh) * 2022-08-15 2024-05-07 上海壁仞科技股份有限公司 数据处理方法及装置、图像处理方法、电子设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487308B1 (en) * 1996-05-22 2002-11-26 Compaq Computer Corporation Method and apparatus for providing 64-bit YUV to RGB color conversion

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218647A (en) * 1990-12-12 1993-06-08 Ricoh Corporation Method to convert between 2 color space on a 32 bit μ-processor
US6384838B1 (en) 1992-06-19 2002-05-07 Intel Corporation Optimized lookup table method for converting Yuv pixel values to RGB pixel values
US5872556A (en) 1993-04-06 1999-02-16 International Business Machines Corp. RAM based YUV-RGB conversion
US5873990A (en) * 1995-08-22 1999-02-23 Andcare, Inc. Handheld electromonitor device
US6172714B1 (en) 1996-05-22 2001-01-09 Compaq Computer Corporation Color adjustment table system for YUV to RGB color conversion
US5923316A (en) 1996-10-15 1999-07-13 Ati Technologies Incorporated Optimized color space conversion
JP3684740B2 (ja) 1997-01-24 2005-08-17 セイコーエプソン株式会社 Yuv−rgbデジタル変換回路並びにそれを用いた画像表示装置及び電子機器
US6195674B1 (en) * 1997-04-30 2001-02-27 Canon Kabushiki Kaisha Fast DCT apparatus
AUPO647997A0 (en) * 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Memory controller architecture
JPH10312230A (ja) * 1997-05-14 1998-11-24 Oki Data:Kk 駆動能力切換機能付出力バッファ装置
US5936683A (en) 1997-09-29 1999-08-10 Neo Magic Corp. YUV-to-RGB conversion without multiplies using look-up tables and pre-clipping
US6049399A (en) * 1997-11-04 2000-04-11 Winbond Electronics Corp. Method and apparatus with reduced look-up tables for converting luminance-chrominance color space signals to RGB color space signals
US6268847B1 (en) 1999-06-02 2001-07-31 Ati International Srl Method and apparatus for more accurate color base conversion of YUV video data
CN1406052A (zh) * 2001-08-13 2003-03-26 力捷电脑股份有限公司 扫描灰度图像方法及系统
JP4217398B2 (ja) * 2001-09-12 2009-01-28 キヤノン株式会社 画像データ処理方法、画像データ処理装置、記憶媒体、及びプログラム
US6801991B2 (en) * 2001-12-21 2004-10-05 Agere Systems Inc. Method and apparatus for buffer partitioning without loss of data
KR100466785B1 (ko) * 2002-01-18 2005-01-17 (주)플렛디스 평판 디스플레이 패널의 화질 제어장치 및 방법
US7057671B2 (en) * 2002-01-30 2006-06-06 At & T Corp Image and video processing with chrominance attenuation
KR100547812B1 (ko) 2002-06-24 2006-01-31 삼성전자주식회사 컬러 참조테이블을 사용하여 화소데이터의 컬러모델을변환하는 장치 및 방법
KR20040006759A (ko) * 2002-07-15 2004-01-24 주식회사 하이닉스반도체 컬러 스페이스 변환 방법
US7158668B2 (en) * 2003-08-01 2007-01-02 Microsoft Corporation Image processing using linear light values and other image processing improvements
US7236181B2 (en) * 2003-08-03 2007-06-26 Realtek Semiconductor Corp. Apparatus for color conversion and method thereof
KR100690631B1 (ko) * 2005-01-20 2007-03-09 엘지전자 주식회사 프레임 차이와 구간 선형함수를 이용한 엘씨디 응답속도 향상 장치
US7298379B2 (en) 2005-02-10 2007-11-20 Samsung Electronics Co., Ltd. Luminance preserving color conversion from YUV to RGB

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487308B1 (en) * 1996-05-22 2002-11-26 Compaq Computer Corporation Method and apparatus for providing 64-bit YUV to RGB color conversion

Also Published As

Publication number Publication date
US7639263B2 (en) 2009-12-29
WO2008091955A1 (en) 2008-07-31
JP4886043B2 (ja) 2012-02-29
CN101589609B (zh) 2013-06-12
CN101589609A (zh) 2009-11-25
EP2111714A1 (en) 2009-10-28
JP2011223633A (ja) 2011-11-04
EP2111714A4 (en) 2010-12-29
US20080180456A1 (en) 2008-07-31
EP2111714B1 (en) 2017-03-01

Similar Documents

Publication Publication Date Title
JP4886043B2 (ja) 高速フィルタ型のyuvからrgbへの変換
US5798767A (en) Method and apparatus for performing color space conversion using blend logic
EP2014081B1 (en) Trapping method for digital color printing
US8767005B2 (en) Blend equation
US5936683A (en) YUV-to-RGB conversion without multiplies using look-up tables and pre-clipping
US20080252652A1 (en) Programmable graphics processing element
US8711170B2 (en) Edge alphas for image translation
US7600104B2 (en) Method and system for parallel vector data processing of vector data having a number of data elements including a defined first bit-length
JP2010517442A5 (ja)
CN112001975B (zh) 图像数据转换方法及相关设备、装置
US7327873B2 (en) Fast software rotation of video for portrait mode displays
US20080130987A1 (en) Color Management of RAW Content from Digital Capture Devices
US10424084B2 (en) Digital content rendering that supports alpha is shape (AIS) as part of knockout groups
US6940619B1 (en) Polynomial based multi-level screening
KR100879896B1 (ko) 밴드 인터리브 포맷으로부터 밴드 분할 포맷으로의 포맷변환 장치
JP6404865B2 (ja) 乗算済みデータにおける色変換を支援する方法
US6781717B1 (en) Threshold screening using range reduction
US7957586B2 (en) Method for converting color space of image signal
JP2000196903A (ja) 色変換方法および色変換装置
US20150070365A1 (en) Arbitration method for multi-request display pipeline
JP2003150947A5 (ja)
JP2006164072A (ja) 画像処理装置およびその制御方法
JP2008287556A (ja) 画像処理装置及び画像処理プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101007

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101007

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20101007

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20101028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101213

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110318

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110714

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110722

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20110805

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111019

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111208

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141216

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4886043

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees