逐级降低解析度的纹理压缩和合成方法

文档序号:7742910阅读:306来源:国知局
专利名称:逐级降低解析度的纹理压缩和合成方法
技术领域
本发明涉及一种计算机图形学中的纹理压缩和合成方法,特别涉及一种逐级降低 解析度的纹理压缩和合成方法。
背景技术
计算机图形学(Computer Graphics,简称CG)是一种使用数学算法将二维或三维 图形转化为计算机显示器的栅格形式的科学。简单地说,计算机图形学的主要研究内容就 是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原
理与算法。纹理是在计算因计算机图形画面的光栅化所产生的片段的色彩或外观时使用的 一维、二级或多维数据项阵列。纹理可以是图像数据、颜色或透明度数据、粗糙度/光滑度 数据、反射率数据等。提供逼真的计算机图形一般要求很多高质量的细节纹理。提供这样 的纹理会加重计算机内存的负担,因此,纹理压缩可降低内存的要求。目前,公开的纹理压缩算法主要有基于矢量量化(vectorquantization,简称 VQ)、调色板查询(Palletizing)、数据块分解(Data Block Decomposition,简称 BD)、基于 DCT压缩、或利用更低解析度的低通滤波图像等方法。但它们都有一些不足1、基于矢量量化VQ和调色板查询方法在纹理重构的过程中,需要频繁地访问内 存以取得颜色索引,然后查询表、调色板等,对内存的要求较高;2、数据块分解BD方法受限于颜色表中颜色种类的限制,不能很好地处理“锐利纹 理边界”或“多种纹理颜色”问题,重构的质量较差;3、基于DCT压缩方法和低解析度的低通滤波图像方法都对纹理解压缩过程要求 过于复杂,难以实现或实现成本高昂。

发明内容
本发明所要解决的技术问题是要提供一种压缩率达4bpp,压缩质量好,还原图像 质量佳,压缩和合成过程简单的逐级降低解析度的纹理压缩和合成方法。为了解决以上的技术问题,本发明提供了一种逐级降低解析度的纹理压缩和合成 方法,其中步骤1 该纹理压缩方法的步骤如下1-1、将待压缩的图像分成若干个均等的数据块,这些数据块构成图像的基本压缩 单元;1-2、对每一个数据块生成低一级解析度的压缩块;1-3、从低解析度的压缩块中提取基本颜色数据并构造压缩块的基本颜色数据;1-4、对数据块中的每一个像素构造调制数据并构造压缩块的调制数据;步骤2 该纹理合成方法的步骤如下2-1、读取压缩块中的基本颜色数据以及与该压缩块相邻的压缩块的基本颜色数据,然后对这些基本颜色数据进行双线性插值,构造中间目标纹理图像数据;2-2、读取该压缩块的调制数据,对中间目标纹理图像数据进行调制,构造解压后 的目标数据块;2-3、将所有解压后的目标数据块进行合并,构造成目标纹理。所述的压缩块包括 基本颜色数据和调制数据。所述的基本颜色数据是32位,其中RGB每个颜色各占8位数据,透明数据占8位 数据。所述的调制数据是8位 32位。每个纹素利用调制数据对基本颜色进行调制,用 以重构压缩的图像。每个纹素平均占用2位的数据,则每个纹素享有4种不同的调制模式。 因此,基本颜色数据和调制数据都有充足的位数。本发明的优越功效在于1)本发明所提供的压缩方法可以达到4bpp的压缩率,并且能够取得质量好的压
缩质量;2)本发明从低解析度的像素块中读取压缩块的基本颜色,从数据块中读取调制数 据,并利用相邻的四个压缩块通过双线性插值的方法来重构目标图像的基本颜色,能够很 好地解决“锐利的纹理边界”问题和“图像接缝”问题;3)本发明将调制数据直接保存在压缩数据块中,不需要频繁地访问内存中的颜色 查询表、调色板等以读取调制数据,与其它的压缩算法相比,本发明能够极大地节省系统内 存资源,降低系统电量等资源的消耗;4)本发明的压缩和解压缩的过程都简单、清晰,能够很容易地通过软、硬件来实 现。


