一种实时全景视频拼接显示装置及其方法与流程

文档序号:15595134发布日期:2018-10-02 19:25阅读:3098来源:国知局

本发明属于嵌入式计算机视频处理技术领域,特别是涉及一种实时全景视频拼接显示装置及其方法。



背景技术:

近年来,全景视频因其具有视场大、沉浸感强等特点在许多领域得到了广泛应用,基于多路相机的全景拼接分辨率高、图像畸变小,成为应用的热点内容,但由于多路视频拼接算法计算量大,通常无法实现实时处理,因此处理过程通常在工作站或pc机等设备完成。



技术实现要素:

本发明目的是克服传统多路相机的全景视频拼接显示技术实时性上的不足,实现六路相机的全景视频的实时拼接,同时根据可变的视角信息,将指定视角的视频进行显示,实现全景视频的漫游显示。

本发明的技术方案是在多核dsp上实现视频实时处理算法,包括图像畸变矫正算法,全景图拼接算法和全景漫游算法;由fpga实现全多路实时视频数据采集、缓冲和送显。

一种实时全景视频拼接显示装置,包含以下三个部分:

一个fpga,接收六路相机发送的数字视频信号,将视频数据打包送交多核dsp进行处理,接收多核dsp返回的待显示数据,将其组织成包含视频同步信号的数字信号,fpga连接ddr3sdram,缓存视频数据;

一个多核dsp,接收打包好的视频数据,进行全景视频拼接及全景漫游;多核dsp连接ddr3sdram,用于拼接算法中间处理过程的数据缓存及输入输出数据的缓存;

一个dvi视频编码器,用于把处理后的数字视频信号转为显示器可识别的dvi视频信号。

一种实时全景视频拼接显示方法,包括以下步骤:

第1步、六路外部相机将实时采集到的视频信号送入fpga;

第2步、fpga从视频信号中提取中有效视频信息,写入fpga连接的ddr3sdram缓存;

第3步、fpga连接的ddr3sdram中根据地址划分了3个缓冲区,这3个缓冲区环形排列,对于输入的六路视频数据,fpga将其在单个缓冲区中顺序排列存放;

第4步、fpga根据多核dsp发送来的缓冲区切换指令,从fpga连接的ddr3sdram中的3个缓冲区中的指定编号的缓冲区中读出缓存的一帧六路视频的数据,打包成srio数据包,通过srio总线写入多核dsp连接的ddr3sdram中指定的接收缓冲区;

第5步、多核dsp在fpga发送新数据包的同时,对当前已接受到的六路视频数据进行全景视频拼接,具体内容包括:图像畸变矫正、根据全景图像拼接矩阵进行拼接,将拼接得到的全景图像缓存在多核dsp连接的ddr3sdram中;

第6步、多核dsp根据包括球面坐标系中的俯仰角和方位角两个角度信息的视角数据,结合拼接好的全景图像,计算待显示的视角的图像,将结果写入多核dsp连接的ddr3sdram中;

第7步、多核dsp通过srio总线从多核dsp连接的ddr3sdram中的结果位置读取图像数据,经过本地同步后组成符合vesa格式的数字信号经过fpga发送到视频编码芯片;

第8步、dvi视频编码器将fpga送来的视频数据编码成为显示器可识别的dvi视频信号,最终在显示器上显示。

本发明具有如下优点:

1、满足了全景视频实时拼接漫游显示的需求,对于六路标清相机输入可以达到最高每秒30帧的输出,直接从装置连接的显示器中观看实时处理的结果。

2、可以显示的视角为整个球面坐标系中的任意俯仰角和方位角的组合,不限定显示的视角。

3、完全嵌入式系统实现,无需再将处理工作交给工作站或pc进行处理,功耗较低、可使用非固定电源设备进行供电,方便随时移动。

附图说明

图1:本发明装置整体结构图;

图2:本发明方法工作流图。

具体实施方式

下面结合附图对本发明做进一步的描述:

实施例

参照附图1,一种实时全景视频拼接显示装置包括三个核心部分:

一个fpga,型号为xilinx公司生产的zc7020芯片,接收外部六路相机通过lvds发送的数字视频信号,将有效视频数据打包后通过srio总线送交多核dsp进行处理,接收多核dsp返回的待显示数据,将其组织成包含视频同步信号的dvi数字信号,fpga连接ddr3sdram,缓存视频数据;

