未压缩的 RGB 视频子类型

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

以下子类型定义没有 alpha 通道的未压缩 RGB 格式。

一直 说明
MEDIASUBTYPE_RGB1
RGB,每像素 1 位 (bpp) ,淡化
MEDIASUBTYPE_RGB4
RGB、4 bpp、palettized
MEDIASUBTYPE_RGB8
RGB,8 bpp,淡化
MEDIASUBTYPE_RGB555
RGB 555,16 bpp
MEDIASUBTYPE_RGB565
RGB 565,16 bpp
MEDIASUBTYPE_RGB24
RGB,24 bpp
MEDIASUBTYPE_RGB32
RGB,32 bpp

以下子类型使用 alpha 通道定义未压缩的 RGB 格式。

一直 说明
MEDIASUBTYPE_ARGB1555
带 alpha 通道的 RGB 555
MEDIASUBTYPE_ARGB32
带 alpha 通道的 RGB 32
MEDIASUBTYPE_ARGB4444
具有 alpha 通道的 16 位 RGB;每个通道 4 位
MEDIASUBTYPE_A2R10G10B10
具有 alpha 通道的 32 位 RGB;每个 RGB 通道 10 位,alpha 为 2 位。
MEDIASUBTYPE_A2B10G10R10
具有 alpha 通道的 32 位 BGR;每个 BGR 通道 10 位,alpha 为 2 位。

备注

对于淡化格式,每个像素的颜色都指定为调色板中的索引。 调色板必须包含在格式块中,遵循 BITMAPINFOHEADER 结构。 对于非淡化格式,直接指定每个像素的颜色;内存布局取决于位深度:

  • RGB 555 使用以下内存布局:

    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 使用以下内存布局:

    High-order byte:    Low-order byte: 
    R R R R R G G G     G G G B B B B B 
    
  • 对于 RGB 24,每个像素都是 RGBTRIPLE。 每种颜色都是一个字节,其值介于 0 到 255 之间(包括 0 到 255)。 内存布局为:

    Layout Layout Layout
    Byte 0 1 2
    蓝色 绿色 Red

     

  • 对于 RGB 32,每个像素都是 RGBQUAD。 每种颜色都是一个字节,其值介于 0 到 255 之间(包括 0 到 255)。 内存布局为:

    Layout Layout Layout Layout
    Byte 0 1 2 3
    蓝色 绿色 Red Alpha 或“不在乎”

     

    如果子类型MEDIASUBTYPE_ARGB32,则字节 3 包含 alpha 通道的值。 如果子类型MEDIASUBTYPE_RGB32,则应忽略字节 3。

  • A2R10G10B10 使用以下布局:

    Layout Layout Layout Layout
    0 - 9 10 - 19 20 - 29 30 - 31
    蓝色 绿色 Red Alpha

     

  • A2B10G10R10 使用以下布局:

    Layout Layout Layout Layout
    0 - 9 10 - 19 20 - 29 30 - 31
    Red 绿色 蓝色 Alpha

     

要求

要求
标头
Dshow.h

另请参阅

视频子类型

使用视频帧