위키득계정 ↗
기술

데이터 압축

데이터 압축기술
영문명
Data compression
주요 구분
비손실 압축과 손실 압축
주요 목적
저장량과 전송량 감소
주요 비용
압축·해제 시간과 메모리
관련 분야
정보 이론과 부호화
데이터 압축은 정보의 표현을 바꾸어 필요한 비트 수를 줄이는 과정이다. 원래 데이터를 정확히 복원하는 비손실 방식과 근사 결과를 허용하는 손실 방식을 구분한다.

표현의 반복을 이용하기

반복되는 패턴과 값의 분포를 이용하면 같은 내용을 더 짧은 부호로 나타낼 수 있다. 일부 값에 짧은 부호를 배정하거나 앞서 나온 구간을 참조하는 등 여러 방법이 있다.

모든 가능한 입력을 언제나 더 작게 만드는 비손실 압축은 존재할 수 없다. 어떤 입력은 줄어들어도 다른 입력에는 부가 정보 때문에 크기가 늘 수 있다.

정확한 복원과 근사

프로그램과 문서 데이터는 바이트가 조금만 바뀌어도 의미와 동작이 달라질 수 있어 정확한 복원이 중요하다. 미디어는 용도에 따라 일부 차이를 허용하고 더 작은 크기를 선택할 수 있다.

손실과 비손실이라는 분류는 압축 결과의 복원 관계를 말한다. 전송 중 오류가 생기는지와 보안상 암호화되는지는 다른 문제다.

압축률 이외의 기준

더 작게 만드는 설정이 더 많은 CPU와 메모리, 대기 시간을 요구할 수 있다. 실시간 전송과 장기 보관은 다른 절충을 선택할 수 있다.

작은 파일에서는 헤더와 사전 등 부가 정보의 비중이 커질 수 있다. 이미 압축된 자료를 다시 압축해도 같은 비율로 줄어들지는 않는다.

저장과 처리의 전체 비용

압축은 전송과 저장 부담을 줄이지만 데이터를 쓰려면 해제가 필요할 수 있다. 부분 접근과 손상 복구, 검색 방식에도 영향을 준다.

암호화된 데이터는 반복 구조가 잘 드러나지 않아 보통 일반 압축으로 줄이기 어렵다. 적용 순서와 용도에 맞는 형식을 선택해야 한다.

관련 문서

비손실 압축 / 손실 압축 / 파일 형식