AN-795: AD9880カラー・スペース・コンバータのユーザズ・ガイド (Rev. 0) PDF

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