本技术属于图像处理领域,更具体地,涉及一种特效色卡的处理方法及系统。
背景技术:
1、滤镜作为图像处理软件和短视频拍摄场景使用最为广泛的图像处理算法组件,对软件的核心应用指标,如投稿、转化、渗透和播放等具有关键的影响作用。因此,滤镜性能的好坏将直接影响特效创作者对于色卡滤镜的使用。
2、每张图像中的每个像素均由三种颜色组成,视频特效色卡效果的实质是将每个像素进行新的颜色映射,将原本图像中的每种颜色映射到另外一种颜色,从而实现图像颜色效果变换的目的。现有每种颜色的取值范围一般是0-255,例如色卡的三种颜色为rgb,按照rgb作为xyz坐标轴的三维矩阵,该矩阵三个维度分别为0-255,每一个数值代表一个颜色的亮度值,按照矩阵中每个数据使用8bit进行存储,则色卡存储空间巨大,会占用256*256*256*8bit的存储空间,导致在实际应用过程中,客户端解析和加载如此大的图像需要消耗很长的时间,从而大大降低了特效色卡滤镜对图像处理的效率。同时如此大体积的色卡图像也不利于网络传输和颜色计算。
技术实现思路
1、针对现有技术的缺陷,本技术的目的在于提供一种色卡处理方法及系统,旨在解决现有的图像对应色卡存储空间巨大,导致客户端解析和加载图像耗时较长,特效色卡滤镜对图像处理的效率较低问题。
2、为实现上述目的,第一方面,本技术提供了一种特效色卡的处理方法,具体包括以下步骤:
3、s1:将特效色卡对应的颜色映射表制作成用三基色作为xyz坐标轴的三维矩阵;其中,三基色包括第一三基色元素、第二三基色元素和第三三基色元素;xyz轴的取值范围为三基色的像素值取值范围;
4、s2:以第三三基色元素对应z轴方向对三维矩阵进行切片,将三维矩阵转换为lut图像;其中,lut图像中小方块个数为第三三基色元素的取值个数;每个小方块代表第三三基色元素的一个像素值,每个小方块的横轴和纵轴分别对应第一三基色元素和第二三基色元素;其中,视觉对象对第三三基色元素最不敏感;
5、这里需指出,视觉对象为对图像的观察者,现有实际应用中对应于人眼;
6、s3:再对lut图像中的小方块进行下采样,完成对特效色卡的处理。
7、进一步优选地,s1和s2之间对三维矩阵进行每2n个像素值抽样。
8、这里需指出,一般对三维矩阵的xyz轴均进行每4个像素值抽样,以使抽样获取的三维矩阵的数据密度在各个轴上均减少为原三维矩阵的1/4,对应的特效色卡的矩阵体积也会缩小为1/43;
9、进一步优选地,三基色为红色、绿色和蓝色;所述第一三基色元素为红色、第二三基色元素为绿色、第三三基色元素为蓝色;或所述第一三基色元素为绿色、第二三基色元素为红色、第三三基色元素为蓝色。
10、这里需指出,这里第一三基色元素和第二三基色元素可以分别为绿色和红色,本技术只对第三三基色元素限定为蓝色。
11、第二方面,本技术基于上述提供的特效色卡处理方法,提供了相应的图像滤镜处理方法,具体包括以下步骤:
12、获取待滤镜处理的图像中每一像素点对应的像素值,根据原色卡与特效色卡间的颜色转换表,或基于特效色卡采取寻址颜色转换方式,获取特效滤镜处理后的图像;其中,原色卡为待滤镜处理的图像对应的色卡;
13、其中,原色卡与特效色卡间的颜色转换表获取方法,包括以下步骤:
14、步骤一:根据待滤镜处理的图像对应原色卡第i个坐标点中第三三基色元素的像素值查找lut图像中对应的小方块;令i的初始值为0;
15、步骤二:在步骤一获取的小方块中查找原色卡第i个坐标点的第一三基色元素和第二三基色元素对应的坐标;
16、步骤三:根据特效色卡中第一三基色元素和第二三基色元素的坐标以及步骤一获取的小方块,获取原色卡中第i个坐标点对应特效色卡中的颜色;
17、步骤四:令i=i+1,转至步骤一,直至遍历完所有原色卡的坐标点,获取原色卡与特效色卡间的颜色转换表;
18、基于特效色卡采取寻址颜色转换方法,包括以下步骤:
19、步骤一:根据待处理滤镜图像的像素点中第三三基色元素的像素值查找lut图像中对应的小方块;令i的初始值为0;
20、步骤二:在步骤一获取的小方块中查找待处理滤镜图像的像素点的第一三基色元素和第二三基色元素对应的坐标;
21、步骤三:根据特效色卡中第一三基色元素和第二三基色元素的坐标以及步骤一获取的小方块,获取待处理滤镜图像的像素点对应特效色卡中的颜色;
22、步骤四:令i=i+1,转至步骤一,直至遍历完所有待处理滤镜图像的像素点,获取特效滤镜处理后的图像。
23、这里需指出,本技术中只要对图像进行同一种滤镜处理,则只需要获取一次原色卡与特效色卡间的颜色转换表,可以大大提升图像滤镜处理的效率。
24、进一步优选地,图像滤镜处理方法在gpu中运行。
25、这里需指出,由于gpu负责密集型算法计算,图像滤镜处理方法在gpu上运行会大大提高计算性能,但是本技术包括但不限于在gpu上图像滤镜处理。
26、进一步优选地,查找特效色卡中小方块的计算公式为:
27、ysq1=f(f(pb*nsq*2)/nh)
28、xsq1=f(pb*nsq)-ysq1*nw
29、ysq2=f(c(pb*nsq*2)/nh)
30、xsq2=c(pb*nsq)-ysq2*nw
31、其中,(xsq1,ysq1)和(xsq2,ysq2)为相邻两小方块的横纵坐标,横坐标代表小方块所在行,纵坐标代表小方块所在列;pb为原色卡第i个坐标点中第三三基色元素的像素值;nsq为小方块总个数-1,小方块的编号从0开始;nw和nh为小方块在行和列上的个数;f为floor函数,含义为向下取整;c为ceil函数,含义为向上取整;nw和nh取2m,m是整数。
32、这里需指出,由于本技术中的特效色卡获取过程中存在下采样操作,因此,按照原色卡中蓝色像素值查找小方块时,很大概率会出现不在某一小方块上,此时,选取第三三基色元素的像素值所介于的相邻两个小方块。
33、进一步优选地,原色卡第i个坐标点或待滤镜处理的图像中第i个像素点的第一三基色元素和第二三基色元素在小方块中对应的坐标计算公式为:
34、
35、
36、
37、
38、其中,(xnew1、ynew1)和(xnew2、ynew2)分别为原色卡第i个坐标点的第一三基色元素和第二三基色元素在相邻两个小方块中的坐标;wi和hi分别为特效色卡的宽和高。
39、这里需指出,由于该步骤在gpu中执行,因此,需要对特效色卡建立二维坐标,每个小方块的横纵坐标均代表第一三基色元素和第二三基色元素的像素值取值;按照小方块的排列顺序,在gpu中重新构建二维坐标,wi和hi分别为特效色卡的宽和高,这里的宽和高是在gpu中构建的二维坐标的概念。
40、进一步优选地,原色卡中第i个坐标点或待滤镜处理的图像中第i个像素点对应特效色卡中的颜色为:
41、c1=t2d(cmap,(xnew1,ynew1))
42、c2=t2d(cmap,(xnew2,ynew2))
43、fc=mix(c1,c2,fr(pb*nsq))
44、其中,t2d为texture2d函数缩写,含义是读取的当前坐标纹理转换为像素值;cmap为输入色卡纹理;mix为混合函数,将c1,c2按照fr(pb*nsq)的值进行混合;fr为函数fract的缩写,含义为返回参数中浮点数的小数部分;t2d、mix、fr为gpu渲染api缩写;c1、c2为原色卡中第i个坐标点在两个小方块中的颜色;fc为原色卡第i个坐标点对应特效色卡中的颜色。
45、第三方面,本技术提供了一种特效色卡的处理系统,包括:
46、三维坐标构建模块,用于将特效色卡对应的颜色映射表制作成用三基色作为xyz坐标轴的三维矩阵;其中,三基色包括第一三基色元素、第二三基色元素和第三三基色元素;xyz轴的取值范围为三基色的像素值取值范围;
47、lut图像构建模块,用于以第三三基色元素对应z轴方向对三维矩阵进行切片,将三维矩阵转换为lut图像;其中,lut图像中小方块个数为第三三基色元素的取值个数,每个小方块代表第三三基色元素的一个像素值;每个小方块的横轴和纵轴分别对应第一三基色元素和第二三基色元素;其中,视觉对象对第三三基色元素最不敏感;
48、lut图像下采样模块,用于对lut图像中的小方块进行下采样,完成对特效色卡的处理。
49、进一步优选地,特效色卡的处理系统还包括三维矩阵下采样模块,用于对三维矩阵进行每2n个像素值抽样。
50、进一步优选地,三维坐标构建模块、lut图像构建模块和lut图像下采样模块中的三基色为红色、绿色和蓝色;第一三基色元素为红色、第二三基色元素为绿色、第三三基色元素为蓝色;或第一三基色元素为绿色、第二三基色元素为红色、第三三基色元素为蓝色。
51、第四方面,本技术提供了一种图像滤镜处理系统,包括:颜色转换表构建模块或寻址颜色转换模块、初始图像获取模块和滤镜处理图像存储模块;
52、初始图像获取模块用于获取待滤镜处理的图像中每一像素点对应的像素值;
53、滤镜处理图像存储模块用于获取特效滤镜处理后的图像;
54、颜色转换表构建模块用于存储和构建原色卡与特效色卡间的颜色转换表;包括:第一小方块查找单元、第一两原色坐标查找单元和第一颜色获取单元;
55、第一小方块查找单元用于根据原色卡坐标点中第三三基色元素的像素值查找lut图像中对应的小方块;
56、第一两原色坐标查找单元用于在小方块查找单元获取的小方块中查找原色卡坐标点的第一三基色元素和第二三基色元素对应的坐标;
57、第一颜色获取单元用于根据特效色卡中第一三基色元素和第二三基色元素的坐标以及小方块查找单元获取的小方块,获取原色卡中坐标点对应特效色卡中的颜色;
58、寻址颜色转换模块用于采用待滤镜处理的图像,基于特效色卡进行寻址颜色转换;包括:第二小方块查找单元、第二两原色坐标查找单元和第二颜色获取单元;
59、第二小方块查找单元用于根据待处理滤镜图像的像素点中第三三基色元素的像素值查找lut图像中对应的小方块;
60、第二两原色坐标查找单元用于在小方块查找单元获取的小方块中查找待处理滤镜图像中像素点的第一三基色元素和第二三基色元素对应的坐标;
61、第二颜色获取单元用于根据特效色卡中第一三基色元素和第二三基色元素的坐标以及小方块查找单元获取的小方块,获取滤镜图像的像素点对应特效色卡中的颜色。
62、进一步优选地,图像滤镜处理系统设置于gpu中。
63、进一步优选地,第一小方块查找单元和第二小方块查找单元中小方块的计算公式为:
64、ysq1=f(f(pb*nsq*2)/nh)
65、xsq1=f(pb*nsq)-ysq1*nw
66、ysq2=f(c(pb*nsq*2)/nh)
67、xsq2=c(pb*nsq)-ysq2*nw
68、其中,(xsq1,ysq1)和(xsq2,ysq2)为查找到的相邻两小方块的横纵坐标,横坐标代表小方块所在行,纵坐标代表小方块所在列;pb为原色卡第i个坐标点或待滤镜处理的图像中第i个像素点中第三三基色元素的像素值;nsq为小方块总个数-1,小方块的编号从0开始;nw和nh为小方块在行和列上的个数;f为floor函数,含义为向下取整;c为ceil函数,含义为向上取整;nw和nh取2m,m是整数。
69、进一步优选地,第一两原色坐标查找单元和第二两原色坐标查找单元中第一三基色元素和第二三基色元素在小方块中对应的坐标计算公式为:
70、
71、
72、
73、
74、其中,(xnew1、ynew1)和(xnew2、ynew2)分别为原色卡第i个坐标点或待滤镜处理的图像中第i个像素点的第一三基色元素和第二三基色元素在相邻两个小方块中的坐标;wi和hi分别为特效色卡的宽和高。
75、进一步优选地,颜色获取单元中色卡中第i个坐标点对应特效色卡中的颜色为:
76、c1=t2d(cmap,(xnew1,ynew1))
77、c2=t2d(cmap,(xnew2,ynew2))
78、fc=mix(c1,c2,fr(pb*nsq))
79、其中,t2d为texture2d函数缩写,含义是读取的当前坐标纹理转换为像素值;cmap为输入色卡纹理;mix为混合函数,将c1,c2按照fr(pb*nsq)的值进行混合;fr为函数fract的缩写,含义为返回参数中浮点数的小数部分;t2d、mix、fr为gpu渲染api缩写;c1、c2为原色卡中第i个坐标点或待滤镜处理的图像中第i个像素点在两个小方块中的颜色;fc为原色卡第i个坐标点或待滤镜处理的图像中第i个像素点对应特效色卡中的颜色。
80、第五方面,本技术提供一种电子设备,包括:至少一个存储器,用于存储程序;至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行第一方面或第一方面的进一步优选地的实现方式所描述的方法。
81、第六方面,本技术提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行第一方面或第一方面的进一步优选地的实现方式所描述的方法。
82、第七方面,本技术提供一种计算机程序产品,当计算机程序产品在处理器上运行时,使得处理器执行第一方面或第一方面的进一步优选地的实现方式所描述的方法。
83、第八方面,本技术提供一种电子设备,包括:至少一个存储器,用于存储程序;至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行第二方面或第二方面的进一步优选地的实现方式所描述的方法。
84、第九方面,本技术提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行第二方面或第二方面的进一步优选地的实现方式所描述的方法。
85、第十方面,本技术提供一种计算机程序产品,当计算机程序产品在处理器上运行时,使得处理器执行第二方面或第二方面的进一步优选地的实现方式所描述的方法。
86、可以理解的是,上述第五方面至第七方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
87、可以理解的是,上述第八方面至第十方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
88、总体而言,通过本技术所构思的以上技术方案与现有技术相比,具有以下有益效果:
89、本技术提供了一种特效色卡的处理方法,其中,以第三三基色元素对应z轴方向对三维矩阵进行切片,将三维矩阵转换为lut图像;再对lut图像中的小方块进行下采样,完成对色卡的处理;基于对于rgb的三种颜色来说,人眼对于红色和绿色最为敏感,对于蓝色最不敏感;因此基于这一原理,在图像效果没有明显损失的情况下,使特效色卡的体积明显降低,解码时间明显缩短。
90、本技术提供了一种特效色卡的处理方法,其中,对三维矩阵进行每2n个像素值抽样,可以使得特效色卡的体积明显减少,可以缩短色卡解码时间。
91、本技术提供了一种图像滤镜处理方法,其中,提供了一种原色卡与特效色卡间的颜色转换表获取方法,只要对图像进行同一种滤镜处理,则只需要获取一次原色卡与特效色卡间的颜色转换表,可以大大提升图像滤镜处理的效率。
92、本技术提供了一种图像滤镜处理方法,其在gpu中运行,由于gpu负责密集型算法计算,图像滤镜处理方法在gpu上运行会大大提高计算性能。
1.一种特效色卡的处理方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的处理方法,其特征在于,s1和s2之间对三维矩阵进行每2n个像素值抽样。
3.根据权利要求1或2所述的处理方法,其特征在于,所述三基色为红色、绿色和蓝色;所述第一三基色元素为红色、第二三基色元素为绿色、第三三基色元素为蓝色;或所述第一三基色元素为绿色、第二三基色元素为红色、第三三基色元素为蓝色。
4.一种基于权利要求1至3任一所述的处理方法的图像滤镜处理方法,其特征在于,具体包括以下步骤:
5.根据权利要求4所述的图像滤镜处理方法,其特征在于,其在gpu中运行。
6.根据权利要求5所述的图像滤镜处理方法,其特征在于,查找特效色卡中小方块的计算公式为:
7.根据权利要求6所述的图像滤镜处理方法,其特征在于,原色卡第i个坐标点或待滤镜处理的图像中第i个像素点的第一三基色元素和第二三基色元素在小方块中对应的坐标计算公式为:
8.根据权利要求7所述的图像滤镜处理方法,其特征在于,原色卡中第i个坐标点或待滤镜处理的图像中第i个像素点对应特效色卡中的颜色为:
9.一种特效色卡的处理系统,其特征在于,包括:
10.一种图像滤镜处理系统,其特征在于,包括:颜色转换表构建模块或寻址颜色转换模块、初始图像获取模块和滤镜处理图像存储模块;