본문 바로가기

Coding/기타

디지털 이미지 표현, 크기 - bitmap

* Pixel(픽셀)

- 이미지를 이루는 가장 작은 단위

- 이미지를 이루는 점이라고 생각하면 된다

- 640x480의 경우는 가로 640개, 세로 480개의 픽셀로 이루어진 이미지를 의미한다.

 

* 이진 영상(binary image)

- 디지털 이미지 중 가장 간단한 형태

- 각 픽셀이 1bit로 이루어져 있으며, 각 픽셀은 오직 밝음(1)과 어두움(0) 두 가지 만을 표현한다.

 

* 흑백 영상(gray-scale image)

- 각 픽셀의 밝기 값을 0~255 사이 값으로 표현한 이미지이다.

- 8bit = 1Byte의 메모리를 사용한 것이다.

- 픽셀 값들의 범위가 0~255 사이 값이기 때문에, 2^8 = 256개의 8bit로 표현한 것이 흑백 영상이다.

 

* 컬러 영상(color image)

- 컬러 영상은 3개의 채널로 표현된다. 빛의 3원색인 빨강(Red), 녹색(Green), 파랑(Blue)이다.

- 각 채널은 0~255 사이의 값으로 각각 빨강의 정도, 녹색의 정도, 파랑의 정도를 나타낸다.

- 컬러 영상에서는 세 가지 기본 컬러를 조합항 다양한 색을 만든다.

- 각 채널의 8bit 기본 컬러 3개가 조합되어, 256^3 = 16,777,216가지의 색을 만들어 낼 수 있다.

- 8bit(R, G, B) 3개를 조합해 총 24bit(3Byte)를 이용하여 컬러를 표현했고, 이를 True color라 부른다.

- 여러 이미지나 그래픽 관련 프로그램들은 RGB 채널에 투명도(Transparent)를 나타내는 Alpha 채널을 더해 RGBA인 32bit 컬러 모델도 사용한다.

 

* 디지털 이미지의 메모리 계산법

단위: Byte

- 이미지의 가로(width)와 세로(height)의 크기 곱에 각 픽셀이 차지하는 비트수(bits)를 곱해주면 메모리에서 차지하는 공간이 나온다.

- 흑백 이미지(gray scale)의 경우 bit수는 8bit이 사용된다. 8bit는 부호가 없는 경우 0~255까지의 숫자를 표현 가능하다.

 

- 사과 이미지를 예로 들어 크기를 계산해보자. 사과 이미지의 크기가 420 x 288 으로 가정한다.

 

Apple Color Image(24bit):

420 x 288 x (24/8) = 362,880 Byte

약 360 Kbyte(Kilo Bytes)의 메모리 공간을 차지한다.

 

Apple Gray-scale Image(8bit):

420 x 288 x (8/8) = 120,960 Byte

약 120Kbyte로 메모리 크기가 약 3/1 줄어든다.

 

- 바이너리 이미지의 경우, 이론적으로는 메모리 공간을 2bit만 차지하지만, 대부분이 흑백 이미지와 같이 픽셀당 1Byte로 표현하기 때문에 흑백 이미지와 같은 크기의 메모리를 차지한다.

 

- 위의 메모리 계산법은 이미지 확장자가 *.BMP(bitmap), 즉 비트맵 확장자일때의 계산법이다.

- 실제로는 위의 계산된 크기보다 더 큰데, BMP 이미지의 포맷을 정의하기 위한 헤더나 색깔을 지정하기 위한 팔레트 등의 정보가 이미지에 추가되기 때문이다.

- 이외에도 jpg, png 등 많은 이미지 포맷이 존재하는데, 이들은 사람이 느낄 수 없을 정도로 이미지를 압축하여 저장하기 때문에 용량이 훨씬 작다.

 

- 이미지 압축도 손실 압축, 무손실 압축 등 방법이 다양하다.

- 기존 jpg 방식은 손실 압축 방식이라 아주 미세한 화질의 차이가 존재했지만, 개선된 jpn나 png 포맷은 무손실 압축 방식을 사용하고 용량도 훨씬 작은 장점이 있다.

 

 

출처: 디지털 이미지의 표현과 크기 계산법

 

'Coding > 기타' 카테고리의 다른 글

캡슐화(encapsulation)  (0) 2020.05.04
HTTPS와 SSL 인증서  (0) 2020.03.20
VScode terminal 설정하기 - Windows  (0) 2020.03.11
Linux/Ubuntu에서 Docker 설치  (0) 2020.02.09
저장단치 단위 - iB(binary byte), B(byte)  (0) 2020.01.21