2012년 3월 13일 화요일

bitmap file 구조


Bitmap File의 구조 분석
비트맵 그래픽과 벡터 그래픽의 차잇점
서울시립대학교 전자전기컴퓨터공학부 김희식 교수 작성
img1.gif
Mosaic image
0305080100130
305080100130145
5080100130145175
80100130145175200
100130145175200220
130145175200220245
실제메모리 값

  컴퓨터가 그래픽 데이터를 표현하는 데는 크게 비트맵(레스터)방식과 벡터방식의 두가지     가 있습니다.
  - 비트맵은 작은 점들의 2차원 배열을 이용하여 영상정보를 표현하는 방식을 말하며, 이렇게 그림을 이루는 작은 점들을 픽셀(Pixel:Picture Element)이라 부르며, 각 점들에 표현되는 컬러에 의해 그림이 이루어지게 됩니다.

이에 반하여, 벡터 그래픽은 선,면,호,원,곡선,다각형등의 그래픽스의 구성요소가 되는 객체의 조합으로 영상정보를 표현합니다. 즉, 각 객체의 속성(예를 들어, 선의 길이, 두께 및 컬러등 )과 키 포인트로 그림을 만들 수 있습니다.
  - 벡터 그래픽을 이용하는 경우 기하학적 도형을 표현하기는 쉬우나, 인물 사진등과 같이 섬세하고 기하학적인 부분이 덜한 그림인 경우 비트맵 그래픽을 이용하여 표현하는 것이 적합합니다.

■DDB(Device Dependent Bitmap) 와 DIB(Device Independent Bitmap)
- DDB는 비트맵의 한 픽셀이 몇 비트로 표시될 것인지가, 제어판과 같은 곳에 설정되어 있는 화면의 설정에 종속적인 표현 Bitmap으로서, 쉽게 생각하여 현재 화면이 픽셀당 8비트로 표현되도록 설정되어 있으면 DDB역시 필셀당 8비트로 표현되며, 16비트로 되어 있다면 DDB역시 필셀당 16비트로 표현됩니다.
   - DIB는 현재 시스템의 디스플레이 등록정보와 무관하게 나름대로 생각을 표현하는 비트맵을 DIB라고 합니다. 일반적으로 그래픽 파일의 형태로 저장되어 있는 비트맵은 대부분 DIB이며, 흑백그림파일은 어떤 컴퓨터에서 보든 흑백으로 나오고, 컬러 그림은 어떤 컴퓨터에서 보든 컬러로 나오게 됩니다.

■ 비트맵의 컬러 모드
- True 컬러 이미지
    이미지의 각 픽셀을 빨간색(R), 녹색(G), 파란색(B) 1바이트씩의 조합인 24비트로 표현한 것입니다. 픽셀당 24비트를 사용함으로서 차지하는 메모리 양은 커지지만 매 픽셀을 1,600만 가지의 색으로 표현할 수 있기에, 최상급의 화질로 이미지를 저장할 수 있습니다.
   - Indexed 컬러 이미지
    트루 컬러 이미지는 용량이 매우 커지기 때문에 화질이 약간 떨어지더라도 용량을 줄일 필요가 있습니다. 실제로 픽셀당 8비트를 할당하면 사람의 눈으로 보기에 충분히 깨끗한 화질을 얻을 수 있습니다. 따라서, 이미지에서 많이 사용되는 256(8비트)개의 색을 추려서 사용하면 이미지의 용량을 1/3으로 줄일 수 있습니다. 이때 1600가지 색중에서 이미지에 사용된 색 256가지를 팔레트라는 표로 만들어 저장되어 있으며, 각 픽셀의 값은 색을 표현하는 값이 아니며, 팔레트의 인덱스 값을 가지게 되는 것입니다. 물론 팔레트가 256개의 색을 가지고 있을 필요는 없으며, 64, 16가지등의 팔레트를 가질 수도 있습니다. 이때 각 픽셀은 6비트, 4비트의 메모리만 사용하게 되지만, 이미지의 화질이 상대적으로 낮아 진다는 단점이 있습니다.

278125080123221
30508067130145
5680158130145175
8010130145175200
8913014517529182
1131441352002245
indexed bmp
-->
-->
-->
-->
index
R
G
B
255
.
.
.
254
.
.
.
253
.
.
.
...
.
.
.
1
.
.
.
0
.
.
.
indexed color

index
R
G
B
255
255
255
255
254
254
254
254
253
253
253
253
...
.
.
.
2
2
2
2
1
1
1
1
0
0
0
0
흑백 이미지 인덱스 칼라
- 흑백 이미지(그레이스케일)
  팔레트에 담겨 있는 색들이 모두 회색 계열인 경우, 흑백 이미지 또는 그레이스케일 이미지라고 합니다. RGB가 동일한 비율도 혼합되면 회색이 되므로, 흑백 이미지에서는 인덱스 값이 곧 밝기값이 되며, 각각의 값이 고정되어 있어 실제로 팔레트는 불필요합니다.

- 이진 이미지
  이미지를 흑,백으로만 표현하는 이미지 이며, 픽셀당 1비트를 사용합니다. 팩스또는 문서등에서 사용하는 이미지입니다.

 ■ BMP화일의 파일 포맷   비트맵 파일에 대한 정보비트맵을 저장하는 가장 간단한 파일 포맷으로 윈도우에서 사용하는 표준 DIB 파일 포맷입니다.
비트맵 자체에 대한 정보
팔레트
이미지 비트 데이터
1) 비트맵 파일에 대한 정보
    BM값 저장, 파일의 크기, 예약된값 2가지, 실제 이미지
    비트까지의 오프셋 정보가 들어 있습니다.
2) 비트맵 자체에 대한 정보(구조체 형식으로)
    구조체의 크기, 이미지의 폭(픽셀단위), 이미지의 높이(픽셀단위), 비트 플레인 수
  (항상1), 픽셀 당 비트 수, 압축 유형, 이미지의 크기(바이트 단위), 가로 해상도, 세로 해상도, 실제 사용되는 색상수, 중요한 색상 인덱스(0 인 경우 전체) 가 저장되어 있습니다.
3) 팔레트
   트루 칼라인 경우는 필요 없으며, 그 이외의 경우 색상 종류 만큼의 각 RGB(24bit) 색상이 저장되어 있습니다.
4) 이미지 비트 데이터

Bitmap Data의 구조와 Image Pixel사이의 관계
  
보이는 이미지와 bmp 메모리에 저장되는 데이터 화소 순서는 역순이다.
그림과 같이 보이는 이미지는 실제 Bitmap Data상으로는(메모리 내부에서는) 그림의 왼쪽 아래부분 부터 저장되게 됩니다. 다시 말해 실제 메모리 내부의 그림은 다음과 같다고 할 수 있습니다 .

■ 가로의 길이 (픽셀 숫자)는 4 바이트의 배수
 비트맵은 메모리에 저장될 때 가로줄이 반드시 4바이트의 배수 단위로 저장되어야 합니다. 예를 들면, 픽셀당 8비트로 표현되는 256컬러 이미지가 가로 길이 38픽셀이었다면, 효율적으로 필요한 38바이트를 사용하는 것이 아니고 40바이트를 사용하는 것입니다. 이 경우 2바이트는 의미 없는 값을 넣어서 해결합니다.
■ 비트맵 파일에 대한 정보
2byte : BM    표시
4byte : 파일의 크기
2byte : reserved (예약된값)
2byte : reserved (예약된값)
4byte : 실제 이미지까지의 offset(거리.)

댓글 없음:

댓글 쓰기