一种基于FPGA实现的车载视频图像画中画显示方法与流程

文档序号:20204551发布日期:2020-03-27 21:03阅读:1016来源:国知局
一种基于FPGA实现的车载视频图像画中画显示方法与流程

本发明涉及fpga技术,具体涉及一种基于fpga实现的车载视频图像画中画显示方法。



背景技术:

画中画是通过数字图像处理技术,使用一大一小两个视频画面叠加的方式,在一个屏幕上同时显示两个视频信号,以便在观看主画面的同时查看其他画面,即把子画面放置于主画面之内显示。近几年随着汽车电子技术的发展,对视频源、显示设备和视频传输线的研究开发取得了很大进展。例如,将导航显示器与电子系统分离开,使显示器可以安装在便于驾驶者观察的位置,这种分离需要增加视频传输线。新一代汽车还可能配置各种摄像机用于辅助驾驶,例如后视镜摄像机、夜视镜以及路标识别摄像机,而每个摄像机都需要通过视频传输线连接到显示设备。车体内部迅速增加的传输线,特别是这些传输线越来越长,使得传统传输制式模拟cvbs信号的传输非常困难。这些信号格式不能承受汽车的电磁干扰。减小视频干扰的一种方案是用数字信号取代模拟信号,视频信号线本身不能产生干扰。现已证明,低压差分信号(lvds)能够为数字视频传输提供最合理的连接。



技术实现要素:

一种基于fpga实现的车载视频图像画中画显示方法。本发明实现的功能是通过fpga对输入的两路视频数字信号进行处理,最终实现两路视频图像一路输出,并能够在一帧图像上面组合显示出两路视频图像的内容实现画中画视频画面显示效果。其中a路视频图像是车载娱乐主机发送并经过串行器芯片输入的lvds信号,共包含一对时钟线和8对数据线,串行数据的位宽为7位;b路数据是摄像机采集并经过一系列处理后输入的rgb888图像数据以及行同步信号hs、场同步信号vs和有效数据选通de信号。通过fpga内部的ip核,将a路输入的串行lvds信号并行化后再进行rgb三通道的映射,然后与b路输入的rgb888图像数据组合起来进行选择输出,输出的数据再反映射回并行信号,最后再通过fpga内部ip核将信号转换为串行lvds信号输出给外部模块。其中fpga为主控芯片,选型为lattice公司ecp5系列下的lfe5u-45f8bg381ca7131r45芯片;串行器芯片选型为ds90ub947-q1;ddr3存储器选型为scb13h2g160af-13k;fpga开发工具是在diamond3.10集成开发环境下进行。

本发明的有益效果为:一种基于fpga实现的车载视频图像画中画显示方法,该方法通过fpga能够实现车载娱乐主机端发送的视频数据与车载摄像机端发送的视频数据组合显示,最终在车载屏幕上实现画中画的显示效果。其中主画面为车载主机端发送的视频画面,子画面为车载摄像机端传输的视频画面,子画面数据传输进fpga后需要先暂存入ddr3中,等待与主画面数据组合输出。通过fpga内部设定,可以自由的调节子画面即车载摄像机输入的视频的显示区域及大小。该方法具有传输数据抗干扰能力强、传输视频图像分辨率高、视频画面稳定流畅等优点,视频的刷新速率可达到60hz,分辨率可达到1920*1020,适应于汽车车载视频传输、多路视频监控等一些高清多路视频图像处理领域。

附图说明

图1为本发明的结构原理框图。

图2为本发明的lvds接收端原理图。

图3为本发明的lvds发送端原理图。

图4、5为本发明的rgb888输入、输出端原理图。

图6为本发明的ddr3存储器原理图。

具体实施方式

下面结合附图和具体实施方式对本发明进一步说明。

如图1所示,本发明的fpga内部实现过程主要由八个模块组成。fpga的输入端是两路视频信号,输出端是一路lvds接口传输的视频信号,并且数据传递的中间需要与ddr3进行数据的交互。其中与a1路视频数据即车载娱乐主机端发送的lvds接口数据相连接的是lvds接收模块a2,与通过车载摄像机输入的数据端b1相连接的是采集模块b2,与ddr3进行数据交互的是ddr3接口模块b4,最后发送端的数据是通过lvds发送模块ab6输出到fpga外部。其他几个模块包括数据交互模块b3、rgb映射模块a3、数据选通模块ab4、rgb反映射模块ab5。两路视频数据经过数据选通模块进行数据的选通合并在一路视频图像数据中,最后经过lvds发送模块输出数据(ab7)。

在可选实施例中,如图2所示,lvds信号通过与fpga连接的外部引脚输入fpga内部,并送入到lvds接收模块。lvds接收模块是用来接收主机发送的串行差分信号并将其并行化输出,其中输入端包含一对差分时钟和8通道的串行lvds数据对,输入时钟频率为75mhz,每个通道在一个时钟内传送7位串行数据。8通道串行数据分为两组,每组数据中都包含rgb888三通道数据与行场同步信号hs、vs和有效数据选通de信号,一个时钟周期传输两个像素点。输出端是一对差分时钟与8路7位的并行数据。捕获电路使用双数据速率寄存器,在时钟的上升沿和下降沿捕获数据。当接收模块工作时,与数据一起提供的低速时钟经过倍频需3.5倍,并且此时钟要与发送端相连接。lvds接收模块转换出来的两组8路7位并行数据需要经过rgb映射模块映射到rgb三通道上。其中每组4路数据共包含了24位的rgb信号和行场同步以及有效数据选通信号,通过映射模块可以将一组4通道7位并行数据中的图像rgb信号提取出来合成24位的r、g、b三通道图像数据,并将行场同步hs、vs以及选通使能信号de提取出来。最后这些图像数据被送到数据选通模块与采集模块的rgb三通道重新组合成一帧新画面。

在可选实施例中,如图3所示,fpga内部数据由fpga连接的外部引脚输出,数据经过lvds发送模块输出到外部。lvds发送模块是用来将fpga内部并行数据转换成串行的差分信号输出给外部,输出的时钟频率与输入的差分时钟一致,输出的数据是串行8路7位数据。

在可选实施例中,如图4、5所示,车载摄像机输入的数据经过一系列处理后送入fpga中并通过采集模块进行接收。采集模块采集输入进来的rgb888图像数据,将其传递给下一个模块。输入一帧rgb888图像的分辨率为1520*720,数据输入位宽为24位,并有行、场同步(hs/vs)有效数据选通(de)指示信号。通过设置一个寄存器对场同步信号vs打一拍来检测vs信号的上升沿。当检测到vs的上升沿并且de有效时,即表示一场图像开始传输并同时拉高有效图像输出信号,表示采集到的图像有效输出。设置一个行数计数器和一个场数计数器,当一场图像开始传输的时候,行数计数器开始计数,计数到第1520个点的时候清零,同时场数计数器加一;当场数计数器计数到第720个点的时候清零重新计数,表示一帧图像采集完成。数据以包文形式输出到下一个模块,设置包文头为第一场像素中的第一个数据,包文尾为第720场像素的第1519个数据,当下一个模块检测到包文头时,即表示一帧图像开始发送,当检测到包文尾的时候表示这一帧图像传输完毕。

在可选实施例中,如图6所示,采集模块输入进来的数据需要暂存入ddr3中等待数据选通模块进行选取,其中需要经过数据交互模块与ddr3接口模块。

数据交互模块用来进行数据存储与读出之间的交互。采集模块输入的rgb888数据需要在此模块暂存进fifo中进行跨时钟域读写,写入端的时钟为采集模块的时钟,读出端的时钟为ddr3的输入时钟。由于ddr3的数据位宽为64位,因此通过将两个像素点拼接起来组成一个48位的数据进行存储。设置其位宽为64位,高16位补0,深度设置为128。当ddr3接口模块准备接收数据并且fifo中有数据时,就将fifo中存储的像素数据送入ddr3接口模块。从ddr3中输出并送入数据选通模块的数据也需要一个fifo进行数据的跨时钟域读写,写时钟为ddr3的输入时钟,读时钟为数据选通模块时钟。设置其位宽为64位,深度为2048,当像素数据从ddr3中读出的时候就将其存储到此fifo中,当收到数据选通模块发送的摄像机采集数据输入请求时,从此fifo中将像素数据读出。

ddr3接口模块用来进行ddr3存储器和外部数据的交互。在此模块中完成ddr3的初始化与寄存器模式配置。在初始化过程中,ddr3上电后需要等待至少500us的时间再发送初始化开始信号,当ddr3返回初始化完成信号表示ddr3初始化成功。在模式寄存器配置中,设置ddr3的突发读写bl为8,突发命令长度为32,即当有一个读(写)命令时,会连续执行32次读(写)操作,一次读(写)操作写入8个16位数据,因此可以连续写入64个64位数据。此模块中通过设置3个fifo来进行跨时钟域的数据读写,其中fifo1和fifo2是用来缓存写地址数据与读地址数据,其fifo的写入端与读出端时钟都是ddr3的输入时钟,数据位宽设置为26,深度设置为128。fifo3用来缓存上一个模块输入进来的像素数据,fifo的写入端与输出端的时钟都是ddr3的输入时钟。通过此模块向ddr3ip核发送写命令、写地址与写数据,将像素数据存入到ddr3中,并在数据交互模块需要数据读出时,通过上一模块发送过来的读地址与读请求信号将从ddr3中存入的数据按照地址顺序读出。

两路视频数据通过数据选通模块选择输出,最终在一帧图像中显示两路视频数据重组后的画面。本模块输入的视频数据源分别是a路车载主机和b路车载摄像机。a路中的视频图像数据经过映射模块后转换成rgb888三通道图像数据,并与b路采集模块输入进来的rgb888图像数据进行选择输出。本模块的行、场同步信号与数据选通信号是以a路输入中映射出来的行场同步及选通信号为基准的。当检测到a路中场同步信号vs上升沿的时候开始对一行输入像素进行计数,当一行输入完成后行计数器清零并对场计数器进行加一。具体对图像数据进行选通方式是通过设置一个区域选通信号,a路数据的输入像素是1920*1020,b路输入的像素是1520*720,由于一次输入的是两个像素点,因此行计数的清零条件是计数到第1920/2=960个,场计数的清零条件是计数到第1020个。当行计数到第110至第960、场计数到第80至第840时区域选通信号指示b路数据,在区域选通信号范围内输出的像素数据都是从ddr3中读出的摄像机采集部分数据。

本发明的工作原理及过程是:两路视频数据通过引脚输入到fpga内部,并分别由lvds接收模块和采集模块进行数据的接收。lvds接收模块输入的数据经过rgb映射模块后映射出两组24位的rgb888数据;采集模块输入的数据经过数据交互模块先存入到ddr3中,在需要的时候从ddr3中取出送往数据选通模块与映射出来的rgb888信号组合成一帧图像数据。数据选通模块用来进行两路视频数据的选取与输出,选取的数据再经过rgb反映射模块转换为8路7位的并行数据,通过lvds发送模块进行并串转换后输出到fpga外部,最终在一帧图像中显示两路视频数据重组后的画面。

虽然本发明所揭示的实施方式如上,但其内容只是为了便于理解本发明的技术方案而采用的实施方式,并非用于限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭示的核心技术方案的前提下,可以在实施的形式和细节上做任何修改与变化,但本发明所限定的保护范围,仍须以所附的权利要求书限定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1