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

一种基于异构平台的ISP系统设计与实现方法 

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

申请/专利权人:大连理工大学

摘要:本发明公开了一种基于异构平台的ISP系统设计与实现方法,属于图像处理领域。所述方法主要包括以下步骤:S1:在主机端读取原始格式RAW图片。S2:在主机端及设备端分配内存。S3:将主机端数据拷贝至设备端。S4:调用内核函数处理图像,其中内核函数是ISP系统的核心部分,其由对图像进行处理的一系列模块组成,主要包括线性化、黑电平校正、坏点校正、去马赛克、滤波、白平衡及色彩空间变换、伽马变换等模块,这些模块按照顺序依次对RAW图片进行处理。S5:在设备端完成图像数据的处理后,将处理结果由设备端拷贝至主机端。S6:释放设备端及主机端内存。

主权项:1.一种基于异构平台的ISP系统设计与实现方法,其特征在于,所述方法包括以下步骤:S1:在设备端读取RAW格式图像数据;S2:在主机端和设备端分配内存;S3:将图像数据由主机端拷贝至设备端;S4:调用内核函数进行图像处理,其是由一系列图像处理模块构成的,图像处理模块包括线性化、黑电平校正、坏点校正、去马赛克、降噪、白平衡及色彩空间转换、伽马变换模块;其中,坏点校正的过程中对坏点的探测是采用自适应坏点校正算法;去马赛克是采用通过扩充图像边界进行去马赛克的算法;去噪是采用加权中值滤波算法进行去噪处理;S5:设备端拷贝处理结果至主机端;S6:释放设备端及主机端内存;步骤S1中:当需要进行精确的白平衡及色彩空间变换时,还需要将RAW图片中包含的白点信息解析出来,存储在结构体中,方便后续利用这些信息求取色彩空间变换矩阵;步骤S2中:采用malloc动态分配主机端数组的内存;步骤S3中:需要根据主机端储存图像数据数组的类型以及设备端接收数据的数组类型使用相关的cuda运行时函数cudaMemcpy进行数据拷贝;步骤S4中:线性化的作用是将图像数据恢复至原来的压缩前的数据;通过查找表的方式实现,将当前像素值作为存储查找表数组的地址,输出值就是线性化后的像素值;黑电平校正是通过减去一定的值使得在光照为0时,像素输出值尽可能接近0;坏点校正的目的是尽可能去除图像中的坏点,以防其对后面的图像质量造成影响;坏点分为静态坏点和动态坏点,静态坏点是由于图像传感器制造工艺造成的器质性损坏,动态坏点是由于像元不能进行正常的光电转换而导致的输出像素值异常;坏点校正的过程中对坏点的探测采用的是自适应坏点校正算法;去马赛克的目的是将单通道的RAW数据恢复为含有R、G、B颜色信息的三通道图像;去马赛克算法是采用通过扩充图像边界,进行去马赛克的算法;去噪的目的是去除R、G、B三通道图像中的噪声点;是采用加权中值滤波算法进行去噪处理;白平衡及色彩空间变换阶段包括白平衡及色彩空间变换两个步骤;白平衡是通过调整R、G、B三通道像素值使得三通道之间的像素值均值尽可能接近;色彩空间变换是将图像由RAWRGB域转换到ProPhotoRGB域或sRGB域;在主机端实现空间变换矩阵的求解,然后将其拷贝至设备端的常量内存中,在设备端直接调用求解出的色彩空间变换矩阵;伽马变换的目的是使得输出的图像符合人眼的视觉效果;图像数据经过设备端的处理后就输出至主机端了;步骤S5中:在最后一个核函数的调用语句后添加cudaDeviceSynchronize,该语句会一直处于阻塞状态直到前面所有请求的任务被全部执行完成,这可以确保最后输出的是经过ISP全流程处理后的图像数据,数据拷贝的方向为cudaMemcpyDeviceToHost;步骤S6中:最后的图像数据归一化转换为uchar类型后,将相关位置点的图像数据依次读入定义的Mat结构体中,就能使用opencv库中的imshow函数直接显示图像或者将其存为jpg、png格式的图片进行输出,也能将图像数据写入文本文件中,完成所有操作后将主机端及设备端内存完全释放;所述的线性化:设压缩后的像素值为[0,255],进行线性化时,将压缩后的像素值0、1、2、……、255作为地址,依次表示出各个像素值对应的压缩前像素值,将其做成查找表的形式,并将此查找表储存在常量内存中;线性化时,直接将当前像素值作为查找表的地址,查找表输出的值即为线性化后的像素值;所述的坏点校正:自适应坏点校正算法包括以下步骤:S431、令L0、L1、L2、L3分别表示135度方向、水平方向、45度方向、竖直方向,此时图像仍处于RAW域;R、G、B分别表示具有红、绿、蓝颜色信息的像素点;将数据读入共享内存中,每个线程依次读入对应的5x5窗口中的数据,在5x5的窗口中P、Pi、Pi+4这9个点表示的是包含相同颜色信息的像素点,其中,0=i=3;按照如下所示的公式,计算Li方向的方向阈值di:di=absPi–Pi+4;S432、分别计算5x5窗口内中心点P与周围点Pi、Pi+4差的绝对值hi、hi+4,按照下面的公式进行计算:hi=absP–Pi,hi+4=absP–Pi+4;S433、根据系数n动态的调整方向阈值的大小,通过计算每个窗口内9个点的均值与方差,选择相应的n值,以便自适应的调整方向阈值的大小;S434、按照下式对Pi、Pi+4进行判断,若满足hi=n*di,则Pi点为准坏点,记录Pi的像素值至数组dead_pixels1中,并统计准坏点的个数count1;若满足hi+4=n*di,则Pi+4点为准坏点,记录Pi+4的像素值至数组dead_pixels2中,并统计准坏点的个数count2;则窗口内总的准坏点个数为:count=count1+count2;S435、将准坏点的个数count与m比较大小,根据需求选择相应的m值;若count=m,则认为中心点P为坏点,按照步骤S436进行处理;否则认为中心点P为非坏点,直接输出P点像素值;S436、将记录在数组dead_pixels1、dead_pixels2中准坏点的像素值相加,然后除以准坏点的个数count,得到的结果result即为坏点校正后的输出值;S437、输出坏点校正后的值result;所述的去马赛克算法包括以下步骤:当马赛克图像为GBRG格式时,去马赛克算法:红色通道的G值由紧挨着的上下左右四个方向的G值取平均值得到,而B值由以R为中心3x3区域内4个角上的B值取平均值得到;绿色通道的R、B值由左右或上下的R、B值取平均值得到;蓝色通道的R值由以B为中心3x3区域内4个角上的R值取平均值得到,G值由紧挨着的上下左右四个方向的G值取平均值得到;对于去马赛克阶段的图像边界采用边界复制的方式,将图像尺寸由height*width变为height+2*width+2;利用设备函数value_padding对于输入的像素值进行边界复制,线程索引对应的图片像素坐标如下式所示,对于对应row=0、row=height-1、col=0、col=width-1的线程而言,需要进行插值处理;设备函数value_padding中输入的一维数组pre_padding长度为height*width,输出的一维数组post_padding长度为height+2*width+2;row=threadIdx.y+blockIdx.y*blockDim.y;col=threadIdx.x+blockIdx.x*blockDim.x;其中,threadIdx.y表示当前时刻thread在block中对应的y维度上索引值;blockIdx.y表示当前时刻block在grid中对应的y维度上索引值;blockDim.y表示block的y维度上包含的thread个数;threadIdx.x表示当前时刻thread在block中对应的x维度上索引值;blockIdx.x表示当前时刻block在grid中对应的x维度上索引值;blockDim.x表示block的x维度上包含的thread个数;扩充图像边界后,row%2==1col%2==1对应的像素为Gb类型,row%2==1col%2==0对应的像素为B类型,row%2==0col%2==1对应的像素为R类型,row%2==0col%2==0对应的像素为Gr类型,通过这样的方式确定RAW图片中各个像素点对应的颜色类型,然后通过插值的方法计算缺失的另外两种颜色类型;所述的去噪处理:根据共享内存中每个线程对应的3x3窗口内椒盐噪声点数量的不同,对非椒盐噪声点的像素值赋予不同的权重;若窗口内只有一个非椒盐噪声点,则直接输出非椒盐噪声点的值;若有a1、a2两个按照从大至小顺序排序后的非椒盐噪声点,则输出值为0.75*a1+0.25*a2;若有a1、a2、a3三个按照从大至小顺序排序后的非椒盐噪声点,则输出值为0.25*a1+0.5*a2+0.25*a3。

全文数据:

权利要求:

百度查询: 大连理工大学 一种基于异构平台的ISP系统设计与实现方法

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