OpenEXR 이미지 (.exr)
Academy 표준OpenEXR(EXR)은 영화 및 시각효과(VFX) 산업의 표준 고다이나믹레인지(HDR) 이미지 포맷으로, 무한한 레이어에 걸쳐 16비트 하프 및 32비트 부동소수점 픽셀을 지원합니다.
검사 및 메타데이터
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 EXR 파일을 식별합니다:
바이트 단위 헤더 시그니처 (매직 바이트)
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 EXR 파일을 식별합니다:
16진수 시그니처 (오프셋 0):
76 2F 31 01ASCII 표현: v/1.
표준화: Academy Software Foundation (ASWF) Open Standard
기술 사양
| 컨테이너 아키텍처 | Extensible chunk-based container supporting arbitrary channels, parts, and deep data layers |
| 압축 | PIZ (wavelet), ZIP/ZIPS, RLE, B44/B44A, DWAA/DWAB (lossy DCT), and uncompressed |
| 바이트 엔디안 | Little-Endian (Intel x86) |
| 색 공간 | Linear ACEScg, ACES2065-1, Linear Rec.709, Arbitrary chromaticity coordinates |
| 채널 및 구조 | Arbitrary channel names (R, G, B, A, Z-depth, Normal, WorldPos, MotionVectors, Cryptomatte) |
| 최대 크기 | Practically unlimited (supports tiled deep zoom and multi-gigapixel canvas bounds) |
| 투명도 | Full floating-point alpha channel and deep-compositing volumetric sample arrays |
| 스트리밍 및 프로그레시브 | Scanline or tiled chunk streaming enables fast partial-frame reads and proxy rendering |
기술 비교 매트릭스: EXR 대 경쟁사
| 기술적 속성 | EXR (현재) | HDR | TIFF | PNG |
|---|---|---|---|---|
| 다이나믹 레인지 | 16비트 하프 및 32비트 플로트 리니어 | 8비트 공유 지수(RGBE) | 정수형 8/16비트 또는 32비트 플로트 | 표준 8비트 / 16비트 정수 |
| 다채널 패스 | 무제한 임의 명명 채널 및 파트 | RGB 전용 | 제한된 레이어 지원 | RGBA 전용 |
| 업계 채택률 | 100% 범용 VFX 및 할리우드 3D 표준 | 레거시 3D 라이팅 / 파노라마 | 프리프레스 및 사진 | 범용 웹 표준 |
| 색 관리 | ACES 및 OpenColorIO 네이티브 통합 | 임시 감마 / 리니어 | ICC 프로필 태그 | sRGB / ICC 태그 |
일반적인 손상 모드 및 헥스 복구 가이드
이미지가 완전히 어둡게 렌더링되거나 핵폭발 같은 흰색 얼룩과 함께 날아간 상태로 표시됩니다.
근본 원인: 리니어-투-sRGB 디스플레이 변환 누락 또는 잘못된 ACES 색 공간 할당.
복구: File2File HDR 뷰어에서 ACEScg 또는 Linear-to-sRGB 톤 커브 변환을 적용하세요.
보안 분석 및 파서 공격 벡터
복잡한 청크 기반 OpenEXR 파서는 메모리 안전성 문제를 방지하기 위해 채널 정의와 타일 경계를 엄격하게 검증해야 합니다.
알려진 공격 벡터
- libopenexr의 다채널 버퍼 스트라이드 계산 중 정수 오버플로.
- PIZ 또는 DWAA 압축 스트림 압축 해제 중 힙 버퍼 오버런 읽기.
- 깊이 중첩된 멀티파트 청크 헤더 재귀를 통한 서비스 거부(DoS) 공격.
방어적 모범 사례:
역사적 배경 및 주요 이력
주요 장점
- 네이티브 16비트 하프 플로트(FP16) 및 32비트 플로트(FP32) 지원으로 직사광선부터 어두운 그림자까지 극단적인 휘도를 보존합니다.
- 임의의 다채널 아키텍처는 모든 3D 렌더 패스(뷰티, 디퓨즈, 스페큘러, 뎁스, 크립토매트)를 단일 파일에 캡슐화합니다.
- 업계 최고 수준의 DWAA/DWAB 및 PIZ 압축 알고리즘을 통해 화질 손실 없이 뛰어난 압축률을 달성합니다.
기술적 제한 사항 및 단점
- 압축되지 않은 다중 레이어 4K/8K 32비트 렌더 패스 저장 시 상당한 파일 크기가 발생합니다.
- 일반 사용자용 소프트웨어에서 다채널 압축 해제 시 높은 CPU 및 메모리 오버헤드가 발생합니다.
- 표준 sRGB 디스플레이에서 올바르게 렌더링하려면 색 관리 변환(ACES 또는 OCIO)이 필요합니다.
흥미로운 기술적 상식
- 인더스트리얼 라이트 앤 매직(ILM)은 OpenEXR 포맷을 위해 특별히 16비트 '하프' 부동소수점 데이터 타입을 발명했습니다.
- 모든 EXR 파일의 처음 4바이트 매직 바이트는 0x76 0x2F 0x31 0x01이며, 이는 ASCII로 'v/1\x01'에 해당합니다.
- OpenEXR은 반투명한 연기와 구름 속의 서로 다른 거리에서 단일 픽셀이 여러 색상 및 깊이 샘플을 저장하는 '딥 데이터'를 지원합니다.
자주 묻는 기술 질문
OpenEXR이 할리우드 시각효과(VFX)의 표준 포맷인 이유는 무엇인가요?
포토리얼리스틱 시각효과에 필요한 무한한 다이나믹 레인지, 멀티레이어 3D 렌더 패스, 그리고 딥 합성 정보를 갖춘 16비트 및 32비트 부동소수점 광도(light value)를 저장할 수 있기 때문입니다.
EXR의 하프 플로트(half float)와 플로트(float)의 차이점은 무엇인가요?
하프 플로트는 컬러 채널당 16바이트가 아닌 16비트를 사용하여, 전체 32비트 플로트 파일 크기의 절반으로 30스톱의 다이나믹 레임을 제공하므로 뷰티 렌더에 업계에서 가장 선호되는 방식입니다.
EXR을 표준 PNG 또는 JPG로 어떻게 변환할 수 있나요?
웹 브라우저 내에서 직접 File2File.app을 사용하여 EXR 파일을 톤맵핑된 PNG 또는 JPG 이미지로 변환할 수 있습니다.