Acacia - a tool for automatially tuning WebP and JPEG compression

36 views
Skip to first unread message

John Thomson

unread,
Oct 18, 2016, 7:24:19 AM10/18/16
to WebP Discussion
Hello all,

I hope this will of be interest to some on this list. 
Today we're releasing Acacia - a tool for automatically tuning WebP and JPEG compression. 
The tool is free and open source and accompanies a paper published in ACM Multimedia this week. 

What does it do?

Acacia uses predictive modelling to tune compression aggression for new uncompressed images by allowing users to target quality (expressed in SSIM or PSNR) or file size. 

This is similar to what the '-pass' parameter does on cwebp, except Acacia does not compress multiple times, and thus is much faster (and energy efficient). Instead it uses predictive modelling select compression aggression.

Why should I care?

If you are compressing a single image on a desktop PC, the cost of the 'pass' option is incidental. We include a GUI for single image processing, but this is mostly for demonstration.

However, if processing a large number of images, or a stream of images on something like a cloud server, compression time and energy efficiency matter. Similarly, computation has an energy cost on battery powered devices.

The tool is available on Github https://github.com/johndthomson/acacia.


John


Pascal Massimino

unread,
Oct 18, 2016, 10:00:00 AM10/18/16
to WebP Discussion
Hi John,

your project looks very interesting and ad-hoc! Thanks for the heads-up.

I tried running 'acacia', but got an Illegal Instruction in featureextractor.cpp, error because my desktop wasn't AVX2-aware.
I'd recommend trying to detect AVX2 support at  the beginning of the program and printing an error message if AVX2 isn't supported.
Or, maybe having a (slow) plain-C variant of featureextractor.cpp ?

hope it helps,
skal/




John


--
You received this message because you are subscribed to the Google Groups "WebP Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to webp-discuss+unsubscribe@webmproject.org.
To post to this group, send email to webp-d...@webmproject.org.
Visit this group at https://groups.google.com/a/webmproject.org/group/webp-discuss/.
For more options, visit https://groups.google.com/a/webmproject.org/d/optout.

john.t...@gmail.com

unread,
Oct 18, 2016, 12:46:33 PM10/18/16
to WebP Discussion

On Tuesday, October 18, 2016 at 3:00:00 PM UTC+1, skal wrote:
Hi John,

On Tue, Oct 18, 2016 at 1:22 PM, John Thomson <john.t...@gmail.com> wrote:
Hello all,

I hope this will of be interest to some on this list. 
Today we're releasing Acacia - a tool for automatically tuning WebP and JPEG compression. 
The tool is free and open source and accompanies a paper published in ACM Multimedia this week. 

What does it do?

Acacia uses predictive modelling to tune compression aggression for new uncompressed images by allowing users to target quality (expressed in SSIM or PSNR) or file size. 

This is similar to what the '-pass' parameter does on cwebp, except Acacia does not compress multiple times, and thus is much faster (and energy efficient). Instead it uses predictive modelling select compression aggression.

Why should I care?

If you are compressing a single image on a desktop PC, the cost of the 'pass' option is incidental. We include a GUI for single image processing, but this is mostly for demonstration.

However, if processing a large number of images, or a stream of images on something like a cloud server, compression time and energy efficiency matter. Similarly, computation has an energy cost on battery powered devices.

The tool is available on Github https://github.com/johndthomson/acacia.


your project looks very interesting and ad-hoc! Thanks for the heads-up.

I tried running 'acacia', but got an Illegal Instruction in featureextractor.cpp, error because my desktop wasn't AVX2-aware.
I'd recommend trying to detect AVX2 support at  the beginning of the program and printing an error message if AVX2 isn't supported.
Or, maybe having a (slow) plain-C variant of featureextractor.cpp ?

hope it helps,
skal/

Ah, yes we should include this, thanks. At the moment it only works on processors which support AVX2. This is because the core feature extraction is written in vector instructions to give it the speed we need.  

We are planning to update with a C version to give the basic functionality for all platforms. Going to Neon is fairly straightforward too. 

John
Reply all
Reply to author
Forward
0 new messages