WebP 압축 연구

소개

libwebp에서 출시한 새로운 인코더를 기반으로 WebP와 JPEG 이미지 압축을 비교 평가합니다. 목표는 공개적으로 사용 가능한 도구를 사용하여 쉽게 반복 가능한 일련의 실험을 실행하고 WebP 및 JPEG에서 달성한 이미지 압축을 비교하는 것입니다.

이전의 WebP에 관한 비교 연구는 다수의 이미지를 평가하는 데 중점을 두었으며 웹에서 크롤링된 JPEG 소스를 기반으로 진행되었습니다. JPEG는 손실(lossy) 압축 형식으로, 압축 아티팩트를 소스에 도입합니다. 또한 초기에는 품질 측정항목으로 PSNR(피크 신호 대 잡음비)을 사용했습니다. PSNR을 이미지 품질 측정항목으로 사용하면 몇 가지 단점이 있습니다. Google은 커뮤니티의 의견에 따라 몇 가지 표준 테스트 모음에서 사용할 수 있는 이미지를 포함한 PNG 이미지를 대상으로 실험을 진행합니다. 이 연구에서는 구조적 유사성(SSIM)을 품질 측정항목으로 사용합니다. SSIM은 더 나은 시각적 품질 측정항목으로 간주됩니다.

방법론

평가에는 두 가지 유형이 있습니다. 첫 번째 사례에서는 동일한 JPEG 품질 수준으로 WebP에서 달성한 추가 압축을 연구합니다. 특히, (SSIM 색인에 따라) JPEG 이미지와 동일한 품질의 WebP 이미지를 생성한 다음 WebP 및 JPEG 이미지의 파일 크기를 비교합니다. 두 번째 경우에는 WebP 및 JPEG의 SSIM과 픽셀당 비트 수 (bpp) 플롯을 분석합니다. 이 도표는 WebP와 JPEG의 속도 왜곡 절충을 보여줍니다.

실험용 데이터 세트는 PNG 이미지로 구성됩니다. 이러한 이미지는 공개적으로 액세스할 수 있는 표준 테스트 이미지 묶음과 웹에서 크롤링된 대규모 PNG 이미지 모음에서 가져왔습니다.

각 실험은 일련의 명령어를 실행하는 것으로 구성됩니다. 실험을 다른 사람이 합리적으로 재현할 수 있도록 하려면 공개적으로 사용 가능한 명령줄 도구만 사용됩니다. 이 실험에 사용된 명령줄 도구는 다음과 같습니다.

  • identifyconvertImageMagick의 일부인 명령줄 도구입니다. 이 분석에는 버전 6.5.7을 사용했습니다. PNG 형식과 PPM 형식 간에 변환하기 위해 convert를 사용했습니다. identify를 사용하여 이미지의 너비와 높이 정보를 추출했습니다.

  • cwebpdwebp는 2011년 1분기에 출시된 libwebp 라이브러리의 일부인 명령줄 도구입니다. 라이브러리 버전 0.1.2를 사용했습니다. WebP 이미지를 인코딩 및 디코딩하는 데 cwebpdwebp를 사용했습니다. Google에서는 이러한 도구의 기본 인코딩 및 디코딩 매개변수를 사용했습니다.

  • cjpegdjpeglibjpeg 라이브러리의 일부인 명령줄 도구입니다. 라이브러리 버전 6b를 사용했습니다. cjpegdjpeg를 사용하여 JPEG 이미지를 인코딩하고 디코딩했습니다. cjpeg-optimize 플래그와 함께 사용하여 파일 크기를 최적화했습니다. 다른 모든 매개변수는 모두 기본값으로 설정합니다.

이미지의 품질은 SSIM을 사용하여 측정되었습니다. 앞서 언급했듯이 SSIM은 일반적으로 PSNR보다 더 나은 품질 측정항목으로 간주됩니다. SSIM 색인 계산을 위해 C++로 공개적으로 사용 가능한 구현을 사용했습니다. 판독기는 실험에서 사용한 Python 스크립트를 참고용으로 코드 저장소에서 다운로드할 수 있습니다.

