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

DM365 decode时,如何对付丢帧和误码?

当编码后的帧数据通过无线方式传送到接收端,难以避免丢帧和误码的情况。

 

我们发现基于DMAI接口的VDEC2_process()当出现帧内误码时,会导致原本应该

输出显示的帧数据没有输出,造成VDEC2使用的BufTab爆满,无法再通过Fifo_get()

获得新的译码空间,导致decode程序挂起。

 

请问这种情况下,应采取什么措施才能解决,让decode程序能够顺利的运行下去?

 

Best regard!  2012.2.23

haigang Zhao:

回复 VampireDaVinci:

非常感谢您的回复,为解决问题指明了方向。

我的理解解码端差错控制问题有两方面的解决策略:

1) 堵截的办法。就像您说的,发现帧中有错误数据就抛弃,并seek到下一个IDR解码。如果对一帧的全部数据增加校验,代价较高,是否允许提取帧中的某些关键数据作FEC控制,只要保证关键数据的正确,就能确保解码器顺利完成一帧的解码,即使图像出现马赛克? 如果可行的话,帧中的哪些数据是关键数据?

2)疏导的办法。当出现解码器BufTab爆满时,能否通过强制释放某些buffer的策略,让解码器能够正常运行下去而不至于

挂在那里? 通过DMAI接口能够实现么,哪些函数可以完成这些功能?

不好意思,问题有些复杂。还请您百忙中,稍微多点时间解答一下,方便的话最好提供一些参考资料,这些问题对于我们至关重要,且有线IP传输的情况下也有类似问题,因此具有典型意义。

 

Best regard!

haigang Zhao:

回复 VampireDaVinci:

非常感谢您的及时回复。

您回复的第2条应该是解码器内部的处理吧,用户能干涉么?

我们使用了TI提供的decode demo程序为解码器申请的缓冲区,在播放264文件时已经证明过是没问题的。

现在我们发现,当输入到解码器的帧数据有问题时,可能导致解码器的缓冲区出现上溢。所以我们想采用

两种策略或其一解决这个问题,提高解码器的容错能力。

方法一:当发现解码器缓冲区上溢是,能否通过TI提供的DMAI接口释放部分缓冲区,让代码继续运行下去?

方法二:为输入解码器缓冲区的帧数据中某些关键参数增加FEC保护,这些参数的正确能够确保解码器不会出现

缓冲区上溢?

DM365的解码器就像一个黑盒子,这方面的资料太少了。还请您稍微详细解释,不胜感激。

haigang Zhao:

回复 haigang Zhao:

求高人解答,自己顶!

haigang Zhao:

回复 VampireDaVinci:

感谢你的回复,从资料上看DM365的解码器还是有较强的抗干扰能力的,解码器通过不同的返回值指示译码结果。

具体的说,当出现下面的情况:

    Vdec2_process()=Dmai_EBITERROR 且 Buffer_getNumBytesUsed()=0

应用程序若不想退出,应如何处理 比较好?

Thanks & Best regard!

赞(0)
未经允许不得转载:TI中文支持网 » DM365 decode时,如何对付丢帧和误码?
分享到: 更多 (0)