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

omap-L138 视频采集和显示问题

请问如何用OMAP-L138 来完成视频采集,用LCDC接口来实现显示。

目前我们利用tvp5151来作为视频前端的解码,输入tvp5151的信号为复合视频信号;tvp5151和OMAP-L138的通信接口符合ITU-BT656规范(27M输入时钟和8位的数据线),选取的屏为4.3寸TFT液晶屏,像素为480*272,RGB565.

有一个问题请教一下:通过tvp5151输出的视频信号通过OMAP-L138的VPIF接口得到的视频信号为YUV422,通过转换后为RGB565信号,但这个信号的行数和列数同液晶屏的480*272不匹配,这样怎样输出,是不是输入LCDC的显存的数据的行列要同屏幕的行列数相同

Tony Tang:

下面这个贴子实现了H.264的解码到LCD显示。

http://www.deyisupport.com/question_answer/dsp_arm/omap_l1x/f/54/t/24602.aspx

大小不一致,需要做scaling。

Lew Yu:

回复 Tony Tang:

是omap-L138 evm的那个复合视频输入后从其4.3寸屏输出是吗。

还有一个问题,如果我想在omap-L138 evm中输入一张图片,如此操作。(我没有evm 的用户接口板,只有底板、核心板和显示屏)

Tony Tang:

回复 Lew Yu:

如果只是想做软件的开发与验证,可以用文件方式读取一张已有的图片进行处理。

如果想从硬件上接收图像,验证驱动等,必需要有UI板,飞线不太可行,因为线太多,而且base board上的连接头太密,不好连。

 

顺便问一下,用L138做什么样的图像处理?

Lew Yu:

回复 Tony Tang:

       我们想用 OMAP-L138 来实现视频的实时采集。目前我们自制了一个采集板,输入的复合视频信号,通过TVP5151来进行视频解码,然后通过BT656接口协议把采集到的视频信号输入OMAP-L138,然后利用OMAP-L138的LCDC把采集的视频信号在液晶屏上显示。我想问问,OMAP-L138的运算能力可以算得过来吗。

        还有一个问题,我今天用开发的液晶显示不同的单色,发现在屏幕刷新时,有闪烁的现象,我显示只用了一个缓存,没有用乒乓缓存,是不是我用乒乓缓存可以避免闪烁

Tony Tang:

回复 Lew Yu:

#1, 只是做YUV-》RGB转换,+scaling,可以做的过来。

#2. 是因为DDR竞争的原因,导致LCDC的DMA送数不及时,与ping-pong buffer没有关系。可以设置LCDC的寄存LCDDMA_CTRL的4-6位和8-10位,以及DDR寄存BPPBR寄存为0x20,进行调整。

Lew Yu:

回复 Tony Tang:

谢谢给力的回答,但我还有一些问题:

我想问一下,当我运行停止时,会有一半是红色一半是绿色的情况也是因为DDR的竞争原因吗。

我今天测试发现一个问题。 当显示一帧图片时,当我 设置RASTER_CTRL 的RASTER_EN位来使能RASTER时,发现LCD_STAT的值变为0x00000160,为什么EOF0位和FUF位会置1;然后当我想DDR中的显存写入一帧图像的值后发现LCD_STAT的DONE位怎么都不置1,但是当我把RASTER_CTRL 的RASTER_EN位置0后,发现LCD_STAT的DONE位置1,这又是为什么;然后我看手册说把RASTER_CTRL 的RASTER_EN位置1后,LCD_STAT的DONE位会变为0,然而我试验后并没有变为0,而是当我想LCD_STAT的DONE位写1后才置1。图像的DMA操作中对应寄存器到底是个怎样的工作方式。

同时,当我使能了RASTER_CTRL的DONE_EN位后,为什么当LCD_STAT的DONE位为1后依旧进不了中断。我是在BIOS中设置中断向量表的,设置中断INT10对应中断事件52(LCDC的中断)。我试过那个触摸屏的GPIO中断是成功的(设置事件49为INT13),表明中断的寄存器设置是正确的。我想问一下那个LCD_STAT的DONE位对应的中断到底是什么意义,什么表示一帧传送完,如果用RASTER其是不断有时钟的,是不是数据是在不断传送的。

越使用问题越多,期待更给力的回答

Tony Tang:

回复 Lew Yu:

#1. 要具体看本身要显示的图像与实际显示的图像来判断是配置的问题,还是信号有问题?

#2. Raster mode是连续的,使能后,LCD的DMA就从buffer连续往LCD搬运数据,所以在全速跑的时候是看不到DONE置1的,因为自动又开始了一下帧的搬运。所以你看到的是disable反而可以看到DONE置1.

#3. 我想你是在DSP端测试的吧(BIOS),LCDC在DSP端的中断是73号,在ARM端才是52号。你用的GPIO是哪一个bank的?

同时我也想问一下,用LCDC的DONE中断有什么用?

Lew Yu:

回复 Tony Tang:

1. 是不是进行视频采集,一般选用Raster mode。那么当Raster mode使能后,显存内容将被时时的显示到屏上,那么如果我输入到显存的数据不及时,是不是会出现输出视频卡帧的情况。那么当我把准备好的数据写入显存时,如果写的很慢,或者写了一半,停止了,那么输出是否也将会只有一半的显示,那么我是不是可以理解在写入显存时,必须是一次全部写入?

2. 我使用pingpong FIFO显示红和绿两种单色,我把一种颜色放入ping的显存,把另一种颜色放入pong的显存,开始运行时,发现输出为一个新的闪烁的颜色,好像是两种颜色的综合。我分析是输出太快,从而人眼反应不过来,那在进行视频采集时该如何使用pingpong FIFO呢,如果不用,用单FIFO能行吗

3. 根据目前Raster mode的特性,显存数据时不断的输出的,我觉得发送完成中断貌似没有很大的作用,我想问一下在你们进行视频采集时,是否有使用过中断,如果没有,那么这个中断的意义是什么呢。

4. 目前我希望不使用linux,而能够仅仅通过DSP来在LCD上显示一幅图片。我在网上下了一个格式转换的工具,可以把图像转换成.bin格式的文件,那么我能不能使用C语言的文件命令把该文件里的数据写入到显存中,然后加以显示?

hai wan:

回复 Lew Yu:

Hi,Lew Yu:

      最近也在调试OMAPL138接收TVP5150发送的BT656格式的数据,我想请问下OMAPL136接收BT656格式数据,需要在Linux下修改和添加哪些程序?谢谢

赞(0)
未经允许不得转载:TI中文支持网 » omap-L138 视频采集和显示问题
分享到: 更多 (0)