3 ms·
Did they avoid the prohibitive licensing that left JPEG 2000 dead in the water?
by AceJohnny2 5y ago
Did they avoid the prohibitive licensing that left JPEG 2000 dead in the water?
- Markoff 5y agoshould be FOSS and loyalty free https://gitlab.com/wg1/jpeg-xl/-/blob/main/LICENSE https://gitlab.com/wg1/jpeg-xl/-/blob/main/LICENSE
- catach 5y agoThere's this MS patent though? https://www.theregister.com/2022/02/17/microsoft_ans_patent/ https://www.theregister.com/2022/02/17/microsoft_ans_patent/
- coldpie 5y agoThat license doesn't say anything about patents. This one does: https://gitlab.com/wg1/jpeg-xl/-/blob/main/PATENTS https://gitlab.com/wg1/jpeg-xl/-/blob/main/PATENTS and only says that patents owned by Google are covered. So it may be that other companies patent the technology. The information in the repository is not enough to decide whether JPEG XL is safe to use.
- astrange 5y agoJPEG2000 wasn't technically better enough; wavelets are too blurry and less efficient to decode. For some reason there was an epidemic of terrible codec designs for a decade or two, though it could've all been patent avoidance.
- rasz 5y agoSo bad its still industry standard in Cinema quality video codecs? Like the obfuscated jpeg2000 in RED codec.
- astrange 5y agoWho says they know what they're doing? DCI (how movies are sent to theaters) does use JPEG2000, but I think they just wanted something with 12-bit video and that's pretty rare in any codec. One advantage is if you want to decode the same picture at lower resolutions; JPEG can do this equivalent to nearest-neighbor, wavelets can do it equivalent to a better filter than that. But still not as good as just decoding and resizing down.
- AceJohnny2 5y agoWavelets were a great idea... except AFAIK we never figured out fast algorithms or hardware implementations to optimize processing them, the way we did with Fourier Transform and the FFT algorithm and IDCT blocks.
- brigade 5y agoA lifting implementation of a wavelet is pretty low complexity, iirc the CDF 9/7 used in JPEG2000 was effectively a 5-tap filter. Implementation-wise, the biggest issue is that approximately no one bothered optimizing their memory access patters for CPU caches with anywhere near the same attention FFTs got. Then unlike block-based codecs, you basically need to store 16-bit coefficients for an entire frame for 8-bit pixels, instead of per-block. But ultimately, DCTs make it way cheaper to encode similar but wrong details, where in wavelets details are effectively repeated across multiple highpass bands so the only cheap option is to not code detail.