데이터 압축의 기본 원리와 기법
"데이터 압축"이란 데이터를 더 작은 공간에 효율적으로 기록하기 위한 기술이다. 데이터의 양이 많을 경우 저장장치에 효율적으로 저장하기 어렵고 통신 네트워크를 이용하여 전송하는데 어려움이 생기기에 데이터 압축은 반드시 필요하다.
데이터 압축의 기본 원리는 바로 데이터에 포함된 "중복성"을 제거하는 것이다. 데이터의 중복성으로는 다음이 있다.
- 통계적 중복성(Statistical Redundancy): 정보이론을 기초로 데이터의 통계에서 나타난 통계적 중복을 제거한다.
- 주관적 중복성(Subjective Redundancy): 인간의 시각구조를 기초로 눈에 보이는 주관적 중복을 제거한다.
- 공간적 중복성(Spatial Redundancy): 데이터들 사이에 나타나는 상관관계를 이용하여 공간적 중복울 제거한다.
- 시간적 중복성(Temporal Redundancy): 영상 프레임 간의 차이와 같은 시간적 중복을 제거한다.
압축할 때 정보의 손실 정도에 따라 데이터 압축 기법은 "무손실 압축(가역 압축)", "손실 압축(비가역 압축)", "혼합 압축"으로 구분된다. 또한 압축에 이용되는 성질에 따라 "엔트로피 압축(무손실 압축)"과 "대상 기반 압축(손실 압축)"으로 구분된다.
결국, 이러한 데이터 압축 기법에 대한 요구 사항은 다음과 같다.
- 압축/복원은 원 데이터와 큰 차이가 없어야 한다.
- 압축 알고리즘 자체가 복잡하지 않아야 한다.
- 압축/복원 시 지연 시간이 너무 길지 않아야 한다.
- 다양한 데이터들에 대한 압축을 할 수 있어야 한다.
- 하드웨어와 소프트웨어적인 구현이 모두 가능해야 한다.
무손실 압축을 이용한 기법
무손실 압축(Lossless Compression)은 압축된 정보를 다시 복원할 경우 압축되기 이전의 상태와 동일한 내용을 가지는 압축 기법이다. 이러한 특징으로 인하여 손실 압축에 비하면 압축률이 많이 떨이지고 압축 알고리즘에 제한이 많다. 대표적인 무손실 압축 기법으로는 다음이 있다.
- 반복길이 코딩(Run Length Coding): 한 데이터에서 자주 반복되는 코드의 사용을 최대한 억제하는 기법
- 허프만 코딩(Huffman Coding): 데이터에 나타나는 문자의 등장 빈도에 따라 다른 길이의 부호를 사용하는 기법
- LZW 코딩(Lempel-Ziv-Welch Coding): 가변길이 부호를 사용하는 기법
손실 압축을 이용한 기법
손실 압축(Lossy Compression)은 압축된 정보를 다시 복원할 경우 압축되기 이전의 상태와 동일하지 않은 내용을 가질 수 있는 압축 기법이다. 압축률은 매우 높으나 품질이 저하되고, 정확한 이미지의 복원을 기대하기 어렵다. 그러나 압축 알고리즘에 제한이 없다. 대표적인 손실 압축 기법으로는 다음이 있다.
- 변환 기법: 데이터의 영역을 적당한 변환을 통해 다른 영역으로 옮김으로 데이터를 구성하는 단위 정보의 개수를 줄이는 기법이다. 대표적인 변환 기법으로는
PCM 변환과 이산 코사인 변환(DCT)방법 등이 있다. - 예측 기법: 이전 정보로부터 다음 정보를 예측하고 예측에 의해 발생된 오류를 소량의 오류보정 정보를 이용해 보정하여 원래 정보를 복원할 수 있다는 사실에 기반한 기법이다. 대표적인 예측 기법으로는
DPCM과 델타 변조(DPCM의 특수한 형태), ADPCM등이 있다. - 벡터 양자화: 여러 개의 입력 값을 가지고 있는 벡터들을 간단한 형태의 벡터로 매핑하는 방법이다. 벡터 양자화의 예시로는
"프랙탈 변환(Fractal Transform)"이 있다. - 보간 기법: 원래의 보간법은 몇 개의 점에 주어진 함수 값을 기초로 그 점들 사이의 함숫값을 구하는 근사 계산법을 의미하나, 픽셀 레벨에서 보간 압축은 픽셀들을 띄엄띄엄 전송하고 그 사이 픽셀은 보간 기법을 통해 복구하는 방법이다.
혼합 압축을 이용한 기법
혼합 압축이란 손실 압축과 무손실 압축을 함께 사용하는 방법으로, 일반적으로 자주 사용되는 기법이다. 혼합 압축 단계는 다음의 순서를 따른다.
- 아날로그 신호를 디지털 데이터로 바꾼다.
- 준비된 데이터를 구성하는 정보단위들의 개수와 크기를 변환 기법 등을 이용하여 줄인다.
- 양자화 기법을 이용하여 중요도가 낮은 정보들을 정리한다.
- 허프만 코딩이나 반복길이 코딩과 같은 무손실 압축 기법을 이용한다.
디지털 사운드의 압축 방법
저장매체에 저장되는 디지털 사운드는 매우 큰 용량을 가진다. 대용량의 디지털 사운드가 인터넷에서 자유롭게 송/수신되기 위해서는 저용량/고품질의 압축이 반드시 필요하다. 손실 압축 방법을 이용한 대표적인 압축 코덱 종류에 대해 알아보도록 하겠다.
- MP3: MPEG-1 Audio Layer-3의 줄임말로, 용량이 큰 오디오를 압축하여 효율성을 높이기 위해 개발된 압축 방식
- AAC: 공식 명칭은 MPEG-2 AAC로, MPEG-1에 비해 성능이 우수하다. AAC의 데이터는 가변구조로 되어 압축률에 따라 크기가 변하여 전체 파일의 용량이 줄어들며 양자화 보정 기술을 적용하여 잡음을 감소시키고 원음에 가깝게 만든다. 다만, 원음을 인코딩하는데 시간이 오래 걸린다.
- 돌비 디지털: 기존 아날로그 방식의 서라운드 시스템에 비하여 각 채널이 완전히 분리되어 신호 간섭 없이 깨끗한 소리를 전달할 수 있다. 또한 높은 압축률을 가지기에 DVD-Video 규격의 공식 사운드 소스로 지정되어있다. 다만, 음질은 CD보다 떨어진다.
- WMA: 마이크로소프트에서 개발한 고품질 오디오 코덱으로, 용량은 MP3의 절반 정도이나 음질은 동일하다. 향상된 인코딩 알고리즘으로 인해 인코딩 시간이 훨씬 빠르다.
- 리얼오디오 포맷: RA, RAM, RM 포맷이며, 네트워크에서 실시간으로 멀티미디어 데이터를 전송하는 스트리밍 기술 중 하나이다. 빠른 전송률과 고압축률을 자랑하며, 음성과 동양상을 모두 지원한다. 다만, MP3에 비해 상대적으로 음질이 많이 떨어진다.
디지털 이미지의 압축 방법
지금부터는 디지털 이미지의 압축 방법에 대해서 알아보도록 하겠다.
JPEG
컬러 정지영상의 압축 표준으로 사용되며, MPEG의 기초가 되는 압축 표준이다. JPEG는 크게 손실 압축과 무손실 압축으로 구분된다.
- 손실 압축: DCT 변환과 양자화를 이용하여 압축하며, 높은 압축률에서도 실용적인 복호 화질을 얻을 수 있다. 손실 압축은 영상의 각 요소가 스캔되는 순서에 따라 부호화하는
"기본 방식"과 영상을 여러 개의 스캔으로 부호화하는"확장 방식"으로 구분된다. - 무손실 압축: 예측 방식을 이용하여 무손실 압축을 수행한다. 압축률은 낮으나 화질 열화가 생기지 않는다는 장점이 있다.
- 혼합 압축: 다양한 환경에서 영상을 재생하거나 출력할 수 있도록 여러 해상도로 부호화하는 "계층 방식"을 사용한다. 이때, 부호화를 수행할 때 영상의 해상도를 조금씩 높이며 수행하며, 각 단계의 부호화는 손실 압축이나 무손실 압축 중 한 가지를 사용한다.
JPEG의 알고리즘 과정, 즉 JPEG에서 꼭 사용되어야 하는 기본 방식은 총 다음의 4단계로 나뉘어 수행된다.
- 영상 분할 과정: 영상 분할은 RGB 모델을 YIQ 모델로 변환하는
색상 모델 변환과 Y, I, Q에 대한 각각의 성분을 8 X 8블록으로 나누는블록화에 의해 이루어진다. - DCT 변환 과정: 블록화에 의해 분할된 블록에 대해 DCT 연산을 수행한다.
- 양자화 과정: 인간이 감지하지 못할 정도의 범위 내에서 DCT 계수를 정수로 반올림한다.
- 엔트로피 부호화 과정: 양자화된 DCT 계수를 공간적 특성에 따라 더욱 압축한다. 이때 허프만 코딩을 이용하여 부호화한다.
MPEG
동영상 압축 표준으로, MPEG에서 만든 대표적인 표준으로는 MPEG-1, MPEG-2, MPEG-4가 있다.
- MPEG-1: 최초의 비디오와 오디오 표준, MP3 오디오 압축 포맷이 여기에 포함된다.
- MPEG-2: TV 방송을 위한 표준
- MPEG-3: HDTV 방송을 위해 고안었으나, MPEG-2에 내용이 합쳐져서 중단되었다.
- MPEG-4: MPEG-2를 확장한 표준으로 멀티미디어 통신에서의 이용을 위하여 개발되었다.
- MPEG-7: 멀티미디어 콘텐츠를 기술하기 위한 형식적 시스템
- MPEG-21: 미래의 표준으로, "멀티미디어 프레임워크"라고 표현한다.
MPEG 알고리즘은 JPEG 알고리즘과 H.261 압축 알고리즘을 발전시킨 것이다. 예측 기법과 보간 기법을 이용하여 압축하는 알고리즘이다. 임의의 접근이 가능해야 하기에 현재 프레임이 가진 정보만으로도 복원될 수 있는 프레임이 규칙적으로 삽입되어야 한다는 특징을 가진다. 이때, 삽입되는 프레임의 종류로는 I-프레임, P-프레임, B-프레임이 있다. MPEG 비디오는 세 프레임이 일정한 비율로 배열된 것이다. (이를 Group Of Picture, GOP라고 한다.)
- I-프레임(Intra-coded Frame): 독립적인 영상으로 비디오 데이터의 어느 위치에도 올 수 있으며, 비디오의 임의 접근을 위하여 반드시 필요한 프레임이다. 다른 프레임의 참조 없이 자체만으로 압축되나, 다른 프레임 중 가장 낮은 압축률을 가진다.
- P-프레임(Predictive-coded Frame): 압축할 때 이전의 I 프레임이나 P 프레임 정보를 사용하며, 이전 프레임과 현재 프레임 간의 차이가 적은 점을 이용하여 그 차이만을 압축한다.
- B-프레임(Bidirectional-coded Frame): 압축할 때 이전과 이후의 I 프레임이나 P 프레임 정보를 사용한다. 따라서 가장 좋은 압축률을 가진다.
H.26x
ITU-T에서 제정한 동영상 관련 표준 라인에서 따온 이름으로, H.261, H.262, H.263, H.264/AVC 등이 있다.
- H.261: TV 전화, 회의용 TV 동영상 압축 표준이며, 낮은 속도의 비디오 폰이나 비디오 컨퍼런스를 위해 높은 압축률과 실시간 압축을 지원한다. 예측 기법과 DCT 변환 기법을 사용하며, 압축을 위하여 입력 프레임이 다른 프레임과 독립적으로 부호화하는
"인트라 프레임 방식"과 이전 프레임과 현재 프레임의 차이를 이용하는"인터 프레임 방식"을 사용한다. - H.262: MPEG와 공동으로 표준화를 진행한 것으로, MPEG-2의 영상 부문과 동일한 표준을 가진다.
- H.263: H.261을 기초로 하며, 화상회의와 화상전화에 응용하기 위한 영상 압축 부호화의 표준이다.
- H.264/AVC: 높은 데이터 압축률을 가지는 디지털 비디오 코덱에 대한 표준이다.