본문 바로가기
영상처리 프로그래밍/Visual C++ 영상 처리 프로그래밍

BMP 파일(비트맵 파일)의 이해

by Glory_Choi 2022. 7. 1.
반응형

비트맵 정의

 

컴퓨터에서 영상을 표현하는 대표적인 방법이 비트맵이다.

비트맵은 말 그대로 비트들의 집합.

 

여러 개의 비트가 모여 한 점(픽셀)의 색상을 표현, 색상을 가진 점들이 모여 영상을 구성한다.

비트맵 방식은 영상의 전체 크기에 해당하는 픽셀 정보를 모두 다 저장.

메모리 용량을 많이 차지하는 단점이 있지만, 압축 기법을 사용하지 않고 표현이 직관적이어서 분석이 용이하다.

복잡한 계산 없이 단순히 그림을 복사하여 화면에 보여주기 때문에 벡터 방식보다 화면 출력 속도가 빠름.

 

비트맵의 종류

 

Windows에서 지원하는 비트맵에는 두 가지 종류가 있음.

 

장치 의존 비트맵(DDB)과 장치 독립 비트맵(DIB)

       여기서 장치란 출력 장치를 의미(모니터 화면에 영상을 나타내는 것)

 

DDB 장치 의존 비트맵 : 출력 장치에 의존적이기 때문에 특정 장치에서 만들어진 DDB는 다른 장치에서 정상적인 색상으로 표현되지 않을 수 있음.

 

 

DIB 장치 독립 비트맵 : 장치 독립 비트맵에는 자신의 색상을 표현하는 색상 테이블이 있어, 출력 장치가 달라지더라도 어디에서나 자신의 비트맵이 제대로 출력되도록 할 수 있음.

*사진과 같은 영상을 표현하기 위해서는 장치 독립 비트맵 DIB를 사용

 

BMP 파일의 전체 구조

BMP 파일이란 확장자가 “BMP”인 파일, Windows 운영체제에서 DIB를 저장하기 위해 사용되는 파일 형식.

다른 영상 파일 형식과 달리 압축을 하지 않고, DIB 구조를 그대로 파일로 저장한 형태.

BMP 파일 자체에 대한 정보, 비트맵 영상에 대한 정보, 각 픽셀의 색상 정보를 나타내는 부분으로 구성.

 

 

비트맵 파일 헤더 : BMP 파일 자체에 대한 정보를 담고 있는 영역

비트맵 정보 헤더 : 비트맵 영상의 크기, 색상 수 등에 정보를 담고 있는 영역

색상 테이블 : 비트맵 영상의 색상 정보를 담고 있는 부분으로 팔레트라고도 함. 색상 수에 따라 색상 테이블 영역이 존재하지 않을 수 있음.

픽셀 데이터 : 각 픽셀의 색상 정보를 표현하는 공간.

 

Windows에서 비트맵을 화면에 출력하기 위해서는 이 DIB 구조 부분만 있으면 됨. 보통의 DIB 출력 함수들은 DIB구조의 시작 위치, BITMAPINFOHEADER 구조체의 시작 주소와 픽셀 데이터의 시작 주소를 인자로 넘겨 받아 화면에 출력

 

BMP 파일의 분석

Visual Sudio에서 BMP파일 분석하는 방법은 프로젝트를 생성하고 파일열기를 선택한다.

파일 열기에서 파일을 선택하고 연결 프로그램을 선택한다.

 
연결프로그램으론 바이너리 편집기를 선택하면 BMP파일을 바이너리 형태로 분석할 수 있다.
반응형

'영상처리 프로그래밍 > Visual C++ 영상 처리 프로그래밍' 카테고리의 다른 글

영상의 산술 연산  (0) 2022.07.18
화질 향상 기법  (0) 2022.07.14
[MFC] CClientDC  (0) 2022.07.04
영상 처리 개요  (0) 2022.06.24