是否有可能使用不同的压缩机,例如有损和无损的单个块?
在具有重要意义的场景中,您希望保持信号无损压缩甚至不压缩,但信号的其他部分也有损压缩以提高效率和空间。
例如,我们有:
我们要保留的导入zarr
z = zarr.zeros((32,32),chunks =(4,4))
重要区域是A(4:11,4:11)
,我们要无损地到达该区域,例如zlib
,接下来我们使用numcodecs中的quantize
进行有损。因此,对于遮罩内的有趣部分,我们将具有较高的精度;对于遮罩外的部分,我们将具有有损压缩;对于块级的单个阵列的不同部分,将具有两个不同的压缩器。
答案 0 :(得分:0)
目前无法实现。压缩程序接口将必须接收encode()
的坐标。然后,您可以实现一个压缩器,该压缩器将根据坐标决定丢失编码信息。由于压缩器对块进行操作,因此您必须选择块,使其与要更改保真度的边界对齐。
总的来说,我认为编写一个包装将不同保真度的多个zarr存储并在访问和写入时覆盖它们的包装将使您更轻松。