一种基于SoCFPGA的高动态视频处理系统的制作方法

文档序号:15625486发布日期:2018-10-09 22:52阅读:323来源:国知局

本发明属于数字图像处理技术领域,具体涉及一种基于socfpga的高动态视频处理系统。



背景技术:

随着时代的发展,人们对图像的品质要求也越来越高,光照强度不均情况下,低动态范围(lowdynamicrange,简称ldr)图像具有较小的动态范围,成像往往存在细节损失,而高动态范围(highdynamicrange,简称hdr)图像则具有更大的动态范围,其记录了现实场景中丰富的光影和色彩信息,能够最大化地还原人眼所观察到的真实场景,因此,高动态图像处理技术在影视特效、医学成像、智能监控、卫星遥感等领域拥有巨大的应用价值,越来越多的研究者开始将目光投向高动态成像技术。

现有的通用显示设备只能显示ldr图像,无法直接显示hdr图像,因此,需要将hdr图像进行处理才能呈现在ldr显示设备上,将hdr图像映射到ldr显示设备输出的过程称为色调映射。目前,色调映射的方法大致可以分为全局映射和局部映射。全局映射是指利用同一函数作用于整副图像,呈现图像的整体效果,局部映射是指根据不同区域的动态范围变化情况,采用不同的映射曲线,提高图像的局部对比度,而且,目前的图像处理技术采用的处理器主要有四种,分别是x86架构cpu、dsp、asic专用集成电路和fpga。

然而,采用全局映射局部对比度低,图像的局部细节损失严重,采用局部映射无法保证图像的全局效果,且容易产生光晕,计算复杂度高。而且,就目前图像处理技术采用的处理器中,传统x86架构、dsp等串行结构cpu不能满足快速、实时图像处理算法性能要求,asic专用集成电路开发周期长、成本高、灵活性差,fpga的通用性、灵活性和可控性上都比较差。



技术实现要素:

为了解决现有技术中存在的上述问题,本发明提供了一种基于socfpga的高动态视频处理系统。本发明要解决的技术问题通过以下技术方案实现:

本发明实施例提供了一种基于socfpga的高动态视频处理系统,包括:

图像传感器,用于采集并输出第一视频数据;

socfpga,连接所述图像传感器,用于对所述图像传感器进行配置,接收和处理所述第一视频数据形成第二视频数据,并输出所述第二视频数据;

显示设备,连接所述socfpga,用于接收并显示所述第二视频数据。

在本发明的一个实施例中,所述socfpga包括:

处理器模块,所述处理器模块包括微处理器和存储器,所述微处理器连接所述存储器,所述处理器模块用于输出控制指令;

fpga模块,连接所述图像传感器和所述处理器模块,用于接收所述控制指令,并配置所述图像传感器;

所述fpga模块还用于接收所述第一视频数据,对所述第一视频数据进行预处理和色调映射处理,并输出所述第二视频至所述显示设备。

在本发明的一个实施例中,所述fpga模块包括:

软核,连接所述处理器模块,用于接收所述控制指令,配置所述图像传感器,所述软核还用于接收所述第一视频数据,并输出所述第二视频数据;

控制单元,连接所述软核,用于通过所述软核控制所述图像传感器工作;

信号单元,连接所述控制单元,用于指示所述控制单元的工作状态。

在本发明的一个实施例中,所述控制单元包括控制器和按键子单元,所述控制器连接所述按键子单元,用于控制所述图像传感器工作。

在本发明的一个实施例中,所述信号单元包括led信号灯,连接所述控制单元,用于通过所述led信号灯亮灭状态指示所述控制单元的工作状态。

在本发明的一个实施例中,所述led信号灯为十个。

在本发明的一个实施例中,所述ip核包括:

第一视频采集与预处理单元,连接所述图像传感器,且连接所述控制单元,用于接收所述控制指令,并对所述图像传感器进行配置,以及接收所述图像传感器采集的所述第一视频数据,并进行预处理;

第一视频处理单元,连接所述第一视频采集与预处理单元,用于对预处理后的所述第一视频数据进行处理得到所述第二视频数据,并输出所述第二视频数据;

视频显示单元,连接所述第一视频处理单元,用于接收所述第二视频数据,并完成所述第二视频数据的时钟同步,并输出时钟同步后的所述第二视频至所述显示设备。

在本发明的一个实施例中,所述第一视频采集与预处理单元包括:

控制器子单元,连接所述处理器模块和所述控制单元,用于接收所述控制指令,还用于初始化和配置所述图像传感器、所述信号单元、所述控制单元;

传感器子单元,连接所述控制器子单元和所述图像传感器,用于执行控制指令,根据指令接收所述图像传感器产生的所述第一视频数据,并输出所述第一视频数据;

第一格式转换子单元,连接所述传感器子单元,用于接收所述第一视频数据并将所述第一视频数据转换成rgb格式视频数据。

在本发明的一个实施例中,所述第一视频处理单元包括:

第二格式转换子单元,连接所述第一格式转换子单元,用于将所述rgb格式视频数据转换成yuv格式视频数据,其中,所述yuv格式视频数据包括y通道视频数据,u通道视频数据和v通道视频数据;

色调映射子单元,连接所述第二格式转换子单元,用于将所述y通道视频数据进行色调映射后输出,并将所述u通道视频数据和所述v通道视频数据输出。

在本发明的一个实施例中,所述视频显示单元包括:

第三格式转换子单元,连接所述色调映射子单元,用于将所述u通道视频数据、所述v通道视频数据和色调映射后的所述y通道视频数据转换成rgb色彩空间数据;

缓存子单元,连接所述第三格式转换子单元和所述存储器,用于将所述rgb色彩空间数据缓存至所述存储器,同时,完成所述rgb色彩空间数据与所述显示设备的异步时钟域同步,得到所述第二视频数据,并输出所述第二视频数据;

显示子单元,连接所述缓存子单元,接收所述第二视频数据并输出至所述显示设备。

与现有技术相比,本发明的有益效果:

1)本发明提供的基于socfpga的高动态视频处理系统采用socfpga平台,进一步提高了集成度,发挥了多种芯片的各自优势,并通过规范的总线协议降低芯片间数据交换带来的系统设计难度,加快高动态视频处理解决方案的的设计和验证工作;

2)本发明提供的基于socfpga的高动态视频处理系统的应用软件开发灵活方便,且适用性强,可以与不同的高动态图像采集相机联用,更灵活的使用硬件系统资源,且fpga用于实时图像处理,提高了计算性能和实时性能;

3)本发明提供的基于socfpga的高动态视频处理系统使用ip复用技术,实现了系统硬件接口的用户重定义,有效的提高了系统的设计灵活性和适应性;

4)本发明提供的基于socfpga的高动态视频处理系统中高动态视频处理部分作为总线单元,处于与arm控制平面相独立的数据平面,确保了用户友好性,软硬件协同设计模式,也有利于上层应用与底层硬件设计人员的分工合作;

5)本发明提供的基于socfpga的高动态视频处理系统中动态视频处理是基于引导滤波的色调映射算法实现的,能够保留更多的细节,还能够更好的降低局部映射带来的光晕现象。

附图说明

图1为本发明实施例提供的一种基于socfpga的高动态视频处理系统的系统结构示意图;

图2为本发明实施例提供的一种基于socfpga的高动态视频处理系统的内部结构示意图;

图3为本发明实施例提供的一种基于socfpga的高动态视频处理系统在线性模式工作时采集到的图像;

图4为本发明实施例提供的一种基于socfpga的高动态视频处理系统在高动态范围模式时采集到的图像;

图5为本发明实施例提供的一种基于socfpga的高动态视频处理系统处理后的图像;

图6a-图6d为本发明实施例提供的一种基于socfpga的高动态视频处理系统处理图像时曝光时间由低至高的场景图像。

具体实施方式

下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。

实施例一

请参见图1和图2、图3、图4、图5和图6,图1为本发明实施例提供的一种基于socfpga的高动态视频处理系统的系统结构示意图;图2为本发明实施例提供的一种基于socfpga的高动态视频处理系统的内部结构示意图;图3为本发明实施例提供的一种基于socfpga的高动态视频处理系统在线性模式工作时采集到的图像;图4为本发明实施例提供的一种基于socfpga的高动态视频处理系统在高动态范围模式时采集到的图像;图5为本发明实施例提供的一种基于socfpga的高动态视频处理系统处理后的图像;图6a-图6d为本发明实施例提供的一种基于socfpga的高动态视频处理系统处理图像时曝光时间由低至高的场景图像。本实施例在上述实施例的基础上,进一步对该系统进行详细描述。

