H264编码原理及其与TI参数对应关系

1.H264编码原理

H264编码结构如下图所示

由图可知编码器包括两条主要的数据流路径:左->右(编码)、右->左(重建)。

编码数据流如下:

1)以宏块(16×16亮度区域和相应的色度区域)为单位,对输入视频第nFn进行编码;

2)运动估计函数从参考帧(如上一次重建帧F或子采样后的F)中寻找当前宏块的匹配(相似)区域,该区域和当前宏块的位置偏移即为运动矢量MV

3)根据MV生成运动补偿的预测P16×16区域);

4)用当前宏块减去P生成当前帧的残差宏块Dn

5)将Dn分割为8×84×4的子块,分别进行DCT变换;

6)子块量化(X);

7)子块的DCT系数重排序(Reorder),再进行run-level游程编码(在一个非零的DCT系数前的连续为零的系数的数目被称为run”,而非零DCT系数的绝对值被称为level”)

8)编码后的系数、运动矢量和相关的宏块头信息经过熵编码(无损)后生成压缩比特率。

重建数据流如下:

1)每个量化后的宏块X经过重定比例(rescale)IDCTDCT逆变换)变换生成解码后的残差D'n。由于量化过程不可逆,所以D'n和原宏块Dn并不相同(有失真);

2)残差Dn与运动补偿预测P相加得到重建宏块,所有重建宏块一起得到重建帧Fn

  nFn编码结束后,其重建帧F'n可以用来作为参考帧,并用于第n+1Fn+1的编码。

2. H.264编码核心技术

2.1帧内预测

在帧内预测模式中,预测块P是基于已编码重建块和当前块形成的。对亮度像素而言,P块用于4×4子块或者16×16宏块的相关操作。4×4亮度子块有9种可选预测模式,独立预测每一个4×4亮度子块,适用于带有大量细节的图像编码;16×16亮度块有4种预测模式,预测整个16×16亮度块,适用于平坦区域图像编码;色度块也有4种预测模式,类似于16×16亮度块预测模式。编码器通常选择使P块和编码块之间差异最小的预测模式。

1)4x4亮度预测模式
2)16×16亮度预测模式

宏块的全部16×16亮度成分可以整体预测,有4种预测模式。帧内16×16模式适用于图像平坦区域预测。

3)8×8色度块预测模式

每个帧内编码宏块的8×8色度成分由已编码左上方色度像素预测而得,两种色度成分常用同一种预测模式。4种预测模式类似于帧内16×16预测的4种预测模式,只是模式编号不同。其中DC(模式0)、水平(模式1)、垂直(模式2)、平面(模式3)。

4)对应H264编码参数

对应H264编码参数IH264ENC_IntraCodingParamsintraCodingParams 

字段

缺省值

描述及可取值

intraCodingPreset

IH264_INTRACODING_DEFAULT

IH264_INTRACODING_DEFAULT

IH264_INTRACODING_USERDEFINED

IH264_INTRACODING_EXISTING

IH264_INTRACODING_HIGH_SPEED

lumaIntra4x4Enable

0xFF if (profile != IH264_HIGH_PROFILE)

0x0 if (profile == IH264_HIGH_PROFILE

&& inputContentType == IVIDEO_PROGRESSIVE)

0x1F if (profile == IH264_HIGH_PROFILE

&& inputContentType != IVIDEO_PROGRESSIVE)

定义4x4亮度子块的九种预测模式是否可用【0x000,0x1ff】

lumaIntra8x8Enable

0xFF if (profile != IH264_HIGH_PROFILE)

0x0 if (profile == IH264_HIGH_PROFILE

&& inputContentType == IVIDEO_PROGRESSIVE)

0x1F if (profile == IH264_HIGH_PROFILE

&& inputContentType != IVIDEO_PROGRESSIVE)

定义8x8亮度子块的九种预测模式是否可用【0x000,0x1ff】

lumaIntra16x16Enable

0xF

