缓冲器索引格式和压缩制造技术

技术编号:22225774 阅读:52 留言:0更新日期:2019-09-30 06:20
描述了灵活、动态且有效的压缩和解压缩机制。示例压缩机制包括读取多个索引组,标识多个组中的每个组中的最小索引,旋转多个组中的每个组中的索引,使得最小索引是第一值,对于剩余索引,计算相对于多个组中的每个组中的最小索引的无符号增量编码值,将多个索引组转换为多个压缩索引组,并且存储多个压缩索引组。示例解压缩机制包括读取多个压缩索引组,将第一索引标识为多个组中的每个组中的绝对值,计算多个组中的每个组的剩余索引,并且将多个压缩索引组转换为多个解压缩索引组。

Buffer Index Format and Compression

【技术实现步骤摘要】
【国外来华专利技术】缓冲器索引格式和压缩
技术介绍
本公开涉及计算机图形系统,并且更具体地涉及在计算机设备上绘制图形时的缓冲器格式和缓冲器压缩。可以将2D对象或来自3D世界(真实或虚构)的对象绘制到二维(2D)显示屏幕上的计算机图形系统当前用于各种各样的应用中。例如,3D计算机图形可以用于实时交互式应用(诸如视频游戏、虚拟现实、科学研究等)以及离线应用(诸如创建高分辨率电影、图形艺术等)。通常,图形系统包括图形处理单元(GPU)。GPU可以被实现为计算机的中央处理单元(CPU)的协处理器组件,并且可以以附加卡(例如,视频卡)、协处理器的形式提供,或者被提供作为直接集成到计算机的主板或诸如游戏设备等其他设备中的功能。通常,GPU具有“逻辑图形管线”,逻辑图形管线可以接受2D或3D场景的一些表示作为输入,并且输出限定2D图像的位图以用于显示。例如,微软公司的DIRECTX应用程序编程接口集合(包括DIRECT3DAPI)是一种具有图形管线模型的API的示例。图形管线通常包括用于将一组顶点、纹理、缓冲器和状态信息转换为屏幕上的图像帧的多个级。GPU或图形管线与图形存储器一起操作,图形存储器可以包括缓冲器,诸如包含用于标识顶点缓冲器中的顶点的索引的一个或多个索引缓冲器,其中索引和顶点信息用于绘制图元。因此,计算机设备操作图形管线以将关于3D对象的信息转换为可以显示的位图,并且该过程需要相当大的存储器和处理能力。很多视频游戏选择16位索引。然而,顶点的数目可以相对较小,并且不需要很多这些位模式。此外,很多视频游戏在很大程度上依赖硬件实例来进行剔除,提高内存效率并且节省建模成本。这种趋势很可能在未来继续,更丰富的虚拟世界包含更多偶然细节和更长的绘制距离。期望使着色过程更有效,然而,存在使这种简化变得困难的很多复杂性。例如,索引缓冲器中的索引的16位索引格式使得难以在图形管线的不同级之间传递数据。因此,需要改进索引格式。
技术实现思路
以下呈现一个或多个特征的简化概述以便提供对本公开的一个或多个示例实现的基本理解。该概述不是所有预期实现的广泛概述,并且既不旨在标识所有实现的关键或重要元素,也不旨在界定任何或所有实现的范围。其唯一目的是以简化的形式呈现一个或多个实现的一些概念,作为稍后呈现的更详细描述的序言。示例实现涉及用于计算设备中的索引压缩的方法、装置和计算机可读介质。该实现包括在计算机设备中的处理单元处读取多个索引组,每个索引组对应于要绘制的对象的网格的多个图元之一的至少一部分;标识多个组中的每个组中的最小索引;旋转多个组中的每个组中的索引,使得最小索引是第一值,或者为多个组中的每个组计算多个控制位,或者为多个组中的每个组计算多个控制位;对于多个组中的每个组中的剩余索引,计算相对于多个组中的每个组中的最小索引的无符号增量编码值;将多个索引组转换为多个压缩索引组,其中多个压缩索引组中的每个包括与多个组之一的最小索引的绝对值相对应的第一值,后跟多个组之一的剩余索引的无符号增量编码值;并且存储多个压缩索引组。该实现可以可选地包括由处理单元读取所存储的第一值和每个图元的索引的附加值,由处理单元解压缩每个图元的索引以通过写入第一索引的绝对值以及写入每个无符号增量编码值和每个剩余索引的绝对值的总和来确定解压缩的索引,并且存储解压缩的索引。此外,在附加实现中,该方法包括在计算机设备中的处理单元处读取多个压缩索引组,每个压缩索引组对应于要绘制的对象的网格的多个图元之一的至少一部分;将第一索引标识为多个组中的每个组中的绝对值;通过将绝对值和剩余索引的每个无符号增量编码值相加来计算多个组中的每个组的剩余索引;将多个压缩索引组转换为多个解压缩索引组,其中多个解压缩索引组中的每个包括与多个组之一的绝对值相对应的第一值,后跟多个组之一的剩余索引;并且存储多个解压缩索引组。附加实现可以可选地包括,其中多个索引组中的每个对应于多个图元中的多于一个,并且其中处理单元还被配置为针对多个压缩索引组中的每个计算多个控制位,其中多个控制位中的每个指示多个组之一中的最小索引的位置;将多个控制位中的每个控制位添加到多个压缩索引组中的对应压缩索引组;并且将多个控制位中的每个控制位与多个压缩索引组中的对应压缩索引组一起存储。此外,一种示例装置可以包括用于索引压缩的计算设备,该计算设备包括处理单元,该处理单元被配置为在计算机设备中的处理单元处读取多个索引组,每个索引组对应于要绘制的对象的网格的多个图元之一的至少一部分;标识多个组中的每个组中的最小索引;旋转多个组中的每个组中的索引,使得最小索引是第一值,或者为多个组中的每个组计算多个控制位,或者为多个组中的每个组计算多个控制位;对于多个组中的每个组中的剩余索引,计算相对于多个组中的每个组中的最小索引的无符号增量编码值;将多个索引组转换为多个压缩索引组,其中多个压缩索引组中的每个包括与多个组之一的最小索引的绝对值相对应的第一值,后跟多个组之一的剩余索引的无符号增量编码值;并且存储多个压缩索引组。与本公开的实现有关的其他优点和新颖特征将部分地在下面的描述中阐述,并且部分地对于检查了以下内容或通过其实践进行了学习的本领域技术人员将变得更加明显。附图说明图1是包括根据本公开配置的图形处理单元和图形管线的计算机设备的示例架构的示意性框图。图2是图1的计算机设备的图形管线和图形存储器的示例的示意图。图3A和3B是根据本公开的索引压缩和解压缩方法的示例流程图。图4是可以应用本文中描述的索引格式化和压缩的示例对象的网格的示意图。图5是应用于图4的网格的索引的索引格式化、压缩和解压缩的简单压缩示例的示意图。图6是应用于图4的网格的索引的索引格式化、压缩和解压缩的复杂压缩示例的示意图。图7是根据本公开的结合简单压缩方案使用的示例索引格式的表。图8是根据本公开的结合复杂压缩方案使用的示例索引格式的表。图9是用于本公开的一个或多个实现的示例用例的示意图。图10是用于本公开的一个或多个实现的另一示例用例的示意图。具体实施方式所描述的实现提供了一种图形处理单元(GPU),GPU具有用于索引缓冲器的灵活、动态且有效的索引格式化、压缩和解压缩机制。特别地,所描述的实现允许用于在GPU处压缩和/或解压缩索引缓冲器的不同索引格式(例如,简单或复杂索引格式)。更具体地,所描述的实现描述了一种简单压缩方案,该压缩方案包括读取图元的索引并且将图元的索引压缩为压缩索引组并且存储压缩索引组。特别地,索引的压缩包括将图元的最小索引指示为第一值,接着是图元的剩余索引的附加值,其中第一值是绝对值,并且附加值是无符号增量编码值。在一些情况下,诸如在替代的复杂压缩方案中,压缩还可以包括读取与多于一个图元相关联的索引集合,并且将控制位添加到每个索引集合以指示第一值的未压缩位置,并且存储压缩索引组中的每个索引集合的控制位。可选地,在一些情况下,可以在GPU处解压缩压缩索引,其可以包括读取所存储的第一值和每个图元的索引的附加值,并且解压缩每个图元的索引以确定解压缩的索引。解压缩可以包括:写入第一索引的绝对值,并且写入每个无符号增量编码值与每个剩余索引的绝对值的总和,并且存储解压缩的索引。在一些其他可选情况下,诸如在替代的复杂压缩方案中,压缩索引的解压缩还可以包括读取所存储的第一值和与多于本文档来自技高网
...

