Decode Timing

Summary


Updated 2022-12-14 (history)

The decode timing was run on Chrome version 110 (one device used version 109) on five different sets of images. The images were chosen to have a close MS-SSIM score.
Note: There are two charts per device because the 8.1 megapixel libjpeg-turbo decode MP/s was making it difficult to read the other formats with only one chart.

Mac

The data below was run on a MacBook Pro (16-inch, 2021) with an Apple M1 Pro and 16 GB memory, running Chrome Version 110.0.5464.2 (Official Build) dev (arm64).
Chrome decode MP/s Mac. Chrome decode MP/s Mac.

Windows

The data below was run on an Acer Predator Helios 300 with an Intel i7-9750H, 16GB DDR4, running Chrome Version 110.0.5464.2 (Official Build) dev (64-bit).
Chrome decode MP/s Win. Chrome decode MP/s Win.

ASUS Chromebook C425

The data below was run on an ASUS Chromebook C425 with an Intel® Core™ m3-8100Y Processor 1.1 GHz (4M Cache, up to 3.4 GHz, 2 cores), running Chrome Version 110.0.5447.0 (Official Build) dev (64-bit).
Chrome decode MP/s C425. Chrome decode MP/s C425.

Galaxy S10e

The data below was run on a Galaxy S10e with a Qualcomm SM8150 Snapdragon 855 (7 nm), running Chrome Dev 110.0.5462.3.
Chrome decode MP/s S10e. Chrome decode MP/s S10e.

Pixel 5

The data below was run on a Pixel 5 with a Qualcomm SM7250 Snapdragon 765G 5G (7 nm), running Chrome Dev 110.0.5462.3.
Chrome decode MP/s Pixel5. Chrome decode MP/s Pixel5.

Pixel 3

The data below was run on a Pixel 3 with a Qualcomm SDM845 Snapdragon 845 (10 nm), running Chrome Beta 109.0.5414.44.
Chrome decode MP/s Pixel3. Chrome decode MP/s Pixel3.

Asus Chromebook C202XA

The data below was run on an ASUS Chromebook C202XA with a Mediatek MT8173c, running Chrome Version 110.0.5447.0 (Official Build) dev (32-bit).
Chrome decode MP/s C202XA. Chrome decode MP/s C202XA.

Notes


The script used to create these test pages is located here: create_image_decoder_web_page.py.

Running the Tests

The decode timing was run on five different sets of images encoded with various settings. You can run the decoder tests using the links below:
Note: In order to decode the JPEG XL files you need to enable the #enable-jxl in chrome://flags.
Start the test by clicking the Start Timing List button. After each individual cycle is run, the web page will output csv data to the edit box, so you can copy and paste the data. Each cycle will output 4 rows. The first row is the fetching time in milliseconds. The second row is the decoding time in milliseconds. The third row is the rendering time in milliseconds. The fourth row is the total time in milliseconds. The first column will list the extension of the encoded file. The second column will list the type of data contained in the row and the cycle count. The following columns will list the timing in milliseconds for each individual image.

Building the Tests

There are two versions of AVIF files decoded. The first is decoded using one thread and the second is decoded using two threads. Chrome version 93 added support to potentially use two threads to decode AVIF images, if they were encoded with more than one AV1 Tile. There are two versions of JPEG XL files decoded. The first is encoded with progressive decoding turned off (default) and the second is encoded with progressive decoding turned on.

Encoding Settings

For the 8.1 megapixel, 1 megapixel, 0.94 megapixel, and 0.4 megapixel test sets, we started with AVIF using encode speed 6 and picked the quality that was closest to an average of 0.95 bpp. Then we used the AVIF average MS-SSIM value to match the quality closest to the other image formats MS-SSIM average values.
Note: For JPEG XL and JPEG XL progressive 8.1 megapixel test sets, the JPEG XL decoder was causing a color issue with the decoded files, so we could not get valid MS-SSIM values, so for those files we picked the quality that was closest to an average 0.95 bpp.

For the 0.3 megapixel test sets, we started with AVIF using encode speed 6 and picked the quality that was closest to an average of 0.24 bpp. We choose this value as this is the quality that the encoded AVIF images looked visually similar to the original images. Then we used the AVIF average MS-SSIM value to match the quality closest to the other image formats MS-SSIM average values.

Encode Command Lines