# 보통 이미지 압축에 libjpeg 를 많이 사용하는데
# google 에서 libjpeg 보다 20~30% 이상 좋아진 guetzli(구에츨리?)를 만들었다.
# guetzli 설치
# ubuntu linux 에선 libpng-dev 패키지 설치 후
apt-get install libpng-dev
# 소스빌드 하면
make -j8
# 실행 파일과 정적라이브러리 파일이 생성된다.
./bin/Release/guetzli
./bin/Release/libguetzli_static.a
# 그냥 릴리즈된 바이너리를 사용해도 된다.
# 맥에서는 brew 로 설치
brew install guetzli
# 174kb 샘플 이미지를 받아서 압축해보자
# 파일 하나 압축하는데 시간이 좀 걸린다.
# 174kb -> 38kb 로 (80%) 줄었다.
guetzli --verbose ./bees.png ./output.jpg# 비교를 위해 많이 사용되는 imagemagick 로 설치해보자
brew install imagemagick
# libjpeg 사용됨을 확인 할 수 있다.
magick convert -version
#####
# 비교 테스트
# 26kb 다음 og(opengraph) 이미지 다운로드
wget
https://search1.daumcdn.net/search/statics/common/img/og_search.png
# 압축시간이 길다고 해서 시간도 같이 재보자
# 26kb -> 33kb 더 커졌다. 처리시간 0.02초
time magick convert og_search.png -quality 100 output-imagemagick_100.jpg
magick convert og_search.png -quality 100 output-imagemagick_100.jpg 0.02s user 0.01s system 89% cpu 0.031 total
# 26kb -> 9.3kb 품질을 좀 낮추면 1/3로 줄어든다.처리시간 0.02초
time magick convert og_search.png -quality 84 output-imagemagick_84.jpg
magick convert og_search.png -quality 84 output-imagemagick_84.jpg 0.02s user 0.01s system 89% cpu 0.027 total
# guetzli 를 사용해보자.
# 26kb -> 33kb 오히려 커지고, 처리 시간도 1분이 넘어간다.
time guetzli og_search.png output-guetzli100.jpg
guetzli og_search.png output-guetzli100.jpg 84.31s user 2.14s system 99% cpu 1:26.48 total
# 퀄리티를 조절하니(최소 84 이상만 된다.) 26kb -> 13kb 반으로 줄었다.
# 화질도 내눈으로는 원본과 차이를 알 수 없었다.
time guetzli --quality 84 og_search.png output-guetzli84.jpg
guetzli --quality 84 og_search.png output-guetzli84.jpg 3.55s user 0.11s system 99% cpu 3.668 total
# 결론
guetzli 이 최소 품질을 84 로 제한해서 테스트를 했는데,
화질은 guetzli 이 magick 보다 좀더 좋았지만 그만큼 조금 크고, 시간은 비교가 불가할정도로 느리다.
정말 화질이 중요한 아카이빙 용도로는 좋지만, on the fly 서비스에는 비추.