单阵列多压缩器

时间:2018-11-19 22:58:59

标签: zarr

是否有可能使用不同的压缩机,例如有损和无损的单个块?

在具有重要意义的场景中,您希望保持信号无损压缩甚至不压缩,但信号的其他部分也有损压缩以提高效率和空间。

例如,我们有:

  

导入zarr
  z = zarr.zeros((32,32),chunks =(4,4))

我们要保留的

重要区域是A(4:11,4:11),我们要无损地到达该区域,例如zlib,接下来我们使用numcodecs中的quantize进行有损。因此,对于遮罩内的有趣部分,我们将具有较高的精度;对于遮罩外的部分,我们将具有有损压缩;对于块级的单个阵列的不同部分,将具有两个不同的压缩器。

1 个答案:

答案 0 :(得分:0)

目前无法实现。压缩程序接口将必须接收encode()的坐标。然后,您可以实现一个压缩器,该压缩器将根据坐标决定丢失编码信息。由于压缩器对块进行操作,因此您必须选择块,使其与要更改保真度的边界对齐。

总的来说,我认为编写一个包装将不同保真度的多个zarr存储并在访问和写入时覆盖它们的包装将使您更轻松。