표현의 반복을 이용하기
반복되는 패턴과 값의 분포를 이용하면 같은 내용을 더 짧은 부호로 나타낼 수 있다. 일부 값에 짧은 부호를 배정하거나 앞서 나온 구간을 참조하는 등 여러 방법이 있다.
모든 가능한 입력을 언제나 더 작게 만드는 비손실 압축은 존재할 수 없다. 어떤 입력은 줄어들어도 다른 입력에는 부가 정보 때문에 크기가 늘 수 있다.
정확한 복원과 근사
프로그램과 문서 데이터는 바이트가 조금만 바뀌어도 의미와 동작이 달라질 수 있어 정확한 복원이 중요하다. 미디어는 용도에 따라 일부 차이를 허용하고 더 작은 크기를 선택할 수 있다.
손실과 비손실이라는 분류는 압축 결과의 복원 관계를 말한다. 전송 중 오류가 생기는지와 보안상 암호화되는지는 다른 문제다.
압축률 이외의 기준
더 작게 만드는 설정이 더 많은 CPU와 메모리, 대기 시간을 요구할 수 있다. 실시간 전송과 장기 보관은 다른 절충을 선택할 수 있다.
작은 파일에서는 헤더와 사전 등 부가 정보의 비중이 커질 수 있다. 이미 압축된 자료를 다시 압축해도 같은 비율로 줄어들지는 않는다.
저장과 처리의 전체 비용
압축은 전송과 저장 부담을 줄이지만 데이터를 쓰려면 해제가 필요할 수 있다. 부분 접근과 손상 복구, 검색 방식에도 영향을 준다.
암호화된 데이터는 반복 구조가 잘 드러나지 않아 보통 일반 압축으로 줄이기 어렵다. 적용 순서와 용도에 맞는 형식을 선택해야 한다.