이전 포스팅에서 Google에서 공개한 Guetzli를 소개했다.
mozjpeg에 참가하는 pornel 씨는 120배 느리다는 얘기를 했지만, 어쨌거나 동작도 하고 쓸만한 것 같다는 생각이 들었다.
그런데, 어느 정도 더 향상이 있는지 확인을 해보고 싶어졌다.
동일한 원본을 놓고 처리한 뒤 파일 크기와 PSNR을 비교함으로써 성능의 차이를 확인해보기로 했다.
대상 이미지는 아무런 기준 없이(ㅋㅋㅋ) 해상도 별로 3개를 선정했다.
1. 작은 크기(635×443) / 51.6KB
2. 중간 크기(3264×2448) / 1.17MB
3. 큰 크기(9803×6998) / 2.52MB
이 3개의 이미지에 대해 각각 mozjpeg와 guetzli로 q=85, 90, 95, 99 네 가지 옵션으로 재압축하면서 몇 가지를 확인했다.
1. 압축된 파일 크기
2. 원본과의 PSNR
3. 압축에 소요되는 시간
확인한 결과는 아래와 같았다.
우선 눈여겨 봐야 될 것은 10,000px 정도의 커다란 이미지에 대해서는 파일 저장 자체가 실패했다는 점.
/LARGEADDRESSAWARE(큰 주소 처리) 옵션을 적용한 상태에서도 저장되지 않았으니 그냥 저장할 방법이 없다고 생각해야 한다. lllorz
표를 그냥 읽으면 눈에 잘 들어오지 않으니… 그래프로 그려봤다.
1. 파일 크기
작은 이미지를 저장한 경우 파일 크기는 아래와 같다.
같은 품질 설정에 대해 mozjpeg에 비해서 파일 크기가 조금 더 작다.
그런데, 소요된 시간은 150배 이상 더 걸렸다. ㄷㄷㄷ
중간 크기의 이미지를 저장한 경우 파일 크기는 아래와 같다.
q=99에서는 역전되기는 하지만, 일단 mozjpeg보다 조금 더 작다는 건 확인할 수 있다.
하지만, 이 경우 소요 시간은 270배 이상 걸린다. ㄷㄷㄷㄷ
2. PSNR
그런데, 앞에서 확인한 파일 크기는 그 자체만으로는 커다란 의미가 없다.
손실 압축인 jpeg의 특성상 파일의 크기가 작아져도 화질 저하가 낮아야 의미가 생기는 것이다.
일단 같은 조건에서 작은 이미지에 대한 PSNR을 확인해봤다.
PSNR 역시 파일 크기와 비슷한 정도로 낮아졌다는 것을 확인할 수 있다.
중간 크기의 이미지 역시 작은 이미지와 비슷한 결과를 보여준다.
여기서 주목할 점이 하나 있는데, q=99에서는 파일은 더 큰데 PSNR은 더 낮다...
3. 파일 크기 - PSNR 비교
위의 그래프들만으로는 눈에 확 띄는 유의미한 결과는 없다.
그래서 파일 크기에 따른 PSNR을 그래프로 표시해서 비교해봤다.
우선, 작은 이미지의 경우 파일 크기와 PSNR의 그래프는 아래와 같다.
같은 파일 크기에서 mozjpeg 쪽의 psnr이 미미하게 높다는 것을 확인할 수 있다.
시간을 150배나 더 들였지만, 만족스러운 결과를 보여주지 못하는 Guetzli
중간 크기의 이미지도 결과는 비슷하다.
mozjpeg이 파일 크기 대비하여 psnr이 미묘하게 높다.
시간을 270배 이상이나 사용했지만, 결과는 역시…
4. 결론
Guetzli는 앞의 프로젝트인 Zopfli나 Brotli와는 위상이 다른 것으로 판단된다.
홍보하는 만큼의 성능은 보여주지 않는다.
오히려 150배~275배 시간이 걸림에도 같은 파일 크기 기준으로 psnr은 mozjpeg에 비해 다소 낮다.
더군다나 10,000px 정도의 커다란 이미지는 아예 정상적으로 처리하지도 못한다.
이게 아직 시기상조라는 의미인지, 앞으로도 비전이 없다는 뜻인지는 이것만으로는 단언하기 어렵다.
하지만, 적어도 지금 적용할만한 프로젝트가 아닌 것은 확실하다.