Intel Media SDK ---摘自ww506772362的专栏

/* IOPattern */

该结构体枚举逐项内存访问模式
enum {
    MFX_IOPATTERN_IN_VIDEO_MEMORY   = 0x01,
    MFX_IOPATTERN_IN_SYSTEM_MEMORY  = 0x02,
    MFX_IOPATTERN_IN_OPAQUE_MEMORY  = 0x04,
    MFX_IOPATTERN_OUT_VIDEO_MEMORY  = 0x10,
    MFX_IOPATTERN_OUT_SYSTEM_MEMORY = 0x20,
    MFX_IOPATTERN_OUT_OPAQUE_MEMORY = 0x40

};


MFX_IOPATTERN_IN_VIDEO_MEMORY 
输入显存
MFX_IOPATTERN_IN_SYSTEM_MEMORY 
输入系统 内存
MFX_IOPATTERN_IN_OPAQUE_MEMORY 
输入到任何一个系统 内存或视频内存表面。 
MFX_IOPATTERN_OUT_VIDEO_MEMORY 
输出显存
MFX_IOPATTERN_OUT_SYSTEM_MEMORY 
输出系统内存
MFX_IOPATTERN_OUT_OPAQUE_MEMORY 
输出任何一个系统 内存缓冲区或视频内存表面。 


Media SDK2.0 Beta揭秘 之 AsyncDepth篇

Media SDK2.0 Beta版本是API 1.1版本的一个延续,本片博客主要讨论它的一个新feature,即AsyncDepth。它是mfxVideoParam结构中的一个新的成员变量。

mfxVideoParam的定义如下所示:

typedef struct _mfxVideoParam {
mfxU32 reserved[3];
mfxU16 reserved3;
mfxU16 AsyncDepth;
union {
mfxInfoMFX mfx;
mfxInfoVPP vpp;
}
mfxU16 Protected;
mfxU16 IOPattern;
mfxExtBuffer **ExtParam;
mfxU16 NumExtParam;
mfxU16 reserved2;
} mfxVideoParam;

AsyncDepth是mfxVideoParam的一个新成员变量,它的主要功能是设置异步操作pipeline的深度。对于Media SDK2.0 Beta以前应用程序,这个成员变量相当于设置0值。如果应用为了优化性能,可以根据需要设置相对应的值。考虑一般的IPBB情况(一般只有ipppppp的设置为2),它的设置可以为:AsyncDepth = 4,不过这个仅仅是参考值,在不同的应用中它的值应该通过反复调优得到。

注意
1. AsyncDepth的设置会直接影响到Video Surface的多少。如果应用已经在Media SDK2.0 Beta以前写好,但是又想对AsyncDepth进行设置调优。那么在分配Surface的时候请多至少分配(AsyncDepth - 1)个。
2. AsyncDepth的设置和码流的具体frame安排有关系,在调优前期可以先设置4来看看性能如何。再根据测试结果加减数目直到最优。

【小结】
- AsyncDepth能够帮助应用改善frame或者buffer的管理。
- 为了兼容于Media SDK2.0 Beta以前的版本,请将其设置为0。


/* PicStruct */ 图像类型(picstruct枚举列出的画面结构。使用bit值来指定所需的图像类型)
enum {
    MFX_PICSTRUCT_UNKNOWN       =0x00,    未指定或混合逐行/隔行扫描图片
    MFX_PICSTRUCT_PROGRESSIVE   =0x01,  逐行扫描图像
    MFX_PICSTRUCT_FIELD_TFF     =0x02,      从上面隔行扫描
    MFX_PICSTRUCT_FIELD_BFF     =0x04,    从底部隔行扫描


    MFX_PICSTRUCT_FIELD_REPEATED=0x10,  /* first field repeated, pic_struct=5 or 6 in H.264 */
    MFX_PICSTRUCT_FRAME_DOUBLING=0x20,  /* pic_struct=7 in H.264 */
    MFX_PICSTRUCT_FRAME_TRIPLING=0x40   /* pic_struct=8 in H.264 */

};

配置VPP调整器滤波算法。结构参数将被裁剪到相应的范围内,通过其相应的增量四舍五入

typedef struct {
    mfxExtBuffer    Header; 必须是MFX_EXTBUFF_VPP_PROCAMP值
    mfxF64   Brightness;亮度参数是在-100.0F至100.0F的范围内,在0.1F的增量。默认的亮度值是0.0F
    mfxF64   Contrast; 对比度参数是在0.0F到10.0F的范围内,在0.01F的增量。默认对比度值为1.0F。
    mfxF64   Hue;色调参数是在-180F至180F的范围内,在0.1F的增量。默认色相值为0.0F。
    mfxF64   Saturation;饱和度参数是在0.0F到10.0F的范围内,在0.01F的增量。默认饱和度值是1.0F。
} mfxExtVPPProcAmp;




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值