HEIC란 무엇이고, HEIC와 JPEG 중 무엇을 남겨야 할까요?
휴대폰이 .heic 파일로 저장하는데 노트북에서는 아무것도 열리지 않습니다. 이게 뭐고, 꼭 필요한 건가요?
HEIC라는 이름의 뜻
HEIC는 흔히 High Efficiency Image Container를 가리킵니다. .heic 확장자는 HEIF 계열의 이미지 파일을 뜻하며, 그 안의 픽셀은 대개 HEVC로 인코딩되어 있습니다. 실제 대화에서는 HEIF가 컨테이너 표준이고 HEVC가 그 안의 압축 코덱인데도, 사람들은 아이폰 사진 파일을 가리킬 때 그냥 HEIC라고 말합니다.
이 구분은 .heic를 .jpg로 바꿔도 사진이 변환되지 않는 이유를 설명해 줍니다. 파일 확장자는 이름표에 지나지 않습니다. 소프트웨어는 여전히 그 안에서 HEIF 구조와 HEVC로 압축된 이미지 데이터를 발견합니다. 진짜 변환이라면 그 픽셀을 디코딩한 뒤 새 JPEG, PNG 또는 WebP 파일로 인코딩해야 합니다.
HEIC는 코덱이 아니라 컨테이너입니다
.heic 파일은 HEIF 파일입니다. ISO/IEC 23008-12로 표준화된 High Efficiency Image File Format이지요. HEIF는 MP4가 쓰는 것과 같은 ISO 기반 미디어 파일 구조 위에 세워진 컨테이너입니다. 이미지, 섬네일, 깊이 맵, 이미지 시퀀스, 메타데이터가 파일 안에 어떻게 배치되는지를 규정할 뿐, 픽셀을 어떻게 부호화하는지는 규정하지 않습니다.
아이폰이 만들어 내는 파일에서 픽셀은 HEVC로 부호화됩니다. H.265라고도 불리며, ITU-T H.265로 표준화된 비디오 코덱입니다. 이 포맷의 장점과 문제점이 모두 여기서 나옵니다. 사실상 사진을 최신 비디오 코덱의 프레임 한 장으로 저장하는 셈이기 때문입니다.
휴대폰이 이 포맷을 택한 이유
HEVC에는 1992년에 설계된 JPEG에 없는 인트라 프레임 예측 도구가 있어서, 같은 시각적 품질을 내는 데 대체로 더 적은 비트가 듭니다. 휴대폰의 저장 공간은 유한하지만 사진 보관함은 그렇지 않으므로, 이 절약은 기기 제조사에게 실제 돈으로 환산되는 가치가 있습니다. 또한 이 컨테이너 덕분에 서로 연관된 여러 이미지를 폴더에 흩어 놓지 않고 한 파일에 담을 수 있습니다. 연사로 찍은 프레임들, Live Photo의 정지 이미지와 짧은 영상, 알파 채널이나 깊이 채널 같은 것들입니다.
어떤 사람들에게는 용량보다 더 중요한 두 번째 이점이 있습니다. HEIF는 채널당 8비트가 넘는 심도를 지원합니다. 10비트 이미지는 그러데이션에 훨씬 넉넉한 여유가 있고, 그래서 하늘과 피부 톤이 8비트 JPEG에서보다 편집을 더 잘 견딥니다.
다른 소프트웨어가 이 파일을 열지 못하는 이유
HEVC는 특허가 걸린 코덱이고, 디코더에도 라이선스 의무가 따릅니다. 이것은 기술적 사실이 아니라 법적이고 상업적인 사실이며, 지원이 들쭉날쭉한 주된 이유입니다. 어떤 운영체제는 디코더를 기본으로 탑재하고, 어떤 운영체제는 하드웨어 디코더가 있을 때만 탑재하며, 어떤 브라우저는 HEIC를 디코딩하지만 어떤 브라우저는 하지 못합니다. 사진을 찍은 휴대폰에서는 즉시 열리는 파일이 3미터 떨어진 컴퓨터에서는 읽히지 않을 수 있습니다.
FileSlimmer가 HEIC를 디코딩하기만 하고 절대 쓰지는 않는 이유가 여기에 있습니다. 변환은 브라우저 안에서 실행되며, 플랫폼 디코더가 있으면 그것을, 없으면 자체 호스팅한 WebAssembly 디코더를 사용합니다. 출력은 JPEG, PNG 또는 WebP, 즉 받는 쪽 소프트웨어가 실제로 열 수 있는 포맷입니다.
HEIC와 JPEG, 솔직한 비교
| 항목 | HEIC, 즉 HEVC를 담은 HEIF | JPEG |
|---|---|---|
| 비슷한 품질에서의 용량 | 대체로 더 작음 | 대체로 더 큼 |
| 비트 심도 | 채널당 8비트 또는 10비트 | 채널당 8비트 |
| 투명도 | 지원 | 지원 안 함 |
| 한 파일에 여러 이미지 | 지원 | 지원 안 함 |
| 낯선 소프트웨어에서 열리는가 | 열리지 않는 경우가 많음 | 거의 언제나 열림 |
| 라이선스 | 특허가 걸린 코덱 | 사실상 제약 없음 |
HEIC 파일이 감추고 있을 수 있는 것
이 컨테이너는 여러 이미지를 묶어 담을 수 있으므로, .heic 파일 하나에 눈에 보이는 사진 이상의 것이 들어 있을 수 있습니다. Live Photo는 정지 이미지 옆에 짧은 이미지 시퀀스를 함께 담습니다. 인물 사진에는 깊이 맵이 들어 있을 수 있습니다. 연사 사진에는 여러 프레임이 들어 있고 그중 하나가 대표로 지정되어 있을 수 있습니다. JPEG로 변환하면 평평한 이미지 하나가 나오므로, 컨테이너가 대표 이미지 옆에 함께 싣고 있던 것은 결과물에 남지 않습니다.
회전 정보는 따로 짚을 만합니다. HEIC는 JPEG와 똑같이 회전을 메타데이터로 기록합니다. 이를 무시하는 변환기는 옆으로 누운 사진을 만들어 냅니다. FileSlimmer는 변환 과정에서 기록된 방향을 픽셀에 적용하므로, JPEG는 휴대폰이 보여 주던 모습 그대로 보입니다.
그래서 어떤 사본을 남겨야 할까요?
- HEIC를 읽을 수 있는 생태계 안에서만 지내고, 더 작은 보관함과 여분의 비트 심도가 가치 있다면 HEIC를 원본으로 남기십시오.
- 밖으로 내보내는 것은 모두 JPEG로 변환하십시오. 업로드 양식, 인화 서비스, 이메일 첨부, 무슨 소프트웨어를 쓰는지 모르는 동료가 여기에 해당합니다.
- 편집을 위해 무손실 결과물이 필요할 때만 PNG로 변환하십시오. 파일은 나머지 두 포맷보다 상당히 커집니다.
- HEIC가 유일한 원본이라면, HEIC를 JPEG로 변환한 뒤 HEIC를 지우지 마십시오. 그 변환은 이미 손실 압축된 이미지를 다시 손실 압축하는 작업입니다.
변환하기 전에 알아 둘 한계
변환은 두 번째 손실 압축이므로, 높은 설정에서도 품질이 조금은 손실됩니다. 브라우저가 HEVC를 아예 디코딩하지 못하고 자체 호스팅한 대체 디코더도 특정 변종을 처리하지 못한다면, 즉 흔치 않은 프로파일이거나 손상된 파일이거나 같은 컨테이너 안에 HEVC가 아닌 코덱이 들어 있는 경우라면, 변환은 잘못된 결과를 내놓는 대신 실패합니다. FileSlimmer는 어떤 파일이 왜 실패했는지 알려 주고, 원본은 그대로 둡니다.
이 문제를 근본에서 없애고 싶다면, 대부분의 휴대폰 카메라에는 촬영 포맷을 다시 JPEG로 되돌리는 호환성 설정이 있습니다. 저장 공간을 내주고 누구에게든 파일을 건넬 수 있는 능력을 얻는 셈입니다.
관련 도구
출처
- ISO/IEC 23008-12 — High Efficiency Image File Format
- ITU-T H.265 — High Efficiency Video Coding
- Nokia Technologies — HEIF technical overview