【技术保护点】
1.一种计算机设备中的索引压缩方法,包括:在所述计算机设备中的处理单元处读取多个索引组,每个索引组对应于要绘制的对象的网格的多个图元之一的至少一部分;标识所述多个组中的每个组中的最小索引;旋转所述多个组中的每个组中的索引,使得所述最小索引是第一值,或者计算针对所述多个组中的每个组的多个控制位;对于所述多个组中的每个组中的剩余索引,计算相对于所述多个组中的每个组中的所述最小索引的无符号增量编码值;将所述多个索引组转换为多个压缩索引组,其中所述多个压缩索引组中的每个压缩索引组包括与所述多个组之一的所述最小索引的绝对值相对应的所述第一值,后跟所述多个组之一的所述剩余索引的所述无符号增量编码值;以及存储所述多个压缩索引组。

【技术特征摘要】
【国外来华专利技术】2017.02.10 US 62/457,711;2017.06.19 US 15/626,6791.一种计算机设备中的索引压缩方法,包括:在所述计算机设备中的处理单元处读取多个索引组,每个索引组对应于要绘制的对象的网格的多个图元之一的至少一部分;标识所述多个组中的每个组中的最小索引;旋转所述多个组中的每个组中的索引,使得所述最小索引是第一值,或者计算针对所述多个组中的每个组的多个控制位;对于所述多个组中的每个组中的剩余索引,计算相对于所述多个组中的每个组中的所述最小索引的无符号增量编码值;将所述多个索引组转换为多个压缩索引组,其中所述多个压缩索引组中的每个压缩索引组包括与所述多个组之一的所述最小索引的绝对值相对应的所述第一值,后跟所述多个组之一的所述剩余索引的所述无符号增量编码值;以及存储所述多个压缩索引组。2.根据权利要求1所述的方法,其中所述第一值和所述剩余索引的所述无符号增量编码值相对于每个图元以相同的缠绕顺序被布置。3.根据权利要求1所述的方法,其中存储所述压缩索引组还包括使用总共32位进行存储,包括:对于所述绝对值,使用12位,并且对于所述无符号增量编码值中的每个无符号增量编码值,使用10位;或者对于所述绝对值,使用14位,并且对于所述无符号增量编码值中的每个无符号增量编码值,使用9位。4.根据权利要求1所述的方法,其中所述多个索引组中的每个索引组对应于所述多个图元中的多于一个图元,并且所述方法还包括:计算针对所述多个组中的每个组的所述多个控制位,其中所述多个控制位中的每个控制位指示所述多个组之一中的所述最小索引的位置;其中所述转换还包括将所述多个控制位中的每个控制位添加到所述多个压缩索引组中的对应压缩索引组;以及其中所述存储还包括将所述多个控制位中的每个控制位与所述多个压缩索引组中的对应压缩索引组一起存储。5.根据权利要求4所述的方法,还包括存储所述压缩索引组。6.根据权利要求5所述的方法,其中存储所述压缩索引组还包括:使用总共32位进行存储,其中9位用于所述绝对值,7位用于3个无符号增量编码值中的每个无符号增量编码值,并且2位用于所述多个控制位中的每个控制位;或者使用总共48位进行存储,其中16位用于所述绝对值,10位用于3个无符号增量编码值中的每个无符号增量编码值,并且2位用于所述多个控制位中的每个控制位;或者使用总共64位进行存储,其中32位用于所述绝对值,10位用于3个无符号增量编码值中的每个无符号增量编码值,并且2位用于所述多个控制位中的每个控制位。7.一种计算机设备中的索引解压缩方法,包括:在所述计算机设备中的处理单元处读取多个压缩索引组,每个压缩索引组对应于要被绘制的对象的网格的多个图元之一的至少一部分;将第一索引标识为所述多个组中的每个组中的绝对值;通过将所述绝对值和所述多个组中的每个组的剩余索引的无符号增量编码值中的每个无符号增量编码值相加来计算所述剩余索引;将所述多个压缩索引组转换为多个解压缩索引组,其中所述多个解压缩索引组中的每个解压缩索引组包括与所述多个组之一的所述绝对值相对应的第一值,后跟所述多个组之一的所述剩余索引;以及存储所述多个解压缩索引组。8.根据权利要求7所述的方法,其中所述第...

【专利技术属性】
技术研发人员:M·J·I·福勒I·内弗雷弗
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1