이미지 압축의 핵심: 손실 vs 무손실, 언제 무엇을 쓸까
손실 압축은 눈에 띄지 않는 디테일을 제거해 파일 크기를 60~80% 줄입니다. 무손실 압축은 데이터를 재배열할 뿐 아무것도 제거하지 않아 20~50% 절감합니다. 모든 이미지 포맷은 둘 중 하나를 사용하며, 올바른 방식을 선택하는 것이 파일 크기를 결정하는 가장 큰 요소입니다.
픽셀에 무슨 일이 일어나는가: 근본적 차이
석양 사진을 떠올려 보세요. 수백만 개의 픽셀로 이루어져 있고, 인접한 많은 픽셀들이 거의 동일한 주황색입니다. 압축 알고리즘은 이런 중복을 활용하지만, 접근 방식이 근본적으로 다릅니다.
무손실 압축은 픽셀 데이터의 패턴을 찾아 더 효율적으로 표현합니다. "주황, 주황, 주황, 주황"을 "주황 x4"로 바꾸는 것과 비슷합니다. 압축을 풀면 원래의 모든 픽셀이 정확히 복원됩니다. 파일은 작아지지만 어떤 정보도 버려지지 않습니다. PNG와 무손실 WebP가 이 방식입니다.
손실 압축은 한 단계 더 나아갑니다. 이미지를 분석해서 인간의 시각 시스템이 가장 알아차리기 어려운 디테일을 판단한 뒤, 그것을 영구적으로 제거합니다. 미묘한 색상 그라데이션이 단순화되고, 그림자 영역의 미세한 질감이 평탄해집니다. 결과물은 극적으로 작은 파일이지만, 원본 데이터는 영원히 사라집니다. JPEG, 손실 WebP, AVIF가 이 접근법을 사용합니다.
어느 쪽이 보편적으로 "더 나은" 것은 아닙니다. 서로 다른 문제를 해결하며, 최선의 이미지 워크플로는 두 가지를 모두 활용합니다.
손실 압축: 실제 작동 원리
JPEG 같은 손실 인코더는 여러 단계를 거칩니다:
- 색공간 변환 — 이미지를 RGB에서 YCbCr로 변환하여 밝기(눈이 민감한 부분)와 색상 정보(덜 민감한 부분)를 분리합니다.
- 크로마 서브샘플링 — 색상 채널의 해상도를 절반이나 1/4로 줄입니다. 인간의 눈은 밝기보다 색상을 훨씬 낮은 정밀도로 인식하기 때문에 거의 알아차리지 못합니다.
- 블록 변환 — 이미지를 8x8 픽셀 블록으로 나누고, 각 블록에 수학적 변환을 적용해 중요한 시각 정보와 미세한 디테일을 분리합니다.
- 양자화(Quantization) — 실제로 데이터가 제거되는 단계입니다. 미세한 질감, 노이즈 같은 고주파 디테일이 0으로 반올림됩니다. 이미지 도구의 "품질" 슬라이더가 이 과정의 공격성을 제어합니다.
- 엔트로피 코딩 — 남은 데이터를 무손실로 한 번 더 압축해 마지막 남은 중복을 제거합니다.
결과: 카메라에서 나온 5MB JPEG가 품질 80으로 압축하면 500KB~1MB가 됩니다. 일반적인 보기 크기에서 화질 차이가 보이지 않으면서 80% 감소한 것입니다.
무손실 압축: 모든 픽셀을 지키는 방법
무손실 인코더는 다른 전략을 씁니다. 어떤 정보도 버리지 않고, 같은 데이터를 더 효율적으로 기술하는 방법을 찾습니다:
- 필터링/예측 — 각 픽셀의 값을 이웃 픽셀 기반으로 예측하고 차이값만 저장합니다. 매끄러운 영역에서는 차이값이 아주 작은 숫자여서 압축 효율이 높습니다.
- 사전 코딩 — 반복되는 패턴을 한 번만 저장하고 짧은 포인터로 참조합니다. ZIP 압축과 유사한 원리입니다.
- 엔트로피 코딩 — 자주 나오는 값에 짧은 이진 표현을, 드문 값에 긴 표현을 할당합니다(허프만 코딩 또는 산술 코딩).
절감량은 이미지 내용에 크게 좌우됩니다. 같은 색상이 넓게 반복되는 스크린샷은 70~80% 압축될 수 있지만, 모든 영역에 고유한 질감이 있는 사진은 10~20%밖에 줄지 않을 수도 있습니다. 무손실 압축이 그래픽에는 이상적이지만 대규모 사진 전달에는 비실용적인 이유입니다.
실제 수치: 파일 크기 비교
| 원본 형태 | 무손실 결과물 | 손실 결과물 (품질 80) |
|---|---|---|
| 비압축 사진 (5 MB) | PNG: ~3.5 MB (30% 절감) | JPEG: ~500 KB (90% 절감) |
| 스크린샷 (2 MB) | PNG: ~400 KB (80% 절감) | JPEG: ~200 KB (90% 절감, 텍스트 흐려짐) |
| 투명 로고 (500 KB) | PNG: ~80 KB (84% 절감) | 해당 없음 (JPEG는 투명도 미지원) |
| JPEG 사진 (1 MB) 재압축 | PNG: ~2.5 MB (오히려 증가!) | JPEG 80: ~700 KB (30% 절감, 세대 손실) |
마지막 행을 주목하세요. JPEG를 PNG로 변환하면 파일 크기가 오히려 커집니다. JPEG 압축이 이미 만들어놓은 노이즈와 아티팩트를 무손실 압축이 효율적으로 처리하지 못하기 때문입니다. 흔한 실수 중 하나입니다. PNG가 항상 더 작은 것은 아닙니다.
포맷별 압축 방식 정리
| 포맷 | 손실 | 무손실 | 적합한 용도 |
|---|---|---|---|
| JPEG | 예 (전용) | 아니오 | 사진, 히어로 이미지 |
| PNG | 아니오 | 예 (전용) | 스크린샷, 로고, 텍스트 그래픽 |
| WebP | 예 | 예 | 모든 유형의 웹 이미지 |
| AVIF | 예 | 예 | 최대 압축이 필요한 최신 브라우저 |
| GIF | 아니오 | 예 (제한적) | 간단한 애니메이션 (WebP/AVIF로 대체 추세) |
| TIFF | 선택 가능 | 예 | 아카이빙, 인쇄 워크플로 |
WebP와 AVIF는 두 모드를 모두 지원하기 때문에 가장 유연합니다. 이미지별로 사진은 손실, 그래픽은 무손실을 선택할 수 있습니다. 어떤 포맷을 고를지 잘 모르겠다면, JPEG vs PNG 비교에서 상황별 선택법을 참고하세요.
실전 가이드: 언제 어떤 방식을 쓸까
손실 압축을 쓸 때:
- 사진과 자연 이미지 (풍경, 인물, 제품 촬영)
- 웹사이트 히어로 배너와 배경 이미지
- SNS 이미지와 썸네일
- 60~80% 파일 크기 절감이 픽셀 완벽함보다 중요한 모든 이미지
대부분의 웹 사진에서 최적 품질 설정은 75~85입니다. 이 범위에서 원본과의 시각적 차이는 일반 보기 크기에서 감지되지 않지만, 파일은 60~80% 작아집니다. Vizua의 JPEG 압축기나 WebP 압축기로 직접 테스트해 보세요. 품질을 조절하고 전후를 비교할 수 있습니다.
무손실 압축을 쓸 때:
- 텍스트가 포함된 스크린샷 (손실 압축은 텍스트를 흐리게 만듦)
- 로고와 브랜드 자산 (정확한 색상 재현이 중요)
- 기술 다이어그램과 일러스트레이션
- 투명도가 필요한 이미지 (PNG 또는 무손실 WebP)
- 나중에 편집할 수 있는 보관용 사본
PNG 파일의 경우, Vizua의 PNG 압축기가 인코딩을 최적화하고 메타데이터를 제거해 단 하나의 픽셀도 건드리지 않으면서 파일 크기를 줄여줍니다.
자주 묻는 질문
손실 압축과 무손실 압축의 차이를 눈으로 구별할 수 있나요?
고품질 설정(JPEG 80 이상, WebP 75 이상)에서는 대부분의 사람이 차이를 느끼지 못합니다. SSIM 지표로 측정했을 때 0.95 이상이면 인간의 눈에 동일하게 보입니다. 차이가 눈에 띄는 건 공격적인 압축(JPEG 60 이하) 수준이거나 텍스트, 머리카락 같은 세밀한 디테일을 200% 이상 확대했을 때뿐입니다.
PNG는 항상 무손실인가요?
표준 PNG는 항상 무손실입니다. 모든 픽셀이 정확히 보존됩니다. 다만 일부 도구에서 색상 팔레트를 1670만 색(24비트)에서 256색(8비트)으로 줄이는 "손실 PNG" 최적화를 제공합니다. 엄밀히는 손실이지만, 대부분의 스크린샷과 일러스트에서 육안으로 구분이 안 되면서 파일 크기가 70~80% 줄어듭니다.
웹사이트 이미지에는 어떤 압축 방식이 좋을까요?
사진에는 손실 압축(JPEG, 손실 WebP, AVIF)이, 텍스트나 선명한 가장자리, 투명도가 있는 그래픽에는 무손실(PNG, 무손실 WebP)이 적합합니다. 핵심 기준은 실제 표시 크기에서의 시각적 품질입니다. 압축된 사진이 화면에 표시될 크기에서 원본과 동일하게 보인다면, 손실 압축이 정답입니다.
이미지를 여러 번 압축하면 화질이 계속 나빠지나요?
손실 포맷의 경우 그렇습니다. 저장, 다시 열기, 다시 저장을 반복할 때마다 "세대 손실(generation loss)"이라 불리는 추가 품질 저하가 발생합니다. 사진가들이 RAW나 TIFF 원본을 보관하고 JPEG/WebP는 최종 단계에서만 내보내는 이유입니다. 무손실 포맷은 이 문제가 없습니다. PNG를 몇 번이든 재압축해도 품질 저하가 전혀 없습니다.