본문 바로가기

디지털 사진 한 장에 대한 궁금증

2. 디지털 사진 파일에 포함된 정보

   


   디지털 사진에 어떻게 디지털 정보가 저장되어 있고, 어떻게 해독해야 하는 지를 이해한다는 것은 한가한 엔지니어의 지적 놀이일 수도 있지만, 다른 눈으로 보면 지식자산을 파급하는 밈의 기제에 의한 행동일 수도 있다. 





다시 애들 사진으로 돌아가서




   <그림2>는 사진을 윈도우 10의 파일탐색기가 제공하는 디지털사진 정보를 보여주고 있다. 파일 탐색기의 오른 쪽에는 Thumbnail이라 부르는 작은 사진이 보이고, 그 밑에는 사진의 기본 정보를 요약하여 보여주고 있다. 파일 확장자가 JPG, 픽셀 수는 2,048*1,536=3,145,728, 파일의 크기는 396KB*이다. 하나의 픽셀을 24bit 컬러(true color)로 표현한다면 파일의 크기는 3,145,728 * 24bit = 75,497,472bit로 약 9,216KB (=75,497,472bit/8/1024)*가 되어야 하지만, 396KB 5%이하로 압축되어 있다는 것을 의미한다. 그 밖에 사진을 찍을 때의 카메라 제조사와 카메라 모델명이 나와있다.










JPG 파일에 저장되어 있는 정보들은 Hex Edit 기능을 가지는 소프트웨어를 이용하여 바이트 단위로 분석이 가능하다. 한 바이트 한 바이트를 확인하면서 PEG 파일 포맷과 비교하면서 살펴보면 디지털 사진에 어떤 정보가 어떻게 저장되어 있는 지 확인할 수 있다JPGJPEG(Joint Photographic Experts Group)와 동일한 의미로 사용된다. ‘JPEG’은 이미지 파일에서 채용된 데이터 압축 알고리즘을 의미하고, 파일의 포맷을 정의하는 것은 아니다. JPEG파일은 하나의 파일헤더와 데이터를 가지는 구조가 아닌, 여러 개의 독립적인 표준 데이터 파일을 포함하는 메타 데이터의 구조를 가진다. 많이 사용되는 데이터파일 표준은 JFIF, Exif, SPIFF, CIFF 등이다. 디지털 사진의 핵심 기술은 디지털 이미지 정보의 압축이기 때문에 JPEG 파일 포맷과 디지털 사진의 상세 정보 내용을 살펴보기 전에 디지털 사진 정보의 압축기술부터 살펴보고자 한다.



 

 메타데이타는 데이터에 관한 구조화된 데이타로다른 데이타를 설명해주는 데이타이다[1]. HTML, XML, Exif 등이 있다.

 




이미지 정보의 압축은 군더더기(redundancy)를 줄여서 메모리에 저장하거나 전송하는 데이타량을 최소화하고, 복원한 이미지를 원본 이미지와 근사하도록 한다. 이미지 정보를 압축하는 방식은 크게 손실압축(lossy compression)과 무손실압축(lossless compression)으로 나뉜다. 손실 압축은 저장 메모리 크기를 줄이기 위하여 인간의 시각인지시스템에서 차이를 인지하기 어려운 미세한 이미지 정보를 최소화한다[1]. JPEG 파일은 손실압축 방식이다



우선 디지털 사진의 픽셀 하나하나의 위치와 컬러가 컴퓨터 모니터에서 어떻게 표시되는 지 살펴보고 나서 JPEG 파일에서 픽셀 정보들을 압축하는 원리를 파악하고자 한다.







컴퓨터 그래픽 파일 종류












   컴퓨터 화면에 그래픽을 표현하는 방식은 크게 두 가지로 나눌 수 있다; 벡터(vector) 그래픽 , 비트맵(bitmap) 그래픽. 비트맵 그래픽은 촘촘한 격자를 그리고 각 격자에 하나의 픽셀 그래픽 정보를 표현하는 방식으로 그래픽을 부드럽게 표현하기 위해서는 높은 해상도, 다른 말로 하면 촘촘한 격자를 필요로 한다. 컴퓨터 화면에 그래픽을 처리하는 속도가 벡터 그래픽 대비하여 빠른 장점이 있지만 이미지를 확대하면 그래픽 품질이 저하된다는 단점이 있다. 사진을 표현하거나 섬세한 그림자 등 미세한 그래픽을 표현하는 분야에 사용하는 데, 비트맵 그래픽에 해당하는 파일 포맷에는 TIFF, JPG, GIF, BMP, PNG, PSD, EPS 등이 있다. <그림 1>의 디지털 사진도 비트맵 그래픽으로 표현한 것이 된다.



   그래픽은 수학적인 계산에 의하여 선, 곡선 그리고 점을 표현하는 방식으로서 이미지를 확대 또는 축소하더라도 그래픽의 경계선은 부드럽게 표현할 수 있다. 이러한 이유로 디스플레이 장치나 프린터 등 이미지 출력장치의 종류에 상관없이 그래픽 품질이 변하지 않는다. 벡터 그래픽은 폰트, 차트나 그래프와 같은 라인 아트 등에 사용된다. 벡터 그래픽에 해당하는 파일 포맷에는 EMF, EPS, PDF, PS 등이 있다. <1>은 벡터 그래픽과 비트맵 그래픽의 장단점을 요약한 것이다.

 



 

