From 40a84d9507ad6219e010345a24c58ff183a0867b Mon Sep 17 00:00:00 2001 From: Pascal Seitz Date: Mon, 26 Jul 2021 14:37:10 +0100 Subject: [PATCH] add comments on compression --- fastfield_codecs/src/multilinearinterpol.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/fastfield_codecs/src/multilinearinterpol.rs b/fastfield_codecs/src/multilinearinterpol.rs index 2a612375aa..1be40ea35f 100644 --- a/fastfield_codecs/src/multilinearinterpol.rs +++ b/fastfield_codecs/src/multilinearinterpol.rs @@ -1,3 +1,17 @@ +/*! + +MultiLinearInterpol compressor uses linear interpolation to guess a values and stores the offset, but in blocks of 512. + +With a CHUNK_SIZE of 512 and 29 byte metadata per block, we get a overhead for metadata of 232 / 512 = 0,45 bits per element. +The additional space required per element in a block is the the maximum deviation of the linear interpolation estimation function. + +E.g. if the maximum deviation of an element is 12, all elements cost 4bits. + +Size per block: +Num Elements * Maximum Deviation from Interpolation + 29 Byte Metadata + +*/ + use crate::FastFieldCodecReader; use crate::FastFieldCodecSerializer; use crate::FastFieldDataAccess;