의료 영상 데이터는 크기가 방대하다. 단일 CT 촬영만 해도 수백 MB, MRI 전체 시퀀스를 합치면 수 GB에 달한다. DICOM은 이러한 대용량 데이터를 효율적으로 저장하고 전송하기 위해 여러 가지 압축 방식을 Transfer Syntax로 정의해 두었다. 압축을 선택할 때는 단순히 용량을 줄이는 것만이 아니라, 호환성, 화질 보존 여부, 분석 목적까지 함께 고려해야 한다.
이번 글에서는 무압축, JPEG, JPEG-LS, JPEG2000 등 주요 전송 규약을 비교하고, 각 규약에 대응하는 Transfer Syntax UID를 실제 예시와 함께 살펴본다.
1. Transfer Syntax와 압축 방식의 관계
- Transfer Syntax는 VR/Endian뿐만 아니라, 픽셀 데이터가 어떤 방식으로 저장되었는지를 정의한다.
- 압축 여부와 방식은 저장 공간, 전송 속도, 해석 호환성에 직접적인 영향을 준다.
- 종류:
- 무압축(Uncompressed)
- JPEG 계열(Lossy/Lossless)
- JPEG-LS (Low-complexity, 빠른 압축)
- JPEG2000 (고압축, 고화질)
2. 무압축(Uncompressed) Transfer Syntax
- UID 예시:
- 1.2.840.10008.1.2 → Implicit VR Little Endian
- 1.2.840.10008.1.2.1 → Explicit VR Little Endian
- 1.2.840.10008.1.2.2 → Explicit VR Big Endian
- 특징: 압축 없음, 해석 단순, 호환성 최고
- 활용: 연구용 원본, AI 학습 데이터, 장기 보관
3. JPEG 압축
- UID 예시:
- Lossy JPEG Baseline: 1.2.840.10008.1.2.4.50
- Lossless JPEG: 1.2.840.10008.1.2.4.70
- 특징:
- Lossy: 용량 절감 효과 크지만 화질 저하 가능
- Lossless: 무손실 압축으로 원본 보존
- 활용:
- Lossy → 원격 판독, 전송 속도 개선
- Lossless → 진단 기록, 공유 데이터
4. JPEG-LS 압축
- UID 예시:
- Lossless: 1.2.840.10008.1.2.4.80
- Near-lossless: 1.2.840.10008.1.2.4.81
- 특징: 빠른 속도, 무손실 모드에서 높은 압축 효율
- 활용: 클라우드 PACS, 대규모 영상 서버
- 주의: 일부 상용 뷰어 미지원
5. JPEG2000 압축
- UID 예시:
- Lossless: 1.2.840.10008.1.2.4.90
- Lossy: 1.2.840.10008.1.2.4.91
- 특징: 높은 압축률, 화질 유지, 2D/3D 영상 지원
- 활용: 병리·안과·초고해상도 영상, 원격 스트리밍
- 주의: 느린 인코딩·디코딩, 높은 메모리 사용량
6. UID 확인 예시 (Hex 편집기 + pydicom)
예시: JPEG Baseline (UID: 1.2.840.10008.1.2.4.50)
- Hex 뷰
-
→ 문자열 끝이 .50, JPEG Baseline임을 확인 가능0000: 44 49 43 4D 02 00 00 00 55 49 44 20 31 2E 32 2E 0010: 38 34 30 2E 31 30 30 30 38 2E 31 2E 32 2E 34 2E 0020: 35 30 0A
-
- pydicom 출력
-
import pydicom ds = pydicom.dcmread("example.dcm") print(ds.file_meta.TransferSyntaxUID) # 1.2.840.10008.1.2.4.50
-
이와 같은 방식으로 (0002,0010) 태그를 확인하면, 해당 파일이 어떤 압축 방식을 사용하는지 즉시 알 수 있다.
7. VR/Endian/압축/UID 종합표
구분 | VR 방식 | Endian | 압축 | Transfer Syntax UID |
무압축 | Implicit VR | Little | 없음 | 1.2.840.10008.1.2 |
무압축 | Explicit VR | Little | 없음 | 1.2.840.10008.1.2.1 |
무압축 | Explicit VR | Big | 없음 | 1.2.840.10008.1.2.2 |
JPEG | Explicit VR | Little | Lossy | 1.2.840.10008.1.2.4.50 |
JPEG | Explicit VR | Little | Lossless | 1.2.840.10008.1.2.4.70 |
JPEG-LS | Explicit VR | Little | Lossless | 1.2.840.10008.1.2.4.80 |
JPEG-LS | Explicit VR | Little | Near-lossless | 1.2.840.10008.1.2.4.81 |
JPEG2000 | Explicit VR | Little | Lossless | 1.2.840.10008.1.2.4.90 |
JPEG2000 | Explicit VR | Little | Lossy | 1.2.840.10008.1.2.4.91 |
결론
Transfer Syntax는 DICOM 파일을 올바르게 해석하는 설계도다. 1편에서 다룬 VR/Endian 규칙이 기본 틀을 정의한다면,
이번 2편의 압축 방식과 UID는 데이터 효율성과 활용성을 결정한다. 실무에서는 파일 시작부의 (0002,0010) UID를 반드시 확인해, 호환성과 목적에 맞는 전송 규약을 선택해야 한다.
다음 주제에서는 이 Transfer Syntax와 태그를 기반으로 데이터를 검색·필터링하는 방법을 다루어, 실제 PACS·AI 환경에서 어떻게 응용할 수 있는지 살펴본다.
'개발 > DICOM 태그 구조 마스터하기' 카테고리의 다른 글
6. DICOM Transfer Syntax ① – Explicit VR vs Implicit VR, Little Endian vs Big Endian 완벽 해설 (4) | 2025.08.15 |
---|---|
5. 자주 쓰이는 DICOM 태그 TOP 20 – 의료 IT 필수 레퍼런스 (5) | 2025.08.14 |
4. Endian 규칙과 바이트 순서 해석 – Little vs Big Endian (3) | 2025.08.13 |
3. DICOM Tag 번호 해석법 – Group/Element 구조 이해하기 (3) | 2025.08.12 |
2. DICOM 데이터 요소의 4가지 구성요소 – Tag, VR, Length, Value (2) | 2025.08.11 |