Estudo de compactação do WebP

Introdução

Fazemos uma avaliação comparativa da compactação de imagens WebP e JPEG com base no novo codificador que lançamos em libwebp. O objetivo é realizar um conjunto de experimentos fáceis de repetir usando ferramentas disponíveis publicamente e comparar a compactação de imagem alcançada por WebP e JPEG.

Nosso estudo comparativo de WebP anterior se concentrou na avaliação de um grande número de imagens e foi realizado em fontes JPEG que foram rastreadas na Web. JPEG é um formato de compactação com perda e introduz artefatos de compactação na origem. Além disso, usamos inicialmente a taxa de pico sinal-ruído, ou PSNR, como uma métrica de qualidade. A PSNR tem algumas desvantagens quando usada como métrica de qualidade de imagens. Com base no feedback da comunidade, realizamos os experimentos em imagens PNG, incluindo imagens disponíveis em alguns pacotes de testes padrão. Neste estudo, usamos a Similaridade estrutural (SSIM, na sigla em inglês) como métrica de qualidade. O SSIM é considerado uma métrica de qualidade visual melhor.

Metodologia

Descrevemos dois tipos de avaliações. No primeiro caso, estudamos a compressão adicional alcançada pelo WebP no mesmo nível de qualidade de JPEG. Em particular, geramos imagens WebP da mesma qualidade (de acordo com o índice SSIM) que as imagens JPEG e, em seguida, comparamos os tamanhos de arquivo das imagens WebP e JPEG. No segundo caso, analisamos os gráficos SSIM em comparação com bits por pixel (bpp) para WebP e JPEG. Esses gráficos mostram a compensação de distorção de taxa para WebP e JPEG.

Os conjuntos de dados dos experimentos consistem em imagens PNG. Essas imagens foram recebidas de pacotes de imagens de teste padrão acessíveis publicamente, bem como de uma grande coleção de imagens PNG rastreadas na Web.

Cada experimento consiste na execução de um conjunto de comandos. Somente ferramentas de linha de comando disponíveis publicamente são usadas para manter os experimentos razoavelmente reprodutíveis para outras pessoas. As ferramentas de linha de comando usadas nesse experimento são:

  • identify e convert são ferramentas de linha de comando que fazem parte do ImageMagick. Usamos a versão 6.5.7 para esta análise. Usamos convert para fazer a conversão entre os formatos PNG e PPM. Usamos identify para extrair as informações de largura e altura de uma imagem.

  • cwebp e dwebp são ferramentas de linha de comando que fazem parte da biblioteca libwebp que lançamos no primeiro trimestre de 2011. Usamos a versão 0.1.2 da biblioteca. Usamos cwebp e dwebp para codificar e decodificar as imagens WebP. Usamos os parâmetros de codificação e decodificação padrão dessas ferramentas.

  • cjpeg e djpeg são ferramentas de linha de comando que fazem parte da biblioteca libjpeg. Usamos a versão 6b da biblioteca. Usamos cjpeg e djpeg para codificar e decodificar uma imagem JPEG. Usamos cjpeg com a sinalização -optimize para otimizar o tamanho do arquivo. Definimos todos os outros parâmetros com os valores padrão.

A qualidade de uma imagem foi medida usando SSIM. Conforme observado anteriormente, o SSIM geralmente é aceito como uma métrica de qualidade melhor do que o PSNR. Para a computação do índice SSIM, usamos uma implementação publicamente disponível em C++. O leitor pode fazer o download dos scripts Python usados nos experimentos do repositório de código para referência.

Conjuntos de dados de imagem

Escolhemos os conjuntos de dados para avaliar as coleções de imagens de teste padrão, bem como em um grande conjunto de imagens. Veja a seguir a lista dos conjuntos de dados usados nos experimentos.

  1. Lenna:imagem amplamente usada do Lenna (512 x 512 pixels).

  2. Kodak:24 imagens do pacote de imagens de cores verdadeiras da Kodak (em inglês).

  3. Tecnick: 100 imagens da coleção disponível em Tecnick.com. Usamos as imagens em cores RGB, com 100 tamanho original.

  4. Image_crawl: para testar um grande número de imagens, coletamos uma amostra aleatória de imagens PNG do banco de dados de rastreamento da Web da Pesquisa de imagens Google. A maioria das imagens PNG rastreadas são ícones, gráficos, tabelas, documentos digitalizados etc. No entanto, a maioria das imagens nas coleções de teste padrão são como fotografias, em vez de imagens geradas por computador. Para tornar esse conjunto de dados semelhante em natureza aos pacotes de teste padrão, executamos um algoritmo de detecção facial sobre essas imagens PNG e consideramos apenas as imagens (cerca de 11.000) para este experimento, que foram aprovadas nesse teste de detecção.

Experimento 1: WebP x JPEG com índice SSIM igual

Neste experimento, geramos imagens JPEG e WebP com valores de SSIM comparáveis e medimos a proporção dos tamanhos de arquivo. As etapas do experimento são as seguintes:

  1. Compacte a imagem PNG de origem para JPEG com um parâmetro de qualidade Q fixo e registre o SSIM entre a imagem PNG de origem e a imagem JPEG compactada.

  2. Compacte a mesma imagem de origem para WebP com um parâmetro de qualidade que atinja o SSIM registrado acima da maneira mais próxima possível.

Executamos as duas etapas acima em todas as imagens em um conjunto de dados e, em seguida, medimos o tamanho médio do arquivo e o SSIM para imagens JPEG e WebP.

