데이터 압축

정보 이론에서 **데이터 압축**, **소스 부호화**, 또는 **비트율 감소**는 원래 표현보다 더 적은 비트를 사용하여 정보를 부호화하는 과정이다. 모든 특정 압축은 손실 또는 비손실이다. 비손실 압축은 통계적 여유도를 식별하고 제거함으로써 비트를 줄인다. 비손실 압축에서는 정보가 손실되지 않는다. 손실 압축은 불필요하거나 덜 중요한 정보를 제거함으로써 비트를 줄인다. 일반적으로 데이터 압축을 수행하는 장치는 인코더로, 그 역과정(압축 해제)을 수행하는 장치는 디코더로 지칭된다.

데이터 파일의 크기를 줄이는 과정은 종종 데이터 압축으로 지칭된다. 데이터 전송의 맥락에서는 소스 부호화라고 불린다. 부호화는 데이터가 저장되거나 전송되기 전에 데이터 소스에서 이루어진다. 소스 부호화는 오류 탐지 및 수정 또는 데이터를 신호에 매핑하는 수단인 라인 코딩을 위한 채널 코딩과 구별된다.

데이터 압축 알고리즘은 정보를 저장하거나 전송하는 데 필요한 바이트와 인코딩 및 디코딩을 수행하는 데 필요한 컴퓨팅 자원 간의 공간-시간 복잡성 트레이드오프를 나타낸다. 데이터 압축 방식의 설계는 압축 정도, 도입된 왜곡량 (손실 데이터 압축 사용 시), 데이터 압축 및 압축 해제에 필요한 컴퓨팅 자원 또는 시간 간의 균형을 맞추는 것을 포함한다.

## 비손실

비손실 데이터 압축 알고리즘은 일반적으로 통계적 여유도를 활용하여 어떠한 정보도 손실 없이 데이터를 표현하므로, 과정이 가역적이다. 비손실 압축은 대부분의 실제 데이터가 통계적 여유도를 나타내기 때문에 가능하다. 예를 들어, 이미지는 여러 픽셀에 걸쳐 변하지 않는 색상 영역을 가질 수 있다. "빨간색 픽셀, 빨간색 픽셀, ..."을 부호화하는 대신, 데이터는 "279개의 빨간색 픽셀"로 부호화될 수 있다. 이는 런 렝스 부호화의 기본 예시이며, 여유도를 제거하여 파일 크기를 줄이는 많은 방식이 존재한다.

렘펠-지브 (LZ) 압축 방법은 비손실 저장에 가장 인기 있는 알고리즘 중 하나이다. DEFLATE는 압축 해제 속도 및 압축률에 최적화된 LZ의 변형이지만, 압축 속도는 느릴 수 있다. 1980년대 중반, 테리 웰치의 작업 이후, 렘펠-지브-웰치 (LZW) 알고리즘은 대부분의 범용 압축 시스템에서 빠르게 선호되는 방법이 되었다. LZW는 GIF 이미지, PKZIP과 같은 프로그램, 모뎀과 같은 하드웨어 장치에 사용된다. LZ 방법은 테이블 기반 압축 모델을 사용하며, 테이블 항목은 반복되는 데이터 문자열로 대체된다. 대부분의 LZ 방법에서 이 테이블은 입력의 이전 데이터로부터 동적으로 생성된다. 테이블 자체는 종종 허프먼 부호화된다. 이러한 문법 기반 부호화는 예를 들어, 동일하거나 밀접하게 관련된 종의 생물학적 데이터 수집, 거대한 버전 관리 문서 컬렉션, 인터넷 아카이빙 등 매우 반복적인 입력을 매우 효과적으로 압축할 수 있다. 문법 기반 부호화의 기본 과제는 단일 문자열을 파생하는 문맥 자유 문법을 구성하는 것이다. 다른 실용적인 문법 압축 알고리즘으로는 Sequitur 및 Re-Pair가 있다.

가장 강력한 현대 비손실 압축기는 확률적 모델, 예를 들어 부분 일치 예측을 사용한다. 버로우즈-휠러 변환 또한 통계적 모델링의 간접적인 형태로 볼 수 있다. 확률적 모델링의 직접적인 사용을 더욱 정교하게 개선한 것은 통계적 추정치를 산술 부호화라는 알고리즘과 결합할 수 있다는 것이다. 산술 부호화는 일련의 입력 데이터 심볼로부터 인코딩된 비트 문자열을 생성하기 위해 유한 상태 기계의 수학적 계산을 사용하는 보다 현대적인 부호화 기술이다. 이는 잘 알려진 허프먼 알고리즘과 같은 다른 기술에 비해 우수한 압축을 달성할 수 있다. 이는 개별 입력 심볼을 정수 비트를 사용하는 고유한 표현에 일대일 매핑할 필요성을 피하기 위해 내부 메모리 상태를 사용하며, 전체 데이터 심볼 문자열을 인코딩한 후에만 내부 메모리를 지운다. 산술 부호화는 통계가 다양하고 문맥에 따라 달라지는 적응형 데이터 압축 작업에 특히 잘 적용되는데, 이는 입력 데이터의 확률 분포에 대한 적응형 모델과 쉽게 결합할 수 있기 때문이다. 산술 부호화 사용의 초기 예시는 JPEG 이미지 부호화 표준의 선택적 (그러나 널리 사용되지 않은) 기능이었다. 이후 H.263, H.264/MPEG-4 AVC, HEVC를 포함한 다양한 다른 설계에 비디오 부호화를 위해 적용되었다.

