Embodiments of the present disclosure relate to data compression. Data compression (and corresponding decompression) is used to compress data value blocks, which involves multiple processes, including color decorrelation, spatial decorrelation, entropy coding and one or more of the packages. Entropy coding generates coded data values of variable size (in terms of bits). Entropy coding uses the size indication of the corresponding set of data values to indicate the number of digits of the coded data values used in the set. Size indication allows fast parsing of encoded data values (e.g., parallelism).
【技术实现步骤摘要】
数据压缩
本申请涉及数据压缩领域。
技术介绍
在数据要存储在存储器中和/或从存储器中读取的很多应用中,期望无损和有损的数据压缩二者。通过在将数据存储在存储器中之前压缩数据,可以减少传输到存储器的数据量。数据压缩特别有用的数据的示例是图像数据,诸如要存储在深度缓冲器中的深度数据、要存储在帧缓冲器中的像素数据和要存储在纹理缓冲器中的纹理数据。这些缓冲器可以是任何合适类型的存储器,诸如高速缓冲存储器、单独的存储器子系统、共享存储器系统中的存储器区域或其某种组合。图形处理单元(GPU)可以用于处理图像数据,以便确定要存储在帧缓冲器中、以输出到显示器的图像的像素值。GPU通常具有高度并行化的结构用于并行处理大块数据。使GPU(特别是那些打算在移动设备上实现的GPU)以较低的功率水平运行存在巨大的商业压力。与此相竞争的是期望在更快的GPU上使用更高质量的渲染算法,从而对相对有限的资源(存储器带宽)施加压力。然而,增加存储器子系统的带宽可能不是有吸引力的解决方案,因为将数据移入和移出GPU以及甚至在GPU内移动数据会消耗GPU的大部分功率预算。中央处理单元(CPU)也可能存在与GPU相同的问题。如上所述,减少传输到存储器的数据量的一种方式是压缩要传输到存储器和从存储器传输的数据。压缩和解压缩数据所花费的时间增加了存储器读取和写入操作的等待时间,并且因此可能影响GPU操作的速度。此外,可以允许压缩数据的速率与压缩数据被解压缩的速率不同。作为示例,通常可以允许用于压缩纹理数据的压缩过程(其通常是有损压缩过程)显著地慢于用于解压缩压缩纹理数据的解压缩过程。相反,用于压缩深度数 ...
【技术保护点】
1.一种数据压缩方法,包括使用空间解相关模块对j×k输入数据值块执行空间解相关,所述空间解相关模块被布置为处理g×h数据值块,其中所述输入数据值块中的列数j是g的倍数,并且其中j×k=g×h,所述方法包括:通过以下操作将所述输入数据值块重新组织成g×h数据值块:(i)将所述输入块的行中的每一行均划分为多个分段,其中每个分段均包括g个数据值,以及(ii)将所述分段布置成h个行以形成g×h数据值块;对所述g×h数据值块执行空间解相关以确定经空间解相关的数据值,其中所述g×h数据值块的所述行按顺序被处理,使得针对所述输入数据值块的每一行,所述行的第一分段在比所述行的第二分段被处理的迭代更早的迭代中被处理,其中所述第一分段在所述行中位于所述第二分段右侧,并且其中来自所述第一分段的至少一个值被保存以在所述第二分段的所述空间解相关中使用;以及向熵编码模块提供所述经空间解相关的数据值以用于熵编码。
【技术特征摘要】
2017.10.06 GB 1716431.0;2017.10.09 GB 1716471.61.一种数据压缩方法,包括使用空间解相关模块对j×k输入数据值块执行空间解相关,所述空间解相关模块被布置为处理g×h数据值块,其中所述输入数据值块中的列数j是g的倍数,并且其中j×k=g×h,所述方法包括:通过以下操作将所述输入数据值块重新组织成g×h数据值块:(i)将所述输入块的行中的每一行均划分为多个分段,其中每个分段均包括g个数据值,以及(ii)将所述分段布置成h个行以形成g×h数据值块;对所述g×h数据值块执行空间解相关以确定经空间解相关的数据值,其中所述g×h数据值块的所述行按顺序被处理,使得针对所述输入数据值块的每一行,所述行的第一分段在比所述行的第二分段被处理的迭代更早的迭代中被处理,其中所述第一分段在所述行中位于所述第二分段右侧,并且其中来自所述第一分段的至少一个值被保存以在所述第二分段的所述空间解相关中使用;以及向熵编码模块提供所述经空间解相关的数据值以用于熵编码。2.根据权利要求1所述的方法,其中来自所述第一分段的列A的数据值被保存,并且被用于使用利用两个参考值的线性预测方法来计算所述第二分段的列E、G和H中的所述经空间解相关的数据值。3.根据权利要求1或2所述的方法,其中来自所述第一分段的列A的数据值被保存,并且被用于使用利用一个参考值的哈尔预测方法来计算所述第二分段的列A中的经空间解相关的数据值。4.一种数据压缩单元,被配置为对j×k输入数据值块执行空间解相关,所述数据压缩单元包括:处理逻辑,被配置为通过以下操作将所述输入数据值块重新组织成g×h数据值块:(i)将所述输入块的行中的每一行均划分为多个分段,其中每个分段均包括g个数据值,以及(ii)将所述分段布置成h个行以形成g×h数据值块,其中所述输入数据值块中的列数j是g的倍数,并且其中j×k=g×h;空间解相关模块,被配置为对所述g×h数据值块执行空间解相关,以确定经空间解相关的数据值,所述g×h数据块的h个行按顺序被处理,使得针对所述输入数据值块的每一行,所述行的第一分段在比所述行的第二分段被处理的迭代更早的迭代中被处理,其中所述第一分段在所述行中位于所述第二分段右侧,并且其中来自所述第一分段的至少一个值被保存以在所述第二分段的所述空间解相关中使用;以及熵编码模块,其中所述空间解相关模块被配置为向所述熵编码模块提供所述经空间解相关的数据值以用于熵编码。5.根据权利要求4所述的数据压缩单元,其中所述处理逻辑是所述空间解相关模块的一部分。6.根据权利要求4所述的数据压缩单元,其中所述处理逻辑在所述空间解相关模块的外部。7.根据权利要求4至6中任一项所述的数据压缩单元,其中g=h=8,使得所述g×h数据值块是8×8数据值块。8.根据权利要求7所述的数据压缩单元,其中j=16并且k=4,使得所述处理逻辑被配置为将所述输入块的所述行中的每一行均划分为两个分段。9.根据权利要求7所述的数据压缩单元,其中j=32并且k=2,使得所述处理逻辑被配置为将所述输入块的所述行中的每一行均划分为四个分段。10.根据权利要求4至9中任一项所述的数据压缩单元,其中所述空间解相关模块被配置为输出所述经空间解相关的数据值。11.根据权利要求4至10中任一项所述的数据压缩单元,其中所述空间解相关模块还被配置为在所述空间解相关之后、但是在向所述熵编码模块提供所述经空间解相关的数据值之前重新映射所述数据值,使得对经重新映射的所述数据值执行所述熵编码。12.根据权利要求11所述的数据压缩单元,其中经重新映射的所述数据值是无符号的,具有偏向零的分布。13.一种数据解压缩方法,包括对g×h输入数据值块执行空间重新相关,并且输出经空间重新相关的j×k输出数据值块,其中所述输出数据值块中的列数j是g的倍数,其中j×k=g×h,并且其中j≠g,所述方法包括:从已经对所述输入数据块的数据值应用了熵解码的熵解码模块接收所述输入数据块的所述数据值;对所述g×h输入数据值块执行空间重新相关,其中所述g×h输入数据值块...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。