AN-795 アプリケーション・ノート AD9880カラー・スペース・コンバータのユーザズ・ガイド 著者: Del Jones カラー・スペース変換マトリクス AD9880 のカラー・スペース変換マトリクス(CSC)は 3 × 3 のマトリ クスであり、すべてのマトリクス係数を設定することができます。 各係数は、信号インテグリティを維持するために 12 ビット幅にな っています。この CSC は最大 150 MHz の速度で動作するようにデ ザインされており、60 Hz レートで 1080 p をサポートしています。 この CSC は任意のカラー・スペースから任意のカラー・スペース への変換をサポートしているため、RGB、YUV、YCrCb などのフ ォーマットをサポートしています。 図内で A4 で表される変数は、CSC のチャンネル A に対するオフ セット制御として使われます。CSC の 1 チャンネルあたりの機能 図は、残りの 2 チャンネル B と C でも同じです。これらのチャン ネルの係数は、B1、B2、B3、B4、C1、C2、C3、C4 で表します。 この CSC は同じ処理チャンネルを 3 チャンネル内蔵しており、そ の内の 1 チャンネルを図 1 に示します。メイン入力 In_A、In_B、 In_C、には、ADC または DVI の各チャンネルからの 8 ビット出力 が入力されます。CSC の各チャンネルの各入力には、各チャンネ ルの係数が乗算されます。図 1 では、これらの係数を A1、A2、A3 で示してあります。 図 1. CSC の 1 チャンネルあたりの機能 表 I に、係数の詳細を示します。デフォルトの I2C パワーオン・リ セット値も示してあります。 表 I. CSC の係数 Bit CSC_scale[1:0] A1[12:0] A2[12:0] A3[12:0] B1[12:0] B2[12:0] B3[12:0] C1[12:0] C2[12:0] C3[12:0] A4[12:0] B4[12:0] C4[12:0] Rev. 0 AD9880 Register 0x35 bits 6:5 0x35 – 0x36 0x37 – 0x39 0x39 – 0x3A 0x3D – 0x3E 0x3F – 0x40 0x41 – 0x42 0x45 – 0x46 0x47 – 0x48 0x49 – 0x4A 0x3B – 0x3C 0x43 – 0x44 0x4B – 0x4C Default Value 1 3154 2048 0 –940 2048 –375 0 2048 3719 –1577 658 –1859 Description Scaling for CSC formula Coefficients for Channel A Coefficients for Channel B Coefficients for Channel C Offsets for the three channels アナログ・デバイセズ社は、提供する情報が正確で信頼できるものであることを期していますが、その情報の利用に関 して、あるいは利用によって生じる第三者の特許やその他の権利の侵害に関して一切の責任を負いません。また、アナ ログ・デバイセズ社の特許または特許の権利の使用を明示的または暗示的に許諾するものでもありません。仕様は、予 告なく変更される場合があります。本紙記載の商標および登録商標は、各社の所有に属します。 ※日本語データシートは REVISION が古い場合があります。最新の内容については、英語版をご参照ください。 ©2005 Analog Devices, Inc. All rights reserved. 本 社/〒105-6891 東京都港区海岸 1-16-1 ニューピア竹芝サウスタワービル 電話 03(5402)8200 大阪営業所/〒532-0003 大阪府大阪市淀川区宮原 3-5-36 新大阪トラストタワー 電話 06(6350)6868 AN-795 アプリケーション・ノート CSCの設定 設定手順 CSC により実行される各式は次のようになります。 一般式から設定値を得るためには、次のステップを実行する必要 があります。 CSC チャンネル A 1. 各係数の値をチェックします。 (1) 範囲–0.999~+0.999 の係数のみを設定することができます。これ より大きな係数をサポートするときは、CSC_scale 機能を使う必 要があります(表 II 参照)。 CSC チャンネル B (2) CSC_scale の設定値を求め、必要に応じて係数を調整します。 CSC チャンネル C 2. 係数値を設定します。 (3) 浮動小数点係数に[4096/2CSC_scale]を乗算して固定の 12 ビット 10 進フォーマットへ変換します。負の値に対しては 2 の補数を 使ってバイナリ・フォーマットへ変換します。 式 1、式 2、式 3 に示すように、A1~A3、B1~B3、C1~C3 の係数 はプライマリ入力のスケーリングに使われます。その後で A4、B4、 C4 の値がオフセットとして加算されます。CSC_scale ビットを使 うと、変換係数が 1 以上の変換式を実現することができます。言 い換えれば、係数が 1 以上の式を実現する場合、CSC_scale ビット を使って出力コードが 12 ビット限界値の 4095 を超えないように することができます。表 II に、各 CSC_scale 設定値を使用できる 条件を示します。3 つの CSC 式のいずれかで係数のスケーリング が必要な場合には(CSC_scale ≠ 0)、式 1、式 2、式 3 に示すように すべての係数(オフセット値も含む)がスケーリングされることに 注意してください。A1~A4、B1~B4、C1~C4 の値は、所望の変 換式の係数に 4096/2 CSC_scale 0 N<1 1 1≤N<2 2 2≤N<4 カラー・スペースのタイプに応じて、変換オフセットを使う必 要があります。 A4、B4、C4 を設定します。 CSCの例 次に示す式のセットにより、HDTV YCbCr から RGB (12 ビット) への変換例を示します。 G = Y – 0.459(Cr – 2048) – 0.183(Cb – 2048) = Y – 0.459 × Cr – 0.183 × Cb + 1315 表 II.CSC_scale の設定値 Conversion Coefficient 3. オフセット値を設定します。 R = Y + 1.540(Cr – 2048) = Y + 1.540 × Cr – 3154 を乗算した値になります。 CSC_scale A1~A3、B1~B3、C1~C3 を設定します。 B = Y + 1.816(Cb – 2048) = Y + 1.816 × Cb – 3719 CSC の正常動作のためには、表 III に示すチャンネル・マッピングに従う 必要があることに注意してください。 各係数値のチェック 表 III.CSC ポートのマッピング Channel AD9980 Input(analog) CSC Channel Red/Pr RAIN A Green/Y GAIN B Blue/Pb BAIN C 元の式では、Pr コンポーネントと Pb コンポーネントに対するオフ セット値は 128 です。この値 128 は、8 ビット・システム範囲の 1/2 に対応します。AD9880 の CSC は 12 ビット範囲で動作するこ とに注意する必要があります。このため、オフセットを 128 から 12 ビット・システム範囲の 1/2(= 2048)へ変更する必要があります。 各 係 数 の 最 大 値 と し て は 、 –4095/4096 ~ 4095/4096 (= –0.999755859375 ~0.999755859375) の範囲が可能です。この範囲 外の値は、係数の設定で使われる 12 ビット固定小数フォーマット で表すことができません。 出力のマッピングは、出力フォーマットに依存します。詳細については、 AD9880 データ・シートを参照してください。 サポートされている係数範囲を超える係数がある場合には、 CSC_scale ビットを使って CSC をスケーリングする必要がありま す。 CSC_scale に“1”を設定すると、すべての係数が 1/2 にスケーリング されて、与えられた係数範囲を満たすようになります。その後、 CSC の全体出力が 2 倍されて、スケール・ダウンした係数が補償 されます。 Rev. 0 - 2/8 - AN-795 アプリケーション・ノート この例では、最大係数は 1.816 であるため、CSC_scale ビットが“01” に設定されます。 • 係数値は、固定小数点フォーマットで 12 ビット精度に設定さ 1. • 浮動小数点係数を変換するときは、212 (4096)を乗算して、12 2. れます。 与えられた係数に対して係数値 1.0 を実現するときは、 CSC_scale ビットに“1”を設定して、係数として実際に設定す る値は 0.5 にする必要があります。その他の場合、最大値は 4095/4096 = 0.9997 であり、1 にはなりません。この値は 1 と して解釈されますが、最大精度を得るためには、値 0.5 と CSC_scale ビットを使うことが推奨されます。 ビットに丸め処理する必要があります。 • 負値は 2 の補数で表す必要があります。 In_A には Pr または R コンポーネントを、In_B には Y または G コ ンポーネントを、In_C には Pb または B コンポーネントを、それ ぞれ入力します。同様に、Out_A = Pr または R に、Out_B = Y また は G に、Out_C = Pb または B に、それぞれなります。 係数の値が非常に大きい場合は(例えば 2.58)、CSC_scale に“2” を設定して、すべての係数を 1/4 にスケールする必要がありま す。これにより、与えられた係数範囲を満たすことができま す。次に、CSC の全体出力が 4 倍されて、スケール・ダウン した係数が補償されます。 オフセット値の設定 オフセット値(A4、B4、C4)を設定するときは、CSC_scale に 1 を設 定して、元の式のオフセット値を 1/2 倍する必要があります。 係数値は次のように設定します。 表 IV. オフセット値の例 R = 1.540 × Cr + 0 × Cb + 1 × Y – 3154 Equation Original Offset Adjusted Offset* Register Hex Value (13-bit, twos complement) Red –3154 –1577 A4[12:0] 0x19D7 Green 1315 657 B4[12:0] 0x0291 Blue –3719 –1859 C4[12:0] G = –0459 × Cr – 0.183 × Cb + 1 × Y + 1315 B = 0 × Cr + 1.816 × Cb + 1 × Y – 3719 *CSC_scale に 1 が設定されるため、計算した係数は 2 (2 す。 0x18BD CSC_scale )で除算されま 表 V. 係数の計算例 Equation Equation Coefficients Calculation* Rounded Result (–4096 ≤ N < 4096) Register Hex Value (Twos complement) Red Cr 1.54 × 4096/2 3154 A1[12:0] 0x0C52 Green Blue 1.54 Y 1 1 × 4096/2 2048 A2[12:0] 0x0800 Cb 0 0 × 4096/2 0 A3[12:0] 0x0000 Cr –0.459 0.459 × 4096/2 –940 B1[12:0] 0x1C54 Y 1 1 × 4096/2 2048 B2[12:0] 0x0800 Cb –0.183 0.183 × 4096/2 –375 B3[12:0] 0x3E89 Cr 0 0 × 4096/2 0 C1[12:0] 0x000 Y 1 1 × 4096/2 2048 C2[12:0] 0x0800 Cb 1.816 1.816 × 4096/2 3719 C3[12:0] 0x0E87 *CSC_scale に 1 が設定されるため、計算した係数は 2 で除算されます。 Rev. 0 - 3/8 - AN-795 アプリケーション・ノート CSC例に対するレジスタ設定値 CSC 例の場合、AD9880 の I2C レジスタには表 VI に示す値を設定する必要があります。 表 VI. カラー・スペース変換とデシメーション・フィルタ Register Red/Cr Coeff. 1 Address 0x35 0x36 Red/Cr Coeff. 2 0x37 0x38 Red/Cr Coeff. 3 0x39 0x3A Red/Cr Offset 0x3B 0x3C Green/Y Coeff. 1 0x3D 0x3E Green/Y Coeff. 2 0x3F 0x40 Green/Y Coeff. 3 0x41 0x42 Green/Y Coeff. 4 0x43 0x44 Blue/Cb Coeff. 1 0x45 0x46 Blue/Cb Coeff. 2 0x47 0x48 Blue/Cb Coeff. 3 0x49 0x4A Blue/Cb Offset 0x4B 0x4C Bit Description and Values unused CSC_scale[1:0] * 0 A1.7 A1.6 0 1 unused unused * * A2.7 A2.6 0 0 unused unused * * A3.7 A3.6 * * unused unused ** A4.7 A4.6 1 1 unused unused ** B1.7 B1.6 0 1 unused unused * * B2.7 B2.6 0 0 unused unused ** B3.7 B3.6 1 0 unused unused * * B4.7 B4.6 1 0 unused unused * * C1.7 C1.6 0 0 unused unused * * C2.7 C2.6 0 0 unused unused * * C3.7 C3.6 1 0 unused unused * * C4.7 C4.6 1 0 凡例: █レジスタ・テーブルのビット名 Rev. 0 A1.12 1 A1.5 0 unused * A2.5 0 unused * A3.5 * unused * A4.5 0 unused * B1.5 0 unused * B2.5 0 unused * B3.5 0 unused * B4.5 0 unused * C1.5 0 unused * C2.5 0 unused * C3.5 0 unused * C4.5 1 █ビット値の例 0 A1.4 1 A2.12 0 A2.4 0 A3.12 0 A3.4 0 A4.12 1 A4.4 1 B1.12 1 B1.4 1 B2.12 0 B2.4 0 B3.12 1 B3.4 0 B4.12 0 B4.4 1 C1.12 0 C1.4 0 C2.12 0 C2.4 0 C3.12 0 C3.4 0 C4.12 1 C4.4 1 A1.11 1 A1.3 0 A2.11 0 A2.3 0 A3.11 0 A3.3 0 A4.11 1 A4.3 0 B1.11 1 B1.3 0 B2.11 1 B2.3 0 B3.11 1 B3.3 1 B4.11 0 B4.3 0 C1.11 0 C1.3 0 C2.11 1 C2.3 0 C3.11 1 C3.3 0 C4.11 1 C4.3 1 █レジスタ値の例 - 4/8 - A1.10 1 A1.2 0 A2.10 0 A2.2 0 A3.10 0 A3.2 0 A4.10 0 A4.2 1 B1.10 1 B1.2 1 B2.10 0 B2.2 0 B3.10 1 B3.2 0 B4.10 0 B4.2 0 C1.10 0 C1.2 0 C2.10 0 C2.2 0 C3.10 1 C3.2 1 C4.10 0 C4.2 1 A1.9 0 A1.1 1 A2.9 0 A2.1 0 A3.9 0 A3.1 0 A4.9 0 A4.1 1 B1.9 0 B1.1 0 B2.9 0 B2.1 0 B3.9 1 B3.1 0 B4.9 1 B4.1 0 C1.9 0 C1.1 0 C2.9 0 C2.1 0 C3.9 1 C3.1 1 C4.9 0 C4.1 0 A1.8 0 A1.0 0 A2.8 0 A2.0 0 A3.8 0 A3.0 0 A4.8 1 A4.0 1 B1.8 0 B1.0 0 B2.8 0 B2.0 0 B3.8 0 B3.0 1 B4.8 0 B4.0 1 C1.8 0 C1.0 0 C2.8 0 C2.0 0 C3.8 0 C3.0 1 C4.8 0 C4.0 1 Hex Value 0x0C 0x52 0x08 0x00 0x00 0x00 0x19 0xD7 0x1C 0x54 0x08 0x00 0x3E 0x89 0x02 0x91 0x00 0x00 0x08 0x00 0x0E 0x87 0x18 0xBD AN-795 アプリケーション・ノート アペンディックス 標準のカラー・スペース変換でのレジスタ設定値 表 VIII. HDTV YCrCb (16 – 235)から RGB (0 – 255)への変換 表 VII. HDTV YCrCb (0 – 255) to RGB (0 – 255)* Register Red/Cr Coeff. 1 Red/Cr Coeff. 2 Red/Cr Coeff. 3 Red/Cr Coeff. Offset Green/Y Coeff. 1 Green/Y Coeff. 2 Green/Y Coeff. 3 Green/Y Coeff. Offset Blue/Cb Coeff. 1 Blue/Cb Coeff. 2 Blue/Cb Coeff. 3 Blue/Cb Coeff. Offset Address Value Register 0x35 0x0C Red/Cr Coeff. 1 0x36 0x52 0x37 0x08 0x38 0x00 0x39 0x00 0x3A 0x00 0x3B 0x19 0x3C 0xD7 0x3D 0x1C 0x3E 0x54 0x3F 0x08 0x40 0x00 0x41 0x3E 0x42 0x89 0x43 0x02 0x44 0x91 0x45 0x00 0x46 0x00 0x47 0x08 0x48 0x00 0x49 0x0E 0x4A 0x87 0x4B 0x18 0x4C 0xBD Red/Cr Coeff. 2 Red/Cr Coeff. 3 Red/Cr Coeff. Offset Green/Y Coeff. 1 Green/Y Coeff. 2 Green/Y Coeff. 3 Green/Y Coeff. Offset Blue/Cb Coeff. 1 Blue/Cb Coeff. 2 Blue/Cb Coeff. 3 Blue/Cb Coeff. Offset *これは例と同じ変換です。係数は、AD9880 のデフォルト設定値です。 Rev. 0 - 5/8 - Address Value 0x35 0x47 0x36 0x2C 0x37 0x04 0x38 0xA8 0x39 0x00 0x3A 0x00 0x3B 0x1C 0x3C 0x1F 0x3D 0x1D 0x3E 0xDD 0x3F 0x04 0x40 0xA8 0x41 0x1F 0x42 0x26 0x43 0x01 0x44 0x34 0x45 0x00 0x46 0x00 0x47 0x04 0x48 0xA8 0x49 0x08 0x4A 0x75 0x4B 0x1B 0x4C 0x7D AN-795 アプリケーション・ノート 表 X. SDTV YCrCb (16 – 235)から RGB (0 – 255)への変換 表 IX. SDTV YCrCb (0 – 255)から RGB (0 – 255)への変換 Register Address Value Register Address Value Red/Cr Coeff. 1 0x35 0x2A Red/Cr Coeff. 1 0x35 0x46 0x36 0xFA 0x36 0x63 0x37 0x08 0x38 0x00 Red/Cr Coeff. 2 Red/Cr Coeff. 3 Red/Cr Coeff. Offset Green/Y Coeff. 1 Green/Y Coeff. 2 Green/Y Coeff. 3 Green/Y Coeff. Offset Blue/Cb Coeff. 1 Blue/Cb Coeff. 2 Blue/Cb Coeff. 3 Blue/Cb Coeff. Offset Rev. 0 0x39 0x00 0x3A 0x00 0x3B 0x1A 0x3C 0x84 0x3D 0x1A 0x3E 0x6A 0x3F 0x08 0x40 0x00 0x41 0x1D 0x42 0x50 0x43 0x04 0x44 0x23 0x45 0x00 0x46 0x00 0x47 0x08 0x48 0x00 0x49 0x0D 0x4A 0xDB 0x4B 0x19 0x4C 0x12 Red/Cr Coeff. 2 Red/Cr Coeff. 3 Red/Cr Coeff. Offset Green/Y Coeff. 1 Green/Y Coeff. 2 Green/Y Coeff. 3 Green/Y Coeff. Offset Blue/Cb Coeff. 1 Blue/Cb Coeff. 2 Blue/Cb Coeff. 3 Blue/Cb Coeff. Offset - 6/8 - 0x37 0x04 0x38 0xA8 0x39 0x00 0x3A 0x00 0x3B 0x1C 0x3C 0x84 0x3D 0x1C 0x3E 0xC0 0x3F 0x04 0x40 0xA8 0x41 0x1E 0x42 0x6F 0x43 0x02 0x44 0x1E 0x45 0x00 0x46 0x00 0x47 0x04 0x48 0xA8 0x49 0x08 0x4A 0x11 0x4B 0x1B 0x4C 0xAD AN-795 アプリケーション・ノート 表 XII. RGB (0 – 255)から HDTV YCrCb (16 – 235)への変換 表 XI. RGB (0 – 255)から HDTV YCrCb (0 – 255)への変換 Register Address Value Register Address Value Red/Cr Coeff. 1 0x35 0x08 Red/Cr Coeff. 1 0x35 0x07 0x36 0x2D 0x36 0x06 0x37 0x18 0x38 0x93 Red/Cr Coeff. 2 Red/Cr Coeff. 3 Red/Cr Coeff. Offset Green/Y Coeff. 1 Green/Y Coeff. 2 Green/Y Coeff. 3 Green/Y Coeff. Offset Blue/Cb Coeff. 1 Blue/Cb Coeff. 2 Blue/Cb Coeff. 3 Blue/Cb Coeff. Offset Rev. 0 0x39 0x1F 0x3A 0x3F 0x3B 0x08 0x3C 0x00 0x3D 0x03 0x3E 0x68 0x3F 0x0B 0x40 0x71 0x41 0x01 0x42 0x27 0x43 0x00 0x44 0x00 0x45 0x1E 0x46 0x21 0x47 0x19 0x48 0xB2 0x49 0x08 0x4A 0x2D 0x4B 0x08 0x4C 0x00 Red/Cr Coeff. 2 Red/Cr Coeff. 3 Red/Cr Coeff. Offset Green/Y Coeff. 1 Green/Y Coeff. 2 Green/Y Coeff. 3 Green/Y Coeff. Offset Blue/Cb Coeff. 1 Blue/Cb Coeff. 2 Blue/Cb Coeff. 3 Blue/Cb Coeff. Offset - 7/8 - 0x37 0x19 0x38 0xA0 0x39 0x1F 0x3A 0x5B 0x3B 0x08 0x3C 0x00 0x3D 0x02 0x3E 0xED 0x3F 0x09 0x40 0xD3 0x41 0x00 0x42 0xFD 0x43 0x01 0x44 0x00 0x45 0x1E 0x46 0x64 0x47 0x1A 0x48 0x96 0x49 0x07 0x4A 0x06 0x4B 0x08 0x4C 0x00 AN-795 アプリケーション・ノート 表 XIV. RGB (0 – 255)から HDTV YCrCb (16 – 235)への変換 表 XIII. RGB (0 – 255)から HDTV YCrCb (0 – 255)への変換 Register Address Value Register Address Value Red/Cr Coeff. 1 0x35 0x08 Red/Cr Coeff. 1 0x35 0x07 0x36 0x2D 0x36 0x06 0x37 0x19 0x38 0x27 Red/Cr Coeff. 2 Red/Cr Coeff. 3 Red/Cr Coeff. Offset Green/Y Coeff. 1 Green/Y Coeff. 2 Green/Y Coeff. 3 Green/Y Coeff. Offset Blue/Cb Coeff. 1 Blue/Cb Coeff. 2 Blue/Cb Coeff. 3 Blue/Cb Coeff. Offset 0x39 0x1E 0x3A 0xAC 0x3B 0x08 0x3C 0x00 0x3D 0x04 0x3E 0xC9 0x3F 0x09 0x40 0x64 0x41 0x01 0x42 0xD3 0x43 0x00 0x44 0x00 0x45 0x1D 0x46 0x3F 0x47 0x1A 0x48 0x93 0x49 0x08 0x4A 0x2D 0x4B 0x08 0x4C 0x00 Red/Cr Coeff. 2 Red/Cr Coeff. 3 Red/Cr Coeff. Offset Green/Y Coeff. 1 Green/Y Coeff. 2 Green/Y Coeff. 3 Green/Y Coeff. Offset Blue/Cb Coeff. 1 Blue/Cb Coeff. 2 Blue/Cb Coeff. 3 Blue/Cb Coeff. Offset ©2005 Analog Devices, Inc. All rights reserved. 商標および登録商標は各社の所有に属します。 Rev. 0 - 8/8 - 0x37 0x1A 0x38 0x1E 0x39 0x1E 0x3A 0xDC 0x3B 0x08 0x3C 0x00 0x3D 0x04 0x3E 0x1C 0x3F 0x08 0x40 0x11 0x41 0x01 0x42 0x91 0x43 0x01 0x44 0x00 0x45 0x1D 0x46 0xA3 0x47 0x1B 0x48 0x57 0x49 0x07 0x4A 0x06 0x4B 0x08 0x4C 0x00