GN⁺: JPEG XL과 파레토 프론트
(cloudinary.com)JPEG XL과 파레토 프론트
- libjxl 버전 0.10 출시: JPEG XL의 참조 구현인 libjxl의 새 버전이 출시됨. 이 버전의 주요 개선 사항은 '스트리밍 인코딩' API의 완전한 구현.
- 스트리밍 인코딩 API: 대형 이미지를 '조각'으로 인코딩할 수 있게 해줌. 전체 이미지를 한 번에 처리하는 대신, 메모리 친화적인 방식으로 처리 가능.
무손실: 메모리 사용량과 속도의 큰 개선
- libjxl 버전 0.9 대비 개선: 이전 버전에서는 무손실 JPEG XL 인코딩이 메모리 집약적이고 시간이 오래 걸림. 대형 이미지 인코딩 시 심각한 문제 발생 가능성.
- NASA 지구 야간 이미지 예시: 13500×6750 크기의 이미지를 압축하는 데 libjxl 0.9는 약 8GB의 RAM과 2분 이상 소요. libjxl 0.10으로 업그레이드 후에는 0.7GB의 RAM과 30초만에 압축 가능.
- 다양한 노력 설정 결과: 표를 통해 다양한 노력 설정(e1~e9)에 따른 메모리 사용량, 시간, 압축 크기 비교 제공. 노력 설정을 높일수록 압축은 개선되지만 비선형적으로 개선됨.
파레토 프론트
- 압축 기술 비교: 압축 파일 크기뿐만 아니라 인코딩 속도도 중요. 압축 밀도와 인코딩 속도 두 가지 차원 고려 필요.
- 파레토 최적: 다른 방법으로 같은 압축 밀도를 더 적은 시간에 달성할 수 없는 경우. 파레토 최적 방법은 주어진 시간 예산에 대해 가장 작은 파일을 제공함.
- 파레토 프론트 시각화: 인코딩 속도와 압축 밀도를 보여주는 차트로 시각화. 다양한 이미지 세트를 사용하여 평균 속도와 압축 밀도 비교.
비사진 이미지
- 테스트 이미지 선택의 중요성: 대부분의 이미지가 사진일 경우, 자연스러운 노이즈로 인해 압축이 어려움.
- 만화 이미지의 경우: 비사진 이미지는 사진보다 훨씬 더 잘 압축됨. 만화 이미지는 약 4bpp로 압축 가능.
- libjxl의 개선: 새 버전의 libjxl은 이전 버전보다 훨씬 빠르고 압축률도 더 좋음.
손실 압축에 대하여
- 손실 압축 벤치마크: 압축 크기와 속도만 중요. 이미지 품질은 세 번째 차원으로 고려해야 함.
- 손실 이미지 코덱과 인코더의 성능: 다른 품질 포인트에서 다르게 작동할 수 있음. 높은 품질 인코딩에 잘 작동하는 인코더가 반드시 낮은 품질 인코딩에도 잘 작동하는 것은 아님.
손실 파레토 프론트
- 테스트된 인코더: libjpeg-turbo, sjpeg, mozjpeg, jpegli, libavif / libaom, libjxl, libwebp, libheif 등 다양한 인코더의 최신 버전 테스트.
- 중간 품질: SSIMULACRA2 점수 60에 해당하는 설정에서의 결과. 페이지 무게 감소가 이미지 충실도보다 중요할 때 가장 관련이 있음.
- 중상 품질과 고품질: SSIMULACRA2 점수 70과 85에 해당하는 설정에서의 결과. 고품질 포인트에서는 JPEG XL이 주로 파레토 프론트를 차지함.
결론
- libjxl 버전 0.10의 개선: 메모리 소비량이 크게 감소하고, 특히 멀티스레드 무손실 인코딩 속도가 향상됨.
- JPEG XL의 위치 확립: 고품질에서 시각적으로 손실 없는 품질에 이르기까지 다양한 속도 설정에서 파레토 최적임을 확인.
- JPEG의 지속적인 매력: 새로운 jpegli 인코더는 속도와 압축 면에서 개선을 가져옴. 매우 빠른 인코딩이 필요할 때 여전히 최선의 선택일 수 있음.
- Cloudinary의 기여: 이미지 압축 분야에서 최신 기술과 인사이트 적용을 통해 최상의 사용자 경험 제공에 적극적으로 참여.
GN⁺의 의견
- libjxl 0.10의 출시는 이미지 압축 기술에서 중요한 진전을 나타냄. 특히 대형 이미지를 처리할 때 메모리 사용량과 인코딩 속도의 대폭 개선은 사용자에게 큰 이점을 제공할 것.
- JPEG XL이 다양한 품질과 속도에서 파레토 최적임을 강조하는 것은, 사용자들이 이미지 품질과 파일 크기 사이에서 최적의 균형을 찾을 수 있도록 돕는다는 점에서 유용함.
- 비판적인 시각에서 볼 때, libjxl과 같은 새로운 기술의 채택은 기존 인프라와의 호환성 문제를 야기할 수 있음. 따라서 기존 시스템과의 통합성을 고려한 점진적 도입이 필요.
- 이미지 압축 기술을 선택할 때는 인코딩 및 디코딩 속도, 파일 크기, 지원하는 플랫폼 및 장치 등 여러 요소를 고려해야 함. JPEG XL은 고품질 이미지 압축에 있어서 매력적인 선택지이지만, 모든 사용자와 시스템에서 널리 지원되는 것은 아님.
- 이 기술의 도입으로 인한 득은 메모리 사용량 감소, 인코딩 속도 향상, 파일 크기 절감 등이며, 실은 기존 시스템과의 호환성 문제와 새로운 기술에 대한 학습 곡선이 될 수 있음.
jpegli 인코더가 mozjpeg에 이어 또다시 jpg를 생명연장 시키네요...
JXL 진영에서 만들었으나 아이러니하게도 JXL의 전파를 저해할지도 모르겠네요...
Hacker News 의견
-
WebP 포맷의 무손실 압축 성능이 매우 뛰어남
WebP의 무손실 압축 기능이 PNG나 OptiPNG보다 성능과 속도 면에서 훨씬 우수하며, 현재 온라인에서 널리 지원되고 있음. 또한, 무손실 AVIF보다 훨씬 나음.
-
저품질 설정에서 JPEG의 세부 보존 능력에 대한 평가
JPEG는 저품질 설정에서도 이미지의 전체적인 질을 유지하면서 세부 사항을 추상적인 예술 스타일로 변환하는 능력이 뛰어남. 반면, JXL과 AVIF는 흐릿해짐.
-
JPEG XL 포맷에 대한 자세한 정보를 찾는 이용자의 어려움
JPEG XL 포맷의 각 단계를 상세히 설명하는 웹사이트나 문서를 찾기 어려움. JPEG XL에는 많은 혁신적인 기술이 포함되어 있으나, 이를 자세히 알 수 있는 자료 부족.
-
인코딩 속도에 초점을 맞춘 기사에 대한 의문
현대 컴퓨터에서 디코딩 속도는 큰 문제가 아니지만, 그래도 속도에 대한 데이터를 살펴보는 것은 흥미로움.
-
JPEG XL의 품질과 압축 능력에 대한 평가
JPEG XL은 단순한 설정으로도 고품질의 압축 이미지를 생성하는 능력이 뛰어남. 다른 코덱들은 비슷한 결과를 얻기 위해 이미지 유형에 따라 다양한 품질 설정이 필요함.
-
JPEG XL 프로젝트로 인해 개발된 새로운 병렬 처리 라이브러리
JPEG XL 프로젝트는 Highway라는 새로운 병렬 처리 라이브러리를 개발함. 이 라이브러리는 JPEG XL뿐만 아니라 Google의 최신 Gemma AI 모델에도 사용됨.
-
QOI 포맷의 포함에 대한 반응
일반 대중 소프트웨어에서 기본적으로 지원하지 않는, 그저 괜찮은 수준을 목표로 하는 QOI 포맷이 비사진 이미지 인코딩 벤치마크에 포함된 것이 재미있음.
-
libjxl의 새 버전이 메모리 소비를 크게 줄임
libjxl의 새 버전은 손실 및 무손실 압축 모두에서 메모리 소비를 크게 줄이고, 특히 멀티스레드 무손실 인코딩 속도를 향상시킴. 기사도 잘 작성되었음.
-
JPEG XL을 사용하여 오래된 JPEG 파일을 재압축할 때의 이점
JPEG XL을 사용하면 오래된 JPEG 파일을 재압축하여 15%에서 30%의 공간을 절약할 수 있으며, 원본 JPG 파일을 비트 단위로 완전히 동일하게 복원할 수 있음.
-
손실 없는 AVIF의 추가 절약 가능성에 대한 언급
손실 없는 AVIF에서 더 많은 절약이 이루어질 것으로 예상됨.