定义16x16亮度子块的四种预测模式是否可用【0x0,0xf】

chromaIntra8x8Enable

0xF

定义8x8色度子块的四种预测模式是否可用【0x0,0xf】

chromaComponentEnable

IH264_CHROMA_COMPONENT_DEFAULT

此参数控制的色度帧内预测搜索IH264_CHROMA_COMPONENT_CR_ONLY

IH264_CHROMA_COMPONENT_CB_CR_BOTH

intraRefreshMethod

IH264_INTRAREFRESH_DEFAULT

帧内刷新机制

IH264_INTRAREFRESH_DEFAULT

IH264_INTRAREFRESH_CYCLIC_MBS

IH264_INTRAREFRESH_GDR

intraRefreshRate

0

帧内刷新率

>=0, effective only intraRefreshMethod != IH264_INTRAREFRESH_DEFAULT

gdrOverlapRowsBtwFrames

0

<= intraRefreshRate

constrainedIntraPredEnable

0

控制帧内p片宏块编码Zero, non-zero

intraCodingBias

IH264ENC_INTRACODINGBIAS_DEFAULT

控制帧内宏块所占百分比

IH264ENC_INTRACODINGBIAS_DEFAULT

IH264ENC_INTRACODINGBIAS_HIGH_SPEED

2.2帧间预测

H.264帧间预测是利用已编码视频帧/场和基于块的运动补偿的预测模式。与以往标准帧间预测的区别在于块尺寸范围更广(从16×164×4)、亚像素运动矢量的使用(亮度采用1/4像素精度MV)及多参考帧的运用等等。主要包括可变块大小、多帧运动估计、亚像素精度的运动估计以及去块效应滤波。

1)去块效应滤波 

它的作用就是用来消除解码图像中的块效应。块效应产生的原因是各个宏块分别进行量化,这样在相邻宏块的交界处,因量化步长不同而导致原本很接近的像素值重构后产生了较大的差异,形成明显的块边界。去块效应滤波是在4×4的块边界上滤波,使块边界趋于平滑。

H.264定义了自适应去除块效应的滤波器,这可以处理预测环路中的水平和垂直块边缘,大大减少了方块效应。

2)可变块大小 

块大小对运动估计的效果是有影响的。将宏块分割成不同尺寸的运动补偿子块称作树状结构运动补偿。宏块的分割和子宏块的分割各包括四种类型,如图3所示。较小的块可以使运动估计更精确,产生较小的运动残差,降低码率。在H.264建议的不同大小的块选择中,可以看出,一个宏块最多可以携带16个不同的运动矢量。配合多帧运动估计,同一宏块中的不同块还可以使用不同的参考帧来进行预测。

     运动补偿的宏块分割

3)多帧运动估计

 与以前视频压缩标准中使用的单帧运动估计技术相比,H.264使用的多帧运动估计具有更高的效率,更强的差错稳健性。所谓多帧运动估计是指使用一个或多个参考帧来估计运动矢量,可以防止因某个帧出现错误而影响到后面的帧。但是,这种估计需要更大的内存,更高的运算复杂度。

4)亚像素精度的运动估计

H.264中,运动估计的精度由H.263中的半像素提高到 1/4像素,并且把1/8像素作为可选项。与半像素精度的运动估计一样,1/4像素精度的运动估计使用内插得到半像素和1/4像素位置的点。

5)对应H264编码参数

IH264ENC_InterCodingParams interCodingParams

字段

缺省值

描述及可取值

interCodingPreset

 

IH264_INTERCODING_DEFAULT

控制帧间编码参数为预设模式参数还是自定义模式参数

IH264_INTERCODING_DEFAULT

IH264_INTERCODING_USERDEFINED

IH264_INTERCODING_EXISTING

IH264_INTERCODING_MED_SPEED_HIGH_QUALITY

IH264_INTERCODING_HIGH_SPEED

searchRangeHorP

144

P帧水平搜索范围【16,144】

searchRangeVerP

