图形数据压缩装置与图形数据压缩方法与流程

文档序号:11145092阅读:746来源:国知局
图形数据压缩装置与图形数据压缩方法与制造工艺

本发明涉及图形处理技术领域,特别是涉及一种图形数据压缩装置与图形数据压缩方法。



背景技术:

随着图形处理器性能的不断提升,对带宽以及存储器容量的需求也在不断提高。目前,主要是通过以下方式减少对带宽的使用:一、采用离线工具先对纹理数据进行有损压缩,比如采用DXT、ETC、ASTC、PVRTC等压缩格式对纹理数据进行有损压缩;二、在对数据处理之后对深度、模板、渲染目标等数据采用无损压缩方式进行压缩。

请参考图1,图1为现有技术中的一种图形数据压缩装置的方框结构示意图。如图1所示,图形数据压缩装置10包括处理单元11、存储器接口单元13、存储器15以及显示单元17。其中,存储器接口单元13包括无损压缩模块131和解压模块133。在进行图形数据处理的过程中,处理单元11先通过存储器接口单元13读取渲染所需要的资源数据,比如纹理数据、顶点数据、索引数据等,进行处理之后,由无损压缩模块131对处理后的数据中的渲染目标数据等进行无损压缩,再由存储器接口单元13将处理和压缩后的数据写入存储器15。随后,如果对压缩后的数据有进一步的处理,比如需要对数据进行景深(depth of field,DOF)、高动态范围(high dynamic range,HDR)、延迟渲染(deferred shading)等方面的后处理,则解压模块 133从存储器15读取需要进行后处理的数据并进行解压之后,再由处理单元11进行后处理。同样,后处理后的相应处理经处理单元11处理之后由无损压缩模块131进行无损压缩,再由存储器接口单元13将压缩后的数据写入存储器15。之后,最终处理好的数据由解压模块133或者显示单元17中的解压模块171从存储器15中读取出来并进行解压,解压后的数据由显示单元17提供给屏幕以显示图形。

经由上述的压缩方式可以有效减少数据处理对带宽的需求,但是为了避免压缩失败,存储器15中需要分配固定区域以存储压缩数据,此固定区域一般不小于数据未压缩前所需占用的存储空间,也就是说,尽管处理后的数据有进行压缩,但是压缩数据所占用的空间并不小于数据未压缩前所需占用的存储空间。因此,上述压缩方式只能改善带宽,并不能有效改善对存储器15的容量需求。进一步地,对于高分辨率的屏幕,如目前流行的4K屏幕,由于其显示所需要的存储器的容量无法降低,因此导致花在存储器上的成本无法降低。



技术实现要素:

有鉴于此,本发明提供一种图形数据压缩装置,不仅降低了带宽的使用,还能降低对存储器的占用,有效改善了对存储器的容量需求。

具体地,本发明的一实施例提供一种图形数据压缩装置,该图形数据压缩装置包括处理单元,用于对图形数据进行处理;以及混合型压缩单元,用于对该处理单元处理后的数据进行压缩,其中,该混合型压缩单元包括无损压缩模块和近无损压缩模块,该无损压缩模块用于对该处理后的数据 采用无损压缩算法进行压缩,该近无损压缩模块包括调整模块和压缩模块,该调整模块用于对该处理后的数据进行调整以减少该处理后的数据的大小,该压缩模块用于对该调整模块调整后的数据采用无损压缩算法进行压缩。其中,该混合型压缩单元还用于先判断该无损压缩模块是否压缩成功,若该无损压缩模块压缩成功,则输出经该无损压缩模块压缩后的数据;若该无损压缩模块压缩失败,则再判断该近无损压缩模块是否压缩成功,若该近无损压缩模块压缩成功,则输出经该近无损压缩模块压缩后的数据;若该近无损压缩模块压缩失败,则直接输出经该处理单元处理后的、未压缩的数据。

本发明的一实施例还提供一种图形数据压缩方法,该图形数据压缩方法包括以下步骤:

该处理单元将处理后的数据提供给该混合型压缩单元进行压缩;

