스크랩

파이어폭스, 이제 JPEG XL도 기본으로 열어봅니다 — Firefox 157의 큰 변화

파이어폭스, 이제 JPEG XL도 기본으로 열어봅니다 — Firefox 157의 큰 변화

한눈에 보는 핵심 요약

Firefox가 드디어 JPEG XL(JXL) 이미지 형식을 모든 플랫폼에서 기본 지원하기로 했습니다. Firefox 157부터는 별도 설정 없이도 브라우저가 JXL 이미지를 바로 열어볼 수 있게 되는데요, 그동안 Nightly 채널이나 Firefox Labs를 통해서만 체험할 수 있었던 기능이 정식으로 자리 잡는 셈입니다. 다만 성능과 관련해 아직 풀어야 할 숙제도 남아 있습니다.

JPEG XL, 왜 다시 주목받나요?

JPEG XL은 기존 JPEG보다 압축 효율이 뛰어나면서도 화질 손실이 적은 차세대 이미지 포맷(ISO/IEC 18181 표준)입니다. Safari는 이미 2023년 출시된 Safari 17.0부터 지원해왔고, Chrome도 플래그를 통해 실험적으로 지원 중이었죠. 이번 Firefox의 기본 지원 전환은 JXL이 웹 표준 이미지 포맷으로 한 걸음 더 다가서는 신호로 볼 수 있습니다.

Firefox는 이를 위해 Rust로 작성된 jxl-rs 디코더를 채택했습니다. C++ 기반이 아닌 Rust를 선택한 이유는 메모리 안전성 확보 측면이 크다고 볼 수 있는데요, 특히 이미지 디코더처럼 외부에서 들어오는 파일을 처리하는 코드는 보안 취약점이 발생하기 쉬운 영역이라 Rust의 강점이 잘 발휘될 수 있는 지점입니다.

어떤 순서로 굴러가고 있나요?

  • Nightly: 이미 기본 활성화 상태
  • Firefox 152 이후 모든 채널: Firefox Labs에서 image.jxl.enabled 체크박스로 켜고 끌 수 있음
  • Firefox 157: 모든 플랫폼에서 기본 활성화 예정

단계적으로 확대 적용하며 안정성을 검증해가는 전형적인 롤아웃 방식입니다. Mozilla는 JXL 표준화 자체에 대해서는 중립적인 입장을 취하고 있고, W3C TAG(기술 아키텍처 그룹)도 검토 결과 우려 사항은 있지만 대체로 만족스럽다는 평가를 내린 상태입니다.

성능은 어느 정도일까?

가장 흥미로운 대목은 성능 비교입니다.

멀티스레드 디코딩 성능

jxl-rs 0.6.0에 멀티스레드 디코딩이 추가되면서, 같은 사진을 여러 크기·형식으로 디코딩한 테스트에서 Safari의 C++ 기반 libjxl보다 소폭 빠른 결과를 기록했습니다. 다만 이미지 크기가 작아질수록 다른 이미지 형식과의 성능 격차는 오히려 커지는 경향을 보였다고 합니다.

무손실(Lossless) JXL은 아직 갈 길이 멀다

반면 단일 스레드로 진행한 별도 측정에서는 다소 아쉬운 결과가 나왔습니다.

| 항목 | jxl-rs | WebP | |---|---|---| | 평균 디코딩 시간 | 20.632초 | 667.0ms | | 상대 속도 | 기준 | 약 30.93배 빠름 |

무손실 JXL이 파일 크기를 WebP보다 10% 줄여주긴 하지만, 디코딩 속도는 30배 이상 느린 셈이죠. 같은 조건에서 C++ 기반 libjxl(djxl)도 WebP보다 약 20배 느렸다고 하니, 이는 Rust 구현만의 문제가 아니라 무손실 JXL 자체의 특성에 가깝다고 볼 수 있습니다. 이런 이유로 배터리 소모와 체감 성능 저하를 우려해 "Firefox 157에서는 일단 손실(lossy) JXL만 먼저 활성화하자"는 의견도 나오고 있습니다.

추가로 눈여겨볼 기능들

  • 애니메이션 JXL 지원: Safari의 JXL 구현은 애니메이션과 점진적 렌더링을 지원하지 않는 반면, Firefox는 둘 다 지원합니다.
  • 점진적 표시(Progressive rendering): 이미지를 낮은 해상도부터 점차 선명하게 불러오는 방식도 지원됩니다.
  • HDR은 아직 SDR로 표시: HDR 이미지를 열어도 당장은 SDR로 변환되어 보입니다. 다만 Firefox의 다른 이미지 포맷도 마찬가지 상황이며, JXL의 톤 매핑 자체는 다른 포맷보다 우수하다는 평가입니다.

안정성 검증은 어떻게?

Firefox 팀은 기본 활성화에 앞서 상당히 꼼꼼한 검증 절차를 거치고 있습니다.

  • WPT(Web Platform Tests): 비트 심도, 알파, 그레이스케일, CMYK, 색상 관리, 방향(orientation) 등 폭넓은 디코딩 정확성 검사
  • Gecko 전용 테스트: WPT로 다루기 힘든 영역 보완
  • 약 30개의 gtest: 청크·증분 디코딩, 애니메이션 프레임 수, 다운스케일, 손상된 파일 처리 등
  • mochitest: 점진적 렌더링과 텔레메트리 확인
  • reftest / Perfherder: 디코딩 벤치마크 성능 추적
  • 퍼징(Fuzzing): Nightly 활성화 전 1차 검사를 마쳤고, 기본값 전환 전 재차 퍼징 예정

정리하며

JPEG XL의 웹 생태계 안착은 그동안 여러 우여곡절을 겪어온 이슈였던 만큼, 이번 Firefox의 기본 지원 결정은 상당히 의미 있는 진전입니다. 다만 무손실 압축 성능 이슈가 남아 있는 만큼, 실제로 Firefox 157에서 손실 JXL만 우선 적용될지 여부는 조금 더 지켜봐야 할 것 같습니다. Safari, Chrome에 이어 Firefox까지 가세하면서 JPEG XL이 명실상부한 차세대 웹 이미지 표준으로 자리 잡을 수 있을지 주목됩니다.


원문: https://news.hada.io/topic?id=32900