English
Language : 

ADV7310 Datasheet, PDF (48/84 Pages) Analog Devices – Multiformat 216 MHz Video Encoder with Six NSV 12-Bit DACs
ADV7310/ADV7311
Gamma Correction
[Subaddress 24h–37h for HD, Subaddress 66h–79h for SD]
Gamma correction is available for SD and HD video. For each
standard, there are twenty 8-bit wide registers. They are used to
program the gamma correction curves A and B. HD gamma
curve A is programmed at Addresses 24h to 2Dh, HD gamma
curve B at 2Eh to 7h. SD gamma curve A is programmed at
Addresses 66h to 6Fh, and SD gamma curve B at Addresses
70h to 79h.
Generally gamma correction is applied to compensate for the
nonlinear relationship between signal input and brightness level
output (as perceived on the CRT). It can also be applied wherever
nonlinear processing is used.
Gamma correction uses the function
( ) SignalOUT = SignalIN γ
where ␥ = gamma power factor.
Gamma correction is performed on the luma data only. The user
may choose either of two different curves, curve A or curve B.
At any one time, only one of these curves can be used.
The response of the curve is programmed at 10 predefined loca-
tions. In changing the values at these locations, the gamma curve
can be modified. Between these points, linear interpolation is
used to generate intermediate values. Considering the curve to
have a total length of 256 points, the 10 locations are at 24, 32,
48, 64, 80, 96, 128, 160, 192, and 224. Locations 0, 16, 240,
and 255 are fixed and cannot be changed.
For the length of 16 to 240, the gamma correction curve has to
be calculated as follows:
where:
y =xγ
y = gamma corrected output
x = linear input signal
␥ = gamma power factor
To program the gamma correction registers, the seven values for
y have to be calculated using the following formula:
where:
yn
=
( ) 


x(n −16)
240 − 16



␥
× (240
− 16) + 16
x(n – 16) = Value for x along x axis at points
n = 24, 32, 48, 64, 80, 96, 128, 160, 192, or 224
yn = Value for y along the y axis, which has to be written into
the gamma correction register
For example:
y24 = [(8 / 224)0.5 × 224] + 16 = 58*
y32 = [(16 / 224)0.5 × 224] + 16 = 76*
y48 = [(32 / 224)0.5 × 224] + 16 = 101*
y64 = [(48 / 224)0.5 × 224] + 16 =120*
y80 = [(64 / 224)0.5 × 224] + 16 =136*
y96 = [(80 / 224)0.5 × 224] + 16 = 150*
y128 = [(112 / 224)0.5 × 224] + 16 = 174*
y160 = [(144 / 224)0.5 × 224] + 16 = 195*
y192 = [(176 / 224)0.5 × 224] + 16 = 214*
y224 = [(208 / 224)0.5 × 224] + 16 = 232*
*rounded to the nearest integer
The gamma curves in Figures 46 and 47 are examples only; any
user defined curve is acceptable in the range of 16 to 240.
GAMMA CORRECTION BLOCK OUTPUT TO A RAMP INPUT
300
250
SIGNAL OUTPUT
200
0.5
150
100
SIGNAL INPUT
50
0
0
50
100
150
200
250
LOCATION
Figure 41. Signal Input (Ramp) and Signal Output
for Gamma 0.5
GAMMA CORRECTION BLOCK TO A RAMP INPUT FOR
VARIOUS GAMMA VALUES
300
250
0.3
200
0.5
150
100
SIGNAL INPUT
1.5
1.8
50
0
0
50
100
150
200
250
LOCATION
Figure 42. Signal Input (Ramp) and Selectable
Output Curves
–48–
REV. A