Hacker News new | ask | show | jobs
by mattnewton 3252 days ago
Maybe "The software currently requires an AVX2 and FMA capable CPU, e.g. Haswell." holds the secret? Some kind of experimental test bed for using CPU vector instructions to speed up compression/decompression?

Disclaimer: I have no idea what I am talking about. For all I know possible use of these instructions is already a feature of HEIF and that statement is irrelevant.

2 comments

http://www.libjpeg-turbo.org/ uses some CPU vectorization features already. (If you're using Linux, most likely you're already using it since most Linux distros switched over a long time ago).
Yep. Use of AVX2 and so forth a pretty standard thing to do to get decent performance for video/image encoding and decoding.

Worth noting: Skylake with Integrate Graphics includes an x265 encoder and decoder. If that can't be adapted to HEIF, that's a huge win for the format.

If you're interested in this kind of thing, dc_predictor.cc might be fun to look at. It computes the predictors in parallel (rather than the usual 'do the same thing to 32 pixels') because here pixels depend on causal neighbor pixels.