一个多核dsp,多核dsp为ti公司生产的tms320c6678dsp,接收fpga打包好的通过srio总线发送来的视频数据,进行全景视频拼接及全景漫游;多核dsp连接ddr3sdram,用于拼接算法中间处理过程的数据缓存及输入输出数据的缓存;

一个dvi视频编码器,用于把处理后的数字视频信号转为显示器可识别的视频信号。

此外,一种实时全景视频拼接显示装置还括以上三个核心部分能够正常工作所需的时钟、电源、接口芯片等部分。

参照附图2,一种实时全景视频拼接显示方法工作过程可分为八个步骤,以下为详细说明:

第1步、六路按照前、后、上、下、左、右相对位置关系安装的外部相机将实时采集到的视频信号通过lvds接口送入fpga;

第2步、fpga将六路外部相机传来的有效视频数据分离出来,通过ddr3sdram控制器写入到fpga连接的ddr3sdram缓冲区进行暂存;

第3步、fpga连接的ddr3sdram中根据地址划分了3个缓冲区,这3个缓冲区环形排列,分别为当前写入区、静态区、当前读出区,其中当前写入区为视频数据写入位置,当前读取区为视频数据读出位置,静态区为前一帧数据存储位置,对于输入的六路视频数据,fpga将其按照相机安装关系的次序(前、后、上、下、左、右)在单个缓冲区中顺序排列存放;这三个区域根据多核dsp通过spi总线发来的缓冲区切换指令进行切换;

第4步、fpga根据多核dsp从spi总线发送来的缓冲区切换指令,从fpga连接的ddr3sdram中的3个缓冲区中的指定编号的缓冲区中读出缓存的一帧六路视频的数据,打包成srio的streamwrite数据包,通过srio总线写入多核dsp连接的ddr3sdram中指定的接收缓冲区;

第5步、多核dsp中的六个dsp核心(核心1~核心6)读取图像矫正缓冲区中的原始数据,由六个dsp核心并行运行图像矫正畸变算法,图像畸变矫正算法根据相机先验的内部参数及外部参数信息将原始视频数据矫正为无光学畸变的图像数据,这些数据写入图像拼接缓冲区;

多核dsp中的一个dsp核心(核心0)读取图像拼接缓冲区中的矫正后图像,结合全景拼接映射矩阵,生成拼接后的全景图像,该全景图像为球面全景图,并将其写入全景图像缓冲区中的一个缓冲区,其中全景拼接映射矩阵是基于计算机视觉理论、计算出六路相机的标定信息后,根据标定信息中的空间信息将各路图像中的像素坐标映射至球面坐标系,并将球面坐标系离散化至二维矩阵得到的,其中无法映射的离散点的由临近插值法得到,全景拼接映射矩阵是预先计算完成后存储在本装置中的

第6步、多核dsp中的一个dsp核心(核心7)读取图像拼接缓冲区中的矫正后图像,结合全景拼接映射矩阵,生成拼接后的全景图像,该全景图像为球面全景图,并将其写入全景图像缓冲区中的一个缓冲区,其中全景拼接映射矩阵是基于计算机视觉理论、计算出六路相机的标定信息后,根据标定信息中的空间信息将各路图像中的像素坐标映射至球面坐标系,并将球面坐标系离散化至二维矩阵得到的,其中无法映射的离散点的由临近插值法得到,全景拼接映射矩阵是预先计算完成后存储在本装置中的;

第7步、多核dsp中的一个核心(核心7)读取显示图像缓冲区中的一幅待显示图像,将其数据组成srio的swrite数据包,通过srio总线发送给fpga;fpga将待显示的图像结合同步信号后组成符合vesa格式的数字信号发送到dvi视频编码器;

第8步、dvi视频编码器将fpga送来的视频数据编码成为显示器可识别的dvi视频信号,最终在显示器上显示。

以上操作流程中,步骤1、步骤2、步骤3、步骤4、步骤9在fpga中进行,步骤5、步骤6、步骤7,步骤8在多核dsp中进行,共计使用了多核dsp的8个核心进行处理。

本方法中多处使用多缓冲区及相关调度策略、可以有效避免图像数据发生读写操作同时访问同一地址导致的数据不一致性,也有利于提高多核dsp中的内存访问效率;通过将耗时长计算量大的计算过程抽象为矩阵映射的操作,极大的提高了处理速度,保证了视频显示的实时性。

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