32

P帧垂直搜索范围【16,32】

searchRangeHorB

144

B帧水平搜索范围【16,144】

searchRangeVerB

16

B帧垂直搜索范围【16,32】

interCodingBias

IH264_BIASFACTOR_NORMAL

控制某个宏块帧内预测编码还是帧间预测编码参数。Ignore

skipMVCodingBias

 

IH264_BIASFACTOR_NORMAL

IH264_BIASFACTOR_NORMAL

IH264_BIASFACTOR_LOW

IH264_BIASFACTOR_MILD

IH264_BIASFACTOR_ADAPTIVE

minBlockSizeP

 

 

IH264_BLOCKSIZE_16x16

 

P帧内最小块大小

IH264_BLOCKSIZE_16x16

IH264_BLOCKSIZE_8x8

minBlockSizeB

 

 

IH264_BLOCKSIZE_16x16

 

B帧内最小块大小

IH264_BLOCKSIZE_16x16

IH264_BLOCKSIZE_8x8

meAlgoMode

 

IH264ENC_MOTIONESTMODE_NORMAL

运动估计算法

IH264ENC_MOTIONESTMODE_ NORMAL

IH264ENC_MOTIONESTMODE_HIGH_SPEED

 

IH264ENC_LoopFilterParams loopFilterParams

字段

缺省值

描述及可取值

loopfilterPreset

IH264_LOOPFILTER_DEFAULT

IH264_LOOPFILTER_DEFAULT

IH264_LOOPFILTER_USERDEFINED

loopfilterDisableIDC

IH264_DISABLE_FILTER_NONE

控制H.264环路滤波器禁用选项IH264_DISABLE_FILTER_NONE  --均不禁用

IH264_DISABLE_FILTER_ALL_EDGES --禁用所有边缘过滤

IH264_DISABLE_FILTER_SLICE_EDGES—禁用slice边缘过滤

filterOffsetA

0

环路滤波器的α偏移,【-12,12】间的偶数

filterOffsetB

0

环路滤波器的β偏移【-12,12】间的偶数

2.3整数变换(4*4DCT变换)与量化

1)DCT变换

H.264仍然采用对残差信号进行变换在量化后进行熵编码的模式来压缩空间冗余信息。使用了类似于4x4离散余弦变换DCT的整数变换而不是象MPEG4那样采用8x8DCT的浮点数变换。最终使用那种变换方式还用根据残余数据类型的不同来选择,帧内编码宏块的亮度DC系数(仅对16x16预测模式有效)采用4x4的矩阵,色度DC系数采用2x2的矩阵,对于其他的都采用4X4的块来变换。

使用以整数为基础的空间变换可以提高计算速度(只使用加法和位移运算),但是使用整数变换要以不矢精确度为前提;整数变换的反变换过程中不会出现较大的误差,并且缩放矩阵的乘法集成到了量化中,降低了乘法的总次数。

2)量化

量化过程在不降低视觉效果的前提下减少图像编码长度,减少视觉恢复中不必要的信息。H.264采用标量量化技术,它将每个图像样点编码映射成较小的数值。一般标量量化器的原理为:

其中,y为输入样本点编码,QP为量化步长,FQy的量化值,round()为取整函数(其输出为与输入实数最近的整数)

H.264中,量化步长Qstep共有52个值

QP是量化参数,是量化步长的序号。当QP取最小值0时代表最精细的量化,当QP取最大值51时代表最粗糙的量化。QP每增加6Qstep增加一倍

对于色度编码,一般使用与亮度编码同样的量化步长。为了避免在较高量化步长时的出现颜色量化人工效应,现在的H.264草案把色度的QP最大值大约限制在亮度QP最大值的80%范围内,最后的H.264草案规定,亮度QP的最大值是51,而色度QP的最大值是39

3)对应编码参数

H264ENC_RateControlParams rateControlParams

字段

缺省值

描述及可取值

rateControlParamsPreset