图1为本发明的压缩方法的流程图;图2为本发明的合成方法的流程图;图3为本发明压缩块格式示意图;图4为压缩块中的基本颜色数据格式的示意图;图5为压缩块中的调制数据格式的示意图。
具体实施例方式请参阅附图所示,对本发明作进一步的描述。本发明是一种利用逐级降低解析度MIPMAP和双线性高阶放大相结合的纹理压缩 的方法,是一种基于数据块的图像压缩方法,将待压缩的图像分成多个大小均等的基本压 缩单元(称为数据块),然后针对每一个数据块进行压缩处理,压缩处理之后的数据块称为 压缩块。压缩块包括两部分数据基本颜色数据和调制数据。基本颜色数据是数据块低一 级解析度MIPMAP的纹理颜色,调制数据是包含数据块里每一个纹素相应的调制数据。数据 块是一个4x4的像素块,每一个像素位深是32位,压缩之后的压缩块是64位的数据块。压 缩块包括基本颜色数据和调制数据。如图3和图4数据格式所示,基本颜色数据是32位,其中RGB每个颜色各占8位数据,透明数据占8位数据。如图3和图5数据格式所示,调制数据也是32位,每个纹素利用调制数据对基本 颜色进行调制,用以重构压缩的图像。每个纹素平均占用2位的数据,则每个纹素享有4种 不同的调制模式,因此,基本颜色数据和调制数据都有充足的位数。本发明提供了一种逐级降低解析度的纹理压缩和合成方法,其中步骤1 该纹理压缩方法的步骤如图1所示第一步骤将原始纹理数据读入内 存,然后按16个像素为一个像素块(4X4像素块)读出;第二步骤对每一个像素块(4X4像素块)依次做以下处理A 调用OpenGL或Direct3D图形库的API函数,生成下一级的2X2MIPMAP像素 块;B 从生成的下一级的2X2MIPMAP像素块中读出32位基本颜色数据。有多种方法构造基本颜色数据,如对四个像素的颜色数据求平均,或只取某一个 特定像素(如左上角)的颜色数据(对于所有的像素块都用这个方法)等,本发明对具体 的实现方法不限定。C 对4X4的像素块构造调制数据。构造调制数据的算法与B步骤中读取基本颜色数据的算法要配合一致。比如,如 果在B步骤中采用读取最左上角像素的颜色数据作为基本颜色值,那么调制数据也应该能 够使解压缩后的图像达到最好的效果。D 将B步骤得到的基本颜色数据和C步骤得到的调制数据合并成压缩块。步骤2 该纹理合成方法的步骤如图2所示第一步骤读出压缩块中的基本颜色数据。具体方法与压缩过程中的基本颜色数据的构造方法对应,只取出一个压缩块的基 本颜色数据,或取出连续四个或多个压缩块中的基本颜色数据;第二步骤对取出的一个或多个基本颜色数据做双线性插值。如果是一个颜色块,对每个像素RGB直接做双线性插值;如果是多个基本颜色块,对每一个基本颜色块做双线性插值,然后取平均;第三步骤将双线性插值后的数据与调制数据进行调制操作。调制操作就是对双线性插值后的数据乘以调制数据中的系数,以对双线性插值后 的数据做进一步调整,调制后的数据便是解压缩后的目标数据块。第四步骤重复前面三个步骤,然后将所有解压缩后的目标数据块进行合并,形成 了目标纹理。本发明从低解析度的像素块中读取压缩块的基本颜色,从数据块中读取调制数 据,不需要频繁地访问内存中的颜色查询表、调色板等以读取调制数据,极大地节省系统内 存资源,降低系统电量等资源的消耗;并利用相邻的压缩块通过双线性插值的方法来重构 目标纹理的基本颜色,能够很好地解决“锐利的纹理边界”问题和“图像接缝”问题。本发明压缩块的数据格式定义是新颖的。压缩块包括32位基本颜色数据和32位调制数据,因此基本颜色数据和调制数据都有充足的位数。
权利要求
一种逐级降低解析度的纹理压缩和合成方法,其特征在于步骤1该纹理压缩方法的步骤如下1-1、将待压缩的图像分成若干个均等的数据块,这些数据块构成图像的基本压缩单元;1-2、对每一个数据块生成低一级解析度的压缩块;1-3、从低解析度的压缩块中提取基本颜色数据并构造压缩块的基本颜色数据;1-4、对数据块中的每一个像素构造调制数据并构造压缩块的调制数据;步骤2该纹理合成方法的步骤如下2-1、读取压缩块中的基本颜色数据以及与该压缩块相邻的压缩块的基本颜色数据,然后对这些基本颜色数据进行双线性插值,构造中间目标纹理图像数据;2-2、读取该压缩块的调制数据,对中间目标纹理图像数据进行调制,构造解压后的目标数据块;2-3、将所有解压后的目标数据块进行合并,构造成目标纹理。
2.按权利要求1所述的逐级降低解析度的纹理压缩和合成方法,其特征在于 所述的压缩块包括基本颜色数据和调制数据。
3.按权利要求2所述的逐级降低解析度的纹理压缩和合成方法,其特征在于所述的调制数据是每个纹素单独占用几位数据,或是两个或多个纹素共享几位数据。
全文摘要
本发明提供一种逐级降低解析度的纹理压缩和合成方法,其中压缩方法的步骤先将待压缩的纹理分成若干个均等的数据块;对每一个数据块生成低一级解析度的压缩块;从低解析度的压缩块中提取基本颜色数据并构造压缩块的基本颜色数据;对数据块中的每一个像素构造调制数据并构造压缩块的调制数据;该纹理合成方法的步骤读取压缩块以及与该压缩块相邻的压缩块,将这些压缩块进行双线性插值,构造中间目标纹理图像数据;读取该压缩块的调制数据,对中间目标纹理数据进行调制,构造解压后的目标数据块;将所有解压后的目标数据块进行合并,构造成目标纹理。本发明的优点是4bpp的压缩率,能取得质量好的压缩质量。
文档编号H04N7/26GK101833773SQ20101011763
公开日2010年9月15日 申请日期2010年3月4日 优先权日2010年3月4日
发明者朱德栋 申请人:上海亚图软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1