인덱스 컬러(Indexed color)는 디지털 이미지의 색 표현 방식 중 하나로, 이미지 내의 각 픽셀에 실제 색상의 RGB값을 직접 저장하는 것이 아니라, 미리 정의된 색상표(팔레트)에서 색상의 인덱스(번호)를 저장하는 방식을 말한다. 인덱스 컬러는 일반적으로 1 bit(흑백), 2 bit(4색), 4 bit(16색), 8 bit(256색) 등 제한된 비트 수를 사용하여 색상을 표현한다.
개념 및 작동 원리
- 색상표(팔레트): 이미지 파일에 포함되는 별도의 색상 테이블이며, 각 항목은 24 bit(또는 32 bit) RGB(A) 값으로 정의된다. 인덱스 컬러 이미지에서는 픽셀 데이터가 이 테이블의 위치를 가리키는 인덱스로만 구성된다.
- 픽셀 데이터: 실제 이미지 데이터를 구성하는 바이트들은 색상표의 인덱스를 담고 있다. 예를 들어 8 bit 인덱스 컬러 이미지에서는 0~255 범위의 값이 색상표의 256번째 색을 참조한다.
- 저장 효율: 제한된 색상 수로 인해 파일 크기가 크게 감소한다. 이는 특히 메모리와 저장 용량이 제한된 초기 컴퓨터 환경에서 유용하였다.
역사
인덱스 컬러는 1980년대 초반 개인용 컴퓨터와 초기 그래픽 소프트웨어에서 널리 사용되었다. IBM PC의 VGA 모드(256색)와 같은 하드웨어는 인덱스 컬러 방식을 기본 제공했으며, 이후 Windows 3.x, Mac OS Classic 등에서도 기본 그래픽 포맷으로 채택되었다. 1990년대 중반에 들어서면서 하드웨어 성능이 향상되고, True Color(24 bit)와 Direct Color(16 bit) 방식이 보편화되면서 인덱스 컬러의 사용 비중은 감소하였다. 그러나 웹 그래픽(GIF, PNG‑8) 및 일부 모바일 애플리케이션 등에서는 파일 크기 절감 목적에 따라 여전히 활용되고 있다.
주요 파일 포맷
- GIF(Graphics Interchange Format): 최대 256색의 인덱스 컬러를 지원한다. 투명색 지정 및 애니메이션 기능이 특징이다.
- PNG‑8: PNG 포맷의 서브셋으로, 8 bit 인덱스 컬러와 알파 채널을 결합할 수 있다.
- BMP(8 bit 색상표 포함): 인덱스 컬러 BMP 파일은 별도의 색상표를 헤더에 포함한다.
- TIFF: 옵션으로 인덱스 컬러를 지원한다.
장점
- 저용량: 제한된 색상 수로 인해 같은 해상도에서도 비트 수가 낮아 파일 크기가 작다.
- 호환성: 오래된 하드웨어 및 소프트웨어와의 호환성이 높다.
- 색상 관리 용이: 색상표를 교체함으로써 전체 이미지의 색조를 일괄적으로 변경할 수 있다.
단점
- 색 재현 제한: 색상표에 포함되지 않은 색을 표현할 수 없으며, 색상표가 충분히 풍부하지 않을 경우 색 밴딩이 발생한다.
- 추가적인 색상표 관리가 필요하다(색상표 선택·편집·동기화 등).
- 고해상도·고품질 이미지에서는 일반적으로 True Color가 선호된다.
활용 분야
- 웹 그래픽: GIF·PNG‑8 형태로 아이콘, 로고, 배너 등에 사용되어 대역폭 절감 효과를 제공한다.
- 임베디드 시스템: 디스플레이 메모리가 제한된 마이크로컨트롤러 기반 장치에서 화면 데이터를 저장·전송하는 데 활용된다.
- 레거시 소프트웨어 및 게임: 8 bit 또는 256색 그래픽을 요구하는 고전 게임 에뮬레이터와 같은 환경에서 사용된다.
표준 및 관련 규격
- ISO/IEC 15948(GIF) 및 ISO/IEC 15948‑2(GIF87a/89a)에서 인덱스 컬러 구조를 정의한다.
- PNG Specification(ISO/IEC 15948‑3)에서는 인덱스 컬러와 팔레트 청크(PLTE)의 형식을 규정한다.
참고
인덱스 컬러는 디지털 이미지 처리와 그래픽 디자인 분야에서 색상 관리와 저장 효율성을 목표로 한 전통적인 기술이며, 현대에도 특정 용도에 따라 유용하게 사용되고 있다.