같은 사진 한 장을 두 가지 방식으로 저장한다고 해 보자. HEIC로 저장하면 약 1.8 MB, 품질 90의 JPG로 저장하면 약 3.4 MB가 된다. 보통 크기로 나란히 놓고 보면 차이를 알 수 없다. 400%로 확대하면 JPG가 머리카락, 잔디, 피사체 뒤에 있는 어두운 벽에서 조금 더 부드럽게 보인다.
이렇게 부드러워지는 정도가 제목의 질문에 대한 정직한 답이다. 변환은 픽셀 수준에서 데이터를 잃는다. 맞다. 하지만 보통 눈에 보이는 정보는 그대로 남는다. 그래서 유용한 질문은 그 '그렇다'가 언제 눈에 보이게 되느냐다. 이 글은 실제 수치로 그 경계를 보여 주고, 그 선을 넘지 않는 변환 방법을 알려 준다.
변환은 실제로 무슨 일을 하는가
HEIC는 비디오용으로 만들어진 코덱인 HEVC(H.265)로 이미지를 저장한다. JPG는 DCT 블록 변환과 색차 서브샘플링(chroma subsampling)으로 저장한다. HEIC를 JPG로 변환하면 이미지가 디코딩된 뒤 다른 방식으로 다시 인코딩되는데, 이 재인코딩은 손실이 있다. 이 왕복 과정에서 일부 정보는 살아남지 못한다.
바뀌는 것은 두 가지다. 첫째, 압축 방식에 따라 아티팩트(화질 열화)의 양상이 다르다. HEVC는 같은 비트레이트에서 JPG보다 손실을 더 잘 감춘다. HEIC 파일이 더 작은 이유가 바로 이것이다. 둘째, 색 심도가 낮아진다. HEIC는 10비트나 16비트 채널을 지원하지만, JPG는 8비트로 고정되어 있다. 사진이 채널당 10비트로 저장되어 있다면, JPG로 변환하는 순간 추가 색조는 영구적으로 사라진다.
HEIC가 바이트 수준에서 어떻게 구성되는지 더 자세히 보려면 HEIC 기술 심층 분석에서 컨테이너 박스와 파일 서명을 설명한다.
디테일이 숨는 곳은 비트 심도다
8비트 채널은 빨강, 초록, 파랑을 각각 256단계로 담는다. 10비트 채널은 1,024단계로, 색 하나당 16배 더 정밀하다. 대부분의 폰 카메라 사진에서는 그 차이를 느낄 수 없다. 사진이 완만한 그라데이션으로 색 범위 전체를 채우는 일이 드물기 때문이다. 그 차이는 뻔한 곳에서 드러난다. 진한 주황에서 옅은 노랑으로 번져야 하는 노을 하늘, 창가에서 촬영한 인물 사진 같은 곳이다. 매끄러운 그라데이션은 8비트 파일에서 밴딩이 생기기 쉬운 부분이다. 연속된 번짐 대신 계단처럼 끊긴다.
그래서 손실은 실제다. 하지만 무작위로 발생하지는 않는다. 얼굴이나 건물의 선명한 모서리보다 그라데이션과 저조도 노이즈에 먼저 나타난다. 고품질로 변환하면 그 밖의 손실(블로킹, 링잉, 소프트닝)은 확대하지 않으면 눈에 띄지 않을 만큼 작게 유지된다.
세 가지 품질 설정에서 본 HEIC vs JPG
같은 1200만 화소 사진을 네 가지 방식으로 저장했다. HEIC를 기준으로 하면:
| 파일 | 크기 | HEIC 대비 변화 |
|---|---|---|
| HEIC (원본) | 1.8 MB | 기준 |
| JPG 품질 95 | 4.1 MB | 보통 확대에서 보이는 변화 없음 |
| JPG 품질 90 | 3.4 MB | 400%에서 미세 질감이 살짝 부드러워짐 |
| JPG 품질 75 | 2.1 MB | 하늘에 밴딩, 텍스트 주변 링잉 |
수치는 대표적인 예시일 뿐 정확한 값은 아니다. 사진과 카메라에 따라 달라진다. 다만 패턴은 달라지지 않는다. 원본 HEIC와 비슷한 크기로 변환해도 눈에 보이는 디테일은 유지된다. 품질 슬라이더가 인코더가 대충 처리하기 시작하는 지점까지 내려가야 비로소 대가를 치르게 된다.
손실이 가장 먼저 나타나는 곳
변환 품질이 나쁘면 무엇을 잃는지 알고 싶다면, 다음 순서대로 확인해 보라.
- 밴딩(Banding). 매끄러운 그라데이션이 계단 모양으로 끊긴다. 비트 심도 손실로 인한 현상이며 가장 먼저 나타난다.
- 링잉(Ringing). 대비가 강한 가장자리 주변에 얇은 후광이 생긴다. 텍스트와 창틀에서 가장 잘 보인다.
- 블로킹(Blocking). 평탄한 영역에 8 × 8 격자 블록이 보인다. 보통 품질 80 이상에서는 사라진다.
대부분의 사진에서 고품질 1회 변환은 이 중 어느 것도 유발하지 않는다. 문제를 키우는 것은 재인코딩이다. 인코딩을 거칠 때마다 양자화 노이즈가 조금씩 쌓인다. 이것이 손실 압축과 무손실 압축에서 자세히 다루는 세대 손실(generation loss) 현상이다.
눈에 보이는 디테일의 손실 없이 변환하는 법
규칙은 짧다. 원본 HEIC에서 고품질로 단 한 번만 변환한다. 이미 인코딩을 거친 JPG에서 변환하지 말고, 결과물을 나중에 또 다른 변환에 넣지도 말라.
우리의 HEIC to JPG 변환기는 브라우저에서 직접 변환을 실행하며 품질을 직접 조절할 수 있다. 원본 파일을 그대로 읽는다. HEIC를 올리고 품질 90 이상을 고르면, JPG가 담을 수 있는 최대치에 가까운 결과를 얻는다.
무손실 출력이나 투명도가 필요하다면 품질과 관계없이 JPG는 잘못된 선택이다. 그런 용도는 PNG 몫이다. HEIC vs PNG에서 언제 그 전환이 의미 있는지 다루고, HEIC to WebP 가이드는 웹에 이미지를 올리는 사람을 위한 형식을 설명한다.
요약
HEIC를 JPG로 변환하면 데이터가 손실된다. JPG는 HEIC가 담을 수 있는 전부를 담을 수 없기 때문이다. 품질 90 이상에서는 거의 모든 사진에서 그 손실이 보통 크기로 볼 때 눈에 보이는 수준 아래에 머문다. 누군가 '변환은 언제나 화질을 망친다'고 말한다면, 그 사람은 변환 자체가 아니라 낮은 품질의 변환을 두고 말하는 것이다.

