JPEG2000 – JPEG2000 파트1의 구현
드라이버 단축 이름
JPEG2000
빌드 의존성
libjasper
Deprecated
GDAL 3.5에서 이 드라이버를 제거할지 고려 중입니다. 해당 포맷의 모든 데이터셋을 더 자주 사용되는 다른 포맷으로 변환할 것을 추천합니다. 이후 GDAL 버전에서 이 드라이버가 필요한 경우, 이 드라이버가 얼마나 중요한지 설명하려면(먼저 기존 티켓을 찾아본 다음) https://github.com/OSGeo/gdal 에서 티켓을 생성하십시오.(그래도 GDAL 프로젝트가 해당 드라이버를 제거할 수도 있습니다.) 퇴출된 드라이버 사용을 활성화하려면 GDAL_ENABLE_DEPRECATED_DRIVER_JPEG2000 환경설정 옵션 / 환경 변수를 YES로 설정해야만 합니다.
이 드라이버는 재스퍼(JasPer) 소프트웨어를 기반으로 구현되었습니다. (아래 참조)
JPEG2000 파일로부터 XMP 메타데이터를 추출할 수 있고, xml:XMP 메타데이터 도메인에 추출한 메타데이터를 XML 원본(raw) 내용으로 저장할 것입니다.
드라이버 케이퍼빌리티
CreateCopy() 지원
이 드라이버는 GDALDriver::CreateCopy()
작업을 지원합니다.
지리참조 작업 지원
이 드라이버는 지리참조 작업을 지원합니다.
VirtualIO 지원
이 드라이버는 virtual I/O operations (/vsimem/, etc.) 를 지원합니다.
지리참조 작업
내부(GeoJP2 또는 GMLJP2 경계 상자), 월드 파일 .j2w/.wld 사이드카 파일, 또는 PAM(Persistent Auxiliary metadata) .aux.xml 사이드카 파일 등 서로 다른 소스들로부터 지리참조 정보를 얻을 수 있습니다. 기본적으로 PAM, GeoJP2, GMLJP2, WORLDFILE 순서대로 정보를 수집합니다. (첫 항목을 가장 우선합니다.)
GDAL 2.2버전부터, GDAL_GEOREF_SOURCES 환경설정 옵션으로 (또는 GEOREF_SOURCES 열기 옵션으로) 사용할 수 있는 소스와 그 우선 순위를 변경할 수 있습니다. 이 옵션의 값은 PAM, GEOJP2, GMLJP2, (GEOJP2, GMLJP2로 가는 단축 키인) INTERNAL, WORLDFILE, NONE이라는 키워드를 쉼표로 구분한 목록입니다. 목록의 첫 항목이 가장 우선되는 소스입니다. 목록에 없는 소스는 무시할 것입니다.
예를 들어 이 옵션을 “WORLDFILE,PAM,INTERNAL”로 설정하면 PAM이나 내부 JP2 경계 상자보다 잠재적인 월드 파일의 지리변형 행렬을 우선할 것입니다. “PAM,WORLDFILE,GEOJP2”로 설정하면 설정된 소스를 이용하고 GMLJP2 경계 상자는 무시할 것입니다.
열기 옵션
다음 열기 옵션들을 사용할 수 있습니다:
1BIT_ALPHA_PROMOTION=YES/NO: 1비트 알파 채널을 8비트로 승격시켜야 할지 여부를 선택합니다. 기본값은 YES입니다.
GEOREF_SOURCES=string: (GDAL 2.2 이상 버전) 사용할 수 있는 지리참조 소스와 그 우선 순위를 정의합니다. 지리참조 작업 단락을 참조하십시오.
생성 옵션
WORLDFILE=ON: 관련 ESRI 월드 파일(.wld)을 강제로 생성합니다.
FORMAT=JP2|JPC: 산출 파일 포맷을 지정합니다.
GMLJP2=YES/NO: JPEG2000 사양의 OGC GML을 준수하는 GML 경계 상자가 파일에 포함되어야 하는지를 선택합니다. GMLJP2V2_DEF를 사용하지 않는 이상, GMLJP2 경계 상자의 버전은 1일 것입니다. 현재 코드스트림 뒤에 GMLJP2 경계 상자를 작성도록 구현되었습니다. 기본값은 YES입니다.
GMLJP2V2_DEF=filename: OGC GML-in-JPEG2000 버전 2.0 사양을 준수하는 GML 경계 상자가 파일에 포함되어야 하는지를 선택합니다. filename 이 GMLJP2 v2 경계 상자를 어떻게 작성해야 할지 정의하는 JSON 콘텐츠를 가진 파일을 가리켜야만 합니다. JSON 환경설정 파일의 문법에 대해서는 JP2OpenJPEG 드라이버 문서에 있는 GMLJP2v2 정의 파일 단락 을 참조하십시오. JSON 콘텐츠를 그때 그때 처리해서(inline) 문자열로 직접 전송할 수도 있습니다. filename을 그냥 YES로 설정하면, 최소한의 인스턴스만 빌드할 것입니다. 현재 코드스트림 뒤에 GMLJP2 경계 상자를 작성도록 구현되었습니다.
GeoJP2=YES/NO: (GeoJP2를 지원하도록 빌드된 재스퍼 라이브러리 수정 버전이 필요합니다.) GeoJP2 (GeoTIFF-in-JPEG2000) 사양을 준수하는 UUID/GeoTIFF 경계 상자가 파일에 포함되어야 하는지를 선택합니다. 기본값은 YES입니다.
NBITS=int_value : (GDAL 2.3 이상 버전) sub-byte형 파일(1-7), sub-uint16형 파일(9-15)의 비트(정밀도)입니다.
재스퍼 문서에 설명된, 재스퍼 라이브러리에 직접 전달되는 인코딩 파라미터들입니다. 다음은 해당 문서에서 발췌한 내용입니다:
인코더가 다음 옵션들을 지원합니다:
JasPer Encoding Parameters imgareatlx=x
이미지 영역의 좌상단 모서리의 X좌표를 x로 설정합니다.
imgareatly=y
이미지 영역의 좌상단 모서리의 Y좌표를 y로 설정합니다.
tilegrdtlx=x
타일화 그리드의 좌상단 모서리의 X좌표를 x로 설정합니다.
tilegrdtly=y
타일화 그리드의 좌상단 모서리의 Y좌표를 y로 설정합니다.
tilewidth=w
명목상의 타일 너비를 w로 설정합니다.
tilewidth=h
명목상의 타일 높이를 h로 설정합니다.
prcwidth=w
구역(precinct) 너비를 w로 설정합니다. w인자는 2의 거듭제곱 정수여야만 합니다. 기본값은 32768입니다.
prcheight=h
구역(precinct) 높이를 h로 설정합니다. h인자는 2의 거듭제곱 정수여야만 합니다. 기본값은 32768입니다.
cblkwidth=w
명목상의 코드 블록 너비를 w로 설정합니다. w인자는 2의 거듭제곱 정수여야만 합니다. 기본값은 64입니다.
cblkheight=h
명목상의 코드 블록 높이를 h로 설정합니다. h인자는 2의 거듭제곱 정수여야만 합니다. 기본값은 64입니다.
mode=m
코딩 모드를 m으로 설정합니다. m인자는 다음 값들 가운데 하나여야만 합니다:
int : 정수형 모드
real : 실수형 모드
비손실 코딩을 원한다면 정수형 모드를 사용해야만 합니다. 기본값은 정수형 모드입니다. 코딩 모드를 선택하면 어떤 다중 구성요소 및 (존재하는 경우) 웨이블릿 변환을 사용할지도 결정됩니다.
rate=r
대상의 압축률을 지정합니다. r인자는 양의 실수값입니다. 1로 지정하면 압축하지 않기 때문에, 1을 초과하는 값으로 지정할 필요는 없습니다. 기본적으로 대상 압축률을 무한대로 간주합니다.
ilyrrates=[, ,… ,]
모든 중간(intermediate) 레이어의 압축률을 지정합니다. 이 옵션의 인자는 N개의 압축률을 쉼표로 구분한 목록입니다. 각 압축률은 양의 실수값입니다. 압축률은 점증해야만 합니다. 이 목록의 마지막 압축률은 (rate 옵션으로 지정한) 전체 압축률 미만 또는 동일해야 합니다.
prg=p
진행 순서를 p로 설정합니다. p인자는 다음 값들 가운데 하나여야만 합니다:
lrcp : 레이어-해상도-구성요소-위치 (LRCP) 진행 (예: 압축률 용량 조정 가능)
rlcp : 해상도-레이어-구성요소-위치 (RLCP) 진행 (예: 해상도 조정 가능)
rpcl : 해상도-위치-구성요소-레이어 (RPCL) 진행
pcrl : 위치-구성요소-해상도-레이어 (PCRL) 진행
cprl : 구성요소-위치-해상도-레이어 (CPRL) 진행
기본값은 LRCP 진행 순서입니다. 가능한 모든 이미지 도형에 대해 RPCL 및 PCRL 진행은 사용할 수 없다는 사실을 기억하십시오. (더 자세한 내용은 재스퍼 표준을 참조하십시오.)
nomct
모든 다중 구성요소 변환 사용을 금지합니다.
numrlvls=n
해상도 수준 개수를 n으로 설정합니다. n인자는 1 이상의 정수값이어야만 합니다. 기본값은 6입니다.
sop
SOP 마커 부분을 생성합니다.
eph
EPH 마커 부분을 생성합니다.
lazy
(산술 코딩 바이패스라고도 하는) 여유 있는 코딩 모드를 활성화합니다.
termall
모든 코딩 패스를 종료합니다.
segsym
분할(segmentation) 심볼을 사용합니다.
vcausal
수직 스트라이프 인과 관계(vertically stripe casual context)를 사용합니다
pterm
예상 가능한 종료를 사용합니다.
resetprob
각 코딩 패스 다음에 확률 모델을 리셋합니다.
numgbits=n
보호 비트(guard bit)의 개수를 n으로 설정합니다.
참고
gdal/frmts/jpeg2000/jpeg2000dataset.cpp
로 구현되었습니다.이 드라이버가 GeoJP2를 지원하도록 빌드하려면 재스퍼 라이브러리를 수정해야 합니다. 여기 에서 수정 버전을 다운로드할 수 있습니다.
다른 JPEG2000 GDAL 드라이버: