基于FPGA的色域空间转换的方法技术

技术编号:17618514 阅读:44 留言:0更新日期:2018-04-04 09:01
本发明专利技术公开了一种基于FPGA的色域空间转换的方法,采本发明专利技术将处理过程分为并行的五个部分;在流水线的第一部分接收一个像素的RGB三个分量值并寄存,在流水线的第二部分完成并位以及减法操作,确定这个像素RGB三个分量值的大小排序情况;在流水线的第三部分根据这像素的RGB三个分量的大小排序情况以及RGB色域空间向HSV色域空间转换的算法公式为流水线下部分所需的参数赋值,在流水线的第四部分调用除法模块并将所需参数输入除法模块,应用得到的除法模块输出结果在流水线的第五部分计算得到色域空间转换后的HSV三个分量的值,本发明专利技术大大提高了图像色域空间的转换速度,为后续的图像处理提供了极大的便利。

A method of color gamut space conversion based on FPGA

The invention discloses a method for color space conversion based on FPGA, the mining process is divided into five parts in parallel; in the first part of the line to receive a three pixel RGB component value and storage, in the second part of the pipeline is completed and a subtraction operation and determine the size of this sort. The three components of RGB pixel values; parameter values are required in the third part of the pipeline algorithm formula according to the size of this sort of pixels of the three components of RGB and RGB color space to HSV color space conversion is part of the line, in the fourth part of the line call division module and the parameter input module division. The application of the division module output result of color space conversion after the three components of HSV value in the fifth part of the pipeline, the invention greatly improves the image The conversion speed of the color gamut space provides a great convenience for the subsequent image processing.

【技术实现步骤摘要】
基于FPGA的色域空间转换的方法
本专利技术属于工业机器视觉领域,具体涉及到一种基于FPGA的RGB色域空间向HSV色域空间高速转换方法的实现方法。
技术介绍
RGB色彩模型是工业界的一种色彩标准,是通过对红绿蓝三色通道的变化以及他们相互之间的叠加来得到模型色彩的;HSV色彩模型则是根据颜色的直观特性,将模型中颜色的划分为色调,饱和度,明度三个通道;与RGB色彩模型相比,HSV色彩模型更加适合于图像分割方面的应用。在工业机器视觉领域,由于图像传感器采集的图像数据通常为RGB色彩模型,所以经常需要对图像数据进行色域空间的转换;在传统的技术中,通常由DSP或者上位机完成色域空间转换算法的实现,这样难以做到图像数据色域空间的实时转换。
技术实现思路
本专利技术针对现有技术的不足,提出了一种基于FPGA的RGB色域空间向HSV色域空间高速转换的方法:采用流水线式结构对输入的图像数据进行转换处理,将处理过程分为并行的五个部分,采用五级流水的方式完成一个像素数据的转换处理。在流水线的第一部分接收一个像素的RGB三个分量值并寄存,在流水线的第二部分完成并位以及减法操作,确定这个像素RGB三个分量值的大小排序情况;在流水线的第三部分根据这像素的RGB三个分量的大小排序情况以及RGB色域空间向HSV色域空间转换的公式为流水线下部分所需的参数赋值,在流水线的第四部分调用除法模块并将所需参数输入除法模块,应用得到的除法模块输出结果在流水线的第五部分计算得到色域空间转换后的HSV三个分量的值。RGB色域空间向HSV色域空间高速转换方法的实现步骤包括:步骤一:定义寄存器R_Raw,G_Raw,B_Raw用来存放一个像素的RGB三个分量的原始数据值,并采集接收这三个值,该步骤位于流水线的第一部分;步骤二:定义sub_R_G,sub_G_R,sub_R_B,sub_B_R,sub_B_G和sub_G_B;6个差值寄存器用来存放R_Raw,G_Raw,B_Raw三个寄存器中两两之间的差值;并对6个差值寄存器进行赋值;其中sub_R_G的值等于R_Raw在最高位前并上一个0后的值减去G_Raw在最高位前并上一个0后的值;sub_G_R的值等于G_Raw值减去R_Raw的值;sub_B_R的值等于B_Raw在最高位前并上一个0后的值减去R_Raw在最高位前并上一个0后的值;sub_R_B的值等于R_Raw值减去B_Raw的值;sub_G_B的值等于G_Raw在最高位前并上一个0后的值减去B_Raw在最高位前并上一个0后的值;sub_B_G的值等于B_Raw值减去G_Raw的值。该步骤位于流水线的第二部分;步骤三:取sub_R_G,sub_G_B,sub_B_R这三个差值寄存器的最高位并成一个3位数据寄存于寄存器Comp,根据这个Comp的值来判断原始像素的RGB三个分量大小排序情况。当做减法运算时在减数和被减数的最高位前并上1个0作为标志位,再进行减法运算,若是大数减去小时,则被减数的高位不借位,差值的最高位还是0;如果是小数减去大数,在被减数的高位会借位,差值的最高位会变成1。对于一个像素的RGB三个分量值,除去RGB都相等的情况,共有6种排列方式;因此根据Comp的值就可以6种情况列举出来:当Comp等于001时可得R_Raw>G_Raw>B_Raw;当Comp等于011时可得R_Raw>B_Raw>G_Raw;当Comp等于101时可得G_Raw>R_Raw>B_Raw;当Comp等于100时可得G_Raw>B_Raw>R_Raw;当Comp等于010时可得B_Raw>R_Raw>G_Raw;当Comp等于110时可得B_Raw>G_Raw>R_Raw。该步骤位于流水线的第二部分;步骤四:定义符号标志位sign_flag;定义计算H分量时用到的被除数寄存器h_dividend,除数寄存器h_divisor以及加数寄存器h_add;定义计算S分量时用到的被除数寄存器s_dividend以及除数寄存器s_divisor;定义计算分量V时用到的缓存寄存器v;当Comp的值等于001时令sign_flag等于0,h_dividend的值等于60*sub_G_B的值,h_divisor的值等于sub_R_B的值,h_addd的值等于0,s_dividend的值等于(2N-1)*sub_R_B的值,其中N的值为输出数据的位宽,s_divisor的值等于R_Raw的值,v的值等于R_Raw的值;当Comp的值等于011时令sign_flag等于1,h_dividend的值等于60*sub_B_G的值,h_divisor的值等于sub_R_G的值,h_addd的值等于360,s_dividend的值等于(2N-1)*sub_R_G的值,s_divisor的值等于R_Raw的值,v的值等于R_Raw的值;当Comp的值等于101时令sign_flag等于1,h_dividend的值等于60*sub_R_B的值,h_divisor的值等于sub_G_B的值,h_addd的值等于120,s_dividend的值等于(2N-1)*sub_G_B的值,s_divisor的值等于G_Raw的值,v的值等于G_Raw的值;当Comp的值等于100时令sign_flag等于0,h_dividend的值等于60*sub_B_R的值,h_divisor的值等于sub_G_R的值,h_addd的值等于120,s_dividend的值等于(2N-1)*sub_G_R的值,s_divisor的值等于G_Raw的值,v的值等于G_Raw的值;当Comp的值等于010时令sign_flag等于0,h_dividend的值等于60*sub_R_G的值,h_divisor的值等于sub_B_G的值,h_addd的值等于240,s_dividend的值等于(2N-1)*sub_B_G的值,s_divisor的值等于B_Raw的值,v的值等于B_Raw的值;当Comp的值等于110时令sign_flag等于1,h_dividend的值等于60*sub_R_G的值,h_divisor的值等于sub_B_G的值,h_addd的值等于240,s_dividend的值等于(2N-1)*sub_B_G的值,s_divisor的值等于B_Raw的值,v的值等于B_Raw的值;当Comp的值不等于上述值时令sign_flag等于0,h_dividend的值等于0,h_divisor的值等于1,h_addd的值等于0,s_dividend的值等于0的值,s_divisor的值等于1的值,v的值等于R_Raw的值;由于S分量的定义是RGB三个分量中的最大值减去最小值再除以最大值后得到的商,是一个位于0到1之间的小数,因为输出的位宽为N位,所以在进行S分量的计算时先将被除数乘以(2N-1),这样就将S分量的值域映射到0到(2N-1)的范围上;该步骤位于流水线的第三部分;步骤五:调用两个LPM除法模块u_div_h、u_div_s分别用于本文档来自技高网...
基于FPGA的色域空间转换的方法

【技术保护点】
基于FPGA的色域空间转换的方法,其特征在于:该方法具体包括以下步骤:步骤一:定义寄存器R_Raw,G_Raw,B_Raw用来存放一个像素的RGB三个分量的原始数据值,并采集接收这三个值;步骤二:定义sub_R_G,sub_G_R,sub_R_B,sub_B_R,sub_B_G和sub_G_B;6个差值寄存器用来存放R_Raw,G_Raw,B_Raw三个寄存器中两两之间的差值;并对6个差值寄存器进行赋值;其中sub_R_G的值等于R_Raw在最高位前并上一个0后的值减去G_Raw在最高位前并上一个0后的值;sub_G_R的值等于G_Raw值减去R_Raw的值;sub_B_R的值等于B_Raw在最高位前并上一个0后的值减去R_Raw在最高位前并上一个0后的值;sub_R_B的值等于R_Raw值减去B_Raw的值;sub_G_B的值等于G_Raw在最高位前并上一个0后的值减去B_Raw在最高位前并上一个0后的值;sub_B_G的值等于B_Raw值减去G_Raw的值;步骤三:取sub_R_G,sub_G_B,sub_B_R这三个差值寄存器的最高位并成一个3位数据寄存于寄存器Comp,根据这个Comp的值来判断原始像素的RGB三个分量大小排序情况;当做减法运算时在减数和被减数的最高位前并上1个0作为标志位,再进行减法运算,若是大数减去小时,则被减数的高位不借位,差值的最高位还是0;如果是小数减去大数,在被减数的高位会借位,差值的最高位会变成1;对于一个像素的RGB三个分量值,除去RGB都相等的情况,共有6种排列方式;因此根据Comp的值就可以6种情况列举出来:当Comp等于001时可得R_Raw>G_Raw>B_Raw;当Comp等于011时可得R_Raw>B_Raw>G_Raw;当Comp等于101时可得G_Raw>R_Raw>B_Raw;当Comp等于100时可得G_Raw>B_Raw>R_Raw;当Comp等于010时可得B_Raw>R_Raw>G_Raw;当Comp等于110时可得B_Raw>G_Raw>R_Raw;步骤四:定义符号标志位sign_flag;定义计算H分量时用到的被除数寄存器h_dividend,除数寄存器h_divisor以及加数寄存器h_add;定义计算S分量时用到的被除数寄存器s_dividend以及除数寄存器s_divisor;定义计算分量V时用到的缓存寄存器v;当Comp的值等于001时令sign_flag等于0,h_dividend的值等于60*sub_G_B的值,h_divisor的值等于sub_R_B的值,h_addd的值等于0,s_dividend的值等于(2...

【技术特征摘要】
1.基于FPGA的色域空间转换的方法,其特征在于:该方法具体包括以下步骤:步骤一:定义寄存器R_Raw,G_Raw,B_Raw用来存放一个像素的RGB三个分量的原始数据值,并采集接收这三个值;步骤二:定义sub_R_G,sub_G_R,sub_R_B,sub_B_R,sub_B_G和sub_G_B;6个差值寄存器用来存放R_Raw,G_Raw,B_Raw三个寄存器中两两之间的差值;并对6个差值寄存器进行赋值;其中sub_R_G的值等于R_Raw在最高位前并上一个0后的值减去G_Raw在最高位前并上一个0后的值;sub_G_R的值等于G_Raw值减去R_Raw的值;sub_B_R的值等于B_Raw在最高位前并上一个0后的值减去R_Raw在最高位前并上一个0后的值;sub_R_B的值等于R_Raw值减去B_Raw的值;sub_G_B的值等于G_Raw在最高位前并上一个0后的值减去B_Raw在最高位前并上一个0后的值;sub_B_G的值等于B_Raw值减去G_Raw的值;步骤三:取sub_R_G,sub_G_B,sub_B_R这三个差值寄存器的最高位并成一个3位数据寄存于寄存器Comp,根据这个Comp的值来判断原始像素的RGB三个分量大小排序情况;当做减法运算时在减数和被减数的最高位前并上1个0作为标志位,再进行减法运算,若是大数减去小时,则被减数的高位不借位,差值的最高位还是0;如果是小数减去大数,在被减数的高位会借位,差值的最高位会变成1;对于一个像素的RGB三个分量值,除去RGB都相等的情况,共有6种排列方式;因此根据Comp的值就可以6种情况列举出来:当Comp等于001时可得R_Raw>G_Raw>B_Raw;当Comp等于011时可得R_Raw>B_Raw>G_Raw;当Comp等于101时可得G_Raw>R_Raw>B_Raw;当Comp等于100时可得G_Raw>B_Raw>R_Raw;当Comp等于010时可得B_Raw>R_Raw>G_Raw;当Comp等于110时可得B_Raw>G_Raw>R_Raw;步骤四:定义符号标志位sign_flag;定义计算H分量时用到的被除数寄存器h_dividend,除数寄存器h_divisor以及加数寄存器h_add;定义计算S分量时用到的被除数寄存器s_dividend以及除数寄存器s_divisor;定义计算分量V时用到的缓存寄存器v;当Comp的值等于001时令sign_flag等于0,h_dividend的值等于60*sub_G_B的值,h_divisor的值等于sub_R_B的值,h_addd的值等于0,s_dividend的值等于(2N-1)*sub_R_B的值,其中N的值为输出数据的位宽,s_divisor的值等于R_Raw的值,v的值等于R_Raw的值;当Comp的值等于011时令sign_flag等于1,h_dividend的值等于60*sub_B_G的值,h_divisor的值等于sub_R_G的值,h_addd的值等于360,s_dividend的值等于(2N-1)*sub_R_G的值,s_div...

【专利技术属性】
技术研发人员:陈派宁黄继业陆燕怡杨宇翔吴爽高明煜何志伟
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1