该混合型压缩单元对该处理后的数据进行压缩;

该混合型压缩单元判断该无损压缩模块是否压缩成功;

若该无损压缩模块压缩成功,则该混合型压缩单元输出经该无损压缩模块压缩后的数据;

若该无损压缩模块压缩失败,则该混合型压缩单元再判断该近无损压缩模块是否压缩成功;

若该近无损压缩模块压缩成功,则该混合型压缩单元输出经该近无损压缩模块压缩后的数据;以及

若该近无损压缩模块压缩失败,则该混合型压缩单元直接输出经该处理单元处理后的、未压缩的数据。

由于所述图形数据压缩装置与图形数据压缩方法不仅可用无损压缩的方式对数据进行压缩,而且在无损压缩失败后还可采用近无损压缩的方式对数据进行压缩,由于近无损压缩模块先对需要压缩的数据进行调整以减小数据量,再对减少后的数据进行无损压缩,从而增加了压缩成功的几率,使存储器只需分配较少的固定空间用以存储压缩数据,降低了压缩数据对存储器的占用空间。因此,该图形数据压缩装置和方法不仅可以降低了带宽的使用,还能降低对存储器的占用,有效改善了对存储器的容量需求。

为使本发明的上述技术方案和优点能更明显易懂,下文特举实施例,并结合附图详细说明如下。

附图说明

图1为现有技术中的一种图形数据压缩装置的方框结构示意图。

图2为本发明的一实施例所提供的一种图形数据压缩装置的方框结构示意图。

图3为图2所示的图形数据压缩装置的部分具体方框结构示意图。

图4为本发明的一实施例所提供的一种图形数据压缩方法的流程示意图。

具体实施方式

为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的具体实施方式、方法、步骤、结构、特征及功效,进行详细说明。

请参考图2,其为本发明的一实施例所提供的一种图形数据压缩装置的 方框结构示意图。如图2所示,在本实施例中,图形数据压缩装置20包括处理单元21、混合型压缩单元22、混合型解压单元23、外部缓冲管理单元24、存储器接口单元25、存储器26以及显示单元27。在本实施例中,混合型压缩单元22、混合型解压单元23以及外部缓冲管理单元24均设置于存储器接口单元25内。在其它实施例中,混合型压缩单元22、混合型解压单元23以及外部缓冲管理单元24也可以部分或者全部设置在存储器接口单元25之外。

其中,处理单元21可为独立的图形处理器,也可以集成于中央处理器中。处理单元21包括渲染管线,主要用于对图形数据进行处理,比如建模渲染。该图形数据可以是处理单元21通过存储器接口单元25从存储器26中读取的纹理数据,经处理单元21处理后的数据包括渲染目标、深度、模板等数据。经处理单元21处理后的数据如果需要处理单元21进行景深、高动态范围、延迟渲染等方面的后处理的数据,则可以作为新的纹理数据提供给处理单元21进行再次处理。

混合型压缩单元22用于对处理单元21处理后的数据进行压缩,使压缩后的数据满足预设的压缩率,也就是说,压缩后的数据大小与压缩前的数据大小之比不大于该压缩率。

混合型解压单元23用于对经混合型压缩单元22压缩过的数据进行解压。

存储器接口单元25用于对存储器26内存储的数据进行读写。

存储器26可为同步动态随机存储器(Synchronous Dynamic Random Access Memory,SDRAM),双倍速率同步动态随机存储器(Double Data Rate SDRAM,DDR SDRAM),同步图形随机存储器(Synchronous Graphics Random-Access Memory,SGRAM)或者双倍速率同步图形随机存储器(Double Data Rate SGRAM,DDR SGRAM)等。

存储器26用来存储处理单元21待处理或者处理过的图形数据。其中,存储器26包括按照原始数据大小与压缩率预先分配的固定区域以及动态缓冲区域,该原始数据是指被该混合型压缩单元22压缩前的数据。其中,固定区域用于存储经混合型压缩单元22压缩后的数据,而动态缓冲区域用于存储压缩失败后的数据。举例说明,若原始数据大小为4kbits,压缩率为50%,则固定区域至少需要2k的空间,动态缓冲区域至少需要4k的空间。

外部缓冲管理单元24用于当混合型压缩单元22压缩数据失败后对存储器26的存储空间进行管理。若混合型压缩单元22压缩数据失败,则外部缓冲管理单元24获取存储器26中闲置的空间来形成动态缓冲区域以存储经处理单元21处理后但是并未压缩的数据。需要说明的是,因为压缩失败,存储器26中用于存储压缩后的数据的固定区域内无压缩数据可存,因此,该固定区域变成闲置空间,由外部缓冲管理单元24形成的动态缓冲区域可包括该固定区域。

显示单元27用于将存储器26中存储的、经处理单元21处理后的待显示数据提供给屏幕以显示图形。其中,待显示数据可以经存储器接口单元25读取后由混合型解压单元23解压后提供给显示单元27。在其他实施例中,显示单元27内可设置存储器接口模块以及混合型解压单元,该存储器接口模块直接读取存储器26中的待显示数据,由混合型解压单元解压后提供给屏幕以显示图形。

请一并参考图3,图3为图2所示的图形数据压缩装置的部分具体方框结构示意图。如图3所示,混合型压缩单元22包括无损压缩模块221和近无损压缩模块222。混合型解压单元23包括无损解压模块231和近无损解压模块232。

其中,无损压缩模块221用于对处理单元21处理后的数据采用无损压缩算法进行压缩,无损压缩算法例如可以为霍夫曼(Huffman)算法或LZW(Lenpel-Ziv&Welch)算法等。

近无损压缩模块222包括调整模块2221和压缩模块2222。其中,调整模块2221用于对处理单元21处理后的数据进行分析,获取数据的属性,根据数据的属性对数据做相应的调整,以减小数据的大小。该数据的属性是指数据所表示的图形的颜色、明暗度、模板、深度纹理等信息的类别。利用人眼对于图形的各个属性的敏感度不一样,该调整模块2221针对不同属性的数据进行不同的调整。比如,由于人眼对于光线比较敏感,而对景物的颜色的敏感度相对较低,因此,即使图形的颜色存在一定的误差,也不易被人眼察觉;而相对地,如果图形的明暗度存在误差,则容易被人眼察觉,即图形的颜色对误差的容忍度较高,而图形的明暗度对误差的容忍度较低。同样,深度纹理代表了图形中比较重要的细节部分,如果表示深度纹理的数据出现误差,极有可能使最终显示出来的图形出现非常明显的缺失部分,因此,可以理解表示深度纹理的数据不能允许存在误差,即图形的深度纹理对误差的容忍度为零。可通过经验值对各个属性的数据进行实验,找出图形的各个属性所能容忍的最大误差,通过该最大误差对原始数据进行调整之后,使得即使数据存在相应属性所能容忍的最大误差,最 终显示的图形也能满足需求,即不被人眼察觉有缺失的信息。在本实施例中,调整模块2221预先设置有不同属性所能容忍的最大误差,当近无损压缩模块222对处理单元21处理后的数据进行压缩时,调整模块2221先对该数据进行分析,获取数据的属性,根据数据的属性所能容忍的最大误差对数据做相应的调整,从而减小数据的大小。假设颜色所能容忍的最大误差为±2个灰阶,则调整模块2221可对具有颜色属性的数据做细微调整,适量减少具有颜色属性的数据的大小。

压缩模块2222用于对调整模块2221调整后的数据采用无损压缩算法进行压缩,无损压缩算法例如可以为霍夫曼算法或LZW算法等。

该无损解压模块231用于对经该无损压缩模块221压缩的数据进行解压,该近无损解压模块232用于对经该近无损压缩模块222压缩的数据进行解压。

在本实施例中,当处理单元21对数据进行处理后,混合型压缩单元22的无损压缩模块221和近无损压缩模块222同时对处理后的数据进行压缩,当压缩完成之后,混合型压缩单元22先判断无损压缩模块221是否压缩成功,即判断压缩后的数据是否满足预设的压缩率,如果压缩后的数据大小与压缩前的数据大小之比不大于该压缩率,则表示压缩成功;如果压缩后的数据大小与压缩前的数据大小之比大于该压缩率,则表示压缩失败。

若无损压缩模块221压缩成功,则混合型压缩单元22输出经无损压缩后的数据及突发长度(burst length,BL),由存储器接口单元25将经无损压缩后的数据写入存储器26中用于存储压缩数据的固定区域以及将突发长度写入存储器26中的相应位置。其中,突发长度是指一次突发传输读写的 地址个数,用于表示压缩数据的大小以及压缩的方法,还用于控制存储器数据的读取以及控制解码。

若无损压缩模块221压缩失败,则混合型压缩单元22再判断近无损压缩模块222是否压缩成功。若近无损压缩模块222压缩成功,则混合型压缩单元22输出经近无损压缩后的数据及突发长度,由存储器接口单元25将经近无损压缩后的数据写入存储器26中用于存储压缩数据的固定区域以及将突发长度写入存储器26。

此外,在数据压缩成功之后,存储器接口单元25会将地址通知给外部缓冲管理单元24,由外部缓冲管理单元24释放重复的存储数据,该重复的存储数据包括如上一次压缩失败的数据等。

在极小的几率中,若近无损压缩模块222压缩也失败,则混合型压缩单元22直接输出经处理单元21处理后的、未压缩的数据给外部缓冲管理单元24,由外部缓冲管理单元24在存储器26中形成动态缓冲区域并写入该经处理单元21处理后的、未压缩的数据以及将突发长度写入存储器26中,从而在该动态缓冲区域中存储该经处理单元21处理后的、未压缩的数据,其中,该突发长度被标识特别的标识数据,用以表示写入的数据为非压缩数据。

在其他实施例中,混合型压缩单元22可以先利用无损压缩模块221对处理单元21处理后的数据进行压缩,若无损压缩模块221压缩失败后再采用近无损压缩模块222对处理后的数据进行压缩,而无需二者同时进行压缩,从而降低混合型压缩单元22的数据处理量。

当处理单元21需要读取存储器26内的数据时,存储器接口单元25先 读取突发长度的数据,通过突发长度判断数据的压缩状态,如果判断数据是压缩状态,再将突发长度以及数据提供给混合型解压单元23。混合型解压单元23根据突发长度以及数据头的信息,判断数据是无损压缩状态还是经近无损压缩状态,如果是无损压缩状态,则采用无损解压模块231对数据进行解压;如果是近无损压缩状态,则采用近无损解压模块232对数据进行解压,最后将解压后的数据提供给处理单元21。

如果存储器接口单元25通过突发长度判断数据为未压缩状态,则将数据在动态缓冲区域中的存储地址提供给外部缓冲管理单元24,经由外部缓冲管理单元24将数据提供给混合型解压单元23,再由混合型解压单元23直接提供给处理单元21。

此外,如果是显示单元27需要读取存储器26中的数据,其读取过程与上述处理单元21的读取过程相似,在此不再赘述。

由于本实施例中的图形数据压缩装置20采用了混合型压缩单元22,当无损压缩模块221压缩失败后还可通过近无损压缩模块222对数据进行压缩,而近无损压缩模块222因为先对需要压缩的数据进行调整以减小数据量,再对减少后的数据进行无损压缩,从而增加了压缩成功的几率,使存储器26只需分配较少的固定空间用以存储压缩数据,降低了压缩数据对存储器26的占用空间。并且为了预防极少可能出现的压缩失败的情形,该图形数据压缩装置20中设置了外部缓冲管理单元24,用于压缩失败后对存储器26的存储空间进行管理,采用存储器中闲置的空间来形成动态缓冲区域以存储经处理单元21处理后但是并未压缩的数据,充分实现对存储器26的存储空间的利用。因此,该图形数据压缩装置20不仅可以降低了带宽的 使用,还能降低对存储器26的占用,有效改善了对存储器26的容量需求。

