一种硬件友好的面向实时系统无损纹理压缩算法技术方案

技术编号:23191933 阅读:42 留言:0更新日期:2020-01-24 16:37
本发明专利技术涉及计算机图形学技术领域,具体涉及一种硬件友好的面向实时系统无损纹理压缩算法,包括由数据切割模块将待压缩纹理分割为多个固定大小的数据块,并送入数据压缩模块中;数据压缩模块对多个固定大小的数据块进行霍夫曼压缩和1z77压缩;压缩完成后,比较压缩后数据包、原始数据包大小,如果压缩后的数据包大小小于原始数据包大小,输出压缩后数据包时,添加压缩文件头,反之输出原始数据,且不压缩数据。本发明专利技术的有益效果:本发明专利技术将待压缩纹理分割为固定大小的数据块,利用霍夫曼压缩和lz77压缩对固定块压缩,解决了无损压缩解压困难的问题,达到了无损纹理解压的目的,固定大小的数据块在解压时对硬件友好。

A hardware friendly lossless texture compression algorithm for real-time system

【技术实现步骤摘要】
一种硬件友好的面向实时系统无损纹理压缩算法
本专利技术涉及计算机图形学
,具体涉及一种硬件友好的面向实时系统无损纹理压缩算法。
技术介绍
纹理压缩(texturecompression)是一种专门用于存储三维计算机图形绘制系统中的纹理映射的图像压缩形式。纹理压缩技术不仅可以提高纹理缓存的利用效率,使采用更大、更高分辨率的纹理成为可能,而更大、更高分辨率纹理图像的采用,将使得虚拟环境中的景物表面看起来更加真实细腻:更能有效地减轻系统数据传输的负担,避免了由于纹理缓存频繁交换带来的系统性能下降,这样就在一定程度上平衡了真实感图形的实时绘制问题。纹理压缩区别于其他图像压缩技术的区别是:1.对解码速度敏感:由于纹理压缩技术用于纹理渲染,解压用于直接绘制,实时性要求高,因此为了不影响渲染,解压速度必须快。2.随机读取:由于渲染过程中纹理读取的顺序是未知的,所以任何纹理压缩方案都必须允许快速随机访问已解压缩的纹理数据。3.压缩率:图形绘制系统带宽有限,需要在尽可能小的带宽消耗下完成渲染,对于纹理压缩率要求高。4.不需要实时编码,仅需编码一次,对于编码速度要求低。现有技术如中国专利公开号CN201611140118.X公开了一种可配置的快速纹理压缩方法,包括:步骤1、纹理图片分格模块(1)解析纹理图片数据,并将纹理图片分成一系列纹理单元格,并发给基准颜色筛选模块(2);步骤2、用户配置模块(5)接受用户配置参数;步骤3、基准颜色预筛选模块(2)接收用户配置模块(5)设定的基准点选取方式和基准点个数,将所述基准点选取方式和基准点个数设定为预筛选策略。本专利技术通过将纹理图片分格,根据用户配置信息,在单元格内预筛选基准颜色,经过单元格误差因子计算确定纹理压缩基准颜色,组合生成压缩纹理数据,可配置的快速、高效完成纹理压缩过程。现有技术采用将纹理分块并设置一定基准点,利用基准点将整个纹理块编码的方式来压缩纹理,此方案提供了一种可配置的纹理压缩方法,然而由于使用基准点编码,是一种有损压缩。
技术实现思路
本专利技术的目的在于克服现有技术中存在的问题,提供一种硬件友好的面向实时系统无损纹理压缩算法,它可以实现利用固定大小数据块的压缩纹理,从而降低解压的复杂度,同时固定大小的数据块使得随机数据读取更加便利。为实现上述技术目的,达到上述技术效果,本专利技术是通过以下技术方案实现的:一种硬件友好的面向实时系统无损纹理压缩算法,包括如下步骤:步骤1、由数据切割模块将待压缩纹理分割为多个固定大小的数据块,并送入数据压缩模块中;步骤2、所述数据压缩模块对多个固定大小的数据块进行霍夫曼压缩和1z77压缩;步骤3、压缩完成后,比较压缩后数据包、原始数据包大小,如果压缩后的数据包大小小于原始数据包大小,输出压缩后数据包时,添加压缩文件头,反之输出原始数据,且不压缩数据。进一步地,所述步骤1中,数据切割模块每次从待压缩纹理中读取固定大小的数据块,不足固定大小的用0将数据补齐至固定大小。进一步地,所述步骤2中,经过霍夫曼压缩和1z77压缩后的数据格式包括查找表和数据包,所述查找表每4个字节为一组,记录一个数据包压大小、是否压缩、在文件中地址三个信息,用于解压使用,所述数据包内包括包头、数据和验证码,其中包头和验证码是用于解压时验证数据的正确性,为了保证后续解压时,读取所有数据包时,起始地址均为整KB地址,压缩后每个数据包均采用1KB地址对齐,不足1KB时用0补齐至1KB。本专利技术的有益效果:本专利技术将待压缩纹理分割为固定大小的数据块,利用霍夫曼压缩和lz77压缩对固定块压缩,解决了无损压缩解压困难的问题,达到了无损纹理解压的目的,固定大小的数据块在解压时对硬件友好,与一般的无损压缩解压时需要将所有数据解压不同,本专利技术的算法在解压时只需要解压对应的固定大小的数据块即可,解压效率高。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例中一种硬件友好的面向实时系统无损纹理压缩算法的方法流程示意图;图2为本专利技术实施例中数据切割模块的工作流程示意图;图3为本专利技术实施例中数据压缩模块的工作流程示意图;图4为本专利技术实施例中查找表的框架结构示意图;图5为本专利技术实施例中数据包的框架结构示意图。具体实施方式为了使本专利技术实现的技术手段、创作特征、达成目的与功效易于明白了解,下面将结合本专利技术的实施例,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。如图1-5所示的一种硬件友好的面向实时系统无损纹理压缩算法,包括如下步骤:步骤1、由数据切割模块将待压缩纹理分割为多个16KB的数据块,并送入数据压缩模块中;步骤2、所述数据压缩模块对多个16KB的数据块进行霍夫曼压缩和1z77压缩;步骤3、压缩完成后,比较压缩后数据包、原始数据包大小,如果压缩后的数据包大小小于原始数据包大小,输出压缩后数据包时,添加压缩文件头,反之输出原始数据,且不压缩数据。所述步骤1中,数据切割模块每次从待压缩纹理中读取16KB的数据块,不足16KB的用0将数据补齐至16KB。所述步骤2中,经过霍夫曼压缩和1z77压缩后的数据格式包括查找表和数据包,所述查找表大小为256KB,每4个字节为一组,记录一个数据包压大小、是否压缩、在文件中地址三个信息,用于解压使用,所述数据包内包括包头、数据和验证码,其中包头和验证码是用于解压时验证数据的正确性,为了保证后续解压时,读取所有数据包时,起始地址均为整KB地址,压缩后每个数据包均采用1KB地址对齐,不足1KB时用0补齐至1KB。以上公开的本专利技术优选实施例只是用于帮助阐述本专利技术。优选实施例并没有详尽叙述所有的细节,也不限制该专利技术仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本专利技术的原理和实际应用,从而使所属
技术人员能很好地理解和利用本专利技术。本专利技术仅受权利要求书及其全部范围和等效物的限制。本文档来自技高网
...