아카이브 소프트웨어는 일반적으로 "사전 크기"를 조정하는 기능을 가지고 있으며, 더 큰 크기는 압축 및 압축 해제 중에 더 많은 RAM을 요구하지만, 특히 파일 내용의 반복 패턴에서 더 강력하게 압축한다.

## 손실

섬네일|JPG 및 PNG 이미지 압축을 보여주는 합성 이미지. 이미지의 왼쪽은 손실 아티팩트를 보여주는 JPEG 이미지이고, 오른쪽은 PNG 이미지이다.
1980년대 후반에 디지털 이미지가 더욱 보편화되었고, 비손실 이미지 압축 표준이 등장했다. 1990년대 초반에는 손실 압축 방법이 널리 사용되기 시작했다. 이러한 방식에서는 중요하지 않은 세부 사항을 제거하여 저장 공간을 절약할 수 있으므로, 정보의 일부 손실이 허용된다. 정보 보존과 크기 축소 사이에는 상응하는 트레이드오프가 존재한다. 손실 데이터 압축 방식은 사람들이 해당 데이터를 어떻게 인식하는지에 대한 연구를 통해 설계된다. 예를 들어, 인간의 눈은 색상 변화보다 휘도의 미묘한 변화에 더 민감하다. JPEG 이미지 압축은 중요하지 않은 정보 비트를 반올림하여 작동하는 부분이 있다. 음향심리학을 소리에, 심리시각을 이미지와 비디오에 적용하는 등, 여러 인기 있는 압축 형식은 이러한 지각적 차이를 활용한다.

대부분의 손실 압축은 변환 부호화, 특히 이산 코사인 변환 (DCT)을 기반으로 한다. 이는 1972년 나시르 아메드가 처음 제안했으며, 1973년에 T. Natarajan 및 K. R. 라오와 함께 작동하는 알고리즘을 개발한 후 1974년 1월에 소개했다. DCT는 가장 널리 사용되는 손실 압축 방법이며, 이미지 (JPEG 및 HEIF 등), 비디오 (MPEG, AVC 및 HEVC 등), 오디오 (MP3, AAC 및 Vorbis 등)를 위한 멀티미디어 형식에 사용된다.

손실 이미지 압축은 디지털 카메라에 사용되어 저장 용량을 늘린다. 마찬가지로, DVD, 블루레이 및 스트리밍 비디오는 손실 영상 코딩 포맷을 사용한다. 손실 압축은 비디오에 광범위하게 사용된다.

손실 오디오 압축에서는 음향심리학 방법이 사용되어 오디오 신호의 들리지 않거나 (덜 들리는) 구성 요소를 제거한다. 사람의 음성 압축은 종종 훨씬 더 전문화된 기술로 수행된다. 음성 부호화는 범용 오디오 압축과는 별개의 분야로 구분된다. 음성 부호화는 인터넷 전화에 사용되며, 예를 들어 오디오 압축은 CD 리핑에 사용되고 오디오 플레이어에서 디코딩된다.

손실 압축은 세대 손실을 유발할 수 있다.

## 이론
압축의 이론적 근거는 정보 이론과, 더 구체적으로는 샤논의 소스 부호화 정리에 의해 제공된다. 도메인 특정 이론으로는 비손실 압축을 위한 알고리즘 정보 이론과 손실 압축을 위한 부호율-변형 이론이 있다. 이러한 연구 분야는 1940년대 후반과 1950년대 초반에 이 주제에 대한 근본적인 논문을 발표한 클로드 섀넌에 의해 본질적으로 창조되었다. 압축과 관련된 다른 주제로는 부호 이론 및 통계적 추론이 있다.

### 기계 학습
기계 학습과 압축 사이에는 밀접한 관계가 있다. 전체 이력을 고려하여 시퀀스의 사후 확률을 예측하는 시스템은 최적의 데이터 압축에 사용될 수 있다 (출력 분포에 산술 부호화를 사용하여). 반대로, 최적의 압축기는 예측에 사용될 수 있다 (이전 이력을 고려하여 가장 잘 압축되는 심볼을 찾아서). 이 등가성은 데이터 압축을 "일반 지능"의 벤치마크로 사용하는 정당화로 사용되어 왔다.

대안적인 관점은 압축 알고리즘이 문자열을 암시적 특징 공간 벡터로 암묵적으로 매핑하고, 압축 기반 유사성 측정은 이러한 특징 공간 내에서 유사성을 계산한다는 것을 보여줄 수 있다. 각 압축기 C(.)에 대해 우리는 C(.)가 입력 문자열 x를 해당 벡터 노름 ||~x||에 매핑하는 연관된 벡터 공간 ℵ를 정의한다. 모든 압축 알고리즘에 내재된 특징 공간에 대한 철저한 조사는 공간 제약으로 인해 배제되며, 대신 특징 벡터는 세 가지 대표적인 비손실 압축 방법인 LZW, LZ77 및 PPM을 조사한다.

AIXI 이론에 따르면, 후터 프라이즈에서 더 직접적으로 설명된 연결은 x의 가장 좋은 압축은 x를 생성하는 가장 작은 가능한 소프트웨어라는 것이다. 예를 들어, 그 모델에서 ZIP 파일의 압축된 크기에는 ZIP 파일과 압축 해제 소프트웨어 둘 다 포함되는데, 둘 다 없으면 압축을 해제할 수 없기 때문이다. 그러나 더 작은 결합 형태가 있을 수 있다.

AI 기반 오디오/비디오 압축 소프트웨어의 예로는 NVIDIA Maxine, AIVC가 있다. AI 기반 이미지 압축을 수행할 수 있는 소프트웨어의 예로는 OpenCV, 텐서플로, 매트랩의 이미지 처리 툴박스(IPT) 및 High-Fidelity Generative Image Compression이 있다.

비지도 기계 학습에서 k-평균 군집화는 유사한 데이터 포인트를 클러스터로 그룹화하여 데이터를 압축하는 데 활용될 수 있다. 이 기술은 사전 정의된 레이블이 없는 방대한 데이터 세트 처리를 단순화하며, 이미지 압축과 같은 분야에서 널리 사용된다.

데이터 압축은 데이터 파일의 크기를 줄여 저장 효율성을 높이고 데이터 전송 속도를 높이는 것을 목표로 한다. 비지도 기계 학습 알고리즘인 K-평균 군집화는 데이터 세트를 지정된 수의 클러스터 k로 분할하는 데 사용되며, 각 클러스터는 해당 지점의 중심으로 표현된다. 이 과정은 방대한 데이터 세트를 더 압축된 대표 지점 집합으로 응축한다. 특히 이미지 및 신호 처리에 유용하며, K-평균 군집화는 데이터 포인트 그룹을 해당 중심점으로 대체하여 데이터 감소를 돕고, 원본 데이터의 핵심 정보를 보존하면서 필요한 저장 공간을 크게 줄인다.

대형 언어 모델 (LLM) 또한 일부 데이터 세트에서 효율적인 비손실 데이터 압축기이며, 딥마인드의 친칠라 70B 모델 연구에서 입증되었다. 딥마인드가 개발한 친칠라 70B는 데이터를 효과적으로 압축하여 이미지의 경우 PNG 및 오디오의 경우 FLAC과 같은 기존 방법을 능가했다. 이미지 및 오디오 데이터를 각각 원본 크기의 43.4% 및 16.4%로 압축했다. 그러나 테스트에 사용된 데이터 세트가 LLM 훈련 데이터 세트와 겹칠 가능성이 있어, 친칠라 70B 모델이 이미 훈련된 데이터에서만 효율적인 압축 도구일 수 있다는 우려도 있다.

### 데이터 차분
[섬네일|파일의 두 버전을 [파일 비교|비교한 스크린샷]]

데이터 압축은 데이터 차분의 특수한 경우로 볼 수 있다. 데이터 차분은 소스와 대상이 주어졌을 때 차이를 생성하는 것으로 구성되며, 패치는 소스와 차이가 주어졌을 때 대상을 재현한다. 데이터 압축에는 별도의 소스와 대상이 없으므로, 데이터 압축을 빈 소스 데이터를 가진 데이터 차분으로 간주할 수 있으며, 압축된 파일은 아무것도 없는 것으로부터의 차이에 해당한다. 이는 절대 엔트로피 (데이터 압축에 해당)를 초기 데이터가 없는 상대 엔트로피 (데이터 차분에 해당)의 특수한 경우로 간주하는 것과 동일하다.

차분 압축이라는 용어는 데이터 차분 연결을 강조하기 위해 사용된다.

## 사용례
### 이미지

엔트로피 부호화는 1940년대에 샤논-파노 부호화가 도입되면서 시작되었고, 이는 1950년에 개발된 허프먼 부호화의 기반이 되었다. 변환 부호화는 1960년대 후반에 고속 푸리에 변환 (FFT) 부호화가 1968년에, 아다마르 변환이 1969년에 도입되면서 시작되었다.

중요한 이미지 압축 기술은 1970년대 초반에 개발된 이산 코사인 변환 (DCT)이다. DCT는 Joint Photographic Experts Group (JPEG)이 1992년에 도입한 손실 압축 형식인 JPEG의 기반이 되었다. JPEG는 이미지 품질의 상대적으로 작은 감소를 대가로 이미지를 표현하는 데 필요한 데이터 양을 크게 줄여주며, 가장 널리 사용되는 이미지 파일 형식이 되었다. 고효율 DCT 기반 압축 알고리즘은 디지털 이미지와 디지털 사진의 광범위한 확산에 크게 기여했다.

렘펠-지브-웰치 (LZW)는 1984년에 개발된 비손실 압축 알고리즘이다. 이는 1987년에 도입된 GIF 형식에 사용된다. 1996년에 명시된 비손실 압축 알고리즘인 DEFLATE는 포터블 네트워크 그래픽스 (PNG) 형식에 사용된다.

