CN110175269B - 一种顶点索引的压缩及解压缩方法、装置及计算机存储介质 - Google Patents

一种顶点索引的压缩及解压缩方法、装置及计算机存储介质 Download PDF

Info

Publication number
CN110175269B
CN110175269B CN201910468287.3A CN201910468287A CN110175269B CN 110175269 B CN110175269 B CN 110175269B CN 201910468287 A CN201910468287 A CN 201910468287A CN 110175269 B CN110175269 B CN 110175269B
Authority
CN
China
Prior art keywords
vertex
index
index data
subsequent
data
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
Application number
CN201910468287.3A
Other languages
English (en)
Other versions
CN110175269A (zh
Inventor
张竞丹
王可
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xi'an Xintong Semiconductor Technology Co ltd
Original Assignee
Xi'an Xintong Semiconductor Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xi'an Xintong Semiconductor Technology Co ltd filed Critical Xi'an Xintong Semiconductor Technology Co ltd
Priority to CN201910468287.3A priority Critical patent/CN110175269B/zh
Publication of CN110175269A publication Critical patent/CN110175269A/zh
Application granted granted Critical
Publication of CN110175269B publication Critical patent/CN110175269B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明实施例公开了一种顶点索引的压缩及解压缩方法、装置及计算机存储介质;该方法可以包括:根据设定的差值范围,将顶点索引数组中元素按照相邻元素之间的差值划分为一个或以上的原始索引片段,并获取每个原始索引片段的顶点索引数量以及每个原始索引片段内相邻顶点索引之间的差值最大值对应的bit数;针对每个原始索引片段:保持首个顶点索引数据不变,根据相邻顶点索引数据的差值对首个顶点索引数据之后的后续顶点索引数据进行替换,获得每个原始索引片段对应的压缩后的索引片段;将所有压缩后的索引片段、各压缩后的索引片段内的顶点索引数量以及各压缩后的索引片段对应的原始索引片段内相邻顶点索引之间的差值最大值对应的bit数按照原始索引片段的划分顺序传输至GPU以存入显存。

Description

一种顶点索引的压缩及解压缩方法、装置及计算机存储介质
技术领域
本发明实施例涉及图形处理器(GPU,Graphics Processing Unit)技术领域,尤其涉及一种顶点索引的压缩及解压缩方法、装置及计算机存储介质。
背景技术
开放式图形库(OpenGL,Open Graphics Library)是一种用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API,Application Programming Interface),它能够对GPU功能进行调用。
目前,通过OpenGL调用GPU以实现图像绘制功能的过程中,具体的绘制模式可以包括直接调用顶点数组数据进行绘制的Draw_Arrays模式以及通过顶点索引抓取顶点数据的Draw-elements模式。对于Draw-elements模式,在具体实现过程中,通常需要CPU指定目标顶点索引,GPU利用目标顶点索引抓取目标顶点数据的地址后再根据目标顶点数据的地址去存放有顶点数据的缓存Cache中抓取目标顶点数据已进行后续的顶点处理。
而对于顶点索引来说,其数据格式一般为:无符号8位整数UNSIGNED_BYTE、无符号16位整数UNSIGNED_SHORT或者无符号32位整数UNSIGNED_INT。当顶点索引的数量过多时,会占用较多的存储空间对顶点索引进行缓存,相应地会增加读取显存的次数,降低处理效率。
发明内容
有鉴于此,本发明实施例期望提供一种顶点索引的压缩及解压缩方法、装置及计算机存储介质;能够减少顶点索引的存储空间,降低读取显存次数,提高处理效率。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供了一种顶点索引的压缩方法,所述方法应用于CPU端,所述方法包括:
根据设定的差值范围,将顶点索引数组中元素按照相邻元素之间的差值划分为一个或以上的原始索引片段,并获取每个原始索引片段的顶点索引数量以及每个原始索引片段内相邻顶点索引之间的差值最大值对应的bit数;
针对每个原始索引片段:保持首个顶点索引数据不变,根据相邻顶点索引数据的差值对所述首个顶点索引数据之后的后续顶点索引数据进行替换,获得每个原始索引片段对应的压缩后的索引片段;其中,所述相邻顶点索引数据的差值的位宽为所述压缩后的索引片段对应的原始索引片段内相邻顶点索引之间的差值最大值对应的bit数;
将所有压缩后的索引片段、各压缩后的索引片段内的顶点索引数量以及各压缩后的索引片段对应的原始索引片段内相邻顶点索引之间的差值最大值对应的bit数按照原始索引片段的划分顺序传输至图形处理器GPU以存入显存。
第二方面,本发明实施例提供了一种顶点索引的解压缩方法,所述方法应用于GPU端,所述方法包括:
按照原始索引片段的划分顺序,读取显存内存储的压缩后的索引片段;
将当前被读取的压缩后的索引片段内的首个顶点索引数据作为对应的解压缩的索引片段内的首个顶点索引数据;
针对当前被读取的压缩后的索引片段内所述首个顶点索引数据之后的后续顶点索引数据,按照当前被读取的压缩后的索引片段内各后续顶点索引数据的前一个顶点索引数据进行解压缩,获得对应的所述解压缩的索引片段内的首个顶点索引数据之后的各后续顶点索引数据;
相应于所述解压缩的索引片段内的顶点索引数据数量满足当前被读取的压缩后的索引片段内的顶点索引数量,读取显存内存储的下一个压缩后的索引片段进行解压缩,直至所有压缩后的索引片段被解压缩。
第三方面,本发明实施例提供了一种顶点索引的压缩装置,所述装置包括:划分部分、压缩部分和传输部分;其中,
所述划分部分,配置为根据设定的差值范围,将顶点索引数组中元素按照相邻元素之间的差值划分为一个或以上的原始索引片段,并获取每个原始索引片段的顶点索引数量以及每个原始索引片段内相邻顶点索引之间的差值最大值对应的bit数;
所述压缩部分,配置为针对每个原始索引片段:保持首个顶点索引数据不变,根据相邻顶点索引数据的差值对所述首个顶点索引数据之后的后续顶点索引数据进行替换,获得每个原始索引片段对应的压缩后的索引片段;其中,所述相邻顶点索引数据的差值的位宽为所述压缩后的索引片段对应的原始索引片段内相邻顶点索引之间的差值最大值对应的bit数;
所述传输部分,配置为将所有压缩后的索引片段、各压缩后的索引片段内的顶点索引数量以及各压缩后的索引片段对应的原始索引片段内相邻顶点索引之间的差值最大值对应的bit数按照原始索引片段的划分顺序传输至图形处理器GPU以存入显存。
第四方面,本发明实施例提供了一种顶点索引的解压缩装置,所述装置包括:读取部分、解压部分;其中,所述读取部分,配置为按照原始索引片段的划分顺序,读取显存内存储的压缩后的索引片段;
所述解压缩部分,配置为将当前被读取的压缩后的索引片段内的首个顶点索引数据作为对应的解压缩的索引片段内的首个顶点索引数据;
以及,针对当前被读取的压缩后的索引片段内所述首个顶点索引数据之后的后续顶点索引数据,按照当前被读取的压缩后的索引片段内各后续顶点索引数据的前一个顶点索引数据进行解压缩,获得对应的所述解压缩的索引片段内的首个顶点索引数据之后的各后续顶点索引数据;
所述读取部分,还配置为相应于所述解压缩的索引片段内的顶点索引数据数量满足当前被读取的压缩后的索引片段内的顶点索引数量,读取显存内存储的下一个压缩后的索引片段并触发所述解压缩部分进行解压缩,直至所有压缩后的索引片段被解压缩。
第五方面,本发明实施例提供了一种图像处理系统,包括第三方面所述顶点索引的压缩装置以及第四方面所述的顶点索引的解压缩装置。
第六方面,本发明实施例提供了一种电子设备,包括GPU和CPU,以及实现所述GPU和所述CPU之间的连接通信的系统总线;其中,
所述CPU,经配置以实现第一方面所述顶点索引的压缩方法的步骤;
所述GPU,经配置以实现第二方面所述顶点索引的解压缩方法的步骤。
第七方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有顶点索引的压缩程序和/或顶点索引的解压缩程序;
其中,所述顶点索引的压缩程序被至少一个处理器执行时实现第一方面所述顶点索引的压缩方法的步骤;
所述顶点索引的解压缩程序被至少一个处理器执行时实现第二方面所述顶点索引的解压缩方法的步骤。
本发明实施例提供了一种顶点索引的压缩及解压缩方法、装置及计算机存储介质;利用差值对顶点索引数据进行无损地压缩和解压缩,能够降低存储空间的占用,提高了显存中存储空间的利用率;而且存储在显存中的数据为压缩数据,在读取顶点索引数据时,可以相应地减少读取显存的次数,提高了系统的整体性能。
附图说明
图1为本发明实施例提供的示例图片;
图2为本发明实施例提供的一种顶点索引的压缩方法流程示意图;
图3为本发明实施例提供的一种顶点索引的解压缩方法流程示意图;
图4为本发明实施例提供的一种实现流程示意图;
图5为本发明实施例提供的一种顶点索引的压缩装置组成示意图;
图6为本发明实施例提供的一种顶点索引的解压缩装置组成示意图;
图7为本发明实施例提供的一种图像处理系统的组成示意图;
图8为本发明实施例提供的一种电子设备的组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
通过OPENGL的Draw-elements模式对一幅图像进行绘制的过程中,需要处理上万个甚至更多的顶点数据。面对如此海量的顶点数据,在常规方案中,其对应的顶点索引的数据格式会造成存储空间占用较大。以图1所示的图片为例,绘制这样一幅图所需要的顶点数目大约是566098个,即使按照无符号8位整数UNSIGNED_BYTE对顶点索引进行存储,也会占用大量的显存空间。而且每一个顶点都要按照指定的数据格式进行存储。举例来说,当指定数据类型为UNSIGNED_BYTE,且顶点索引数据为1时,该顶点索引在显存中存储的数据格式为8’h0000_0001,最高有效位为第0位;对于该顶点索引在显存中的存储数据格式来说,过多的前导0造成了存储空间的浪费;并且对于更加复杂的场景图片,顶点索引的数量会大幅度增加,从而使得顶点索引对存储空间的被更加大量地占用。
基于上述的问题,本发明实施例期望实现一种对顶点索引进行压缩的方案,以减低存储顶点索引所需的存储空间,提高了显存中存储空间的利用率。
参见图2,其示出了本发明实施例提供的一种顶点索引的压缩方法,该方法应用于CPU端,所述方法包括:
S201:根据设定的差值范围,将顶点索引数组中元素按照相邻元素之间的差值划分为一个或以上的原始索引片段,并获取每个原始索引片段的顶点索引数量以及每个原始索引片段内相邻顶点索引之间的差值最大值对应的bit数;
S202:针对每个原始索引片段:保持首个顶点索引数据不变,根据相邻顶点索引数据的差值对所述首个顶点索引数据之后的后续顶点索引数据进行替换,获得每个原始索引片段对应的压缩后的索引片段;其中,所述相邻顶点索引数据的差值的位宽为所述压缩后的索引片段对应的原始索引片段内相邻顶点索引之间的差值最大值对应的bit数;
S203:将所有压缩后的索引片段、各压缩后的索引片段内的顶点索引数量以及各压缩后的索引片段对应的原始索引片段内相邻顶点索引之间的差值最大值对应的bit数按照原始索引片段的划分顺序传输至图形处理器GPU以存入显存。
通过图2所示的技术方案,CPU在向GPU发送顶点索引之前,将待发送的顶点索引数组按照相邻元素之间的差值范围进行分段,并且针对每个索引片段中的顶点索引数据,除索引片段内的首个顶点索引数据以外,根据相邻顶点索引数据之差值对后续顶点索引数据进行替换,并且限制差值的位宽不超过索引片段内相邻顶点索引之间的差值最大值对应的bit数,从而得到压缩后的顶点索引。图2所示的技术方案不仅能够降低顶点索引数据的数据量,从而降低存储空间的占用,提高了显存中存储空间的利用率;而且利用相邻顶点索引之间的差值对原顶点索引数据进行替换,从而易于GPU能够基于压缩后的顶点索引无损地对原顶点索引数据进行解压缩。
对于图1所示的技术方案,在一种可能的实现方式中,所述根据设定的差值范围,将顶点索引数组中元素按照相邻元素之间的差值划分为一个或以上的原始索引片段,包括:
按照元素顺序,将相邻元素之间的差值不超过所述设定的差值范围对所述顶点索引数组中的元素进行划分,获得一个或以上的原始索引片段。
对于上述实现方式,需要说明的是,顶点索引数组中元素即为顶点索引数据,而对所述顶点索引数组中的元素按照相邻元素之间的差值进行分段处理,需要使得每个分段所得到原始索引中的相邻元素的差值范围尽可能小,因此,本发明实施例通过设定的差值范围来对顶点索引数组进行分段,例如将顶点索引数组中相邻元素之差均小于4或5的元素划分在同一原始索引片段中。可以理解地,对于图2中所述的S201,在获得多个原始索引片段之后,还需要对每个原始索引片段按照顶点索引数组内的元素顺序进行编号,以标识各原始索引片段;而且还需要获得每个原始索引片段内顶点索引的个数index_num,以及各原始索引片段内差值绝对值最大的值所对应的bit数Max_diff_bit。每个原始索引片段的Index_num和Max_diff_bit均需要进行保存下来(在保存过程中可以设置一位符号位)。
对于图1所示的技术方案,在一种可能的实现方式中,所述针对每个原始索引片段:保持首个顶点索引数据不变,根据相邻顶点索引数据的差值对所述首个顶点索引数据之后的后续顶点索引数据进行替换,获得每个原始索引片段对应的压缩后的索引片段,包括:
针对每个原始索引片段,至少执行以下步骤:
保持所述原始索引片段中首个顶点索引数据不变;
针对所述首个顶点索引数据之后的后续顶点索引数据,分别获取各后续顶点索引数据与各后续顶点索引数据的前一个顶点索引数据的差值,并通过各后续顶点索引数据与各后续顶点索引数据的前一个顶点索引数据的差值替换各后续顶点索引数据;其中,所述各后续顶点索引数据与各后续顶点索引数据的前一个顶点索引数据的差值位宽为所述原书索引片段内相邻顶点索引之间的差值最大值对应的bit数,所述各后续顶点索引数据与各后续顶点索引数据的前一个顶点索引数据的差值通过补码形式表示。
对于上述实现方式,具体来说,可以按照原始索引片段的编号顺序,对每一个原始索引片段进行如下处理:
首先保持原始索引片段内的首个顶点索引数据不变;
接着,从第二个顶点索引数据开始,以该顶点索引数据与前一个顶点索引数据的差值来替换该顶点索引数据,并且上述差值的位宽可以固定为该原始索引片段的Max_diff_bit,并且在该差值中,可以用一位符号来表示差值的正负。
通过上述处理,则对每一个原始索引片段来说,实现了除首个顶点索引数据以外后续顶点索引数据的数据压缩,获得每个原始索引片段对应的压缩后的索引片段。降低了每个原始索引片段的数据存储量;此外,由于是利用相邻顶点索引数据的差值进行压缩,且保留了首个顶点索引数据的原始数据,那么后续GPU可以无损地对压缩的顶点索引数据进行解压缩。优选地,由于差值可能是正值,也有可能是负值,那么为了便于GPU端进行解压缩,上述差值可以通过补码的形式进行表示,如此,可以将所有的减法运算替代为加法运算。
在将所有的原始索引片段压缩完成后,CPU端可以将所有压缩后的索引片段、各压缩后的索引片段内的顶点索引数量以及各压缩后的索引片段对应的原始索引片段内相邻顶点索引之间的差值最大值对应的bit数按照原始索引片段的划分顺序传输至图形处理器GPU以存入显存。从而使得GPU端可以通过接收CPU所传输的上述内容对顶点索引数据进行解压缩。
基于图3所示的技术方案相同的发明构思,参见图3,其示出了本发明实施例提供的一种顶点索引的解压缩方法,该方法可以应用于GPU端,所述方法包括:
S301:按照原始索引片段的划分顺序,读取显存内存储的压缩后的索引片段;
S302:将当前被读取的压缩后的索引片段内的首个顶点索引数据作为对应的解压缩的索引片段内的首个顶点索引数据;
S303:针对当前被读取的压缩后的索引片段内所述首个顶点索引数据之后的后续顶点索引数据,按照当前被读取的压缩后的索引片段内各后续顶点索引数据的前一个顶点索引数据进行解压缩,获得对应的所述解压缩的索引片段内的首个顶点索引数据之后的各后续顶点索引数据;
S304:相应于所述解压缩的索引片段内的顶点索引数据数量满足当前被读取的压缩后的索引片段内的顶点索引数量,读取显存内存储的下一个压缩后的索引片段进行解压缩,直至所有压缩后的索引片段被解压缩。
图3所示的技术方案描述了对应于图2所示的技术方案的解压缩过程,由于CPU将压缩后的索引片段按照顺序编号后进行发送,那么GPU端就会按照该编号顺序对压缩后的索引片段进行解压缩。在进行解压缩时,需要从显存中按照上述编号顺序读取压缩后的索引片段,并且根据每一个压缩后的索引片段的index_num和Max_diff_bit均会按照编号的顺序进行相应的解码处理。对于每个压缩后的索引片段,通过不断的迭代处理,用压缩后的索引片段内的顶点索引数据加上前一个顶点索引数据解压缩完成后发送给计算核心进行相应的处理。可以理解地,由于压缩后的索引片段中,除首个顶点索引数据以外的后续顶点索引数据均采用补码形式,则可以将减法全部替代为加法进行计算。
对于图3所示的技术方案,在一种可能的实现方式中,所述按照当前被读取的压缩后的索引片段内各后续顶点索引数据的前一个顶点索引数据进行解压缩,获得对应的所述解压缩的索引片段内的首个顶点索引数据之后的各后续顶点索引数据,包括:
相应于所述当前被读取的压缩后的索引片段内各后续顶点索引数据为补码形式,将所述当前被读取的压缩后的索引片段内各后续顶点索引数据与所述当前被读取的压缩后的索引片段内各后续顶点索引数据的前一个顶点索引数据相加,获得对应的所述解压缩的索引片段内的首个顶点索引数据之后的各后续顶点索引数据。
对于上述图2以及图3所示的技术方案来说,利用差值对顶点索引数据进行无损地压缩和解压缩,能够降低存储空间的占用,提高了显存中存储空间的利用率;而且存储在显存中的数据为压缩数据,在读取顶点索引数据时,可以相应地减少读取显存的次数,提高了系统的整体性能。
基于图2以及图3所示的技术方案,本发明实施例通过一具体示例对上述技术方案的进行阐述。
在本具体示例中,顶点索引数组为:{1,3,2,4,6,5,5,7,6,8,15,16,17,12,15,18};顶点索引的数据格式为UNSIGNED_BYTE,也就是说,如果不进行压缩,每个顶点索引占用8位,那么上述顶点索引数组中的16个元素,即16个顶点索引数据共占16×8=128位。参见图4,其示出了本发明实施例提供的一种实现流程示意,具体包括:
步骤1:在主机端也就是CPU一侧,对顶点索引数组进行中的顶点索引进行压缩。具体实施过程包括:
将顶点索引数组中的顶点索引数据进行分段并编号,获得两个原始索引片段,即片段1:{1,3,2,4,8,5,5,7,6,8}和片段2:{15,16,17,12,15,18}。其中,片段1共有10个顶点索引,相邻顶点索引之间的最大差值为4,最高位引入一符号位,则其对应的二进制数为4’b0100。故对于片段1来说,index_num=10,Max_diff_bit=4;而片段2共有6个顶点索引,相邻顶点索引之间的差值绝对值的最大值为|-5|=5,最高位引如一符号位,则其对应的二进制数为4’b0101。故对于片段2来说,index_num=6,Max_diff_bit=4。
分段完成后,先针对片段1按照前述图2所示的技术方案进行压缩,得到压缩后的片段1为:{0000_0001,0010,1111,0010,0100,1111,0000,0010,1111,0010};除首个顶点索引数据外,后续的顶点索引数据对应的压缩值均为与其前一个顶点索引数据的差值,并且差值在内存中优选地以二进制补码表示,例如,片段1中的“1”和“3”,差值为2,根据Max_diff_bit=4,必须以4位二进制数来进行存储,则该差值的二进制补码为4’b0010,即与原码相同,因此,片段1中的“3”其对应的压缩后的顶点索引为“0010”;而对于片段1中的“3”和“2”,差值为-1,-1的原码为4’b1001,对应的二进制补码为4’b1111,因此,片段1中的“2”其对应的压缩后的顶点索引为“0010”。以此类推就能够得到该片段内后续剩余顶点索引的压缩值。值得注意的是,片段1在被压缩后并以补码形式进行存储,其数据位宽为44bit。
对分段1压缩完成后,接着对片段2按照前述图2所示的技术方案以及上述说明进行压缩,得到压缩后的片段2为:{0000_1111,0001,0001,1011,0011,0011};值得注意的是,片段2在被压缩后并以补码形式进行存储,其数据位宽为28bit。将片段1和片段2两个片段合起来总共占用72bit的数据位宽,与压缩前128bite为相比减少了很多。可以理解地,当顶点数量更多时,数据位宽的节省会更加明显。从而更加降低了存储空间的占用情况。
步骤2:主机端将压缩后的顶点索引片段存入GPU端的显存,从而可以使得GPU端从显存中读出压缩后的顶点索引片段并进行解压缩处理。
步骤3:GPU端通过顶点索引缓存cache中读取压缩后的顶点索引片段,并进行解压缩。其具体实施过程包括:
针对于片段1,先获取其index_num和Max_diff_bit,随后根据数据类型解码出第一个顶点索引,然后依次计算出之后的顶点索引值。当计算得到的顶点索引值达到index_num后需切换到片段2进行上述处理,本实施例对此不再赘述。
步骤4:GPU在解压缩完成后,根据解压缩后的顶点索引片段从顶点数据缓存中抓取顶点数据,从而GPU可以进行后续针对顶点数据的处理。
本具体示例的技术方案通过对顶点索引数据的分段以及压缩处理,与常规方案相比,使得同等数量的比特位可以存储更多的顶点索引;从整体上提高了存储空间的利用率,且大幅度减少了顶点索引数据对存储空间的占用,解决了渲染大量顶点时的存储空间占用过大的问题。此外,由于存储在显存中的顶点索引数据为压缩数据,那么在读取顶点索引数据时,就可以相应地减少读取显存的次数,提高了系统的整体性能。
基于前述技术方案相同的发明构思,参见图5,其示出了本发明实施例提供的一种顶点索引的压缩装置50,该装置可以应用于CPU端,所述装置50包括:划分部分501、压缩部分502和传输部分503;其中,
所述划分部分501,配置为根据设定的差值范围,将顶点索引数组中元素按照相邻元素之间的差值划分为一个或以上的原始索引片段,并获取每个原始索引片段的顶点索引数量以及每个原始索引片段内相邻顶点索引之间的差值最大值对应的bit数;
所述压缩部分502,配置为针对每个原始索引片段:保持首个顶点索引数据不变,根据相邻顶点索引数据的差值对所述首个顶点索引数据之后的后续顶点索引数据进行替换,获得每个原始索引片段对应的压缩后的索引片段;其中,所述相邻顶点索引数据的差值的位宽为所述压缩后的索引片段对应的原始索引片段内相邻顶点索引之间的差值最大值对应的bit数;
所述传输部分503,配置为将所有压缩后的索引片段、各压缩后的索引片段内的顶点索引数量以及各压缩后的索引片段对应的原始索引片段内相邻顶点索引之间的差值最大值对应的bit数按照原始索引片段的划分顺序传输至图形处理器GPU以存入显存。
在上述方案中,所述划分部分501,配置为:
按照元素顺序,将相邻元素之间的差值不超过所述设定的差值范围对所述顶点索引数组中的元素进行划分,获得一个或以上的原始索引片段。
在上述方案中,所述压缩部分502,配置为:
针对每个原始索引片段,至少执行以下步骤:
保持所述原始索引片段中首个顶点索引数据不变;
针对所述首个顶点索引数据之后的后续顶点索引数据,分别获取各后续顶点索引数据与各后续顶点索引数据的前一个顶点索引数据的差值,并通过各后续顶点索引数据与各后续顶点索引数据的前一个顶点索引数据的差值替换各后续顶点索引数据;其中,所述各后续顶点索引数据与各后续顶点索引数据的前一个顶点索引数据的差值位宽为所述原书索引片段内相邻顶点索引之间的差值最大值对应的bit数,所述各后续顶点索引数据与各后续顶点索引数据的前一个顶点索引数据的差值通过补码形式表示。
相应于图5所示的顶点索引的压缩装置,参见图6,其示出了本发明实施例提供的一种顶点索引的解压缩装置60,该装置可以应用于GPU端,所述装置60可以包括:读取部分601、解压部分602;其中,所述读取部分601,配置为按照原始索引片段的划分顺序,读取显存内存储的压缩后的索引片段;
所述解压缩部分602,配置为将当前被读取的压缩后的索引片段内的首个顶点索引数据作为对应的解压缩的索引片段内的首个顶点索引数据;
以及,针对当前被读取的压缩后的索引片段内所述首个顶点索引数据之后的后续顶点索引数据,按照当前被读取的压缩后的索引片段内各后续顶点索引数据的前一个顶点索引数据进行解压缩,获得对应的所述解压缩的索引片段内的首个顶点索引数据之后的各后续顶点索引数据;
所述读取部分601,还配置为相应于所述解压缩的索引片段内的顶点索引数据数量满足当前被读取的压缩后的索引片段内的顶点索引数量,读取显存内存储的下一个压缩后的索引片段并触发所述解压缩部分602进行解压缩,直至所有压缩后的索引片段被解压缩。
在上述方案中,所述解压缩部分602,配置为:
相应于所述当前被读取的压缩后的索引片段内各后续顶点索引数据为补码形式,将所述当前被读取的压缩后的索引片段内各后续顶点索引数据与所述当前被读取的压缩后的索引片段内各后续顶点索引数据的前一个顶点索引数据相加,获得对应的所述解压缩的索引片段内的首个顶点索引数据之后的各后续顶点索引数据。
可以理解地,在本实施例中,“部分”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是单元,还可以是模块也可以是非模块化的。
另外,在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
因此,本实施例提供了一种计算机存储介质,所述计算机存储介质存储有顶点索引的压缩程序和/或顶点索引的解压缩程序;
其中,所述顶点索引的压缩程序被至少一个处理器执行时实现图2所示的顶点索引的压缩方法的步骤;
所述顶点索引的解压缩程序被至少一个处理器执行时实现图3所示的顶点索引的解压缩方法的步骤。
基于上述装置以及计算机存储介质,参见图7,其示出了本发明实施例提供的一种图像处理系统70,可以包括前述顶点索引的压缩装置50以及前述顶点索引的解压缩装置60。
需要说明的是,上述图像处理系统70可以应用于具体的电子设备80中,该电子设备80可包括个人计算机、桌上型计算机、膝上型计算机、计算机工作站、视频游戏平台或控制台、无线通信装置(例如,移动电话、蜂窝式电话、卫星电话和/或移动电话手持机)、陆线电话、因特网电话、手持装置(例如,便携式视频游戏装置或个人数字助理(PDA))、个人音乐播放器、视频播放器、显示装置、电视、电视机顶盒、服务器、中间网络装置、主机计算机等处理和/或显示图形数据的任何其它类型的电子设备或装置。参见图8所示,该电子设备80中,包括GPU 801和CPU 802,以及实现所述GPU 801和所述CPU 802之间的连接通信的系统总线803;其中,
所述CPU 801,经配置以实现图2所示顶点索引的压缩方法的步骤;
所述GPU 802,经配置以实现图3所示顶点索引的解压缩方法的步骤。
可以理解地,该电子设备80中还可能包含用户输入接口、存储器子系统、显示接口、显示器。其中,用户输入接口、CPU、存储器子系统、GPU及显示接口仍旧可使用系统总线803彼此通信,图8中对上述器件不做具体展示。
对于CPU 801来说,可包括控制电子设备80的操作的通用或专用处理器。CPU 801可执行一或多个软件应用程序。所述软件应用程序可包含(例如)视频游戏应用程序、图形应用程序、字处理器应用程序、电子邮件应用程序、总分析表应用程序、媒体播放器应用程序、图形用户接口应用程序、操作系统或任何其它类型的软件应用或程序。进一步地,在CPU801上执行的软件应用程序可包含发指令给GPU 802以使图形数据呈现到显示器的一或多个图形呈现指令。在一些实例中,软件指令可符合图形应用程序编程接口(API),例如,开放图形库OpenGL API、开放图形库嵌入系统(OpenGL ES)API等任何其它公共或专有标准图形API。为了处理图形呈现指令,CPU 801可将一或多个图形呈现命令发布到GPU 802以使GPU802执行图形数据的呈现的一些或全部。在一些实例中,待呈现的图形数据可包含例如点、线、三角形、四边形、三角形带、分块等图形基元的列表。
GPU 802可经配置以执行由CPU 801发布到GPU 802的命令。由GPU 802执行的命令可包含图形命令、绘制调用命令、GPU状态编程命令、时戳请求、储器传递命令、通用计算命令、核心执行命令等。
可以理解地,尽管图8中示出了单个CPU 801和GPU 802,但在上述技术方案中,可以根据需要采用任意数量的CPU 801和GPU 802。在采用多个CPU801和GPU 802时,CPU 801和GPU 802中的每个都可以是不同类型和架构的。
需要说明的是:本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (8)

