CN108492257A - 基于异构平台的双线性插值去马赛克算法的OpenCL加速方法 - Google Patents

基于异构平台的双线性插值去马赛克算法的OpenCL加速方法 Download PDF

Info

Publication number
CN108492257A
CN108492257A CN201810443097.1A CN201810443097A CN108492257A CN 108492257 A CN108492257 A CN 108492257A CN 201810443097 A CN201810443097 A CN 201810443097A CN 108492257 A CN108492257 A CN 108492257A
Authority
CN
China
Prior art keywords
gpu
demosaicing algorithms
filter coefficient
opencl
centered
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810443097.1A
Other languages
English (en)
Inventor
郭炜
王通礼
魏继增
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin University
Original Assignee
Tianjin University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianjin University filed Critical Tianjin University
Priority to CN201810443097.1A priority Critical patent/CN108492257A/zh
Publication of CN108492257A publication Critical patent/CN108492257A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4015Image demosaicing, e.g. colour filter arrays [CFA] or Bayer patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Abstract

一种基于异构平台的双线性插值去马赛克算法的OpenCL加速方法,是在英特尔HD4600GPU上运行,包括:将自适应插值去马赛克算法中的滤波器改为一个滤波器系数矩阵;将原始的一维Bayer格式图像数据读入到CPU主机内存中,经过零拷贝处理,使图像数据映射到GPU的全局内存中;对运行自适应插值去马赛克算法的GPU中每个工作节点进行任务分配;在GPU中运行自适应插值去马赛克算法;将GPU的全局内存中的计算结果再通过零拷贝传回到CPU主机内存中,得出彩色图片和运算时间。本发明优化了GPU和多核CPU全局存储访问方式和GPU本地存储的分布;利用向量数据类型来提高访问带宽;修改去马赛克算法,实现了适用GPU硬件架构的并行化。

Description

