15bd8deadSopenharmony_ci 25bd8deadSopenharmony_ciXXX - Not complete. 35bd8deadSopenharmony_ci 45bd8deadSopenharmony_ciName 55bd8deadSopenharmony_ci 65bd8deadSopenharmony_ci SGIX_ycrcb 75bd8deadSopenharmony_ci 85bd8deadSopenharmony_ciName Strings 95bd8deadSopenharmony_ci 105bd8deadSopenharmony_ci GL_SGIX_ycrcb 115bd8deadSopenharmony_ci 125bd8deadSopenharmony_ciVersion 135bd8deadSopenharmony_ci 145bd8deadSopenharmony_ci $Date: 1996/11/21 00:52:30 $ $Revision: 1.2 $ 155bd8deadSopenharmony_ci 165bd8deadSopenharmony_ciNumber 175bd8deadSopenharmony_ci 185bd8deadSopenharmony_ci 101 195bd8deadSopenharmony_ci 205bd8deadSopenharmony_ciDependencies 215bd8deadSopenharmony_ci 225bd8deadSopenharmony_ci EXT_texture3D affects the definition of this extension 235bd8deadSopenharmony_ci EXT_subtexture affects the definition of this extension 245bd8deadSopenharmony_ci EXT_histogram affects the definition of this extension 255bd8deadSopenharmony_ci EXT_convolution affects the definition of this extension 265bd8deadSopenharmony_ci SGI_color_table affects the definition of this extension 275bd8deadSopenharmony_ci 285bd8deadSopenharmony_ci 295bd8deadSopenharmony_ciOverview 305bd8deadSopenharmony_ci 315bd8deadSopenharmony_ci This extension provides a method for OpenGL to read and store 325bd8deadSopenharmony_ci images that are defined in standard YCRCB 422 and 444 video formats. 335bd8deadSopenharmony_ci As with the CYMK extension, conversion to RGBA takes place immediately 345bd8deadSopenharmony_ci following the unpack pixel store, and preceding the pack pixel store 355bd8deadSopenharmony_ci operations, and is only available on transfers to and from memory. 365bd8deadSopenharmony_ci The algorithms that convert between YCRCB and RGBA are "black-box" 375bd8deadSopenharmony_ci in nature, and left undefined by the extension. 385bd8deadSopenharmony_ci 395bd8deadSopenharmony_ci Two new formats are added, YCRCB_422_SGIX and YCRCB_444_SGIX. 405bd8deadSopenharmony_ci 415bd8deadSopenharmony_ci To handle the difference in sampling rate for 422 video, the pixel 425bd8deadSopenharmony_ci storage operations treat YCRCB_422_SGIX as a 2 component format, 435bd8deadSopenharmony_ci where the first component represents chroma, and the second luma. 445bd8deadSopenharmony_ci The chroma component alternates between Cb and Cr values on 455bd8deadSopenharmony_ci a per pixel basis. If the specified image <width> parameter is not 465bd8deadSopenharmony_ci a multiple of 2, then fragments or texels that result from processing 475bd8deadSopenharmony_ci the <width>th column of pixels will have undefined color value. 485bd8deadSopenharmony_ci 495bd8deadSopenharmony_ci YCRCB_444_SGIX is defined as a 3 component format representing 505bd8deadSopenharmony_ci the Cb, Y, and Cr values per pixel. 515bd8deadSopenharmony_ci 525bd8deadSopenharmony_ci As with the CMYK extension, this extension doesn't preclude the 535bd8deadSopenharmony_ci possiblity of other higher quality conversion methods. 545bd8deadSopenharmony_ci 555bd8deadSopenharmony_ciIssues 565bd8deadSopenharmony_ci 575bd8deadSopenharmony_ci * What is standard packing for 444 YCRCB pixels? 585bd8deadSopenharmony_ci Does the 601 standard specify pixel alignment? 595bd8deadSopenharmony_ci 605bd8deadSopenharmony_ci * YCRCB_420_SGIX and other formats? 615bd8deadSopenharmony_ci 625bd8deadSopenharmony_ci * should there be conversion quality hint? 635bd8deadSopenharmony_ci 645bd8deadSopenharmony_ci 655bd8deadSopenharmony_ciNew Procedures and Functions 665bd8deadSopenharmony_ci 675bd8deadSopenharmony_ci None 685bd8deadSopenharmony_ci 695bd8deadSopenharmony_ciNew Tokens 705bd8deadSopenharmony_ci 715bd8deadSopenharmony_ci Accepted by the <format> parameter of DrawPixels, ReadPixels, 725bd8deadSopenharmony_ci TexImage1D, TexImage2D, TexImage3DEXT, TexImage4DSGIS, TexSubImage1DEXT, 735bd8deadSopenharmony_ci TexSubImage2DEXT, TexSubImage3DEXT, TexSubImage4DSGIS, GetTexImage, 745bd8deadSopenharmony_ci ColorTableSGI, GetColorTableSGI, ConvolutionFilter1DEXT, 755bd8deadSopenharmony_ci ConvolutionFilter2DEXT, ConvolutionFilter3DEXT, GetConvolutionFilterEXT, 765bd8deadSopenharmony_ci SeparableFilter2DEXT, SeparableFilter3DEXT, GetSeparableFilterEXT, 775bd8deadSopenharmony_ci GetHistogramEXT, and GetMinmaxEXT: 785bd8deadSopenharmony_ci 795bd8deadSopenharmony_ci YCRCB_422_SGIX 805bd8deadSopenharmony_ci YCRCB_444_SGIX 815bd8deadSopenharmony_ci 825bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.0 Specification (OpenGL Operation) 835bd8deadSopenharmony_ci 845bd8deadSopenharmony_ci None 855bd8deadSopenharmony_ci 865bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.0 Specification (Rasterization) 875bd8deadSopenharmony_ci 885bd8deadSopenharmony_ci Two entries are added to table 3.5 (DrawPixels and ReadPixels formats): 895bd8deadSopenharmony_ci 905bd8deadSopenharmony_ci Target 915bd8deadSopenharmony_ci Name Type Elements Buffer 925bd8deadSopenharmony_ci ---- ---- -------- ------ 935bd8deadSopenharmony_ci YCRCB_422_SGIX Component [Cb,Cr] chroma value, Color 945bd8deadSopenharmony_ci Y luminance value 955bd8deadSopenharmony_ci 965bd8deadSopenharmony_ci YCRCB_444_SGIX Component Cb chroma value, Color 975bd8deadSopenharmony_ci Y luminance value, 985bd8deadSopenharmony_ci Cr chroma value 995bd8deadSopenharmony_ci 1005bd8deadSopenharmony_ci Table 3.5: DrawPixels and ReadPixels formats. The third column 1015bd8deadSopenharmony_ci gives a description of and the number and order of elements in a 1025bd8deadSopenharmony_ci group. 1035bd8deadSopenharmony_ci 1045bd8deadSopenharmony_ci The new formats YCRCB_422_SGIX and YCRCB_444_SGIX are added to the 1055bd8deadSopenharmony_ci discussion of Conversion to RGB. If the format is either of these two 1065bd8deadSopenharmony_ci values, then the chroma and luminance values in each group are converted 1075bd8deadSopenharmony_ci to R, G, and B values using an undefined algorithm. 1085bd8deadSopenharmony_ci If the format is YCRCB_422_SGIX, the conversion algorithm may produce 1095bd8deadSopenharmony_ci undefined RGB values for final pixel of any row where the rowlength 1105bd8deadSopenharmony_ci is not a multiple of 2. 1115bd8deadSopenharmony_ci 1125bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations 1135bd8deadSopenharmony_ciand the Framebuffer) 1145bd8deadSopenharmony_ci 1155bd8deadSopenharmony_ci The new formats are added to the discussion of Obtaining Pixels from the 1165bd8deadSopenharmony_ci Framebuffer. 1175bd8deadSopenharmony_ci 1185bd8deadSopenharmony_ci The new formats are added to the discussion of Index Lookup. 1195bd8deadSopenharmony_ci 1205bd8deadSopenharmony_ci A new section, "Conversion to YCrCb," is added immediately following the 1215bd8deadSopenharmony_ci section "Conversion to L." 1225bd8deadSopenharmony_ci 1235bd8deadSopenharmony_ci 1245bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.0 Specification (Special Functions) 1255bd8deadSopenharmony_ci 1265bd8deadSopenharmony_ci None 1275bd8deadSopenharmony_ci 1285bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.0 Specification (State and State Requests) 1295bd8deadSopenharmony_ci 1305bd8deadSopenharmony_ci None 1315bd8deadSopenharmony_ci 1325bd8deadSopenharmony_ciAdditions to the GLX Specification 1335bd8deadSopenharmony_ci 1345bd8deadSopenharmony_ci None 1355bd8deadSopenharmony_ci 1365bd8deadSopenharmony_ciGLX Protocol 1375bd8deadSopenharmony_ci 1385bd8deadSopenharmony_ci None 1395bd8deadSopenharmony_ci 1405bd8deadSopenharmony_ciErrors 1415bd8deadSopenharmony_ci 1425bd8deadSopenharmony_ci None 1435bd8deadSopenharmony_ci 1445bd8deadSopenharmony_ciNew State 1455bd8deadSopenharmony_ci 1465bd8deadSopenharmony_ci None 1475bd8deadSopenharmony_ci 1485bd8deadSopenharmony_ciNew Implementation Dependent State 1495bd8deadSopenharmony_ci 1505bd8deadSopenharmony_ci None 1515bd8deadSopenharmony_ci 152