【技术保护点】
1.一种硬件友好的面向实时系统无损纹理压缩算法,其特征在于,包括如下步骤:/n步骤1、由数据切割模块将待压缩纹理分割为多个固定大小的数据块,并送入数据压缩模块中;/n步骤2、所述数据压缩模块对多个固定大小的数据块进行霍夫曼压缩和1z77压缩;/n步骤3、压缩完成后,比较压缩后数据包、原始数据包大小,如果压缩后的数据包大小小于原始数据包大小,输出压缩后数据包时,添加压缩文件头,反之输出原始数据,且不压缩数据。/n

【技术特征摘要】
1.一种硬件友好的面向实时系统无损纹理压缩算法,其特征在于,包括如下步骤:
步骤1、由数据切割模块将待压缩纹理分割为多个固定大小的数据块,并送入数据压缩模块中;
步骤2、所述数据压缩模块对多个固定大小的数据块进行霍夫曼压缩和1z77压缩;
步骤3、压缩完成后,比较压缩后数据包、原始数据包大小,如果压缩后的数据包大小小于原始数据包大小,输出压缩后数据包时,添加压缩文件头,反之输出原始数据,且不压缩数据。


2.根据权利要求1所述的一种硬件友好的面向实时系统无损纹理压缩算法,其特征在于,所述步骤1中,数据切割模块每次从...

【专利技术属性】
技术研发人员:查道路项天
申请(专利权)人:苏州速显微电子科技有限公司
类型:发明
国别省市:江苏;32

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

1