비트맵

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

비트맵은 픽셀 정보를 저장하는 데 사용되는 이미지 파일 형식으로, 각 픽셀은 색상 정보를 나타내는 비트 값으로 표현된다. 비압축 비트맵은 각 픽셀의 색상 깊이에 따라 비트 수를 할당하며, 8비트 이하는 그레이스케일 또는 인덱스 색상을 나타낸다. 비트맵은 형식이나 장치 요구 사항에 따라 팩킹 또는 언팩될 수 있으며, 파일 크기는 이미지의 너비, 높이, 색상 깊이에 따라 결정된다. 마이크로소프트는 장치 독립 비트맵(DIB) 형식을 정의하여 다양한 장치 간의 비트맵 교환을 용이하게 했으며, BMP 파일 형식이 널리 사용된다. XBM, XPM과 같은 비압축 형식 외에도 GIF, PNG, TIFF, JPEG와 같은 압축 형식이 사용되며, 특히 무손실 압축은 작은 파일 크기로 비트맵과 동일한 정보를 제공한다. 또한, 헤더나 크기 정보 없이 원시 비트맵 데이터를 저장하는 "원시" 이미지 파일도 존재한다.

비트맵
📚 더 읽어볼만한 페이지
  • 비트 자료 구조 - 비트 필드
    비트 필드는 C/C++에서 구조체를 통해 작은 정수 변수들을 메모리 내에 패킹하여 메모리 사용량을 줄이는 기술이지만, 엔디안 문제, 비효율적인 코드 생성, 스레드 안전성 문제 등의 단점도 가진다.
  • 그래픽 파일 포맷 - JPEG
    JPEG은 정지 화상의 디지털 압축 및 코딩을 위한 국제 표준이자 이를 만든 위원회의 이름으로, 1992년 최초 표준 발표 이후 웹 환경에서 널리 사용되는 이미지 형식이 되었다.
  • 그래픽 파일 포맷 - BMP 파일 포맷
    BMP 파일 포맷은 마이크로소프트에서 정의한 다양한 색상 깊이를 가진 컬러 비트맵 표현 방식으로, 장치 독립 비트맵이라고도 불리며, BMP 헤더, 비트맵 정보, 색 팔레트, 비트맵 데이터 등으로 구성되어 높은 호환성을 가지지만 압축을 거의 하지 않아 파일 크기가 큰 편이다.

2. 픽셀 저장

비트맵 이미지에서 각 픽셀은 색 깊이에 따라 특정 비트 수로 표현된다. 비트맵 픽셀을 나타내는 비트는 형식 또는 장치 요구 사항에 따라 팩킹되거나 언팩될 수 있다.

2.1. 색 깊이와 픽셀 표현

일반적인 비압축 비트맵에서 이미지 픽셀은 일반적으로 색상을 식별하는 픽셀당 가변 비트 수(색 깊이)로 저장된다. 8비트 이하의 픽셀은 그레이스케일 또는 인덱스 색상을 나타낼 수 있다. 알파 채널(투명도)은 별도의 비트맵에 저장될 수 있으며, 그레이스케일 비트맵과 유사하거나, 예를 들어 24비트 이미지를 픽셀당 32비트로 변환하는 네 번째 채널에 저장될 수 있다.

비트맵 픽셀을 나타내는 비트는 형식 또는 장치 요구 사항에 따라 팩킹되거나 언팩(바이트 또는 워드 경계로 간격을 둠)될 수 있다. 색 깊이에 따라 그림의 픽셀은 비트 깊이가 n일 때 최소 n/8 바이트를 차지한다.

Microsoft DIB 또는 BMP 파일 형식 또는 비압축 TIFF 형식으로 저장되는 것과 같은 비압축, 행 내 팩킹 비트맵의 경우, n-비트-픽셀당(2n 색상) 비트맵의 저장 크기에 대한 하한은 바이트 단위로 다음과 같이 계산할 수 있다.

:size = width • height • n/8

여기서 너비와 높이는 픽셀 단위로 주어진다. 위의 공식에는 헤더 크기와 색상 팔레트 크기(있는 경우)가 포함되지 않는다. 각 행 시작을 워드와 같은 저장 단위 경계에 맞추기 위한 행 패딩 효과로 인해 추가 바이트가 필요할 수 있다.

2.2. 비트 배열 방식

픽셀을 나타내는 비트는 형식 또는 장치 요구 사항에 따라 팩(Packing)되거나 언팩(Unpacking)될 수 있다. 색 깊이에 따라 그림의 픽셀은 비트 깊이가 n일 때 최소 n/8 바이트를 차지한다.

BMP 파일 형식 또는 비압축 TIFF 형식과 같은 비압축, 행 내 팩킹 비트맵의 경우, n-비트-픽셀당(2n 색상) 비트맵의 저장 크기에 대한 하한은 바이트 단위로 다음과 같이 계산할 수 있다.
:size = width • height • n/8
여기서 너비와 높이는 픽셀 단위로 주어지며, 위의 공식에는 헤더 크기와 색상 팔레트 크기(있는 경우)는 포함되지 않는다. 각 행 시작을 워드와 같은 저장 단위 경계에 맞추기 위한 행 패딩 효과로 인해 추가 바이트가 필요할 수 있다.

3. 장치 독립 비트맵 (DIB)

