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

resizer卡住及图像隔帧马赛克问题求解

专家您好:

    我使用DM368+TVP5158采集4路D1,遇到两个奇怪的问题,希望能帮助解答

    只插入一路视频输入时正常  ,当插入两路时

1、ratecontroltype设置为”CBR“时,会出现skip帧,也就是encode后generatebytes=0的时候,这时下一帧进行resizer时会卡在:ioctl(rszPrm->rszfd,RSZ_RESIZE,&convert)。  

我的 opermode为slot,我修改boot.src和resize的config使得opermode为continue ,但是系统运行异常。请问修改opermode有什么注意事项以及两种mode各适合哪种情形?  

请问出现卡住的可能原因是什么?是否resize需要有个类似清理的动作?

2、设置为VBR时,encode出的264格式的数据会隔帧出现马赛克,屏蔽一个通道的数据不让其进行encode时显示正常,也就是说不会是其他通道的干扰所致。

都是704*576的数据应该不需要open两个codecengine吧?

附件是相邻的两帧截图。

请教是否哪些配置会影响到encoder的处理?或者对多路的压缩需要特殊处理?

谢谢!

 

 

 

Feng Dong:

多路的encode,是一个codec engine,但是要创建多个算法,每个维护自己的buffer.

关于问题1请说明你的数据流

su shell:

回复 Feng Dong:

创建多个算法是指VIDENC1_create两次?我觉得不需要呀,YUV422的数据是依次过来的,而且每个通道的编码参数是一致的,VIDENC1_process每个通道的处理只是input和output中的数据帧不一样而已。

我发现出现马赛克的帧都是P帧,如果我减少甚至去掉P帧(idrframeinterval=1)是不会出现马赛克帧的。也就是说p帧在做encode时出现了马赛克,但是在只有一路数据的时候又不会出现这种情况,很是想不通。。。

我先试试create连个instance试试。

期待您的回复,谢谢!

su shell:

回复 su shell:

问题一的数据流就是正常的YUV422数据流,经resize后变成420,只是在出现VIDENC1_process处理后反馈出的生成0byte的h264后,下一次的YUV422的流会ioctl(rszPrm->rszfd,RSZ_RESIZE,&convert)时卡住,吐不出YUV420的数据。

su shell:

回复 su shell:

问题一修改clk_div.m/n为1/3解决了。但是马赛克的问题依旧,另外就是出现了内存泄露的情况。。。

su shell:

回复 Feng Dong:

谢谢,改为多个算法ok。

赞(0)
未经允许不得转载:TI中文支持网 » resizer卡住及图像隔帧马赛克问题求解
分享到: 更多 (0)