TI中文支持网
TI专业的中文技术问题搜集分享网站

DM8127图像噪点多时,H264码率过高。

 DM8127,接入包含大量噪点的图像时,使用H264编码,码率会非常高,并且不会降回来。

现象:

DM8127 输出1080P 4Mbit/s码率的图像,使用VLC和自有工具观察H264码率。开始时码率正常。通过加大增益,减小光圈,制造大量的噪点,这时码率会增加到20Mbit/s以上,并且无法降回。无论设置CBR还是VBR都会有这个现象,只是CBR会相对好些,码率增加到17Mbit/s,但是也无法下降。减少噪点后,码率恢复正常。

请问H264编码器是否有其他设置可以避免这个问题。 

Chris Meng:

Zou ZY,

噪声对于编码来说就是细节,所以编码的码率加大是可以预期的。

你能否这种噪声比较大的情况下开启HDVPSS的NSF,减少噪声?

zy zou:

回复 Chris Meng:

你好:

  NSF已被开启,但是噪点较多。可以通过调整QP值处理这个问题么?

Chris Meng:

回复 zy zou:

Zou,

如果你处理的图像是1080p30的,你还可以尝试VTNF,并且把强度开强一点。

对于Qp,你可以先看看你现在的码流里面大部分的QP是否已经是51(最大)了,如果是,那还是需要通过减少噪声来减小码流。如果还有比较小的QP,你可以设定QP的最小值的值更大一点。

zy zou:

回复 Chris Meng:

Chris Meng,

   调节QP确实有改善,可以降低部分码率。但是发现另外一个现象:

    噪点多的时候,码率升高。这时降低噪点,码率会变得很低,仅有600 kbit/s,导致H264质量很差。CBR和VBR现象都一致。码率控制部分的参数如下,还需要其他什么参数么?

