Releases: wolfpld/vv
vv 3.1
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.
vv 3.0.1
vv 3.0
Color management
This release introduces proper handling of color profiles embedded in image files. This is an important feature in today's world where things are no longer exclusively sRGB. Color management is implemented in this release for OpenEXR, JPEG XL, HEIF, and AVIF images.
Image type | Before | After |
---|---|---|
EXR | ||
EXR | ||
AVIF |
High dynamic range
The HDR tone mapping pipeline previously available for OpenEXR images has been generalized for use with other image types that can carry HDR data. HDR processing currently supports OpenEXR, HEIF, AVIF, JPEG XL, and RGBE images.
Image type | Before | After |
---|---|---|
AVIF | ||
AVIF | ||
JPEG XL | ||
JPEG XL |
Animation support
Added playback of animations contained in WebP images. This is generally available on all terminals with the text-only fallback mode. Animation playback via the Kitty graphics protocol has very limited support in terminal emulators at the moment, but is also available. Images displayed via the Kitty protocol will continue to animate even after vv has stopped running, as shown in the video below.