사진 용량 줄이는 원리 — 해상도·품질·서브샘플링·메타데이터
사진 용량을 결정하는 다섯 가지 요소(해상도, 품질과 양자화, 크로마 서브샘플링, 메타데이터, 포맷)를 설명하고, 200KB 같은 목표 용량에 맞출 때 품질과 해상도를 어떤 순서로 조절해야 화질 손실이 적은지 정리했습니다.
사진 파일의 용량은 "몇 개의 픽셀을, 픽셀 하나당 몇 비트로, 어떤 부가 정보와 함께" 저장하느냐로 정해집니다. 스마트폰 사진 한 장이 3~5MB인데 원서 업로드 창은 100~500KB를 요구하는 일이 흔한데, 이 차이를 좁히는 방법은 크게 다섯 가지입니다. 이 글은 각 방법이 용량과 화질에 어떤 영향을 주는지, 그리고 목표 용량에 맞출 때 어떤 순서로 조절하는 것이 좋은지 설명합니다.
1. 해상도 — 가장 확실하게 줄어드는 요소
압축 전의 원시 데이터 크기는 가로 픽셀 × 세로 픽셀 × 3바이트(RGB) 입니다. 4032×3024 픽셀 사진이면 약 1,219만 픽셀, 원시 데이터로 약 36MB입니다. 가로·세로를 각각 절반으로 줄이면 픽셀 수는 4분의 1이 되므로, 압축 후 용량도 대략 비슷한 비율로 줄어듭니다.
| 가로×세로(px) | 픽셀 수 | 원시 데이터(RGB) | 쓰임 예 |
|---|---|---|---|
| 4032×3024 | 약 1,219만 | 약 36.6MB | 스마트폰 원본 |
| 2016×1512 | 약 305만 | 약 9.1MB | 블로그 본문 고화질 |
| 1080×1350 | 약 146만 | 약 4.4MB | 인스타그램 세로 게시물 |
| 413×531 | 약 22만 | 약 0.66MB | 여권 사진(온라인 신청 권장 크기) |
원서 사진처럼 필요한 픽셀 크기가 정해져 있으면 먼저 그 크기로 줄이세요. 그것만으로 목표 용량을 통과하는 경우가 많습니다. 외교부 온라인 여권 사진은 413×531 픽셀을 권장하고 500KB 이하를 요구하는데, 이 크기로 줄인 JPG는 보통 높은 품질에서도 제한을 여유 있게 통과합니다.
2. 품질과 양자화 — JPG·WebP의 "품질" 슬라이더가 하는 일
JPG는 이미지를 8×8 블록으로 나눠 주파수 성분으로 변환한 뒤, 각 성분을 양자화 테이블의 값으로 나누고 반올림합니다. 품질 값을 낮추면 이 나누는 수가 커지고, 반올림 후 0이 되는 고주파 성분이 많아집니다. 0이 길게 이어지면 뒤따르는 엔트로피 부호화(허프만 부호)가 이를 아주 짧게 표현하므로 용량이 줄어듭니다.
- 품질 90 이상: 눈으로는 원본과 구분이 어렵지만 용량이 급격히 커지는 구간입니다.
- 품질 70~85: 사진에서 가장 효율이 좋은 구간입니다. 대부분의 웹 사진이 이 범위에 있습니다.
- 품질 50 이하: 하늘·피부의 계단 현상, 경계 주변의 얼룩(링잉), 8×8 블록 경계가 보이기 시작합니다.
품질 값과 용량의 관계는 직선이 아닙니다. 품질을 95에서 85로 내릴 때 용량이 크게 줄어들고, 60에서 50으로 내릴 때는 줄어드는 폭이 작으면서 화질 손상은 더 눈에 띕니다. 그래서 품질을 60 아래로 내려야 할 상황이면 해상도를 줄이는 편이 결과가 더 좋습니다.
3. 크로마 서브샘플링 — 색 정보를 덜 저장하기
사람의 눈은 밝기 변화에는 민감하지만 색 변화에는 덜 민감합니다. 그래서 JPG와 손실 WebP는 RGB를 밝기(Y)와 색차(Cb, Cr)로 바꾼 뒤, 색차를 가로·세로 절반 해상도로 저장하는 방식(4:2:0)을 흔히 씁니다. 이것만으로 색 정보가 4분의 1로 줄어 전체 원시 데이터가 절반이 됩니다.
사진에서는 차이가 거의 보이지 않지만, 빨간 글씨·얇은 컬러 선이 있는 이미지에서는 글자 가장자리가 번져 보일 수 있습니다. 손실 WebP는 명세상 항상 4:2:0을 쓰므로(MDN), 색 글자가 중요한 그래픽은 PNG나 무손실 WebP가 더 적합합니다.
4. 메타데이터 — 사진 안에 숨은 수십 KB
스마트폰 사진에는 촬영 기기, 시각, GPS 좌표 같은 EXIF 정보와 미리보기용 작은 썸네일, 색 프로필(ICC)이 함께 들어 있습니다. 보통 수 KB~수십 KB로 전체 용량에서 비중은 작지만, 100KB 이하처럼 목표가 작을 때는 무시할 수 없습니다. 무엇보다 위치 정보가 그대로 남는다는 점이 문제입니다. 브라우저의 Canvas로 다시 인코딩하면 이런 정보는 대부분 빠집니다. 자세한 내용은 EXIF 메타데이터와 개인정보를 참고하세요.
5. 포맷 선택 — 같은 화질을 더 적은 바이트로
같은 화질이라면 최신 코덱이 더 작습니다. Google은 손실 WebP가 같은 SSIM 화질에서 JPG보다 25~34% 작다고 발표했고, AVIF는 대개 그보다 더 작습니다. 다만 제출처가 JPG만 받는다면 포맷을 바꿀 수 없으니, 이 방법은 웹 게시용에서 주로 씁니다. 포맷별 차이는 JPG vs PNG vs WebP vs AVIF에 정리했습니다.
품질 값은 포맷끼리, 프로그램끼리 호환되지 않는다
"품질 80"은 표준에 정해진 단위가 아닙니다. 인코더가 품질 값을 양자화 강도로 바꾸는 방식이 제각각이라, 같은 80이라도 JPG와 WebP, AVIF의 결과 화질과 용량이 다르고, 같은 JPG라도 프로그램마다 조금씩 다릅니다. 따라서 "몇으로 저장해야 한다"는 절대 기준보다는 결과 파일을 원본과 확대 비교하며 정하는 것이 정확합니다. 여러 장을 같은 조건으로 처리할 때는 한 장으로 먼저 시험해 보고 나머지에 적용하세요.
점진적(progressive) JPG
JPG 표준(T.81)은 위에서 아래로 한 번에 그리는 기준선(baseline) 방식 외에, 흐릿한 전체 그림을 먼저 보여 주고 점점 선명하게 채우는 점진적(progressive) 방식도 정의합니다. 느린 회선에서 큰 사진을 볼 때 체감 속도가 좋아지는 장점이 있습니다. 용량 차이는 사진에 따라 다르며, 일부 오래된 장비·프로그램은 점진적 JPG를 읽지 못하므로 제출용으로는 기준선 방식이 무난합니다.
예시로 보는 조절 과정
스마트폰으로 찍은 4032×3024 사진(약 3~4MB)을 "가로 1000픽셀 이하, 200KB 이하"로 올려야 한다고 해 봅시다.
- 먼저 가로를 1000픽셀로 줄입니다. 세로는 비율에 따라 750픽셀이 되고, 픽셀 수는 원본의 약 6%로 줄어듭니다. 이 단계만으로 대부분 수백 KB 이하가 됩니다.
- 그 상태에서 품질 85로 저장해 200KB를 넘는지 봅니다. 넘으면 품질을 80, 75 순으로 낮추거나 이진 탐색으로 찾습니다.
- 야간 사진처럼 노이즈가 많아 품질을 60 아래로 내려야 한다면, 가로 900픽셀로 조금 더 줄이는 편이 결과가 깔끔합니다.
목표 용량(KB)에 맞추는 순서
"200KB 이하로 올려 주세요" 같은 조건을 맞출 때는 아래 순서가 화질 손실이 가장 적습니다.
- 필요한 픽셀 크기로 먼저 줄입니다. 규격이 정해져 있으면 그 크기, 없으면 화면에 표시될 크기(예: 가로 1200~2000px)로 맞춥니다.
- 품질을 이진 탐색으로 찾습니다. 품질 50과 95 사이에서 가운데 값으로 저장해 보고, 목표보다 크면 아래쪽 절반을, 작으면 위쪽 절반을 다시 나눕니다. 7~8번이면 목표 이하 중 가장 높은 품질을 찾을 수 있습니다.
- 품질이 너무 낮아지면 해상도를 조금 더 줄입니다. 가로·세로를 10% 줄이면 픽셀 수는 약 19% 줄어듭니다. 그다음 2번을 반복합니다.
- KB 기준을 확인합니다. 1KB를 1,000바이트로 보는 곳과 1,024바이트로 보는 곳이 있습니다. 기준을 모르면 1,000바이트로 계산해 더 작게 맞추면 두 기준을 모두 통과합니다.
- "미만"과 "이하"를 구분합니다. "100KB 미만"이면 정확히 100KB인 파일은 통과하지 못합니다.
사진 용량 줄이기 도구는 이 과정을 자동으로 수행합니다. 목표 KB를 넣으면 품질을 이진 탐색하고, 품질 하한에 닿으면 해상도를 줄여 가며 목표 이하에서 가장 선명한 결과를 고릅니다.
흔한 실수
- 작게 만든 파일을 다시 크게 저장하기: 이미 품질 60으로 저장한 JPG를 품질 95로 다시 저장하면 용량만 커지고 화질은 돌아오지 않습니다.
- 여러 번 반복 압축하기: 저장할 때마다 손실이 누적됩니다. 항상 원본에서 한 번에 원하는 결과를 만드세요.
- 스크린샷을 JPG로 압축하기: 글자가 뭉개지고 오히려 PNG보다 커지는 경우도 있습니다. 화면 캡처는 PNG로 두거나 해상도를 줄이세요.
자주 묻는 질문
품질 100으로 저장하면 원본과 똑같아지나요?
JPG는 품질 100에서도 색 변환과 반올림 과정의 손실이 남기 때문에 완전한 무손실은 아닙니다. 그리고 품질 90 이상에서는 눈에 보이는 차이는 거의 없는데 용량만 크게 늘어나는 경우가 많습니다.
해상도를 줄이면 화질이 나빠지지 않나요?
화면에서 보는 크기보다 큰 해상도는 어차피 축소되어 표시되므로 줄여도 체감 차이가 적습니다. 반대로 필요한 크기보다 작게 줄인 뒤 다시 키우면 흐려지므로, 최종 용도의 픽셀 크기를 먼저 확인하세요.
같은 설정인데 사진마다 용량이 다른 이유는 무엇인가요?
압축 효율은 사진 내용에 따라 크게 달라집니다. 파란 하늘처럼 단순한 사진은 작게, 나뭇잎·모래·노이즈가 많은 야간 사진처럼 세부가 많은 사진은 크게 나옵니다.