发明内容
本发明提供一种带透明度用户界面信息的处理方法和设备,用以解决带透明度的GUI图像写入和读出逻辑内存会造成内存空间和带宽资源浪费的问题。
为达到上述目的,本发明一方面提供了一种带透明度用户界面信息的处理方法,所述方法至少包括以下步骤:
将获取到的32位的RGBA数据进行透明度嵌入处理,转换为16位的嵌入YUV数据;
将转换后的16位的嵌入YUV数据与会议采集的YUV数据进行图像叠加,生成带透明度用户界面信息。
其中,所述将获取到的32位的RGBA数据进行透明度嵌入处理,转换为16位的嵌入YUV数据,具体包括:
将获取到的32位的RGBA数据转换为16位的YUV数据和8位的透明度数据;
根据预设规则,将所述8位的透明度数据的位数压缩;
将位数压缩后的透明度数据嵌入所述16位的YUV数据,生成16位的嵌入YUV数据。
其中,根据预设规则,将所述8位的透明度数据的位数压缩,具体为:
根据所述8位的透明度数据的内容所对应的透明度区间,将所述8位的透明度数据压缩为3位的透明度数据。
其中,所述3位的透明度数据的内容,至少表示以下信息中的一项:
完全透明、25%透明、50%透明、75%透明和完全不透明。
其中,所述将获取到的32位的RGBA数据进行透明度嵌入处理,转换为16位的嵌入YUV数据之后,还包括:
将转换后的16位的嵌入YUV数据存入逻辑内存。
其中,所述将转换后的16位的嵌入YUV数据与会议采集的YUV数据进行图像叠加,生成带透明度用户界面信息,具体为:
在逻辑内存中读取16位的嵌入YUV数据,分离为16位的YUV数据和位数压缩后的透明度数据;
将16位的YUV数据和位数压缩后的透明度数据与会议采集的YUV数据进行图像叠加,生成带透明度用户界面信息;
将所述带透明度用户界面信息输出给显示设备进行显示。
另一方面,本发明还提供了一种处理设备,至少包括:
获取模块,用于获取32位的RGBA数据;
转换模块,用于将所述获取模块所获取到的32位的RGBA数据进行透明度嵌入处理,转换为16位的嵌入YUV数据;
叠加模块,用于将所述转换模块转换后的16位的嵌入YUV数据与会议采集的YUV数据进行图像叠加,生成带透明度用户界面信息。
其中,所述转换模块,具体用于:
将所述获取模块所获取到的32位的RGBA数据转换为16位的YUV数据和8位的透明度数据,并根据预设规则,将所述8位的透明度数据的位数压缩,之后,将位数压缩后的透明度数据嵌入所述16位的YUV数据,生成16位的嵌入YUV数据。
其中,所述处理设备,还包括逻辑内存,用于存储所述转换模块所转换的16位的嵌入YUV数据。
其中,所述叠加模块,具体用于:
在所述逻辑内存中读取16位的嵌入YUV数据,分离为16位的YUV数据和位数压缩后的透明度数据,并将16位的YUV数据和位数压缩后的透明度数据与会议采集的YUV数据进行图像叠加,生成带透明度用户界面信息,之后,将所述带透明度用户界面信息输出给显示设备进行显示。
与现有技术相比,本发明具有以下优点:
通过应用本发明的技术方案,在将RGBA数据转换为YUV数据的过程中,对于表示透明度的Alpha分量进行数位的压缩,并嵌入转换后的YUV数据中,生成包含透明度信息的嵌入YUV数据,从而,在透明度效果能得到保证的情况下,将需要传输的数据量进行降低,节省了在传输和中间存储过程中对于系统资源以及逻辑内存空间的占用,并将GUI逻辑内存带宽性能进行了改善,提高了相应的处理效率。
具体实施方式
如背景技术所述,由于逻辑内存接口带宽的限制,按照现有的处理方式,对然显示数据的位数被压缩,但是在显示数据的读写过程中,仍旧需要通过填0处理,将压缩后的数据补足位数后再进行处理,从而,导致无效信息需要额外占用带宽资源,造成了内存接口中的带宽资源的浪费,并且,由于带宽资源没有得到充分利用,也进一步影响了数据传输量,降低了系统的处理效率。
考虑到现有的逻辑内存的位数为32位,因此,在图像数据的传输过程中,只要数据单元的位数高于16位,那么,每次可并行传输的数据就只能是一个像素点,同时,还会造成接口带宽资源的浪费,相反,如果数据单元的位数等于或低于16位,便可实现两个像素点甚至多个像素点的并行传输。
考虑到视频逻辑处理系统所采用的YUV数据的位数为16位,所以,一种较优的处理策略是将图像数据传输过程中的带透明度的数据单元的位数压缩为16位,这样,在32位的逻辑内存接口中就可以实现两个数据单元的并行传输,一方面,避免了带宽资源的浪费,另一方面,也提高了数据单元出的传输效率。
基于这样的思路,本发明提出了一种带透明度用户界面信息的处理方法,在保持YUV数据大小不变的情况下,将透明度数据压缩后嵌入到YUV数据中,从而,使32位的RGBA数据转化为16位的嵌入YUV数据,达到充分利用接口带宽资源,并提高传输效率的目的。
如图2所示,为本发明提出的一种带透明度用户界面信息的处理方法的流程示意图,具体包括以下步骤:
步骤S201、将获取到的32位的RGBA数据进行透明度嵌入处理,转换为16位的嵌入YUV数据。
为了具体说明上述的转换过程,如图3所示,为本发明实施例所提出的一种数据转换过程的示意图,具体的转换过程包括:
步骤S301、将获取到的32位的RGBA数据转换为16位的YUV数据和8位的透明度数据。
在上述的转换过程中,涉及了RGBA和YUV两种数据,首先,对这两种数据进行说明如下:
对于RGBA数据,Alpha通道一般用作表示不透明度参数。
如果一个像素的Alpha通道数值为0%,那么,该像素就是完全透明的(也就是看不见的),而如果一个像素的Alpha通道数值为100%,则意味着该像素是一个完全不透明的像素(传统的数字图像)。
相应的,如果Alpha通道的数值为在0%和100%之间的值,则该像素可以透过图像,将背景显示出来,就像透过玻璃(半透明性)进行显示,这种效果是简单的二元透明性(透明或不透明)所做不到的。这样的技术使数码合成变得容易。
在实际应用中,Alpha通道中的数值可以用百分比、整数或者像RGB参数那样用0到1的实数表示。有时,传统的RGBA数据也可以被写成ARGB数据,这样的数据与RGBA数据一样,只是该数据中的第一段信息是alpha(表示透明度)。比如,ARGB数据0x80FFFF00表示50%透明的黄色,其中,“0x80”表示Alpha通道的数值,因为所有的参数都在0到255的范围内表示,而“0x80”是128,大约是255的一半。
RGBA和ARGB只是名称和组合顺序上的差异,这样的变化并不会影响本发明的保护范围。
与之相对应的,YUV数据(亦称YCrCb)是被欧洲电视系统所采用的一种颜色编码方法,是PAL(Phase Alternating Line,逐行倒相)和SECAM(按顺序传送色彩与存储,又称塞康制,是一种法国研发的制式)模拟彩色电视制式采用的颜色空间。其中,Y代表亮度,UV代表色差,U和V是构成彩色的两个分量。
在本步骤中的转换过程具体为CSC色彩空间转换,RGB和YUV色彩空间可以相互转换,公式如下(RGB取值范围均为0-255):
Y=0.299R+0.587G+0.114B;
U=-0.147R-0.289G+0.436B;
V=0.615R-0.515G-0.100B;
R=Y+1.14V;
G=Y-0.39U-0.58V;
B=Y+2.03U。
这样的转换与现有技术的处理相类似,在此不再重复说明。
通过本步骤的转换,原有的32位的RGBA数据被分为了两部分,即表示色彩图像的YUV数据,和透明度数据。
步骤S302、根据预设规则,将8位的透明度数据的位数进行压缩。
在实际的应用场景中,上述的对透明度数据的压缩可以具体为:。
根据所述8位的透明度数据的内容所对应的透明度区间,将所述8位的透明度数据压缩为3位的透明度数据。
其中,所述3位的透明度数据的内容,至少表示以下信息中的一项:
完全透明、25%透明、50%透明、75%透明和完全不透明。
当然,根据实际的需要,可以设置不同的透明度数据内容,这样的变化并不影响本发明的保护范围。
步骤S303、将位数压缩后的透明度数据嵌入所述16位的YUV数据,生成16位的嵌入YUV数据。
通过上述处理,32位的RGBA数据被转换并压缩为16位的带透明度的嵌入YUV数据,其与传统的YUV数据的差别在于携带了透明度信息。
步骤S202、将转换后的16位的嵌入YUV数据与会议采集的YUV数据进行图像叠加,生成带透明度用户界面信息。
在实际应用,所述将获取到的32位的RGBA数据进行透明度嵌入处理,转换为16位的嵌入YUV数据之后,还包括将转换后的16位的嵌入YUV数据存入逻辑内存的操作,即对逻辑内存的写操作。
相应的,步骤S202的处理过程具体为:
在逻辑内存中读取16位的嵌入YUV数据(即对逻辑内存的读操作),分离为16位的YUV数据和位数压缩后的透明度数据。
将16位的YUV数据和位数压缩后的透明度数据与会议采集的YUV数据进行图像叠加,生成带透明度用户界面信息。
将所述带透明度用户界面信息输出给显示设备进行显示。
与现有技术相比,本发明具有以下优点:
通过应用本发明的技术方案,在将RGBA数据转换为YUV数据的过程中,对于表示透明度的Alpha分量进行数位的压缩,并嵌入转换后的YUV数据中,生成包含透明度信息的嵌入YUV数据,从而,在透明度效果能得到保证的情况下,将需要传输的数据量进行降低,节省了在传输和中间存储过程中对于系统资源以及逻辑内存空间的占用,并将GUI逻辑内存带宽性能进行了改善,提高了相应的处理效率。
为了进一步阐述本发明的技术思想,现结合具体的应用场景,对本发明的技术方案进行说明。
在实际的应用场景中,视频会议终端类的用户界面透明度一般只要求实现0、25%、50%、75%和100%5个透明度层次。由于人眼对于全透明和不透明敏感,对于其他透明度精度要求不是很高,所以,逻辑处理选择Alpha分量的高3位进行相应的数据设置,而舍弃低5位,从而实现对Alpha分量的数位压缩处理。
3位的Alpha分量可以表示8个状态,具体如表1所示:
表1Alpha值对应表
000 |
0%不透明 |
001 |
25%不透明 |
010 |
50%不透明 |
011 |
75%不透明 |
1xx |
100%不透明 |
其中,1xx可以表示以1开头的任意字符串均表示100%不透明,也可以表示以1开头的一个字符串表示100%不透明,而其他以1开头的字符串备用。
需要指出的是,上述的内容划分,以及相应的内容所对应的Alpha值都可以根据实际需要进行调整,这样的变化并不会影响本发明的保护范围。
如图4所示,为本发明提出的一种具体应用场景下的带透明度用户界面信息的处理方法的流程示意图。
在上述的处理过程中,将Alpha值由8位减小为3位后,位宽为YUV(16bit)+Alpha(3bit)共19位,但是,这样的数据写入32位的逻辑内存,同样需要在剩余的高13位进行填0处理,因此,仍然会浪费带宽资源。
考虑到实际应用中的GUI数据不是全彩色,而是只有几种颜色,因此,通过将3位Alpha数据嵌入到视频信号中,变为新的16位YUV’数据(即前述的嵌入YUV数据),从而,将两个像素点所对应的嵌入YUV数据同时进行传输。
通过这样的转换和嵌入,带Alpha分量的YUV’数据也可以用16位的数据表示,相应的,32位的逻辑内存以前一次只能写入1个像素点或读出1个像素点,而应用了本发明的技术方案后,现在一次能并行写入2个像素点或读出1个像素点,效率增加一倍,而具体到所传输的数据内容,以及最终显示的图像内容则没有明显区别,即对数据传输质量没有明显影响。
在实际的应用场景中,需要指出的是,对于YUV数据中的两个色差信道U和V,每个色差信道的抽样率是亮度信道(即Y信道)的一半,所以,水平方向的色度抽样率只是4:4:4的一半,即4:2:2。对非压缩的8比特量化的图像来说,每个由两个水平方向相邻的像素组成的宏像素需要占用4字节内存。
例如:下面的四个像素为:
[Y0 U0 V0][Y1 U1 V1][Y2 U2 V2][Y3 U3 V3]
那么,上述的四个像素所存放的码流为:
Y0 U0 Y1 V1 Y2 U2 Y3 V3
相应的映射出像素点为:
[Y0 U0 V1][Y1 U0 V1][Y2 U2 V3][Y3 U2 V3]
即第一个和第二个像素点共用了第一个像素点的U分量和第二个像素点的V分量,而第三个和第四个像素点共用了第三个像素点的U分量和第四个像素点的V分量。
进一步考虑到本发明所提出的技术方案所最终压缩的嵌入YUV数据所对应的像素点只有16位,而逻辑内存的带宽为32位,所以,可以同时传输两个像素点。
进而,由于第一个和第二个像素点已经共用了U和V两个色差分量,考虑到人眼对像素点的透明度分辨力有限,所以,也同样可以共用透明度分量(Alpha),将两个相邻像素点的RGBA数据所分离出的Alpha信息进行合并(具体的合并规则可以根据实际需要进行调整),从而,为两个相邻像素点共同生成一个Alpha数据分量,然后,将该Alpha数据分量进行分数压缩后嵌入到两个相邻的像素点所对应的YUV数据中。
如图5所示,具体的处理过程如下:
(1)第一像素点和第二像素点的RGBA数据分别完成了CSC转换,成为YUV数据,其中,第一像素点的YUV数据转换后所采用的色彩分量为U数据分量,第二像素点的YUV数据转换后所采用的色彩分量为V数据分量。
(2)合并第一像素点和第二像素点的Alpha分量,具体的合并规则可以根据实际需要设定。
(3)对合并后的Alpha分量进行数位压缩,从8位压缩为3位。
(4)将数位压缩后的Alpha分量嵌入第一像素点和第二像素点的YUV数据中,其中,第一像素点的Y数据分量(Y0)和U数据分量(U0)中分别嵌入1位Alpha分量,第二像素点的V数据分量(V1)中嵌入1位Alpha分量。
通过上述的处理,第一像素点和第二像素点所对应的数据量由最初的64位转换为最终的32位,可以通过逻辑内存的32位带宽进行读写。
另外,在实际的应用中,Alpha分量的数位压缩方式,在YUV数据中的嵌入方式和位置并不限于图5中所示的方式,任何能实现发明目的的技术方案都可以采用,这样的变化并不影响本发明的保护范围。
应用上述处理方案的具体应用场景下的带透明度用户界面信息的处理方法的流程示意图如图6所示。
在实际应用中,上述的两种处理方案可以根据实际需要进行选择,具体应用哪种处理方案对本发明的保护范围没有影响。
与现有技术相比,本发明具有以下优点:
通过应用本发明的技术方案,在将RGBA数据转换为YUV数据的过程中,对于表示透明度的Alpha分量进行数位的压缩,并嵌入转换后的YUV数据中,生成包含透明度信息的嵌入YUV数据,从而,在透明度效果能得到保证的情况下,将需要传输的数据量进行降低,节省了在传输和中间存储过程中对于系统资源以及逻辑内存空间的占用,并将GUI逻辑内存带宽性能进行了改善,提高了相应的处理效率。
为了实现本发明的技术方案,基于前述的说明,本发明还提出了一种处理设备,其结构示意图如图7所示,具体包括:
获取模块71,用于获取32位的RGBA数据;
转换模块72,用于将所述获取模块71所获取到的32位的RGBA数据进行透明度嵌入处理,转换为16位的嵌入YUV数据;
叠加模块73,用于将所述转换模块72转换后的16位的嵌入YUV数据与会议采集的YUV数据进行图像叠加,生成带透明度用户界面信息。
其中,所述转换模72块,具体用于:
将所述获取模块所获取到的32位的RGBA数据转换为16位的YUV数据和8位的透明度数据,并根据预设规则,将所述8位的透明度数据的位数压缩,之后,将位数压缩后的透明度数据嵌入所述16位的YUV数据,生成16位的嵌入YUV数据。
其中,所述处理设备,还包括逻辑内存74,用于存储所述转换模块72所转换的16位的嵌入YUV数据。
其中,所述叠加模块73,具体用于:
在所述逻辑内存74中读取16位的嵌入YUV数据,分离为16位的YUV数据和位数压缩后的透明度数据,并将16位的YUV数据和位数压缩后的透明度数据与会议采集的YUV数据进行图像叠加,生成带透明度用户界面信息,之后,将所述带透明度用户界面信息输出给显示设备进行显示。
与现有技术相比,本发明具有以下优点:
通过应用本发明的技术方案,在将RGBA数据转换为YUV数据的过程中,对于表示透明度的Alpha分量进行数位的压缩,并嵌入转换后的YUV数据中,生成包含透明度信息的嵌入YUV数据,从而,在透明度效果能得到保证的情况下,将需要传输的数据量进行降低,节省了在传输和中间存储过程中对于系统资源以及逻辑内存空间的占用,并将GUI逻辑内存带宽性能进行了改善,提高了相应的处理效率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施场景所述的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。