Skip to content

vv 3.1

Latest
Compare
Choose a tag to compare
@wolfpld wolfpld released this 23 Dec 11:07
· 2 commits to master since this release
0f5d071

This release introduces a number of optimizations that take advantage of modern hardware capabilities. This includes multi-core processing and SIMD code in three variants:

  • SSE4.1 + FMA,
  • AVX2,
  • AVX512.

Note that FMA is typically provided together with AVX2, so the SSE4.1 code path won't be of much use to anyone (it's still needed to process the data if the number of pixels in the image is not divisible by two, which is an extreme edge case).

Since the x64 baseline only mandates SSE2 support, vv is now built with the -march=native option by default. This enables compiler-level support for all the SIMD features your CPU supports. It also makes the resulting executable less portable, which can be a problem in some use cases. You can use the MARCH_NATIVE CMake option to turn this off.

The optimizations make loading EXR, HEIF and AVIF files significantly faster. One of the test AVIF HDR image files that took 8+ seconds to load with vv 3.0 now loads in 0.8 seconds on my machine.

This release also introduces a new option, -w file.png, which saves the decoded image to a file instead of printing it to the screen.

obraz