blob: ec61893ac9932808d4b04d08f6d15769310c7538 [file] [log] [blame]
Name
EXT_422_pixels
Name Strings
GL_EXT_422_pixels
Version
Date: 3/22/1998 Version 1.2
Number
178
Dependencies
None
Overview
This extension provides support for converting 422 pixels in host
memory to 444 pixels as part of the pixel storage operation.
The pixel unpack storage operation treats a 422 pixel as a 2 element
format where the first element is C (chrominance) and the second
element is L (luminance). Luminance is present on all pixels; a full
chrominance value requires two pixels.
The pixel pack storage operation converts RGB to a 422 pixel defined as
a 2 element format where the first element stored is C (chrominance)
and the second element stored is L (luminance). Luminance is present
on all pixels; a full chrominance value requires two pixels.
Both averaging and non-averaging is supported for green and blue
assignments for pack and unpack operations.
New Procedures and Functions
None
New Tokens
Accepted by the <format> parameter of DrawPixels, ReadPixels,
TexImage1D, TexImage2D, GetTexImage, TexImage3D, TexSubImage1D,
TexSubImage2D, TexSubImage3D, GetHistogram, GetMinmax,
ConvolutionFilter1D, ConvolutionFilter2D, ConvolutionFilter3D,
GetConvolutionFilter, SeparableFilter2D, SeparableFilter3D,
GetSeparableFilter, ColorTable, and GetColorTable.
422_EXT 0x80CC
422_REV_EXT 0x80CD
422_AVERAGE_EXT 0x80CE
422_REV_AVERAGE_EXT 0x80CF
Additions to Chapter 2 of the 1.2 Specification (OpenGL Operation)
None
Additions to Chapter 3 of the 1.2 Specification (Rasterization)
The four tokens defined by this extension are added to Table 3.6:
Format Name Element Meaning and Order Target Buffer
------------------- ------------------------- --------------
422_EXT C, L, C, L Color
422_REV_EXT L, C, L, C Color
422_AVERAGE_EXT C, L, C, L Color
422_REV_AVERAGE_EXT L, C, L, C Color
Table 3.6: DrawPixels and ReadPixels formats. The second column
gives a description of and the number and order of elements in a
group. Unless specified as an index, formats yield components.
3.6.4 Rasterization of Pixel Rectangles
[The new formats are added to the discussion of "Conversion to RGB"]
This step is applied only if <format> is 422_EXT, 422_REV_EXT,
422_AVERAGE_EXT, or 422_AVERAGE_REV_EXT. For 422_EXT and
422_REV_EXT, the assignment of the elements in a group to
R, G, and B are defined in the following equations:
Even Pixel Odd Pixel
------------- -------------
R = L[n*2] R = L[n*2+1]
G = C[n*2] G = C[n*2]
B = C[n*2+1] B = C[n*2+1]
where 0 < n < width/2. If the <width> of the image is odd, then
the last column of pixels will have an undefined color value.
For 422_AVERAGE_EXT and 422_AVERAGE_REV_EXT, the assignment of the
elements in a group to R, G, and B are defined in the following
equations:
Even Pixel Odd Pixel (Averaged)
------------- ------------------------------
R = L[n*2] R = L[n*2+1]
G = C[n*2] G = (C[n*2] + C[n*2+2]) / 2
B = C[n*2+1] B = (C[n*2+1] + C[n*2+3]) / 2
where 0 < n < width/2. If the <width> of the image is odd, then the
last column of pixels will have an undefined color value. If the
pixels at [n*2+2] or [n*2+3] are not present, then the non-averaging
odd pixel equations are used for that pixel.
Additions to Chapter 4 of the 1.2 Specification (Per-Fragment Operations
and the Framebuffer)
[The new formats are added to the discussion of "Obtaining Pixels
from the Framebuffer."]
[A new section, "Conversion to 422," is added after the section
"Conversion to L."]
This step applies only to RGBA component groups, and only if the
<format> is 422_EXT, 422_REV_EXT, 422_AVERAGE_EXT, or
422_AVERAGE_REV_EXT. For 422_EXT, RGB is converted to a 422 pixel
defined as a 2 element format where the first element stored is
C (chrominance) and the second element stored is L (luminance).
For 422_REV_EXT, the first element stored is luminance and the
second element stored is chrominance.
Luminance is present on all pixels; only one chrominance value is
present on each pixel. The conversion is performed according to the
following equations.
Even Pixel Odd Pixel
------------- -------------
L = R[n*2] L = R[n*2+1]
C = G[n*2] C = B[n*2]
where 0 < n < width/2.
For 422_AVERAGE_EXT and 422_AVERAGE_REV_EXT, the calculation of
the chrominance is performed by averaging adjacent pixel components
according to the following equations:
Even Pixel (Averaged) Odd Pixel (Averaged)
------------------------------ -----------------------------
L = R[n*2] L = R[n*2+1]
C = (G[n*2] + G[n*2+1]) / 2 C = (B[n*2] + B[n*2+1]) / 2
where 0 < n < width/2. If the pixel at [n*2+1] is not present, then
the non-averaging pixel equations are used for that pixel.
Additions to Chapter 5 of the 1.2 Specification (Special Functions)
None
Additions to Chapter 6 of the 1.2 Specification (State and State Requests)
None
Additions to the GLX Specification
None
GLX Protocol
None
Errors
None
New State
None
New Implementation Dependent State
None