As tabelas a seguir mostram os resultados desse experimento para três valores diferentes (50, 75 e 95) do parâmetro de qualidade JPEG Q. Os parâmetros de qualidade 50 e 95 representam a compactação de imagem em taxas de bits baixas e altas, respectivamente. Também incluímos o parâmetro de qualidade JPEG 75, já que ele é o nível de qualidade geralmente recomendado para imagens JPEG.

Tabela 1: tamanho médio do arquivo para WebP e JPEG do mesmo índice SSIM correspondente a JPEG Q=50.

Lena Kodak Tecnik Image_crawl
WebP: tamanho médio de arquivo
(SSIM médio)
17,4 KB
(0,841)
31,0 KB
(0,898)
92,4 KB
(0,917)
6,5 KB
(0,901)
JPEG: tamanho médio de arquivo
(SSIM médio)
23,5 KB
(0,840)
42,7 KB
(0,897)
124,6 KB
(0,916)
9,9 KB
(0,899)
Proporção do tamanho do arquivo WebP para JPEG 0.74 0,72 0.74 0.66

Tabela 2: tamanho médio do arquivo para WebP e JPEG para o mesmo índice SSIM correspondente a JPEG Q=75.

Lena Kodak Tecnik Image_crawl
WebP: tamanho médio de arquivo
(SSIM médio)
26,7 KB
(0,864)
46,5 KB
(0,932)
139,0 KB
(0,939)
9,9 KB
(0,930)
JPEG: tamanho médio de arquivo
(SSIM médio)
37,0 KB
(0,863)
66,0 KB
(0,931)
191,0 KB
(0,938)
14,4 KB
(0,929)
Proporção do tamanho do arquivo WebP para JPEG 0,72 0,70 0.73 0,69

Tabela 3: tamanho médio do arquivo para WebP e JPEG do mesmo índice SSIM correspondente a JPEG Q=95

Lena Kodak Tecnik Image_crawl
WebP: tamanho médio de arquivo
(SSIM médio)
74,3 KB
(0,910)
118,0 KB
(0,978)
356,0 KB
(0,970)
23,4 KB
(0,969)
JPEG: tamanho médio de arquivo
(SSIM médio)
104 KB
(0,907)
162 KB
(0,976)
492 KB
(0,970)
31,3 KB
(0,968)
Proporção do tamanho do arquivo WebP para JPEG 0.71 0.73 0,72 0,75

Nas tabelas acima, podemos observar que o WebP oferece ganhos de compactação adicionais de 25% a 34% em comparação com o JPEG com índice SSIM igual ou um pouco melhor.

Experimento 2: gráficos SSIM x BPP para WebP e JPEG

Estudamos a compensação de distorção de taxa de JPEG e WebP. Em especial, estudamos os gráficos SSIM em comparação com bits por pixel (bpp) para JPEG e WebP. Compactamos a imagem PNG de origem para JPEG e WebP usando todos os valores de qualidade possíveis (0 a 100). Em seguida, para cada valor de qualidade, traçamos o SSIM e bpp alcançados para JPEG e WebP. As figuras a seguir mostram esses gráficos de SSIM em comparação com bpp para as três imagens escolhidas dos três conjuntos de dados públicos que usamos.

Figura 1: SSIM x BPP para Lenna

ssim x bpp para Lenna

Figura 2: SSIM x BPP para kodim19.png do conjunto de dados da Kodak

ssim x bpp no Kodim19

Figura 3: SSIM x BPP para RGB_OR_1200x1200_061.png do conjunto de dados Tecnick

ssim x bpp para RGB_OR_1200x1200

Além disso, estudamos o comportamento médio do gráfico de SSIM em comparação com bpp para os conjuntos de dados Kodak e Tecnick. Para representar o comportamento médio, compactamos todas as imagens em um conjunto de dados usando WebP e JPEG com 100 valores de qualidade diferentes. Em seguida, plotamos a média de SSIM e bpp para cada valor de qualidade. O conjunto de dados de rastreamento de imagens consiste em imagens heterogêneas que não se adaptam a essa agregação de dados. Os gráficos a seguir mostram o comportamento médio de SSIM e bpp para os conjuntos de dados da Kodak e Tecnick, respectivamente.

Figura 4: SSIM x BPP para o conjunto de dados da Kodak

ssim x bpp para Kodak

Figura 5: SSIM x BPP para o conjunto de dados Tecnick

ssim x bpp para o conjunto de dados do Tecnick

De modo geral, nos gráficos acima, podemos observar que o WebP exige consistentemente menos bits por pixel do que o JPEG para alcançar o mesmo índice SSIM.

Conclusão

O estudo avaliou a compressão do WebP em comparação com o JPEG. Observamos que o tamanho médio do arquivo WebP é de 25% a 34% menor em comparação com o tamanho de arquivo JPEG com índice SSIM equivalente. Os gráficos de SSIM x bpp mostraram que o WebP exige menos bits por pixel de modo consistente do que JPEG para o mesmo índice SSIM. Esses resultados indicam que o WebP pode oferecer melhorias de compactação significativas em relação ao JPEG.


1 Huynh-Thu, Q. Ghanbari, M. (2008). "Escopo da validade da PSNR na avaliação de qualidade de imagens/vídeos". Eletrônicos 44: 800-801.doi:10.1049/el:20080522.

2 Z. Wang, A. C. Bovik, H. R. Sheikh e E. P. Simoncelli, "Image Quality Assessment: From error Measurement to structural similarity", Image Processing, IEEE Transaction, Volume 13, Issue 4, pp. 600-612, 2004.