웨이블릿 압축, 즉 이미지 압축에서 웨이블릿의 사용은 DCT 부호화가 개발된 이후에 시작되었다. JPEG 2000 표준은 2000년에 도입되었다. 원본 JPEG 형식에서 사용된 DCT 알고리즘과 대조적으로, JPEG 2000은 대신 이산 웨이블릿 변환 (DWT) 알고리즘을 사용한다. 모션 JPEG 2000 확장을 포함하는 JPEG 2000 기술은 2004년에 디지털 시네마를 위한 영상 코딩 표준으로 선정되었다.

### 오디오

동적 범위 압축과 구별되는 오디오 데이터 압축은 오디오 데이터의 전송 대역폭과 저장 요구 사항을 줄일 수 있는 잠재력이 있다. 오디오 압축 형식 압축 알고리즘은 오디오 코덱으로 소프트웨어에 구현된다. 손실 및 비손실 압축 모두에서, 정보 여유도는 비압축 데이터를 표현하는 데 사용되는 정보의 양을 줄이기 위해 코딩, 양자화, DCT 및 선형 예측과 같은 방법을 사용하여 감소된다.

손실 오디오 압축 알고리즘은 더 높은 압축을 제공하며 Vorbis 및 MP3를 포함한 수많은 오디오 응용 프로그램에 사용된다. 이러한 알고리즘은 거의 모두 음향심리학에 의존하여 덜 들리는 소리의 충실도를 제거하거나 줄여서 저장하거나 전송하는 데 필요한 공간을 줄인다.

오디오 품질 손실과 전송 또는 저장 크기 사이의 허용 가능한 트레이드오프는 응용 프로그램에 따라 달라진다. 예를 들어, 640MB 콤팩트 디스크 (CD)는 약 1시간의 비압축 고음질 음악, 2시간 미만의 비손실 압축 음악, 또는 중간 비트율로 MP3 형식으로 압축된 7시간의 음악을 담을 수 있다. 디지털 음성 녹음기는 일반적으로 640MB에 약 200시간 분량의 명료한 음성을 저장할 수 있다.

비손실 오디오 압축은 원본의 정확한 디지털 복사본으로 디코딩될 수 있는 디지털 데이터 표현을 생성한다. 압축률은 원본 크기의 약 50–60%이며, 이는 일반적인 비손실 데이터 압축과 유사하다. 비손실 코덱은 신호를 추정하기 위한 기반으로 커브 피팅 또는 선형 예측을 사용한다. 추정치를 설명하는 매개변수와 추정치와 실제 신호 간의 차이는 별도로 코딩된다.

여러 비손실 오디오 압축 형식이 존재한다. 목록은 비손실 코덱 목록을 참조하라. 일부 형식은 슈퍼 오디오 CD에 사용되는 Direct Stream Transfer 및 DVD 오디오, 돌비 트루HD, 블루레이 및 HD DVD에 사용되는 Meridian Lossless Packing과 같이 별도의 시스템과 연결된다.

일부 오디오 파일 포맷은 손실 형식과 비손실 보정의 조합을 특징으로 한다. 이를 통해 보정을 제거하여 손실 파일을 쉽게 얻을 수 있다. 이러한 형식에는 MPEG-4 SLS (Scalable to Lossless), WavPack, 및 OptimFROG DualStream이 있다.

오디오 파일을 추가 압축하거나 편집하여 처리할 경우, 변경되지 않은 원본(비압축 또는 비손실 압축)에서 작업하는 것이 바람직하다. 어떤 목적으로 손실 압축 파일을 처리하면 압축되지 않은 원본에서 동일한 압축 파일을 생성하는 것보다 최종 결과가 좋지 않은 경우가 많다. 사운드 편집이나 믹싱 외에도 비손실 오디오 압축은 종종 아카이브 저장 또는 마스터 복사본으로 사용된다.

#### 손실 오디오 압축
[섬네일|비압축 형식과 여러 손실 형식의 오디오 [스펙트로그램 비교. 손실 스펙트로그램은 손실 오디오 압축과 관련된 일반적인 기술인 고주파수 밴드리미팅을 보여준다.]]

손실 오디오 압축은 광범위한 응용 분야에서 사용된다. MP3 플레이어나 컴퓨터에서 파일을 재생하는 독립형 오디오 전용 응용 프로그램 외에도, 디지털 압축 오디오 스트림은 대부분의 비디오 DVD, 디지털 텔레비전, 인터넷의 스트리밍 미디어, 위성 및 케이블 라디오, 그리고 점점 더 지상파 라디오 방송에서 사용된다. 손실 압축은 음향심리학적 최적화를 기반으로 덜 중요한 데이터를 버림으로써 비손실 압축보다 훨씬 더 큰 압축률을 달성한다.

음향심리학은 오디오 스트림의 모든 데이터를 인간 청각 시스템이 인지할 수 있는 것은 아니라는 점을 인식한다. 대부분의 손실 압축은 지각적으로 관련 없는 소리, 즉 듣기 매우 어려운 소리를 먼저 식별하여 중복성을 줄인다. 일반적인 예로는 고주파수 또는 더 큰 소리와 동시에 발생하는 소리가 있다. 이러한 관련 없는 소리는 정확도가 감소하거나 전혀 코딩되지 않는다.

손실 알고리즘의 특성상 파일이 압축 해제되고 다시 압축될 때 음질은 디지털 세대 손실을 겪는다. 이로 인해 손실 압축은 사운드 편집 및 멀티트랙 녹음과 같은 전문 오디오 엔지니어링 응용 프로그램에서 중간 결과를 저장하는 데 적합하지 않다. 그러나 MP3와 같은 손실 형식은 파일 크기가 원본 크기의 5-20%로 줄어들고 1메가바이트에 적절한 품질의 음악 약 1분 분량을 저장할 수 있어 최종 사용자에게 매우 인기가 있다.

비손실 및 손실 알고리즘의 조합과 적응형 비트율 및 낮은 압축률을 사용하여 더 높은 품질의 오디오 성능을 제공하는 여러 독점적인 손실 압축 알고리즘이 개발되었다. 예를 들어 aptX, LDAC, LHDC, MQA 및 SCL6가 있다.

##### 부호화 방법
오디오 신호에서 지각적으로 관련 없는 정보를 결정하기 위해 대부분의 손실 압축 알고리즘은 수정 이산 코사인 변환 (MDCT)과 같은 변환을 사용하여 시간 영역 샘플링된 파형을 변환 영역, 일반적으로 주파수 영역으로 변환한다. 변환된 후에는 구성 요소 주파수를 가청도에 따라 우선순위를 정할 수 있다. 스펙트럼 구성 요소의 가청도는 절대 가청 한계와 동시 마스킹의 원리(주파수별로 분리된 다른 신호에 의해 신호가 마스킹되는 현상) 및 경우에 따라 시간 마스킹(시간별로 분리된 다른 신호에 의해 신호가 마스킹되는 현상)을 사용하여 평가된다. 등청감 곡선도 구성 요소의 지각적 중요성을 측정하는 데 사용될 수 있다. 이러한 효과를 통합하는 인간 귀-뇌 조합 모델은 종종 음향심리학적 모델이라고 불린다.

음성 부호화에 사용되는 선형 예측 부호화 (LPC)와 같은 다른 유형의 손실 압축기는 소스 기반 코더이다. LPC는 인간의 성대 모델을 사용하여 음성 소리를 분석하고 모델이 소리를 순간적으로 생성하는 데 사용하는 매개변수를 추론한다. 이러한 변화하는 매개변수는 전송되거나 저장되며, 디코더의 다른 모델을 구동하여 소리를 재현하는 데 사용된다.

손실 형식은 종종 스트리밍 오디오 또는 대화형 통신 (셀룰러 망과 같은)의 배포에 사용된다. 이러한 응용 프로그램에서는 전체 데이터 스트림이 전송된 후가 아니라 데이터가 흐르는 대로 데이터가 압축 해제되어야 한다. 모든 오디오 코덱이 스트리밍 응용 프로그램에 사용될 수 있는 것은 아니다.

데이터를 인코딩하고 디코딩하는 데 사용되는 방법으로 인해 레이턴시가 발생한다. 일부 코덱은 효율성을 최적화하기 위해 프레임이라고 하는 더 긴 데이터 세그먼트를 분석한 다음, 한 번에 더 큰 데이터 세그먼트가 필요한 방식으로 코딩한다. 코딩 알고리즘의 내재된 레이턴시는 중요할 수 있다. 예를 들어, 전화 통화와 같이 데이터의 양방향 전송이 있는 경우 상당한 지연은 인지된 품질을 심각하게 저하시킬 수 있다.

알고리즘이 요구하는 연산 횟수에 비례하는 압축 속도와 달리, 여기서 레이턴시는 오디오 블록이 처리되기 전에 분석해야 하는 샘플 수를 의미한다. 최소의 경우, 레이턴시는 0 샘플이다 (예: 코더/디코더가 단순히 신호를 양자화하는 데 사용되는 비트 수를 줄이는 경우). LPC와 같은 시간 영역 알고리즘도 종종 낮은 레이턴시를 가지므로, 전화 통화를 위한 음성 코딩에서 인기가 높다. 그러나 MP3와 같은 알고리즘에서는 주파수 영역에서 음향심리학적 모델을 구현하기 위해 많은 수의 샘플을 분석해야 하며, 레이턴시는 약 23밀리초 정도이다.

##### 음성 부호화
음성 부호화는 오디오 데이터 압축의 중요한 범주이다. 사람의 귀가 들을 수 있는 음성의 어떤 측면을 추정하는 데 사용되는 지각 모델은 일반적으로 음악에 사용되는 모델과는 다소 다르다. 사람의 목소리 소리를 전달하는 데 필요한 주파수 범위는 일반적으로 음악에 필요한 범위보다 훨씬 좁으며, 소리는 일반적으로 덜 복잡하다. 결과적으로, 음성은 상대적으로 낮은 비트율로 고품질로 인코딩될 수 있다.

이는 일반적으로 다음 두 가지 접근 방식의 조합을 통해 이루어진다.
* 단일 인간 음성으로 낼 수 있는 소리만 인코딩한다.
* 신호의 더 많은 데이터를 버린다. 즉, 인간 청각의 전체 주파수 범위가 아닌 "이해 가능한" 음성을 재구성하기에 충분한 데이터만 유지한다.

음성 부호화(및 일반적으로 오디오 데이터 압축)에 사용된 초기 알고리즘은 A 법칙 알고리즘과 뮤 법칙 알고리즘이었다.

#### 역사
[right|섬네일|Solidyne 922: 세계 최초의 상업용 오디오 비트 압축 [사운드 카드 (PC용, 1990년)]]

초기 오디오 연구는 벨 연구소에서 수행되었다. 그곳에서 1950년 C. 채핀 커틀러는 차분 펄스 부호 변조 (DPCM)에 대한 특허를 출원했다. 1973년 적응 DPCM (ADPCM)은 P. Cummiskey, Nikil S. Jayant 및 제임스 L. 플래너건에 의해 도입되었다.

지각 부호화는 처음에는 선형 예측 부호화 (LPC)를 사용하여 음성 부호화 압축에 사용되었다. LPC에 대한 초기 개념은 1966년 이타쿠라 후미타다 (나고야 대학)와 사이토 슈조 (일본전신전화)의 작업으로 거슬러 올라간다. 1970년대에 벨 연구소의 비슈누 S. 아탈과 만프레드 R. 슈뢰더는 LPC의 한 형태인 적응 예측 코딩 (APC)을 개발했는데, 이는 인간 귀의 마스킹 특성을 활용하는 지각 코딩 알고리즘이며, 1980년대 초에는 당시 상당한 압축률을 달성한 코드 여기 선형 예측 (CELP) 알고리즘이 뒤따랐다. 지각 코딩은 MP3 및 AAC와 같은 현대 오디오 압축 형식에 사용된다.

나시르 아메드, T. 나타라잔 및 K. R. 라오가 1974년에 개발한 이산 코사인 변환 (DCT)은 MP3와 같은 현대 오디오 압축 형식에서 사용되는 수정 이산 코사인 변환 (MDCT)의 기반을 제공했다. 돌비 디지털, 및 AAC. MDCT는 1986년 프린센과 브래들리의 이전 작업에 이어 1987년 J. P. 프린센, A. W. 존슨 및 A. B. 브래들리에 의해 제안되었다.

세계 최초의 상업용 방송 자동화 오디오 압축 시스템은 부에노스아이레스 대학교의 공학 교수인 오스카 보넬로(Oscar Bonello)가 개발했다.
1983년, 1967년에 처음 발표된 임계 대역의 마스킹이라는 음향심리학적 원리를 사용하여 최근 개발된 IBM PC 컴퓨터를 기반으로 실용적인 응용 프로그램을 개발하기 시작했으며, 1987년 Audicom이라는 이름으로 방송 자동화 시스템이 출시되었다.
35년 후, 발명가는 자신의 연구에 특허를 내지 않고 공개하고 공용으로 남겨두기로 결정했기 때문에 전 세계 거의 모든 라디오 방송국이 여러 회사에서 제조한 이 기술을 사용하게 되었다.

다양한 오디오 코딩 시스템에 대한 문헌 요약은 1988년 2월 IEEE의 Journal on Selected Areas in Communications (JSAC)에 발표되었다. 그 이전에 몇몇 논문이 있었지만, 이 컬렉션은 완성된 다양한 오디오 코더를 문서화했으며, 이들 대부분은 지각 기법과 일종의 주파수 분석 및 백엔드 무손실 코딩을 사용했다.

### 비디오

비압축 비디오는 매우 높은 데이터율을 요구한다. 비손실 비디오 압축 코덱은 5에서 12의 압축 계수로 작동하지만, 일반적인 H.264 손실 압축 비디오는 20에서 200 사이의 압축 계수를 갖는다.

영상 코딩 표준에 사용되는 두 가지 핵심 비디오 압축 기술은 DCT와 움직임 보상 (MC)이다. H.26x 및 MPEG 형식과 같은 대부분의 비디오 코딩 표준은 일반적으로 움직임 보상 DCT 비디오 코딩 (블록 움직임 보상)을 사용한다.

대부분의 비디오 코덱은 오디오 압축 기술과 함께 사용되어 별개의 상호 보완적인 데이터 스트림을 컨테이너 형식으로 하나의 결합된 패키지로 저장한다.

#### 인코딩 이론
비디오 데이터는 일련의 정지 이미지 프레임으로 표현될 수 있다. 이러한 데이터는 일반적으로 풍부한 양의 공간 및 시간 여유도를 포함한다. 비디오 압축 알고리즘은 중복성을 줄이고 정보를 더 압축적으로 저장하려고 시도한다.

대부분의 영상 코딩 포맷 및 코덱은 공간 및 시간 중복성(예: 움직임 보상을 사용한 차이 코딩을 통해)을 모두 활용한다. 유사성은 예를 들어 시간적으로 인접한 프레임(인터프레임 코딩) 또는 공간적으로 인접한 픽셀(인트라프레임 코딩) 간의 차이만 저장하여 인코딩될 수 있다. 인터프레임 압축(시간 델타 부호화)은 시퀀스에서 하나 이상의 이전 또는 이후 프레임의 데이터를 (재)사용하여 현재 프레임을 설명한다. 반면 인트라프레임 부호화는 현재 프레임 내의 데이터만 사용하며, 사실상 정지 이미지 압축이다.

캠코더 및 비디오 편집에 사용되는 인트라프레임 비디오 코딩 형식은 인트라프레임 예측만 사용하는 더 간단한 압축을 사용한다. 이는 비디오 편집 소프트웨어를 단순화하는데, 이는 압축된 프레임이 편집자가 삭제한 데이터를 참조하는 상황을 방지하기 때문이다.

일반적으로 비디오 압축은 인간 시각의 지각적 특징을 활용하여 인간 시각 인식과 관련이 없거나 덜 관련된 소스 데이터의 측면을 줄이는 양자화와 같은 손실 압축 기술을 추가로 사용한다. 예를 들어, 색상의 작은 차이는 밝기 변화보다 인지하기 어렵다. 압축 알고리즘은 JPEG 이미지 압축에 사용되는 방식과 유사하게 이러한 유사한 영역에 걸쳐 색상을 평균화할 수 있다. 모든 손실 압축과 마찬가지로 비디오 품질과 비트레이트, 압축 및 압축 해제 처리 비용, 시스템 요구 사항 사이에는 트레이드오프가 있다. 고도로 압축된 비디오는 눈에 띄거나 산만한 아티팩트를 나타낼 수 있다.

널리 사용되는 DCT 기반 변환 형식 이외의 다른 방법, 예를 들어 프랙탈 압축, 매칭 추구 및 이산 웨이블릿 변환 (DWT)의 사용은 일부 연구의 대상이 되어 왔지만, 일반적으로 실용적인 제품에는 사용되지 않는다. 웨이블릿 압축은 정지 이미지 코더 및 움직임 보상 없는 비디오 코더에 사용된다. 프랙탈 압축에 대한 관심은 그러한 방법의 비교적 낮은 효과를 보여주는 최근 이론적 분석으로 인해 줄어들고 있는 것으로 보인다.

##### 인터프레임 부호화

인터프레임 부호화에서 비디오 시퀀스의 개별 프레임은 한 프레임에서 다음 프레임으로 비교되며, 비디오 압축 코덱은 참조 프레임에 대한 차이점을 기록한다. 프레임에 아무것도 움직이지 않은 영역이 포함되어 있으면, 시스템은 이전 프레임의 해당 부분을 다음 프레임으로 복사하는 짧은 명령을 발행할 수 있다. 프레임의 섹션이 간단한 방식으로 움직이면, 압축기는 압축 해제기에게 복사본을 이동, 회전, 밝게 또는 어둡게 하도록 지시하는 (약간 더 긴) 명령을 발행할 수 있다. 이 더 긴 명령은 여전히 인트라프레임 압축에 의해 생성된 데이터보다 훨씬 짧다. 일반적으로 인코더는 참조 이미지에 대한 나머지 더 미묘한 차이를 설명하는 잔차 신호도 전송한다. 엔트로피 부호화를 사용하면 이러한 잔차 신호는 전체 신호보다 더 압축된 표현을 갖는다. 움직임이 더 많은 비디오 영역에서는 압축이 변경되는 픽셀 수가 많아짐에 따라 더 많은 데이터를 인코딩해야 한다. 일반적으로 폭발, 화염, 동물의 무리 및 일부 패닝 샷의 고주파 세부 정보는 품질 저하 또는 가변 비트레이트 증가로 이어진다.

#### 하이브리드 블록 기반 변환 형식
섬네일|upright=2|일반적인 비디오 인코더의 처리 단계

많은 일반적으로 사용되는 비디오 압축 방법 (예: ITU-T 또는 ISO에서 승인된 표준에 있는 것들)은 1988년 ITU-T에서 표준화된 H.261로 거슬러 올라가는 동일한 기본 아키텍처를 공유한다. 이들은 주로 인접 픽셀의 직사각형 블록에 적용되는 DCT와 움직임 벡터를 사용한 시간 예측, 그리고 오늘날에는 인루프 필터링 단계에 의존한다.

예측 단계에서는 다양한 데이터 중복 제거 및 차이-코딩 기술이 적용되어 데이터를 비상관화하고 이미 전송된 데이터를 기반으로 새로운 데이터를 설명하는 데 도움이 된다.

그런 다음 나머지 픽셀 데이터의 직사각형 블록이 주파수 도메인으로 변환된다. 주요 손실 처리 단계에서는 주파수 도메인 데이터가 인간 시각 인식과 관련이 없는 정보를 줄이기 위해 양자화된다.

마지막 단계에서는 엔트로피 부호화기에 의해 통계적 중복성이 크게 제거되며, 이는 종종 일종의 산술 부호화를 적용한다.

추가적인 인루프 필터링 단계에서는 재구성된 이미지 신호에 다양한 필터가 적용될 수 있다. 이러한 필터를 인코딩 루프 내에서도 계산함으로써 예측 프로세스에 사용되기 전에 참조 자료에 적용될 수 있고 원본 신호를 사용하여 안내될 수 있으므로 압축에 도움이 될 수 있다. 가장 인기 있는 예는 변환 블록 경계의 양자화 불연속성으로 인한 블록 아티팩트를 흐리게 하는 디블로킹 필터이다.

#### 역사

1967년 A.H. 로빈슨과 C. 체리는 아날로그 텔레비전 신호 전송을 위한 런 렝스 부호화 대역폭 압축 방식을 제안했다. 현대 비디오 압축의 기본이 되는 DCT는 1974년 나시르 아메드, T. 나타라잔, K. R. 라오에 의해 도입되었다.

1988년에 처음 출시된 H.261은 비디오 압축 기술의 널리 퍼진 기본 아키텍처를 상업적으로 도입했다. 이는 DCT 압축을 기반으로 한 최초의 영상 코딩 포맷이었다. H.261은 히타치 제작소, PictureTel, NTT, BT, 도시바를 포함한 여러 회사에서 개발했다.

코덱에 사용되는 가장 인기 있는 영상 코딩 표준은 MPEG 표준이다. MPEG-1은 1991년 Motion Picture Experts Group (MPEG)에 의해 개발되었으며, VHS 품질 비디오를 압축하도록 설계되었다. 1994년에는 MPEG-2/H.262로 계승되었으며, 이는 주로 소니, 톰슨, 미쓰비시 전기를 포함한 여러 회사에서 개발했다. MPEG-2는 DVD 및 SD 디지털 텔레비전의 표준 비디오 형식이 되었다. 1999년에는 MPEG-4/H.263이 뒤따랐다. 이는 주로 미쓰비시 전기, 히타치 제작소 및 파나소닉을 포함한 여러 회사에서 개발했다.

H.264/MPEG-4 AVC는 2003년 주로 파나소닉, Godo Kaisha IP Bridge 및 LG전자를 포함한 여러 기관에서 개발했다. AVC는 현대의 문맥 적응 이진 산술 부호화 (CABAC) 및 문맥 적응 가변 길이 부호화 (CAVLC) 알고리즘을 상업적으로 도입했다. AVC는 블루레이 디스크의 주요 비디오 인코딩 표준이며, 유튜브, 넷플릭스, 비메오, 아이튠즈 스토어와 같은 비디오 공유 웹사이트 및 스트리밍 인터넷 서비스, 어도비 플래시 플레이어 및 마이크로소프트 실버라이트와 같은 웹 소프트웨어, 그리고 지상파 및 위성 텔레비전을 통한 다양한 HDTV 방송에서 널리 사용된다.

### 유전학
유전학 압축 알고리즘은 기존 압축 알고리즘과 특정 데이터 유형에 적응된 유전 알고리즘을 모두 사용하여 데이터를(일반적으로 핵산 염기 서열) 압축하는 최신 세대의 비손실 알고리즘이다. 2012년, 존스 홉킨스 대학교의 과학자 팀은 압축에 참조 유전체를 사용하지 않는 유전 압축 알고리즘을 발표했다. HAPZIPPER는 HapMap 데이터에 맞춤 제작되었으며, 20배 이상의 압축률(파일 크기 95% 감소)을 달성하여 기존 범용 압축 유틸리티보다 2~4배 더 나은 압축률을 제공하고 계산 집약도가 낮다. 이를 위해 Chanda, Elhaik, Bader는 마이너 대립유전자 빈도(MAF) 기반 인코딩(MAFE)을 도입하여 SNP를 마이너 대립유전자 빈도에 따라 정렬하여 데이터 세트의 이질성을 줄이고 데이터 세트를 동질화했다. 2009년과 2013년에 개발된 다른 알고리즘(DNAZip 및 GenomeZip)은 최대 1200배의 압축률을 가지며, 60억 염기쌍 이배체 인간 유전체를 2.5메가바이트로 저장할 수 있다(참조 유전체 대비 또는 여러 유전체에 걸쳐 평균화). 유전학/유전체학 데이터 압축기에 대한 벤치마크는를 참조할 것.

## 전망 및 현재 활용되지 않는 잠재력
세계 저장 장치에 저장된 총 데이터 양은 기존 압축 알고리즘으로 평균 4.5:1의 추가 압축이 가능할 것으로 추정된다. 2007년 기준으로 세계의 정보 저장 기술적 용량은 1,300 엑사바이트의 하드웨어 숫자를 제공하지만, 해당 콘텐츠가 최적으로 압축되면 이는 295 엑사바이트의 섀넌 정보만을 나타낸다.

## 압축률 비교
다른 방식의 데이터 압축에 대한 테스트 결과이다. 괄호 안의 숫자는 압축 방식의 순위이다.

* .htm, .txt와 같은 텍스트 파일은 압축하기 쉬우며 압축률이 높은 경우가 많다.
* 이미 압축되어 있는 파일들(.rar, .zip과 같은 알려진 압축파일, .mpg, .mp3, .jpg와 같은 멀티미디어 파일)은 더 이상 압축할 여지가 적기 때문에, 한 번 더 압축할 때에는 용량이 크게 줄어들지 않는다. 그러므로 압축률이 낮다고 할 수 있다. 헤더 데이터가 추가되기 때문에, 파일이 오히려 더 커질 가능성도 있다.

위에 나온 것들 가운데 가장 좋은 방식을 세 가지 들면, rk, rar 그리고 7z과 같다. WinRK과 WinRar은 상용 소프트웨어이지만, 7-Zip는 자유 오픈 소스이며 (LGPL 라이선스), 리눅스에서도 동작한다.

## 같이 보기

* 정보 엔트로피
* 그림 압축
* 실행 파일 압축

## 각주


분류:컴퓨팅
분류:유틸리티 소프트웨어 종류
분류:영상 압축
분류:화상 통화