IH264_RATECONTROLPARAMS_DEFAULT

IH264_RATECONTROLPARAMS_DEFAULT

IH264_RATECONTROLPARAMS_USERDEFINED

IH264RATECONTROLPARAMSEXISTING

scalingMatrixPreset

IH264_SCALINGMATRIX_NORMAL(if profile == HIGH)

 

IH264_SCALINGMATRIX_NONE(if profile != HIGH)

控制缩放矩阵

IH264_SCALINGMATRIX_NONE

IH264_SCALINGMATRIX_NORMAL

IH264_SCALINGMATRIX_NOISY

IH264_SCALINGMATRIX_STD_DEFAULT

IH264_SCALINGMATRIX_USERDEFINED_SPSLEVEL

IH264_SCALINGMATRIX_USERDEFINED_PPSLEVEL

rcAlgo

 

IH264_RATECONTROL_DEFAULT

Rate 控制算法

IH264_RATECONTROL_DEFAULT

IH264_RATECONTROL_PRC

IH264_RATECONTROL_PRC_LOW_DELAY

qpI

28

I帧量化参数 【-1,51】

qpMaxI

36

I帧量化参数最大值 【0,51】

qpMinI

10

I帧量化参数最小值 【0,51】

qpP

28

p帧量化参数 【-1,51】

qpMaxP

40

P帧量化参数最大值 【0,51】

qpMinP

10

P帧量化参数最小值 【0,51】

qpOffsetB

4

(qpP+ qpOffsetB)范围【0,51】

qpMaxB

44

B帧量化参数最大值 【0,51】

qpMinB

10

B帧量化参数最小值 【0,51】

allowFrameSkip

0

Not supported – don’t care

removeExpensiveCoeff

0

是否去除高频高花费系数

0,non-zero

chromaQPIndexOffset

0

Specifies offset to be added to luma Qp for addressing QpC values table for chroma components.【-12,12】

IPQualityFactor

IH264_QUALITY_FACTOR_DEFAUL

I帧与P帧质量相关系数 Ignore

initialBufferLevel

 

Equal to HRDBufferSize

预设参考解码缓冲区级别

Any value between –(2^31 -10^8) to (2^31 -10^8)

HRDBufferSize

2*targetBitRate for VBR Rate Control

1/2*targetBitRate for CBR RateControl

预设参考解码缓冲区大小

minPicSizeRatioI

0

[0,4] & [5,31]

maxPicSizeRatioI

640

[0,960] except 31 and 32

minPicSizeRatioP

0

[0,4] & [5,31]

maxPicSizeRatioP

0

[0,960] except 31 and 32

minPicSizeRatioB

0

[0,4] & [5,31]

maxPicSizeRatioB

0

[0,960] except 31 and 32

enablePRC

1

Control flag to enable MB level perceptual rate control [0, non-zero]

enablePartialFrameSkip

0

Control flag to enable partial frame skip. Only useful with CBR rate control mode [0, non-zero]

discardSavedBits

0

Control Flag to discard saved bits for future pictures. [0, non-zero]

reserved

0

VBRDuration

8

[0,3600]

VBRsensitivity

0

[0,8]

skipDistributionWindowLength

5

[0,10]

numSkipInDistributionWindow

5

[0,10]

enableHRDComplianceMode

5

[0, non-zero]

frameSkipThMulQ5

0

0 & [16,128]

vbvUseLevelThQ5

0

0 & [16,128]

transformBlockSize

2.4熵编码

H.264中熵编码方式有如下两种

1)CAVLC(基于上下文自适应的可变长编码)

CAVLC用于亮度和色度残差数据的编码。残差经过变换量化后的数据表现出如下特性:4*4块数据经过预测、变换、量化后,非零系数主要集中在低频部分,而高频系数大部分是零;量化后的数据经过zig-zag扫描,DC系数附近的非零系数值较大,而高频位置上的非零系数值大部分是+1-1;相邻的4*4块的非零系数的数目是相关的。CAVLC充分利用残差经过整数变换、量化后数据的特性进行压缩,进一步减少数据中的冗余信息,为H.264卓越的编码效率奠定了基础。

