一种图像处理的方法和装置技术领域
本发明涉及图像处理技术领域,尤其涉及一种图像处理的方法和装置。
背景技术
alpha混合技术在当前计算机图形图像操作中具有重大运用,很多游戏界面,绘图
操作、图像处理等技术领域都有涉及。一般的,alpha混合会使用mix-alpha混合算法,以及
port_duffalpha混合算法,这2类算法均可以使得图像之间进行alpha叠加等操作。但是都
是独立开为不同的模块,完全独立的2套运算模式,2套独立算法无法复用,在硬件实现上也
是分离开来。
这样两套独立算法在软件实现时,占用的代码很大,很复杂,在硬件实现时,占用
的芯片面积很大。
发明内容
为此,需要提供一种图像处理的方法和装置,解决图形图像处理过程占用代码或
者面积大的问题。
为实现上述目的,发明人提供了一种图像处理的方法,用于处理源图像素点和背
景像素点的混合,包括如下步骤:
获取源图像素点的源图alpha值、源图全局alpha值和源图颜色值;
根据源图混合模式值选择源图alpha值、源图全局alpha值或者源图alpha值与源
图全局alpha值的乘积值作为源图运算值;
根据源图混合因素值选择0、256、源图运算值、256与源图运算值的差值或者背景
预算值作为背景因素值;
根据源图颜色值与源图运算值算出源图颜色运算值;
获取背景像素点的背景alpha值、背景全局alpha值和背景颜色值;
根据背景混合模式值选择背景alpha值、背景全局alpha值或者背景alpha值与背
景全局alpha值的乘积值作为背景运算值;
根据背景混合因素值选择0、256、背景运算值、256与背景运算值的差值或者源图
预算值作为源图因素值;
根据背景颜色值与背景运算值算出背景颜色运算值;
将背景因素值乘于背景颜色运算值得到第一乘积,将源图因素值乘于源图颜色运
算值得到第二乘积,将第一乘积与第二乘积相加得到目的颜色值;
将源图运算值乘于源图因素值得到第三乘积,将背景因素值乘于背景运算值得到
第四乘积,将第三乘积与第四乘积相加得到目的alpha值。
进一步地,还包括如下步骤:
获取Alpha计算选择标志位,根据Alpha计算选择标志位和源图运算值生成新的源
图运算值,根据Alpha计算选择标志位和背景运算值生成新的背景运算值。
以及本发明还提供一种图像处理的装置,用于处理源图像素点和背景像素点的混
合,包括如下模块:
源图像素点获取模块:用于获取源图像素点的源图alpha值、源图全局alpha值和
源图颜色值;
源图运算值计算模块:用于根据源图混合模式值选择源图alpha值、源图全局
alpha值或者源图alpha值与源图全局alpha值的乘积值作为源图运算值;
背景因素值计算模块:用于根据源图混合因素值选择0、256、源图运算值、256与源
图运算值的差值或者背景预算值作为背景因素值;
源图颜色运算值计算模块:用于根据源图颜色值与源图运算值算出源图颜色运算
值;
背景像素点获取模块:用于获取背景像素点的背景alpha值、背景全局alpha值和
背景颜色值;
背景运算值计算模块:用于根据背景混合模式值选择背景alpha值、背景全局
alpha值或者背景alpha值与背景全局alpha值的乘积值作为背景运算值;
源图因素值计算模块:用于根据背景混合因素值选择0、256、背景运算值、256与背
景运算值的差值或者源图预算值作为源图因素值;
源图颜色运算值计算模块:用于根据背景颜色值与背景运算值算出背景颜色运算
值;
目的颜色值计算模块:用于将背景因素值乘于背景颜色运算值得到第一乘积,将
源图因素值乘于源图颜色运算值得到第二乘积,将第一乘积与第二乘积相加得到目的颜色
值;
目的alpha值计算模块:用于将源图运算值乘于源图因素值得到第三乘积,将背景
因素值乘于背景运算值得到第四乘积,将第三乘积与第四乘积相加得到目的alpha值。
进一步地,还包括如下模块:
Alpha计算选择模块:用于获取Alpha计算选择标志位,根据Alpha计算选择标志位
和源图运算值生成新的源图运算值,根据Alpha计算选择标志位和背景运算值生成新的背
景运算值。
区别于现有技术,上述技术方案整合mix_alpha和port_duffalpha运算算法,简
化2个不同算法对应逻辑,减少了alpha操作硬件所需面积,提高功耗利用率。
附图说明
图1为本发明方法实施例的流程图;
图2为本发明一具体实施方式的结构示意图。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实
施例并配合附图详予说明。
请参阅图1,本实施例一种图像处理的方法,用于处理源图像素点和背景像素点的
混合,本方法需要算得目的alpha值和目的颜色值,目的alpha值和目的颜色值可以用于图
像显示。本发明的方法可以运行在图2的装置中。
具体地,本方法包括如下步骤:步骤S101获取源图像素点的源图alpha值(As)、源
图全局alpha值(Ags)和源图颜色值(Cs);步骤S102根据源图混合模式值(src_blend_mode)
选择源图alpha值、源图全局alpha值或者源图alpha值与源图全局alpha值的乘积值作为源
图运算值(As”);步骤S103根据源图混合因素值(blend_fac_sel0)选择0、256、源图运算值、
256与源图运算值的差值或者背景预算值作为背景因素值(Fd);步骤S104根据源图颜色值
与源图运算值算出源图颜色运算值(Cs’);步骤S105获取背景像素点的背景alpha值(Ad)、
背景全局alpha值(Agd)和背景颜色值(Cd);步骤S106根据背景混合模式值(dst_blend_
mode)选择背景alpha值、背景全局alpha值或者背景alpha值与背景全局alpha值的乘积值
作为背景运算值(Ad”);步骤S107根据背景混合因素值(blend_fac_sel1)选择0、256、背景
运算值、256与背景运算值的差值或者源图预算值作为源图因素值(Fs);步骤S108根据背景
颜色值与背景运算值算出背景颜色运算值(Cd’);步骤S109将背景因素值乘于背景颜色运
算值得到第一乘积(mul1),将源图因素值乘于源图颜色运算值得到第二乘积(mul0),将第
一乘积与第二乘积相加得到目的颜色值(Cd);步骤S110将源图运算值乘于源图因素值得到
第三乘积(mul5),将背景因素值乘于背景运算值得到第四乘积(mul6),将第三乘积与第四
乘积相加得到目的alpha值(Ad)。
上述中的选择方式为多个中选择一个,根据用户输入的不同参数值(如源图混合
模式值),可以从下面的多个选择中选出一个作为下一步需要用到的参数,对应图2的表达
方式可以是倒梯形的方框。本发明通过输入不同的参数值,可以在本发明方法或者装置的
基础上实现2套形式的Alpha混合。可以减少alpha操作所需的代码数量、逻辑面积并减少功
耗,该方法或者装置设计为公共模块,可以减少IP的面积。
以下对改进前的方法和本发明的方法进行对比说明。alpha混合技术介绍:alpha
混合实际在很多网游游戏里面很常见,一般出现一些技能绚丽的透明半透明烟雾弹或者阴
影等效果,这些都是alpha混合效果。
alpha混合实际上的公式2套:
1,Mix(per-pixel/user-specified)alpha
data=(source×(ALPHA+11+destination×(255-ALPHA))>>8
2,Porter-Duff
Porter-DuffalphaisapremultipliedalphabetweentwolayerS。
Porter-Duffformula:
Cr=Cs*Fs+Cd*Fd
Ar=As*Fs+Ad*Fd
(C-color,A-alpha,s-source,d-destination,r-result,F-factor)而采用本方
案之后的效果为:
新Alpha运算结构对应的等式:
Cd=Fs0*Cs’+Fd0*Cd’(1)
Ad=Fsl*Asl”+Fdl*Adl”(2)
(Cd-dstcolor,Fs0-srcfactor0,Cs'-srccolor',Fd0~dstfactor0,Cd'-dst
color')
(Ad-dstalpha,Fsl-srcfactorl,Asl"-srcalpha",Fdl-dstfactorl,Adl'-
dstalpha")
本发明最终得到的结果就是基于公式的变换,得到alpha混合操作的各个参数,最
后得到最后的dstcolor(目的颜色值)以及最后的dstalpha(目的alpha值),所谓的逻辑
复用,意思就是通过这一套逻辑方法,基于软件上层的配置可以选择框图里面各个层次的
mux选择,进而实现对应数据流的走向。
在某些实施例中还包括步骤:获取Alpha计算选择标志位(alpha_cal_sel),根据
Alpha计算选择标志位和源图运算值(As_”)生成新的源图运算值(As”),根据Alpha计算选
择标志位和背景运算值(Ad_”)生成新的背景运算值(Ad”)。通过Alpha计算选择标志位,可
以扩充源图运算值和背景运算值的数据宽度。
需要说明的是,上述方法并不限定执行的步骤顺序,只要在执行该步骤的时候,步
骤内的各个值被计算出来可以调用即可。
以及本发明还提供一种图像处理的装置,如图2所示,用于处理源图像素点和背景
像素点的混合,包括如下模块:
源图像素点获取模块:用于获取源图像素点的源图alpha值、源图全局alpha值和
源图颜色值;源图运算值计算模块:用于根据源图混合模式值选择源图alpha值、源图全局
alpha值或者源图alpha值与源图全局alpha值的乘积值作为源图运算值;背景因素值计算
模块:用于根据源图混合因素值选择0、256、源图运算值、256与源图运算值的差值或者背景
预算值作为背景因素值;源图颜色运算值计算模块:用于根据源图颜色值与源图运算值算
出源图颜色运算值;背景像素点获取模块:用于获取背景像素点的背景alpha值、背景全局
alpha值和背景颜色值;背景运算值计算模块:用于根据背景混合模式值选择背景alpha值、
背景全局alpha值或者背景alpha值与背景全局alpha值的乘积值作为背景运算值;源图因
素值计算模块:用于根据背景混合因素值选择0、256、背景运算值、256与背景运算值的差值
或者源图预算值作为源图因素值;源图颜色运算值计算模块:用于根据背景颜色值与背景
运算值算出背景颜色运算值;目的颜色值计算模块:用于将背景因素值乘于背景颜色运算
值得到第一乘积,将源图因素值乘于源图颜色运算值得到第二乘积,将第一乘积与第二乘
积相加得到目的颜色值;目的alpha值计算模块:用于将源图运算值乘于源图因素值得到第
三乘积,将背景因素值乘于背景运算值得到第四乘积,将第三乘积与第四乘积相加得到目
的alpha值。图2中的线条具体显示了数据的流向和各个模块的连接关系,圆圈内打叉代表
了乘积运算,圆圈内加号代表了加法运算,两侧的箭头和参数代表了输入的参数值。本装置
通过逻辑复用,解决两套alpha混合图像逻辑占用面积大的问题,达到了面积减少的目的。
进一步地,还包括如下模块:Alpha计算选择模块:用于获取Alpha计算选择标志
位,根据Alpha计算选择标志位和源图运算值生成新的源图运算值,根据Alpha计算选择标
志位和背景运算值生成新的背景运算值。通过Alpha计算选择标志位,可以扩充源图运算值
和背景运算值的数据宽度。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实
体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存
在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖
非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些
要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终
端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的
要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此
外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解
为包括本数。
本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产
品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例
的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来
完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方
法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算
机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式
智能设备、车载智能设备等;所述的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪
存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。
上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的
流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每
一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机
程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指
令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的
功能的装置。
这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设
备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造
品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指
定的功能。
这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列
操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程
图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创
造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,
并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构
或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利
保护范围之内。