基于异构平台的双线性插值去马赛克算法的OpenCL加速方法
技术领域
本发明涉及一种OpenCL加速方法。特别是涉及一种基于异构平台的双线性插值去马赛克算法的OpenCL加速方法。
背景技术
随着二十一世纪信息化、数字化、网络化及智能化社会的来临,与图像相关的运用也越来越广泛。单片CMOS或CCD图像传感器可将光学影像转为数字信号,广泛地应用于数码相机、手机、平板电脑等电子设备中。其每个感光单元仅仅可捕获一种特定波长的光,例如红(R)、绿(G)、蓝(B)中的一种,即其捕获的图像为非全彩色图像.通过将彩色滤波阵列(Color Filter Array,CFA)加在图像传感器上,使得单片CMOS或CCD图像传感器阵列上的每个点感光出不同的颜色,从而获得特定格式的图像,每个点丢失的其他两种颜色分量需要后期插值来重建以获得完整的全彩色图像,该重建插值的过程即去马赛克(Demosaicing)。Bayer滤波器是一种常见的彩色滤波阵列。
随着Bayer格式颜色滤波阵列(CFA)在数码相机中越来越广泛的应用,Bayer格式图像的彩色还原算法研究及算法的硬件实现就成了数码相机的关键技术。现有的去马赛克算法可以分为两大类,一是非自适应的插值法,如双线性插值算法和三次样条插值,二是利用相关性的插值算法。本发明所采用的是双线性插值算法,它可以在图像的平滑区域得到高质量的效果,并进行修改算法实现在异构平台上高效地执行。
在计算机技术的早期阶段,图形处理和计算都比较简单,我们可以使用中央处理器(CPU)来实现图形处理。但随着计算机技术的发展,特别是对图形处理质量和运算速度的要求不断提高,这就需要找到新的途径来满足日益增长的计算需求。
如今的并行计算机并不像前些年那样昂贵并且得到了很好的普及,几乎现在生产的所有计算机都具有多核硬件。基本上,多核硬件主要有两种实现多核的方式:将一些内核集成到单个微处理器(多核CPU)中,或者将大量内核集成到当前的图形处理单元(GPU)中。GPU最初是专门为光栅化过程中所需的图形应用和图像渲染而设计的。随着时间的推移,现代图形处理单元的计算资源变得适合于某些通用的并行计算,因为GPU的体系结构具有内在的并行处理能力。通过启动多个执行线程,我们可以利用所有这些多核硬件。因此,CPU和GPU的异构计算成为高性能计算的主流平台,与多核处理器相比,在计算效率和性能方面具有很大优势,并且已经通过多种算法的并行化得到了很好的验证。
发明内容
本发明所要解决的技术问题是,提供一种通过GPU加速实现图像快速处理的基于异构平台的双线性插值去马赛克算法的OpenCL加速方法。
本发明所采用的技术方案是:一种基于异构平台的双线性插值去马赛克算法的OpenCL加速方法,是在英特尔HD4600GPU上运行,包括如下步骤:
1)将自适应插值去马赛克算法中的滤波器改为一个滤波器系数矩阵;
2)将原始的一维Bayer格式图像数据读入到CPU主机内存中,经过零拷贝处理,使图像数据映射到GPU的全局内存中;
3)对运行自适应插值去马赛克算法的GPU中每个工作节点进行任务分配;
4)在GPU中运行自适应插值去马赛克算法;
5)将GPU的全局内存中的计算结果再通过零拷贝传回到CPU主机内存中,得出彩色图片和运算时间。
步骤1)包括:
设定在以坐标点x,y处的源像素点为中心匹配滤波器系数的位置为:A0(x,y-2),A1(x,y+2),B0(x,y-1),B1(x,y+1),C(x,y),D0(x-1,y-1),D1(x+1,y-1),D2(x-1,y+1),D3(x+1,y+1),E0(x-2,y),E1(x+2,y),F0(x-1,y),F1(x+1,y);所述的滤波器系数矩阵为:
其中kA是以坐标点x,y处的源像素点为中心匹配滤波器系数的位置为A0、A1处的数值要乘以的系数,kB是以坐标点x,y处的源像素点为中心匹配滤波器系数的位置为B0、B1处的数值要乘以的系数,kC是以坐标点x,y处的源像素点为中心匹配滤波器系数的位置为C处的数值要乘以的系数,kD是以坐标点x,y处的源像素点为中心匹配滤波器系数的位置为D0、D1、D2、D1处的数值要乘以的系数,kE是以坐标点x,y处的源像素点为中心匹配滤波器系数的位置为E0、E1处的数值要乘以的系数,kA是以坐标点x,y处的源像素点为中心匹配滤波器系数的位置为F0、F1处的数值要乘以的系数。
步骤3)包括:
(1)将原始一维Bayer格式图像中的每一个像素点的值采用GPU中的一个工作节点进行计算;
(2)将OpenCL工作组设置为原始一维Bayer格式图像的大小,并能过get_group_id二维索引向量来寻原始一维Bayer格式图像数据地址。
步骤4)包括:
(1)工作点使用get_group_id二维索引获取恢复原始一维Bayer格式图像像素点的RGB值所需要的数据;
(2)声明一个float4类型的PATTERN变量,来保存通过滤波器系数矩阵计算的中间结果和最终结果;
(3)根据原始一维Bayer格式图像像素点的颜色,给该像素点的RGB赋上PATTERN所存的不同分量的值,即为自适应插值去马赛克算法最终的结果;
(4)将自适应插值去马赛克算法最终的结果传回GPU全局内存。
第(1)步中所述的数据是以该像素点为中心5*5的矩阵中所包括的数据。
本发明的基于异构平台的双线性插值去马赛克算法的OpenCL加速方法,在保持效果一致的情况下,通过GPU加速实现图像的快速处理,并且提供了基本的针对图像处理的共性优化方法,相比于在CPU上实现的算法,速度得到了很大的提升。随着异构平台的发展,如CPU+GPU的组合或者FPGA等,越来越需要好的方法来利用这些组合,OpenCL就是一种很好的方式,它可以充分发挥出异构平台的性能。这就需要对算法使用OpenCL语言进行编写,本发明的方法可以充分提高硬件的使用率,提高运行速度。尤其是在人工智能处于大发展的时代,越来越多的处理器具有人工智能功能的协处理器,所以如何利用好异构平台,提高效率是越来越重要的。而OpenCL加速是一个很好的选择,将会为人工智能的发展提供更好的保障。本发明的有益效果如下:
1)优化了GPU和多核CPU全局存储访问方式和GPU本地存储的分布;
2)利用向量数据类型来提高访问带宽;
3)修改去马赛克算法,实现了适用GPU硬件架构的并行化。
具体实施方式
下面结合实施例对本发明的基于异构平台的双线性插值去马赛克算法的OpenCL加速方法做出详细说明。
本发明的基于异构平台的双线性插值去马赛克算法的OpenCL加速方法,是在英特尔HD4600GPU上运行。由于英特尔的GPU和CPU共享最后一级缓存,即L3缓存。而其缓存行为64字节,为了提高性能,本发明使用vload8和vstore8从共享内存中读取和写回数据。一方面这会减少数据传输时间。另一方面,这也允许在内核中一次还原四个像素。
同时,由于共享最后一级缓存,实现了OpenCL中的零拷贝,这有节省了CPU与GPU之间数据传输所用的时间。通过对算法的优化以及根据硬件的配置对工作组的调整,可以实现去马赛克算法实现速度极大提升。
本发明的基于异构平台的双线性插值去马赛克算法的OpenCL加速方法,包括如下步骤:
1)将自适应插值去马赛克算法中的滤波器改为一个滤波器系数矩阵,具体是:
将自适应插值马赛克算法中的滤波器改为一个滤波器系数矩阵,其中原始的一维Bayer格式图像数据的G通道的滤波器系数为系数(-1,-1,2,2,4,0,0,0,0,-1,-1,2,2),R通道和B通道的滤波器系数各有11个系数,有三组系数,(-3/2,-3/2,0,0,6,2,2,2,2,-3/2,-3/2,0,0),(+1/2,+1/2,0,0,5,-1,-1,-1,-1,-1,-1,4,4)和(-1,-1,4,4,5,-1,-1,-1,-1,+1/2,+1/2,0,0)。
设定在以坐标点(x,y)处的源像素点为中心匹配滤波器系数的位置为:A0(x,y-2),A1(x,y+2),B0(x,y-1),B1(x,y+1),C(x,y),D0(x-1,y-1),D1(x+1,y-1),D2(x-1,y+1),D3(x+1,y+1),E0(x-2,y),E1(x+2,y),F0(x-1,y),F1(x+1,y)。
将原始的一维Bayer格式图像数据的四种滤波器系数改为滤波器系数矩阵:
其中kA是以坐标点x,y处的源像素点为中心匹配滤波器系数的位置为A0、A1处的数值要乘以的系数,kB是以坐标点x,y处的源像素点为中心匹配滤波器系数的位置为B0、B1处的数值要乘以的系数,kC是以坐标点x,y处的源像素点为中心匹配滤波器系数的位置为C处的数值要乘以的系数,kD是以坐标点x,y处的源像素点为中心匹配滤波器系数的位置为D0、D1、D2、D1处的数值要乘以的系数,kE是以坐标点x,y处的源像素点为中心匹配滤波器系数的位置为E0、E1处的数值要乘以的系数,kA是以坐标点x,y处的源像素点为中心匹配滤波器系数的位置为F0、F1处的数值要乘以的系数。
2)将原始的一维Bayer格式图像数据读入到CPU主机内存中,经过零拷贝处理,使图像数据映射到GPU的全局内存中;
3)对运行自适应插值去马赛克算法的GPU中每个工作节点进行任务分配;包括:
(1)将原始一维Bayer格式图像中的每一个像素点的值采用GPU中的一个工作节点进行计算;
(2)将OpenCL工作组设置为原始一维Bayer格式图像的大小,并能过get_group_id二维索引向量来寻原始一维Bayer格式图像数据地址。
4)在GPU中运行自适应插值去马赛克算法;包括:
(1)工作点使用get_group_id二维索引获取恢复原始一维Bayer格式图像像素点的RGB值所需要的数据,使用vload8和vstore8从CPU和GPU共享内存中读取数据。所述的数据是以该像素点为中心5*5的矩阵中所包括的数据;
(2)声明一个float4类型的PATTERN变量,来保存通过滤波器系数矩阵计算的中间结果和最终结果;
(3)根据原始一维Bayer格式图像像素点的颜色,给该像素点的RGB赋上PATTERN所存的不同分量的值,即为自适应插值去马赛克算法最终的结果;
(4)将自适应插值去马赛克算法最终的结果传回GPU全局内存。
5)将GPU的全局内存中的计算结果经过零拷贝处理传回到CPU主机内存中,得出彩色图片和运算时间。
零拷贝技术可以减少数据拷贝和共享总线操作的次数,消除通信数据在存储器之间不必要的中间拷贝过程,有效地提高通信效率。它的主要的任务就是避免CPU将数据从一块存储拷贝到另外一块存储,从而实现了异构系统之间共享数据,如本发明使用的CPU和GPU之间就实现了数据共享,把数据传输消耗的时间降低到几乎为零。由于CPU和GPU共享最后一级缓存,这样也就可以实现了他们只需要读写最后一级缓存即可,这就不需要各自开辟存储空间来进行数据交互。
最后一级缓存的缓存行为64字节,使用Vload8指令可以一次行的读取8个字节的数据,相比于一次只读取一个数据来说,这样的指令效率高,同时可以提高缓存命中的几率,这就大大的加快了数据的交互速度。不再需要反复的从内存里面读取数据消耗时间。
同时由于GPU是单指令多数据的,将算法进行改写使其适应这种特性也是很重的一环,通过以上方法可以实现本专利的去买马赛克算法的快速实现。