마이크로소프트는 다양한 장치와 응용 프로그램 간의 비트맵 교환을 위해 장치 독립 비트맵(DIB) 형식을 정의했다. DIB의 주요 목적은 비트맵을 한 장치에서 다른 장치로 쉽게 이동할 수 있도록 하는 것이다. DIB는 BMP 파일, 메타파일, 클립보드 등에서 주로 사용된다. 여기서 "장치 독립적"이라는 말은 형식이나 저장 방식을 의미하며, 장치 독립적인 색상과는 다른 개념이다.

3.1. BMP 파일 형식

마이크로소프트는 다양한 내부 표현을 가진 장치와 응용 프로그램 간의 비트맵 교환을 돕기 위해 다양한 색 심도의 컬러 비트맵을 특정 방식으로 표현하도록 정의했다. 그들은 이러한 장치 독립 비트맵을 "DIB"라고 불렀으며, 해당 파일 형식을 DIB 파일 형식 또는 BMP 파일 형식이라고 불렀다. 마이크로소프트 지원에 따르면:

Device-independent bitmap영어(DIB)은 다양한 색상 해상도에서 장치 독립 비트맵을 정의하는 데 사용되는 형식이다. DIB의 주요 목적은 비트맵을 한 장치에서 다른 장치로 이동할 수 있도록 하는 것이다(이름의 장치 독립적인 부분의 의미). DIB는 응용 프로그램에서 생성된 비트맵 객체로 시스템에 나타나는 장치 종속 비트맵과 대조되는 외부 형식이다. DIB는 일반적으로 메타파일(보통 StretchDIBits()영어 함수 사용), BMP 파일 및 클립보드(CF_DIB영어 데이터 형식)에서 전송된다.

여기서 "장치 독립적"은 형식, 즉 저장 배열을 의미하며, 장치 독립 색상과 혼동해서는 안 된다.

4. 기타 비트맵 파일 형식

X 윈도 시스템은 XBM, XPM 외에도 다양한 비트맵 파일 형식을 사용한다. 하지만 대부분 널리 사용되지는 않으며, 주로 GIF, PNG, TIFF, JPEG와 같은 표준화된 압축 비트맵 파일 형식이 사용된다. 특히 무손실 압축은 작은 파일 크기로 비트맵과 동일한 정보를 제공한다.

"원시" 이미지 파일은 헤더나 크기 정보 없이 단순 비트맵 데이터만 저장하며, 사진의 원시 이미지 형식과는 다르다.

4.1. X 윈도 시스템 형식

X 윈도 시스템흑백 이미지에 XBM 형식을 사용하며, 컬러 이미지에 XPM(픽셀맵) 형식을 사용한다.

4.2. 기타 비압축 형식

X 윈도 시스템흑백 이미지에 XBM 형식을 사용하고, 컬러 이미지에 XPM (픽셀맵) 형식을 사용한다. 수많은 다른 비압축 비트맵 파일 형식이 사용되고 있지만, 대부분 널리 사용되지는 않는다. 대부분의 경우 GIF, PNG, TIFF, JPEG와 같은 표준화된 압축 비트맵 파일이 사용된다. 특히 무손실 압축은 작은 파일 크기로 비트맵과 동일한 정보를 제공한다. TIFF와 JPEG에는 다양한 옵션이 있다. JPEG는 일반적으로 손실 압축이다. TIFF는 일반적으로 압축되지 않거나 GIF와 같은 무손실 렘펠-지브-웰치 압축을 사용한다. PNG는 또 다른 렘펠-지브 변형인 deflate 무손실 압축을 사용한다.

또한 다른 정보 없이 원시 비트맵을 저장하는 다양한 "원시" 이미지 파일도 있다. 이러한 원시 파일은 파일에 있는 단순한 비트맵이며, 종종 헤더나 크기 정보가 없다(사진 원시 이미지 형식과는 구별되는데, 이는 TIFF 형식과 같은 구조화된 컨테이너에 광범위한 이미지 메타데이터와 함께 원시 처리되지 않은 센서 데이터를 저장한다).

4.3. 압축 형식

대부분의 경우 GIF, PNG, TIFF, JPEG와 같은 표준화된 압축 비트맵 파일 형식이 사용된다. 특히 무손실 압축은 작은 파일 크기로 비트맵과 동일한 정보를 제공한다. TIFF와 JPEG에는 다양한 옵션이 있다. JPEG는 일반적으로 손실 압축이다. TIFF는 일반적으로 압축되지 않거나 GIF와 같은 무손실 렘펠-지브-웰치 압축을 사용한다. PNG는 또 다른 렘펠-지브 변형인 deflate 무손실 압축을 사용한다.

4.4. 원시(Raw) 이미지 파일

또한 헤더나 크기 정보 없이 원시 비트맵 데이터를 저장하는 다양한 "원시" 이미지 파일도 있다. 이러한 원시 파일은 파일에 있는 단순한 비트맵이며, 종종 헤더나 크기 정보가 없다(사진 원시 이미지 형식과는 구별되는데, 이는 TIFF 형식과 같은 구조화된 컨테이너에 광범위한 이미지 메타데이터와 함께 원시 처리되지 않은 센서 데이터를 저장한다).

5. 같이 보기

* 사용 가능한 공간 비트맵 - 사용 중인 디스크 저장 블록을 추적하는 비트 배열
* 비트맵 이미지
* 래스터 스캔
* 래스터화
* 스프라이트(컴퓨터 그래픽스)
* 타일 맵
* 복셀
* 벡터 이미지