본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

래스터 데이터 압축은 지리정보시스템에서 일정한 격자(셀)마다 값을 저장하는 래스터 자료의 크기를 줄이려고, 같은 값이 이어지거나 뭉쳐 있는 성질을 이용해 저장하는 방법이다.

래스터 자료는 구조가 단순하지만 셀 하나하나에 값을 적으므로 해상도를 높이면 용량이 급격히 커진다. 그런데 토지 이용도·토양도 같은 주제도는 같은 값의 셀이 넓게 뭉쳐 있다. 이 반복을 짧게 표현하면 정보를 잃지 않고(무손실) 용량을 줄일 수 있다. 대표적인 방법이 런렝스 코드, 체인 코드, 블록 코드, 사분트리다.

방법 원리 특징
런렝스 코드(Run-length Code) 행 단위로 읽어 같은 값이 연속되는 구간(run)을 '값과 개수' 또는 '시작 열·끝 열·값' 으로 저장한다 → 런렝스 인코딩 가장 단순하고 널리 쓴다. 1차원(행 방향) 반복만 이용한다
체인 코드(Chain Code) 한 영역의 경계를 시작점 좌표와, 그 점에서 이웃 셀로 옮겨 가는 방향 번호(4방향은 0~3, 8방향은 0~7)의 연속으로 저장한다 영역의 둘레와 모양을 간결하게 나타낸다. 면적·둘레 계산이 쉽지만 경계를 공유하는 영역은 두 번 저장한다
블록 코드(Block Code) 런렝스를 2차원으로 넓혀, 같은 값의 영역을 여러 크기의 정사각형 블록으로 나누고 블록마다 기준 좌표와 한 변의 크기만 저장한다 2차원 뭉침을 이용한다. 블록 분할이 계층적이지 않다
사분트리(Quadtree) 전체 영역을 4개의 정사각형으로 나누고, 안의 값이 모두 같지 않은 사분면만 다시 4개로 나누기를 계층적으로 되풀이한다. 값이 한 가지인 사분면은 더 나누지 않고 잎 노드 하나로 저장한다 넓은 균일 영역은 큰 칸 하나로, 복잡한 경계 부근만 잘게 저장한다. 공간 색인으로도 쓴다
  • "공간을 4개의 정사각형으로 계층적으로 분할하여 압축" 하는 것은 사분트리다. 블록 코드도 정사각형을 쓰지만 4분할을 되풀이하는 계층 구조가 아니고, 런렝스는 행 방향의 연속 구간, 체인 코드는 경계의 방향을 저장한다

다음 4×4 래스터를 런렝스로 저장하면 행마다 (값, 개수) 쌍이 된다.

A A A A      → (A,4)
A A B B      → (A,2)(B,2)
A A B B      → (A,2)(B,2)
C C B B      → (C,2)(B,2)

사분트리로는 전체를 4등분해 왼쪽 위(A 만), 오른쪽 위(A·B 섞임), 왼쪽 아래(A·C 섞임), 오른쪽 아래(B 만)로 나누고, 섞인 두 사분면만 다시 4등분한다. 균일한 두 사분면은 노드 하나씩으로 끝난다.