MozJPEG으로 JPEG 이미지 압축하기

2020년 6월 23일 수정

≡ 목차 (Table of Contents)

이 글은 MozJPEG을 이용해 JPEG 압축을 하는 방법을 설명한다. 설치는 소개 링크를 참고하자.

참고로 이 글에서는 손실(lossy) 압축을 하는 cjpeg 이라는 도구를 다룬다. 무손실(lossless)압축 도구인 jpegtran 도 옵션 등 사용 방법이 비슷하다. 하지만 JPEG이 무손실 압축을 하는게 무슨 의미가 있는지는 잘 모르겠다.

기본 사용법

기본적으로 아래와 같은 사용 방법을 찾을 수 있다.

cjpeg -quality 75 input.jpg > output.jpg

-quality 옵션은 이름대로 압축률을 의미하니 적당히 적어주자. 어쟀든 이렇게 하면 input.jpg 라는 이름의 이미지를 output.jpg 라는 다른 파일로 압축해준다.

이 명령이 잘 통한다면 다행인데, 불행히고 개인적으로 시험해보면 아래와 같은 오류가 나면서 비정상 종료하게 된다.

Unrecognized input file format --- perhaps you need -targa

cjpeg이 타입을 인식하지 못 하는데 위의 메시지대로 옵션을 줘도 별 효과는 없었다.

조금 복잡한 사용법

MozJPEG을 통해 같이 설치되는 djpeg 을 이용하면 JPEG 이미지의 압축을 해제할 수 있으니 위처럼 파일 타입을 인식하지 못 하는 경우 이걸 같이 사용할 수 있다.

djpeg input.jpg | cjpeg -quality 75 > output.jpg

이렇게 하면 이제 압축된 파일을 얻을 수 있다.

만약 여기서 조금 더 욕심을 내고자 한다면 아래처럼 프로그레시브하게 최적화를 거치는 방법도 있다.

djpeg input.jpg | cjpeg -quality 75 -progressive -optimize > output.jpg

이 경우 압축 효율이 좀 더 좋아지며 점진적 로딩이 되는 프로그레시브 이미지를 얻을 수 있다. 물론 압축 효율이 높다는 말은 처리에 시간이 걸린다는 말이기에 많은 이미지를 한 번에 압축하기엔 좀 부담될 수도 있다.