一种改进的图形硬件纹理压缩方案
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[3 ] 法可能是使用最普遍的方法, 其用于 DirectX 并在 OpenGL 中有扩展, 均可看作是 CCC 的进一步延伸。
色, 对 每 块 以 4 + 4 + 4 = 12 位 存 储 ( 或 简 称 为 RGB444 ) , 再加上剩下的 20 位共同调节块中每个纹 理的亮度, 这种算法用随机数创建了一个码本, 令一 组图像错误最小化, 作为常量的修饰符从码本中选 出, 被添加到基本色的每个颜色成分中 , 对于 2* 4 像 剩下的 4 位作为整个 16 码本表的索引使用。 素, iPACKMAN 的基本思路是使用较大的块, 4* 4 像素, 而不是 PACKMAN 中的 2* 4 像素。 这本无特 别之处, 但是与 PACKMAN 相比, 它更有可能获得更 因为在更大的区域里就 好的图像质量 ( 或压缩率 ) , 。 可以发掘出冗余空间 这从参考文献中可以看到详 细介绍。在规范 2. 0 中 iPACKMAN 已经成为纹理压 缩的标准。 Fenney 采取一种完全不同的方法。2 个源纹理 中的低分辨率图像被储存, 并在解压过程中, 创建了 一个纹理的双线性放大。为了生成纹理的最终颜色, 实现了两者之间的线性混合, 描述的两种模式分别是
一, 相同数量的内存中可以存放更多的纹理贴图或在 纹理贴图的解压要 相同数量的纹理内存中存放更大的纹理贴图 。第二, 处理过程而离线处理的 ) ; 最后, 确保带宽安全 ( 从内存中提取和转移的数据减少 ) 。 处理得非常快( 实时处理) 。 纹理压缩主要有三种不同的方法, 分别是: 矢量 纹理压缩的核心思想是对图像进行简单压缩并存储 码垛和块组成。 纹理的压缩版本。 在渲染的过程中, 当访问纹理时, 量化、 压缩纹理在总线上传输并伴随即时解压缩 , 从而节省 1. 1 矢量量化 矢量量化使用查表原则。 查表包含许多小图像 了带宽。 由这些小图像组成的原始图像就像 本文主要研究了一种基于 mipmap 技术的纹理 ( 如 2* 2 像素) ,
3
实验结果
图 2 显示了两种纹理压缩质量。 从图中可以看 出, 我们的方法可以实现良好的压缩质量 。
图2
S3TC 方案与本方案的压缩质量对比
此外, 我们将给出本方案和 S3TC 方案的 PSNR 值( 峰值信噪比) 。此处我们给出的 5 种不同的纹理 图像结果都经过了柯达影像测试。 从表 1 中可以看 出, 我们的方案可以获得更好的 PSNR 值。
表, 一旦使用大量颜色, 并行纹理图像质量会受到影 响, 对整体图像来说, 一个平行图像最多使用 256 色, PACKMAN 纹理压缩方案, 纹理图像分割成 2* 4 块, 对于每个新的纹理需下载一个新的调色板 ( 调色板 每块由 32 位体现。 一个单一的颜色, 称为一个基本 相当于码本) 。 Beers et al. 使 用 一 种 称 为 矢 量 量 化 的 传 统 方 [1 ] 法 ,可以压缩纹理到 1 bpp 或 2 bpp。 但是, 矢量 量化和平行纹理都需要一个额外的内存以确定使用 哪种颜色, 这在高性能的计算机原理图中却不可行 。 1. 3 块分解 块分解方法用各种颜色将图像细分成小块 。 我 们可能有 2 种基本色, 并用最接近的颜色索引对每块 纹理编码。该方法对真彩色纹理的每个纹理压缩允 [2 ] 许占 3 位。Iourcha et al. 提出的 S3TC 纹理压缩方
此外, 我们必须注意到以上的算法是为硬件设 解码器需要相对较少的逻辑, 以非常快的速度运行, 计。所以, 我们设计的算法应该便于硬件实现 。为了 并复制到性能非常高的解决方案中进行平行解码 。 并获得对纹理压缩满意的结果, 我们 解决以上问题, S3TC 的 缺 点 之 一 是 每 块 只 能 用 4 个 颜 色。 提出了一种基于 MIPMap 技术的混合压缩纹理方案。 Ivanov 和 Kuzmin 通过使用邻近块的颜色解决这个问 MIPMap 技术是一种提高渲染纹理质量的低成
Key words: texture compression; mobile graphics; low - cost 纹理贴图是应用到 3D 对象的位图图像。 其用 于增加图像表面细节, 使图像更为逼真且不增加 3D 场景的几何复杂性。为了模拟真实的生活场景, 需要 。 获得大量详细的纹理 但这也意味着对系统内存或 图形内存 ( 取决于纹理存储位置 ) 的大量需求, 这迫 使应用程序开发人员使用越来越少的细节纹理以匹 配有限的内存和带宽。 为了在不降低图像质量的情况下获得更多的纹 理, 我们可以使用纹理压缩方法以减少对带宽的要 求。因此, 使用纹理贴图压缩有以下两个原因 。 第 压缩方法。
来代替下一级别的映射水平。 然而, 对于噪声区域, 比 IPACKMAN 要高。 此外, 由于对噪声区运用了算 我们需要运用纹理压缩方法来予以更好地处理 。 目 法, 压缩图像的质量也很高。 前 iPACKMAN 算法是最佳的纹理压缩算法。 我们可 以采用这种算法处理噪声纹理区域 。 本文提出的算法是一种混合型压缩方案。 对于 平滑区域, 我们只能通过双线性插值使用 2 字节代表 4* 4 像素块, 所以压缩比大概是 24x ( 16 * 3 = 48 字
1
相关工作
为了便于硬件实现, 纹理压缩 / 解压系统必须具 。 有以下特点 首先成本要低, 特别是手机的成本要 低; 第二, 为了处理简单, 随机存取, 需要一个固定的 压缩率( 通过每像素的位数衡量 ) ; 第三, 避免使用需 依赖当前纹理的查找表 ( LUTs) 是首选。因为这样既 不需要更新 LUT, 又可以避免间接寻址以及由此导致 的延迟; 第四, 压缩纹理的执行时间应相当短 ( 但是 这一点并不是非常重要, 因为压缩过程通常是作为预
[5 ] 种变体, 它 将 3 * 2 块 压 缩 成 32 位 。 这 种 称 为 POOMA 的方案也可以针对手机。其主要区别在于每
且只使用 1 个中间色。当然 个基本色使用较少的位, 也要注意到块的宽度是 3 , 这意味着硬件实现时会出 现尴尬。 Akenine - Mller 提 出 了 为了 解 决 这 个 问 题, PACKMAN 和 IPACKMAN 算 法 加 以 改 进。 对 于
第 22 卷 2012 年
第1 期 3月
信阳农业高等专科学校学报 Journal of Xinyang Agricultural College
Vol. 22 No. 1 Mar. 2012
一种改进的图形硬件纹理压缩方案
严正香, 刘 洋
( 信阳职业技术学院 数学与计算机科学学院 , 河南 信阳 464000 )
Abstract : An MIP Map - based texture compression method is proposed that is hybrid compression scheme. For smooth
area,we can only use 2Bytes to represent the 4* 4 pixels block by bilinear interpolation. Otherwise,we will use iPACKMAN algorithm to deal with the noise areas. Actually,this method is feasible to be implemented by hardware since it is very simple. Experimental results show that our method can achieve high compress ratio and high image quality.
摘
要:本文提出了基于 MIP Map 技术的混合纹理压缩方案。在本方案中, 平滑区域只能使用 2 个字节代表双
线性插值的 4* 4 像素块, 而对噪声区域则使用 iPACKMAN 算法处理。 这种由硬件实现的方法因简单而可行 。 实验结果表明, 本方案可以实现高压缩比和高质量图像 。
关键词:纹理压缩; 移动图形; 低成本 中图分类号:TP274 文献标识码:A
表1 S3TC 方案与本方案的 PSNR 值对比 柯达 图像 2 35. 34 36. 00 柯达 图像 3 38. 56 38. 66 柯达 图像 4 38. 89 39. 15 柯达 图像 5 31. 75 32. 22 柯达 图像 1 S3TC 方案 33. 57 34. 12 本方案
题
[4 ]。但是, 这种方法来自增加解码块的内存带宽, 该本化方式。每个在多级纹理中预过滤后的图像都比 · 123·
第 22 卷
第1 期
信阳农业高等专科学校学报
2012 年 3 月
之前小两个级别。正如我们知道, 纹理或图像有两种 : 。 区域 平滑区域和噪声区域 对于纹理平滑区域, 两
48 /2 = 24 ) 。 更重要的是, ipackman 的压缩比可 节, 6x , 以达到 对于照片纹理和图像, 平滑区域大概占到 。 30% ~ 60% 。 , 因此 我们可以对整个纹理得到压缩比 个毗邻的多级纹理映射水平的区别非常小 这就允 许使用低分辨率的多级纹理映射水平的双线性差值 8 ~ 12x。从结果中明显可以看出, 我们得出的压缩比
块分解将每个纹理贴图分成 4* 4 纹理块。对于 不透明的纹理贴图, 每个纹理由一个位图的 2 位所体 现, 总共 32 位; 除了位图, 每块也有 2 个代表性的 16 位颜色以 RGB565 格式与之相关。 这 2 种明确编码
色加上另 2 种通过一致插入明确编码色产生的颜色 形成了 4 色查找表。 这张查找表用于确定块中任意 4 bpp 和 2 bpp。在 4 bpp 版本中, 连同调制数据, 每4 纹理的实际颜色。共用 64 位编码了 16 个纹理, 平均 * 4 块中存储 2 个基本色。为了实现双线性放大, 需 4 。 每个纹理用 位 一旦这些块在纹理缓存中, 解压必 要相邻的 2* 2 块, 须快。
4916 ( 2012 ) 01012203 文章编号:1008-
An improved texture compression method for graphics hardware
YAN Zheng - xiang,LIU Yang
( Dept. of Mathematics and Computer Science,Xinyang Vocational and Technical College,Xinyang 464000 ,China)
收稿日期:2011 - 12 - 08 112102210233 ] ; 河南省政府决策研究招标课题[ 2011B689] 基金项目:河南省科技攻关计划项目 [ 作者简介:严正香( 1970 - ) ,女, 河南信阳人, 副教授, 主要研究方向为偏微分方程及其应用 .
· 122·
严正香, 等: 一种改进的图形硬件纹理压缩方案 一个谜。各图像的集合称为码本, 每个图像产生一个 , 64 特殊的优化码本 码本包含 个部分 ( 6 位 ) 或 256 个部分( 8 位) ; 小图像的大小可以是 2* 2 或 3* 3 像 16 或 24 位彩色图像可以在红色、 素, 绿色和蓝色值 后包含一个 α 值。 1. 2 码垛 码垛通常受所有图形硬件支持, 是一种知名的矢 量量化形式。其使用单纹理( 1* 1 块) 创建颜色查找 方案并不理想。 Akenine - Mller 和 Strm 提出了 S3TC 方案的一
2
混合纹理压缩
纹理压缩的关键问题是如何即时解压压缩纹理 , 因为在 3D 流水线中纹理单元是实时获取的。 更重
图1 S3TC 算法
要的是, 解压技术与解压过程密切相关。如何开发一 个良好的压缩程序与解压程序相匹配对于纹理压缩 很重要。当然, 压缩率对纹理压缩也很重要。
S3TC 格式的解码块压缩是直截了 当 的。 如 图 1, 16 个纹理中每个纹理对应一个 2 位索引。 然后 4 色查找表用于确定每个纹理使用哪个 16 位颜色值。
色, 对 每 块 以 4 + 4 + 4 = 12 位 存 储 ( 或 简 称 为 RGB444 ) , 再加上剩下的 20 位共同调节块中每个纹 理的亮度, 这种算法用随机数创建了一个码本, 令一 组图像错误最小化, 作为常量的修饰符从码本中选 出, 被添加到基本色的每个颜色成分中 , 对于 2* 4 像 剩下的 4 位作为整个 16 码本表的索引使用。 素, iPACKMAN 的基本思路是使用较大的块, 4* 4 像素, 而不是 PACKMAN 中的 2* 4 像素。 这本无特 别之处, 但是与 PACKMAN 相比, 它更有可能获得更 因为在更大的区域里就 好的图像质量 ( 或压缩率 ) , 。 可以发掘出冗余空间 这从参考文献中可以看到详 细介绍。在规范 2. 0 中 iPACKMAN 已经成为纹理压 缩的标准。 Fenney 采取一种完全不同的方法。2 个源纹理 中的低分辨率图像被储存, 并在解压过程中, 创建了 一个纹理的双线性放大。为了生成纹理的最终颜色, 实现了两者之间的线性混合, 描述的两种模式分别是
一, 相同数量的内存中可以存放更多的纹理贴图或在 纹理贴图的解压要 相同数量的纹理内存中存放更大的纹理贴图 。第二, 处理过程而离线处理的 ) ; 最后, 确保带宽安全 ( 从内存中提取和转移的数据减少 ) 。 处理得非常快( 实时处理) 。 纹理压缩主要有三种不同的方法, 分别是: 矢量 纹理压缩的核心思想是对图像进行简单压缩并存储 码垛和块组成。 纹理的压缩版本。 在渲染的过程中, 当访问纹理时, 量化、 压缩纹理在总线上传输并伴随即时解压缩 , 从而节省 1. 1 矢量量化 矢量量化使用查表原则。 查表包含许多小图像 了带宽。 由这些小图像组成的原始图像就像 本文主要研究了一种基于 mipmap 技术的纹理 ( 如 2* 2 像素) ,
3
实验结果
图 2 显示了两种纹理压缩质量。 从图中可以看 出, 我们的方法可以实现良好的压缩质量 。
图2
S3TC 方案与本方案的压缩质量对比
此外, 我们将给出本方案和 S3TC 方案的 PSNR 值( 峰值信噪比) 。此处我们给出的 5 种不同的纹理 图像结果都经过了柯达影像测试。 从表 1 中可以看 出, 我们的方案可以获得更好的 PSNR 值。
表, 一旦使用大量颜色, 并行纹理图像质量会受到影 响, 对整体图像来说, 一个平行图像最多使用 256 色, PACKMAN 纹理压缩方案, 纹理图像分割成 2* 4 块, 对于每个新的纹理需下载一个新的调色板 ( 调色板 每块由 32 位体现。 一个单一的颜色, 称为一个基本 相当于码本) 。 Beers et al. 使 用 一 种 称 为 矢 量 量 化 的 传 统 方 [1 ] 法 ,可以压缩纹理到 1 bpp 或 2 bpp。 但是, 矢量 量化和平行纹理都需要一个额外的内存以确定使用 哪种颜色, 这在高性能的计算机原理图中却不可行 。 1. 3 块分解 块分解方法用各种颜色将图像细分成小块 。 我 们可能有 2 种基本色, 并用最接近的颜色索引对每块 纹理编码。该方法对真彩色纹理的每个纹理压缩允 [2 ] 许占 3 位。Iourcha et al. 提出的 S3TC 纹理压缩方
此外, 我们必须注意到以上的算法是为硬件设 解码器需要相对较少的逻辑, 以非常快的速度运行, 计。所以, 我们设计的算法应该便于硬件实现 。为了 并复制到性能非常高的解决方案中进行平行解码 。 并获得对纹理压缩满意的结果, 我们 解决以上问题, S3TC 的 缺 点 之 一 是 每 块 只 能 用 4 个 颜 色。 提出了一种基于 MIPMap 技术的混合压缩纹理方案。 Ivanov 和 Kuzmin 通过使用邻近块的颜色解决这个问 MIPMap 技术是一种提高渲染纹理质量的低成
Key words: texture compression; mobile graphics; low - cost 纹理贴图是应用到 3D 对象的位图图像。 其用 于增加图像表面细节, 使图像更为逼真且不增加 3D 场景的几何复杂性。为了模拟真实的生活场景, 需要 。 获得大量详细的纹理 但这也意味着对系统内存或 图形内存 ( 取决于纹理存储位置 ) 的大量需求, 这迫 使应用程序开发人员使用越来越少的细节纹理以匹 配有限的内存和带宽。 为了在不降低图像质量的情况下获得更多的纹 理, 我们可以使用纹理压缩方法以减少对带宽的要 求。因此, 使用纹理贴图压缩有以下两个原因 。 第 压缩方法。
来代替下一级别的映射水平。 然而, 对于噪声区域, 比 IPACKMAN 要高。 此外, 由于对噪声区运用了算 我们需要运用纹理压缩方法来予以更好地处理 。 目 法, 压缩图像的质量也很高。 前 iPACKMAN 算法是最佳的纹理压缩算法。 我们可 以采用这种算法处理噪声纹理区域 。 本文提出的算法是一种混合型压缩方案。 对于 平滑区域, 我们只能通过双线性插值使用 2 字节代表 4* 4 像素块, 所以压缩比大概是 24x ( 16 * 3 = 48 字
1
相关工作
为了便于硬件实现, 纹理压缩 / 解压系统必须具 。 有以下特点 首先成本要低, 特别是手机的成本要 低; 第二, 为了处理简单, 随机存取, 需要一个固定的 压缩率( 通过每像素的位数衡量 ) ; 第三, 避免使用需 依赖当前纹理的查找表 ( LUTs) 是首选。因为这样既 不需要更新 LUT, 又可以避免间接寻址以及由此导致 的延迟; 第四, 压缩纹理的执行时间应相当短 ( 但是 这一点并不是非常重要, 因为压缩过程通常是作为预
[5 ] 种变体, 它 将 3 * 2 块 压 缩 成 32 位 。 这 种 称 为 POOMA 的方案也可以针对手机。其主要区别在于每
且只使用 1 个中间色。当然 个基本色使用较少的位, 也要注意到块的宽度是 3 , 这意味着硬件实现时会出 现尴尬。 Akenine - Mller 提 出 了 为了 解 决 这 个 问 题, PACKMAN 和 IPACKMAN 算 法 加 以 改 进。 对 于
第 22 卷 2012 年
第1 期 3月
信阳农业高等专科学校学报 Journal of Xinyang Agricultural College
Vol. 22 No. 1 Mar. 2012
一种改进的图形硬件纹理压缩方案
严正香, 刘 洋
( 信阳职业技术学院 数学与计算机科学学院 , 河南 信阳 464000 )
Abstract : An MIP Map - based texture compression method is proposed that is hybrid compression scheme. For smooth
area,we can only use 2Bytes to represent the 4* 4 pixels block by bilinear interpolation. Otherwise,we will use iPACKMAN algorithm to deal with the noise areas. Actually,this method is feasible to be implemented by hardware since it is very simple. Experimental results show that our method can achieve high compress ratio and high image quality.
摘
要:本文提出了基于 MIP Map 技术的混合纹理压缩方案。在本方案中, 平滑区域只能使用 2 个字节代表双
线性插值的 4* 4 像素块, 而对噪声区域则使用 iPACKMAN 算法处理。 这种由硬件实现的方法因简单而可行 。 实验结果表明, 本方案可以实现高压缩比和高质量图像 。
关键词:纹理压缩; 移动图形; 低成本 中图分类号:TP274 文献标识码:A
表1 S3TC 方案与本方案的 PSNR 值对比 柯达 图像 2 35. 34 36. 00 柯达 图像 3 38. 56 38. 66 柯达 图像 4 38. 89 39. 15 柯达 图像 5 31. 75 32. 22 柯达 图像 1 S3TC 方案 33. 57 34. 12 本方案
题
[4 ]。但是, 这种方法来自增加解码块的内存带宽, 该本化方式。每个在多级纹理中预过滤后的图像都比 · 123·
第 22 卷
第1 期
信阳农业高等专科学校学报
2012 年 3 月
之前小两个级别。正如我们知道, 纹理或图像有两种 : 。 区域 平滑区域和噪声区域 对于纹理平滑区域, 两
48 /2 = 24 ) 。 更重要的是, ipackman 的压缩比可 节, 6x , 以达到 对于照片纹理和图像, 平滑区域大概占到 。 30% ~ 60% 。 , 因此 我们可以对整个纹理得到压缩比 个毗邻的多级纹理映射水平的区别非常小 这就允 许使用低分辨率的多级纹理映射水平的双线性差值 8 ~ 12x。从结果中明显可以看出, 我们得出的压缩比
块分解将每个纹理贴图分成 4* 4 纹理块。对于 不透明的纹理贴图, 每个纹理由一个位图的 2 位所体 现, 总共 32 位; 除了位图, 每块也有 2 个代表性的 16 位颜色以 RGB565 格式与之相关。 这 2 种明确编码
色加上另 2 种通过一致插入明确编码色产生的颜色 形成了 4 色查找表。 这张查找表用于确定块中任意 4 bpp 和 2 bpp。在 4 bpp 版本中, 连同调制数据, 每4 纹理的实际颜色。共用 64 位编码了 16 个纹理, 平均 * 4 块中存储 2 个基本色。为了实现双线性放大, 需 4 。 每个纹理用 位 一旦这些块在纹理缓存中, 解压必 要相邻的 2* 2 块, 须快。
4916 ( 2012 ) 01012203 文章编号:1008-
An improved texture compression method for graphics hardware
YAN Zheng - xiang,LIU Yang
( Dept. of Mathematics and Computer Science,Xinyang Vocational and Technical College,Xinyang 464000 ,China)
收稿日期:2011 - 12 - 08 112102210233 ] ; 河南省政府决策研究招标课题[ 2011B689] 基金项目:河南省科技攻关计划项目 [ 作者简介:严正香( 1970 - ) ,女, 河南信阳人, 副教授, 主要研究方向为偏微分方程及其应用 .
· 122·
严正香, 等: 一种改进的图形硬件纹理压缩方案 一个谜。各图像的集合称为码本, 每个图像产生一个 , 64 特殊的优化码本 码本包含 个部分 ( 6 位 ) 或 256 个部分( 8 位) ; 小图像的大小可以是 2* 2 或 3* 3 像 16 或 24 位彩色图像可以在红色、 素, 绿色和蓝色值 后包含一个 α 值。 1. 2 码垛 码垛通常受所有图形硬件支持, 是一种知名的矢 量量化形式。其使用单纹理( 1* 1 块) 创建颜色查找 方案并不理想。 Akenine - Mller 和 Strm 提出了 S3TC 方案的一
2
混合纹理压缩
纹理压缩的关键问题是如何即时解压压缩纹理 , 因为在 3D 流水线中纹理单元是实时获取的。 更重
图1 S3TC 算法
要的是, 解压技术与解压过程密切相关。如何开发一 个良好的压缩程序与解压程序相匹配对于纹理压缩 很重要。当然, 压缩率对纹理压缩也很重要。
S3TC 格式的解码块压缩是直截了 当 的。 如 图 1, 16 个纹理中每个纹理对应一个 2 位索引。 然后 4 色查找表用于确定每个纹理使用哪个 16 位颜色值。