一种高清摄像头视频处理系统及方法与流程

文档序号:16008203发布日期:2018-11-20 20:20阅读:312来源:国知局
本发明涉及计算机软硬件开发
技术领域
,特别涉及一种高清摄像头视频处理系统及方法。
背景技术
:视频监控在公共安全领域的广泛应用对视频数据的存储和传输提出了极大的挑战。随着国家公共安全和智慧城市发展的需要,监控摄像头的数量和清晰度也不断增加,这对存储和传输带宽也提出了更高的挑战。静态背景下基于块构造的背景参考图像技术,以及基于稳定性分析的背景块码率分配技术在监控视频的帖间编码方法上,可获得虽著的性能提高。然而,实际的编解码器还需要支持随机接入的功能,而这些随机接入帧往往采用I帧的编码方法,无法使用任何参考图像,因而这两个方法均无法用于帧内预测。由于没有任何参考图像,I帧的时域冗余无法去除,其编码码率一般会非常高,在实际应用中常容易引起丢包或延时等现象,用户体验质量非常差。FPGA(FieldProgrammableGateArray)即现场可编程逻辑门阵列。FPGA和其他MCU相比具有容量大、集成度高、速度快、灵活性强等特点,因此越来越多的将FPGA运用在信号处理、高速接口、视频图像处理等领域。随着FPGA技术的不断进步,FPGA器件内部可编程逻辑块、RAM资源、数字信号处理模块、微处理器、吉比特收发器等资源日益丰富。现有技术中的嵌入式视频采集白平衡算法有:灰度世界(gray-world)算法、完美反射算法(PRM)、GW和PR正交组合算法、色温估计白平衡算法等算法。这些算法的缺点是这种计算方式比较简单适合在嵌入式系统中应用,降低了计算过程中对有限内存和对CPU的占用时间,比较适合色彩较丰富的场景下使用。但是这种算法也存在着一种较为明显的缺陷就是当图像场景的色彩较为单一的情况下,会有比较明显的偏色现象(比如蓝色的天空、绿色的草原中等场景)。现有技术中的白平衡模块设计方案目前常用的主流白平衡调节算法如灰度世界法、完美反射法、GW和PR正交组合算法、色温估计白平衡算法、白点算法及其它的一些白平衡算法各自具有不同的调节特点,但是总体来说常见白平衡算法都存在色温修正不足或算法复杂度过高的问题,计算过程都比较复杂,且因为实际使用环境光线条件较复杂没有任何一种白平衡算法可以适应所有场景,运行在嵌入式处理器上对系统的资源占用较大。而算法相对简单的白平衡算法虽然计算过程较为简单,但算法适应性相对较差。技术实现要素:本发明所要解决的技术问题在于,提供了一种高清摄像头视频处理系统及方法。为了解决占用资源较少且适应性更强的问题,基于灰度世界改进、完美反射改进、色温校正约束及单色查表方式相结合的改进方案,采用工程化的处理方法“将复杂计算简单化,简单计算查表法”实现算法简单、实用性强、响应迅速的特点。为解决上述技术问题,本发明提供了一种高清摄像头视频处理系统,包括:复位模块,GTX收发器时钟,视频同步模块,以及,图像处理模块。所述复位模块,用于初始化FPGA逻辑中的初始状态。所述复位模块,进一步包括GTX收发器的复位部件和系统复位部件。所述GTX收发器时钟包括两个并行数据的采样时钟:分别为TXUSRCLK2时钟和TXUSRCLK时钟;所述TXUSRCLK2为发送端接口信号的采样时钟;所述TXUSRCLK为发送端PCS子层的工作时钟。所述视频同步模块中写时钟和读时钟都为74.25MHz,但两个时钟为异步时钟,存在跨时钟域;所述视频同步模块用于保证视频的正确收发。为解决上述技术问题,本发明还提供了一种高清摄像头视频处理方法,包括:复位步骤,GTX收发器时钟步骤,视频同步步骤,以及,图像处理步骤。所述复位步骤,用于初始化FPGA逻辑中的初始状态。所述复位步骤,进一步包括GTX收发器的复位方法和系统复位方法。所述GTX收发器时钟步骤包括两个并行数据的采样时钟:分别为TXUSRCLK2时钟和TXUSRCLK时钟;所述TXUSRCLK2为发送端接口信号的采样时钟;所述TXUSRCLK为发送端PCS子层的工作时钟。所述视频同步步骤中写时钟和读时钟都为74.25MHz,但两个时钟为异步时钟,存在跨时钟域;所述视频同步步骤用于保证视频的正确收发。本发明有益效果包括:1.支持单色判断;2.算法具有更好的适应性;3.增加对单色场景的处理功能;4.对系统内存资源占用较小。附图说明图1为本发明实施例所述FPGA发送端逻辑设计图;图2为本发明实施例所述FPGA接收端逻辑设计图;图3为本发明实施例所述图像处理模块;图4为本发明实施例所述基于colorchecker的拟合色温曲线。具体实施方式下面结合实施例详述本发明。为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明,但本发明并不局限于这些实施例。本发明高清摄像头视频处理系统在光纤中的流向将光端机分为光端机发送端(发送系统)和光端机接收端(接收系统)。光端机的发送端负责采集两路HD-SDI高清摄像机的视频数据和多路传感器数据,在FPGA内部将接收到的数据进行定制操作后经光纤上传到光端机的接收端,并执行光端机接收端下发的操作指令。光端机的接收端主要负责接收通过光纤上传的数据,在FPGA内部对数据进行光端机发送端的逆操作,然后通过不同的通信接口将数据分别处理后输出进行显示或存储,同时将控制数据复用反向传输至光端机发送端。本发明需要处理两路高清视频信号和多路串口信号,为了达到视频的实时传输,将FPGA作为主控处理器。本发明的有效传输带宽为6Gbps左右,需要三个吉比特收发器及一个SMPTESD/HD/3G-SDIIP核,并需要容量较大的RAM来缓冲视频,因此本发明采用Xilinx公司Kintex-7系列中的XC7K325TFPGA作为主控芯片。本发明高清摄像头视频处理系统,光端机发送端主要由HD-SDI视频数据接收模块、串口数据收发模块、FPGA逻辑处理模块及光纤收发模块组成。光端机的接收端主要由光纤收发模块、FPGA逻辑处理模块、串口数据收发模块及HD-SDI视频发送模块组成。整套系统详细工作过程如下:首先应通过通信链路测试确保系统链路是否完整,当通信链路正常时才能正确收发数据。光端机发送端采集双路高清摄像头HD-SDI数据及各传感器数据,利用双端口RAM完成数据同步解决时钟的跨时钟域问题,确保数据能够正确收发。数据同步完成之后进行数据封装,将两路视频数据和八路传感器数据封装复用为一路并行数据,根据视频的时序信号将封装好的数据插入comma字符,并利用高速收发器完成串化操作,完成电-光转换后通过光纤上传至光端机接收端。光端机接收端接收光纤传来的光信号,完成光-电的转换,并利用高速收发器完成数据的解串操作,然后对数据进行对齐操作、数据的解封装、数据的同步操作等,最后将同步好的数据通过不同的通信接口进行数据处理后显示或存储。除此之外,光端机接收端还可以下发一系列的指令至光端机发送端,FPGA通过对指令的解析输出相应的开关量以控制远处摄像头的电源通断、辅助照明灯的开关等工作状态。如图1所示,为本发明FPGA发送端逻辑设计图;如图2所示,为本发明FPGA接收端逻辑设计图。其中,FPGA整体逻辑设计分为光端机发送端逻辑设计和光端机接收端逻辑设计,按照视频在FPGA中的流向进行分模块设计。FPGA的逻辑设计模块主要包括GTX高速收发器模块、SMPTESD/HD/3G-SDI模块、复位模块、GTX收发器时钟模块、HD-SDI视频同步模块、HD-SDI视频时序信息提取模块、数据的封装及解封装模块、顶层GTX收发器数据流comma字符控制模块及数据对齐模块等,同时利用Modelsim对逻辑设计进行功能仿真。1、复位模块复位模块的作用是初始化FPGA逻辑中的初始状态。本发明的复模块包括GTX收发器的复位设计和系统复位设计。稳定的复位信号能够确保GTX收发器建立完整的链路,保证数据传输的正确性。HD-SDI接收/发送模块中的GTX收发器和顶层GTX收发器的复位模块设计思想一致。GTX收发器接收端在运行之前必须完成复位操作。接收端的复位状态包含DFE电路复位、接收端物理媒介适配层(PMA)复位、眼图扫描电路复位、接收端物理编码子层(PCS)复位及弹性缓冲电路复位。当GTX收发器接收端接收到的复位信号为高电平时,启动接收端中的复位状态机,当接收到的复位接口信号由高电平变为低电平时,状态开始跳转。当用户时钟RXUSRCLK/RXUSRCLK2都稳定时,通过判断RXUSERRDY信号是否为高电平,决定复位状态机是否进入接收端物理编码子层复位状态。当接收端的复位状态机初始化完成后,通过RXRESETDONE信号变为高电平指示复位过程完成,表明GTX收发器的接收端已准备就绪,等待接收数据。GTX收发器发送端的复位状态通过复位状态机来控制复位过程,主要包括发送端物理媒介适配层复位和发送端物理编码子层复位。当GTX收发器发送端的复位接口信号为高电平时,启动发送端中的复位状态机,当接收到的复位接口信号由高电平变为低电平时,状态开始跳转。当两个用户时钟TXUSRCLK和TXUSRCLK2都稳定时,通过判断TXUSERRDY信号是否为高电平,决定复位状态机是否进入发送端物理编码子层复位状态。当发送端的复位状态机初始化完成后,通过TXRESETDONE信号变为高电平指示复位过程完成,表明GTX收发器的发送端已准备就绪,等待发送数据。为了避免同步复位对脉冲宽度要求高及异步复位潜在亚稳态等弊端,系统的复位信号设计采用异步复位信号同步化处理。异步复位信号同步化中的异步是指复位信号是异步有效的,复位信号和时钟无关;同步化是指复位信号的释放与时钟有关,是同步的。采用同步化的异步复位能避免同步复位和异步复位的缺点,但又能保留同步复位和异步复位的优点。2、GTX收发器时钟GTX收发器发送端的内部时钟有两个并行数据的采样时钟,分别为TXUSRCLK2时钟和TXUSRCLK时钟。其中TXUSRCLK2为发送端接口信号的采样时钟;TXUSRCLK为发送端PCS子层的工作时钟。TXUSRCLK时钟的大小和内部数据宽度及GTX的线路速率有关,其计算方法如公式1所示。TXUSRCLK和TXUSRCLK2的关系如表1所示。其中TX_INT_DATAWIDTH信号用来控制内部数据宽度,‘0’表示宽度为两个字节,‘1’表示宽度为4个字节。表1TXUSRCLK和TXUSRCLK2的关系FPGA接口宽度TX_DATA_WIDTHTX_INT_DATAWIDTHTXUSRCLK2频率2字节16,200FTXUSRCLK2=FTXUSRCLK4字节32,400FTXUSRCLK2=FTXUSRCLK/24字节32,401FTXUSRCLK2=FTXUSRCLK8字节64,801FTXUSRCLK2=FTXUSRCLK/2在本发明中,光端机发送端和接收端都需要两种不同的GTX收发器配置,因此也需要配置两种不同的GTX收发器时钟模块。在HD-SDI接收/发送模块中,GTX收发器选择HD-SDI协议,默认为2字节模式(TX_DATA_WIDTH=20)。在HD-SDI接收/发送模块中,GTX收发器TXUSRCLK时钟信号为TXOUTCLK时钟经过BUFG产生的,在该模式下TX_INT_DATAWIDTH信号为‘0’,TXUSRCLK2时钟频率和TXUSRCLK时钟频率一致,可直接用TXUSRCLK2时钟来操作内部并行数据。在顶层GTX收发器中,选择自定义协议,数据内部宽度4个字节。当发送数据位宽为4个字节时,需要MMCM时钟管理器对TXOUTCLK时钟进行预处理。TXOUTCLK时钟输入到MMCM中,产生两个同相时钟信号CLKOUT0和CLKOUT1,然后经过BUFG时钟驱动器输出TXUSRCLK和TXUSRCLK2。由于TX_INT_DATAWIDTH默认为‘1’,所以此时的TXUSRCLK时钟频率等于TXUSRCLK2的时钟频率。MMCM时钟管理器输出的LOCKED信号也可以作为用户的逻辑复位信号。在HD-SDI接收/发送模块中GTX收发器接收端和顶层GTX收发器接收端内部同样运行着两个并行采样时钟,分别为RXUSRCLK和RXUSRCLK2。其中RXUSRCLK为接收端内部物理编码子层的逻辑工作时钟;RXUSRCLK2为接收端内部接口数据的采样时钟。GTX收发器接收端的时钟设计和发送端的时钟最大的不同在于,在接收端可以利用CDR(ClockDataRecovery,时钟数据恢复)技术进行数据和时钟恢复,接收端的时钟可以把恢复时钟作为用户时钟。3、视频同步模块在本发明中,视频的同步模块是为了解决视频数据的跨时钟域问题,确保视频数据能够正确收发,视频的同步模块是本发明的一个重点与难点。本发明中存在多个时钟域,无法对数据进行统一处理,解决跨时钟域问题是FPGA逻辑开发中经常面临的问题。跨时钟域传输数据通常和异步时钟沿的相对时序有关,如果跨时钟域问题得不到妥善解决,可能会出现建立时间冲突或保持时间冲突。正常传递数据时,信号状态为高电平或低电平,若出现时序违例,触发器内部某个节点将处于一个不定的状态,此时的状态被称为亚稳态。亚稳态使得信号在两个时钟域的相邻时钟沿上无法获得相同的状态。解决跨时钟域问题常见的方法有:采用两级寄存器、采用使能信号、采用FPGA片内存储器等。采用两级寄存器的方法是通过寄存器对数据打两拍的方式进行同步,通过两级寄存器的处理,将数据同步到本地时钟或采样时钟。采用两级寄存器的方法只能处理单个异步信号,并且采用两级寄存器的方法时,级联的第二个寄存器的输出仍有可能为非稳定状态。采用使能信号方法是通过边沿采样原理得到输出信号的使能信号,进而根据使能信号来读取输入数据,以此来解决跨时钟域问题。采用使能信号的方法只能解决低频时钟域到高频时钟域的同步问题,不能妥善解决低频时钟域到高频时钟域的跨时钟域问题。采用FPGA片内存储器的方式是利用存储器的双端口读取操作,读时钟和写时钟相互独立,利用片内存储器缓存写入数据,达到数据同步的目的。在处理跨时钟域问题时一般通过FPGA片内存储器的方式解决。视频数据同步模块采用FPGA片内部简化双端口RAM[51]进行数据同步,主要功能是将两路异步的视频数据转换为两路同步数据,便于FPGA统一处理两路视频数据。视频同步模块通过控制RAM的读写地址达到数据缓冲的目的,保障视频数据的正确性。在本发明中光端机接收端和发送端的视频同步模块设计思想一致。视频的同步模块能够保证视频的正确收发,其中同步模块中写时钟和读时钟都为74.25MHz,但两个时钟为异步时钟,存在跨时钟域问题。写时钟为视频接收模块在接收HD-SDI视频信号时根据串行数据恢复出来的时钟;读时钟即本地74.25MHz时钟,为顶层GTX收发器发送端参考时钟经过PLL锁相环分频得到的本地时钟。本模块设计的难点在于对RAM读写地址的操作,由于读写时钟频率差别很小,仅相位存在差别,数据量较小时,不会漏读或多读数据;但当数据量较大时,会造成多读或漏读数据,无法保障视频数据的完整性。本发明视频同步模块中对RAM读写地址的具体设计过程如下:双端口RAM的写地址根据写时钟进行自加操作,通过控制RAM读地址的方式来防止视频有效数据多读或漏读的情况的发生。若RAM的读写时钟完全一致,则读地址根据读时钟进行自加操作,此时读写时钟频率和相位均相同,不会多读或漏读视频有效数据。若RAM的读时钟比写时钟快,则在视频的行消隐区对RAM的读地址进行操作,即将视频行消隐区的SAV序列前某个读地址保持不变,重复读取当前行消隐区数据,然后读地址根据读时钟继续完成地址自加操作;若读时钟比写时钟慢,同样在视频数据的行消隐区对读地址进行操作,即将视频行消隐区的SAV序列前某个读地址直接加2,跳过一个行消隐区数据,然后读地址根据读时钟继续完成地址自加操作。视频同步模块能够确保视频的有效数据完全被同步到本地时钟,解决视频数据的跨时钟域问题。在模块功能仿真之前需要编写视频激励,即根据视频标准协议构造完整的视频时序及数据。本发明根据帧率为25fps、分辨率为1080P视频标准构造视频激励。视频的总的分辨率(HV)为26401125P,视频的有效分辨率为19201080P。其中P表示视频为逐行传输。数据同步模块的仿真分两种情况进行仿真测试。一种情况为视频同步模块的RAM读时钟慢于写时钟;一种为视频同步模块中的RAM读时钟快于写时钟。当读时钟慢于写时钟时,即本地时钟慢于视频恢复时钟。当读时钟慢于写时钟时,在视频的有效区的行消隐区会偶尔重读或少读一个行消隐区数据,但确保了视频时序信息和有效区数据的完整性。其中rxusrclk2为写时钟,local_clk为读时钟。当读时钟快于写时钟时,即本地时钟快于视频恢复时钟,在视频的有效区的行消隐区会偶尔重读或少读一个消隐区数据,但确保了视频时序信息和有效区数据的完整性。4、图像处理模块VEDIOM3(ISSM3)核是专门分离出来负责视频图像数据的采集、处理的图像处理子系统,分别包含降噪处理、白平衡、颜色插值、颜色矩阵转换、Gamma校正图像处理等操作,如图3所示。为了得到更好的图像效果,本发明采用调整流程中的配置参数及改进算法的方式来优化图像质量,改进重点为白平衡处理模块。在发明高清摄像头视频处理系统中,白平衡算法处理流程位于图像的ISP(图像处理)处理流程中的绿平衡校正(GIC)之后及CFA(色彩插值)插值之前,通过对校正后的Bayer格式数据计算根据算法程序处理结果进行适配相应的增益调节算法。本发明白平衡处理流程是专门针对嵌入式处理器资源较为有限的情况下尽量简化算法复杂度,同时对环境光线条件适应性更强的一种处理方法,这种算法结合并吸取了灰度世界、完美反射算法有点及同时增加色温估计的约束条件,并增加了以往白平衡对单色场景的失效问题进行解决。具体算法如下:步骤A:在标准色温箱中,关闭摄像机的白平衡调整功能,分别在2500K-7500K的色温范围内间隔500K的色温光线条件下对标准色卡(colorchecker)色卡中的白色块进行一定次数(如100次)的连续拍照,然后对相应采集区域的R/G和B/G值进行统计,并通过数据处理软件Origin拟合一条R/G和B/G值色温曲线。为排除单色块影响,设定一个判断是否为单色块区域,如下图4所示,其中坐标系中的X轴与Y轴的坐标分别为:Xratio=R/G,Yratio=B/G。设可调参数VarStep,则Xratio、Yratio满足如下区域(公式(2)及公式(3))限制则为单色块的色温图像,根据实际精度需求设定调整参数约束单色区域范围。步骤B:将整幅图像划分为M*N个区域,如表2所示。表2图像均匀分区表M*N12…N-1N2……M-1M…M*N假设每个子区域有m*n个像素点,根据这些点的RGB值计算利用公式(4)对应像素点的亮度值。如表3所示。表3M*N分区子区域表Y1…Yn/3…Yn……………Ym/3…Ym*n/(3*3)…Ym*n/3……………Ym…Ym*n/3…Ym*nYx=0.299*R+0.587*G+0.114*B(4)SUM_Yx(max)=max(SUM_Yx)(X=1...n/3...m*n/3...M*N)(6)根据公式(4)分别求出每个均匀区域的亮度和Y,再用冒泡排序的方式求出最大亮度区域SUM_Ymax,则这个区域就是整幅图像中的“白点”。判断完这个“白点”后再根据前边介绍的色温推断方法查表确定当前光源的色温值,确定好光源色温后统计分区子区域内满足的对应色温条件范围内的R、G、B分量值,基于G分量进行调整根据如下公式(7)(8)计算得到增益调整系数GainR、GainB。其中R′,B′为调整后的像素值如公式(9)所示:针对前边提到的M*N区域划分方式,本发明利用DM8127处理器内部集成了一个硬件H3A模块,可以快速通过内部集成的硬件模块对每帧图像按照类似上述的窗口分割方式进行亮度均值统计。并且通过H3A模块中的函数GETTING_RGB_BLOCK_VALUE即可获得各窗口分割后的R、G、B值及区域亮度值。步骤C:本发明算法运行流程为:首先由VedioM3采集来自Sensor的每一帧Bayer格式数据,利用处理器对内部集成的H3A(自动对焦、自动曝光、自动白平衡)模块配置对每一帧图像进行分块处理,分成M*N个区域然后对区域中的亮度进行均值计算,获得各区域的RGB值(如步骤2所述),首先判断是否为单色块图像,如果为非单色块则利用公式(4)、(5)、(6)找出色块中的“白点”并计算该区域的R/G、B/G的比值,如果该区域为单色块则继续判断是否为预知色块(通过多次实验方式模拟的单色场景,设定好最佳增益调节值),若是预知色块则进行查表得到色温区域值按照预设的增益值调整,否则不进行增益调整。这种根据之前制定的对应色温参考值进行增益参数调整处理单色块的方法,大大提高了以往算法对单色块失效的问题,排除单色块后对“白点”查找并利用其作为参考几点也大大提高了基于灰度理论算法的有效性,同时利用查表的方式可以大大较少减小系统的运算量,因此该算法更加适用于嵌入式设备。步骤D:根据步骤C流程获取到的增益调整参数,然后在白平衡增益调节器数据乘以一个选定的增益(ipipe_wb2_wgn_r,GR,GB,或B对应的寄存器)颜色。白平衡增益可以选择从四个13位值。固件可以分配任何4个像素在水平和垂直方向的组合。5、视频编码模块为了提高编码性能,针对某些监控视频的背景内容在长时间内不变,仅仅是光照发生变化的特点,对背景块进行光照分离,即将实际的背景块像素值分解为实时光照和背景仿射系数的乘积。由于背景的反射系数长期不变,本发明将其编码成长期参考图像,保证码流的任何位置都可以访问到该参考图像。基于该反射系数图,本发明将当前背景块转化为实时光照块。由于实时光照比当前背景像素值具有更强的空间相关性,即更加平滑,当使用帧内编码时可以获得更高的编码性能。本发明视频编码模块的工作流程分为以下几步:步骤A:从某一个摄像头己有的视频数据提取不同时间的多个背景图像。步骤B:基于获得的背景图像提取背景部分的反射系数图。该步骤只进行一次,因而可离线进行。步骤C:对该反射系数图进行高精度、高质量编码存储。对某一帧进行编码前,基于反射系数图,分离出当前编码图像的光照分量。将分离出的光照分量变换到正常像素范围内,缓存备用。步骤D:对当前一帧进行分块编码。每块编码时,先尝试己有的内预测编码模式,获得最优编码模式及相应的率失真代价。之后将图像块替换为上一步存储的光照分量在相同位置的像素值,并调整编码参数,重新使用己有帧内预测编码模式进行编码,获得最优编码模式及相应的率失真代价。步骤E:比较对图像块编码的率失真代价和对光照分量编码的率失真代价,选择具有较小代价的方法作为当前块最终选定的编码方法,在码流中写入标志位指示当前编码块最终选定了何种编码方法。以上所述,仅是本发明的几个实施例,并非对本发明做任何形式的限制,虽然本发明以较佳实施例揭示如上,然而并非用以限制本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案的范围内,利用上述揭示的技术内容做出些许的变动或修饰均等同于等效实施案例,均属于本发明技术方案保护范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1