TI论坛
直播中

刘飞

7年用户 265经验值
私信 关注

前端视频经过Resizer后放入VPBE VIDWIN0缓冲区,未发现丢数据,打开OSDWIN0后出现数据丢失现象,是哪里出现了问题?

本帖最后由 一只耳朵怪 于 2018-5-28 16:38 编辑

DM6437视频处理框架如下:
VPFE:720*576  PAL
VPBE:VIDWIN0 1024*768 yuv422, OSDWIN0 640*480  RGB565
VENC:1024*768 LCD RGB888 Digital output
问题描述:前端视频经过Resizer后 放入VPBE VIDWIN0缓冲区,未发现丢数据现象(数据回写问题引起的视频有白色或者黑色的线条),当打开OSDWIN0后,即使加入了回写函数,也会在VIDWIN0上出现数据丢失现象。是哪里出现了问题?谢谢

回帖(8)

乔婧

2018-5-28 01:58:06
你好,
cache写回是可以指定写回的地址的,请问写回地址和vidwin0使用的地址有关系么?
请问你的屏是1024×768@60f/s的屏么?如果减小OSD串口的大小,例如开一个100x100的,或者关闭采集,是否现象相同,还是改善?我想看看是否是DDR吞吐导致的问题。
举报

刘飞

2018-5-28 02:03:53
引用: 物是人非aaa 发表于 2018-5-28 01:58
你好,
cache写回是可以指定写回的地址的,请问写回地址和vidwin0使用的地址有关系么?
请问你的屏是1024×768@60f/s的屏么?如果减小OSD串口的大小,例如开一个100x100的,或者关闭采集,是否现象相同,还是改善?我想看看是否是DDR吞吐导致的问题。 ...

Thanks a lot!
Cache写回是指定地址的:BCACHE_wbInv((Uint8*)vpbeFrameBuf->frame.frameBufferPtr, (VPBE_WIDTH*VPBE_HEIGHT*2), TRUE);
LCD显示屏1024*768@60FPS;
OSD窗口由320*240(Zoomed to 640*480)减小到128*128(No zoom),数据丢失现象几乎消失。
基于以上应该可以证明是DDR吞吐所致?

我们又做了这样一个实验:
    前端视频不经过Resizer,直接粘到VPBE视频帧缓冲区,也就是后端视频的显示(尺寸仍为1024*768)只有720*576的视频信息,其余为灰色。
发现此时打开OSD窗口也无数据丢失现象。此现象是否可以解释为Resizer模块占用了较多的DDR带宽?
但是Resizer和OSD(320*240)都是必须要使用的,那此问题该如何解决?减小LCD刷新频率?谢谢!!
举报

乔婧

2018-5-28 02:10:51
引用: 映像2016 发表于 2018-5-28 02:03
Thanks a lot!
Cache写回是指定地址的:BCACHE_wbInv((Uint8*)vpbeFrameBuf->frame.frameBufferPtr, (VPBE_WIDTH*VPBE_HEIGHT*2), TRUE);
LCD显示屏1024*768@60FPS;

Bryant,
DDR控制器有一个寄存器叫PBBPR,请看看目前是否设置为0XFF,如果是,请修改为0x10~0x50范围的值尝试。
举报

刘飞

2018-5-28 02:28:48
引用: 物是人非aaa 发表于 2018-5-28 02:10
Bryant,
DDR控制器有一个寄存器叫PBBPR,请看看目前是否设置为0XFF,如果是,请修改为0x10~0x50范围的值尝试。

你好,
修改了PBBPR寄存器的值,数据丢失现象依然存在!这个寄存器的含义是什么?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分