JP2011223633A - 高速フィルタ型のyuvからrgbへの変換 - Google Patents
高速フィルタ型のyuvからrgbへの変換 Download PDFInfo
- Publication number
- JP2011223633A JP2011223633A JP2011155756A JP2011155756A JP2011223633A JP 2011223633 A JP2011223633 A JP 2011223633A JP 2011155756 A JP2011155756 A JP 2011155756A JP 2011155756 A JP2011155756 A JP 2011155756A JP 2011223633 A JP2011223633 A JP 2011223633A
- Authority
- JP
- Japan
- Prior art keywords
- value
- contribution
- values
- memory space
- contribution 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.)
- Pending
Links
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 29
- 238000000034 method Methods 0.000 claims description 58
- 239000000872 buffer Substances 0.000 claims description 19
- 238000012545 processing Methods 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 10
- 230000009466 transformation Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000003086 colorant Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- CDFKCKUONRRKJD-UHFFFAOYSA-N 1-(3-chlorophenoxy)-3-[2-[[3-(3-chlorophenoxy)-2-hydroxypropyl]amino]ethylamino]propan-2-ol;methanesulfonic acid Chemical compound CS(O)(=O)=O.CS(O)(=O)=O.C=1C=CC(Cl)=CC=1OCC(O)CNCCNCC(O)COC1=CC=CC(Cl)=C1 CDFKCKUONRRKJD-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000001429 visible spectrum Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/46—Colour picture communication systems
- H04N1/56—Processing of colour picture signals
- H04N1/60—Colour correction or control
- H04N1/6016—Conversion to subtractive colour signals
- H04N1/6019—Conversion to subtractive colour signals using look-up tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/46—Colour picture communication systems
- H04N1/64—Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
- H04N1/646—Transmitting or storing colour television type signals, e.g. PAL, Lab; Their conversion into additive or subtractive colour signals or vice versa therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/64—Circuits for processing colour signals
- H04N9/67—Circuits 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
【課題】高速フィルタ型のYUVからRGBへの変換を提供する。
【解決手段】それぞれの可能な成分出力R、GおよびBの値を、それぞれの可能な成分入力Y、UおよびVの全ての値について予め計算することができる。Y、UおよびV入力の各寄与をレジスタにロードし、オーバーフローせずに並列に加算して、YUV入力から計算コストの低いRGB出力を生成することができる。一実施形態では、R、GおよびBの各々に対するY、UおよびVの寄与を、予め計算された表から取り出す。R、GおよびBの各値に対するYUVの寄与は3つのデータ要素にパックされ、共に並列に加算され、その結果としてRGB出力の値が得られる。
【選択図】図2
【解決手段】それぞれの可能な成分出力R、GおよびBの値を、それぞれの可能な成分入力Y、UおよびVの全ての値について予め計算することができる。Y、UおよびV入力の各寄与をレジスタにロードし、オーバーフローせずに並列に加算して、YUV入力から計算コストの低いRGB出力を生成することができる。一実施形態では、R、GおよびBの各々に対するY、UおよびVの寄与を、予め計算された表から取り出す。R、GおよびBの各値に対するYUVの寄与は3つのデータ要素にパックされ、共に並列に加算され、その結果としてRGB出力の値が得られる。
【選択図】図2
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出力の値を得る。
以下の文章では、多くの様々な実施形態についての詳細な説明を記述するが、本説明の法的な範囲は特許請求の範囲の文言によって定義されることを理解されたい。全ての可能な実施形態を説明することは、不可能ではないにしても現実的ではないので、この詳細な説明は単なる例示として解釈されるべきであり、全ての可能な実施形態を説明するものではない。現在の技術または本特許出願の日以降に開発される技術を使用して、多くの代替的な実施形態を実装することができ、これらの技術も特許請求の範囲内にある。
或る用語について「本明細書で使用されるとき、用語「〜」は、を意味するように定義される」という文、または同様の文を使用して本明細書で明確に定義されない限り、その用語の意味をその明白な意味または通常の意味を超えて明示的または暗示的に限定する意図はなく、そのような用語は、本明細書のいずれかのセクションのいずれかの記述(特許請求の範囲の文言を除く)に基づく範囲に限定されると解釈されるべきではない。特許請求の範囲に記載される任意の用語は、単一の意味に一致するように本明細書内の用語で称されるが、これは読者を混乱させないように明確性を目的とするものに過ぎず、そのような請求項の用語が、暗示または他のものによってその単一の意味だけに限定されることは意図していない。最後に、請求項の構成要素は、どのような構造にも言及しない単語「手段」および機能を記載することによって定義されない限り、任意の請求項の要素の範囲が米国連邦法典第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(YCbCr)形式の画素を変換することができる方法200を示す図である。本方法を、コンピュータ110の様々なコンポーネントにおいて実行することができる。一実施形態では、方法200はビデオ変換モジュール192において実行される。別の実施形態では、方法200はビデオインタフェース190において実行される。さらなる実施形態では、本方法は処理装置120で実行される。通常、RGB、YUV、およびYCbCrによって、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の各々の寄与を計算することができる。
表1によると、YUVからRGBへの変換において、RGB色空間における赤の値は、或る程度の輝度(Y)と、赤からシアンの範囲の或る程度のクロミナンス(VまたはCr)とで構成することができる。同様に、緑を、或る程度の輝度(Y)と、赤からシアンの範囲の或る程度のクロミナンス(VまたはCr)と、青から黄の範囲の或る程度のクロミナンス(UまたはCb)とで構成することができる。また、青を、或る程度の輝度(Y)と、青から黄の範囲内の或る程度のクロミナンス(UまたはCb)とで構成することができる。したがって、表2のように、YUV画素からRGB画素への変換式を簡約化して、Y、UおよびV成分の寄与を強調することができる。
表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)
- RGBビデオデータ形式への変換のためにYUVビデオデータ形式の入力値を受信するステップであって、前記入力値は前記YUVビデオデータ形式についてのY値、U値及びV値を含む、ステップと、
前記Y値、U値及びV値の各々について、前記RGBビデオデータ形式についてのR値、G値及びB値の各々に対応する寄与値を探すステップと、
メモリ空間に各寄与値を格納して、前記R値、G値及びB値の各々に対するY寄与値を格納する第1のメモリ空間、前記R値、G値及びB値の各々に対するU寄与値を格納する第2のメモリ空間、及び前記R値、G値及びB値の各々に対するV寄与値を格納する第3のメモリ空間を形成するステップと、
少なくとも部分的に、前記第1のメモリ空間に格納された前記Y寄与値、前記第2のメモリ空間に格納された前記U寄与値、及び前記第3のメモリ空間に格納された前記V寄与値を並列に加算することにより、前記RGBビデオデータ形式の出力画素の値を形成するステップと
を含む方法。 - 各寄与値をルックアップテーブルに格納するステップをさらに含む請求項1に記載の方法。
- 前記Y寄与値、前記U寄与値及び前記V寄与値を決定するために、すべてのあり得るY値、U値及びV値についてすべてのあり得るR値、G値及びB値を計算するステップをさらに含む請求項1に記載の方法。
- 前記第1のメモリ空間、前記第2のメモリ空間及び前記第3のメモリ空間の各々に対してレジスタを割り当てるステップをさらに含む請求項1に記載の方法。
- 前記第1のメモリ空間、前記第2のメモリ空間及び前記第3のメモリ空間の各々に対してメモリダブルワードを割り当てるステップをさらに含む請求項1に記載の方法。
- 前記第1のメモリ空間、前記第2のメモリ空間及び前記第3のメモリ空間の各々において少なくとも1つのバッファを割り当てるステップをさらに含む請求項1に記載の方法。
- 前記少なくとも1つのバッファにより、前記第1のメモリ空間、前記第2のメモリ空間及び前記第3のメモリ空間にそれぞれ格納された前記Y寄与値、前記U寄与値及び前記V寄与値を分離するステップをさらに含む請求項6に記載の方法。
- 前記第1のメモリ空間、前記第2のメモリ空間及び前記第3のメモリ空間の各々の同じ部分を、3つのY寄与値、3つのU寄与値及び3つのV寄与値の各々にそれぞれ割り当てるステップをさらに含む請求項6に記載の方法。
- 前記第1のメモリ空間、前記第2のメモリ空間及び前記第3のメモリ空間の各々のうちの10ビットを、3つのY寄与値、3つのU寄与値及び3つのV寄与値の各々にそれぞれ割り当てるステップをさらに含む請求項6に記載の方法。
- YUVビデオデータ形式の入力に対応するY寄与値、U寄与値及びV寄与値を探すステップと、
前記Y寄与値、前記U寄与値及び前記V寄与値を3つのメモリ空間に格納するステップであって、前記3つのメモリ空間のうち第1のメモリ空間はRGBビデオデータ形式のR値、G値及びB値にそれぞれ対応するY寄与値の組を含み、前記3つのメモリ空間のうち第2のメモリ空間は前記RGBビデオデータ形式の前記R値、前記G値及び前記B値にそれぞれ対応するU寄与値の組を含み、前記3つのメモリ空間のうち第3のメモリ空間は前記RGBビデオデータ形式の前記R値、前記G値及び前記B値にそれぞれ対応するV寄与値の組を含む、ステップと、
前記3つのメモリ空間における前記寄与値の組を並列に加算して、前記RGBビデオデータ形式の出力画素の値を形成するステップと
を含む方法。 - 前記Y寄与値、前記U寄与値及び前記V寄与値を予め計算するステップと、前記Y寄与値、前記U寄与値及び前記V寄与値を少なくとも1つのテーブルに格納するステップとをさらに含む請求項10に記載の方法。
- 前記3つのメモリ空間の各々をメモリダブルワードとして割り当てるステップをさらに含む請求項10に記載の方法。
- Y寄与値、U寄与値及びV寄与値の各々に対して、メモリダブルワードの同じ部分を割り当てるステップをさらに含む請求項12に記載の方法。
- Y寄与値、U寄与値及びV寄与値の各々に対して、メモリダブルワードのうちの10ビットを割り当てるステップをさらに含む請求項12に記載の方法。
- 前記Y寄与値、前記U寄与値及び前記V寄与値のうちの1つに割り当てられる10ビットと前記Y寄与値、前記U寄与値及び前記V寄与値のうちの別のものに割り当てられる10ビットとの間にバッファビットを割り当てるステップをさらに含む請求項12に記載の方法。
- 前記出力画素のR値、G値及びB値を32ビットのメモリ空間に保存するステップをさらに含む請求項10に記載の方法。
- 前記予め計算するステップは、すべてのあり得るYUVビデオデータ形式の入力値に対応するすべてのあり得るRGBビデオデータ形式の出力値を決定するステップを含む請求項11に記載の方法。
- 前記予め計算するステップは、少なくとも3つの数字の精度に対する前記Y寄与値、前記U寄与値及び前記V寄与値を計算するステップを含む請求項11に記載の方法。
- 前記加算の結果を切り上げるステップをさらに含む請求項11に記載の方法。
- コンピュータ実行可能なコードを実行するプロセッサと、データ及びコンピュータ実行可能なコードを格納するメモリと、入出力回路とを備えるコンピュータシステムであって、前記プロセッサは、
輝度値Y、黄に対する青のクロミナンス値Cb、シアンに対する赤のクロミナンス値Crを含むYUV画素値を受信し、
Yに対応する輝度寄与値を輝度ルックアップテーブルにおいて探し、
Cbに対応する第1のクロミナンス寄与値を第1のクロミナンスルックアップテーブルにおいて探し、
Crに対応する第2のクロミナンス寄与値を第2のクロミナンスルックアップテーブルにおいて探し、
前記輝度寄与値、前記第1のクロミナンス寄与値及び前記第2のクロミナンス寄与値を、第1のレジスタ、第2のレジスタ及び第3のレジスタにそれぞれ格納し、
前記第1のレジスタ、前記第2のレジスタ及び前記第3のレジスタをともに並列に加算してRGB画素値を形成する
ためにコンピュータ実行可能コードを実行するように物理的に構成されるコンピュータシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/627,754 | 2007-01-26 | ||
US11/627,754 US7639263B2 (en) | 2007-01-26 | 2007-01-26 | Fast filtered YUV to RGB conversion |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009547402A Division JP4886043B2 (ja) | 2007-01-26 | 2008-01-23 | 高速フィルタ型のyuvからrgbへの変換 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011223633A true JP2011223633A (ja) | 2011-11-04 |
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 Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009547402A Expired - Fee Related JP4886043B2 (ja) | 2007-01-26 | 2008-01-23 | 高速フィルタ型の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)
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 (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04288684A (ja) * | 1990-12-12 | 1992-10-13 | Ricoh Co Ltd | カラー空間変換方法 |
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 (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
-
2007
- 2007-01-26 US US11/627,754 patent/US7639263B2/en not_active Expired - Fee Related
-
2008
- 2008-01-23 JP JP2009547402A patent/JP4886043B2/ja not_active Expired - Fee Related
- 2008-01-23 EP EP08728148.1A patent/EP2111714B1/en not_active Not-in-force
- 2008-01-23 WO PCT/US2008/051813 patent/WO2008091955A1/en active Application Filing
- 2008-01-23 CN CN2008800032202A patent/CN101589609B/zh not_active Expired - Fee Related
-
2011
- 2011-07-14 JP JP2011155756A patent/JP2011223633A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04288684A (ja) * | 1990-12-12 | 1992-10-13 | Ricoh Co Ltd | カラー空間変換方法 |
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 |
---|---|
JP4886043B2 (ja) | 2012-02-29 |
EP2111714A1 (en) | 2009-10-28 |
US20080180456A1 (en) | 2008-07-31 |
EP2111714A4 (en) | 2010-12-29 |
CN101589609A (zh) | 2009-11-25 |
CN101589609B (zh) | 2013-06-12 |
WO2008091955A1 (en) | 2008-07-31 |
JP2010517442A (ja) | 2010-05-20 |
EP2111714B1 (en) | 2017-03-01 |
US7639263B2 (en) | 2009-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4886043B2 (ja) | 高速フィルタ型のyuvからrgbへの変換 | |
JP4917642B2 (ja) | デジタル・カラー印刷のためのトラッピングシステム及び方法 | |
US5798767A (en) | Method and apparatus for performing color space conversion using blend logic | |
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 | |
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 | |
US6279099B1 (en) | Central processing unit with integrated graphics functions | |
CN112001975B (zh) | 图像数据转换方法及相关设备、装置 | |
US20040247178A1 (en) | Fast software rotation of video for portrait mode displays | |
US10424084B2 (en) | Digital content rendering that supports alpha is shape (AIS) as part of knockout groups | |
US6940619B1 (en) | Polynomial based multi-level screening | |
US6172714B1 (en) | Color adjustment table system for YUV to RGB color conversion | |
CN106341572B (zh) | 用于支持对于预乘数据的颜色变换的方法 | |
KR100879896B1 (ko) | 밴드 인터리브 포맷으로부터 밴드 분할 포맷으로의 포맷변환 장치 | |
US6781717B1 (en) | Threshold screening using range reduction | |
EP1120958A2 (en) | Polynomial based multi-level screening | |
JP5033746B2 (ja) | 画像処理装置、画像処理方法及び画像処理プログラム | |
JP2003150948A (ja) | 信号処理用プロセッサ | |
US7957586B2 (en) | Method for converting color space of image signal | |
KR20070088190A (ko) | 멀티미디어 데이터 처리를 위한 서브워드 병렬 처리 방법 | |
AU2006252251A1 (en) | Efficient bitmap conversion |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110801 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121214 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130205 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130222 |