어제 테스트해서 보니, 압축 방식을 어떻게 하느냐에 따라서 압축률이 증가한다는걸 알아 냈다.


 답은 TAR로 한번 폴더와 파일을 한 파일로 몰아 넣은 후에 압축하면, 상대적으로 엄청 많은 압축률을 보여준다.


 ZIP이나 ZIPX는 압축률이 높은 알고리즘을 사용한다.

 특히, ZIPX는 최근에 발전된 방식의 압축 방식이다.

 여기서 ZIP과 ZIPX의 공통점은 LZ77을 이용한다는 점이다.(ZIP은 DEFLATE, ZIPX는 LZMA)

 여기서 압축률이 가장 높은것은 LZMA이다.

 그런데, LZMA의 압축률이 높은 것은 LZ77의 사전의 크기가 크기 때문에 그런 것이다.


 LZ77의 사전 크기는 압축률을 뜻하고.

 사전를 빠르게 탐색하는 것은 압축 속도를 높이는 장치이다.


 즉, 검색 알고리즘이 발전하면, 압축속도가 높아진다.

 사전 크기(저장하는 데이터)가 커지면, 압축률이 높고, 이 사전에 검색을 빠르게 하는 알고리즘을 적용하면, 빠르고 압축률이 높은 알고리즘이 생긴다.


 일단, ZIP은 LZ77의 최대 사전 크기가 32kb이다.

 하지만, ZIPX는 LZ77의 최대 사전 크기가 4Gb이다.


 그래서 LZMA(LZ77의 사전 크기가 4Gb)가 압축률이 가장 높다.


 그럼, 왜 TAR을 했던것과 그냥 하는 것과 압축률이 엄청 차이나는가?


 TAR을 이용하여, ZIPX을 적용하면, 사전을 전부다 적용 시킬 수 있기 때문이다.


 ZIPX는 각 파일마다 LZMA 압축을 하기 때문에 제대로된 압축이 되지 않는다.


 7Z는 TAR처럼 한번 압축을 거치기 때문인지 ZIPX보다 압축률이 높을때가 높다.

 TAR+ZIPX을 한것과 비슷하거나 조금더 압축이 된다.

 그래서 7Z을 사용하거나 TAR+ZIPX을 쓰는게 더 이득이다.

Posted by JunkMam
,