1

是否可以有不同的压缩器,例如单个块的有损和无损?

在一个场景中,您有一个重要的掩码,您希望通过无损压缩或什至不压缩来保留信号,但为了效率和空间而让信号的其他部分进行有损压缩。

例如我们有:

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

我们想要保留的重要区域是A(4:11,4:11),我们想要无损的地方,例如zlib,然后我们使用quantizenumcodecs 的其余部分进行有损。因此,我们将对掩码内的有趣部分进行高精度处理,并对掩码外的部分进行有损压缩,并在块级别为单个数组的不同部分设置两个不同的压缩器。

4

1 回答 1

0

目前这是不可能的。压缩器接口必须接收encode(). 然后你可以实现一个压缩器,它决定根据坐标丢失编码信息。由于压缩器在块上运行,因此您必须选择块,使其与您想要更改保真度的边界对齐。

总体而言,我认为您只需编写一个包装器,该包装器将多个 zarr 存储组合在一起以获得不同的保真度,并将它们覆盖在访问和写入上。

于 2019-03-15T13:00:56.043 回答