一种提高多路视频采集前端处理效率的方法和系统与流程

文档序号:12279591阅读:317来源:国知局
一种提高多路视频采集前端处理效率的方法和系统与流程

本发明涉及一种提高多路视频采集前端处理效率的方法和系统,属于图像通信领域。



背景技术:

多路视频是指通过多个摄像装置拍摄例如但不限于同一时刻不同场景,或同一场景不同角度的视频流,由于其可在同一时刻显示大范围场景的视频或图像,因此有着广泛的应用价值。其中车载全景显示和室内外安全监控领域应用的最为广泛。随着人们对驾驶路况的实时要求提高以及驾驶安全的关注度提升,智能汽车制造逐渐引入了全景显示的功能。其大多是在汽车车身的不同角度处安装多路摄像装置,通过对所有不同摄像装置同一时刻拍摄得到的视频进行缓存,并对多路视频中对应的多路同步图像进行拼接,从而将拼接得到的实时全景图像显示在汽车的显示设备上,以方便驾驶员在行车时观察车身周围的环境以及距离。因此,智能汽车全景图像显示的实时性和准确性受到多路视频同步准确率以及图像拼接正确率的影响。现今的图像拼接方法已逐渐趋于成熟与稳定,但如何准确地同步不同时刻摄像装置拍摄得到的多路视频仍然是行业研究热点。同样,随着人们对居住以及购物等安全的关注度攀升,许多室内室外安装了多个摄像装置,用于同一时刻在同一地点进行安全监控。多路视频的同时显示技术已趋于成熟与稳定,但如何确保多路视频的精确同步及同步的时间效率显示仍然是研究热点。

发明专利CN201310628115.0公开了一种同步多路视频的方法。其首先需要在多路摄像装置采集的多路视频流中加入时间同步信息,经过视频解码器将采集后的多路视频流解码形成对应的多路图像流并进行缓存,然后根据同步信息对多路图像流进行同步,最后将同一时刻的多路图像流进行缓冲处理并传送给后续应用装置。在这个过程中,多路视频解码器为独立的,经其解码后图像流是分立的,需要根据解码得到的同步信息对每一个图像进行时间标记再缓存,这个过程耗时长且需要大量的内存。并且同步后的同一时刻的多路图像还需经过大量的缓存,这个过程也会消耗过多的带宽和内存,从而增加较大的系统开销。



技术实现要素:

本发明目的在于克服现有技术问题的缺陷,提供一种提高多路视频采集前端处理效率的方法和系统。

为了实现上述目的,本发明采用以下的技术方案:

根据本发明的第一方面,提供了一种提高多路视频采集前端处理效率的方法,包括如下步骤:

S1、分别采集多路视频流;

S2、生成用于处理所述多路视频流的共用设备节点;

S3、生成用于所述多路视频流的共用缓冲链,所述共用缓冲链中的共用缓冲区大小至少为所述多路视频流中每一路占用的缓冲区的总和;

S4、在软件层将对应所述多路视频流的多个寄存器进行封装,使得所述多路视频流的对应每一帧的寄存地址指向同一共用缓冲区;

S5、根据所述多路视频流中每一路占用的缓冲区大小和排序规则,对所述共用缓冲区进行区域划分和设置偏移位置,使得所述多路视频流的同一时刻的各自的每一帧按照偏移位置缓存在同一共用缓冲区内。

进一步或优选地,所述方法还可以包括步骤S6、选择多路视频解码器中的一路信号作为共用缓冲链采集过程中统一的参考信号,指示完成共用缓冲链中的图像循环采集、填充。

进一步或优选地,步骤S1中由多路摄像装置分别采集所述多路视频流,所述多路视频流包括至少2路视频流,且所述多路视频流构成360°全景图像或者不同场景的多个视场图像。所述多路摄像装置根据上述应用场景的需要,可以被安装在同一场景内呈不同角度放置或者分别被安装在不同场景内。

进一步或优选地,在步骤1之后可由多路视频解码控制装置,例如多路独立tvd控制器分别对所述多路视频流进行控制和解码,所述多路独立tvd控制器的数量与多路摄像装置的数量相同。

进一步或优选地,步骤S3中所述的共用缓冲链包含的共用缓冲区的数量根据需要缓存的图像的不同时刻的数量,例如根据每秒的帧数而确定。并且根据同一时刻的多路图像的数量,所述的共用缓冲区被划分为等同数量的区域,所述区域的大小至少为多路视频流中每一路的对应每一图像的大小。

根据本发明的第二方面,提供了一种提高多路视频采集前端处理效率的系统,包括:

第一模块,设置为分别采集多路视频流;

第二模块,设置为生成用于处理所述多路视频流的共用设备节点;

第三模块,设置为生成用于所述多路视频流的共用缓冲链,所述共用缓冲链中的共用缓冲区大小至少为所述多路视频流中每一路占用的缓冲区的总和;

第四模块,设置为在软件层将对应所述多路视频流的多个寄存器进行封装,使得所述多路视频流的对应每一帧的寄存地址指向同一共用缓冲区;

第五模块,设置为根据所述多路视频流中每一路占用的缓冲区大小和排序规则,对所述共用缓冲区进行区域划分和设置偏移位置,使得所述多路视频流的同一时刻的各自的每一帧按照偏移位置缓存在同一共用缓冲区内。

进一步或优选地,上述一种提高多路视频采集前端处理效率的系统,还可以包括第六模块,其设置为将用于所述多路视频流中的其中一路的中断信号作为共用缓冲区的采集过程中统一的参考信号,以完成共用缓冲链中的缓冲区的循环采集、填充。

进一步或优选地,由多路摄像装置分别采集所述多路视频流,所述多路视频流包括至少2路视频流,且所述多路视频流构成360°全景图像或者不同场景的多个视场图像。所述多路摄像装置根据上述应用场景的需要,被安装在同一场景内呈不同角度放置或者分别被安装在不同场景内。

根据本发明的第三方面,提供了一种提高多路视频采集前端处理效率的系统,包括:

多路视频采集装置、多路视频解码控制装置、处理器、存储器,所述存储器包括可由处理器执行的指令,所述指令用于执行上述方法。

与现有技术相比,本发明具有以下显著优点和有益效果:

现有技术中,多路摄像头采集到的数据需要通过软件进行标识、同步处理,耗费系统带宽资源。多路摄像头的数据是分离的,在后端的全景拼接过程中处理起来较麻烦。针对这些缺点,根据本发明的方法和系统,对多路信号采集数据的同步和处理,提升了数据采集的速度以及简化了后端数据拼接的处理过程。本发明的方法,可通过对现有的驱动程序进行改造来实现,其特别适用于提高基于多路独立tvd 控制器的360°全景方案中前端多路图像数据的处理速度,减少了系统带宽及资源的消耗,简化了应用对硬件的控制。通过在前端进行对多路摄像头数据的处理,提高全景拼接方案的实现效率,并增加用户的易用性。

根据本发明的一种提高多路视频采集前端处理效率的方法和系统,将多路视频解码控制装置,例如多路独立tvd控制器的对应多个寄存器进行封装,使得同一时刻的多路图像的寄存地址指向同一个地址的操作,保证了多路图像在采集时间上是同步的;根据多路摄像装置的数量以及分辨率来对共用缓存区进行区域划分,使得同一时刻的多路图像同时存储在一个共用缓存区的操作,节省了系统开销,减小了带宽、内存和处理时间,保证了实时性,同时也便于将同一时刻的多路图像打包传输给应用层进行其它应用处理。

在360°全景图像采集的应用中,根据本发明的方法和系统,提高了多路视频数据采集下,特别是全景方案时的图像处理效率。

根据本发明的方法和系统,减少多路视频数据前端处理的系统开销,在嵌入式设备上效果尤为明显。

根据本发明的方法和系统,为应用层的开发简化了大量的工作。

附图说明

以下结合附图,对本发明的实施例进行详细的描述,其中:

图1所示为根据本发明一实施例的流程图;

图2所示为根据本发明另一实施例的将共用缓冲链中的视频流应用于智能汽车全景拼接的流程示意图;

图3所示为根据本发明再一实施例的将共用缓冲链中的视频流应用于安全监控的流程示意图;

图4所示为根据本发明再一实施例的一种提高多路视频采集前端处理效率的系统的模块结构图。

具体实施方式

在很多车载场景中有360°全景图像采集、显示的应用,在这种场景下,如果soc自带tv解码器(tvd)控制器,在一个需要四路视频采集的实例中,首先需要通过例如四路摄像头分别采集四个方向的图像,经过四路tvd控制器的采集后形成数字图像数据,然后在应用层对四路图像数据进行同步、缓冲处理,最后将同一时刻的四幅图像进行全景算法拼接处理,形成一幅具有3d效果的图片。在这个过程中,独立的四路tvd控制器采集到的图像数据是分立的,需要对每一个图像进行时间标记,并且将同一时刻的图像经过大量的数据拷贝后给拼接算法做处理,这个过程会消耗过多的带宽和内存,这对于车载一类的嵌入式设备来说,无疑增加了较大的系统开销。

另一种方案是使用的soc不带tvd控制器的,需要外挂tvd控制,这种方案采集的四路数据是时间同步的,输出的数据是交织在一起的,但是在前端处理时需要先将数据分离成各路独立的视频数据,然后缓存起来,这个过程也会增加系统的开销,而且由于是外挂芯片,与soc通信使速度会比较慢,软件需要较多的缓存处理。

如果能使用片内tvd控制器在采集图像数据的过程中就做好四幅图像的采集同步,并且以一定的规律存放于一块共用缓冲区(buffer)中,然后给到应用层进行算法拼接处理,则可以减少大量的数据拷贝、缓存、各路图像之间的同步处理,提高全景模式的处理速度。基于此,本发明提供了一种可以在驱动程序中实现的基于四路tvd图像同时采集的方法,例如软件驱动程序,由该驱动程序通过特殊的方法来控制硬件,将同一时刻的四路图像采集在一个buffer中,各路图像占其中的1/4大小,应用层只需对一个buffer进行有规律的计算拼接即可。

根据本发明的提高多路视频采集前端处理效率的方法和系统中,所采用的摄像装置可为普通平面摄像装置或者鱼眼摄像装置,摄像装置的感光芯片可为CMOS型或者CCD型;所述的视频或者图像的格式可为任意一种可视格式的视频或者图像;所述共用缓冲链可以为多路视频解码控制装置中的,例如tvd控制器中包含的内存区域,也可以为独立于tvd控制器的内存区域。

图1所示为根据本发明的提高多路视频采集前端处理效率的方法的一实施例,包括如下步骤:

S1、分别采集多路视频流。优选地,所述多路视频流由对应的多路摄像装置采集,且包括至少2路视频流。所述多路视频流可构成360°全景图像或者不同场景的多个视场图像,,其对应的多路摄像装置根据上述应用场景的需要,可被相应安装在同一场景内呈不同角度放置或者被相应安装在不同场景内。进一步优选地,可由多路独立tvd控制器分别对所述多路视频流进行控制和解码,所述多路独立tvd控制器的数量与多路摄像装置的数量相同。

S2、生成用于处理所述多路视频流的共用设备节点。所述共用设备节点受应用程序的调用。

S3、生成用于所述多路视频流的共用缓冲链,所述共用缓冲链中的共用缓冲区大小至少为所述多路视频流中每一路占用的缓冲区的总和。优选地,所述的共用缓冲链包含的共用缓冲区的数量根据需要缓存的图像的不同时刻的数量,例如根据每秒的帧数而确定。并且根据同一时刻的多路图像的数量,所述的共用缓冲区被划分为等同数量的区域,所述区域的大小至少为多路视频流中每一路的对应每一图像的大小。

S4、在软件层将对应所述多路视频流的多个寄存器进行封装,使得所述多路视频流的对应每一帧的寄存地址指向同一共用缓冲区。优选地,所述多个寄存器设置在对应多路tvd控制器中,在操作中将经解码后的多路视频流直接指向统一共用缓冲区,而不再需要建立每路视频流的缓存区。

S5、根据所述多路视频流中每一路占用的缓冲区大小和排序规则,对所述共用缓冲区进行区域划分和设置偏移位置,使得所述多路视频流的同一时刻的各自的每一帧按照偏移位置缓存在同一共用缓存区内。优选地,为了使本发明的描述简便,以四路视频采集前端处理为例。若采集四路视频流的每一路摄像装置的分辨率分别为R1、R2、R3和R4,则共用缓冲区的大小至少为四路摄像机装置各自分辨率之和,且共用缓冲区将被划分为四个对应区域D1、D2、D3和D4,每一个区域将分别用来存储同一时刻的对应四路视频帧,每一个区域的大小至少为对应视频帧的大小。根据实际需要可在软件层对四个区域进行排序,指定每路摄像机装置采集的视频帧存储在共用缓冲区的指定区域,确定每路视频流的偏移位置,进而确保同一时刻的四路视频帧能够完整的存储在同一共用缓冲区内。

进一步,还可以包括步骤S6、选择多路视频解码器中的一路信号作为共用缓冲链采集过程中统一的参考信号,指示完成共用缓冲链中的图像循环采集、填充。

为了使上述方法更加清楚,下面将通过进一步的实施例来详细描述本发明的两个应用:

如图2所示,为本发明将共用缓冲链中的视频流应用于智能汽车全景拼接的流程示意图。优选地,所述的智能汽车按照上述优选的实施方式,安装了四路摄像机装置,则在第一摄像机装置1、第二摄像机装置2、第三摄像机装置3与第四摄像机装置4拍摄得到智能汽车前、后、左、右不同方向上的四路视频之后,第一tvd控制器5、第二tvd控制器6、第三tvd控制器7与第四tvd控制器8分别解码对应的视频流得到对应的不同时刻的四路图像,不同时刻的四路图像经过对应tvd控制器的寄存器按顺序存储在使用不同时刻t1t2,……,tN标记的共用缓冲区b1b2,……,bN中,如t1时刻的四路图像存储在第一共用缓冲区b1中,t2时刻的四路图像存储在第二共用缓冲区b2中,以此类推。其中N为根据所需采集视频的每秒的帧数而定。每个共用缓冲区被划分为四个区域D1,D2,D3,D4,且D1的大小至少为第一tvd控制器5解码得到的图像的分辨率大小,D2的大小至少为第二tvd控制器6解码得到的图像的分辨率大小,D3的大小至少为第三tvd控制器7解码得到的图像的分辨率大小,D4的大小至少为第四tvd控制器8解码得到的图像的分辨率大小。同一时刻的四路图像按照上述规定的原则分区域存储在共用缓冲区的指定区域,如经第一tvd控制器5解码的图像存储在共用缓冲区的D1区域中,经第二tvd控制器6解码的图像存储在共用缓冲区的D2区域中,经第三tvd控制器7解码的图像存储在共用缓冲区的D3区域中,经第四tvd控制器8解码的图像存储在共用缓冲区的D4区域中。上述多路图像也可根据实际需要分区域存储在共用缓冲区的不同区域。经过上述步骤得到的四路图像可以通过在智能汽车上安装全景拼接模块9,使得每一个共用缓冲区的四路图像合成为一个完整的全景图像并显示于显示器10上用于安全驾驶。根据需要拍摄的方位,上述应用中也可以选择其他任意数量大于等于两个的摄像机进行同一场景的拍摄。

如图3所示,为本发明将共用缓冲链中的视频流应用于安全监控的流程示意图。在实际安全监控中,可以在不同的场景中分别安装任意数量大于等于两个的摄像机装置。为了描述方便,以四路摄像机装置为例,在第一摄像机装置1、第二摄像机装置2、第三摄像机装置3与第四摄像机装置4拍摄得到不同场景中的四路视频之后,第一tvd控制器5、第二tvd控制器6、第三tvd控制器7与第四tvd控制器8分别解码对应的视频流得到对应的不同时刻的四路图像,不同时刻的四路图像经过对应tvd控制器的寄存器按顺序存储在使用不同时刻t1t2,……,tN标记的共用缓冲区b1b2,……,bN中,如t1时刻的四路图像存储在第一共用缓冲区b1中,t2时刻的四路图像存储在第二共用缓冲区b2中,以此类推。其中N为根据所需采集视频的每秒的帧数而定,和/或根据所需采集视频的总时长而定。每个共用缓冲区被划分为四个区域D1,D2,D3,D4,且D1的大小至少为第一tvd控制器5解码得到的图像的分辨率大小,D2的大小至少为第二tvd控制器6解码得到的图像的分辨率大小,D3的大小至少为第三tvd控制器7解码得到的图像的分辨率大小,D4的大小至少为第四tvd控制器8解码得到的图像的分辨率大小。同一时刻的四路图像按照上述规定的原则分区域存储在对应的共用缓冲区的指定区域,如经第一tvd控制器5解码的图像存储在共用缓冲区的D1区域中,经第二tvd控制器6解码的图像存储在共用缓冲区的D2区域中,经第三tvd控制器7解码的图像存储在共用缓冲区的D3区域中,经第四tvd控制器8解码的图像存储在共用缓冲区的D4区域中。经过上述步骤得到的四路图像流可以通过在监控室安装的显示器10进行显示,所显示的视频可以按照四格的形式同时显示,也可以自由切换为全屏显示的任意一个摄像机拍摄得到的画面。

根据本发明的进一步的实施例,为一种提高多路视频采集前端处理效率的系统,如图4所示,包括:

多路视频采集装置、多路视频解码控制装置、处理器、存储器,所述存储器包括可由处理器执行的指令,所述指令用于执行上述方法。优选地,所述多路视频解码控制装置可集成于处理器内。所述多路视频解码控制装置也可独立于处理器。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。即使个别的技术特征在不同的权利要求中引用,本发明还可包含共有这些特征的实施例。

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