[m3video] ——— CH 0 : H264 ENC : Dynamic Params ——-[m3video] [m3video] videnc2DynamicParams -> inputHeight : 1080[m3video] videnc2DynamicParams -> inputWidth : 1920[m3video] videnc2DynamicParams -> refFrameRate : 60000[m3video] videnc2DynamicParams -> targetFrameRate : 60000[m3video] videnc2DynamicParams -> targetBitRate : 2097152[m3video] videnc2DynamicParams -> intraFrameInterval : 10[m3video] videnc2DynamicParams -> generateHeader : 0[m3video] videnc2DynamicParams -> captureWidth : 1920[m3video] videnc2DynamicParams -> forceFrame : -1[m3video] videnc2DynamicParams -> interFrameInterval : 1[m3video] videnc2DynamicParams -> mvAccuracy : 2[m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1080[m3video] videnc2DynamicParams -> sampleAspectRatioWidth : 1920[m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag : 1[m3video] videnc2DynamicParams -> lateAcquireArg : 0[m3video] [m3video] rateControlParams -> rateControlParamsPreset : 1[m3video] rateControlParams -> scalingMatrixPreset : 0[m3video] rateControlParams -> rcAlgo : 0[m3video] rateControlParams -> qpI : -1[m3video] rateControlParams -> qpMaxI : 51[m3video] rateControlParams -> qpMinI : 10[m3video] rateControlParams -> qpP : -1[m3video] rateControlParams -> qpMaxP : 51[m3video] rateControlParams -> qpMinP : 10[m3video] rateControlParams -> qpOffsetB : 4[m3video] rateControlParams -> qpMaxB : 44[m3video] rateControlParams -> qpMinB : 10[m3video] rateControlParams -> allowFrameSkip : 0[m3video] rateControlParams -> removeExpensiveCoeff : 0[m3video] rateControlParams -> chromaQPIndexOffset : 0[m3video] rateControlParams -> IPQualityFactor : 0[m3video] rateControlParams -> initialBufferLevel : 4194304[m3video] rateControlParams -> HRDBufferSize : 4194304[m3video] rateControlParams -> minPicSizeRatioI : 0[m3video] rateControlParams -> maxPicSizeRatioI : 320[m3video] rateControlParams -> minPicSizeRatioP : 0[m3video] rateControlParams -> maxPicSizeRatioP : 0[m3video] rateControlParams -> minPicSizeRatioB : 0[m3video] rateControlParams -> maxPicSizeRatioB : 0[m3video] rateControlParams -> enablePRC : 1[m3video] rateControlParams -> enablePartialFrameSkip : 0[m3video] rateControlParams -> discardSavedBits : 1[m3video] rateControlParams -> VBRDuration : 8[m3video] rateControlParams -> VBRsensitivity : 0[m3video] rateControlParams -> skipDistributionWindowLength: 5[m3video] rateControlParams -> numSkipInDistributionWindow : 1[m3video] rateControlParams -> enableHRDComplianceMode : 1[m3video] rateControlParams -> frameSkipThMulQ5 : 0[m3video] rateControlParams -> vbvUseLevelThQ5 : 0

Chris Meng:

回复 zy zou:

zy zou噪点多的时候,码率升高。这时降低噪点,码率会变得很低,

但过一段时间后,码率又会恢复是么?

如果你希望码流控制算法迅速反应,你可以设置 HRDBufferSize=initialBufferLevel=targetBitRate/2,看是否能满足你对码率控制的要求。

zy zou:

回复 Chris Meng:

Chris Meng:

码率降低后,20分钟以后发现码率恢复,20分钟之内码率并无上升,都在600kbit/s附近。

调整HRDBufferSize=initialBufferLevel=targetBitRate/2,并无明显效果。

[m3video] ——— CH 0 : H264 ENC : Dynamic Params ——- [m3video] [m3video] videnc2DynamicParams -> inputHeight : 1080 [m3video] videnc2DynamicParams -> inputWidth : 1920 [m3video] videnc2DynamicParams -> refFrameRate : 60000 [m3video] videnc2DynamicParams -> targetFrameRate : 60000 [m3video] videnc2DynamicParams -> targetBitRate : 2097152 [m3video] videnc2DynamicParams -> intraFrameInterval : 10 [m3video] videnc2DynamicParams -> generateHeader : 0 [m3video] videnc2DynamicParams -> captureWidth : 1920 [m3video] videnc2DynamicParams -> forceFrame : -1 [m3video] videnc2DynamicParams -> interFrameInterval : 1 [m3video] videnc2DynamicParams -> mvAccuracy : 2 [m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1080 [m3video] videnc2DynamicParams -> sampleAspectRatioWidth : 1920 [m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag : 1 [m3video] videnc2DynamicParams -> lateAcquireArg : 0 [m3video] [m3video] rateControlParams -> rateControlParamsPreset : 1 [m3video] rateControlParams -> scalingMatrixPreset : 0 [m3video] rateControlParams -> rcAlgo : 1 [m3video] rateControlParams -> qpI : -1 [m3video] rateControlParams -> qpMaxI : 51 [m3video] rateControlParams -> qpMinI : 10 [m3video] rateControlParams -> qpP : -1 [m3video] rateControlParams -> qpMaxP : 51 [m3video] rateControlParams -> qpMinP : 10 [m3video] rateControlParams -> qpOffsetB : 4 [m3video] rateControlParams -> qpMaxB : 44 [m3video] rateControlParams -> qpMinB : 10 [m3video] rateControlParams -> allowFrameSkip : 0 [m3video] rateControlParams -> removeExpensiveCoeff : 0 [m3video] rateControlParams -> chromaQPIndexOffset : 0 [m3video] rateControlParams -> IPQualityFactor : 0 [m3video] rateControlParams -> initialBufferLevel : 1048576 [m3video] rateControlParams -> HRDBufferSize : 1048576 [m3video] rateControlParams -> minPicSizeRatioI : 0 [m3video] rateControlParams -> maxPicSizeRatioI : 320 [m3video] rateControlParams -> minPicSizeRatioP : 0 [m3video] rateControlParams -> maxPicSizeRatioP : 0

Chris Meng:

回复 zy zou:

Zou ZY,

你能确认这个参数是配置进算法库了么?请问你打印的参数是配置动态后用contro命令回读的么?

zy zou:

回复 Chris Meng:

 是的,通过下面方法读回来的:

retVal = enclink_h264_control(algObj->u.h264AlgIfObj.algHandle, XDM_GETSTATUS, &dynamicParams, &status);

Chris Meng:

回复 zy zou:

Zou ZY,

请问你使用的是哪个版本的h264enc?

zy zou:

回复 Chris Meng:

Chris Meng:

H264 Encoder

Version 02.00.06

赞(0)
未经允许不得转载:TI中文支持网 » DM8127图像噪点多时,H264码率过高。
分享到: 更多 (0)