CN110689590A - 贴图的压缩编码方法、装置以及移动端设备 - Google Patents
贴图的压缩编码方法、装置以及移动端设备 Download PDFInfo
- Publication number
- CN110689590A CN110689590A CN201910929636.7A CN201910929636A CN110689590A CN 110689590 A CN110689590 A CN 110689590A CN 201910929636 A CN201910929636 A CN 201910929636A CN 110689590 A CN110689590 A CN 110689590A
- Authority
- CN
- China
- Prior art keywords
- pixel
- block
- sub
- value
- correction
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/004—Predictors, e.g. intraframe, interframe coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供了一种贴图的压缩编码方法、装置以及移动端设备,涉及贴图处理技术领域,应用于游戏客户端,包括:将贴图中的多个像素块中的第一像素块划分为多个子块,确定每个子块的基础像素值;均按照像素的原始像素值和子块的基础像素值,计算该像素对应于该子块的残差值,根据该残差值在第一绝对值集合和第二绝对值集合中选择该像素对应于该子块的第一绝对值和第二绝对值;均根据子块对应的多个第一绝对值所对应的待选的修正表的表号和多个第二绝对值所对应的待选的修正表的表号的均值,选择该子块的修正表;基于第一像素块的每个子块的修正表,对多个像素块进行压缩编码。能够解决贴图的压缩处理对处理能力要求过高,不适用于移动终端的问题。
Description
技术领域
本申请涉及贴图处理技术领域,尤其是涉及一种贴图的压缩编码方法、装置以及移动端设备。
背景技术
随着科技的不断发展以及用户需求的不断提升,游戏客户端运行过程中产生的贴图朝着高精度、高像素的方向发展,这也造成非常大的存储负担。
对贴图进行压缩可以极大将降低贴图的内存占用但是目前对贴图进行压缩的方式,一般会进行非常复杂的计算,例如,ETC1、ETC2压缩技术等等,对运行游戏客户端的移动终端的处理能力要求极高,或者,还有一些贴图压缩方式,虽然计算量小,但是精度非常差,用户体验不友好。
发明内容
本申请的目的在于提供一种贴图的压缩编码方法、装置以及移动端设备,以解决贴图的压缩处理对处理能力要求过高,不适用于移动终端的问题。
第一方面,本申请实施例提供了一种贴图的压缩编码方法,所述方法应用于移动终端上运行的游戏客户端,所述方法包括:
配置待选的修正表集合、第一绝对值集合和第二绝对值集合,其中,所述待选的修正表集合包括多个待选的修正表,每个待选的修正表对应一个表号,所述第一绝对值集合包括每个所述待选的修正表中修正值的绝对值较大的一个的绝对值,所述第二绝对值集合包括每个所述待选的修正表中修正值的绝对值较小的一个的绝对值;
获取所述游戏客户端运行过程中生成的贴图,并将所述贴图划分为多个像素块;
将所述多个像素块中的第一像素块划分为多个子块,并确定每个子块的基础像素值;
对于所述子块中的每个像素,均按照所述像素的原始像素值和所述子块的基础像素值,计算该像素对应于该子块的残差值,根据所述残差值,在所述第一绝对值集合和所述第二绝对值集合中选择该像素对应于该子块的第一绝对值和第二绝对值;
对于所述第一像素块中的每个子块,均根据所述子块对应的多个所述第一绝对值所对应的待选的修正表的表号和多个所述第二绝对值所对应的待选的修正表的表号的均值,选择该子块的修正表;
基于所述第一像素块的每个子块的修正表,对所述多个像素块进行压缩编码。
在一个可能的实现中,将所述多个像素块中的第一像素块划分为多个子块的步骤,包括:
将所述第一像素块按照横向子块划分规则划分为第一子块和第二子块;
将所述第一像素块按照纵向子块划分规则划分为第三子块和第四子块。
在一个可能的实现中,基于所述第一像素块的每个子块的修正表,对所述多个像素块进行压缩编码的步骤,包括:
基于所述第一子块和第二子块分别对应的修正表和基础像素值,将所述第一像素块压缩编码为第一待定编码,并确定所述第一像素块的原始像素值和所述第一待定编码解码后的像素值之间的第一压缩损失;
基于所述第三子块和第四子块分别对应的修正表和基础像素值,将所述第一像素块压缩编码为第二待定编码,并确定所述第一像素块的原始像素值和所述第二待定编码解码后的像素值之间的第二压缩损失;
将所述第一压缩损失和第二压缩损失中最小的一个对应的待定编码,作为所述第一像素块的编码。
在一个可能的实现中,所述第一像素块为所述多个像素块中的任意一个。
在一个可能的实现中,所述第一像素块为所述多个像素块中奇数列像素块中的任意一个;或者,所述第一像素块为所述多个像素块中偶数列像素块中的任意一个。
在一个可能的实现中,在将所述第一压缩损失和第二压缩损失中最小的一个对应的待定编码,作为所述第一像素块的编码的步骤之后,还包括:
对于所述多个像素块中除所述第一像素块之外的第二像素块,基于所述第一像素块的编码,对所述第二像素块进行压缩编码。
在一个可能的实现中,基于所述第一像素块的编码,对所述第二像素块进行压缩编码的步骤,包括:
对于所述多个像素块中除所述第一像素块之外的第二像素块,确定与所述第二像素块相邻的第一像素块的编码对应的目标子块划分规则;
将所述第二像素块按照所述目标子块划分规则划分为第五子块和第六子块,并确定第五子块和第六子块分别对应的基础像素值;
对于所述第五子块和第六子块中的每个像素:均按照所述像素的原始像素值和所述子块的基础像素值,计算该像素对应于该子块的残差值,根据所述残差值,在所述第一绝对值集合和所述第二绝对值集合中选择该像素对应于该子块的第一绝对值和第二绝对值;
根据所述第五子块对应的多个所述第一绝对值所对应的待选的修正表的表号和多个所述第二绝对值所对应的待选的修正表的表号的均值,选择第五子块的修正表;
根据所述第六子块对应的多个所述第一绝对值所对应的待选的修正表的表号和多个所述第二绝对值所对应的待选的修正表的表号的均值,选择第六子块的修正表;
基于第五子块和第六子块分别对应的修正表,对所述第二像素块进行压缩编码。
在一个可能的实现中,所述子块对应的多个所述第一绝对值所对应的待选的修正表的表号和多个所述第二绝对值所对应的待选的修正表的表号,通过指定数据类型的数据单元进行存储,其中,每个所述数据单元包括多个子单元,每个所述子单元的大小为3比特,每个所述子单元用于记录一个表号。
在一个可能的实现中,在获取所述游戏客户端运行过程中生成的贴图的步骤之前,还包括:
获取所述移动终端的线程分配上限;
根据所述线程分配上限通过枚举确定最优的线程分配参数;
基于所述最优的线程分配参数进行线程配置。
在一个可能的实现中,在根据所述线程分配上限通过枚举确定最优的线程分配参数的步骤之后,还包括:
向所述游戏客户端对应的服务器发送所述移动终端的硬件信息和所述最优的线程分配参数。
在一个可能的实现中,将所述多个像素块中的第一像素块划分为多个子块的步骤之前,还包括:
向所述游戏客户端对应的服务器发送线程分配参数的获取请求;
接收所述服务器响应所述获取请求发送的最优的线程分配参数;
基于所述最优的线程分配参数进行线程配置。
第二方面,提供了一种贴图的压缩编码装置,所述装置应用于移动终端上运行的游戏客户端,所述装置包括:
配置模块,用于配置待选的修正表集合、第一绝对值集合和第二绝对值集合,其中,所述待选的修正表集合包括多个待选的修正表,每个待选的修正表对应一个表号,所述第一绝对值集合包括每个所述待选的修正表中修正值的绝对值较大的一个的绝对值,所述第二绝对值集合包括每个所述待选的修正表中修正值的绝对值较小的一个的绝对值;
划分模块,用于获取所述游戏客户端运行过程中生成的贴图,并将所述贴图划分为多个像素块;
确定模块,用于将所述多个像素块中的第一像素块划分为多个子块,并确定每个子块的基础像素值;
第一选择模块,用于对于所述子块中的每个像素,均按照所述像素的原始像素值和所述子块的基础像素值,计算该像素对应于该子块的残差值,根据所述残差值,在所述第一绝对值集合和所述第二绝对值集合中选择该像素对应于该子块的第一绝对值和第二绝对值;
第二选择模块,用于对于所述第一像素块中的每个子块,均根据所述子块对应的多个所述第一绝对值所对应的待选的修正表的表号和多个所述第二绝对值所对应的待选的修正表的表号的均值,选择该子块的修正表;
编码模块,用于基于所述第一像素块的每个子块的修正表,对所述多个像素块进行压缩编码。
第三方面,本申请实施例又提供了一种移动端设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当移动端设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述的第一方面所述的贴图的压缩编码方法的步骤。
第四方面,本申请实施例又提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述的第一方面所述的贴图的压缩编码方法的步骤。
本申请实施例带来了以下有益效果:
本申请实施例提供的一种贴图的压缩编码方法及装置,通过根据所述残差值,在第一绝对值集合和第二绝对值集合中选择该像素对应于该子块的第一绝对值和第二绝对值,再根据子块对应的多个第一绝对值所对应的待选的修正表的表号和多个第二绝对值所对应的待选的修正表的表号的均值,选择该子块的修正表,便能够直接选择出针对该子块的修正表,本实施例提供的方法降低了修正表确定的复杂程度,大大减小了整个贴图压缩处理所需的计算量,进而显著的缩小修正计算的时间开销,在压缩后的图像质量的影响不大的前提下,更加快速的压缩,以达到实时压缩,提升了压缩处理的效率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种贴图的压缩编码方法的流程示意图;
图2为本申请实施例提供的由8个待选的修正表组成的待选的修正表集合的结构示意图;
图3为本申请实施例提供的由4*4的像素组成的第一像素块的结构示意图;
图4(a)为本申请实施例提供的2*4的子块的结构示意图;
图4(b)为本申请实施例提供的4*2的子块的结构示意图;
图5示出了本申请实施例提供的针对4*4的像素块被划分为2个4*2的子块情况的像素编码表格;
图6示出了本申请实施例提供的一种贴图的压缩编码装置的结构示意图;
图7示出了本申请实施例提供的一种移动端设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
现有的贴图压缩算法通常需要一个离线的处理过程,对于运行时产出的贴图难以及时处理。而移动终端上运行的游戏客户端中的场景需要数量庞大的贴图信息,若全部离线处理存储在数据包中则数据包将异常庞大。但是,如果在移动端进行在线贴图压缩,由于贴图量较大,在线压缩的处理量也会较大,导致压缩处理的速度较慢,进而影响游戏运行的效率。
例如,现有的离线压缩方式主要是通过对图像划分为像素块,并以像素块为单位进行压缩,对于每个像素块,需要尝试两种划分方法分别压缩,取误差较小的划分方式;以及尝试每个修正表对子块内像素与基本色之间的残差进行修正,取最优的修正方案;需要大量反复的尝试才能够确定最终的子块划分方式和修正方案。
本申请实施例提供了一种贴图的压缩编码方法、装置以及移动端设备,该方法能够直接选择出针对该子块的修正表,避免了对多个修正表的多次尝试过程,大大减小了整个贴图压缩处理所需的计算量,进而显著的缩小修正计算的成本开销,提高了压缩处理的速度,实现了更加快速的压缩以达到实时压缩,从而提升压缩处理的效率。
下面结合附图对本申请实施例进行进一步的介绍。
图1为本申请实施例提供的一种贴图的压缩编码方法的流程示意图。其中,该方法应用于移动终端上运行的游戏客户端,如图1所示,该方法包括如下步骤:
S110,配置待选的修正表集合、第一绝对值集合和第二绝对值集合。
S120,获取游戏客户端运行过程中生成的贴图,并将贴图划分为多个像素块。
S130,将多个像素块中的第一像素块划分为多个子块,并确定每个子块的基础像素值。
S140,对于子块中的每个像素,均按照像素的原始像素值和子块的基础像素值,计算该像素对应于该子块的残差值,根据该残差值,在第一绝对值集合和第二绝对值集合中选择该像素对应于该子块的第一绝对值和第二绝对值。
S150,对于第一像素块中的每个子块,均根据子块对应的多个第一绝对值所对应的待选的修正表的表号和多个第二绝对值所对应的待选的修正表的表号的均值,选择该子块的修正表。
S160,基于第一像素块的每个子块的修正表,对多个像素块进行压缩编码。
下面对上述步骤S110-S160进行详细介绍。
在步骤S110中,待选的修正表集合包括多个待选的修正表,每个待选的修正表对应一个表号,第一绝对值集合包括每个待选的修正表中修正值的绝对值较大的一个的绝对值,第二绝对值集合包括每个待选的修正表中修正值的绝对值较小的一个的绝对值。
在待选的修正表集合的一个示例中,待选的修正表集合可以由8个待选的修正表组成,每个修正表中包括有4个修正数值。例如,如图2所示,该待选的修正表集合由8个待选的修正表组成,每个表可以通过一个表号来标识,例如,表号可以为0、1、2、3、4、5、6、7,每个修正表的表号都对应有四个不同的修正数值。
实施例中,可以忽略其中的正负号,每个待选的修正表便对应两个不同的修正值,按其绝对值的大小可以分为第一绝对值集合和第一绝对值集合。例如,对于如图2所示的待选的修正表集合,第一绝对值集合可以为{8,17,29,42,60,80,106,183},第二绝对值集合可以为{2,5,9,13,18,24,33,47}。每个第一绝对值或第二绝对值可以对应一个待选的修正表。例如,表号0对应的绝对值为8和2、表号1对应的绝对值为17和5、表号2对应的绝对值为29和9……,等等。
在步骤S120中,本实施例提供的像素块由4*4的像素组成。如图3所示,一个4*4的像素块包括像素a、像素b、像素c、像素d、像素e、像素f、像素g、像素h、像素i、像素j、像素k、像素l、像素m、像素n、像素o、像素p这16个像素。对于每个像素,可以有3*8bit来存储颜色,其中,每一个8bit用于存储一个原色值,该原色可以为红(R)、绿(G)或蓝(B)。
在步骤S130中,对第一像素块的划分方式可以为横向划分或竖向划分。例如,如图4(a)和图4(b)所示,对于图3所示的像素块,可以为2*4的两个子块或4*2的两个子块。
其中,每个子块的基础像素值也可以称为基本色(可以表示为baseColor),该基本色可以为对应子块包含的像素的均值。
在步骤S140中,像素的原始像素值(可以表示为pixelColor)可以为压缩处理前的贴图的像素值。像素对应于该子块的残差值(可以表示为residual)可以为该像素的原始像素值与该子块的基础像素值之间的差值。该残差可以通过如下公式确定:
residual=baseColor-pixelColor (1)
在确定子块的修正表之前,可以先确定每个对应于该子块的像素在第一绝对值集合和第二绝对值集合中对应的绝对值。示例性的,针对子块中的每个像素,可以分别在第一绝对值集合和第二绝对值集合中,选择大小最接近该像素对应于该子块的残差值的绝对值,分别得到第一绝对值和第二绝对值,以使选择出的第一绝对值和第二绝对值是最接近该残差的绝对值。该第一绝对值和该第二绝对值在待选的修正表集合中分别对应有各自的表号,因此便可以针对子块中的每个像素确定出两个表号。而每个子块中包括多个像素,进而针对每个子块便能够得到至少四个表号。
例如,第一绝对值集合为{8,17,29,42,60,80,106,183},第二绝对值集合为{2,5,9,13,18,24,33,47},假设某个像素对应于子块的残差值为20。那么在第一绝对值集合中,最接近20的数字是17,如图2所述,对应的表号是1;在第二绝对值集合中,最接近20的数字是18,对应的表号是4。由此可以得到这个像素对应的两个修正表的表号1和4。若该子块内包括8个像素,则对于该8个像素都进行这样的计算,进而可以得到16(8*2)个表号。
在步骤S150中,针对每个子块,计算该子块对应的这些表号的均值,将得到的结果作为该子块对应的修正表的表号。由于修正表中的修正值绝对值是随着表号的不断增大而逐渐增大的,子块对应的多个第一绝对值所对应的待选的修正表的表号和多个第二绝对值所对应的待选的修正表的表号的均值作为的表号所对应的修正表所对应的修正幅度,更加符合子块中每个像素的原始像素值的差别。
在一些实施例中,为子块选择最优修正表的表达式可以为:
其中,residual表示像素对应于子块的残差值;baseColor表示子块的基础像素值;pixelColor表示像素的原始像素值;correctValue表示最优修正值;公式(2)则表示原始像素值和通过最优修正值修正后的像素值之间的差距是最小的。
因此,对于每个子块的修正表的表号是可以通过上述步骤S140和S150选择出。在步骤S110至S150完成之后,可以各个子块所选的修正表来对多个像素块进行编码。例如,图5示出了对4*4的像素块进行压缩编码后的字符串格式。可以根据各个子块所选择的修正表以及子块的基础像素值,编码为图5所示的格式的字符串。
如图5所示,该压缩后的字符串中的第0-31位用于储存16(4*4)个像素的颜色修正下标,其中的第0-15位表示该下标的低位,第16-31位表示该下标的高位。第32位用于表示像素块的切分方式,其中,0表示竖分,1表示横分。第33位用于表示两个子块的基础像素值的表达模式,0表示单一模式(即individual模式),单一模式下基础像素值可以表达为RGB444/RGB444的格式,其中,R表示红、G表示绿、B表示蓝;1表示差异模式(即differential模式),差异模式下基础像素值可以表达为RGB555/RGB333的格式。第34-36位用于储存子块2的修正表的表号;37-39位用于储存子块1的修正表的表号。第37-63用于两个子块的基础像素值。
在图5中,第32位对应的表格中设置为1,表示该4*4的像素块被横分为2个4*2的子块。第33位被设置为1,则表示子块的平均颜色值储存模式为RGB555(子块1)+RGB333(子块2)。第34-36位表示子块2的修正表的表号为110(二进制),从二进制的110换算成十进制即为6,从游戏客户端在步骤S110中配置的如图2所示的待选的修正表集合中可以查询到表号6对应的修正值为[-106,-33,33,106]。37-39位表示子块1的修正表的表号为010(二进制),从二进制的010换算成十进制即为2,从游戏客户端在步骤S110中配置的如图2所示的待选的修正表集合中可以查询到表号2对应的修正值为[-29,-9,9,29]。
由于第33位被设置为1,第40-42位表示的G2为000(二进制),换算成十进制即为0;第43-47位表示的G1为00011(二进制),换算成十进制即为3;第48-50位表示的B2为010(二进制),换算成十进制即为2;第51-55位表示的B1为00100(二进制),换算成十进制即为4;第56-58位表示的R2为100(二进制),换算成十进制即为-4;第59-63位表示的R1为11100(二进制),换算成十进制即为28。因此,第40-63位能够表示RGB1=(28,4,3),RGB2=(-4,2,0)。再者,由于33位为1,表示基础像素值的表达模式为differential模式,便可以基于刚刚算出的RGB1=(28,4,3),RGB2=(-4,2,0),基于differential模式对应的解码方式,最终得到各个子块的基础像素值。
需要说明的是,RGB1表示记录的子块1的像素值,其中,R1表示记录的子块1的红色(red,R)值,G1表示记录的子块1的绿色(green,G)值,B1表示记录的子块1的蓝色(blue,B)值;RGB2表示记录的子块2的像素值,其中,R2表示记录的子块2的红色值,G2表示记录的子块2的绿色值,B2表示记录的子块2的蓝色值。
下面对于Differential模式对应的解码过程进行介绍。在解码时,分别将每个5bit的颜色值的高3位复制到末尾,进而扩充为8bit的颜色值,得到子块的基础像素值中各个颜色值。例如,将子块1中的R1(二进制为28,十进制为11100)扩充为11100111,RGB1=(28,4,3)=(11100,00100,00011)可以扩充为(1110 0111,0010 0001,0001 1000),再将二进制转换为十进制即可得到(231,33,24)。另外,Individual模式的换算过程是:将每个4bit的颜色值复制到末尾,进而扩充为8bit的颜色值。
对于现有的贴图压缩算法,在子块修正值的计算过程中,即在选择子块的修正表时,需要进行修正值的尝试过程,即利用每个修正表中的修正值对子块内的像素进行修正,以根据一次次的尝试结果选取出最优的修正值,因此需要进行较大的计算量,从而影响了压缩处理的速度。
本实施例中,通过提供贴图的压缩编码方法,利用上述步骤S110至S150能够直接选择出针对子块的修正表,相比于现有技术,本实施例提供的方法降低了修正表确定的复杂程度,大大减小了整个贴图压缩处理所需的计算量,进而显著的缩小修正计算的时间开销,在压缩后的图像质量的影响不大的前提下,更加快速的压缩,以达到实时压缩,提升了压缩处理的效率。
在一些实施例中,上述步骤S130可以包括多种实现方式。作为一个示例,可以对第一像素块进行两种方式的划分,例如,该步骤S130可以包括如下步骤:
步骤a,将第一像素块按照横向子块划分规则划分为第一子块和第二子块;
步骤b,将第一像素块按照纵向子块划分规则划分为第三子块和第四子块。
示例性的,第一像素块为一个4*4的像素块,通过步骤a的划分方式便可以得到两个4*2的子块,通过步骤b的划分方式便可以得到两个2*4的子块。
在一些实施例中,可以从这两种不同的划分方式中,选择出最优的划分方式,以使第一像素块的压缩结果更加合理,使解压后的贴图更加接近原始贴图。作为一个示例,上述步骤S160可以包括如下步骤:
步骤c,基于第一子块和第二子块分别对应的修正表和基础像素值,将第一像素块压缩编码为第一待定编码,并确定第一像素块的原始像素值和第一待定编码解码后的像素值之间的第一压缩损失;
步骤d,基于第三子块和第四子块分别对应的修正表和基础像素值,将第一像素块压缩编码为第二待定编码,并确定第一像素块的原始像素值和第二待定编码解码后的像素值之间的第二压缩损失;
步骤e,将第一压缩损失和第二压缩损失中最小的一个对应的待定编码,作为第一像素块的编码。
通过对比这两种不同的划分方式对应的压缩损失,可以选择出其中压缩损失最小的一个,从而确定出最优的划分方式,即横向子块划分规则或纵向子块划分规则,以使第一像素块的压缩损失最小。
在一些实施例中,可以对贴图中所有的像素块进行上述步骤a-步骤b的处理。基于此,该第一像素块为贴图中多个像素块中的任意一个。
在一些实施例中,可以对贴图中部分像素块进行上述步骤a-步骤b的处理。基于此,该第一像素块为贴图中多个像素块中的部分。
基于上述步骤e,还可以对贴图中除第一像素块之外的其它部分的像素块,利用本申请实施例提供的方法进行压缩解码。例如,上述步骤e之后,该方法还可以包括以下步骤:
步骤f,对于多个像素块中除第一像素块之外的第二像素块,基于第一像素块的编码,对第二像素块进行压缩编码。
因此,对除第一像素块之外的第二像素块,也可以通过本实施例提供的方法进行压缩编码,以使整个贴图中多个像素块的压缩处理过程的速度得到提高。
作为一个示例,第一像素块在贴图中的多个像素块中所处的位置没有限制,本申请实施例提供的贴图压缩编码方法可以适用于贴图中任意位置处的像素块。例如,本实施例中的第一像素块为多个像素块中奇数列像素块中的任意一个,或者,本实施例中的第一像素块为多个像素块中偶数列像素块中的任意一个。
基于此,还可以对与第一像素块相邻的第二像素块,按照第一像素块的目标子块划分规则进行划分。例如,上述步骤f可以包括如下步骤:
步骤g,对于多个像素块中除第一像素块之外的第二像素块,确定与第二像素块相邻的第一像素块的编码对应的目标子块划分规则;
步骤h,将第二像素块按照目标子块划分规则划分为第五子块和第六子块,并确定第五子块和第六子块分别对应的基础像素值;
步骤i,对于第五子块和第六子块中的每个像素:均按照像素的原始像素值和子块的基础像素值,计算该像素对应于该子块的残差值,根据该残差值,在第一绝对值集合和第二绝对值集合中选择该像素对应于该子块的第一绝对值和第二绝对值;
步骤j,根据第五子块对应的多个第一绝对值所对应的待选的修正表的表号和多个第二绝对值所对应的待选的修正表的表号的均值,选择第五子块的修正表;
步骤k,根据第六子块对应的多个第一绝对值所对应的待选的修正表的表号和多个第二绝对值所对应的待选的修正表的表号的均值,选择第六子块的修正表;
步骤l,基于第五子块和第六子块分别对应的修正表,对第二像素块进行压缩编码。
示例性的,将多个像素块分为奇数列与偶数列分批处理:首先处理奇数列像素块,对两种划分规则都进行尝试,并选择最优的划分规则;然后在处理偶数列像素块时,直接采取其相邻的奇数列像素块的划分方法作为本像素块的划分方法。
当然,也可以先处理偶数列像素块,对两种划分规则都进行尝试,并选择最优的划分规则;然后在处理奇数列像素块时,直接采取其相邻的偶数列像素块的划分方法作为本像素块的划分方法。
在现有的贴图压缩算法中,对第一像素块和第二像素块这两种子块的划分规则分别进行测试,选取其中误差最小的划分规则。
本申请实施例利用第一像素块的划分规则,对第二像素块的划分规则进行预测。由于贴图往往是具有连续性的,而第一像素块和第二像素块之间相邻,通过对部分像素块使用其相邻像素块的划分规则进行划分,利用该预测算法可以削减原现有算法中约四分之一的计算量,进而实现计算量的显著减少,实现了简化算法的时间复杂度,也能够进一步的加快压缩处理的速度,而且,对中端机型也能够做到对贴图快速压缩的需求。
在一些实施例中,对待选的修正表的存储方式也可以进行优化。例如,子块对应的多个第一绝对值所对应的待选的修正表的表号和多个第二绝对值所对应的待选的修正表的表号,通过指定数据类型的数据单元进行存储,其中,每个数据单元包括多个子单元,每个子单元的大小为3比特,每个子单元用于记录一个表号。
由于压缩过程中线程的空间访问可以限制在局部,本实施例中,可以充分利用子块内的共享储存空间来减少存储访问的延迟。
示例性的,先将修正表优化选择过程中所需要的辅助数据以静态常量数组的形式固定于在代码中。需要说明的是,部分图形处理器(Graphics Processing Unit,GPU)对不同静态常量数组(static const array)实现分级存储,且此部分的处理对开发者来说是透明的。之后,为避免因静态常量数组过长而被放置于低速存储区,将静态常量数组进行压缩,避免无效bit位的占用。
例如,一个uint32_t可以占用32bits的内存,而一个表号只占用3bits的内存,一个uint在不拼接的情况下可以存10个表号,若为每个表号存一个uint,则空间会膨胀10倍。
需要说明的是,客户端在运行时能够调用图形处理器通用计算(General PurposeComputing on GPU,GPGPU)进行压缩编码处理。本申请实施例中,结合GPGPU的特性对存储结构进行优化,即对静态常量数组进行压缩处理,能够显著减少储存所需的内存量,使压缩后的程序在部分机型上的处理效率得到提高。
在一些实施例中,对于线程分配的过程,可以在线程分配测试后对线程分配参数进行储存,以较少线程分配的测试次数。
例如,在步骤S120之前,该方法还可以包括如下步骤:
步骤m,获取移动终端的线程分配上限;
步骤n,根据线程分配上限通过枚举确定最优的线程分配参数;
步骤p,基于最优的线程分配参数进行线程配置。
因此,在线程分配测试后,便能够得到最优的线程分配参数,从而进行最优化的现线程配置过程。
基于上述步骤n,在上述步骤n之后还可以包括如下步骤:
步骤q,向游戏客户端对应的服务器发送移动终端的硬件信息和最优的线程分配参数。
因此,在得到最优的线程分配参数后,可以利用游戏客户端对应的服务器,来对最优的线程分配参数进行储存。
基于上述步骤q,游戏客户端可以通过向其对应的服务器发送获取请求来获取线程分配参数。例如,在步骤S130之前,该方法还可以包括如下步骤:
步骤r,向游戏客户端对应的服务器发送线程分配参数的获取请求;
步骤s,接收服务器响应获取请求发送的最优的线程分配参数;
步骤t,基于最优的线程分配参数进行线程配置。
需要说明的是,GPU以固定数量的线程形成一个线程束,将一个线程束作为程序控制的基本单位。故在代码实现中应避免线程束内走不同分支而造成空闲等待。已知的线程束规定的最小值为4,故实现中块内线程的分配每个维度均为4的倍数。
由于GPU对线程分配较为敏感,且对于不同硬件难以通过理论得到最优的块内线程分配方法。通过三维图形应用程序编程接口(Application Programming Interface,API)可以获得子块内的线程分配上限,通过枚举每一种可能的分配方案能够测试性能。
本实施例中,线程分配测试只需执行一次,便可将最优的线程分配参数记录在本地,也可以将参数存储在服务器端,根据客户端硬件信息由服务器传递最优的线程分配参数,只有在服务器未记录的硬件上才需要执行测试程序,从而减少了线程分配测试的运行处理量。
因此,通过本实施例提供的贴图的压缩编码方法,不仅能够简化子块修正表选择的过程,还能够简化像素块的划分规则选择过程,而且,还能够基于GPGPU的架构进行优化,例如子块内线程分配的优化以及存储结构的优化。因此,利用本实施例提供的贴图的压缩编码方法,不仅可以保障较小的压缩结果误差,在当前的中端机型中,还可以将分辨率为256×256的贴图控制在1毫秒以内完成压缩,以提升移动端的压缩树立速度,实现快速的运行贴图压缩。
例如,在压缩效果的对比中,通过目前现有的方法进行压缩其结果误差为3.39%,通过本实施例提供的贴图的压缩编码方法进行压缩其结果误差为3.49%。
因此,本实施例提供的贴图的压缩编码方法能够在贴图质量下降较小的情况下,使压缩处理速度得到有效显著的提升,以提升对贴图的压缩处理效率。
再例如,在压缩256×256分辨率的贴图时,取最优块内线程配置参数,对比出的不同硬件的测试结果如下表所示:
因此,本实施例提供的贴图的压缩编码方法实现了在移动端GPGPU的快速贴图压缩过程,能够快速、有效的处理游戏客户端运行过程中生成的贴图,以减少贴图占用空间,不仅提升传输带宽而且还减少耗电量。
图6提供了一种贴图的压缩编码装置结构示意图。装置应用于移动终端上运行的游戏客户端,如图6所示,贴图的压缩编码装置600包括:
配置模块601,用于配置待选的修正表集合、第一绝对值集合和第二绝对值集合,其中,待选的修正表集合包括多个待选的修正表,每个待选的修正表对应一个表号,第一绝对值集合包括每个待选的修正表中修正值的绝对值较大的一个的绝对值,第二绝对值集合包括每个待选的修正表中修正值的绝对值较小的一个的绝对值;
划分模块602,用于获取游戏客户端运行过程中生成的贴图,并将贴图划分为多个像素块;
确定模块603,用于将多个像素块中的第一像素块划分为多个子块,并确定每个子块的基础像素值;
第一选择模块604,用于对于子块中的每个像素,均按照像素的原始像素值和子块的基础像素值,计算该像素对应于该子块的残差值,根据该残差值,在第一绝对值集合和第二绝对值集合中选择该像素对应于该子块的第一绝对值和第二绝对值;
第二选择模块605,用于对于第一像素块中的每个子块,均根据子块对应的多个第一绝对值所对应的待选的修正表的表号和多个第二绝对值所对应的待选的修正表的表号的均值,选择该子块的修正表;
第一编码模块606,用于基于第一像素块的每个子块的修正表,对多个像素块进行压缩编码。
在一些实施例中,确定模块具体用于:
将第一像素块按照横向子块划分规则划分为第一子块和第二子块;
将第一像素块按照纵向子块划分规则划分为第三子块和第四子块。
在一些实施例中,第一编码模块具体用于:
基于第一子块和第二子块分别对应的修正表和基础像素值,将第一像素块压缩编码为第一待定编码,并确定第一像素块的原始像素值和第一待定编码解码后的像素值之间的第一压缩损失;
基于第三子块和第四子块分别对应的修正表和基础像素值,将第一像素块压缩编码为第二待定编码,并确定第一像素块的原始像素值和第二待定编码解码后的像素值之间的第二压缩损失;
将第一压缩损失和第二压缩损失中最小的一个对应的待定编码,作为第一像素块的编码。
在一些实施例中,第一像素块为多个像素块中的任意一个。
在一些实施例中,第一像素块为多个像素块中奇数列像素块中的任意一个;或者,第一像素块为多个像素块中偶数列像素块中的任意一个。
在一些实施例中,贴图的压缩编码装置还包括:
第二编码模块,用于对于多个像素块中除第一像素块之外的第二像素块,基于第一像素块的编码,对第二像素块进行压缩编码。
在一些实施例中,第二编码模块具体用于:
对于多个像素块中除第一像素块之外的第二像素块,确定与第二像素块相邻的第一像素块的编码对应的目标子块划分规则;
将第二像素块按照目标子块划分规则划分为第五子块和第六子块,并确定第五子块和第六子块分别对应的基础像素值;
对于第五子块和第六子块中的每个像素:均按照像素的原始像素值和子块的基础像素值,计算该像素对应于该子块的残差值,根据该残差值,在第一绝对值集合和第二绝对值集合中选择该像素对应于该子块的第一绝对值和第二绝对值;
根据第五子块对应的多个第一绝对值所对应的待选的修正表的表号和多个第二绝对值所对应的待选的修正表的表号的均值,选择第五子块的修正表;
根据第六子块对应的多个第一绝对值所对应的待选的修正表的表号和多个第二绝对值所对应的待选的修正表的表号的均值,选择第六子块的修正表;
基于第五子块和第六子块分别对应的修正表,对第二像素块进行压缩编码。
在一些实施例中,子块对应的多个第一绝对值所对应的待选的修正表的表号和多个第二绝对值所对应的待选的修正表的表号,通过指定数据类型的数据单元进行存储,其中,每个数据单元包括多个子单元,每个子单元的大小为3比特,每个子单元用于记录一个表号。
在一些实施例中,贴图的压缩编码装置还包括第一分配模块,具体用于:
获取移动终端的线程分配上限;
根据线程分配上限通过枚举确定最优的线程分配参数;
基于最优的线程分配参数进行线程配置。
在一些实施例中,贴图的压缩编码装置还包括:
发送模块,用于向游戏客户端对应的服务器发送移动终端的硬件信息和最优的线程分配参数。
在一些实施例中,贴图的压缩编码装置还包括第二分配模块,具体用于:
向游戏客户端对应的服务器发送线程分配参数的获取请求;
接收服务器响应获取请求发送的最优的线程分配参数;
基于最优的线程分配参数进行线程配置。
本申请实施例提供的贴图的压缩编码装置,与上述实施例提供的贴图的压缩编码方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
如图7所示,本申请实施例提供的一种移动端设备700,包括:处理器701、存储器702和总线,所述存储器702存储有所述处理器701可执行的机器可读指令,当电子设备运行时,所述处理器701与所述存储器702之间通过总线通信,所述处理器701执行所述机器可读指令,以执行如上述贴图的压缩编码方法的步骤。
具体地,上述存储器702和处理器701能够为通用的存储器和处理器,这里不做具体限定,当处理器701运行存储器702存储的计算机程序时,能够执行上述贴图的压缩编码方法。
对应于上述贴图的压缩编码方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述贴图的压缩编码方法的步骤。
本申请实施例所提供的贴图的压缩编码装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述移动控制方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的范围。都应涵盖在本申请的保护范围之内。
Claims (14)
1.一种贴图的压缩编码方法,其特征在于,所述方法应用于移动终端上运行的游戏客户端,所述方法包括:
配置待选的修正表集合、第一绝对值集合和第二绝对值集合,其中,所述待选的修正表集合包括多个待选的修正表,每个待选的修正表对应一个表号,所述第一绝对值集合包括每个所述待选的修正表中修正值的绝对值较大的一个的绝对值,所述第二绝对值集合包括每个所述待选的修正表中修正值的绝对值较小的一个的绝对值;
获取所述游戏客户端运行过程中生成的贴图,并将所述贴图划分为多个像素块;
将所述多个像素块中的第一像素块划分为多个子块,并确定每个子块的基础像素值;
对于所述子块中的每个像素,均按照所述像素的原始像素值和所述子块的基础像素值,计算该像素对应于该子块的残差值,根据所述残差值,在所述第一绝对值集合和所述第二绝对值集合中选择该像素对应于该子块的第一绝对值和第二绝对值;
对于所述第一像素块中的每个子块,均根据所述子块对应的多个所述第一绝对值所对应的待选的修正表的表号和多个所述第二绝对值所对应的待选的修正表的表号的均值,选择该子块的修正表;
基于所述第一像素块的每个子块的修正表,对所述多个像素块进行压缩编码。
2.根据权利要求1所述的方法,其特征在于,将所述多个像素块中的第一像素块划分为多个子块的步骤,包括:
将所述第一像素块按照横向子块划分规则划分为第一子块和第二子块;
将所述第一像素块按照纵向子块划分规则划分为第三子块和第四子块。
3.根据权利要求2所述的方法,其特征在于,基于所述第一像素块的每个子块的修正表,对所述多个像素块进行压缩编码的步骤,包括:
基于所述第一子块和第二子块分别对应的修正表和基础像素值,将所述第一像素块压缩编码为第一待定编码,并确定所述第一像素块的原始像素值和所述第一待定编码解码后的像素值之间的第一压缩损失;
基于所述第三子块和第四子块分别对应的修正表和基础像素值,将所述第一像素块压缩编码为第二待定编码,并确定所述第一像素块的原始像素值和所述第二待定编码解码后的像素值之间的第二压缩损失;
将所述第一压缩损失和第二压缩损失中最小的一个对应的待定编码,作为所述第一像素块的编码。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述第一像素块为所述多个像素块中的任意一个。
5.根据权利要求3所述的方法,其特征在于,所述第一像素块为所述多个像素块中奇数列像素块中的任意一个;或者,所述第一像素块为所述多个像素块中偶数列像素块中的任意一个。
6.根据权利要求5所述的方法,其特征在于,在将所述第一压缩损失和第二压缩损失中最小的一个对应的待定编码,作为所述第一像素块的编码的步骤之后,还包括:
对于所述多个像素块中除所述第一像素块之外的第二像素块,基于所述第一像素块的编码,对所述第二像素块进行压缩编码。
7.根据权利要求6所述的方法,其特征在于,基于所述第一像素块的编码,对所述第二像素块进行压缩编码的步骤,包括:
对于所述多个像素块中除所述第一像素块之外的第二像素块,确定与所述第二像素块相邻的第一像素块的编码对应的目标子块划分规则;
将所述第二像素块按照所述目标子块划分规则划分为第五子块和第六子块,并确定第五子块和第六子块分别对应的基础像素值;
对于所述第五子块和第六子块中的每个像素:均按照所述像素的原始像素值和所述子块的基础像素值,计算该像素对应于该子块的残差值,根据所述残差值,在所述第一绝对值集合和所述第二绝对值集合中选择该像素对应于该子块的第一绝对值和第二绝对值;
根据所述第五子块对应的多个所述第一绝对值所对应的待选的修正表的表号和多个所述第二绝对值所对应的待选的修正表的表号的均值,选择第五子块的修正表;
根据所述第六子块对应的多个所述第一绝对值所对应的待选的修正表的表号和多个所述第二绝对值所对应的待选的修正表的表号的均值,选择第六子块的修正表;
基于第五子块和第六子块分别对应的修正表,对所述第二像素块进行压缩编码。
8.根据权利要求1所述的方法,其特征在于,所述子块对应的多个所述第一绝对值所对应的待选的修正表的表号和多个所述第二绝对值所对应的待选的修正表的表号,通过指定数据类型的数据单元进行存储,其中,每个所述数据单元包括多个子单元,每个所述子单元的大小为3比特,每个所述子单元用于记录一个表号。
9.根据权利要求1所述的方法,其特征在于,在获取所述游戏客户端运行过程中生成的贴图的步骤之前,还包括:
获取所述移动终端的线程分配上限;
根据所述线程分配上限通过枚举确定最优的线程分配参数;
基于所述最优的线程分配参数进行线程配置。
10.根据权利要求9所述的方法,其特征在于,在根据所述线程分配上限通过枚举确定最优的线程分配参数的步骤之后,还包括:
向所述游戏客户端对应的服务器发送所述移动终端的硬件信息和所述最优的线程分配参数。
11.根据权利要求1所述的方法,其特征在于,将所述多个像素块中的第一像素块划分为多个子块的步骤之前,还包括:
向所述游戏客户端对应的服务器发送线程分配参数的获取请求;
接收所述服务器响应所述获取请求发送的最优的线程分配参数;
基于所述最优的线程分配参数进行线程配置。
12.一种贴图的压缩编码装置,其特征在于,所述装置应用于移动终端上运行的游戏客户端,所述装置包括:
配置模块,用于配置待选的修正表集合、第一绝对值集合和第二绝对值集合,其中,所述待选的修正表集合包括多个待选的修正表,每个待选的修正表对应一个表号,所述第一绝对值集合包括每个所述待选的修正表中修正值的绝对值较大的一个的绝对值,所述第二绝对值集合包括每个所述待选的修正表中修正值的绝对值较小的一个的绝对值;
划分模块,用于获取所述游戏客户端运行过程中生成的贴图,并将所述贴图划分为多个像素块;
确定模块,用于将所述多个像素块中的第一像素块划分为多个子块,并确定每个子块的基础像素值;
第一选择模块,用于对于所述子块中的每个像素,均按照所述像素的原始像素值和所述子块的基础像素值,计算该像素对应于该子块的残差值,根据所述残差值,在所述第一绝对值集合和所述第二绝对值集合中选择该像素对应于该子块的第一绝对值和第二绝对值;
第二选择模块,用于对于所述第一像素块中的每个子块,均根据所述子块对应的多个所述第一绝对值所对应的待选的修正表的表号和多个所述第二绝对值所对应的待选的修正表的表号的均值,选择该子块的修正表;
编码模块,用于基于所述第一像素块的每个子块的修正表,对所述多个像素块进行压缩编码。
13.一种移动端设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当移动端设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至11任一所述的贴图的压缩编码方法的步骤。
14.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至11任意一项所述的贴图的压缩编码方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910929636.7A CN110689590B (zh) | 2019-09-23 | 2019-09-23 | 贴图的压缩编码方法、装置以及移动端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910929636.7A CN110689590B (zh) | 2019-09-23 | 2019-09-23 | 贴图的压缩编码方法、装置以及移动端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110689590A true CN110689590A (zh) | 2020-01-14 |
CN110689590B CN110689590B (zh) | 2023-04-07 |
Family
ID=69110820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910929636.7A Active CN110689590B (zh) | 2019-09-23 | 2019-09-23 | 贴图的压缩编码方法、装置以及移动端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110689590B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102595117A (zh) * | 2011-01-14 | 2012-07-18 | 清华大学 | 一种编解码方法和装置 |
CN106780283A (zh) * | 2016-12-27 | 2017-05-31 | Tcl集团股份有限公司 | 隐写信息编码方法和装置以及隐写信息解码方法和装置 |
CN109118566A (zh) * | 2018-09-13 | 2019-01-01 | 网易(杭州)网络有限公司 | 贴图的压缩方法、装置、存储介质和电子装置 |
CN109559319A (zh) * | 2018-10-31 | 2019-04-02 | 深圳市创梦天地科技有限公司 | 一种法线贴图的处理方法及终端 |
-
2019
- 2019-09-23 CN CN201910929636.7A patent/CN110689590B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102595117A (zh) * | 2011-01-14 | 2012-07-18 | 清华大学 | 一种编解码方法和装置 |
CN106780283A (zh) * | 2016-12-27 | 2017-05-31 | Tcl集团股份有限公司 | 隐写信息编码方法和装置以及隐写信息解码方法和装置 |
CN109118566A (zh) * | 2018-09-13 | 2019-01-01 | 网易(杭州)网络有限公司 | 贴图的压缩方法、装置、存储介质和电子装置 |
CN109559319A (zh) * | 2018-10-31 | 2019-04-02 | 深圳市创梦天地科技有限公司 | 一种法线贴图的处理方法及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN110689590B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2407223C2 (ru) | Сжатие текстуры на основании двух оттенков с модифицированной яркостью | |
JP4805924B2 (ja) | マルチモード画像処理のための方法、システム、及びシステムを具備するユーザ端末 | |
US7734105B2 (en) | Multi-mode image processing | |
EP1697899B1 (en) | Multi-mode alpha imag eprocessing | |
JP5722761B2 (ja) | 動画圧縮装置、画像処理装置、動画圧縮方法、画像処理方法、および動画圧縮ファイルのデータ構造 | |
CN105933708B (zh) | 一种数据压缩和解压缩的方法和装置 | |
CA2635542A1 (en) | High quality image processing | |
CA2545414A1 (en) | Image processing | |
US8582902B2 (en) | Pixel block processing | |
CN111402380A (zh) | 一种gpu压缩纹理处理方法 | |
JPH1188700A (ja) | カラー画像信号の符号化方法、復号化方法およびカラー画像処理装置 | |
US11568572B2 (en) | Texture compression | |
CN101945274A (zh) | 压缩编码设备和解码设备 | |
KR101303503B1 (ko) | 컬러 이미지들을 위한 조인트 스칼라 임베디드 그래픽 코딩 | |
CN110689590B (zh) | 贴图的压缩编码方法、装置以及移动端设备 | |
US20230245347A1 (en) | Parent-child cluster compression | |
CN105791819B (zh) | 一种图像的帧压缩方法、图像的解压缩方法及装置 | |
JP2015023506A (ja) | 画像符号化装置及び画像復号化装置 | |
US20130088504A1 (en) | Texture compression and decompression | |
CN110956670A (zh) | 一种基于深度偏移的多模式自适应z值压缩算法 | |
US8818118B2 (en) | Image encoding device and image processing device including the same | |
JP2010276686A (ja) | 画像制御装置 | |
CN108429910B (zh) | 图像压缩方法 | |
CN117596402A (zh) | 一种用于图像有损压缩的算法 | |
KR100772613B1 (ko) | 영상 장치를 위한 이미지 압축방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |