Introducing Jpegli: A New JPEG Coding Library
https://opensource.googleblog.com/2024/04/introducing-jpegli-new-jpeg-coding-library.html [opensource.googleblog.com]
2024-04-03 19:55
tags:
compression
graphics
library
release
To improve on this, we are introducing Jpegli, an advanced JPEG coding library that maintains high backward compatibility while offering enhanced capabilities and a 35% compression ratio improvement at high quality compression settings. Jpegli is a new JPEG coding library that is designed to be faster, more efficient, and more visually pleasing than traditional JPEG.
source: HN
Huffman Codes – How Do They Work?
https://two-wrongs.com/huffman-codes-how-do-they-work [two-wrongs.com]
2024-03-11 07:50
tags:
compression
intro-programming
Supercharge compression efficiency with shared dictionaries
https://developer.chrome.com/blog/shared-dictionary-compression [developer.chrome.com]
2024-03-06 18:50
tags:
browser
compression
development
web
Shared dictionaries can supplement Brotli and ZStandard compression to deliver substantially higher compression ratios for websites that frequently ship updated code, and can—in some cases—deliver 90% or better compression ratios. This post goes into more detail on how shared dictionaries work, and how you can register for the origin trials to use them for Brotli and ZStandard on your website.
source: HN
The WebP 0day
https://blog.isosceles.com/the-webp-0day/ [blog.isosceles.com]
2023-09-21 20:29
tags:
compression
exploit
format
fuzzing
programming
security
This means that someone, somewhere, had been caught using an exploit for this vulnerability. But who discovered the vulnerability and how was it being used? How does the vulnerability work? Why wasn’t it discovered earlier? And what sort of impact does an exploit like this have?
There are still a lot of details that are missing, but this post attempts to explain what we know about the unusual circumstances of this bug, and provides a new technical analysis and proof-of-concept trigger for CVE-2023-4863 (“the WebP 0day“).
Exploiting aCropalypse: Recovering Truncated PNGs
https://www.da.vidbuchanan.co.uk/blog/exploiting-acropalypse.html [www.da.vidbuchanan.co.uk]
2023-03-18 19:40
tags:
android
compression
exploit
format
graphics
opsec
security
The Unreasonable Effectiveness of JPEG: A Signal Processing Approach
https://www.youtube.com/watch?v=0me3guauqOU [www.youtube.com]
2022-05-08 03:26
tags:
compression
compsci
graphics
math
video
The JPEG algorithm is rather complex and in this video, we break down the core parts of the algorithm, specifically color spaces, YCbCr, chroma subsampling, the discrete cosine transform, quantization, and lossless encoding. The majority of the focus is on the mathematical and signal processing insights that lead to advancements in image compression and the big themes in compression as a whole that we can take away from it.
Micro-Optimizing .tar.gz Archives by Changing File Order
https://justinblank.com/experiments/optimizingtar.html [justinblank.com]
2021-01-20 06:50
tags:
benchmark
compression
perf
storage
A few weeks ago, I was doing something with a sizeable .tar.gz file, and wondered how the order of files affected the process. I’m not that knowledgable about compression, but I know that gzip uses a sliding window in which it looks for opportunities to compress repeating chunks of text. If you give it highly repetitive text, it does well, if you give it random data, it will probably give you a bigger file than when you started. So reordering files seems like it could matter.
source: danluu
Bzip2 And The Cve That Wasn’t
https://gnu.wildebeest.org/blog/mjw/2019/08/02/bzip2-and-the-cve-that-wasnt/ [gnu.wildebeest.org]
2019-08-13 14:05
tags:
bugfix
c
compression
development
fuzzing
programming
security
Compiling with the GCC sanitizers and then fuzzing the resulting binaries might find real bugs. But not all such bugs are security issues. When a CVE is filed there is some pressure to treat such an issue with urgency and push out a fix as soon as possible. But taking your time and making sure an issue can be replicated/exploited without the binary being instrumented by the sanitizer is often better.
I don’t think anything went wrong here, but some interesting details.
source: L
clamav: denial of service through "better zip bomb"
https://www.openwall.com/lists/oss-security/2019/08/06/3 [www.openwall.com]
2019-08-06 16:43
tags:
bugfix
compression
security
Recently David Fifield presented a new variant of a ZIP bomb where by using overlapping segments he was able to achieve very high compression ratios (42kb->5GB, 10MB->281TB).
However David Fifield commented in the bug report [4] that the fix is incomplete, by using some slight variations of his methods he could bypass the fix.
This shouldn’t be anything new, but... oops. Plus some commentary about age browsing, etc.
source: L
How to make compressed file quines, step by step
https://blog.matthewbarber.io//2019/07/22/how-to-make-compressed-file-quines.html [blog.matthewbarber.io]
2019-07-27 16:22
tags:
compression
format
programming
Much of the credit goes to folks much smarter than myself (they will be introduced); this tutorial is meant to curate previous work and literature as much as it is for myself to educate you. The goal here is to allow for any curious, technically-minded newcomer to make sense of all the concepts involved in creating compression quines.
source: L
A better zip bomb
https://www.bamsoftware.com/hacks/zipbomb/ [www.bamsoftware.com]
2019-07-04 21:05
tags:
compression
format
This article shows how to construct a non-recursive zip bomb that achieves a high compression ratio by overlapping files inside the zip container. “Non-recursive” means that it does not rely on a decompressor’s recursively unpacking zip files nested within zip files: it expands fully after a single round of decompression. The output size increases quadratically in the input size, reaching a compression ratio of over 28 million (10 MB → 281 TB) at the limits of the zip format. Even greater expansion is possible using 64-bit extensions. The construction uses only the most common compression algorithm, DEFLATE, and is compatible with most zip parsers.
source: HN
What is WofCompressedData?
https://devblogs.microsoft.com/oldnewthing/20190618-00/?p=102597 [devblogs.microsoft.com]
2019-06-18 23:12
tags:
compression
fs
storage
systems
windows
The documentation for wofapi.h says merely “This header is used by Data Access and Storage.” For more information, it refers you to another web page that contains no additional information. WOF stands for Windows Overlay Filter, which is a nice name that doesn’t really tell you much about what it does or what it’s for.
Changing the native NTFS file compression would be a disk format breaking change, which is not something taken lightly. Doing it as a filter provides much more flexibility. The downside is that if you mount the volume on a system that doesn’t support the Windows Overlay Filter, all you see is an empty file. Fortunately, WOF is used only for system-installed files, and if you are mounting the volume onto another system, it’s probably for data recovery purposes, so you’re interested in user data, not system files.
Software-defined far memory in warehouse scale computers
https://blog.acolyer.org/2019/05/22/sw-far-memory/ [blog.acolyer.org]
2019-05-22 21:24
tags:
compression
malloc
paper
perf
systems
Unraveling the JPEG
https://parametric.press/issue-01/unraveling-the-jpeg/ [parametric.press]
2019-05-02 01:42
tags:
best
compression
format
graphics
interactive
visualization
JPEG images are everywhere in our digital lives, but behind the veil of familiarity lie algorithms that remove details that are imperceptible to the human eye. This produces the highest visual quality with the smallest file size—but what does that look like? Let’s see what our eyes can’t see!
This article is about how to decode a JPEG image. In other words, it’s about what it takes to convert the compressed data stored on your computer to the image that appears on the screen. It’s worth learning about not just because it’s important to understand the technology we all use everyday, but also because, as we unravel the layers of compression, we learn a bit about perception and vision, and about what details our eyes are most sensitive to. It’s also just a lot of fun to play with images this way.
Very cool.
source: L
Zstandard v1.4.0
https://github.com/facebook/zstd/releases/tag/v1.4.0 [github.com]
2019-04-17 00:50
tags:
compression
library
release
The main focus of the v1.4.0 release is the stabilization of the advanced API.
Zstd’s fastest compression level just got faster! Thanks to ideas from Intel’s igzip and @gbtucker, we’ve made level 1, zstd’s fastest strategy, 6-8% faster in most scenarios.
source: HN
Modern LZ Compression
https://glinscott.github.io/lz/index.html [glinscott.github.io]
2019-02-03 18:08
tags:
compression
compsci
cxx
programming
This article walks through the components of a modern LZ compressor.
LZ compression has been around for a long time, but there are still major improvements being made. The deflate algorithm is perhaps the most widely used, implemented initially in PKZIP, and these days finding broad usage in gzip. Modern incarnations are much more powerful, and use a wide array of new tricks. Two examples of the next generation are zstd and lzma. For a comprehensive overview of open source LZ compressors, check out lzbench.
source: L
One-bit catastrophe
https://semidoc.github.io/lagarde-catastrophe [semidoc.github.io]
2019-01-23 00:02
tags:
compression
math
paper
Imagine you compressed a file using your favorite compression algorithm, but you realize that there was a typo in the file. You then correct it, adding a single bit to the original file.
Compress it again and you get a much larger compressed file… for just a one-bit difference! Much compression algorithms do not have this strange behavior, but for LZ’78, one of the most famous of them, this surprising scenario might well happen. This is what we will overview in this post.
source: L
A look at VDO, the new Linux compression layer
https://www.redhat.com/de/blog/look-vdo-new-linux-compression-layer [www.redhat.com]
2018-04-19 01:32
tags:
compression
linux
release
storage
Now with Virtual Data Optimizer (VDO), all required pieces for a transparent compression/deduplication layer are available in the just-released Red Hat Enterprise Linux 7.5. With this technology, it is possible to trade CPU/RAM resources for disk space.
Advertising, but of interest.
source: HN
An ode to pack: gzip’s forgotten decompressor
http://www.vidarholen.net/contents/blog/?p=691 [www.vidarholen.net]
2017-10-23 19:46
tags:
compression
programming
retro
swtools
Another even more obscure tool it could replace was compress‘s own predecessor, pack. This rather loosely defined collection of only partially compatible formats is why compress had to use a capital Z in its extension. pack came first, and offered straight Huffman coding with a .z extension.
source: L
Faster Base64 Encoding and Decoding Using AVX2 Instructions
https://arxiv.org/abs/1704.00605 [arxiv.org]
2017-08-31 17:26
tags:
compression
cpu
networking
paper
pdf
perf
programming
We estimate that billions of base64 messages are decoded every day. We are motivated to improve the efficiency of base64 encoding and decoding. Compared to state-of-the-art implementations, we multiply the speeds of both the encoding (~10x) and the decoding (~7x). We achieve these good results by using the single-instruction-multiple-data (SIMD) instructions available on recent Intel processors (AVX2).