我使用的是BSP包里的例程修改,基于saGraphicsARGB。
摄像头采集图像格式为UYVY,然后经过自己写的转换函数—YUV2RGB32,一帧帧的图像转换成RGB32格式,传输给/dev/video1去显示,图形层则是fb0保存了一张RGBA的图片,编译成功后运行,只有图形层图片显示,但是没有采集到的视频图像,并且感觉显示的图形层图片有点波纹不正常。
#但是如果,把这个程序去除掉图形层的相关函数,只有video0和video1,video0采集图像后转换为RGB32传输给video1,就能够正常显示,也可以修改赋予的阿尔法值,来调节视频图像的透明度,没有任何错误。
感觉加入了一个图形层一起进行叠加显示后就不正常了,另外如果video1保存固定的一张图片,而不用video0传输的一帧帧画面,就能实现Osd。
我想问下各位大神可能是什么原因造成的,原理上应该是支持这项功能的吧。代码太长了,不好发上来。
谢谢大家了!
Eason Wang:
具体的OMAP芯片型号?什么软件包?
ke zeng:
回复 Eason Wang:
谢谢你关注我的问题。
我用的是omap3530 芯片的devkit8000开发板 天漠的
软件包是dvsdk_3_01_00_10 里的 AM35x-OMAP35x-PSP-SDK-03.00.01.06例程,
我添加了摄像头实时采集画面转换成RGB32的功能,来代替原有的video2读取rgb数据文件。
程序里定义video和graphics层大小都是
#define IMG_WIDTH 400#define IMG_HEIGHT 276
输出的就是一条条暗纹,没有图像
但是昨晚调试了很久,发现把video层的大小改成
#define WIDTH 400#define HEIGHT 276
而graphics层不变,两个图层的融合就显示在Lcd上了,但是有个问题就是很卡顿延迟。
我想问问几个问题:
1.增大了video一帧长宽后应该需要处理的数据量变大了反而能显示了?
2.为什么出来的图形层图片有明显的失真?
3.另外我想调整graphics层的大小也为720×576,程序又报错无法运行。
实在不太懂是什么原因。
谢谢你的热心!希望你能帮助到我。
ke zeng:
回复 Eason Wang:
另外我想请问Omap中有类似达芬奇结构的硬件色彩空间转换吗,感觉软件 YUV2RGB32还是太迟钝了
Eason Wang:
回复 ke zeng:
CSC 在Display的模块里有,但是只能去显示,没法回到内存来啦。。。
Eason Wang:
回复 Eason Wang:
OMAP这块的支持,请发帖去https://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/537
ke zeng:
回复 Eason Wang:
也就是说如果要做色彩空间转换的同时,如果还想控制操作图像,就只能用软件的办法呢?
Eason Wang:
回复 ke zeng:
是的。。。
ke zeng:
回复 Eason Wang:
请问有相关的资料吗,我是说关于CSC的操作例程和使用手册之类的,我看过很多omap的资料,但是没看到过这个。谢谢了!
TI中文支持网
