首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

实时图像处理中Hamilton自适应插值的FPGA实现方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:中国科学院西安光学精密机械研究所

摘要:为了在硬件逻辑上实现Hamilton自适应插值算法,以对Bayer图像做高质量的彩色重建,本发明提供了一种实时图像处理中Hamilton自适应插值的FPGA实现方法。本发明利用6个行RAM对原始Bayer数据循环缓冲,利用2路G分量恢复并行运算,3路R、B分量并行运算、流水线处理,数据同步等方法,在FPGA上实现了Hamilton自适应插值算法,能够实现高分辨率最大支持4K*4K分辨率视频流实时处理,得到较高质量的图像,图像恢复处理效果优于传统的线性插值算法,并且在消耗逻辑资源和最大工作频率上都有很大余量。

主权项:1.实时图像处理中Hamilton自适应插值的FPGA实现方法,其特征在于,包括以下步骤:1利用6个行RAM对原始Bayer数据进行循环缓冲并发送;2G分量恢复运算分配引擎:2.1基于Hamilton自适应插值算法构建至少两个用于恢复G分量的运算模块;2.2在步骤1进行时,持续接收原始Bayer数据,当接收的数据每达到5×5模块数据时,判断5×5模块数据的中心点数据是否是G数据,如果不是G数据,则将当前5×5模块数据送入当前空闲的所述运算模块中;如果是G数据,则保留原始Bayer数据的G分量;3G分量恢复运算:利用步骤2构建的两个运算模块并行进行实时运算,利用当前5×5模块数据恢复模块中心位置的G分量;4将已恢复的G分量数据和原始Bayer数据中的G分量数据,循环缓冲存入4个GREEN_RAM中并发送;5将步骤4发送的G分量数据和步骤1中原始Bayer数据中的R、B分量数据进行同步,即将步骤4发送的G分量数据与原始Bayer数据流中对应像素位置的RB同步后输出;6R、B分量恢复运算分配引擎:6.1基于Hamilton自适应插值算法构建第一恢复运算模块、第二恢复运算模块和第三恢复运算模块,所述第一恢复运算模块用于恢复RB分量;第二恢复运算模块和第三恢复运算模块分别用于恢复R分量和B分量;6.2接收经步骤5同步后的数据,当接收的数据每达到3×3模块数据时,判断中心点分量,若中心点分量为RG时,将当前3×3模块数据送入所述第一恢复运算模块;若中心点分量为G时,将当前3×3模块数据同时送入所述第二恢复运算模块和第三恢复运算模块;若中心点分量为BG时,将当前3×3模块数据送入所述第一恢复运算模块;7R、B分量恢复运算:利用第一、二、三恢复运算模块并行进行实时运算,恢复所有当前3×3模块数据中的中心数据,即恢复R和或B分量;8将恢复后数据送入RGB输出模块;9在帧行有效信号的同步下,RGB输出模块逐行逐个像素同步输出已恢复R、G、B数据。