이미지 데이터 세트

표준 테스트 이미지 컬렉션과 대규모 이미지 세트를 평가하기 위해 데이터 세트를 선택했습니다. 다음은 실험에 사용된 데이터 세트 목록입니다.

  1. Lenna: 널리 사용되는 Lenna 이미지(512x512픽셀)입니다.

  2. Kodak: Kodak 트루 컬러 이미지 묶음의 이미지 24개

  3. Tecnick: Tecnick.com에서 수집한 이미지 100개. 원본 크기 RGB 색상 이미지 100개를 사용했습니다.

  4. Image_crawl: 많은 이미지를 테스트하기 위해 Google 이미지 검색 웹 크롤링 데이터베이스에서 PNG 이미지의 임의 샘플을 수집했습니다. 크롤링된 PNG 이미지의 대부분은 아이콘, 그래픽, 차트, 스캔한 문서 등입니다. 그러나 표준 테스트 컬렉션에 있는 대부분의 이미지는 컴퓨터에서 생성한 이미지가 아니라 사진과 같습니다. 본질적으로 이 데이터 세트를 표준 테스트 도구 모음과 유사하게 만들기 위해 PNG 이미지에 대해 얼굴 인식 알고리즘을 실행하고 이 실험에서 감지 테스트를 통과한 이미지 (약 11,000개)만 고려했습니다.

실험 1: Equal SSIM 인덱스에서의 WebP와 JPEG 비교

이 실험에서는 비슷한 SSIM 값으로 JPEG 및 WebP 이미지를 생성하고 파일 크기의 비율을 측정합니다. 실험 단계는 다음과 같습니다.

  1. 고정 품질 매개변수 Q를 사용하여 소스 PNG 이미지를 JPEG로 압축하고 소스 PNG 이미지와 압축된 JPEG 이미지 사이에 SSIM을 기록합니다.

  2. 위에 기록된 SSIM을 최대한 근접하게 달성하는 품질 매개변수를 사용하여 동일한 소스 이미지를 WebP로 압축합니다.

데이터 세트의 모든 이미지에 위의 두 단계를 실행한 다음 JPEG 및 WebP 이미지의 평균 파일 크기와 SSIM을 측정했습니다.

다음 표는 JPEG 품질 매개변수 Q의 세 가지 값 (50, 75, 95)에 대한 실험 결과를 보여줍니다. 품질 매개변수 50과 95는 각각 낮은 비트 전송률과 높은 비트 전송률에서의 이미지 압축을 나타냅니다. JPEG 품질 매개변수 75도 JPEG 이미지에 일반적으로 권장되는 품질 수준이므로 포함했습니다.

표 1: JPEG Q=50에 상응하는 동일한 SSIM 색인의 WebP 및 JPEG의 평균 파일 크기

레나 Kodak 테크닉 Image_crawl
WebP: 평균 파일 크기
(평균 SSIM)
17.4 KB
(0.841)
31.0 KB
(0.898)
92.4 KB
(0.917)
6.5 KB
(0.901)
JPEG: 평균 파일 크기
(평균 SSIM)
23.5 KB
(0.840)
42.7 KB
(0.897)
124.6 KB
(0.916)
9.9 KB
(0.899)
WebP 및 JPEG 파일 크기의 비율 0.74 720 0.74 0.66

표 2: JPEG Q=75에 상응하는 동일한 SSIM 색인의 WebP 및 JPEG의 평균 파일 크기

레나 Kodak 테크닉 Image_crawl
WebP: 평균 파일 크기
(평균 SSIM)
26.7 KB
(0.864)
46.5 KB
(0.932)
139.0 KB
(0.939)
9.9 KB
(0.930)
JPEG: 평균 파일 크기
(평균 SSIM)
37.0 KB
(0.863)
66.0 KB
(0.931)
191.0 KB
(0.938)
14.4 KB
(0.929)
WebP 및 JPEG 파일 크기의 비율 720 0.70 0.73 0.69

표 3: JPEG Q=95에 상응하는 동일한 SSIM 색인의 WebP 및 JPEG의 평균 파일 크기

레나 Kodak 테크닉 Image_crawl
WebP: 평균 파일 크기
(평균 SSIM)
74.3 KB
(0.910)
118.0 KB
(0.978)
356.0 KB
(0.970)
23.4 KB
(0.969)
JPEG: 평균 파일 크기
(평균 SSIM)
104 KB
(0.907)
162 KB
(0.976)
492 KB
(0.970)
31.3 KB
(0.968)
WebP 및 JPEG 파일 크기의 비율 0.71 0.73 720 0.75

위의 표에서 WebP는 동일하거나 약간 더 나은 SSIM 색인에서 JPEG에 비해 25%~34%의 압축 이득을 추가로 제공한다는 것을 확인할 수 있습니다.

실험 2: WebP 및 JPEG에 대한 SSIM과 BPP 도표 비교

우리는 JPEG와 WebP의 속도 왜곡 절충에 대해 연구했습니다. 특히 JPEG 및 WebP의 SSIM과 픽셀당 비트 (bpp) 플롯을 비교하여 살펴봅니다. 소스 PNG 이미지를 가져와 가능한 모든 (0~100) 품질 값을 사용하여 JPEG 및 WebP로 압축합니다. 그런 다음 각 품질 값에 관해 JPEG 및 WebP에 달성된 SSIM 및 bpp를 표시합니다. 다음 그림은 사용한 3개의 공개 데이터 세트 중에서 선택한 3개의 이미지의 SSIM과 bpp 플롯을 비교하여 보여줍니다.

그림 1: Lenna의 SSIM과 BPP의 비교

Lenna의 SIM 및 BPP

그림 2: Kodak 데이터 세트의 kodim19.png용 SSIM과 BPP

Kodim19의 SIM 및 bpp

그림 3: Tecnick 데이터 세트의 RGB_OR_1200x1200_061.png용 SSIM과 BPP

RGB_OR_1200x1200의 SIM 및 bpp

또한 Kodak 및 Tecnick 데이터 세트의 SSIM 및 bpp 플롯의 평균 동작을 연구했습니다. 평균 동작을 도식화하기 위해 WebP와 JPEG를 사용하여 데이터 세트의 모든 이미지를 100개의 서로 다른 품질 값으로 압축합니다. 그런 다음 각 품질 값의 SSIM 및 bpp의 평균을 그래프로 표시합니다. 이미지 크롤링 데이터 세트는 이 데이터 집계에 적합하지 않은 이종 이미지로 구성됩니다. 다음 도표는 Kodak 및 Tecnick 데이터 세트의 SSIM 및 bpp의 평균 동작을 각각 보여줍니다.

그림 4: Kodak 데이터 세트의 SSIM과 BPP

Kodak의 SIM 및 bpp

그림 5: Tecnick 데이터 세트의 SSIM과 BPP 비교

Tecnick 데이터세트에서 SIM과 bpp 비교

전반적으로 위의 도표에서 WebP는 동일한 SSIM 색인을 달성하기 위해 JPEG보다 픽셀당 비트가 일관되게 필요하다는 것을 확인할 수 있습니다.

결론

이 연구에서는 JPEG에 비해 WebP 압축을 평가했습니다. 평균 WebP 파일 크기는 동일한 SSIM 색인의 JPEG 파일 크기에 비해 25%~34% 더 작습니다. SSIM과 bpp 플롯은 WebP가 동일한 SSIM 색인에서 JPEG보다 픽셀당 비트 수가 일관되게 더 적음을 보여주었습니다. 이러한 결과는 WebP가 JPEG에 비해 상당한 압축을 제공할 수 있음을 나타냅니다.


1 Huynh-Thu, Q., 간바리, M. (2008). '이미지/동영상 품질 평가에서 PSNR의 유효성 범위' Electronics Letters 44: 800-801.doi:10.1049/el:20080522.

2 Z. 왕, A. C. 보빅, H. R. Sheikh, E. P. Simoncelli, '이미지 품질 평가: 오류 측정에서 구조적 유사성까지', Image Processing, IEEE Transactions, Volume 13, Issue 4, pp. 600-612, 2004.