CN103024294B - 色键实现方法和装置 - Google Patents
色键实现方法和装置 Download PDFInfo
- Publication number
- CN103024294B CN103024294B CN201210351801.3A CN201210351801A CN103024294B CN 103024294 B CN103024294 B CN 103024294B CN 201210351801 A CN201210351801 A CN 201210351801A CN 103024294 B CN103024294 B CN 103024294B
- Authority
- CN
- China
- Prior art keywords
- chroma key
- layer
- pixel
- alpha
- copy
- 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.)
- Active
Links
Landscapes
- Processing Of Color Television Signals (AREA)
- Studio Circuits (AREA)
Abstract
本发明公开了一种色键实现方法,包括以下步骤:对源图层进行预处理,将符合色键过滤条件的像素的alpha分量置零,其中所述色键过滤条件为非透明的颜色值;将预处理后的源图层与目标图层进行alpha混合模式的图层间拷贝。本发明突破了色键只能由硬件实现的限制,对于不支持硬件色键的平台,也可以实现色键功能,从而可支持更丰富多彩的应用。<!--1-->
Description
技术领域
本发明涉及广电及数字有线电视领域的图形处理,特别是一种色键实现方法和装置。
背景技术
首先介绍与本发明相关的一些概念。
图层(surface):主要结构是指向一个映射内存的buffer,这块内存中存放的就是需要组成图像的每个像素的颜色数据。创建图层时用参数指定:width,height,pitch,pixelformat。pixelformat指图层像素格式,一旦创建便不能改变,常用格式为ARGB8888。参见图1,图层内的每个像素有其像素格式,pitch为每个像素所占内存的字节数,width*height*pitch也就决定了图层大小,即该图层所占内存空间的大小。
像素格式(pixelformat):像素色彩按分量的大小和排列。这种格式以每个像素所使用的总位数以及用于存储像素色彩的红、绿、蓝和alpha分量的位数指定。常用的像素格式有ARGB1555,ARGB8888。例如ARGB8888按照|Alpha|Red|Green|Blue|各分量都是8位,那么一个像素的大小就是32位,即4字节。
alpha分量:计算机图形学中度量像素不透明度的单位。具有最大alpha值的像素是不透明的,alpha值为零的像素是透明的,而具有中间值的像素是半透明的,并且透明度由最大alpha值到最小值之间均匀递增。
图层间拷贝(blit):图层的核心就是一块存有像素数据的内存,图层间拷贝可以理解为把一个图层的一堆像素拷贝到另一个目标图层上,那么这个目标图层就像贴纸一样被贴上一层新的图像。数据从一个图层复制到另一个图层时,产生缩放、颜色格式变化、透明位指定等等的变化。而在拷贝的时候若加上特效,特效的本质就是拷贝的过程中对像素进行处理,然后把处理过后的“图像”给“贴”到目标图层。例如色键功能(下文还将述及),就是判断源图层每个像素是否符合色键设置,若符合不拷贝该像素,若不符合则拷贝过去。
alpha混合(alphablending):即半透明混合,是图层间拷贝的一种特效处理,是组合同时使用像素颜色和alpha值的两个图像以确定最后产生的像素的颜色的方法。其使得一个图像可以呈现在另一个图像的上面,从而产生两个图像混合显示的效果。例如,当混合两个像素时,两个像素的颜色组成元素首先乘以其alpha值,然后,底部像素乘以顶部像素的alpha值的倒数,并加到顶部像素中以形成最终的混合颜色。如果源图层某区域像素的alpha值为0,那么在进行alpha混合的图层间拷贝后,该区域相当于被透明掉直接显示目标图层的内容。
色键(colorkey):如上已述及,色键功能是一种用电子技术方法所完成的特技功能,是一种键控特技效果。简单来说,就是把图像中一种或几种特定的颜色变成透明的以便合成。色键用于选择像素以实现透明或半透明效果的颜色值。例如,当在图形中使用硬件图层拷贝时,矩形区域中除设置为色键的值以外的所有像素都拷贝。这样便在表面创建出了非矩形的子图形。使用色键,可以在另一平面上显示图片时使选定的前景像素显示或选定的背景像素来覆盖,形象地讲,就是把一个图片的某种颜色扣掉,再叠加到另一幅图片上。
现有的图层间拷贝的色键功能均依靠硬件来实现。对于硬件色键而言,是在图层拷贝参数中添加色键设置,而在进行拷贝时候使用硬件来实现色键功能。其中,源图层拷贝到目标图层时,逐个像素进行对比,若符合色键设置条件则滤掉该像素,合并后图层该位置的像素为目标图层的对应像素,否则为源图层的对应像素。然而,部分平台并不具有硬件色键功能。此外,有的平台的硬件只有ARGB模式色键功能,没有RGB模式色键功能。
发明内容
本发明的一个目的就是针对现有技术的不足,提供一种方法,可以在硬件不支持色键时实现色键功能。
本发明的另一目的是提供一种相应的实现色键功能的装置。
为实现上述目的,本发明采用以下技术方案:
一种色键实现方法,包括以下步骤:
对源图层进行预处理,将符合色键过滤条件的像素的alpha分量置零,其中所述色键过滤条件为非透明的颜色值;
将预处理后的源图层与目标图层进行alpha混合模式的图层间拷贝。
所述色键过滤条件为色键像素的RGB分量或色键像素的ARGB分量。
优选地,在进行所述预处理之前,备份源图层。
所述alpha混合以硬件或软件方式实现。
一种色键实现装置,包括:
预处理模块,对源图层进行预处理,将符合色键过滤条件的像素的alpha分量置零,其中所述色键过滤条件为非透明的颜色值;
图层间拷贝模块,将预处理后的源图层与目标图层进行alpha混合模式的图层间拷贝。
本发明有益的技术效果在于:
本发明提供了色键软实现的方法,即通过对源图层进行预处理,将符合色键条件的像素的alpha分量预先置0,然后在拷贝时做一次alpha混合,将源图层与目标图层进行alpha混合,使图层间拷贝实现色键功能。通过上述方法实现色键,其所能获得的图层混合效果与硬件色键相同。本发明突破了色键只能由硬件实现的限制,对于不支持硬件色键的平台,也可以通过本发明来实现该功能,从而可支持更丰富多彩的应用。
附图说明
图1为图层的结构示意图;
图2为本发明一个实施例的色键实现方法的流程图;
具体实施方式
以下通过实施例结合附图对本发明进行进一步的详细说明。
请参阅图2,在一个实施例里,在图层间拷贝之前,先进行图层预处理。
具体来说,在需处理的图层区域内逐个像素遍历与色键值作对比,将符合色键过滤条件的像素的alpha值设为0。应注意的是,当过滤的色键为0x00000000时,并不需要对图层做预处理,因为这种情况满足0x00000000色键的像素本身的alpha值就为0,再赋一次值只会影响性能。
色键可分RGB或ARGB两种模式,RGB模式表示当图层像素的RGB分量与指定色键像素的RGB分量相同时,视为该像素需要过滤掉。ARGB模式大致相同,表示当图层像素的ARGB分量即整个像素与色键像素的ARGB分量相同时,视该像素需要过滤掉。在本发明的一个实施例里,可将色键像素的RGB分量作为色键过滤条件,从而克服现有平台只有ARGB模式硬件色键功能而没有RGB模式色键功能的缺点。
接下来,将经预处理的源图层与目标图层进行alpha混合模式的图层间拷贝操作。由于alpha混合是对透明度的混合处理,即当源图层像素的alpha值为0,那么混合后的像素就是目标图层对应的像素,即将源图层该像素透明化。
优选地,当一个应用中创建了若干张图层,对于要与其他图层进行多次拷贝的源图层先进行一次预处理,然后便可多次在图层拷贝中执行alphablend混合以达到色键效果。为避免多次对图层做预处理而影响性能,图层预处理独立于图层拷贝进行,两者可以放在两个函数中实现,即使用一个预处理函数做预处理,然后循环使用拷贝函数进行贴图。
由于预处理会对源图层像素造成一定的破坏,优选地,预处理之前可以先备份一张源图层以便必要时可以还原,供后续该图层作其他作用。
在一个具体实施例里,图层预处理可采用以下典型代码:
经上述预处理后,拷贝图层时对像素实施alpha混合,从而可产生与硬件色键功能一样的效果。alpha混合过程的典型代码如下:
if(colorkey_flag)
bltsetting.alphablend_flag=true;
blit();
alpha混合一般可由硬件去实现,在图层间拷贝时在参数上选择alpha混合功能即可。
alpha混合功能也可以由软件实现,例如,在图层拷贝函数blit()中使用ipanel提供的SRCOVER公式:
Out.Red=(Src.Alpha*Src.Red+(0xff-Src.Alpha)*Dst.Red)/0xff
Out.Green=(Src.Alpha*Src.Green+(0xff-Src.Alpha)*Dst.Green)/0xff
Out.Blue=(Src.Alpha*Src.Blue+(0xff-Src.Alpha)*Dst.Blue)/0xff
Out.Alpha=Src.Alpha+(0xff-Src.Alpha)*Dst.Alpha/0xff
从以上公式可以看出,如果Src.alpha=0,那么Out.alpha=Dst.alpha,而其他三个颜色分量也会等于Dst对应颜色分量。也就是说如果Src的alpha为0,那么通过半透效果混合后的Out的像素就是Dst的像素,也就起到了滤色的功能。
从提高性能方面考虑,alpha混合可以并非纯粹使用软件实现,也可以使用硬件alpha混合做一次像素级的处理,此时不需要在图层拷贝时逐个像素去对比拷贝,从而很大程度提高性能。
在一个实施例里,一种色键实现装置包括:
预处理模块,对源图层进行预处理,将符合色键过滤条件的像素的alpha分量置零,其中所述色键过滤条件为非透明的颜色值;
图层间拷贝模块,将预处理后的源图层与目标图层进行alpha混合模式的图层间拷贝。以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (4)
1.一种色键实现方法,其特征在于,包括以下步骤:
对源图层进行预处理,将符合色键过滤条件的像素的alpha分量置零,其中所述色键过滤条件为非透明的颜色值;
将预处理后的源图层与目标图层进行alpha混合模式的图层间拷贝;
其中,在一个应用中创建了若干张图层,对于要与其他图层进行多次拷贝的源图层先进行一次预处理,然后多次在图层拷贝中执行alpha混合以达到色键效果;图层的所述预处理独立于图层拷贝进行,使用一个预处理函数做预处理,然后循环使用拷贝函数进行贴图,以避免多次对图层做预处理而影响性能;
其中,色键具有RGB模式或ARGB模式,RGB模式表示当图层像素的RGB分量与指定色键像素的RGB分量相同时,视为该像素需要过滤掉,ARGB模式表示当图层像素的ARGB分量即整个像素与色键像素的ARGB分量相同时,视该像素需要过滤掉;其中对于只有ARGB模式硬件色键功能而没有RGB模式色键功能的情况,将色键像素的RGB分量作为色键过滤条件。
2.如权利要求1所述色键实现方法,其特征在于,所述色键过滤条件为色键像素的RGB分量或色键像素的ARGB分量。
3.如权利要求1所述色键实现方法,其特征在于,在进行所述预处理之前,备份源图层。
4.如权利要求1所述色键实现方法,其特征在于,所述alpha混合以硬件或软件方式实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210351801.3A CN103024294B (zh) | 2012-09-20 | 2012-09-20 | 色键实现方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210351801.3A CN103024294B (zh) | 2012-09-20 | 2012-09-20 | 色键实现方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103024294A CN103024294A (zh) | 2013-04-03 |
CN103024294B true CN103024294B (zh) | 2016-04-27 |
Family
ID=47972382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210351801.3A Active CN103024294B (zh) | 2012-09-20 | 2012-09-20 | 色键实现方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103024294B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813482A (zh) * | 2020-07-09 | 2020-10-23 | 长沙景嘉微电子股份有限公司 | Gpgpu中的2d桌面色键方法、装置及图形处理器 |
CN117710271B (zh) * | 2024-02-06 | 2024-04-19 | 成都戎盛科技有限公司 | 一种基于海思2d加速平台的透明度处理方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1801888A (zh) * | 2005-01-05 | 2006-07-12 | 英华达(上海)电子有限公司 | 一种在数码相机上实现图片背景转换的方法 |
CN101668144A (zh) * | 2009-09-24 | 2010-03-10 | 深圳市同洲电子股份有限公司 | 实现图像层在视频层上半透明效果的方法、装置和机顶盒 |
CN102395008A (zh) * | 2011-11-21 | 2012-03-28 | 深圳市茁壮网络股份有限公司 | 一种色键处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8611728B2 (en) * | 2009-02-10 | 2013-12-17 | Thomson Licensing | Video matting based on foreground-background constraint propagation |
-
2012
- 2012-09-20 CN CN201210351801.3A patent/CN103024294B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1801888A (zh) * | 2005-01-05 | 2006-07-12 | 英华达(上海)电子有限公司 | 一种在数码相机上实现图片背景转换的方法 |
CN101668144A (zh) * | 2009-09-24 | 2010-03-10 | 深圳市同洲电子股份有限公司 | 实现图像层在视频层上半透明效果的方法、装置和机顶盒 |
CN102395008A (zh) * | 2011-11-21 | 2012-03-28 | 深圳市茁壮网络股份有限公司 | 一种色键处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103024294A (zh) | 2013-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11902613B2 (en) | Video transparent playing processing method, intelligent television, and storage medium | |
CN106875923B (zh) | 一种像素渲染方法及像素渲染装置 | |
CN106415479A (zh) | 多个显示管线驱动被划分的显示器 | |
CN107315275B (zh) | 显示方法、装置和计算机设备 | |
CN108615499A (zh) | 显示优化及显示驱动方法及装置、显示装置、存储介质 | |
JP2006087063A (ja) | 多重露光画像合成システム及び多重露光画像合成方法 | |
CN103139478A (zh) | 一种主副画面实时渲染的拍照方法 | |
CN104935902A (zh) | 图像色彩增强方法、装置及电子设备 | |
CN106899878A (zh) | 一种基于omap芯片的透明度可调的视频图像叠加方法及系统 | |
CN103024294B (zh) | 色键实现方法和装置 | |
CN102750685A (zh) | 一种图像处理的方法及其装置 | |
CN102722902B (zh) | 一种图形渲染流水线中光栅化阶段反走样的改进方法 | |
CN104392419A (zh) | 一种为图像添加暗角效果的方法 | |
CN104077792A (zh) | 一种漫画效果的图像处理方法 | |
CN104715454A (zh) | 一种抗锯齿图形叠加算法 | |
CN103903288B (zh) | 一种道路阴影绘制方法及装置 | |
EP4318373A1 (en) | Secure graphics watermark | |
WO2009092020A1 (en) | Multi-format support for surface creation in a graphics processing system | |
CN114288671A (zh) | 贴图制作方法、装置、设备及计算机可读介质 | |
CN103795925A (zh) | 一种可交互的主副画面实时渲染的拍照方法 | |
CN109766069B (zh) | 辅助显示方法、装置、电子设备及计算机可读存储介质 | |
CN101727878B (zh) | 单主机投影融合系统及其实现方法 | |
CN112201191B (zh) | 显示屏控制方法、装置、电子设备和可读存储介质 | |
KR102224038B1 (ko) | 그래픽 타일 합성 제어 | |
WO2021068666A1 (zh) | 一种显示屏的调整方法、存储介质及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |