Part Number:TMS320DM8148
我基于下图Demo例程
VPSS M3 通过 Capture Link 采集图像后直接送到 DSP 做算法处理,然后再送到Cortex-M3 做编码,完成后给 ARM(Cortex-A8),运行在 ARM(Cortex-A8)的 Live555就可以使用数据提供 RTSP 服务,
稍微修改了下,将视频数据来源从摄像头获取改成了从A8视频帧缓存获取(有一个进程往A8视频缓存里填充视频数据,填完后通知本进程读走,频率大概20帧每秒),DSP灰度处理算法改成了RGB888转YUV420算法(因为A8视频帧缓存的数据格式是RGB888),
稍微修改了下,将视频数据来源从摄像头获取改成了从A8视频帧缓存获取(有一个进程往A8视频缓存里填充视频数据,填完后通知本进程读走,频率大概20帧每秒),DSP灰度处理算法改成了RGB888转YUV420算法(因为A8视频帧缓存的数据格式是RGB888),
然后运行起来可以正常显示,如下图:
正常的画面应该是上图那样的,但奇怪的是偶尔也会有杂色闪烁干扰出现,如下图:
出现还比较频繁。
请问下,这个情况是程序哪个环节出了问题,希望能给予指导!谢谢!
Chris Meng:
你好,
你这个软件demo不是TI官方发布的DVR RDK里的demo吧。
你现在转换的帧率是多少?我有点怀疑是DDR吞吐的问题,你可以尝试降低帧率看看问题出现的概率是否有减少。
也有可能是DSP cache没有正确写回的问题,请也看看相关代码。
,
Gao Hu:
demo是基于TI的DVR RDK,谢谢
,
Gao Hu:
降低频率没有减少,我怀疑可能是DSP cache的原因
这是相关代码,DSP从A8那边通过chain取得视频帧后执行的代码,请问下是这个地方的cache更新有问题?
我要怎么验证可能是DSP cache的原因?
,
Chris Meng:
你好,
能否尝试把相关memory的cache使能关闭,看看问题是否还出现。
,
Gao Hu:
我测试了一下,把RGB888视频帧从A8传到DSP处理成YUV420格式,再把YUV420视频帧传回到A8保存,播放发现没有杂色闪烁现象。
,
Gao Hu:
怀疑是DSP转换好的YUV420视频帧传到VIDEOM3编码成H264,这一部分出了问题,或者videoM3把H264送回A8出了问题。我以前也做过A8直接把RGB888视频帧转换YUV420,然后传送到videoM3编码成H246,再送回A8播放,也会时而出现杂色闪烁
,
Gao Hu:
播放十几帧就会闪一下要么全屏绿色(如图一)要么全屏红色(如图二)杂色干扰,正常是播放是第三张图所示