1.一种顶点索引的压缩方法,其特征在于,所述方法应用于CPU端,所述方法包括:
根据设定的差值范围,将顶点索引数组中元素按照相邻元素之间的差值划分为一个或以上的原始索引片段,并获取每个原始索引片段的顶点索引数量以及每个原始索引片段内相邻顶点索引之间的差值最大值对应的bit数;
针对每个原始索引片段:保持首个顶点索引数据不变,根据相邻顶点索引数据的差值对所述首个顶点索引数据之后的后续顶点索引数据进行替换,获得每个原始索引片段对应的压缩后的索引片段;其中,所述相邻顶点索引数据的差值的位宽为所述压缩后的索引片段对应的原始索引片段内相邻顶点索引之间的差值最大值对应的bit数;
将所有压缩后的索引片段、各压缩后的索引片段内的顶点索引数量以及各压缩后的索引片段对应的原始索引片段内相邻顶点索引之间的差值最大值对应的bit数按照原始索引片段的划分顺序传输至图形处理器GPU以存入显存;
其中,所述根据相邻顶点索引数据的差值对所述首个顶点索引数据之后的后续顶点索引数据进行替换,获得每个原始索引片段对应的压缩后的索引片段,包括:
针对所述首个顶点索引数据之后的后续顶点索引数据,分别获取各后续顶点索引数据与各后续顶点索引数据的前一个顶点索引数据的差值,并通过各后续顶点索引数据与各后续顶点索引数据的前一个顶点索引数据的差值替换各后续顶点索引数据;其中,所述各后续顶点索引数据与各后续顶点索引数据的前一个顶点索引数据的差值位宽为所述原始索引片段内相邻顶点索引之间的差值最大值对应的bit数,所述各后续顶点索引数据与各后续顶点索引数据的前一个顶点索引数据的差值通过补码形式表示。
2.根据权利要求1所述的方法,其特征在于,所述根据设定的差值范围,将顶点索引数组中元素按照相邻元素之间的差值划分为一个或以上的原始索引片段,包括:
按照元素顺序,将相邻元素之间的差值不超过所述设定的差值范围对所述顶点索引数组中的元素进行划分,获得一个或以上的原始索引片段。
3.一种顶点索引的解压缩方法,其特征在于,所述方法应用于GPU端,所述方法包括:
按照原始索引片段的划分顺序,读取显存内存储的压缩后的索引片段;
将当前被读取的压缩后的索引片段内的首个顶点索引数据作为对应的解压缩的索引片段内的首个顶点索引数据;
针对当前被读取的压缩后的索引片段内所述首个顶点索引数据之后的后续顶点索引数据,按照当前被读取的压缩后的索引片段内各后续顶点索引数据的前一个顶点索引数据进行解压缩,获得对应的所述解压缩的索引片段内的首个顶点索引数据之后的各后续顶点索引数据;
相应于所述解压缩的索引片段内的顶点索引数据数量满足当前被读取的压缩后的索引片段内的顶点索引数量,读取显存内存储的下一个压缩后的索引片段进行解压缩,直至所有压缩后的索引片段被解压缩;
其中,所述按照当前被读取的压缩后的索引片段内各后续顶点索引数据的前一个顶点索引数据进行解压缩,获得对应的所述解压缩的索引片段内的首个顶点索引数据之后的各后续顶点索引数据,包括:
相应于所述当前被读取的压缩后的索引片段内各后续顶点索引数据为补码形式,将所述当前被读取的压缩后的索引片段内各后续顶点索引数据与所述当前被读取的压缩后的索引片段内各后续顶点索引数据的前一个顶点索引数据相加,获得对应的所述解压缩的索引片段内的首个顶点索引数据之后的各后续顶点索引数据。
4.一种顶点索引的压缩装置,其特征在于,所述装置包括:划分部分、压缩部分和传输部分;其中,
所述划分部分,配置为根据设定的差值范围,将顶点索引数组中元素按照相邻元素之间的差值划分为一个或以上的原始索引片段,并获取每个原始索引片段的顶点索引数量以及每个原始索引片段内相邻顶点索引之间的差值最大值对应的bit数;
所述压缩部分,配置为针对每个原始索引片段:保持首个顶点索引数据不变,根据相邻顶点索引数据的差值对所述首个顶点索引数据之后的后续顶点索引数据进行替换,获得每个原始索引片段对应的压缩后的索引片段;其中,所述相邻顶点索引数据的差值的位宽为所述压缩后的索引片段对应的原始索引片段内相邻顶点索引之间的差值最大值对应的bit数;
所述传输部分,配置为将所有压缩后的索引片段、各压缩后的索引片段内的顶点索引数量以及各压缩后的索引片段对应的原始索引片段内相邻顶点索引之间的差值最大值对应的bit数按照原始索引片段的划分顺序传输至图形处理器GPU以存入显存;
其中,所述压缩部分,配置为:
针对所述首个顶点索引数据之后的后续顶点索引数据,分别获取各后续顶点索引数据与各后续顶点索引数据的前一个顶点索引数据的差值,并通过各后续顶点索引数据与各后续顶点索引数据的前一个顶点索引数据的差值替换各后续顶点索引数据;其中,所述各后续顶点索引数据与各后续顶点索引数据的前一个顶点索引数据的差值位宽为所述原始索引片段内相邻顶点索引之间的差值最大值对应的bit数,所述各后续顶点索引数据与各后续顶点索引数据的前一个顶点索引数据的差值通过补码形式表示。
5.一种顶点索引的解压缩装置,其特征在于,所述装置包括:读取部分、解压部分;其中,所述读取部分,配置为按照原始索引片段的划分顺序,读取显存内存储的压缩后的索引片段;
所述解压部分,配置为将当前被读取的压缩后的索引片段内的首个顶点索引数据作为对应的解压缩的索引片段内的首个顶点索引数据;
以及,针对当前被读取的压缩后的索引片段内所述首个顶点索引数据之后的后续顶点索引数据,按照当前被读取的压缩后的索引片段内各后续顶点索引数据的前一个顶点索引数据进行解压缩,获得对应的所述解压缩的索引片段内的首个顶点索引数据之后的各后续顶点索引数据;
所述读取部分,还配置为相应于所述解压缩的索引片段内的顶点索引数据数量满足当前被读取的压缩后的索引片段内的顶点索引数量,读取显存内存储的下一个压缩后的索引片段并触发所述解压部分进行解压缩,直至所有压缩后的索引片段被解压缩;
其中,所述解压部分,配置为相应于所述当前被读取的压缩后的索引片段内各后续顶点索引数据为补码形式,将所述当前被读取的压缩后的索引片段内各后续顶点索引数据与所述当前被读取的压缩后的索引片段内各后续顶点索引数据的前一个顶点索引数据相加,获得对应的所述解压缩的索引片段内的首个顶点索引数据之后的各后续顶点索引数据。
6.一种图像处理系统,包括权利要求4所述顶点索引的压缩装置以及权利要求5所述的顶点索引的解压缩装置。
7.一种电子设备,其特征在于,包括GPU和CPU,以及实现所述GPU和所述CPU之间的连接通信的系统总线;其中,
所述CPU,经配置以实现权利要求1或2所述顶点索引的压缩方法的步骤;
所述GPU,经配置以实现权利要求3所述顶点索引的解压缩方法的步骤。
8.一种计算机存储介质,所述计算机存储介质存储有顶点索引的压缩程序和/或顶点索引的解压缩程序;
其中,所述顶点索引的压缩程序被至少一个处理器执行时实现权利要求1或2中任一项所述顶点索引的压缩方法的步骤;
所述顶点索引的解压缩程序被至少一个处理器执行时实现权利要求3所述顶点索引的解压缩方法的步骤。
CN201910468287.3A 2019-05-31 2019-05-31 一种顶点索引的压缩及解压缩方法、装置及计算机存储介质 Active CN110175269B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910468287.3A CN110175269B (zh) 2019-05-31 2019-05-31 一种顶点索引的压缩及解压缩方法、装置及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910468287.3A CN110175269B (zh) 2019-05-31 2019-05-31 一种顶点索引的压缩及解压缩方法、装置及计算机存储介质

Publications (2)

Publication Number Publication Date
CN110175269A CN110175269A (zh) 2019-08-27
CN110175269B true CN110175269B (zh) 2021-03-12

Family

ID=67696813

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910468287.3A Active CN110175269B (zh) 2019-05-31 2019-05-31 一种顶点索引的压缩及解压缩方法、装置及计算机存储介质

Country Status (1)

Country Link
CN (1) CN110175269B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105283900A (zh) * 2013-06-10 2016-01-27 索尼电脑娱乐公司 用于压缩顶点着色器输出参数的方案
CN109255090A (zh) * 2018-08-14 2019-01-22 华中科技大学 一种web图的索引数据压缩方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10460418B2 (en) * 2017-02-10 2019-10-29 Microsoft Technology Licensing, Llc Buffer index format and compression

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105283900A (zh) * 2013-06-10 2016-01-27 索尼电脑娱乐公司 用于压缩顶点着色器输出参数的方案
CN109255090A (zh) * 2018-08-14 2019-01-22 华中科技大学 一种web图的索引数据压缩方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《A Lossless Color Image Compression Architecture Using a Parallel Golomb-Rice Hardware CODEC》;Hong-Sik Kim等;《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》;20111130;第21卷(第11期);1581-1587 *
《图形处理器流水线数据压缩技术研究综述》;韩立敏等;《计算机应用研究》;20180331;第35卷(第3期);648-653 *

Also Published As

Publication number Publication date
CN110175269A (zh) 2019-08-27

Similar Documents

Publication Publication Date Title
US8761528B2 (en) Compression of image data
US7599975B1 (en) Decompression of compressed 16 bit data
JP4698739B2 (ja) コンピュータグラフィックスのための画像圧縮
US6452602B1 (en) Method and apparatus for storing compressed data
EP2005393B1 (en) High quality image processing
CN101099174B (zh) 图像编码方法、编码器、解码方法、解码器以及计算机程序产品
TWI551117B (zh) 經壓縮的深度快取技術
CN110996105B (zh) 可变速率压缩的方法和可变速率解压缩的方法
US20150379682A1 (en) Vertex attribute data compression with random access using hardware
CN108377394B (zh) 视频编码器的图像数据读取方法、计算机装置及计算机可读存储介质
CN109816739B (zh) 图片压缩方法、装置、计算机设备及计算机可读存储介质
CN114610650A (zh) 内存压缩方法、装置、存储介质及电子设备
TWI615805B (zh) 色彩緩衝器壓縮技術
US10282889B2 (en) Vertex attribute compression and decompression in hardware
KR101709822B1 (ko) 부호화된 텍셀 블록에서 동작할 수 있는 복호 시스템 및 방법
US11568572B2 (en) Texture compression
US20140184627A1 (en) Progressive lossy memory compression
KR100968675B1 (ko) Jpeg 어플리케이션의 가변 길이 코드 디코딩
CN110175269B (zh) 一种顶点索引的压缩及解压缩方法、装置及计算机存储介质
CN115794666B (zh) 纹素的内存地址确定方法、装置、设备及存储介质
EP4344069A2 (en) Data compression method and apparatus and data decompression method and apparatus
KR20170005035A (ko) 깊이 오프셋 압축 기법
CN110545446B (zh) 一种桌面图像编码、解码方法、相关装置及存储介质
CN114882149A (zh) 动画渲染方法、装置、电子设备和存储介质
CN114692077A (zh) 一种矩阵计算装置、方法、系统、电路、芯片及设备

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
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Zhang Jingdan

Inventor after: Wang Ke

Inventor before: Wang Ke

Inventor before: Huang Hucai

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200226

Address after: 710065 room 21101, floor 11, unit 2, building 1, Wangdu, No. 3, zhangbayi Road, Zhangba Street office, hi tech Zone, Xi'an City, Shaanxi Province

Applicant after: Xi'an Xintong Semiconductor Technology Co.,Ltd.

Address before: 710077 D605, Main R&D Building of ZTE Industrial Park, No. 10 Tangyannan Road, Xi'an High-tech Zone, Shaanxi Province

Applicant before: Xi'an Botuxi Electronic Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Room 301, Building D, Yeda Science and Technology Park, No. 300 Changjiang Road, Yantai Area, China (Shandong) Pilot Free Trade Zone, Yantai City, Shandong Province, 265503

Patentee after: Xi'an Xintong Semiconductor Technology Co.,Ltd.

Address before: Room 21101, 11 / F, unit 2, building 1, Wangdu, No. 3, zhangbayi Road, Zhangba Street office, hi tech Zone, Xi'an City, Shaanxi Province

Patentee before: Xi'an Xintong Semiconductor Technology Co.,Ltd.