Claims (5)

1.一种基于异构平台的双线性插值去马赛克算法的OpenCL加速方法,其特征在于,是在英特尔HD4600GPU上运行,包括如下步骤:
1)将自适应插值去马赛克算法中的滤波器改为一个滤波器系数矩阵;
2)将原始的一维Bayer格式图像数据读入到CPU主机内存中,经过零拷贝处理,使图像数据映射到GPU的全局内存中;
3)对运行自适应插值去马赛克算法的GPU中每个工作节点进行任务分配;
4)在GPU中运行自适应插值去马赛克算法;
5)将GPU的全局内存中的计算结果再通过零拷贝传回到CPU主机内存中,得出彩色图片和运算时间。
2.根据权利要求1所述的基于异构平台的双线性插值去马赛克算法的OpenCL加速方法,其特征在于,步骤1)包括:
设定在以坐标点x,y处的源像素点为中心匹配滤波器系数的位置为:A0(x,y-2),A1(x,y+2),B0(x,y-1),B1(x,y+1),C(x,y),D0(x-1,y-1),D1(x+1,y-1),D2(x-1,y+1),D3(x+1,y+1),E0(x-2,y),E1(x+2,y),F0(x-1,y),F1(x+1,y);所述的滤波器系数矩阵为:
其中kA是以坐标点x,y处的源像素点为中心匹配滤波器系数的位置为A0、A1处的数值要乘以的系数,kB是以坐标点x,y处的源像素点为中心匹配滤波器系数的位置为B0、B1处的数值要乘以的系数,kC是以坐标点x,y处的源像素点为中心匹配滤波器系数的位置为C处的数值要乘以的系数,kD是以坐标点x,y处的源像素点为中心匹配滤波器系数的位置为D0、D1、D2、D1处的数值要乘以的系数,kE是以坐标点x,y处的源像素点为中心匹配滤波器系数的位置为E0、E1处的数值要乘以的系数,kA是以坐标点x,y处的源像素点为中心匹配滤波器系数的位置为F0、F1处的数值要乘以的系数。
3.根据权利要求1所述的基于异构平台的双线性插值去马赛克算法的OpenCL加速方法,其特征在于,步骤3)包括:
(1)将原始一维Bayer格式图像中的每一个像素点的值采用GPU中的一个工作节点进行计算;
(2)将OpenCL工作组设置为原始一维Bayer格式图像的大小,并能过get_group_id二维索引向量来寻原始一维Bayer格式图像数据地址。
4.根据权利要求1所述的基于异构平台的双线性插值去马赛克算法的OpenCL加速方法,其特征在于,步骤4)包括:
(1)工作点使用get_group_id二维索引获取恢复原始一维Bayer格式图像像素点的RGB值所需要的数据;
(2)声明一个float4类型的PATTERN变量,来保存通过滤波器系数矩阵计算的中间结果和最终结果;
(3)根据原始一维Bayer格式图像像素点的颜色,给该像素点的RGB赋上PATTERN所存的不同分量的值,即为自适应插值去马赛克算法最终的结果;
(4)将自适应插值去马赛克算法最终的结果传回GPU全局内存。
5.根据权利要求4所述的基于异构平台的双线性插值去马赛克算法的OpenCL加速方法,其特征在于,第(1)步中所述的数据是以该像素点为中心5*5的矩阵中所包括的数据。
CN201810443097.1A 2018-05-10 2018-05-10 基于异构平台的双线性插值去马赛克算法的OpenCL加速方法 Pending CN108492257A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810443097.1A CN108492257A (zh) 2018-05-10 2018-05-10 基于异构平台的双线性插值去马赛克算法的OpenCL加速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810443097.1A CN108492257A (zh) 2018-05-10 2018-05-10 基于异构平台的双线性插值去马赛克算法的OpenCL加速方法

Publications (1)

Publication Number Publication Date
CN108492257A true CN108492257A (zh) 2018-09-04

Family

ID=63354352

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810443097.1A Pending CN108492257A (zh) 2018-05-10 2018-05-10 基于异构平台的双线性插值去马赛克算法的OpenCL加速方法

Country Status (1)

Country Link
CN (1) CN108492257A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111489313A (zh) * 2020-04-13 2020-08-04 湖南国科微电子股份有限公司 一种cfa图像去马赛克方法及装置
CN115942128A (zh) * 2022-12-12 2023-04-07 大连理工大学 一种基于异构平台的isp系统设计与实现方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070189603A1 (en) * 2006-02-06 2007-08-16 Microsoft Corporation Raw image processing
CN102831577A (zh) * 2012-08-29 2012-12-19 电子科技大学 基于gpu的二维地震图像的快速缩放方法
CN106204488A (zh) * 2016-07-12 2016-12-07 湖南翰博薇微电子科技有限公司 一种OpenCL加速的视频去雾方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070189603A1 (en) * 2006-02-06 2007-08-16 Microsoft Corporation Raw image processing
CN102831577A (zh) * 2012-08-29 2012-12-19 电子科技大学 基于gpu的二维地震图像的快速缩放方法
CN106204488A (zh) * 2016-07-12 2016-12-07 湖南翰博薇微电子科技有限公司 一种OpenCL加速的视频去雾方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MORGAN MCGUIRE 等: "Efficient, High-Quality Bayer Demosaic Filtering on GPUs", 《JOURNAL OF GRAPHICS GPU AND GAME TOOLS》 *
田旭文 等: "基于异构平台的自适应图像去马赛克的OpenCL加速", 《计算机技术与应用》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111489313A (zh) * 2020-04-13 2020-08-04 湖南国科微电子股份有限公司 一种cfa图像去马赛克方法及装置
CN111489313B (zh) * 2020-04-13 2023-10-31 湖南国科微电子股份有限公司 一种cfa图像去马赛克方法及装置
CN115942128A (zh) * 2022-12-12 2023-04-07 大连理工大学 一种基于异构平台的isp系统设计与实现方法
CN115942128B (zh) * 2022-12-12 2024-04-12 大连理工大学 一种基于异构平台的isp系统设计与实现方法

Similar Documents

Publication Publication Date Title
US20240112006A1 (en) Deep learning hardware
US11610362B2 (en) Data volume sculptor for deep learning acceleration
US11847550B2 (en) Sparse convolutional neural network accelerator
US10726177B2 (en) Reconfigurable interconnect
US20200272779A1 (en) Reconfigurable interconnect
US11989638B2 (en) Convolutional neural network accelerating device and method with input data conversion
JP5837153B2 (ja) 画素速度での画像処理のための方法および装置
CN113034358B (zh) 一种超分辨率图像处理方法以及相关装置
US11636665B2 (en) Streaming image semantic segmentation method, logical integrated circuit system and electronic device
US20190258306A1 (en) Data processing system and method
WO2022067508A1 (zh) 一种神经网络加速器、加速方法以及装置
EP3346427A1 (en) Configurable accelerator framework, system and method
US20090106526A1 (en) Scalar Float Register Overlay on Vector Register File for Efficient Register Allocation and Scalar Float and Vector Register Sharing
Colleman et al. High-utilization, high-flexibility depth-first CNN coprocessor for image pixel processing on FPGA
CN108492257A (zh) 基于异构平台的双线性插值去马赛克算法的OpenCL加速方法
Huang et al. IECA: An in-execution configuration CNN accelerator with 30.55 GOPS/mm² area efficiency
Mazumdar et al. A hardware-friendly bilateral solver for real-time virtual reality video
DE102023105565A1 (de) VERFAHREN UND VORRICHTUNG FÜR EFFIZIENTEN ZUGRIFF AUF MEHRDIMENSIONALE DATENSTRUKTUREN UND/ODER ANDERE GROßE DATENBLÖCKE
US11915338B2 (en) Loading apparatus and method for convolution with stride or dilation of 2
WO2020042770A1 (zh) 图像识别处理方法和装置
US11830114B2 (en) Reconfigurable hardware acceleration method and system for gaussian pyramid construction
Huo et al. Efficient photorealistic style transfer with multi-order image statistics
Jin et al. Implementation of a volume rendering on coarse-grained reconfigurable multiprocessor
WO2014105550A1 (en) Configurable ring network
WO2021096810A1 (en) Techniques for determining importance of encoded image components for artificial intelligence tasks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180904