
XXX - Not complete.

Name

    SGIX_ycrcb

Name Strings

    GL_SGIX_ycrcb

Version

    $Date: 2005/06/02 18:12:32 $ $Revision: 1.1 $

Number

    101 

Dependencies

    EXT_texture3D affects the definition of this extension
    EXT_subtexture affects the definition of this extension
    EXT_histogram affects the definition of this extension
    EXT_convolution affects the definition of this extension
    SGI_color_table affects the definition of this extension


Overview

    This extension provides a method for OpenGL to read and store 
    images that are defined in standard YCRCB 422 and 444 video formats.
    As with the CYMK extension, conversion to RGBA takes place immediately 
    following the unpack pixel store, and preceding the pack pixel store 
    operations, and is only available on transfers to and from memory.  
    The algorithms that convert between YCRCB and RGBA are "black-box"
    in nature, and left undefined by the extension.

    Two new formats are added, YCRCB_422_SGIX and YCRCB_444_SGIX.

    To handle the difference in sampling rate for 422 video, the pixel 
    storage operations treat YCRCB_422_SGIX as a 2 component format,
    where the first component represents chroma, and the second luma.
    The chroma component alternates between Cb and Cr values on
    a per pixel basis.  If the specified image <width> parameter is not
    a multiple of 2, then fragments or texels that result from processing 
    the <width>th column of pixels will have undefined color value.
     
    YCRCB_444_SGIX is defined as a 3 component format representing 
    the Cb, Y, and Cr values per pixel.
 
    As with the CMYK extension, this extension doesn't preclude the 
    possiblity of other higher quality conversion methods.

Issues

    * What is standard packing for 444 YCRCB pixels?
      Does the 601 standard specify pixel alignment? 

    * YCRCB_420_SGIX and other formats?

    * should there be conversion quality hint? 


New Procedures and Functions

    None

New Tokens

    Accepted by the <format> parameter of DrawPixels, ReadPixels,
    TexImage1D, TexImage2D, TexImage3DEXT, TexImage4DSGIS, TexSubImage1DEXT,
    TexSubImage2DEXT, TexSubImage3DEXT, TexSubImage4DSGIS, GetTexImage,
    ColorTableSGI, GetColorTableSGI, ConvolutionFilter1DEXT,
    ConvolutionFilter2DEXT, ConvolutionFilter3DEXT, GetConvolutionFilterEXT,
    SeparableFilter2DEXT, SeparableFilter3DEXT, GetSeparableFilterEXT,
    GetHistogramEXT, and GetMinmaxEXT:

	YCRCB_422_SGIX
	YCRCB_444_SGIX

Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation)

    None

Additions to Chapter 3 of the 1.0 Specification (Rasterization)

    Two entries are added to table 3.5 (DrawPixels and ReadPixels formats):

									Target
	Name			Type		Elements		Buffer
	----			----		--------		------
	YCRCB_422_SGIX		Component	[Cb,Cr] chroma value,	Color
						Y luminance value	

	YCRCB_444_SGIX		Component	Cb chroma value,	Color
						Y luminance value,
						Cr chroma value

	Table 3.5: DrawPixels and ReadPixels formats.  The third column
	gives a description of and the number and order of elements in a
	group.

    The new formats YCRCB_422_SGIX and YCRCB_444_SGIX are added to the 
    discussion of Conversion to RGB.  If the format is either of these two 
    values, then the chroma and luminance values in each group are converted
    to R, G, and B values using an undefined algorithm.  
    If the format is YCRCB_422_SGIX, the conversion algorithm may produce 
    undefined RGB values for final pixel of any row where the rowlength
    is not a multiple of 2.

Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
and the Framebuffer)

    The new formats are added to the discussion of Obtaining Pixels from the
    Framebuffer.  

    The new formats are added to the discussion of Index Lookup.

    A new section, "Conversion to YCrCb," is added immediately following the
    section "Conversion to L."


Additions to Chapter 5 of the 1.0 Specification (Special Functions)

    None

Additions to Chapter 6 of the 1.0 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

