From what I can tell, it also isn't lossless: https://github.com/ross39/new_bloom_filter_repo/blob/main/vi...
This looks like it is not storing the diff for any pixel that had the mean of its r,g,b values change by less than 10, which means that if a pixel goes from pure blue (#00ff00) to pure red (#ff0000) in consecutive frames, it would decode as pure blue in both frames.
It'd be better to convert to HSL, and compute the distance from there.
HSL-distance preserves color similarity with higher fidelity than converting both pixels to greyscale as done in the shared link
That doesn’t address the issue at all. The issue is that discarding small changes in any color space is fundamentally lossy, so the algorithm isn’t lossless.
Well yes.. I agree.
But my comment was addressing parent's point that pure blue and pure red are currently considered close together since they share the same greyscale values.
You mean something like L*ab, right, not HSL? HSL is a pretty terrible approximation to human vision.