개발/DICOM 태그 구조 마스터하기

7. DICOM Transfer Syntax ② – JPEG, JPEG-LS, JPEG2000 압축 방식 비교와 UID 활용 가이드

devbake 2025. 8. 16. 18:20

 의료 영상 데이터는 크기가 방대하다. 단일 CT 촬영만 해도 수백 MB, MRI 전체 시퀀스를 합치면 수 GB에 달한다. DICOM은 이러한 대용량 데이터를 효율적으로 저장하고 전송하기 위해 여러 가지 압축 방식을 Transfer Syntax로 정의해 두었다. 압축을 선택할 때는 단순히 용량을 줄이는 것만이 아니라, 호환성, 화질 보존 여부, 분석 목적까지 함께 고려해야 한다.
 이번 글에서는 무압축, JPEG, JPEG-LS, JPEG2000 등 주요 전송 규약을 비교하고, 각 규약에 대응하는 Transfer Syntax UID를 실제 예시와 함께 살펴본다.

 

DICOM Transfer Syntax ② – JPEG, JPEG-LS, JPEG2000 압축 방식 비교와 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 뷰
    • 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
      → 문자열 끝이 .50, JPEG Baseline임을 확인 가능
       
  • 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

 

 

 


결론

DICOM Transfer Syntax

Transfer Syntax는 DICOM 파일을 올바르게 해석하는 설계도다. 1편에서 다룬 VR/Endian 규칙이 기본 틀을 정의한다면,
이번 2편의 압축 방식과 UID는 데이터 효율성과 활용성을 결정한다. 실무에서는 파일 시작부의 (0002,0010) UID를 반드시 확인해, 호환성과 목적에 맞는 전송 규약을 선택해야 한다.
다음 주제에서는 이 Transfer Syntax와 태그를 기반으로 데이터를 검색·필터링하는 방법을 다루어, 실제 PACS·AI 환경에서 어떻게 응용할 수 있는지 살펴본다.