请参考图4,其为本发明的一实施例所提供的一种图形数据压缩方法的流程示意图,该图形数据压缩方法可用于上述图形数据压缩装置20。该图形数据压缩方法包括以下步骤:

步骤S31,接收需要进行压缩的数据;

请一并参考图3,在本步骤中,处理单元21将处理后的数据提供给混合型压缩单元22进行压缩,其中,该处理后的数据即需要进行压缩的数据。

步骤S32,对该数据进行压缩;

在本实施例中,混合型压缩单元22的无损压缩模块221和近无损压缩模块222同时对处理后的数据进行压缩。其中,无损压缩模块221对该处理后的数据采用无损压缩算法进行压缩。近无损压缩模块222的调整模块2221先对该处理后的数据进行分析,获取数据的属性,根据数据的属性所能容忍的最大误差对数据做相应的调整,以减少数据的大小,近无损压缩模块222的压缩模块2222再对调整后的数据采用无损压缩算法进行压缩。

在其他实施例中,混合型压缩单元22可以先利用无损压缩模块221对处理单元21处理后的数据进行压缩,若无损压缩模块221压缩失败后再采用近无损压缩模块222对处理后的数据进行压缩。

步骤S33,判断无损压缩是否成功;

在本步骤中,当压缩完成之后,混合型压缩单元22先判断无损压缩模块221是否压缩成功,即判断压缩后的数据是否满足预设的压缩率,如果压缩后的数据大小与压缩前的数据大小之比不大于该压缩率,则表示压缩成功;如果压缩后的数据大小与压缩前的数据大小之比大于该压缩率,则 表示压缩失败。若无损压缩成功,执行步骤S35;若无损压缩失败,执行步骤S34。

步骤S34,判断近无损压缩是否成功;

在本步骤中,若无损压缩失败,则混合型压缩单元22再判断近无损压缩模块222是否压缩成功。若近无损压缩成功,执行步骤S35;若近无损压缩失败,执行步骤S36。

步骤S35,将压缩数据写入存储器26的固定区域;

在本步骤中,混合型压缩单元22输出压缩数据,由存储器接口单元25将压缩数据写入存储器26中用于存储压缩数据的固定区域,从而在该固定区域存储压缩数据。具体地,若是经无损压缩的数据,混合型压缩单元22输出经无损压缩后的数据及突发长度,由存储器接口单元25将经无损压缩后的数据写入存储器26中用于存储压缩数据的固定区域以及将突发长度写入存储器26中的相应位置。若是经近无损压缩的数据,混合型压缩单元22输出经近无损压缩后的数据及突发长度,由存储器接口单元25将经近无损压缩后的数据写入存储器26中用于存储压缩数据的固定区域以及将突发长度写入存储器26中的相应位置。其中,突发长度是指一次突发传输读写的地址个数,用于表示压缩数据的大小以及压缩的方法,还用于控制存储器数据的读取以及控制解码。

步骤S36,将未压缩的数据写入存储器26中的动态缓冲区域。

在本步骤中,若近无损压缩模块222压缩也失败,则混合型压缩单元22直接输出经处理单元21处理后的、未压缩的数据给外部缓冲管理单元24,由外部缓冲管理单元24在存储器26中形成动态缓冲区域并写入该经 处理单元21处理后的、未压缩的数据以及将突发长度写入存储器26中,从而在该动态缓冲区域中存储该经处理单元21处理后的、未压缩的数据,其中,该突发长度被标识特别的标识数据,用以表示写入的数据为非压缩数据。

由此可见,本实施例中的图形数据压缩方法不仅可用无损压缩的方式对数据进行压缩,而且在无损压缩失败后还可采用近无损压缩的方式对数据进行压缩,由于近无损压缩模块222先对需要压缩的数据进行调整以减小数据量,再对减少后的数据进行无损压缩,从而增加了压缩成功的几率,使存储器26只需分配较少的固定空间用以存储压缩数据,降低了压缩数据对存储器26的占用空间。因此,该图形数据压缩方法不仅可以降低了带宽的使用,还能降低对存储器26的占用,有效改善了对存储器26的容量需求。

以上仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1