纹理砖压缩及解压缩方法以及使用该方法的装置制造方法及图纸

技术编号:15522616 阅读:50 留言:0更新日期:2017-06-04 11:35
本发明专利技术的实施例提出一种纹理砖压缩方法,至少包含以下步骤。无损压缩纹理砖的原始数据后,判断原始数据的无损压缩结果的长度是否大于目标长度。如果是,执行多层次数据缩减控制,用以缩减原始数据以产生缩减数据,并且产生缩减数据的无损压缩结果,使得缩减数据的无损压缩结果的长度小于或等于目标长度。

Compression and decompression method of texture brick and device using the same

The embodiment of the invention provides a method for compressing a texture brick, comprising at least the following steps. After lossless compression of the original data of the texture brick, it is determined whether the length of the lossless compression of the original data is greater than the length of the target. If yes, to perform multilevel data reduction control, to reduce the original data to generate reduced data, and reduce the lossless compression of data, which reduce the lossless data compression of the length is less than or equal to the target length.

【技术实现步骤摘要】
纹理砖压缩及解压缩方法以及使用该方法的装置
本专利技术涉及一种视频编码技术,特别是一种纹理砖压缩及解压缩方法以及使用该方法的装置。
技术介绍
图像压缩使用先进的编码技术,用以移除图像数据中的冗余。于目前的高分辨率屏幕,例如4K屏幕,图形处理中的纹理砖若全部使用无损压缩,可能需要耗费大量的内存空间,进而增加硬件成本。因此,需要一种纹理砖压缩及解压缩方法以及使用该方法的装置,用以节省内存空间的使用。
技术实现思路
本专利技术的实施例提出一种纹理砖压缩方法,至少包含以下步骤。无损压缩纹理砖的原始数据后,判断原始数据的无损压缩结果的长度是否大于目标长度。如果是,执行多层次数据缩减控制,用以缩减原始数据以产生缩减数据,并且产生缩减数据的无损压缩结果,使得缩减数据的无损压缩结果的长度小于或等于目标长度。本专利技术的实施例提出一种纹理砖压缩装置,至少包含内存控制器、压缩器、减法器以及数据缩减控制器。数据缩减控制器耦接至内存控制器、压缩器及减法器,指示内存控制器输出纹理砖的原始数据至压缩器,使得压缩器产生原始数据的无损压缩结果,并且判断原始数据的无损压缩结果的长度是否大于目标长度。当原始数据的无损压缩结果的长度大于目标长度时,数据缩减控制器执行多层次数据缩减控制,用以指示减法器缩减原始数据以产生缩减数据,并指示内存控制器输出缩减数据至压缩器,使得压缩器产生缩减数据的无损压缩结果,其中,缩减数据的无损压缩结果的长度小于或等于目标长度。本专利技术的实施例提出一种纹理砖解压缩方法,至少包含以下步骤。于接收压缩结果及减损程度旗标后,解压缩压缩结果以产生解压缩数据,并依据减损程度旗标判断压缩结果是否经过数据缩减。当压缩结果经过数据缩减时,恢复解压缩数据至原始长度以产生恢复结果,以及输出恢复结果给三维绘图流水线中的纹理操作。附图说明图1是依据本专利技术实施例的纹理砖压缩方法流程图。图2是依据本专利技术实施例的纹理砖压缩装置的方块图。图3是依据本专利技术实施例的纹理砖解压缩方法流程图。图4A及4B是依据本专利技术实施例的纹理砖示意图。图5是依据本专利技术实施例的纹理砖压缩方法流程图。图6A及6B是依据本专利技术实施例的纹理砖分群示意图。图7是依据本专利技术实施例的纹理砖压缩装置的方块图。图8是依据本专利技术实施例的纹理砖解压缩方法流程图。具体实施方式以下说明为完成专利技术的较佳实现方式,其目的在于描述本专利技术的基本精神,但并不用以限定本专利技术。实际的
技术实现思路
必须参考之后的权利要求范围。必须了解的是,使用于本说明书中的“包含”、“包括”等词,用以表示存在特定的技术特征、数值、方法步骤、作业处理、组件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。在权利要求中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。为了不影响纹理砖的信息,本专利技术实施例首先无损压缩纹理砖的原始数据,并且判断原始数据的无损压缩结果的长度是否降低至目标长度之内。当原始数据的无损压缩结果的长度大于目标长度时,对原始数据进行缩减。然而,数据缩减会减损纹理砖的原始数据的信息。为了让压缩后纹理砖的信息缩减程度越低越好,本专利技术实施例提出一种多层次数据缩减控制,最小程度地缩减原始数据来产生缩减数据,并且产生缩减数据的无损压缩结果,使得缩减数据的无损压缩结果的长度小于或等于目标长度。于多层次数据缩减控制中,先缩减原始数据至一个程度以产生缩减数据,并且无损压缩此缩减数据。当缩减数据的无损压缩结果的长度不能降低至目标长度时,对原始数据进行更大程度的缩减(亦即是,下一层次的缩减)。此外,当数据缩减的次数达到默认值时,直接将原始数据缩减至目标长度之内的长度,用以避免消耗太多时间来执行数据缩减及无损压缩。图1是依据本专利技术实施例的纹理砖压缩方法流程图。此方法可执行于纹理编码器(textureencoder)。于接收一个纹理砖(texturetile)的原始数据后(步骤S110),对原始数据执行无损压缩算法(步骤S131)。举例来说,纹理砖可包含8x8画素,格式可为RGBA8888,其中,R、G、B及A通道各使用8比特表示,使得原始数据的长度为2048比特。目标长度可设为1024比特。接着,计算无损压缩结果的长度(步骤S133),并判断是否超过目标长度(步骤S151)。如果没有超过目标长度(步骤S151中“否”的路径),代表原始数据的无损压缩成功,输出无损压缩结果及减损程度旗标(lossy-levelflag)(步骤S190)。减损程度旗标可为“0b00”,表示纹理砖的原始数据没有经过缩减。如果超过目标长度(步骤S151中“是”的路径),代表原始数据的无损压缩失败,接着,进行多层次的数据缩减(步骤S171或S173)以及对缩减后纹理砖数据进行无损压缩(步骤S131)。在每个层次的数据缩减及缩减后纹理砖数据的无损压缩中,首先判断执行过的数据缩减次数是否超过默认值(步骤S153)。可使用计数器来表示执行过的数据缩减次数。计数器初始为0,并且于每次执行完缩减纹理砖的原始数据后(步骤S171),将计数器加1。如果没有超过默认值(步骤S153中“否”的路径),缩减纹理砖的原始数据(步骤S171)。如果超过默认值(步骤S153中“是”的路径),缩减纹理砖的原始数据至目标长度之内的长度(步骤S173)。于一些实施例中,可使用公式(1)、(2)及(3)来缩减纹理砖的原始数据:Ri=Ri/mj(1)Gi=Gi/mj(2)Bi=Bi/mj(3)Ri代表原始数据的第i个画素的R值,Gi代表原始数据的第i个画素的G值,Bi代表原始数据的第i个画素的B值,以及mj代表第j次数据缩减的常数且j越大则mj越大。于此须注意的是,公式(1)至(3)产生的余数直接舍弃。于一些实施例中,步骤S153的默认值可设为2。此外,m1可设为2,m2可设为3,m3可设为8。于第一层数据缩减时,可将纹理砖的原始数据(包含R、G及B通道,或者R、G、B及A通道)除以m1(步骤S171)。接着,对缩减数据执行无损压缩算法(步骤S131),并判断无损压缩结果的长度是否超过目标长度(步骤S151)。如果没有超过目标长度(步骤S151中“否”的路径),代表缩减数据的无损压缩成功,输出缩减数据的无损压缩结果及减损程度旗标“0b01”,用以表示纹理砖的原始数据已经过第一层数据缩减(步骤S190)。如果超过目标长度(步骤S151中“是”的路径),代表原始数据压缩失败,接着,进行下一层次的数据缩减处理(步骤S153、S171及S173)。于第二层数据缩减时,可将纹理砖的原始数据(包含R、G及B通道,或者R、G、B及A通道)除以m2(步骤S171)。接着,对缩减数据执行无损压缩算法(步骤S131),并判断无损压缩结果的长度是否超过目标长度(步骤S151)。如果没有超过目标长度(步骤S151中“否”的路径),代表缩减数据的无损压缩成功,输出缩减数据的压缩结果及减损程度旗标“0b10”,用以表示纹理砖的原始数据已经过第二层数据缩减(步骤S190)。于第三层数据缩减时,可直接将纹理砖的原始数据(包含R、G及本文档来自技高网
...
纹理砖压缩及解压缩方法以及使用该方法的装置

【技术保护点】
一种纹理砖压缩方法,包含:无损压缩一纹理砖的一原始数据;判断上述原始数据的一无损压缩结果的一长度是否大于一目标长度;以及当上述原始数据的上述无损压缩结果的上述长度大于上述目标长度时,执行一多层次数据缩减控制,用以缩减上述原始数据以产生一缩减数据,并且产生上述缩减数据的一无损压缩结果,使得上述缩减数据的上述无损压缩结果的一长度小于或等于上述目标长度。

【技术特征摘要】
1.一种纹理砖压缩方法,包含:无损压缩一纹理砖的一原始数据;判断上述原始数据的一无损压缩结果的一长度是否大于一目标长度;以及当上述原始数据的上述无损压缩结果的上述长度大于上述目标长度时,执行一多层次数据缩减控制,用以缩减上述原始数据以产生一缩减数据,并且产生上述缩减数据的一无损压缩结果,使得上述缩减数据的上述无损压缩结果的一长度小于或等于上述目标长度。2.如权利要求1所述的纹理砖压缩方法,其中,上述缩减数据减损上述纹理砖的上述原始数据的信息。3.如权利要求1所述的纹理砖压缩方法,其中,上述多层次数据缩减控制最小程度地缩减上述原始数据来产生上述缩减数据。4.如权利要求1所述的纹理砖压缩方法,其中,在执行一多层次数据缩减控制的步骤中,更包含:缩减上述原始数据至一程度以产生一第一缩减数据;无损压缩上述第一缩减数据;当上述第一缩减数据的一无损压缩结果的一长度大于上述目标长度且数据缩减的次数没有达到一默认值时,对上述原始数据进行更大程度的缩减以产生一第二缩减数据;以及当上述第一缩减数据的上述无损压缩结果的上述长度大于上述目标长度且数据缩减的次数达到上述默认值时,直接将上述原始数据缩减至上述目标长度之内的一长度并且输出,而不进行无损压缩。5.如权利要求4所述的纹理砖压缩方法,其中,使用以下公式产生上述第一缩减数据及上述第二缩减数据:Ri=Ri/mjGi=Gi/mjBi=Bi/mjRi代表上述原始数据的第i个画素的R值,Gi代表上述原始数据的第i个画素的G值,Bi代表上述原始数据的第i个画素的B值,以及mj代表第j次数据缩减的常数且j越大则mj越大。6.如权利要求5所述的纹理砖压缩方法,其中,上述原始数据的一长度为2048比特,上述目标长度为1024比特,上述默认值为2,m1设为2,m2设为3,以及m3设为8。7.如权利要求5所述的纹理砖压缩方法,其中,上述原始数据的一长度为2048比特,上述目标长度为1024比特,上述默认值为3,m1设为2,m2设为3,m3设为8,及m4设为16。8.如权利要求1所述的纹理砖压缩方法,更包含:输出相应于上述缩减数据的一减损程度旗标,用以表示上述原始数据已强迫缩减至上述目标长度,或者是上述原始数据已经过特定层次的数据缩减。9.一种纹理砖压缩装置,包含:一内存控制器;一压缩器;一减法器;以及一数据缩减控制器,耦接至上述内存控制器、上述压缩器及上述减法器,指示上述内存控制器输出一纹理砖的一原始数据至上述压缩器,使得上述压缩器产生上述原始数据的一无损压缩结果;判断上述原始数据的上述无损压缩结果的一长度是否大于一目标长度;当上述原始数据的上述无损压缩结果的上述长度大于上述目标长度时,执行一多层次数据缩减控制,用以指示上述减法器缩减上述原始数据以产生一缩减数据,并指示上述内存控制器输出上述缩减数据至上述压缩器,使得上述压缩器产生上述缩减数据的一无损压缩结果,其中,上述缩减数据的上述无损压缩结果的一长度小于或等于上述目标长度。10.如权利要求9所述的纹理砖压缩装置,其中,上述缩减数据减损上述纹理砖的上述原始数据的信息。11.如权利要求9所述的纹理砖压缩装置,其中,上述多层次数据缩减控制最小程度地缩减上述原始数据来产生上述缩减数据。12.如权利要求9所述的纹理砖压缩装置,其中,于上述多层次数据缩减控制中,上述数据缩减...

【专利技术属性】
技术研发人员:沈业茂顾德明阙恒张炜
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:上海,31

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

1