이미지와 데이터의 압축 원리에 관하여
이미지와 데이터의 압축 원리에 관하여 알아보도록 하겠습니다. 먼저 이미지의 압축 원리에 관해서 설명하자면 압축되지 않은 이미지 데이터들은 큰 저장공간이 있어야 하게 됩니다. 저장공간의 절약적인 측면과 아울러 통신을 이용한 전송에서도 빠른 전송을 위해서는 압축된 데이터가 더 유리합니다. 이는 압축된 데이터가 적은 통신 대역폭을 요구하기 때문입니다. 이를 위해서는 불필요한 데이터를 제거하고 가능하면 의미의 전달 효율이 좋은 데이터의 형태를 선택해야 하고 데이터를 디지털 방식으로 압축해야 합니다. 또한 가능하면 처음부터 작은 데이터를 만들면 좋습니다. 이미지는 표현 색상과 화상의 크기에 의해 데이터의 크기가 결정되는데 화상 데이터의 양을 줄이기 위해서는 화소당 데이터의 양을 줄이는 방법, 화상을 구성하는 화소의 수를 줄이는 방법, 압축기법을 이용하는 방법이 있습니다. 각각의 경우를 살펴보자면 먼저 한 화소당 데이터의 양을 줄이는 방법은 화소당 데이터양을 줄이면 전체적인 데이터의 양이 줄어들어 압축 효과를 얻을 수 있지만 화소당 데이터의 양이 적을수록 미묘한 농도의 화상을 표현하기 어렵게 되는 단점이 존재합니다. 일반적으로 자주 쓰이는 색으로만 구성된 팔레트로 구성하여 표현해야 할 색상의 수를 줄임으로써 해결하기도 합니다. 이러한 팔레트는 대부분의 이미지 편집 소프트웨어에서 자동으로 생성해 줍니다. 그리고 이미지를 구성하는 화소의 수를 줄이는 방법은 파일의 크기가 줄어들지만 섬세한 선을 표현하기 어려워지며, 모자이크 현상이 발생할 수 있습니다. 따라서 선명도와 파일 크기를 모두 고려해서 적절하게 선택해야 하는데, 최소의 파일 크기를 갖도록 하고 이미지의 섬세함이 어느 정도 유지되어야 합니다. 다음으로 데이터를 압축하는 방법은 앞선 두 가지 경우보다 좋은 방법이라고 할 수 있는데, 그 이유는 바로 화상의 변질을 최소화하면서 데이터의 크기를 줄일 수 있기 때문입니다. 데이터를 압축할 때 시각적인 영향이 적은 부분의 정보량을 줄입니다. 즉, 인간은 색상보다 명암에 더 민감하기 때문에 시각적인 영향이 적은 부분인 색상 영역에서의 정보량을 줄이는 것이 효과적입니다. 이와 같은 원리를 따르는 대표적인 압축 방식으로 JPEG가 있습니다. 또한 이웃한 화소들이 같은 값을 가질 때 이들을 압축하는 방법이 있는데, 대표적인 압축 방식으로 GIF가 있습니다. 이렇게 GIF 압축과 JPEG 압축은 인터넷 환경에서 사용하기 매우 적합한 방식입니다. 그렇기에 조금 더 자세하게 설명해 드리자면 먼저 GIF 압축 원리는 PC통신에서의 이미지 파일전송 시간을 줄이기 위해서 개발된 압축 방식입니다. 또한 LZW 알고리즘을 사용하였는데 이는 RLE 방식을 응용한 알고리즘이라고 보시면 됩니다. 여기서 RLE란, 같은 값이 몇 번 반복되는가를 나타냄으로써 압축하는 방식입니다. 예를 들자면 A가 8번 반복되면 길게 늘이지 않고 A8이라고만 표현하는 방법입니다. 이러한 GIF는 수평으로 데이터를 읽으면서 압축이 수행되기 때문에, 수평으로 같은 색을 갖는 이미지의 경우에는 압축 효과가 더욱 큽니다. 또한 디더링을 할 경우 인접한 픽셀의 색상이 달라질 수 있기 때문에 디더링된 이미지의 경우 오히려 파일의 크기가 커질 수 있습니다. 이러한 특성으로 인해 GIF 압축은 사진 이미지보다는 그래픽에 더 높은 압축률을 보이며 더 많이 사용되고 있습니다. 다음으로 JPEG 압축 원리는 특별히 컬러 정지화상의 압축을 위하여 1992년 국제 표준으로 확정된 알고리즘입니다. 이러한 JPEG에는 다양한 압축 모드가 있는데, 그중 무손실 압축은 엑스레이나 CT 사진에서와 같이 픽셀 하나하나가 중요한 경우에 사용되며, 손실 압축은 JPEG에서 일반적으로 쓰이는 방식입니다. 또한 JPEG는 24비트 컬러를 사용하며, 압축 특성으로 인해 일러스트레이션을 압축할 경우에 색 번짐 현상이 일어날 수 있으며, 1996년부터 검토를 시작하여 2002년에 발표된 JPEG2000은 최신 JPEG 표준으로 웨이블렛 기법에 의한 이미지 압축기법을 따릅니다. 이어서 JEPG2000 사양에서는 점진적인 압축, 무손실 압축, 높은 압축 효율, 다중 해상도 등의 특성이 포함되어 있습니다. 이러한 JPEG의 압축 원리는 우선 RGB 모델에서 YIQ 모델로 변환합니다. 여기서 YIQ 모델이란 텔레비전 방송 표준의 하나인 NTSC에서 사용하는 모델입니다. Y는 밝기 정보를 가지며, 색상 및 순도 정보는 I와 Q에 포함되어 있습니다. 조금 더 자세히 설명하자면 I는 오렌지색부터 청록색의 색상 정보를 가지고 있고, Q는 녹색부터 심홍색 색상 정보를 가지고 있는데 밝기 정보를 Y가 가지고 있으므로 흑백 텔레비전의 경우에는 Y 값만 사용하게 됩니다. 이렇게 JPEG 압축 과정에서 RGB 모델을 YIQ 모델로 변환하는 이유는 인간의 시각이 색상보다는 화상의 밝기에 더 민감하다는 원리에 착안하여 Y에 대하여 더 정교하게 압축하기 위해서입니다. 이후 이미지를 미리 정해진 크기인 16x16 크기의 픽셀 영역으로 나눕니다. 이것을 바로 매크로 블록화라고 합니다. 매크로 블록화가 끝난 후 인간의 감각 능력으로는 구별하기 힘든 범위 내에서 DCT 계수를 정수로 나누어 반올림하는 과정인 양자화를 거치게 됩니다. 이 양자화 과정은 가장 큰 데이터 압축이 일어나는 부분이며, 동시에 가장 데이터 손실이 많은 단계이기도 합니다. 이렇게 양자화 과정이 끝난 후 마지막 단계로 무손실 압축을 사용하여 최종 압축을 수행하는 과정인 엔트로피 코딩이 이루어지게 됩니다. 이러한 압축 원리를 통해 우리는 더욱 빠르게 데이터를 주고받을 수 있습니다. 여기까지 이미지와 데이터의 압축 원리에 관하여 알아봤습니다.