全文数据:实时图像处理中Hamilton自适应插值的FPGA实现方法技术领域本发明属于实时图像处理技术领域,涉及Bayer图像插值的FPGA实现方法。背景技术单CCD或CMOS彩色图像传感器是在其表面覆盖彩色滤波阵列ColorFilterArray而成,这样采集的图像为Bayer图像,每一像素只有R、G、B中的一种分量,需要利用去马赛克算法进行Bayer图像插值计算,将每一像素恢复成完整的RGB三分量数据,最终获得一张高质量图像。现有的去马赛克算法大体分为两类:第一类是以经典的双线性插值为代表的线性插值,这种算法容易造成边缘信息的丢失和模糊,在硬件的角度可以提高吞吐率,但恢复的图像主观视觉较差,容易产生锯齿效应。第二类是以Hamilton和Kimmel代表的引入方向算子的边缘检测插值,引入边缘检测先恢复绿色分量,再恢复红蓝,重建图像质量得到较大提高,但在边缘紧密或纹理细致的区域存在彩色摩尔条纹,同时由于其相对复杂且恢复图像流程不符合硬件逻辑的实时处理,因此不易硬件实现。发明内容为了在硬件逻辑上实现Hamilton自适应插值算法,以对Bayer图像做高质量的彩色重建,本发明提供了一种实时图像处理中Hamilton自适应插值的FPGA实现方法。本发明技术方案是:实时图像处理中Hamilton自适应插值的FPGA实现方法,其特殊之处在于,包括以下步骤:1利用6个行RAM对原始Bayer数据进行循环缓冲并发送;2G分量恢复运算分配引擎:2.1基于Hamilton自适应插值算法构建至少两个用于恢复G分量的运算模块;2.2在步骤1进行时,持续接收原始Bayer数据,当接收的数据每达到5×5模块数据时,判断5×5模块数据的中心点数据是否是G数据,如果不是G数据,则将当前5×5模块数据送入当前空闲的所述运算模块中;如果是G数据,则保留原始Bayer数据的G分量;3G分量恢复运算:利用步骤2构建的两个运算模块并行进行实时运算,利用当前5×5模块数据恢复5×5模块数据中心位置的G分量,进而恢复所有G分量;4将已恢复的G分量数据和原始Bayer数据中的G分量数据,循环缓冲存入4个GREEN_RAM中并发送;5将步骤4发送的G分量数据和步骤1中原始Bayer数据中的R、B分量数据进行同步,即将步骤4发送的G分量数据与原始Bayer数据流中对应像素位置的RB同步后输出;6R、B分量恢复运算分配引擎:6.1基于Hamilton自适应插值算法构建第一恢复运算模块、第二恢复运算模块和第三恢复运算模块,所述第一恢复运算模块用于恢复RB分量;第二恢复运算模块和第三恢复运算模块分别用于恢复R分量和B分量;6.2接收经步骤5同步后的数据,当接收的数据每达到3×3模块数据时,判断中心点分量,若中心点分量为RG时,将当前3×3模块数据送入所述第一恢复运算模块;若中心点分量为G时,将当前3×3模块数据同时送入所述第二恢复运算模块和第三恢复运算模块;若中心点分量为BG时,将当前3×3模块数据送入所述第一恢复运算模块;7R、B分量恢复运算:利用第一、二、三恢复运算模块并行进行实时运算,恢复所有当前3×3模块数据中的中心数据,恢复R和或B分量;8将恢复后数据送入RGB输出模块;9在帧行有效信号的同步下,RGB输出模块逐行逐个像素同步输出已恢复R、G、B数据。进一步地,所述步骤1具体为:1.1依次接收第1-5行数据,分别放入行RAM1-行RAM5中;1.2利用行RAM6接收第6行数据:当接收第1个像素时,依次将行RAM1-行RAM5中的地址为0的5个像素并行发送;当接收第2个像素时,依次将行RAM1-行RAM5中的地址为1的5个像素并行发送;以此类推;当接收第i个像素时,依次将行RAM1-行RAM5中的地址为i-1的5个像素并行发送;1.3利用行RAM1接收第7行数据:当接收第1个像素时,依次将行RAM2-行RAM6中的地址为0的5个像素并行发送;当接收第2个像素时,依次将行RAM2-行RAM6中的地址为1的5个像素并行发送;以此类推;当接收第i个像素时,依次将行RAM2-行RAM6中的地址为i-1的5个像素并行发送;1.4利用行RAM2接收第8行数据:当接收第1个像素时,依次将行RAM3-行RAM6、行RAM1中的地址为0的5个像素并行发送;当接收第2个像素时,依次将行RAM3-行RAM6、行RAM1中的地址为1的5个像素并行发送;以此类推;当接收第i个像素时,依次将行RAM3-行RAM6、行RAM1中的地址为i-1的5个像素并行发送;1.5按照1.2-1.4的方法,循环缓冲原始Bayer数据,并发送;所述i为原始图像每一行的像素个数。进一步地,所述步骤4具体为:4.1依次接收第1-3行G分量数据,分别存入GREEN_RAM1-GREEN_RAM3中;4.2利用GREEN_RAM4接收第4行G分量数据:当接收第1个像素时,将GREEN_RAM1-GREEN_RAM3中地址为0的3个像素并行发送;当接收第2个像素时,将GREEN_RAM1-GREEN_RAM3中地址为1的3个像素并行发送;以此类推;当接收第i个像素时,将GREEN_RAM1-GREEN_RAM3中地址为i-1的3个像素并行发送;4.3利用GREEN_RAM1接收第5行G分量数据:当接收第1个像素时,将GREEN_RAM2-GREEN_RAM4中地址为0的3个像素并行发送;当接收第2个像素时,将GREEN_RAM2-GREEN_RAM4中地址为1的3个像素并行发送;以此类推;当接收第i个像素时,将GREEN_RAM2-GREEN_RAM4中地址为i-1的3个像素并行发送;4.4利用GREEN_RAM2接收第6行G分量数据:当接收第1个像素时,将GREEN_RAM3-GREEN_RAM4、GREEN_RAM1中地址为0的3个像素并行发送;当接收第2个像素时,依次将GREEN_RAM3-GREEN_RAM4、GREEN_RAM1中地址为1的3个像素并行发送;以此类推;当接收第i个像素时,依次将GREEN_RAM3-GREEN_RAM4、GREEN_RAM1中的地址为i-1的3个像素并行发送;4.5按照4.2-4.4的方法,循环缓冲G分量数据,并发送。本发明的有益效果是:本发明利用6个行RAM对原始Bayer数据循环缓冲,利用2路G分量恢复模块并行运算,3路R、B分量恢复模块并行运算、流水线处理,数据流同步等方法,在FPGA上实现了Hamilton自适应插值算法,能够实现高分辨率最大支持4K*4K分辨率视频流实时处理,得到较高质量的图像,图像恢复处理效果优于传统的线性插值算法,并且在消耗逻辑资源和最大工作频率上都有很大余量。本发明使用CMV4000探测器做了实验验证,实现了2048*2048@25fps高清彩色图像实时输出,取得了较低的资源开销和较高的图像质量,颜色峰值信噪比CPSNR30dB。附图说明图1是R分量为中心计算位置;图2是G分量恢复数据流;图3是G分量为中心计算位置;图4是R、B分量恢复数据流;图5是不同算法双线性插值和本发明算法处理静态图像效果比较;图6是不同算法双线性插值和本发明算法处理实时图像效果比较。具体实施方式以下结合附图1-6对本发明作进一步说明。本发明是基于Hamilton自适应插值算法理论,采用FPGA硬件实现此理论的算法,包括以下步骤:步骤一,G分量恢复;在Bayer图像中,由于绿色像素点的数量是红色或蓝色像素数量的两倍,故绿色像素点包含更多的原始图像的边缘信息,因此Hamilton自适应插值算法首先从水平和垂直两个方向对绿色分量进行插值重建,由亮度信号的梯度和色度信号的二阶微分构成边缘检测算子,沿边缘检测算子指示的正确方向进行绿色分量插值,以下以图1中心位置Ri,j处的G分量恢复为例说明绿色分量插值恢复过程:中心点Ri,j处水平梯度ΔH:ΔH=|Gi,j-1-Gi,j+1|+|2Ri,j-Ri,j-2-Ri,j+2|1中心点Ri,j处垂直梯度ΔV:ΔV=|Gi-1,j-Gi+1,j|+|2Ri,j-Ri-2,j-Ri+2,j|2水平方向绿色恢复GH:垂直方向绿色恢复GV:绿色恢复GREC:Hamilton自适应插值算法的思想是先恢复绿色通道后恢复红蓝通道,若完全由上位机软件事后处理,则可以先恢复得到绿色图像,后根据颜色空间梯度完成对应色彩的恢复。但实时图像处理中需对视频流做实时插值,数据缓冲存储空间不大,处理速度要求高,因此,本发明采用数据流循环缓冲及并行恢复运算的方式实现实时插值。参见图2,恢复G分量具体方法为:第1步,将原始Bayer数据例如RGRG…,GBGB…,RGRG…,GBGB…,…逐行送入循环缓冲队列中,采用6行循环缓冲的方式实现原始Bayer数据流的缓冲,当缓冲到第6行数据流时,把前5行5列数据打包成5×5的模块送入到当前空闲的用于G分量恢复的运算模块中进行运算。第2步,判断5×5的模块数据的中心点数据是否是G数据,如果不是G数据,则对G分量采用两路并行恢复运算的方式进行恢复;如果是G数据,则保留原始Bayer数据流中的G分量不作任何处理。由于原始Bayer数据流中每隔1个像素就有1个G分量要恢复,而恢复1个像素需要3个时钟周期,故至少需要两路并行恢复运算才能满足G分量的实时恢复。考虑到系统资源开销,优选两路。第3步,将已恢复的G分量和原始Bayer数据中的G分量数据按原像素顺序循环送入4个GREEN_RAM中循环缓冲保存并发送,后续可用于R、B分量恢复。第二步,R、B分量恢复;使用已恢复好的绿色分量数据恢复红色和蓝色分量,采用红绿色差空间或蓝绿色差空间的线性插值来完成R、B分量恢复,恢复流程参见图4。恢复R红色和B蓝色需要GREEN_RAM中的绿色数据和此像素位置处的原始分量数据原始Bayer数据,将GREEN_RAM发送的G分量数据和原始Bayer数据中的RB进行同步、合并,即将G分量数据放入原始Bayer数据中相应的R、B、G对应的像素位置后输出,具体的做法是:若某一个G分量Gi是由Rj恢复得到的,则将Gi放入Rj对应的像素位置,该像素位置此时就有Gi、Rj两种分量;若某一个G分量Gm是原始Bayer数据,则将Gm放入其在原始Bayer数据中对应的像素位置,该像素位置此时就只有Gm一种分量。接收同步后的数据,当接收到的数据每达到3×3模块数据时,将3×3模块数据送入3路并行的运算模块进行恢复处理,具体的:判断中心点分量,若中心点分量为RG时,将当前3×3模块数据送入第一恢复运算模块;若中心点分量为G时,将当前3×3模块数据同时送入第二恢复运算模块和第三恢复运算模块;若中心点分量为BG时,将当前3×3模块数据送入第一恢复运算模块;上述第一恢复运算模块、第二恢复运算模块和第三恢复运算模块均是基于Hamilton自适应插值算法构建的,第一恢复运算模块用于恢复RB分量;第二恢复运算模块和第三恢复运算模块分别用于恢复R分量和B分量。下面以图1中心点Ri,j处B分量恢复和图3中心点Gi,j处B分量恢复为例,说明蓝色分量插值恢复过程。1参见图1,中心点Ri,j位置处B分量恢复:中心点Ri,j处45°梯度ΔD45:中心点Ri,j处135°梯度ΔD135:45°方向B恢复BREC45:135°方向B恢复BREC135:中心位置Ri,j处蓝色恢复BREC:2参见图3,中心点Gi,j位置处B分量恢复:第三步,R、G、B同步输出;将上述两步恢复后数据送入RGB输出模块,在帧行有效信号的同步下,RGB输出模块逐行逐个像素同步输出已恢复R、G、B数据。技术效果对比验证:如图5、6所示,分别为利用本发明与双线性插值处理静态图像和实时图像的效果对比。图5中第一行是双线性插值恢复的图像,第二行是Hamilton自适应插值恢复的图像,第三行是原始图像;图5中这三行图像是静态图像对比,即通过算法来处理图像而非实时硬件处理。实现过程是:先把原始图像拆解成Bayer数据,之后分别通过双线性插值和Hamilton自适应插值进行图像恢复。比较第一行和第二行两种插值的恢复效果可见:第一行指纹上和头巾上相比第二行有明显的伪彩色,且第一行头巾和椅背格子相比第二行明显模糊。通过图5可见Hamilton自适应插值恢复的图像更接近第三行的原图,即它有较小的伪彩色和较清晰的边缘恢复。图6是双线性插值算法和Hamilton自适应插值算法在硬件实现后,分别对图像进行实时采样得到的两幅图像,即动态图像对比。图6中第一列是双线性插值算法采集的图像,第二列是Hamilton自适应插值算法采集的图像。第一列图像相比第二列图像图像噪点较多,边缘不够锐利;第二列图像整体比较干净,边缘比较清晰。表1展示了图5中两种不同处理算法的各通道颜色峰值信噪比CPSNR。可见Hamilton自适应插值算法比双线性插值算法的峰值信噪比大了近10dB。表2为利用本发明实现Hamilton自适应插值算法的资源消耗情况,可见本发明的实现方法资源消耗较少,适合工程应用。表1表2注:本次对比试验中Bayer图像大小为2048*2048@25fps,数据为10bit。硬件均选用Xilinx的FPGA芯片4vsx55ff1148-12。

