4 ms·
DCT is now replaced by Hadamard Transform which can be implemented by additions/subtractions and don't have the drift problem of DCT. HT was considered before D
by kappi 2y ago
DCT is now replaced by Hadamard Transform which can be implemented by additions/subtractions and don't have the drift problem of DCT. HT was considered before DCT, but during that time DCT was picked because of better perceptual quality. Later during H.264 standardization, HT replaced DCT and is now used in all video codecs instead of DCT.
- mbtwl 2y agoNope. X265/HEVC https://en.m.wikipedia.org/wiki/High_Efficiency_Video_Coding https://en.m.wikipedia.org/wiki/High_Efficiency_Video_Coding Also not true for X266/VVC.
- aidenn0 2y agoAV1 also uses DCT and DST, but not Hadamard.
- kappi 2y agocorrect, it is integer DCT. Lot of techniques adopted from the integer transform of H.264. That's what I meant, not the floating point DCT proposed in 70s.
- Sesse__ 2y agoThe big change is basically that we now typically specify exactly which integer approximation to the (real-valued, “ideal”) DCT to use; this means the decoder and encoder is much likely to fall out of sync. As a bonus, this means we can use a slightly worse but much faster approximation without catastrophes happening, and possibly also make it exactly invertible. https://fgiesen.wordpress.com/2013/11/04/bink-2-2-integer-dct-design-part-1/ https://fgiesen.wordpress.com/2013/11/04/bink-2-2-integer-dc... has a ton of technical information if you want to dive into it.
- aidenn0 2y agoInterestingly enough, JPEG XR used a form of the Hadamard Transformation, but JPEG XL (which is newer) uses DCT and Haar transforms. [edit] Combined with the information from sibling comments, it seems that the Hadamard transform was something used in standards developed in the '00s but not since.
- adgjlsfhk1 2y agoprobably because multiplication got really fast
- edflsafoiewq 2y agoJPEG XL supports lossless JPEG transcode, so it has to offer a superset of the features in JPEG.
- aidenn0 2y agoYes, but variable-blocksize DCT is definitely used in the lossy modes (not sure about lossless).
- edflsafoiewq 2y agoYeah, JPEG uses the DCT, so JPEG XL needs it too to be a superset.
- aidenn0 2y agoYes, but if the DCT were purely vestigial, then: 1. It wouldn't have support for DCTs not in JPEG. 2. It wouldn't use the DCT in its lossy-compression of photographic content if another transform was considered significantly better. Perhaps one could argue that they didn't want to add extra transforms, but they do use a modified Haar transform for e.g. synthetic content and alpha channels.
- lifthrasiir 2y agoThe squeeze transform used for extra progressive decoding is effectively a modified Haar transform.
- teleforce 2y agoThanks for the info, looking into Hadamard Matrices recently for wireless ECC and the fact it's being used in compression algorithm was oblivious to me. What is interesting is that the techniques that are being used in compression, communication and signal processing in general involved orthogonality and Nasir's master and PhD research thesis were in the area of Orthogonal Transform for Digital Signal Processing. Hadamard Transform can provide orthogonality but unlike DCT and DFT/FFT that are limited to real and complex respectively, Hadamard Transform is very versatile and can be used in real, complex, quaternion and also octonion numbering schemes that probably the latter are more suited for higher dimensions data and signal processing. Hadamard orthogonal codes has also been used as ECC in reliable space communication in both the Mariner and Voyager missions, for examples [1]. [1] On some applications of Hadamard matrices [PDF]: https://documents.uow.edu.au/~jennie/WEB/WEB05-10/2005_12.pdf https://documents.uow.edu.au/~jennie/WEB/WEB05-10/2005_12.pd...