数据压缩制造技术

技术编号:20869853 阅读:19 留言:0更新日期:2019-04-17 10:01
本公开的实施例涉及数据压缩。数据压缩(和对应的解压缩)用于压缩数据值块,其涉及多个过程,包括颜色解相关、空间解相关、熵编码和打包中的一个或多个。熵编码生成具有可变大小(就位数而言)的经编码的数据值。熵编码使用数据值的相应集合的大小指示来指示用于该集合中的经编码的数据值的位数。大小指示允许快速解析经编码的数据值(例如,并行)。

【技术实现步骤摘要】
数据压缩
本申请涉及数据压缩领域。
技术介绍
在数据要存储在存储器中和/或从存储器中读取的很多应用中,期望无损和有损的数据压缩二者。通过在将数据存储在存储器中之前压缩数据,可以减少传输到存储器的数据量。数据压缩特别有用的数据的示例是图像数据,诸如要存储在深度缓冲器中的深度数据、要存储在帧缓冲器中的像素数据和要存储在纹理缓冲器中的纹理数据。这些缓冲器可以是任何合适类型的存储器,诸如高速缓冲存储器、单独的存储器子系统、共享存储器系统中的存储器区域或其某种组合。图形处理单元(GPU)可以用于处理图像数据,以便确定要存储在帧缓冲器中、以输出到显示器的图像的像素值。GPU通常具有高度并行化的结构用于并行处理大块数据。使GPU(特别是那些打算在移动设备上实现的GPU)以较低的功率水平运行存在巨大的商业压力。与此相竞争的是期望在更快的GPU上使用更高质量的渲染算法,从而对相对有限的资源(存储器带宽)施加压力。然而,增加存储器子系统的带宽可能不是有吸引力的解决方案,因为将数据移入和移出GPU以及甚至在GPU内移动数据会消耗GPU的大部分功率预算。中央处理单元(CPU)也可能存在与GPU相同的问题。如上所述,减少传输到存储器的数据量的一种方式是压缩要传输到存储器和从存储器传输的数据。压缩和解压缩数据所花费的时间增加了存储器读取和写入操作的等待时间,并且因此可能影响GPU操作的速度。此外,可以允许压缩数据的速率与压缩数据被解压缩的速率不同。作为示例,通常可以允许用于压缩纹理数据的压缩过程(其通常是有损压缩过程)显著地慢于用于解压缩压缩纹理数据的解压缩过程。相反,用于压缩深度数据以便存储在深度缓冲器中或用于压缩像素数据以便存储在帧缓冲器中的压缩过程(其通常是无损压缩过程)理想地应当以与对应的解压缩过程大致相同的速率执行。英国专利No.2451911公开了一种可以压缩二维数据集的图形渲染系统。可变长度编码方案允许以如下方式压缩数据:该方式使得一些数据部分可以由比其他数据部分更少的编码位来表示,目的是跨不同的数据部分提供高水平的压缩(其可以不同)。然而,允许用于表示不同的经编码的数据值的位数变化会增加快速地解码经编码的数据的复杂性。例如,在不分析经编码的数据(例如,按顺序解码每个经编码的数据值)的情况下,可能难以确定不同的经编码的数据值之间的边界所在的位置。英国专利No.2530312描述了一种数据压缩系统,其中通过以下方式来压缩8×8块的图像数据:执行颜色解相关、空间解相关和熵编码,并且然后将所得到的经编码的数据值打包成数据包用于存储。在该专利描述的系统中,每次迭代,处理来自块的一行数据值。指数哥伦布编码的修改版本用于熵编码,其中每个系数存储前缀,以指示随后由后缀指示的值的范围。针对每个编码系数具有前缀和后缀使得同时解码多个值变得困难,因为快速地确定编码位之间的边界的位置并不简单。
技术实现思路
提供本“
技术实现思路
”是为了以简化的形式介绍一些概念,这些概念将在下面的“具体实施方式”中进一步描述。本“
技术实现思路
”不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。在本文中描述的示例中,对数据值的集合(例如,数据值的2×2集合)执行熵编码。对于数据值的每个集合,在经编码的输出中(例如,在其报头分段中)包括指示,该指示用于指示针对表示数据值的该集合的经编码的数据值中的每个经编码的数据值,使用多少位。然后,根据所指示的位数将经编码的数据值包括在经编码的输出中。该系统意味着,简化了经编码的数据值的解码(与英国专利No.2530312的系统相比),因为简单地读取指示(例如,在报头中)允许确定不同的经编码的数据值之间的位边界。换言之,指示允许快速确定对应的经编码的数据分段的大小(例如,仅在单个时钟周期中)。提供了一种对多个数据值执行熵编码以形成经编码的数据输出的方法,经编码的数据输出多个经编码的数据值,多个经编码的数据值表示相应的多个数据值,该方法包括:接收数据值;以及针对所接收的数据值的多个集合中的每个集合:确定能够用于表示集合中的所接收的数据值中的最大值的位数;在经编码的数据输出中包括所确定的所述位数的指示;以及在经编码的数据输出中包括表示集合中的所接收的数据值的经编码的数据值,其中经编码的数据值中的每个经编码的数据值均具有所确定的所述位数。所确定的位数可以是能够用于表示集合中的所接收的数据值中的最大值的最小有效位数。作为示例,所接收的数据值中的每个数据值可以均具有n位,并且针对所接收的数据值的特定集合的所确定的最小有效位数可以是m,其中m≤n。在该示例中,特定集合中的所接收的数据值中的每个数据值均具有至少(n-m)个前导零,并且针对特定集合的经编码的数据值中的每个经编码的数据值均包括特定集合中的对应的n位所接收的数据值的m个最低有效位。提供了一种熵编码模块,被配置为对多个数据值执行熵编码,以形成经编码的数据输出,经编码的数据输出包括多个经编码的数据值,多个经编码的数据值表示相应的多个数据值,熵编码模块被配置为:接收数据值;以及针对所接收的数据值的多个集合中的每个集合:确定能够用于表示集合中的所接收的数据值中的最大值的位数;在经编码的数据输出中包括所确定的所述位数的指示;以及在经编码的数据输出中包括表示集合中的所接收的数据值的经编码的数据值,其中经编码的数据值中的每个经编码的数据值均具有所确定的所述位数。在一些示例中,提供了一种数据压缩单元,其包括如本文中描述的熵编码模块。提供了一种对经编码的数据输入执行熵解码的方法,经编码的数据输入包括:(i)多个经编码的数据值,以及(ii)针对经编码的数据值的多个集合中的每个集合,形成该集合中经编码的数据值的位数的指示,其中该方法包括:接收经编码的数据输入;读取经编码的数据输入中的指示,以标识形成经编码的数据值中的每个经编码的数据值的位数;以及基于所标识的位数来解析经编码的数据输入中的经编码的数据值,从而解释经编码的数据值。该方法还可以包括通过选择性地向经解释的经编码的数据值前置前导零来确定经解码的数据值,以使得经解码的数据值中的每个经解码的数据值均具有数目为n的位。提供了一种熵解码模块,被配置为对经编码的数据输入执行熵解码,经编码的数据输入包括:(i)多个经编码的数据值,以及(ii)针对经编码的数据值的多个集合中的每个集合,形成集合中经编码的数据值的位数的指示,该熵解码模块被配置为:接收经编码的数据输入;读取经编码的数据输入中的指示,以标识形成经编码的数据值中的每个经编码的数据值的位数;以及基于所标识的位数来解析经编码的数据输入中的经编码的数据值,从而解释经编码的数据值。在一些示例中,提供了一种数据解压缩单元,其包括如本文中描述的熵解码模块。存在多个本文中描述的不同的组件,包括熵编码模块、数据压缩单元、熵解码模块和数据解压缩单元。这些组件中的任何一个可以在集成电路上以硬件实现。可以提供一种在集成电路制造系统处制造这些组件中的任何一个的方法。可以提供集成电路定义数据集,其当在集成电路制造系统中被处理时将系统配置为制造这些组件中的任何一个。可以提供一种非暂态计算机可读存储介质,其上存储有这些组件中的任何一个的计算机可读描述,计算机可读描述当在集成电路制造系统本文档来自技高网
...