权利要求:1.实时图像处理中Hamilton自适应插值的FPGA实现方法,其特征在于,包括以下步骤:1利用6个行RAM对原始Bayer数据进行循环缓冲并发送;2G分量恢复运算分配引擎:2.1基于Hamilton自适应插值算法构建至少两个用于恢复G分量的运算模块;2.2在步骤1进行时,持续接收原始Bayer数据,当接收的数据每达到5×5模块数据时,判断5×5模块数据的中心点数据是否是G数据,如果不是G数据,则将当前5×5模块数据送入当前空闲的所述运算模块中;如果是G数据,则保留原始Bayer数据的G分量;3G分量恢复运算:利用步骤2构建的两个运算模块并行进行实时运算,利用当前5×5模块数据恢复模块中心位置的G分量;4将已恢复的G分量数据和原始Bayer数据中的G分量数据,循环缓冲存入4个GREEN_RAM中并发送;5将步骤4发送的G分量数据和步骤1中原始Bayer数据中的R、B分量数据进行同步,即将步骤4发送的G分量数据与原始Bayer数据流中对应像素位置的RB同步后输出;6R、B分量恢复运算分配引擎:6.1基于Hamilton自适应插值算法构建第一恢复运算模块、第二恢复运算模块和第三恢复运算模块,所述第一恢复运算模块用于恢复RB分量;第二恢复运算模块和第三恢复运算模块分别用于恢复R分量和B分量;6.2接收经步骤5同步后的数据,当接收的数据每达到3×3模块数据时,判断中心点分量,若中心点分量为RG时,将当前3×3模块数据送入所述第一恢复运算模块;若中心点分量为G时,将当前3×3模块数据同时送入所述第二恢复运算模块和第三恢复运算模块;若中心点分量为BG时,将当前3×3模块数据送入所述第一恢复运算模块;7R、B分量恢复运算:利用第一、二、三恢复运算模块并行进行实时运算,恢复所有当前3×3模块数据中的中心数据,即恢复R和或B分量;8将恢复后数据送入RGB输出模块;9在帧行有效信号的同步下,RGB输出模块逐行逐个像素同步输出已恢复R、G、B数据。2.根据权利要求1所述的实时图像处理中Hamilton自适应插值的FPGA实现方法,其特征在于,所述步骤1具体为:1.1依次接收第1-5行数据,分别放入行RAM1-行RAM5中;1.2利用行RAM6接收第6行数据:当接收第1个像素时,依次将行RAM1-行RAM5中的地址为0的5个像素并行发送;当接收第2个像素时,依次将行RAM1-行RAM5中的地址为1的5个像素并行发送;以此类推;当接收第i个像素时,依次将行RAM1-行RAM5中的地址为i-1的5个像素并行发送;1.3利用行RAM1接收第7行数据:当接收第1个像素时,依次将行RAM2-行RAM6中的地址为0的5个像素并行发送;当接收第2个像素时,依次将行RAM2-行RAM6中的地址为1的5个像素并行发送;以此类推;当接收第i个像素时,依次将行RAM2-行RAM6中的地址为i-1的5个像素并行发送;1.4利用行RAM2接收第8行数据:当接收第1个像素时,依次将行RAM3-行RAM6、行RAM1中的地址为0的5个像素并行发送;当接收第2个像素时,依次将行RAM3-行RAM6、行RAM1中的地址为1的5个像素并行发送;以此类推;当接收第i个像素时,依次将行RAM3-行RAM6、行RAM1中的地址为i-1的5个像素并行发送;1.5按照1.2-1.4的方法,循环缓冲原始Bayer数据,并发送;所述i为原始图像每一行的像素个数。3.根据权利要求1所述的实时图像处理中Hamilton自适应插值的FPGA实现方法,其特征在于,所述步骤4具体为:4.1依次接收第1-3行G分量数据,分别存入GREEN_RAM1-GREEN_RAM3中;4.2利用GREEN_RAM4接收第4行G分量数据:当接收第1个像素时,将GREEN_RAM1-GREEN_RAM3中地址为0的3个像素并行发送;当接收第2个像素时,将GREEN_RAM1-GREEN_RAM3中地址为1的3个像素并行发送;以此类推;当接收第i个像素时,将GREEN_RAM1-GREEN_RAM3中地址为i-1的3个像素并行发送;4.3利用GREEN_RAM1接收第5行G分量数据:当接收第1个像素时,将GREEN_RAM2-GREEN_RAM4中地址为0的3个像素并行发送;当接收第2个像素时,将GREEN_RAM2-GREEN_RAM4中地址为1的3个像素并行发送;以此类推;当接收第i个像素时,将GREEN_RAM2-GREEN_RAM4中地址为i-1的3个像素并行发送;4.4利用GREEN_RAM2接收第6行G分量数据:当接收第1个像素时,将GREEN_RAM3-GREEN_RAM4、GREEN_RAM1中地址为0的3个像素并行发送;当接收第2个像素时,依次将GREEN_RAM3-GREEN_RAM4、GREEN_RAM1中地址为1的3个像素并行发送;以此类推;当接收第i个像素时,依次将GREEN_RAM3-GREEN_RAM4、GREEN_RAM1中的地址为i-1的3个像素并行发送;4.5按照4.2-4.4的方法,循环缓冲G分量数据,并发送。

百度查询: 中国科学院西安光学精密机械研究所 实时图像处理中Hamilton自适应插值的FPGA实现方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。