soc(systemonchip)称为系统级芯片,也有称片上系统,是指在一块芯片中集成了中央处理单元cpu、数字信号处理单元dsp、逻辑电路、模拟电路等,并可搭载操作系统运行嵌入式软件程序,组成一个完整的系统。fpga(field-programmablegatearray),即现场可编程门阵列,它是在pal、gal、cpld等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(asic)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。高动态视频的像素数据位宽是12位,即用12位二进制来记录像素数据,hdr图像传感器拍摄到的图片为12bit位宽,相当于可以有捕捉到最大111111111111(二进制),也就是4095的值,变化范围是0-4095,所以叫做高动态范围,而我们一般的显示屏,比如电脑显示屏vga,最常见的也是支持8位数据位宽,最大也就是255,变化范围是0-255,所以叫做低动态范围。

优选地,如图1所示,一种基于socfpga的高动态视频处理系统,包括图像传感器、socfpga和显示设备,三者依次连接。该系统运行时,首先,socfpga对图像传感器进行配置,然后,图像传感器采集并输出第一视频数据即给socfpga,进而由socfpga对高动态视频数据进行实时处理,最后输出第二视频数据即处理后的高动态视频数据给显示设备输出显示,其中,第一第一视频数据为图像传感器采集并输出的高动态视频数据,第二视频数据为socfpga处理后输出给显示设备的高动态视频数据。

优选地,如图2所示,socfpga包括了处理器模块和fpga模块,处理器模块为hps(hardprocessorsystem,硬核处理器系统)模块,其中,hps模块包括处理器和存储器,其中处理器为arm处理器,存储器为sdram存储器,hps模块用于输出控制指令,是一个基于arm的硬处理器系统,其包括arm微处理器和sdram存储器,arm微处理器连接sdram存储器,其上挂载linux操作系统,可以加载软件程序对系统的硬件资源进行管理;fpga模块连接图像传感器且通过总线桥连接hps模块,用于接收控制指令,并配置图像传感器;fpga模块还用于接收第一视频数据,对第一视频数据进行预处理和色调映射处理,并输出第二视频至显示设备。fpga模块是用硬件描述语言编写和封装的软核,其中,软核为ip核,用于接收所述控制指令配置所述图像传感器,其挂载在lightweighthps2fpga的axi总线桥与hps模块相连,供arm微处理器和软件程序访问。

优选地,fpga模块包括ip核、控制单元和信号单元,其中,ip核连接hps模块,用于接收控制指令,配置图像传感器,还用于接收第一视频数据,并输出第二视频数据;控制单元,连接ip核,用于通过ip核控制图像传感器工作;信号单元,连接控制单元,用于指示控制单元的工作状态。

优选地,信号单元包括10个led信号灯,分别为led0-led9。控制单元包括控制器和按键子单元,其中,控制器为i2c控制器,按键子单元包括四个分别为key0、key1、key2和key3的按键,和十个分别为sw0-sw9的滑动按键,且十个滑动按键分别与10个led信号灯一一对应连接,即led0连接sw0直至led9连接sw9,并通过led信号灯的亮和灭来表示滑动按键的开和关,当滑动开关为0时,滑动开关为关,对应led信号灯为灭,当滑动开关为1时,滑动开关为开,对应led信号灯为亮;ip核包括高动态视频采集与预处理单元、高动态视频处理单元、视频显示单元。

优选地,控制器子单元为i2ccontrollerip核子单元,传感器子单元为ccdcaptureip核子单元,第一格式转换子单元为raw2rgbip核子单元,第二格式转换子单元为rgb2yuvip核子单元,色调映射子单元为tonemapping色调映射ip核子单元,第三格式转换子单元为yuv2rgbip核子单元,缓存子单元为sdrambufferip核子单元,显示子单元为vgacontrollerip核子单元。

优选地,第一视频采集与预处理单元为高动态视频采集与预处理单元,连接所述图像传感器,且连接所述控制单元,用于完成对图像传感器的状态和控制寄存器配置,设定传感器的曝光、分辨率、工作模式、像素增益等信息,以及对接收所述图像传感器采集的raw格式的高动态视频数据,同时对接收raw格式高动态视频数据进行预处理,得到rgb视频数据,其中,raw格式的高动态视频数据就是指图像传感器将捕捉到的光源信号转化为数字信号的原始数据。高动态视频采集与预处理单元包括i2ccontrollerip核子单元、ccdcaptureip核子单元、raw2rgbip核子单元,其中,i2ccontrollerip核子单元,连接所述hps模块,且连接所述控制单元,用于接收所述控制指令,还用于初始化和配置所述图像传感器、所述信号单元、所述控制单元;ccdcaptureip核子单元,连接i2ccontrollerip核子单元,且连接所述图像传感器,用于执行控制指令,根据指令接收所述图像传感器产生的所述第一视频数据,并输出所述第一视频数据;raw2rgbip核子单元,连接ccdcaptureip核子单元,用于接收所述第一视频数据并将所述第一视频数据转换成rgb格式视频数据。

优选地,第一视频处理单元为高动态视频处理单元,连接所述第一视频采集与预处理单元,用于接收高动态视频采集与预处理单元的rgb视频数据,并对其进行色域空间转换得到yuv视频数据,然后对yuv视频数据进行基于引导滤波的色调映射算法处理。其包括rgb2yuvip核子单元,tonemapping色调映射ip核子单元,其中,rgb2yuvip核子单元,连接raw2rgbip核子单元,用于将所述rgb格式视频数据转换成yuv格式视频数据,其中,所述yuv格式视频数据包括y通道视频数据,u通道视频数据和v通道视频数据;tonemapping色调映射ip核子单元,连接rgb2yuvip核子单元,用于将所述y通道视频数据进行色调映射后输出,并将所述u通道视频数据和所述v通道视频数据输出。

优选地,视频显示单元,连接所述第一视频处理单元,用于完成将色调映射算法处理后的yuv视频数据进行色域空间转换为rgb视频数据,最后,缓存以及完成与显示设备的异步时钟域同步后,输出至ldr显示屏上,其包括yuv2rgbip核子单元、sdrambufferip核子单元,和vgacontrollerip核子单元,其中,yuv2rgbip核子单元,连接tonemapping色调映射ip核子单元,用于将所述u通道视频数据、所述v通道视频数据和色调映射后的所述y通道视频数据转换成rgb色彩空间数据;sdrambufferip核子单元,连接yuv2rgbip核子单元和sdram存储器,用于将所述rgb色彩空间数据缓存至所述sdram存储器,同时,完成所述rgb色彩空间数据与所述显示设备的异步时钟域同步,得到所述第二视频数据,并输出所述第二视频数据;vgacontrollerip核子单元,连接sdrambufferip核子单元,接收所述第二视频数据并输出至所述显示设备。

优选地,该系统的具体工作步骤为:

步骤1、在高动态视频采集与预处理单元中,hps模块端的软件程序通过lightweighthps2fpga的axi总线桥调用i2ccontrollerip核子单元,通过i2ccontrollerip核子单元向图像传感器的状态和控制寄存器写入工作状态数据,完成初始化工作,即配置图像传感器的图像分辨率、工作模式、曝光时间、感光模拟和数字增益等。其中,图像传感器为摄像头,显示设备为显示器。首先,通过hps模块的软件程序开始检测socfpga上信号单元和控制单元的按键和滑动按键的状态,若检测到key0键被按下后,则进行系统复位操作;若key3键被按下后,则表示系统开始接收来自摄像头的数据,显示器实时显示摄像头采集到的场景;若key2键被按下后,则表示系统停止接收摄像头产生的数据,显示器显示key2键被按下前那一帧图像数据,相当于暂停功能,再次按下key2键,系统再次开始接受来自摄像头的数据;sw0为0的时,按下key1键会减少摄像头曝光时间,sw0为1时,按下key1键会增大摄像头曝光时间;sw9为0时,摄像头工作在正常模式,sw9为1时,摄像头工作在高动态模式。ccdcaptureip核子单元捕捉来自图像传感器产生的视频数据并传输至raw2rgbip核子单元,raw2rgbip核子单元将接收的raw格式数据转换成rgb格式数据。剩下的sw2-sw8可以与key按键组合使用预留作功能拓展,供用户灵活使用。

步骤2、在高动态视频处理单元中,rgb2yuvip核子单元将步骤1中raw2rgbip核子单元得到的rgb格式数据转换成yuv格式数据,其中,yuv格式视频数据包括y通道视频数据,u通道视频数据和v通道视频数据。tonemapping色调映射ip核子单元将y通道亮度数据进行基于引导滤波的色调映射,并将结果和u、v通道的视频数据输出至yuv2rgbip核子单元转换成rgb色彩空间视频数据。

步骤3、在视频显示单元中,通过sdrambufferip核子单元将yuv2rgbip核子单元的rgb视频数据缓存,完成rgb视频数据和显示设备之间的异步时钟域同步问题,然后输出至vgacontrollerip核子单元,通过vgacontrollerip核子单元将rgb格式视频数据输出至显示设备上成像。

优选地,在配置socfpga时使用qsys集成开发工具,qsys集成开发工具很好地简化了系统所需硬件资源的配置,节省时间提高效率。其图形化的界面支持多种ip核的互联并且可以自动地建立仿真模型,在建立系统时,根据系统的需求从左侧的ipcatalog窗口中选择需要的组件直接拖到系统中。然后将系统时钟、系统复位、中断优先级、数据流等信号进行正确连接,同时在export选项对系统的输入输出信号进行设置,以及在addressmap选项设置系统内存映射地址,从而确保与系统其他部分的映射一致,其中,视频数据从ccdcaptureip核子单元输入,然后以avalon-st接口协议依次传递至raw2rgbip核子单元、rgb2yuvip核子单元、tonemapping色调映射ip核子单元、yuv2rgbip核子单元、sdrambufferip核子单元、vgacontrollerip核子单元,最后通过vgacontrollerip核子单元的外部接口vga输出。其中hps模块以avalon-mm接口访问i2c控制器,通过其输入输出的i2c串口完成图像传感器的寄存器配置,同时hps模块可以通过中断接口和内存地址读写寄存器的方式完成摄像头对场景曝光的自适应功能。

优选地,ip核通过lightweighthps2fpga的axi总线桥连接hps模块,便获得了在hps模块的axi总线上的物理地址空间,ip核上的各单元及子单元都分配一物理基地址供arm微处理器访问。而linux应用的软件程序并不能直接访问这个物理基地址,需要将这个物理基地址映射到虚拟地址上。利用linux操作系统内建的内存映射系统命令“mmap”可将外设的物理基地址映射到虚拟地址上,这样linux应用的软件程序便可直接通过这个虚拟地址访问ip核。

优选地,将外设物理地址映射到虚拟地址上分三步:一、利用linux系统内建的open函数打开内存映射设备驱动;二、通过linux系统调用函数将物理基地址映射到内存映射设备的虚拟地址上;三、通过虚拟地址加上外设各寄存器的偏移地址访问外设中控制寄存器和状态寄存器。

优选地,图像传感器可以配置成两种模式,分别为线性模式和高动态范围模式,两种模式下图像分辨率均为1280*960。保持sw9为0下滑状态不变,则系统工作为线性模式,采集到的图像如图3所示;将sw9往上滑,使其为1,则系统为高动态范围模式,采集到的图像如图4所示。仔细观察图3和图4,可以发现在线性模式下,看不清窗外场景,这是由于窗外场景亮度较大而导致过曝光。而在高动态范围模式下,可以看清窗外场景,但室内场景却过暗,这是由于采取截断映射所致,即将位宽为12位的高动态范围图像取其位宽的高8位进行显示,这样会将灰度值较小的像素值截断为零,而在显示器上呈现一片黑色,对比下,如图5所示,使用本发明所述基于引导滤波的色调映射算法将位宽为12位的高动态范围图像压缩至位宽8位时,既可以看清窗外高强光场景,也可看清室内弱光场景,图像的整体对比度高,并且亮区和暗区的细节边缘处并明显无光晕现象产生。

优选地,进行曝光控制验证时,保持sw0为0下滑状态不变,每当按下key1键时,显示设备中的图像会变暗一次,直至屏幕全黑,这是由于key1键按下时会减少曝光时间而使图像变暗;将sw0向上滑至1,每当按下key1键时,显示设备图像会逐渐变亮直至全白,这是由于此时按下key1键时会增加曝光时间,而导致图像变亮。图6a-图6d显示了曝光时间由低至高的场景图像。从而可以验证arm微处理器可以正确接收按键和滑动按键的变化,从而控制曝光寄存器中的数值。

本实施例采用socpga平台,进一步提高了集成度,发挥了多种芯片的各自优势,并通过规范的总线协议极大的降低芯片间数据交换带来的系统设计难度,hps部分用于控制高动态视频获取和传输,软件程序开发灵活方便且适用性强,可以与不同的高动态图像采集相机联用,通过软硬件协同设计更灵活的使用硬件系统资源。fpga用于实时图像处理,有效提高计算性能和实时性能。该系统是基于引导滤波的色调映射算法实现的,能够保留更多细节,还能够更好的降低局部映射带来的光晕现象,并通过规范的总线协议极大的降低了系统设计难度,加快高动态视频处理解决方案的设计和验证工作,开发灵活,难度低,实现高动态视频处理系统的实时化和小型化,提高了普适性和专用性。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

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