2)CABAC(基于上下文的自适应二进制算术熵编码)

采用基于上下文的自适应二进制算术编码算法(CABAC),能够充分利用上下文信息和算术编码的优点,使得编码后的平均码长更逼近图像的信息熵,达到最佳的编码效率。采用CABAC算法进行编码,可以提高大约10%的编码率

具体编码步骤:

a.二值化:CABAC使用二进制算术编码,所以要将数据先转换为二进制数据,这些原始数据包括变换系数和运动矢量等。转换后二进制数据为可变长编码的数据,并且还要将这些数据进行算术编码。

b.内容模式选择:内容模式是针对二进制数据进行统计的概率模型,这个模式根据之前编码的一些数据符号的统计特性从一些可选模式中选出。内容模式存储了每一位“1”“0”的概率。

c.算术编码:算术编码器根据选择的内容模式对每一位进行编码。

d.概率校正:被选择的内容模式根据实际被编码的值进行校正,例如,如果数据比特流中有数值“1”,就将“1”的概率统计值加1

 

对应编码参数为entropyCodingMode

3 H264 编码参数

3.1 IH264ENC_Params

字段

缺省值

描述及可取值

videnc2Params

定义编码器基本参数,宽,高,I帧到p帧间隔,比特率,profile,输入输出数据模型

等参数

rateControlParams

Controls all rate control related parameters.

interCodingParams

Controls all inter coding related parameters.

帧间预测编码参数

intraCodingParams

Controls all intra coding related parameters.

帧内预测编码参数

nalUnitControlParams

Controls the insertion of different NALUs at different access points in video sequence.

sliceCodingParams

Controls all slice coding related parameters.

loopFilterParams

Controls the in-loop filtering process.

fmoCodingParams

Controls the FMO behavior. 宏块次序

vuiCodingParams

Controls the VUI parameters coding.

stereoInfoParams

Controls the stereo video coding.

framePackingSEIParams

Controls the frame packing SEI parameters for Stereo Video.

svcCodingParams

Controls the SVC coding parameters.

interlaceCodingType

 

IH264_INTERLACE_FIELDONLY_ARF

Controls the type of interlaced coding.

IH264_INTERLACE_FIELDONLY

IH264_INTERLACE_FIELDONLY_MRF

IH264_INTERLACE_FIELDONLY_ARF

IH264_INTERLACE_DEFAULT

IH264_INTERLACE_FIELDONLY_SPF

bottomFieldIntra

0

Controls the type of coding for second field for interlaced content,0, non-zero

gopStructure

 

IH264ENC_GOPSTRUCTURE_NONUNIFORM

 

定义了GOP结构类型,均匀和非均匀

IH264ENC_GOPSTRUCTURE_NONUNIFORM

IH264ENC_GOPSTRUCTURE_DEFAULT

IH264ENC_GOPSTRUCTURE_UNIFORM

entropyCodingMode

 

IH264_ENTROPYCODING_CAVLC(if Profile == BASELINE)

 

IH264_ENTROPYCODING_CABAC(if Profile != BASELINE)

 

熵编码类型

transformBlockSize

 

IH264_TRANSFORM_ADAPTIVE(if Profile == HIGH)

IH264_TRANSFORM_4x4(if Profile != HIGH)

变换块大小

IH264_TRANSFORM_4x4

IH264_TRANSFORM_8x8

IH264_TRANSFORM_ADAPTIVE

log2MaxFNumMinus4

10

 

限制码流中最大帧数目

【0,12】

picOrderCountType

 

IH264_POC_TYPE_0

图像顺序计数类型

IH264_POC_TYPE_0

IH264_POC_TYPE_1

IH264_POC_TYPE_2

enableWatermark

0

启用或禁用水印 [0, non-zero]

IDRFrameInterval

0

