Uncompressed RGB Video Subtypes

The following subtypes define uncompressed RGB formats with no alpha channel.

ConstantDescription
MEDIASUBTYPE_RGB1

RGB, 1 bit per pixel (bpp), palettized

MEDIASUBTYPE_RGB4

RGB, 4 bpp, palettized

MEDIASUBTYPE_RGB8

RGB, 8 bpp, palettized

MEDIASUBTYPE_RGB555

RGB 555, 16 bpp

MEDIASUBTYPE_RGB565

RGB 565, 16 bpp

MEDIASUBTYPE_RGB24

RGB, 24 bpp

MEDIASUBTYPE_RGB32

RGB, 32 bpp

The following subtypes define uncompressed RGB formats with alpha channel.

ConstantDescription
MEDIASUBTYPE_ARGB1555

RGB 555 with alpha channel

MEDIASUBTYPE_ARGB32

RGB 32 with alpha channel

MEDIASUBTYPE_ARGB4444

16-bit RGB with alpha channel; 4 bits per channel

MEDIASUBTYPE_A2R10G10B10

32-bit RGB with alpha channel; 10 bits per RGB channel plus 2 bits for alpha.

MEDIASUBTYPE_A2B10G10R10

32-bit RGB with alpha channel; 10 bits per RGB channel plus 2 bits for alpha.

Remarks

For palettized formats, the color of each pixel is specified as an index into a palette. The palette must be included in the format block, following the BITMAPINFOHEADER structure. For non-palettized formats, the color of each pixel is specified directly; the memory layout depends on the bit depth:

  • RGB 555 uses the following memory layout:
    
    
    High-order byte:    Low-order byte: 
    X R R R R R G G     G G G B B B B B 
    
    X = Don't care, R = Red, G = Green, B = Blue
    
    
    
  • RGB 565 uses the following memory layout:
    
    
    High-order byte:    Low-order byte: 
    R R R R R G G G     G G G B B B B B 
    
    
    
  • For RGB 24, every pixel is an RGBTRIPLE. Each color is one byte, with a value from 0 to 255, inclusive. The memory layout is:
    Byte012
    ValueBlueGreenRed

     

  • For RGB 32, every pixel is an RGBQUAD. Each color is one byte, with a value from 0 to 255, inclusive. The memory layout is:
    Byte0123
    ValueBlueGreenRedAlpha or Don't Care

     

    If the subtype is MEDIASUBTYPE_ARGB32, byte 3 contains a value for the alpha channel. If the subtype is MEDIASUBTYPE_RGB32, byte 3 should be ignored.

  • A2R10G10B10 uses the following layout:
    Bit0 - 910 - 1920 - 2930 - 31
    ValueBlueGreenRedAlpha

     

  • A2B10G10R10 uses the following layout:
    Bit0 - 910 - 1920 - 2930 - 31
    ValueRedGreenBlueAlpha

     

Requirements

Header

Dshow.h

See also

Video Subtypes
Working with Video Frames

 

 

Show: