압축이란 저장공간을 절약하거나 데이터 전송시간을 줄이기 위하여 데이터의 크기를 줄이는 것입니다. 데이터통신에서, 여러 가지 요소에 따라 데이터 내용에 대해서만 압축을 하거나 또는 헤더 정보를 포함한 전송단위 전체에 대해 압축할 수도 있습니다.
내용압축은 모든 여분의 공란글자를 제거하거나, 연속된 글자들의 스트링 대신 연속글자 한 개로 삽입함으로써 표현하고, 자주 나타나는 글자들을 위한 보다 적은량의 비트 스트링으로 대체하는 등의 간단한 방법으로 할 수 있습니다. 이런 종류의 압축을 통해 텍스트 파일을 원래의 크기에서 약 50%까지로 줄일 수 있습니다. 압축은 데이터를 어떻게 압축하고, 또 풀어낼 것인지를 결정하는 공식이나 알고리즘을 사용하는 프로그램에 의해 행해집니다.
그래픽 이미지 파일 형식은 텍스트 파일에 비해 매우 크기가 큰 파일이 되는 경향이 있기 때문에, 정보를 가능한 한 많이 압축할 수 있도록 설계됩니다.
영상이나 음성 등과 같이 멀티미디어 관련 자료는 문자나 숫자처럼 어떤 상징적인 의미를 갖는 것이 아닙니다. 영상이나 음성은 상징보다는 전체적인 이미지와 흐름,느낌 등이 오히려 중요하죠.
이를테면 노래라는 것은 전체적인 멜로디가 중요한 것이지 개별 마디마디를 구성하는 음표가 중요한 것은 아닙니다. 따라서 전반적인 노래의 감상을 평할 수는 있어도, '이 노래는 ~다' 라는 식으로 잘라 말하기는 어렵기 마련입니다. 영상이나 음성의 이러한 특징 때문에 멀티미디어 관련 자료들은 필연적으로 크기기 커집니다. 문자나 숫자는 하나의 상징기호만으로 그 의미가 통하지만, 영상이나 음성은 전체적의 그림 또는 전체의 노래를 듣기 전에는 의미가 통하지 않기 때문입니다. 예를 들어 A 라는 영문자를 표준 아스키(ASCII)코드로 표현할 경우, 8 Bit 의 용량이면 충분히 표시할 수 있습니다. 반면 A를 그림으로 표시할 경우, 배경은 흰색의 점, 글씨를 구성하는 검은색의 점으로 나누어 표시해야만 합니다. 만일 640 x 480 x 24Bit 해상도의 경우를 가정하면 640 x 480 x 3Byte(=24bit) = 921600 Byte = 900KB 이므로, 그림이 단순하든 복잡하든 무조건 900KB 의 용량이 필요합니다. 만일 같은 해상도의 동영상을 가정하면 자료의 크기는 더욱 커지게 됩니다. 동영상이란 서로 다른 그림을 1초에 24~30장 연속해서 보여주는 것이기 때문입니다.
640 x 480 x 3 Byte x 30FPS = 27648000 Byte ≒ 26.4MB 즉, 640 x 480 x 24 Bit 해상도의 동영상 1초를 기록하기 위해서 무려 26MB 의 용량이 필요하게 됩니다. CD-ROM이나 DVD 가 아무리 대용량의 보조기억장치라고 해도, 이래서는 도저히 감당할 수가 없죠. 따라서 멀티미디어 자료는 필연적으로 압축을 해야만 합니다. 문제는 ZIP,ARJ,RAR 등과 같은 압축 프로그램이 사용하는 방식, 즉 무 손실압축 기법은 멀티미디어 관련자료를 기껏해야 20~50% 정도까지만 압축할 수 있다는 겁니다. 26 MB 나 50%로 압축한 13MB 나 자료의 용량이 크기는 마찬가지죠.
멀티미디어 관련자료는 손실압축기법을 사용합니다. 손실압축이란 원래의 자료 일부를 손상시켜 압축하여 압축효율을 높이는 기술입니다. 우리가 CODEC 이라고 부르는 것들은 대개 손실압축기법입니다. 프로그램이나 중요한 데이터는 1Bit 의 오류도 없는 확실성이 중요하지만, 다행스럽게도 멀티미디어 관련자료는 전체적인 이미지, 흐름,느낌 등이 중요합니다. 다소의 손실이 발생해도 전체적인 이미지에는 큰 영향을 미치지 않기 마련입니다. 참고로 손실압축의 세계 표준인 MPEG 은 250대 1 이상의 높은 압축효율을 자랑합니다.
압축은 다음과 같은 5가지 다른 압축기술을 사용하여 이루어집니다.
DCT (Discrete Cosine Transform)라고 불리는 주파수 기반의 변환 기술의 사용
양자화 : 시각 정보로부터 버리는 것이 용인될 수 있을 만큼 버릴 정보를 선택하는 기술
Huffman 코딩 : 유실 없는 압축 기술로서, 인코드된 데이터에 관해 통계학에 기반을 둔 코드 테이블 사용
보정된 동작 예측 코딩 : 한 이미지와 그것의 바로 앞의 이미지간에 변화된 것의 차이를 계산해서 변화량만을 인코딩
양방향 예측 : 바로 앞의 이미지와 이어질 이미지의 화상으로부터 일부 이미지들을 예측
앞의 세 가지 기술은 JPEG 파일 압축에도 역시 사용됩니다.