크롬에 JPEG XL 도착, AVIF도 바꿔야 할까?
Chrome 155부터 .jxl 이미지를 브라우저가 바로 띄운다. 사이트 이미지를 이미 AVIF로 바꿔 둔 팀이라면 JPEG XL을 다시 검토할 이유가 있을까?

- Chrome 팀은 10월 6일, Chrome 155부터 JPEG XL 디코딩을 제공한다고 발표했다.
- 무손실·점진 표시가 중요한 사진에는 JXL을, 웹용 손실 압축에는 AVIF도 함께 검토할 수 있다.
- 배포할 때는
picture로 대체 형식을 제공하고, 실제 이미지의 화질·용량·표시 방식을 비교한다.
Chrome 155가 .jxl 파일을 읽는다
Chrome의 JPEG XL 지원 발표는 브라우저가 .jxl 이미지를 디코딩한다는 소식이다. 구형 Chrome까지 같은 기능을 갖게 되거나, 웹사이트의 기존 JPEG가 자동으로 변환된다는 뜻은 아니다.
MDN 형식 안내에 따르면 JPEG XL은 손실·무손실 압축, HDR, 투명도와 애니메이션 등을 지원한다. 기존 JPEG를 무손실로 다시 압축하고 원래 JPEG 파일을 재구성하는 기능도 있다. 여기서 무손실은 이미 JPEG에 저장된 정보를 보존한다는 의미다. 과거 JPEG 압축에서 사라진 화질을 되살리는 기능은 아니다.
AVIF보다 항상 작은 형식은 아니다
Mozilla의 JPEG XL 설명은 용도에 따라 선택이 달라진다고 강조한다. 무손실 이미지와 점진 표시, JPEG 무손실 재압축은 JXL의 강점이다. AVIF는 일반적인 웹용 사진 압축이나 선명한 경계와 단색 면이 섞인 이미지에서 강점을 보인다.
| 중요한 조건 | 검토 방향 |
|---|---|
| 무손실 보존·JPEG 재압축 | JPEG XL을 후보에 넣는다. |
| 일반 웹용 화질에서 작은 사진 파일 | AVIF와 JXL의 실제 결과를 비교한다. |
| 큰 이미지가 내려오는 동안 내용을 먼저 표시 | JPEG XL의 점진 표시를 시험한다. |
점진 표시는 다운로드 중에 이미지의 모습을 보여 주고 이후 세부를 채우는 방식이다. 최종 파일의 용량과는 다른 판단 기준이다. Mozilla도 사이트를 대표하는 이미지와 필요한 화질로 시험할 것을 권한다.
압축률만큼 중요했던 디코더의 안전성
Chrome은 Rust로 작성한 jxl-rs를 통합했다. 이미지 디코더는 네트워크에서 받은 복잡한 바이너리를 처리하므로 메모리 접근 오류가 보안 문제가 될 수 있다. Chrome 팀은 지원 발표에서 이 구현 선택과 SIMD 최적화를 함께 설명했다.
새 형식의 지원을 추가하면서 메모리 안전성과 처리 성능을 함께 고려한 것이다. 웹 운영자가 이미지 형식을 선택할 때는 이런 브라우저 구현 변화와 별개로 자신의 이미지 품질·용량을 판단해야 한다.
picture로 JXL과 JPEG를 함께 제공할 수 있다
HTML의 picture 요소는 브라우저가 지원하는 이미지 후보를 선택하게 한다. 다음은 이미 변환해 둔 두 파일을 제공하는 최소 예시다. JXL의 MIME 형식은 image/jxl이다.
<picture>
<source srcset="photo.jxl" type="image/jxl" />
<img src="photo.jpg" width="1200" height="800"
alt="해 질 무렵의 해안 풍경" />
</picture> JXL을 지원하지 않아 해당 source를 선택할 수 없으면 img의 JPEG가 대체 경로가 된다. 이 코드는 변환기를 실행하지 않는다. 두 경로의 실제 파일은 별도로 준비해야 한다.
사이트에 적용할 때는 먼저 대표 이미지로 형식과 화질을 비교하고, 선택한 JXL 파일과 함께 제공할 대체 이미지를 준비하는 것이 적절하다. 브라우저 지원 소식만으로 모든 원본을 한꺼번에 바꿀 필요는 없다.
자주 묻는 질문
JPEG를 JXL로 바꾸면 원본 사진 화질이 돌아오는가?
아니다. JPEG 무손실 트랜스코딩은 기존 JPEG의 정보를 보존하는 기능이다. 이미 손실된 정보를 복구하지 않는다.
Chrome 지원이 생겼으니 JPEG 대체 파일을 없애도 되는가?
지원하지 않는 환경을 대상으로 서비스한다면 대체 형식을 유지해야 한다. picture로 형식별 후보를 제공할 수 있다.
JPEG XL 지원은 사진 전송의 선택지를 넓힌다. AVIF와 실제 결과를 비교하고, 필요한 곳에 JXL을 추가하는 것이 출발점이다.