WebP가 JPG·PNG·GIF보다 효율적인 이유 — 예측 코딩과 무손실·손실 모드의 과학
지난 10년간 웹 속도 최적화의 화두는 이미지입니다. 페이지 용량의 50~80%를 차지하는 이미지를 어떻게 압축하느냐가 로딩 시간, 사용자 경험, SEO 순위까지 좌우합니다. JPG·PNG·GIF는 수십 년 묵은 표준이지만, 2010년 구글이 선보인 WebP는 근본적으로 다른 접근 방식을 취합니다. 같은 화질을 유지하면서 25~35% 더 작은 파일을 만드는 비결이 무엇일까요? 이 글에서는 WebP의 핵심 기술인 예측 코딩(Predictive Coding)과 무손실·손실 모드의 원리를 파헤치고, 실제 수치를 통해 왜 WebP가 미래의 웹 표준인지 보여드리겠습니다.
JPG·PNG·GIF의 압축 방식과 한계
WebP의 효율성을 이해하려면 먼저 기존 포맷들의 구조를 알아야 합니다.
JPG(JPEG)는 1992년 탄생한 손실 압축 포맷입니다. 이미지를 8x8 픽셀의 블록으로 나눈 뒤 DCT(Discrete Cosine Transform)라는 수학 변환으로 고주파 정보(세세한 디테일)를 버립니다. 인간의 눈이 색 변화(색도)에는 둔감하다는 특성을 이용해 색상 정보를 더 적극 압축합니다. 결과적으로 작은 파일을 얻지만, 압축률을 높일수록 8x8 블록 경계가 드러나는 아티팩트(블로킹)가 생깁니다.
PNG는 1996년 등장한 무손실 압축 포맷입니다. 픽셀 값을 완벽히 보존하되, 필터링(Filtering)과 DEFLATE 압축 알고리즘으로 파일을 줄입니다. PNG의 필터링은 각 픽셀 앞의 픽셀들과의 차이를 저장하는 방식인데, 같은 색상이 연달아 나타나면 차이 값이 0에 가까워져 압축이 잘됩니다. 하지만 사진처럼 색상이 복잡하고 급격히 변하는 이미지는 차이 값이 크므로 압축 효율이 떨어집니다. PNG 파일은 JPG보다 보통 2~3배 큽니다.
GIF는 1987년 표준화된 애니메이션 전문 포맷으로, 최대 256색으로 제한됩니다. 인덱스 컬러(색상표 기반) 방식이므로 색감 손실이 크고, 현대 웹 이미지에는 부적합합니다. 하지만 256색 제약 덕에 파일은 작아서, 저품질 애니메이션에는 여전히 쓰입니다.
이들 포맷 모두 이미지의 픽셀 간 상관성(한 픽셀 값이 이웃 픽셀 값과 얼마나 비슷한지)을 효율적으로 활용하지 못합니다. WebP가 바로 이 점을 혁신했습니다.
WebP의 핵심 기술: 예측 코딩(Predictive Coding)
WebP는 VP8/VP9 동영상 코덱을 기반으로 설계되었습니다. 동영상에서 인접 프레임의 내용이 비슷하듯이, 이미지에서도 이웃한 픽셀이 비슷한 값을 가진다는 아이디어에서 시작합니다.
예측 코딩의 원리: WebP는 각 픽셀을 주변 픽셀(위, 왼쪽, 대각선)로부터 예측합니다. 예를 들어 파란 하늘 사진에서 어떤 픽셀 P가 있다면, 그 위의 픽셀과 거의 같은 파란색일 가능성이 높습니다. WebP는 실제 P 값과 예측값의 차이(잔차, Residual)만 저장합니다. 잔차가 작을수록 압축이 효율적입니다.
예를 들어 보겠습니다. 픽셀의 밝기가 다음과 같다고 가정합시다:
- 위 픽셀: 150, 왼쪽 픽셀: 148, 현재 픽셀(실제 값): 149
- 예측 알고리즘이 평균을 취하면 예측값: (150 + 148) / 2 = 149
- 저장할 잔차: 149 - 149 = 0 (압축률 최고)
반면 색상 변화가 급격한 모서리(엣지) 영역에서는 예측이 정확하지 않으므로 잔차가 커집니다. WebP는 이런 경우를 감지해 더 정교한 예측 모드(총 13가지)로 전환합니다. 직선 모서리는 선 방향으로 예측하고, 분석된 로컬 패턴을 학습해 가변적으로 대응합니다.
이는 PNG의 필터링(픽셀 차이만 저장)과 유사하지만, WebP는 여러 방향의 예측을 동시에 시도하고 최적의 모드를 선택합니다. 결과적으로 같은 이미지를 PNG로는 1000KB로, WebP로는 600KB로 저장할 수 있습니다.
무손실 모드(Lossless)와 손실 모드(Lossy)의 하이브리드
WebP의 또 다른 강점은 같은 포맷 내에서 무손실과 손실 압축을 유연하게 섞을 수 있다는 점입니다.
무손실 모드(WebP-LL): 예측 코딩으로 생성한 잔차를 추가 압축(Huffman 코딩과 LZ77)하여 완벽한 복원을 보장합니다. PNG 대비 25~35% 작으면서 화질은 100% 동일합니다. 로고, 스크린샷, 일러스트처럼 색상 급변 영역이 많은 이미지에 최적입니다.
손실 모드(WebP-L): 사진처럼 색상이 부드럽게 변하는 이미지에 최적화됩니다. 예측 이후에 양자화(Quantization)라는 단계를 추가합니다. 양자화는 잔차 값을 의도적으로 반올림하여 정보를 버립니다. 예를 들어 잔차가 -2, -1, 0, 1, 2라면 이들을 모두 0으로 통합하는 식입니다.
WebP 손실 모드의 품질 설정값(0~100)을 조정하면:
- 품질 90: JPG 같은 고품질 → 파일 크기 JPG의 70~80%
- 품질 75: 웹 사진 표준 → 파일 크기 JPG의 50~65%
- 품질 50: SNS 썸네일 용도 → 파일 크기 JPG의 30~40%
이를 실제 수치로 비교해보겠습니다. 4000x3000 풍경 사진 원본(50MB)을 압축한 결과:
| 포맷 | 파일 크기 | 압축률 | 주관적 화질 |
|---|---|---|---|
| JPG (품질 85) | 1,850KB | 3.7% | 양호 |
| PNG (무손실) | 8,200KB | 16.4% | 완벽 |
| WebP 손실 (품질 85) | 1,210KB | 2.4% | 양호 (JPG보다 선명) |
| WebP 무손실 | 5,400KB | 10.8% | 완벽 |
WebP 손실 모드(1,210KB)는 같은 화질로 JPG(1,850KB)보다 34% 작고, WebP 무손실(5,400KB)은 PNG(8,200KB)보다 34% 작습니다. 이는 더 정교한 예측 코딩 덕분입니다.
VP8/VP9 알고리즘과 엔트로피 코딩
WebP의 압축 효율을 높이는 두 번째 레이어는 엔트로피 코딩(Entropy Coding)입니다. 예측 후 잔차를 그대로 저장하지 않고, 자주 나타나는 값은 짧은 비트로, 드문 값은 긴 비트로 인코딩합니다(허프만 코딩).
더 혁신적인 부분은 확률 모델 업데이트(Probability Model Update)입니다. WebP는 이미지를 처리하면서 각 영역의 특성을 학습합니다. 스무한 하늘 영역은 작은 잔차가 많으므로, 해당 블록의 확률 모델을 동적으로 조정합니다. 결과적으로 블록별로 다른 확률 분포를 사용해 더욱 효율적으로 압축합니다.
JPG는 고정된 허프만 테이블을 사용하지만, WebP는 이미지 특성에 맞춰 테이블을 최적화합니다. 이것이 같은 압축률에서도 화질 차이를 만듭니다.
투명도와 애니메이션: PNG·GIF 대체의 완성
WebP는 알파 채널(투명도)을 완벽히 지원합니다. 무손실/손실 모드 모두에서 투명 영역을 별도로 압축하므로, 로고나 배경 제거 이미지도 PNG보다 작게 저장할 수 있습니다.
예를 들어 배경 제거된 상품 사진(투명 영역 40%):
- PNG: 2,100KB
- WebP (손실 모드): 680KB (68% 감소)
- WebP (무손실 모드): 1,200KB (43% 감소)
애니메이션도 지원합니다. WebP 애니메이션은 각 프레임의 차이만 저장하는 프레임 간 예측(Inter-frame Prediction)을 사용합니다. GIF 애니메이션을 WebP로 변환하면 보통 40~50% 용량 감소가 일어납니다. 예를 들어 30프레임 GIF(2.5MB)는 WebP 애니메이션으로 1.3MB까지 줄어듭니다.
브라우저 지원과 호환성 전략
WebP는 2010년 이후 모든 주요 브라우저(크롬, 엣지, 파이어폭스, 오페라)에서 지원되며, 2024년 기준 전 세계 사용자의 96% 이상이 WebP를 볼 수 있습니다. 다만 오래된 Safari 버전이나 Internet Explorer는 미지원합니다.
따라서 실무에서는 점진적 개선(Progressive Enhancement) 전략을 씁니다:
- HTML의 <picture> 요소로 WebP 우선 제공
- 미지원 브라우저는 JPG/PNG로 자동 폴백
- 예시: <picture><source srcset="image.webp" type="image/webp"><img src="image.jpg"></picture>
이 방법은 WebP 가능 사용자에게는 빠른 로딩을, 구형 브라우저 사용자에게도 정상 표시를 보장합니다.
실전: WebP 효율성을 직접 활용하기
WebP 변환 시 실용적인 팁을 정리했습니다:
손실 모드 추천 설정값:
- 전자상거래 상품 사진: 품질 82~85 → 크기 30~40% 감소
- 블로그 본문 사진: 품질 80 → 크기 40~50% 감소
- SNS 피드 이미지: 품질 75 → 크기 50~60% 감소
- 썸네일: 품질 65~70 → 크기 60~70% 감소
무손실 모드는 언제 쓰나?
- 로고, 아이콘: PNG 대비 25~35% 감소
- 디자인 원본(그래픽 요소): PNG 대비 30~40% 감소
- 스크린샷: PNG 대비 20~30% 감소
- 일러스트(색상 평탄한 이미지): PNG 대비 15~25% 감소
editpixel의 이미지 편집기에서 WebP로 직접 변환하고 품질 설정을 미리보기로 확인할 수 있습니다. editpixel 도구를 열어 JPG나 PNG 이미지를 업로드한 뒤 내보내기 시 WebP 포맷과 품질을 선택하면, 파일 크기 비교를 즉시 확인하면서 최적의 설정값을 찾을 수 있습니다.
WebP는 더 이상 선택이 아닌 웹 표준입니다. 로딩 속도 1초 단축은 사용자 이탈율 7% 감소, SEO 순위 상승으로 이어집니다. 같은 화질을 유지하면서 파일을 30% 줄일 수 있다면, 그것만으로도 웹 전체 속도는 눈에 띄게 개선됩니다. 예측 코딩이라는 단순하지만 우아한 수학으로 WebP는 이미지 압축의 역사를 다시 썼습니다.