DXVADDI_VIDEOPROCESSORCAPS结构描述特定反交错模式的视频处理功能。
语法
typedef struct _DXVADDI_VIDEOPROCESSORCAPS {
[out] D3DDDI_POOL InputPool;
[out] UINT NumForwardRefSamples;
[out] UINT NumBackwardRefSamples;
[out] D3DDDIFORMAT OutputFormat;
[out] UINT DeinterlaceTechnology;
[out] UINT ProcAmpControlCaps;
[out] UINT VideoProcessorOperations;
[out] UINT NoiseFilterTechnology;
[out] UINT DetailFilterTechnology;
} DXVADDI_VIDEOPROCESSORCAPS;
成员
[out] InputPool
一个 D3DDDI_POOL类型值,指示应从中分配交错源图面的内存池。
[out] NumForwardRefSamples
定义的反交错模式所需的转发引用示例数。 这些示例位于后续字段中。 对于 bob 和行混合,此值为零,可以是自适应反交错和帧速率转换的其他值(例如 1、2 或 3)。
[out] NumBackwardRefSamples
定义的反交行模式所需的后向引用示例。 这些示例位于以前的字段中。 对于 bob,此值为零,1 表示行混合,可以是其他值(例如 1、2 或 3),用于自适应反交错和帧速率转换。
[out] OutputFormat
一个 D3DDDIFORMAT类型值,指示未压缩输出帧的像素格式。 通常,反交错算法以与输入样本格式匹配的像素格式输出帧。 此成员可确保视频混合呈现器(VMR)或其他视频呈现器能够向反交错硬件提供正确的输出帧图面。
请注意,如果在 VideoProcessorOperations 成员中返回DXVADDI_VIDEOPROCESS_YUV2RGB值,则 VMR 将确定此成员指定有效的输出格式以及D3DFMT_X8R8G8B8格式。
[out] DeinterlaceTechnology
以下值的按位 OR,指示用于实现反交错算法的基础反交错技术。 可以根据需要组合这些值,以最接近算法的实现。
| 值 | 含义 |
|---|---|
| DXVADDI_DEINTERLACETECH_UNKNOWN | 去交错技术未知。 |
| DXVADDI_DEINTERLACETECH_BOBLINEREPLICATE | deinterlace 算法通过重复缺失行上方或下方的行来创建缺失行。 此方法看起来很锯齿,不建议这样做。 |
| DXVADDI_DEINTERLACETECH_BOBVERTICALSTRETCH | 一种反交错算法,通过垂直拉伸每个视频字段以两个乘以平均两行的一个因子来创建缺失的行。 进行了轻微的垂直调整,以确保生成的图像不会上下移动。 |
| DXVADDI_DEINTERLACETECH_BOBVERTICALSTRETCH4TAP | 使用 [-1, 9, 9, -1] / 16 筛选器跨四行垂直拉伸每个视频字段,从而创建缺失行的反交错算法,将每个视频字段垂直拉伸为 2 倍。 进行了轻微的垂直调整,以确保生成的图像不会上下移动。 |
| DXVADDI_DEINTERLACETECH_MEDIANFILTERING | 缺失行中的像素由中值筛选作重新创建。 |
| DXVADDI_DEINTERLACETECH_EDGEFILTERING | 缺失行中的像素由边缘筛选器重新创建。 在此过程中,将应用空间方向筛选器来确定图片内容中边缘的方向,并且通过沿检测到的边缘(而不是跨)进行筛选来创建缺失像素。 |
| DXVADDI_DEINTERLACETECH_FIELDADAPTIVE | 缺失行中的像素通过根据运动量在空间或时态内插之间逐字段切换来重新创建。 |
| DXVADDI_DEINTERLACETECH_PIXELADAPTIVE | 缺失行中的像素通过根据运动量在空间或时态内插之间逐像素切换来重新创建。 |
| DXVADDI_DEINTERLACETECH_MOTIONVECTORSTEERED | 视频字段序列中的对象。 在首次对齐场景中各个对象的移动轴以使其与时间轴平行之后,将重新创建缺失的像素。 |
| DXVADDI_DEINTERLACETECH_INVERSETELECINE | 一种反交错算法,可以撤消 3:2 下拉过程,用于在 60Hz 显示器上显示 24Hz 内容、50Hz 显示器上的 25Hz 内容等。 |
[out] ProcAmpControlCaps
以下值的按位 OR,指示硬件支持的 ProcAmp作。
| 值 | 含义 |
|---|---|
| DXVADDI_PROCAMP_NONE | 硬件不支持任何 ProcAmp作。 |
| DXVADDI_PROCAMP_BRIGHTNESS | 允许对视频图像进行亮度调整。 |
| DXVADDI_PROCAMP_CONTRAST | 允许对视频图像进行对比度调整。 |
| DXVADDI_PROCAMP_HUE | 允许对视频图像进行色调调整。 |
| DXVADDI_PROCAMP_SATURATION | 允许对视频图像进行饱和度调整。 |
[out] VideoProcessorOperations
以下值的按位 OR,指示硬件可与请求 VideoProcessBlt作同时执行哪些其他视频处理作。
| 值 | 含义 |
|---|---|
| DXVADDI_VIDEOPROCESS_NONE | 硬件无法再执行任何视频处理作。 |
| DXVADDI_VIDEOPROCESS_YUV2RGB | 允许从 YUV 颜色空间到 RGB 颜色空间的视频转换。 使用的 RGB 格式对于每个颜色组件至少有 8 位精度。 如果可以执行此作,则可以避免在 VMR 中复制缓冲区。 请注意,不需要从 RGB 颜色空间转换为 YUV 颜色空间。 |
| DXVADDI_VIDEOPROCESS_STRETCHX | 如果硬件能够水平拉伸或收缩,则可以在视频调整 ProcAmp 的同时执行纵横比更正。 |
| DXVADDI_VIDEOPROCESS_STRETCHY | 纵横比调整与常规图片大小调整作相结合,以缩放应用程序定义的合成空间中的视频图像。 此作很少见,不是一项基本功能。 最好是调整视频大小以适应应用程序窗口所需的缩放,同时执行 ProcAmp 调整所需的缩放。 这种类型的作可避免累积项目。 |
| DXVADDI_VIDEOPROCESS_ALPHABLEND | 更改 alpha 值时,VMR 不会执行缓冲区复制。 应用程序很少更改与视频流关联的常量 alpha 值,因此此作是低优先级功能。 |
| DXVADDI_VIDEOPROCESS_SUBRECTS | 视频处理设备可以在视频图像的子区域上运行。 如果在进一步处理视频图像之前必须裁剪视频图像,因为输出帧的大小会减少,则此作非常有用。 |
| DXVADDI_VIDEOPROCESS_SUBSTREAMS | 视频处理设备可以将视频子流与视频流相结合。 |
| DXVADDI_VIDEOPROCESS_SUBSTREAMSEXTENDED | 可以对源视频流和子流进行必要的颜色调整。 这些调整在扩展的颜色数据中指示,因为视频已取消交错、与子流组合,并写入目标图面。 |
| DXVADDI_VIDEOPROCESS_YUV2RGBEXTENDED | 可以使用为源图面和目标图面指定的扩展颜色信息,执行颜色空间转换作,因为反交错像素和复合像素将写入目标图面。 |
| DXVADDI_VIDEOPROCESS_ALPHABLENDEXTENDED | 当反交错像素和复合像素写入目标图面时,可以与目标图面一起执行 alpha 混合作。 驱动程序必须基于 D3DDDIARG_VIDEOPROCESSBLT 结构的 Alpha 成员的 alpha 值处理背景色。 当 alpha 值为 1.0 时,背景色不透明(不透明)。 当 alpha 值为 0.0 时,不应绘制背景(透明)。 |
| DXVADDI_VIDEOPROCESS_CONSTRICTION | 视频处理设备可以暂时将输出帧减小为 D3DDDIARG_VIDEOPROCESSBLT 结构的成员所指定的大小。 |
| DXVADDI_VIDEOPROCESS_NOISEFILTER | 视频处理设备可以在视频流上执行噪音筛选作。 |
| DXVADDI_VIDEOPROCESS_DETAILFILTER | 视频处理设备可以对视频流执行详细筛选作。 |
| DXVADDI_VIDEOPROCESS_PLANARALPHA | 视频处理设备可以将恒定的 alpha 混合应用到整个视频流(平面),同时将视频流和子流混合在一起。 D3DDDIARG_VIDEOPROCESSBLT的 Alpha 成员指定 alpha 值。 |
| DXVADDI_VIDEOPROCESS_LINEARSCALING | 视频处理设备可以线性缩放视频流。 |
| DXVADDI_VIDEOPROCESS_GAMMACOMPENSATED | 视频处理设备可以在视频流上执行伽玛转换。 |
| DXVADDI_VIDEOPROCESS_MAINTAINSORIGINALFIELDDATA | 视频处理设备可以维护原始字段数据。 |
[out] NoiseFilterTechnology
以下值的按位 OR,指示用于实现干扰筛选的基础技术。 可以根据需要组合这些值,以最接近干扰筛选器实现。
| 值 | 含义 |
|---|---|
| DXVADDI_NOISEFILTERTECH_UNSUPPORTED | 不支持干扰筛选器技术。 |
| DXVADDI_NOISEFILTERTECH_UNKNOWN | 干扰筛选器技术未知。 |
| DXVADDI_NOISEFILTERTECH_MEDIAN | 视频处理设备使用中间噪音筛选。 |
| DXVADDI_NOISEFILTERTECH_TEMPORAL | 视频处理设备使用时态噪音筛选。 |
| DXVADDI_NOISEFILTERTECH_BLOCKNOISE | 视频处理设备使用块噪音筛选。 |
| DXVADDI_NOISEFILTERTECH_MOSQUITONOISE | 视频处理设备使用蚊子噪音筛选。 |
[out] DetailFilterTechnology
以下值的按位 OR,指示用于实现详细信息筛选的基础技术。 可以根据需要组合这些值,以最接近细节筛选器实现。
| 值 | 含义 |
|---|---|
| DXVADDI_DETAILFILTERTECH_UNSUPPORTED | 不支持细节筛选器技术。 |
| DXVADDI_DETAILFILTERTECH_UNKNOWN | 细节筛选器技术未知。 |
| DXVADDI_DETAILFILTERTECH_EDGE | 视频处理设备使用边缘详细信息筛选。 |
| DXVADDI_DETAILFILTERTECH_SHARPENING | 视频处理设备使用锐化的详细信息筛选。 |
要求
| 要求 | 价值 |
|---|---|
| 最低支持的客户端 | 在 Windows Vista 和更高版本的 Windows作系统中可用。 |
| 标头 | d3dumddi.h (包括 D3dumddi.h) |