连续Idr帧间最大间隔 Any value

pConstantMemory

NULL

maxIntraFrameInterval

1

连续帧间最大间隔 Any value >= 0

debugTraceLevel

0

Zero, non-zero (all non-zero values are considered as same level)

lastNFramesToLog

0

Any Value

enableAnalyticinfo

0

Zero, non-zero

enableGMVSei

0

Zero, non-zero

constraintSetFlags

0

Zero, non-zero

enableRCDO

0

这个参数是用来使编码码流符合降低解码操作复杂度级别 Zero, non-zero

enableLongTermRefFrame

 

IH264ENC_LTRP_NONE

此参数用于支持长期参考帧

IH264ENC_LTRP_NONE

IH264ENC_LTRP_REFERTO_PERIODICLTRP IH264ENC_LTRP_REFERTOP_PROACTIVE

IH264ENC_LTRP_REFERTOP_REACTIVE

LTRPPeriod

0

此参数用于指定长期参考帧标记间隔

Zero, nonZero

numTemporalLayer

 

IH264_TEMPORAL_LAYERS_1

控制码流中的temporal Levels

[IH264_TEMPORAL_LAYERS_1 , IH264_TEMPORAL_LAYERS_4]

referencePicMarking

 

IH264_LONG_TERM_PICTURE

 

This parameter used to control the reference picture marking

0 – 0 - Short-term Picture (Sliding Window)

1 - Long-term Picture ( MMCO Commands)

reservedParams[3]

0,0,0,0

保留字段

IVIDENC2_Params

字段

缺省值

描述及可取值

size

 

sizeof(IH264ENC_Params)

sizeof(IVIDENC2_Params)

sizeof(IH264ENC_Params)

ENCODINGPRESET

 

XDM_DEFAULT

 

          预置控制编码器质量参数

          XDM_DEFAULT

          XDM_HIGH_SPEED

          XDM_USER_DEFINED

          XDM_HIGH_SPEED_MED_QUALITY 1

XDM_MED_SPEED_HIGH_QUALITY

rateControlPreset

IVIDEO_STORAGE

IVIDEO_STORAGE

IVIDEO_NONE

IVIDEO_USER_DEFINED

IVIDEO_RATECONTROLPRESET_DEFAULT

IVIDEO_LOW_DELAY

maxHeight

1088

[80, 4096] if contentType is IVIDEO_PROGRESSIVE

[80, 2048]: if contentType is IVIDEO_INTERLACED

maxWidth

1920

[96, 4352]

dataEndianness

XDM_BYTE

输出数据格式XDM_BYTE

maxInterFrameInterval

1

I帧与p帧的间距

[1,31] if contentType is IVIDEO_PROGRESSIVE

【1,16】: if contentType is IVIDEO_INTERLACED

maxBitRate

-1

Any Value,

minBitRate

0

Any Value,

inputChromaFormat

XDM_YUV_420SP

XDM_YUV_420SP

inputContentType

 

IVIDEO_PROGRESSIVE

IVIDEO_PROGRESSIVE

IVIDEO_PROGRESSIVE_FRAME

IVIDEO_INTERLACED

IVIDEO_INTERLACED_FRAME

operatingMode

IVIDEO_ENCODE_ONLY

IVIDEO_ENCODE_ONLY

Profile

 

IH264_HIGH_PROFILE

IH264_BASELINE_PROFILE

IH264_MAIN_PROFILE

IH264_HIGH_PROFILE

IVIDENC2_DEFAULTPROFILE

Level

IH264_LEVEL_40

Any value, only lower 16 bits are considered by encoder

inputDataMode

IVIDEO_ENTIREFRAME

IVIDEO_ENTIREFRAME

IVIDEO_NUMROWS

outputDataMode

IVIDEO_ENTIREFRAME

IVIDEO_ENTIREFRAME

IVIDEO_FIXEDLENGTH

IVIDEO_SLICEMODE

numInputDataUnits

1

