Intel Media SDK(QSV)参数说明(未完成)

Intel硬件编解码,MSDK一些参数的说明

一、编码部分

mfxVideoParam常用的参数

mfxVideoParam.mfx.CodecId : 编码为H.264格式时,设置为MFX_CODEC_AVC,其他参数类型包括MFX_CODEC_HEVC、MFX_CODEC_MPEG2、MFX_CODEC_VC1、MFX_CODEC_CAPTURE、MFX_CODEC_VP9

GOP设置:

mfxVideoParam.mfx.GopPicSize 当前GOP中画面的个数,若GopPicSize=0,则认为GOP尺寸未指定,若GopPicSize=1,则将只使用I帧

mfxVideoParam.mfx.GopRefDist  I或P关键帧之间的距离;若为零,则认为GOP结构未指定,若GopRefDist=1,则将不使用B帧

mfxVideoParam.mfx.GopOptFlag  

    MFX_GOP_CLOSED
        B-frames of the first B-interval can never reference the previous GOP(第一个B间隔的B帧永远无法引用先前的GOP)
    MFX_GOP_STRICT
        The encoder must strictly follow the given GOP structure as defined by parameter GopPicSize, GopRefDist etc in the mfxVideoParam structure. Otherwise, the encoder can adapt the GOP structure for better efficiency, whose range is constrained by parameter GopPicSize and GopRefDist etc(编码器必须严格遵循mfxVideoParam结构中由参数GopPicSize,GopRefDist等定义的给定GOP结构。 否则,编码器可以采用GOP结构以提高效率,其范围受参数GopPicSize和GopRefDist等限制)

mfxVideoParam.mfx.IdrInterval  对于H264,IdrInterval指定了IDR帧的间隔,单位为I帧;若IdrInterval=0,则每个I帧均为IDR帧。若IdrInterval=1,则每隔一个I帧为IDR帧,以此类推。对于MPEG2, IdrInterval定义了序列头间隔,单位为I帧,若IdrInterval=N,SDK将在每第N个I帧之前插入序列头;若IdrInterval=0(默认),SDK将在流开头一次性插入序列头。

m_mfxEncParams.mfx.CodecProfile  常用的三种:MFX_PROFILE_AVC_BASELINE、MFX_PROFILE_AVC_MAIN、MFX_PROFILE_AVC_HIGH,

    所谓的AVC其实就是H.264标准, AVC的规格分为三等,从低到高分别为:Baseline、Main、High。

    Baseline(最低Profile)级别支持I/P 帧,只支持无交错(Progressive)和CAVLC,一般用于低阶或需要额外容错的应用,比如视频通话、手机视频等;

    Main(主要Profile)级别提供I/P/B 帧,支持无交错(Progressive)和交错(Interlaced),同样提供对于CAVLC 和CABAC 的支持,用于主流消费类电子产品规格如低解码(相对而言)的mp4、便携的视频播放器、PSP和Ipod等;

    High(高端Profile,也叫FRExt)级别在Main的基础上增加了8x8 内部预测、自定义量化、无损视频编码和更多的YUV 格式如4:4:4)用于广播及视频碟片存储(蓝光影片),高清电视的应用。

m_mfxEncParams.mfx.CodecLevel 指定解码器可能使用的最大图片分辨率,帧速率和比特率,例如1920*1080,30fps,就需要指定MFX_LEVEL_AVC_4。至于Baseline@L x.x、Main@L x.x、High@L x.x形式则是在不同级别下的码流级别,数值越大码流就越大,更耗费资源。所以就码流而言[email protected]CodecLevel级别分类图标

m_mfxEncParams.mfx.TargetUsage  一般情况会设定为MFX_TARGETUSAGE_BALANCED;TargetUsage枚举器逐项列出从最佳质量的MFX_TARGETUSAGE_1到最佳速度的MFX_TARGETUSAGE_7的数字范围。 它表明了质量和速度之间的权衡。 该应用程序可以使用范围内的任何数字,支持的目标用法的实际数量取决于实现,如果不支持指定的目标用法,则SDK编码器将使用最接近的支持值。

m_mfxEncParams.mfx.TargetKbps 目标码率,必须设置项

m_mfxEncParams.mfx.MaxKbps 最大比特率,一般VBR和AVBR设置此项。如果MaxKbps等于零,则根据比特率,帧速率,配置文件,级别等来计算该值

m_mfxEncParams.mfx.QPI, QPP, QPB 恒定QP(CQP)模式的I,P和B帧的量化参数(QP)。

m_mfxEncParams.mfx.NumSlice  每个视频帧中的切片数; 每个切片包含一个或多个小块行。 如果NumSlice等于零,则编码器可以选择编解码器标准允许的任何切片分区。

m_mfxEncParams.mfx.NumRefFrame  帧的引用计数; 如果NumRefFrame = 0,则不指定此参数。

m_mfxEncParams.mfx.NumThread 不用的参数,设置为0就行

m_mfxEncParams.mfx.RateControlMethod 比特率控制算法,常用的MFX_RATECONTROL_CBR(恒定比特率控制),MFX_RATECONTROL_VBR(可变比特率控制),MFX_RATECONTROL_AVBR(平均可变比特率控制),MFX_RATECONTROL_CQP(恒定的量化参数算法)

m_mfxEncParams.mfx.FrameInfo.FrameRateExtD/FrameRateExtN  通过以下公式指定帧速率:FrameRateExtN / FrameRateExtD,对于编码,必须指定帧速率

m_mfxEncParams.mfx.FrameInfo.FourCC 传入编码器的视频数据格式,如MFX_FOURCC_NV12

m_mfxEncParams.mfx.FrameInfo.ChromaFormat 颜色采样方法,如nv12对应的为MFX_CHROMAFORMAT_YUV420

m_mfxEncParams.mfx.FrameInfo.PicStruct 传入编码器的视频图片结构,逐行扫描还是隔行扫描,如MFX_PICSTRUCT_PROGRESSIVE(逐行扫描)

m_mfxEncParams.mfx.FrameInfo.CropX/CropY/CropW/CropH 显存中的坐标点,一般设置为CropX = 0,CropY = 0,CropW = video_width,CropH = video_width

m_mfxEncParams.mfx.FrameInfo.Height/Width 视频帧的宽度和高度,以像素为单位; 宽度必须是16的倍数。逐行扫描的图片格式高度必须是16的倍数,非逐行扫描的图片格式必须是32的倍数

m_mfxEncParams.mfx.FrameInfo.BufferSize 帧缓冲区的大小(以字节为单位),当图片格式为P8的时候需要设置,这时Height/Width/CropX/CropY/CropW/CropH将会不再起作用

m_mfxEncParams.mfx.FrameInfo.AspectRatioW/AspectRatioH 设定视频帧宽高比,如果两个参数均为零,则编码器将使用视频帧宽高比的默认值

 

参考:Intel开发手册

附图表:CodecLevel级别分类图标:

Level Max decoding speed Max frame size Max video bit rate
for video coding layer (VCL)
kbit/s
Examples for high resolution @ highest frame rate
(max stored frames)
Luma samples/s Macroblocks/s Luma samples Macroblocks Baseline、Extended、
Main Profiles
High Profile
1 380,160 1,485 25,344 99 64 80 128×[email protected]
176×[email protected] 
1b 380,160 1,485 25,344 99 128 160 128×[email protected]
176×[email protected] 
1.1 768,000 3,000 101,376 396 192 240 176×[email protected]
320×[email protected]
352×[email protected] 
1.2 1,536,000 6,000 101,376 396 384 480 320×[email protected]
352×[email protected] 
1.3 3,041,280 11,880 101,376 396 768 960 320×[email protected]
352×[email protected] 
2 3,041,280 11,880 101,376 396 2,000 2,500 320×[email protected]
352×[email protected] 
2.1 5,068,800 19,800 202,752 792 4,000 5,000 352×[email protected]
352×[email protected] 
2.2 5,184,000 20,250 404,720 1,620 4,000 5,000 352×[email protected]
352×[email protected]
720×[email protected]
720×[email protected] 
3 10,368,000 40,500 404,720 1,620 10,000 12,500 352×[email protected] 
352×[email protected] 
720×[email protected] 
720×[email protected] 
3.1 27,648,000 108,000 921,600 3,600 14,000 17,500 720×[email protected] 
720×[email protected] 
1280×[email protected] 
3.2 55,296,000 216,000 1,310,720 5,120 20,000 25,000 1,280×[email protected] 
1,280×1,[email protected] 
4 62,914,560 245,760 2,097,152 8,192 20,000 25,000 1,280×[email protected] 
1,920×1,[email protected] 
2,048×1,[email protected] 
4.1 62,914,560 245,760 2,097,152 8,192 50,000 62,500 1,280×[email protected] 
1,920×1,[email protected] 
2,048×1,[email protected] 
4.2 133,693,440 522,240 2,228,224 8,704 50,000 62,500 1,280×[email protected]
1,920×1,[email protected]
2,048×1,[email protected] 
5 150,994,944 589,824 5,652,480 22,080 135,000 168,750 1,920×1,[email protected]
2,048×1,[email protected]
2,048×1,[email protected]
2,560×1,[email protected]
3,672×1,[email protected] 
5.1 251,658,240 983,040 9,437,184 36,864 240,000 300,000 1,920×1,[email protected]
2,560×1,[email protected]
4,096×2,[email protected]
4,096×2,[email protected]
4,096×2,[email protected] 
5.2 530,841,600 2,073,600 9,437,184 36,864 240,000 300,000 1,920×1,[email protected]
2,560×1,[email protected]
4,096×2,[email protected]
4,096×2,[email protected]
4,096×2,[email protected] 

你可能感兴趣的:(MSDK)