I'm confused by the README. It makes references to YouTube video, but also "lossless video".
Is this about recompressing existing H.264[1] videos (like downloaded from YouTube) losslessly, or is it about making new videos from a source losslessly? The former reminds me of JPEG XL's ability to re-compress the DCT on old JPEGs, but even as you get better compression, you still don't have a lossless image.
[1] To be fair, H.264 can be lossless in the first place, but YouTube does not serve up such files.
Author here. Totally agree that H.264 can be lossless. Generally its lossy. My idea(which I am still working out) is to compress the difference of frames using a rational bloom filter. I previously posted here about using conditional bloom filter that rely on rational k. The idea was to use different values of k based on whether the url was more likely to be malicious than not. This results in a lower fp rate for the same filter size when compared to integer k. I then saw this paper[https://arxiv.org/html/2502.02193v2] was posted recently which describes an almost identical approach(theirs is much nicer). I will do much more rigorous testing as my current setup is a bit sloppy but I hope it illustrates the idea.
So it sounds like the use of rational Bloom filters here is just to get a better compression ratio, but the basic technique could be used with classic Bloom filters—is that right? Do you know how much you gain in space savings from using rational Bloom filters? It’s not obvious to me how much of a gain it would be.
I think you might be able to compress I and P frames somewhat descent, this way. But you only seem to address spatial domain, except for deltas(?) Or do you have some way to apply bloom filters to motion estimation as well?
The introduction seems quite clear on it being an alternative to H.264 and friends:
Traditional video codecs like H.264 and H.265 achieve impressive compression by discarding "imperceptible" visual information. But what if we could guarantee perfect reconstruction while still achieving meaningful compression? This project explores an unconventional approach: repurposing Bloom filters—typically used for membership testing—as a lossless video compression mechanism.
Further down comes the explanation for why this scheme might possibly work:
Rather than compressing whole video frames, this system applies Bloom filter compression to frame differences. This capitalizes on temporal coherence—most pixels change little (or not at all) between consecutive frames, creating a sparse difference matrix ideal for this approach.
Of course, using delta-frame compression has been a common theme of many video codecs for ages now, and many like H.264 and H.265 use additional techniques like motion estimation[1] to reduce the information in the delta frame further before final entropy coding step[2][3].
As such, the best is probably to view this as an alternative to the entropy encoding in H.264 or similar.
[1]: https://en.wikipedia.org/wiki/Motion_estimation#Video_coding
[2]: https://en.wikipedia.org/wiki/Context-adaptive_variable-leng...
[3]: https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding#E...
I think it's safe to assume that the author is reencoding those YouTube samples there, so vp9/avc/av1 -> uncompressed -> compressed with this, and that the compression ratio is with respect to the uncompressed stream. Otherwise I think the README would sound quite a bit more enthusiastic :)
Yeah probably if they were writing a paper, encoding `.raw` files would have served them better (for being more convincing)