CN101795410A - 一种细粒度高压缩率的纹理压缩和合成方法 - Google Patents
一种细粒度高压缩率的纹理压缩和合成方法 Download PDFInfo
- Publication number
- CN101795410A CN101795410A CN 201010117646 CN201010117646A CN101795410A CN 101795410 A CN101795410 A CN 101795410A CN 201010117646 CN201010117646 CN 201010117646 CN 201010117646 A CN201010117646 A CN 201010117646A CN 101795410 A CN101795410 A CN 101795410A
- Authority
- CN
- China
- Prior art keywords
- compression
- data
- texture
- basic
- mipmap
- 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.)
- Pending
Links
Images
Landscapes
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本发明提供一种细粒度高压缩率的纹理压缩和合成方法,其中:压缩方法步骤是生成低解析度的MIPMAP贴图;将低解析度的MIPMAP贴图分成若干基本压缩单元;对每一个基本压缩单元生成基本颜色数据和调制数据;将所有的纹理压缩块组成了纹理压缩数据;合成方法步骤是对每一个压缩块中的基本颜色及邻近的基本颜色数据进行线性插值,生成临时“中间基本颜色”数据;取出调制数据,对“中间基本颜色”数据调制,构造基本单元;将生成的所有基本单元进行合并,构造出低解析度的MIPMAP贴图;对生成的MIPMAP贴图进行双线性插值,构造出高解析度的目标纹理贴图。本发明的优点是不同调制模式适应不同场合,压缩质量佳,调制数据直接保存在压缩块中。
Description
技术领域
本发明涉及一种计算机图形学中的纹理压缩和合成的方法,特别涉及一种细粒度高压缩率的纹理压缩和合成方法。
背景技术
计算机图形学(Computer Graphics,简称CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。
纹理是在计算因计算机图形画面的光栅化所产生的片段的色彩或外观时使用的一维、二级或多维数据项阵列。纹理可以是图像数据、颜色或透明度数据、粗糙度/光滑度数据、反射率数据等。提供逼真的计算机图形一般要求很多高质量的细节纹理。提供这样的纹理会加重计算机内存的负担,因此,纹理压缩可降低内存的要求。
目前,公开的纹理压缩算法主要有基于矢量量化(vectorquantization,简称VQ)、调色板查询(Palletizing)、数据块分解(Data Block Decomposition,简称BD)、基于DCT压缩、或利用更低解析度的低通滤波图像等方法。但它们都有一些不足:
1、基于矢量量化VQ和调色板查询方法在纹理重构的过程中,需要频繁地访问内存以取得颜色索引,然后查询表、调色板等,对内存的要求较高;
2、数据块分解BD方法受限于颜色表中颜色种类的限制,不能很好地处理“锐利纹理边界”或“多种纹理颜色”问题,重构的质量较差;
3、基于DCT压缩方法和低解析度的低通滤波图像方法都对纹理解压缩过程要求过于复杂,难以实现或实现成本高昂。
发明内容
本发明所要解决的技术问题是要提供一种在同等压缩比率下能够对纹理作更精确调制的细粒度高压缩率的纹理压缩和合成方法。
本发明还要解决的另一技术问题是要提供一种压缩率达2.5bpp的细粒度高压缩率的纹理压缩和合成方法。
为了解决以上的技术问题,本发明提供了一种细粒度高压缩率的纹理压缩和合成方法,其中:
步骤1:该纹理压缩方法的步骤如下:
1-1、对于尺寸大小为W×H的目标压缩纹理,利用MIPMAP贴图技术,生成尺寸大小为W/2×H/2的低解析度的MIPMAP贴图;
1-2、将生成的低解析度的MIPMAP贴图按照2n×2n大小的原则分成若干个均等的基本压缩单元,最后生成的基本压缩单元的数量为(W/2×H/2)/4n2;其中n为自然数;
1-3、对每一个2n×2n大小的基本压缩单元,生成基本颜色数据和调制数据,构造纹理压缩块;
1-4、将所有的纹理压缩块组成纹理压缩数据;
步骤2:该纹理合成方法的步骤如下:
2-1、取出待解压缩的纹理压缩数据;
2-2、对于每一个压缩块中的基本颜色,同时取出邻近的其它基本颜色数据;然后对这些基本颜色数据进行线性插值,生成临时的“中间基本颜色”数据;
2-3、取出压缩块中的调制数据,对“中间基本颜色”数据进行调制,构造2n×2n大小的基本单元;
2-4、重复上面的第2-1步骤~2-3步骤,生成所有的基本单元;
2-5、将生成的所有的基本单元进行合并,构造出低解析度的MIPMAP贴图;
2-6、对生成的MIPMAP贴图进行双线性插值,构造出高解析度的目标纹理贴图。
所述的纹理压缩块包括基本颜色数据和调制数据。
对于2×2大小(2n×2n,其中n等于1)的纹理压缩块,所述的基本颜色数据是32位。所述的基本颜色数据中RGB每个颜色各占8位数据,透明数据占8位数据。所述的调制数据是8位~32位,在对纹理压缩质量要求不是很高,或者对系统资源较敏感的情况下,采用8位调制数据的模式,能达到2.5bpp的纹理压缩比率;在对纹理压缩质量要求高的系统中,采用32位调制数据模式。能达到4bpp的纹理压缩比率。
对于2n×2n大小(其中n为大于1的自然数)的纹理压缩块,所述的基本颜色数据是n×32位;所述的调制数据为8n2位~32n2位;基本颜色数据和调制数据都可以根据不同的系统资源或质量要求,采用不同的位数。
本发明的优越功效在于:
1)同目前主流的纹理压缩算法相比,在同等压缩比率(4bpp)的情况下,本发明采用了一种更小、更精细“粒度”的纹理压缩数据块(2×2大小);每一个数据块能够有64位的压缩数据块(32位的基本颜色数据和32位的调制数据)。平均每一个纹素有高达256种不同的调制数据,而在其它纹理压缩算法中,每一个纹素平均有4种不同的调制数据,因此,在同等压缩比率下,本发明能够对纹理基本颜色做更精确的调制,能够取得更好的压缩质量;
2)如果每一个纹素配置2位的调制数据(4种不同的调制模式),本发明中每一个数据块能够有40位的压缩数据块(32位的基本颜色数据和8位的调制数据),本发明能够取得2.5bpp(12.8倍)的压缩率,同目前主流的纹理压缩方法所能够达到的4bpp压缩率相比较,有很大的提升;
3)本发明将调制数据直接保存在压缩数据块中,不需要频繁地访问内存中的颜色查询表、调色板等以读取调制数据,与其它的压缩算法相比,本发明能够极大地节省系统内存资源,降低系统电量等资源的消耗。
附图说明
图1为本发明的压缩方法的流程图;
图2为本发明的合成方法的流程图;
图3为本发明压缩块格式示意图;
图4为压缩块中的基本颜色数据格式的示意图;
图5(图5A和图5B)为压缩块中的调制数据格式的示意图。
具体实施方式
请参阅附图所示,对本发明作进一步的描述。
本发明描述了一种使用更小粒度的纹理压缩单元和MIPMAP贴图技术的纹理压缩方法,使用2×2纹素块的作为基本压缩块,在每个纹素有8位调制数据的情况下,可以达到4bpp的纹理压缩率,在每个纹素2位调制数据的情况下,能够达到2.5bpp的纹理压缩率。
如图3所示,基本压缩块包括基本颜色数据和调制数据。
如图4所示,基本颜色数据是32位。所述的基本颜色数据中RGB每个颜色各占8位数据,透明数据占8位数据。
如图5A和图5B所示,所述的调制数据是8位~32位,在对纹理压缩质量要求不是很高,或者对系统资源较敏感的情况下,采用8位调制数据的模式,能达到2.5bpp的纹理压缩比率;在对纹理压缩质量要求高的系统中,采用32位调制数据模式。能达到4bpp的纹理压缩比率。
本发明提供了一种细粒度高压缩率的纹理压缩和合成方法,其中:
步骤1:该纹理压缩方法的步骤如图1所示:
第一步骤:调用OpenGL或Direct3D的API函数,生成下一级的MIPMAP贴图;
第二步骤:将生成的MIPMAP贴图按照2×2大小的原则分成若干基本压缩单元;
第三步骤:从生成的2×2大小的基本压缩单元中读出32位基本颜色数据。
有多种方法用来构造基本颜色值,比如对四个像素的颜色值求平均,或只取某一个特定像素(如左上角)的颜色值,对于所有的像素块都用这个方法,本发明对具体的实现方法不限定。
第四步骤:对2×2大小的基本压缩单元构造调制数据。
构造调制数据的算法与第三步中读取基本颜色值的算法要配合一致。若在第三步中采用读取最左上角像素的颜色值作为基本颜色数据,那么调制数据也应该能够达到最好的效果。
第五步骤:重复上面的第三步骤和第四步骤,将所有生成的纹理数据块进行合并,便生成了压缩后的纹理压缩数据。
步骤2:该纹理合成方法的步骤如图2所示:
第一步骤:取出待解压缩的纹理压缩块;
第二步骤:读出纹理压缩块中的基本颜色数据。
具体方法与压缩过程中的基本颜色值的构造方法相对应,只取出一个纹理压缩块的基本颜色数据,或取出连续四个或多个纹理压缩块中的基本颜色数据;
第三步骤:对取出的一个或多个基本颜色数据做线性插值。
若是一个颜色块,直接做线性插值;
或是多个基本颜色块,对每一个基本颜色块做线性插值,然后取平均。
第四步骤:将线性插值后的数据与调制数据进行调制操作。
调制操作就是对插值后的数据乘以调制数据中的系数,以对插值后的数据做进一步调整,调制后的数据便是解压缩后的纹理数据块。
第五步骤:重复前面四个步骤,然后将所有解压缩后的纹理数据块进行合并,形成低解析度的MIPMAP贴图。
第六步骤:将第五步骤中生成的低解析度的MIPMAP贴图做双线性插值,生成了解压缩后的目标纹理贴图。
本发明从压缩数据块中读取调制数据,不需要频繁地访问内存中的颜色查询表、调色板等以读取调制数据,极大地节省系统内存资源,降低系统电量等资源的消耗;并利用相邻的压缩块通过线性插值的方法来重构目标图像的基本颜色,能够很好地解决“锐利的纹理边界”问题和“图像接缝”问题。
本发明压缩块的数据格式定义是新颖的。压缩块包括32位基本颜色数据和8位~32位调制数据。在对纹理压缩质量要求不是很高,或者对系统资源较敏感的情况下,采用8位调制数据的模式,能达到2.5bpp的纹理压缩比率;在对纹理压缩质量要求高的系统中,采用32位调制数据模式能达到4bpp的纹理压缩比率。
Claims (4)
1.一种细粒度高压缩率的纹理压缩和合成方法,其特征在于:
步骤1:该纹理压缩方法的步骤:
1-1、对于尺寸大小为W×H的目标压缩纹理,利用MIPMAP贴图技术,生成尺寸大小为W/2×H/2的低解析度的MIPMAP贴图;
1-2、将生成的低解析度的MIPMAP贴图按照2n×2n大小的原则分成若干个均等的基本压缩单元,最后生成的基本压缩单元的数量为(W/2×H/2)/4n2;其中n为自然数;
1-3、对每一个2n×2n大小的基本压缩单元,生成基本颜色数据和调制数据,构造纹理压缩块;
1-4、将所有的纹理压缩块组成了纹理压缩数据;
步骤2:该纹理合成方法的步骤:
2-1、取出待解压缩的纹理压缩数据;
2-2、对于每一个压缩块中的基本颜色,同时取出邻近的其它基本颜色数据;然后对这些基本颜色数据进行线性插值,生成临时的“中间基本颜色”数据;
2-3、取出压缩块中的调制数据,对“中间基本颜色”数据进行调制,构造2n×2n大小的基本单元;
2-4、重复上面的第2-1步骤~2-3步骤,生成所有的基本单元;
2-5、将生成的所有的基本单元进行合并,构造出低解析度的MIPMAP贴图;
2-6、对生成的MIPMAP贴图进行双线性插值,构造出高解析度的目标纹理贴图。
2.按权利要求1所述的细粒度高压缩率的纹理压缩和合成方法,其特征在于:
所述的纹理压缩块包括基本颜色数据和调制数据。
3.按权利要求2所述的细粒度高压缩率的纹理压缩和合成方法,其特征在于:
所述的基本颜色数据是n×32位,其中n为自然数。
4.按权利要求2所述的细粒度高压缩率的纹理压缩和合成方法,其特征在于:
所述的调制数据是8n2~32n2位,其中n为自然数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010117646 CN101795410A (zh) | 2010-03-04 | 2010-03-04 | 一种细粒度高压缩率的纹理压缩和合成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010117646 CN101795410A (zh) | 2010-03-04 | 2010-03-04 | 一种细粒度高压缩率的纹理压缩和合成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101795410A true CN101795410A (zh) | 2010-08-04 |
Family
ID=42587798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010117646 Pending CN101795410A (zh) | 2010-03-04 | 2010-03-04 | 一种细粒度高压缩率的纹理压缩和合成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101795410A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105761296A (zh) * | 2016-01-15 | 2016-07-13 | 网易(杭州)网络有限公司 | 一种压缩纹理的拼装系统及方法、终端 |
CN107657648A (zh) * | 2017-09-30 | 2018-02-02 | 广州悦世界信息科技有限公司 | 一种移动游戏中实时高效的染色方法和系统 |
CN108154543A (zh) * | 2018-01-15 | 2018-06-12 | 网易(杭州)网络有限公司 | 确定游戏贴图尺寸的方法、装置及存储介质 |
CN111612697A (zh) * | 2020-05-22 | 2020-09-01 | 天津维创微智能科技有限公司 | 一种插值方法、装置、设备及存储介质 |
CN112489147A (zh) * | 2020-12-10 | 2021-03-12 | 苏州速显微电子科技有限公司 | 一种基于图像分布的纹理压缩系统 |
-
2010
- 2010-03-04 CN CN 201010117646 patent/CN101795410A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105761296A (zh) * | 2016-01-15 | 2016-07-13 | 网易(杭州)网络有限公司 | 一种压缩纹理的拼装系统及方法、终端 |
CN105761296B (zh) * | 2016-01-15 | 2018-09-18 | 网易(杭州)网络有限公司 | 一种压缩纹理的拼装系统及方法、终端 |
CN107657648A (zh) * | 2017-09-30 | 2018-02-02 | 广州悦世界信息科技有限公司 | 一种移动游戏中实时高效的染色方法和系统 |
CN108154543A (zh) * | 2018-01-15 | 2018-06-12 | 网易(杭州)网络有限公司 | 确定游戏贴图尺寸的方法、装置及存储介质 |
CN108154543B (zh) * | 2018-01-15 | 2021-12-14 | 网易(杭州)网络有限公司 | 确定游戏贴图尺寸的方法、装置及存储介质 |
CN111612697A (zh) * | 2020-05-22 | 2020-09-01 | 天津维创微智能科技有限公司 | 一种插值方法、装置、设备及存储介质 |
CN111612697B (zh) * | 2020-05-22 | 2023-07-04 | 天津维创微智能科技有限公司 | 一种插值方法、装置、设备及存储介质 |
CN112489147A (zh) * | 2020-12-10 | 2021-03-12 | 苏州速显微电子科技有限公司 | 一种基于图像分布的纹理压缩系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6678209B2 (ja) | 非正規直交グリッドへのテクスチャマッピングのためのグラデーションの調整 | |
CN102306391B (zh) | 基于OpenGL的倒影显示处理装置及方法 | |
JP5482394B2 (ja) | 画像処理方法および画像処理装置 | |
KR20160051154A (ko) | 렌더링 방법, 렌더링 장치 및 전자 장치 | |
JP2011087278A (ja) | 画像処理方法および画像処理装置 | |
CN104012097A (zh) | 用于压缩和解压缩数据的方法与装置 | |
CN101795410A (zh) | 一种细粒度高压缩率的纹理压缩和合成方法 | |
US11238639B2 (en) | Gradient adjustment for texture mapping to non-orthonormal grid | |
CN109636894B (zh) | 一种基于像素点栅格化的动态三维热力计算方法及系统 | |
CN104899889B (zh) | 一种基于四面体网格的视频矢量化方法 | |
US8355580B2 (en) | Method and system for generating boundary in the process of rasterizing vector graphic as well as method for producing the system | |
CN101103379A (zh) | 用于像素采样的方法和装置 | |
CN101833773A (zh) | 逐级降低解析度的纹理压缩和合成方法 | |
CN105741335A (zh) | 一种基于分块组织的多层次兵棋地图快速绘制方法 | |
CN103810671B (zh) | Rgb模式图像的色彩拉伸方法和系统 | |
US7372461B2 (en) | Image processing apparatus and method of same | |
CN103366384B (zh) | 重要度驱动的面向全局冗余图像压缩方法 | |
CN102074004A (zh) | 空间实体遮挡类型的判定方法及装置 | |
CN115035231A (zh) | 阴影烘焙方法、装置、电子设备和存储介质 | |
CN103198495B (zh) | 重要度驱动的纹理压缩方法 | |
Wang et al. | Rasterization system for mobile device | |
Hongdi et al. | Design and Implementation of A High-Performance Rendering Algorithm for Large Terrain Systems based on GPU Parallel Computing | |
CN115965518A (zh) | 基于神经辐射场实现高质量新视图合成的fpga加速器 | |
Tang et al. | The large-scale terrain generation based on GPU texture synthesis | |
JP2010288268A (ja) | 画像処理方法および画像処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20100804 |