Bitmap Graphics

Vector Graphics

Display speed

 

Image quality

 

Memory usage

 

Easy of editing

 

Display independence

 

                           <1> 비트맵 그래픽과 벡터 그래픽의 비교[2]






컬러 모델



비트맵 그래픽에서 픽셀 하나하나의 컬러를 수치적으로 표현하는 것을 컬러 모델이라 한다. RGB 모델은 빛의 삼원색인 빨강(R), 초록(G) 그리고 파랑(B) 빛을 발광하는 LED 빛을 조합하여 컴퓨터 모니터에 컬러를 표현하는 모델이다.



 

 프린터할 때는 빛의 삼원색 대신에 색의 삼원색을 이용한 CMYK컬러 모델을 사용한다

C: Cyan(청록색), M: Magenta(자홍색), Y: Yellow, K: Black

 





R, G, B를 표현하기 위하여 사용하는 총 비트 수에 따라 컬러표현의 품질이 정해지는 데, 24비트 이상인 경우에는 트루컬러(true color)하고 한다. 24비트인 경우에는 각 컬러에 대하여 0~255의 값이 가능하기 때문에 256가지 컬러 표현이 가능하고, 세가지 색을 조합하면 256x256x256 = 16,777,216종류의 컬러 표현이 가능하게 된다. 아무런 빛을 발광하지 않은 상태(R=G=B=0)는 화면이 암흑으로 되어 검정을 표시하고, 3종의 LED를 가장 밝게 발광하면(R+G=B=255) 화면이 하얀색을 표시한다. 검정과 하얀색으로 표현되는 Gray scale은 RGB 모델의 특수한 경우로, RGB 컬러 공간에서 R=G=B인 선을 따라 0~255 범위의 White-Black을 표현할 수 있다.








YCbCr 모델은 휘도(luminance or brightness) Y, 파란정도(bluenes)를 나타내는 Cb, 빨간정도 (redness)를 나타내는 Cr 로 컬러를 표현한다.  <그림 5>에서 X-Y축평면에서 CbCr을 나타낸다. Z축은 Grayscale이다. 8bit RGB 모델과 8bit YCbCr 모델간에는 서로 변환이 가능하다.





       Y = 0.299R + 0.587G + 0.114B

      Cb = -0.1687R - 0.3313G + 0.5B + 16

    Cr = 0.5R - 0.4187G - 0.0813B + 16

                                                       (식 1)

      R  = Y + 1.402Cr - 16

      G = Y - 0.34414(Cb-24)-0.71414(Cr-16)

      B = Y + 1.722(Cb - 16)

                                                      (식 2)











  


사람의 시각인지 시스템은 컬러의 변화보다는 휘도의 변화에 더 민감하게 인지한다. YCbCr 모델에서 Y성분이 CbCr 성분보다 영향이 더 크다. , Y성분은 촘촘하게 표현하고 CbCr성분은 Y성분보다 듬성듬성하게 표현하더라도 사람의 눈에는 큰 차이가 보이지 않는다. 이는 YCbCr 모델을 이용하면 정보의 압축이 가능하다는 것을 의미하고, 이러한 이유로 인하여 YCbCr 모델은JPEG 이미지 파일에서 이미지 압축을 위하여 활용된다. <그림 1>에서의 디지털 사진을 ( 1)을 이용하여 Y, Cb, Cr성분을 분해하면 <그림 6>과 같다.










[1] Compressed Image File Formats, John Miano, 1999


[2] Jpeg Image Compression Using Discrete Cosine Transform – A Survey, International Journal of Computer Science & Engineering Survey(IJCSES) Vol.5, No.2, April 2014