WebP 및 HEIF 압축률/화질 간단 테스트 결과
그동안 블로그 이미지에 꾸역꾸역 mozjpeg와 pngquant를 적용해왔다.
WebP나 AVIF가 좋은 걸 모르는 바는 아니지만, 브라우저 호환성을 핑계로 버텨왔었다.
하지만, 이제 그만 해야겠다는 생각이 들어 WebP로 넘어가기로 했다.
넘어가는 김에 사진을 WebP 및 HEIF로 인코딩 해서 용량 대비 품질을 비교해보기로 했다.
비교 방법은 사진 여러장을 같은 기준으로 인코딩 한 뒤 PSNR-HVS-M1과 SSIM2을 계산해서 용량 대비 품질을 정량적으로 비교하는 것이다.
WebP는 물론 구글에서 공개한 라이브러리를 사용했고, HEIF는 WIC를 이용한 인코딩과 libheif+x265를 각각 적용했다.
그런데, 오픈 소스 쪽(x265)은 결과가 놀라웠다.
WIC-HEIF에 비해 PSNR-HVS-M이 심각하게 낮다.
참고로, 모든 그래프의 가로축은 원본(jpeg) 대비 압축률이다.
뭘 해도 20dB 부근에서 헤매는 x265 진영, 이 값은 33dB를 하한선으로 보는 게 일반적임
SSIM 역시도 마찬가지로 심각하게 낮다.
이 정도면 오픈 소스를 활용한 HEIF 압축은 포기하는 것이 좋다.
더군다나 x265 쪽은 라이선스 문제까지 엮여있어 프로그램을 배포하는 것도 주의가 필요하다.
x265 진영은 유사도 역시 0.84 정도에서 헤매고 있음
결국 WebP와 WIC-SSIM을 비교하는 것 외엔 유의미한 비교 대상이 없다.
PSNR-HVS-M의 결과는 기대와 달랐다.
내 예상은 HEIF 쪽이 품질이 더 높게 나오는 것이었는데, WebP가 더 높게 나왔다.
물론 33dB를 다 넘는 값들이라 눈에 띄는 정도는 아니다.
이게 높다는 것은 고주파 영역 디테일에 WebP가 더 강하다는 뜻
SSIM은 용량 대비 차이가 거의 없다.

결론적으로 WebP와 HEIF(WIC)는 구조적인 면에서 용량 대비 차이는 거의 없고, 세부 디테일은 WebP가 좀 높다.
그리고, WebP로 압축할 때 품질(fidelity)는 88이 용량이 작으면서도 품질이 훌륭한 sweet spot이라는 결론.
