- From: Chris Blume (ProgramMax) <programmax@gmail.com>
- Date: Mon, 13 Oct 2025 13:51:55 -0400
- To: "Portable Network Graphics (PNG) Working Group" <public-png@w3.org>
- Message-ID: <CAG3W2Ke4h2hy44yesM+y9pOquGipBNV7JdQcEni4hbaWsKcBDA@mail.gmail.com>
Here is my summary of it, given my current understanding: - There are several compressors built in for it to choose from. It falls back to Zstd. - You describe your data layout using Simple Data Description Language (SDDL) <https://openzl.org/api/c/graphs/sddl/> - You then train a plan using example files and your data layout (so it can understand the files). The training is where it decides how to rearrange the data and what compressor (compressors?) to use. - The plan is stored in the compressed file so the original file can be reconstructed. This leaves open the opportunity for better plan development later. Maybe a new feature is added to SDDL to indicate data relationships, for example. (This might already exist, I'm skimming.) I might fiddle around with it and see if/how OpenZL relates to PNGs. I don't think I can create a SDDL file to describe PNGs, because they already contain compressed data. I could perhaps describe all the rest like the chunks and their content. I am curious to see if it allows for future, undefined chunks. Specifically, "now skip over <chunk length> bytes". That said, there is an example to use OpenZL with BMP files. So perhaps I can compare OpenZL-compressed BMPs to PNGs and gain some insight. My big takeaways are: - Other than the IDAT chunk and a few other chunks, most PNG chunks are uncompressed. Most are also small so compressing them individually (so they're skippable when parsing) probably wouldn't provide benefit. I think any gains over PNG would be matched (given the skippability constraint) just by allowing that compressor within IDAT. - It is all basically just PNG's filtering. PNG filters attempt to tune the data to the compressor by finding similarities in the data (like a row of pixels being similar enough to the previous row). OpenZL seems to try to find similarities and rearrange the data. I'll investigate if it can understand things like pixel rows as far as similarities. That seems to be a bit of a higher level concept. On Tue, Oct 7, 2025 at 10:23 AM Chris Blume (ProgramMax) < programmax@gmail.com> wrote: > As part of our 5th Edition work, we're investigation options for better > compression. > > By pure chance, Meta just released OpenZL, a long with a blog post and > whitepaper yesterday: > > > https://engineering.fb.com/2025/10/06/developer-tools/openzl-open-source-format-aware-compression-framework/ > > I haven't read it yet. I'm sharing with others early. >
Received on Monday, 13 October 2025 17:52:11 UTC