Number of input slices/rows.

Ignored and assumed to be 1

numOutputDataUnits

1

[1,64]

metadataType

[IVIDEO_MAX_NUM_

METADATA_PLANES]

 

IVIDEO_METADATAPLANE_NONE

Type of the each meta data plane,

IVIDEO_METADATAPLANE_NONE

 IH264_USER_DEFINED_SCALINGMATRIX

IH264_SEI_USER_DATA_UNREGISTERED

3.2 IH264ENC_DynamicParams

字段

缺省值

描述及可取值

videnc2DynamicParams

IVIDENC2_DynamicParams

rateControlParams

Controls all rate control related parameters.

interCodingParams

Controls all inter coding related parameters.

帧间预测编码参数

intraCodingParams

Controls all intra coding related parameters.

帧内预测编码参数

sliceCodingParams

Controls all slice coding related parameters.

sliceGroupChangeCycle

0

Ignore

searchCenter

{0x7FFF,0x7FFF}

 

运动估计搜索中心

(-64,64), 0x7FFF --> ignore user provided gMV and use internal

enableStaticMBCount

 

0

 

Flag to indicate enable/disable of H.241 defined Static MB count

0 – Disable

Non-Zero - Enable

enableROI

0

Flag to Enable/Disable ROI coding.

 Non-Zero – enable ROI coding.  

0 – disable ROI coding.

 

reservedDynParams[3]

0

预留字段

IVIDENC2_DynamicParams  videnc2DynamicParams

字段

缺省值

描述及可取值

size

sizeof(IH264ENC_DynamicParams)

sizeof(IVIDENC2_DynamicParams)

sizeof(IH264ENC_DynamicParams)

inputHeight

1088

 

输入帧高(像素)

[80, 4096] if contentType is IVIDEO_PROGRESSIVE

[80, 2048]: if contentType is IVIDEO_INTERLACED

inputWidth

1920

输入帧宽(像素)[96, 4352]

refFrameRate

30000

Reference or input frame rate in fps * 1000. Ignore

 

targetFrameRate

30000

Target frame rate in fps * 1000.

Valid Values as per Level Limit

targetBitRate

12000000

目标码率

Valid Values (> 16*1024) as per Level Limit

intraFrameInterval

30

连续I帧间的距离

Any value >=0

generateHeader

XDM_ENCODE_AU

Encode entire access unit or only header.

XDM_ENCODE_AU

XDM_ENCODE_HEADER

captureWidth

1920

>= inputWidth

forceFrame

IVIDEO_NA_FRAME

Force the current (immediate) frame to be encoded as a specific frame type.

IVIDEO_NA_FRAME

IVIDEO_IDR_FRAME

interFrameInterval

1

Number of B frames between two reference frames;

[1,31] if contentType is IVIDEO_PROGRESSIVE

【1,16】: if contentType is IVIDEO_INTERLACED

mvAccuracy

 

IVIDENC2_MOTIONVECTOR_QUARTERPEL

 

运动矢量的像素精度

IVIDENC2_MOTIONVECTOR_QUARTERPEL

IVIDENC2_MOTIONVECTOR_PIXEL

sampleAspectRatioHeight

1

Any value, only lower 16 bits are considered by encoder

sampleAspectRatioWidth

1

Any value, only lower 16 bits are considered by encoder

ignoreOutbufSizeFlag

XDAS_TRUE

[0,non-zero]

*putDataFxn

NULL

Function pointer to produce data at sub-frame level

Valid function pointer, NULL

putDataHandle

0

Any Value

*getDataFxn

NULL

Function pointer to receive data at sub-frame level

Valid function pointer, NULL

getDataHandle

0

Any Value

getBufferFxn

0

Function pointer to receive buffer at sub-frame level

Valid function pointer, NULL

getBufferHandle

NULL

Valid function pointer, NULL

lateAcquireArg

IRES_HDVICP2_UNKNOWNLATEACQUIREARG (-1)

Any Value

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值