동일하거나 다른 알고리즘을 사용하여 파일을 여러 번 압축해야 하는 시나리오가 있는지 궁금합니다. 내가 아는 한, 압축 알고리즘의 미묘한 차이에 따라 추가 압축을 적용하면 파일 크기를 더욱 줄일 수 있습니다. (어떤 파일이나 데이터에 최적화되어 있습니까?) 특정 기술에는 특정 파일 형식이 필요할 수 있습니까? 여러 라운드의 압축을 적용하면 특정 압축 인코딩이 사용되었음을 나타내는 정보가 추가되므로 파일 크기가 증가합니까?
답변1
아니요, 일반적으로 압축을 시도하는 여러 레이어가 있는 경우를 제외하고는 여러 번 압축하는 것은 의미가 없습니다(예: PNG 이미지가 있고 압축된 tar 아카이브( .tar.gz
)에 저장되어 있거나 파일 시스템에 저장되거나 파일을 통해 전송됨). 링크 압축).
범용 압축 알고리즘은 실제 정보를 가능한 가장 작은 파일로 압축하려고 시도하여 본질적으로 가능한 무작위로 보이도록 하기 때문에 다중 압축에는 이점이 없습니다(높은 엔트로피). 무작위 데이터는 잘 압축되지 않으므로 후속 압축 레이어는 많은 작업을 수행하지 않습니다. 물론 초기 압축이 사소한 경우(예:실행 길이 인코딩), 더 복잡한 알고리즘이 여전히 데이터를 더 압축할 수 있습니다. 하지만 이 경우 원시 데이터에 대해 더 나은 알고리즘을 사용하는 것이 더 나을 것입니다.
일반적으로 일부 헤더가 관련되어 있기 때문에 여러 차례 압축하면 파일 크기가 쉽게 늘어날 수 있습니다. 파일 압축의 경우 사용된 압축 알고리즘을 아는 것이 유용합니다. 예를 들어 gzip
원본 파일 이름도 저장됩니다.