| 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 |