【技术保护点】
1.一种执行数据压缩以用于压缩图像数据的方法,所述方法包括:在空间解相关模块处执行空间解相关;对多个数据值执行熵编码以形成经编码的数据输出,所述经编码的数据输出包括多个经编码的数据值,所述多个经编码的数据值表示相应的所述多个数据值,其中所述执行熵编码包括:接收所述数据值,其中所接收的所述数据值已经由所述空间解相关模块处理,并且其中所接收的所述数据值与相应像素值有关;以及针对所接收的数据值的多个集合中的每个集合:确定能够用于表示所述集合中的所接收的所述数据值中的最大值的位数;在所述经编码的数据输出中包括所确定的所述位数的指示;以及在所述经编码的数据输出中包括表示所述集合中的所接收的所述数据值的所述经编码的数据值,其中所述经编码的数据值中的每个经编码的数据值均具有所确定的所述位数;其中所接收的数据值的所述集合中的每个集合均与像素值的二维集合有关。

【技术特征摘要】
2017.10.06 GB 1716431.01.一种执行数据压缩以用于压缩图像数据的方法,所述方法包括:在空间解相关模块处执行空间解相关;对多个数据值执行熵编码以形成经编码的数据输出,所述经编码的数据输出包括多个经编码的数据值,所述多个经编码的数据值表示相应的所述多个数据值,其中所述执行熵编码包括:接收所述数据值,其中所接收的所述数据值已经由所述空间解相关模块处理,并且其中所接收的所述数据值与相应像素值有关;以及针对所接收的数据值的多个集合中的每个集合:确定能够用于表示所述集合中的所接收的所述数据值中的最大值的位数;在所述经编码的数据输出中包括所确定的所述位数的指示;以及在所述经编码的数据输出中包括表示所述集合中的所接收的所述数据值的所述经编码的数据值,其中所述经编码的数据值中的每个经编码的数据值均具有所确定的所述位数;其中所接收的数据值的所述集合中的每个集合均与像素值的二维集合有关。2.根据权利要求1所述的方法,其中所确定的所述位数是能够用于表示所述集合中的所接收的所述数据值中的所述最大值的最小有效位数。3.根据权利要求2所述的方法,其中存在能够由所述指示来指示的有效位数的预定集合,并且其中所述最小有效位数是所述预定集合中的足以表示所述集合中的所接收的所述数据值中的所述最大值的所述有效位数的最小值。4.根据权利要求3所述的方法,其中所述有效位数的所述预定集合不包括能够用于表示所述集合中的所接收的所述数据值中的最大值的所有可能的最小位数。5.根据权利要求2至4中任一项所述的方法,其中所接收的所述数据值中的每个数据值均具有n位,并且针对所接收的数据值的特定集合的所确定的所述最小有效位数是m,其中m≤n,以使得所述特定集合中的所接收的所述数据值中的每个数据值均具有至少(n-m)个前导零,并且其中针对所述特定集合的所述经编码的数据值中的每个经编码的数据值均包括所述特定集合中的对应的n位所接收的数据值的m个最低有效位。6.根据任一项前述权利要求所述的方法,其中所接收的数据值的所述集合中的每个集合均与像素值的2×2集合有关。7.根据任一项前述权利要求所述的方法,其中所接收的所述数据值被组织成块,其中每个块均包括所接收的数据值的多个集合,并且其中针对所接收的数据值的每个块的所述经编码的数据输出被放置在相应的数据包中。8.根据任一项前述权利要求所述的方法,其中所接收的所述数据值已经被重新映射,由此所述重新映射根据由所述空间解相关模块使用的空间解相关技术而被配置,以使得重新映射的数据值具有特定幅度的可能性针对较大的幅度而降低。9.根据任一项前述权利要求所述的方法,其中所接收的所述数据值是无符号的,具有偏向零的分布。10.根据任一项前述权利要求所述的方法,其中所接收的所述数据值表示MSAA差分数据值。11.一种用于压缩图像数据的数据压缩单元,所述数据压缩单元包括:空间解相关模块,被配置为对数据值执行空间解相关;以及熵编码模块,被配置为对多个数据值执行熵编码,以形成经编码的数据输出,所述经编码的数据输出包括多个经编码的数据值,所述多个经编码的数据值表示相应的所述多个数据值,所述熵编码模块被配置为:接收所述数据值,其中所接收的所述数据值已经由所述空间解相关模块处理,并且其中所接收的所述数据值与相应像素值有关;以及针对所接收的数据值的多个集合中的每个集合:确定能够用于表示所述集合中的所接收的数据值中的最大值的位数;在所述经编码的数据输出中包括所确定的所述位数的指示;以及在所述经编码的数据输出中包括表示所述集合中的所接收的所述数据值的所述经编码的数据值,其中所述经编码的数据值中的每个经编码的数据值均具有所确定的所述位数;其中所接收的数据值的所述集合中的每个集合与像素值的二维集合有关。12.根据权利要求11所述的数据压缩单元,其中所述数据值是像素值。13.根据权利要求11或12所述的数据压缩单元,其中所述熵编码模块还被配置为:针对所接收的数据值的另一集合,在所述经编码的数据输出中包括另一指示,所述另一指示指示所述另一集合中每个数据值的位数;以及在所述经编码的数据输出中包括表示所述另一集合中所接收的所述数据值的另外的经编码的数据值,其中所述另外的经编码的数据值中的每个经编码的数据值均具有根据所述另一指示的位数,其中所述所接收的数据值的另一集合包括比所接收的数据值的所述多个集合中的每个所述集合更少的数据值。14.根据权利要求...

【专利技术属性】
技术研发人员:S·芬尼
申请(专利权)人:想象技术有限公司
类型:发明
国别省市:英国,GB

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

1