삼중 압축을 하면 공간이 1%만 절약되나요?

삼중 압축을 하면 공간이 1%만 절약되나요?

저는 Linux 서버의 공간을 절약하려고 노력해 왔으며 하위 폴더에 22GB의 이미지가 포함된 폴더가 있었습니다.

그래서 나는 그것들을 압축하기로 결정했습니다.

먼저 tar를 사용했습니다.

tar -zcf folder.tar folder 

그런 다음 gzip으로 압축

gzip folder

그리고 마지막으로 만일의 경우에 대비해 bzip2를 사용합니다.

bzip2 folder

그리고 결국, 모든 folder.tar.gz.bzip2S의 총합은 여전히 ​​22GB에 이르렀습니다! 더 정밀한 정밀도로 1%의 공간 절약!

내가 여기서 뭔가 잘못한 걸까요? 나는 1% 이상의 절약을 여러 번 기대합니다!

파일을 어떻게 압축할 수 있나요?

답변1

압축률은매우압축하는 내용에 따라 다릅니다. 텍스트가 잘 압축되는 이유는 동일한 이진 공간에서 표현할 수 있는 전체 숫자 범위를 완전히 활용하기 시작하지도 않기 때문입니다. 따라서 압축 파일과 같은 형식은 텍스트 인코딩에서 아무 의미도 없는 모든 이진수를 사용함으로써 더 적은 공간에 동일한 정보를 저장할 수 있으며 단일 바이트에서 문자의 전체 진행을 효과적으로 표현할 수 있고 좋은 압축 비율을 얻을 수 있습니다. 그런 식으로.

파일이 이미 압축된 경우 일반적으로 다시 압축해도 큰 이점을 얻지 못할 것입니다. 실제로 추가 공간을 절약했다면 아마도 첫 번째 압축 알고리즘이 형편없다는 뜻일 것입니다. 질문의 성격으로 판단하면 이러한 파일 중 상당수가 미디어 파일이므로 이미 압축되어 있으므로(압축 해제 속도를 우선시하는 알고리즘을 사용하더라도) 아마도 많은 것을 얻지 못할 것입니다. 일종의 돌에서 나온 피 시나리오입니다. 이미 정보 손실 없이 만들 수 있는 만큼 작습니다.

공간이 너무 걱정된다면 "bzip2 -9"를 실행하고 good이라고 부르면 됩니다. 그래도 XZ의 비율에 대해 좋은 소식을 들었습니다. 나는 XZ를 직접 사용하지 않았지만(다른 사람의 자료를 압축 해제하는 것 제외) bzip2보다 비율이 더 좋을 것으로 예상되지만 압축/압축 해제하는 데 시간이 조금 더 걸립니다.

답변2

데이터가 이미 고도로 압축되어 있고 더 이상 얻을 것이 없기 때문에 압축 시도가 실패했습니다. 자세한 설명은 다른 답변을 참조하세요. 그러나 동의할 수 있는 경우손실이 많은압축과 달리무손실이전에 시도한 것처럼 이미지를 상당히 압축할 수 있습니다. 하지만 데이터가 잘려지기 때문에 취소할 수 없습니다.

다음은 imagemagick을 사용하여 모든 JPEG 이미지를 다시 압축하는 예입니다. 이렇게 하면 파일을 덮어쓰게 됩니다.

find image_directory -type f -name "*.jpg" -exec mogrify -quality 75% {} \+

답변3

가장 일반적인 이미지 형식은 이미 압축되어 있으므로(jpg, png, gif 등) 비용 절감 효과가 크지 않습니다. 1%는 맞는 것 같습니다.

압축을 더 추가하면 실제로 결과가 (약간) 더 커질 수 있습니다. 왜냐하면 압축 알고리즘은 압축된 데이터에 아무런 이점이 없고 형식(예: gzip)은 헤더 및/또는 구조 정보를 출력에 추가해야 하기 때문입니다.

죄송합니다! png를 사용하는 경우 다음을 사용하여 파일을 축소해 볼 수 있습니다.png크러시.

답변4

제기할 가치가 있는 또 다른 점: 여러 압축 도구/알고리즘을 사용하면 실제로 최종 결과의 크기가 필요 이상으로 커질 수 있습니다. 즉, 100GB를 10GB로 압축한 다음 다시 압축하려고 하면 압축 대상과 압축 대상에 따라 최대 15GB가 될 수 있습니다.

tar cjvf container.tar.bz2 /target개인적으로 나는 단순히 이중 압축으로 절약되는 디스크 공간의 양이 아주 작기 때문에 그 이상은 하지 않습니다 .

관련 정보