데이터 압축

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

데이터 압축데이터를 더 적은 저장 공간에 효율적으로 기록하기 위한 기술, 또는 그 기술의 실제 적용을 가리킨다.

크게 데이터를 더 작은 크기로 변환시키는 인코딩 과정과 저장된 데이터를 다시 불러와 원래 데이터 형태로 복원시키는 디코딩 과정으로 이루어진다. 이때 인코딩하기 전의 데이터 크기와 인코딩하고 나서의 데이터 크기의 비율을 압축률이라고 한다.

압축 기술의 종류에 따라 데이터의 내용을 바꾸지 않고 원래 내용 그대로 디코딩할 수 있는 무손실 압축과 더 높은 압축률을 얻을 수 있지만 디코딩한 데이터의 세부적인 디테일을 일부 희생시키는 손실 압축이 존재한다. 대표적인 무손실 압축 알고리즘에는 반복 길이 부호화허프만 부호화 등이 있다. 손실 압축 알고리즘은 인간의 감각기관의 특성을 역이용하여 압축률을 높이므로, 음성, 정지화상, 동영상 등 데이터의 종류에 따라 각각 다른 알고리즘이 사용된다. MPEG 표준 압축기술이 많이 쓰인다.

손실과 비손실[편집]

손실과 비손실 압축의 예를 들면 다음과 같다. 다음의 문자열이 있다고 하자:

888883333333

이 문자열은 다음과 같이 압축될 수 있다:

8[5]3[7]

다섯 개의 8, 일곱 개의 3이 있다는 것으로 해석되며 원래의 문자열이 완전히 다시 작성되지만 내부에 손실은 없다. 그러나 손실 압축은 다음과 같이 사용한다.

83

이렇게 되면 원본의 자료는 손실되지만 파일의 크기가 줄어든다는 장점이 있다.

압축률 비교[편집]

다른 방식의 데이터 압축에 대한 테스트 결과이다. 괄호 안의 숫자는 압축 방식의 순위이다. [1] [2]

  • .htm, .txt와 같은 텍스트 파일은 압축하기 쉬우며 압축률이 높은 경우가 많다.
  • 이미 압축되어 있는 파일들(.rar, .zip과 같은 알려진 압축파일, .mpg, .mp3, .jpg와 같은 멀티미디어 파일)은 더 이상 압축할 여지가 적기 때문에, 한 번 더 압축할 때에는 용량이 크게 줄어들지 않는다. 그러므로 압축률이 낮다고 할 수 있다. 헤더 데이터가 추가되기 때문에, 파일이 오히려 더 커질 가능성도 있다.
다른 방식의 데이터 압축 비교
파일 *.avi *.dll *.doc *.exe *.gif *.htm *.jpg *.mp3 *.mpg *.pdf *.txt *.wav *.zip 표기 총합
파일 수 16 26 138 24 246 79 44 29 8 36 8 1 19   674
처음 크기 5,261,152 5,254,220 5,254,656 5,254,056 5,246,209 5,261,187 5,246,116 5,250,432 5,257,720 5,257,876 5,253,436 5,256,024 5,262,680   68,315,764
7z 4,524,067 (2) 1,543,179 (3) 147,690 (3) 3,910,541 (3) 4 620 354 (1) 341,996 (4) 4,770,061 (4) 5,053,813 (2) 4,879,067 (5) 4,258,863 (3) 1,270,884 (3) 3,670,225 (5) 5,226,742 (14) 16/20 44,217,482
arj 4,696,659 (9) 2,160,530 (15) 1,018,050 (17) 4,130,505 (11) 4,702,449 (12) 898,370 (17) 4,803,740 (11) 5,108,093 (17) 4,910,699 (16) 4,606,736 (15) 1,875,329 (16) 4,450,535 (12) 5,223,905 (13) 6.1/20 48,585,600
bh 4,703,291 (12) 2,156,986 (12) 1,010,284 (15) 4,128,594 (9) 4,693,021 (9) 889,650 (15) 4,806,914 (13) 5,105,811 (13) 4,904,209 (11) 4,601,545 (13) 1,848,972 (13) 4,451,648 (15) 5,201,639 (4) 7.5/20 48,502,564
bz2 4,720,926 (18) 2,095,832 (7) 573,721 (5) 4,273,885 (18) 4,896,084 (18) 645,243 (5) 4,743,918 (2) 5,069,593 (4) 4,888,293 (7) 4,444,829 (5) 1,531,448 (6) 3,771,508 (7) 5,238,677 (16) 11.7/20 46,893,957
bza 4,639,340 (6) 2,166,940 (17) 987,806 (11) 4,231,254 (17) 4,878,327 (17) 783,188 (8) 4,787,973 (7) 5,076,189 (5) 4,873,810 (2) 4,618,970 (17) 1,516,326 (5) 3,770,938 (6) 5,227,572 (15) 9.8/20 47,558,633
cab 4,701,113 (11) 2,148,386 (10) 893,796 (7) 4,127,044 (8) 4,678,810 (5) 842,129 (10) 4,798,500 (8) 5,099,787 (8) 4,900,314 (10) 4,584,969 (8) 1,846,233 (12) 4,451,857 (18) 5,201,717 (5) 10.8/20 48,274,655
gza 4,703,371 (13) 2,157,116 (13) 1,001,990 (13) 4,126,436 (7) 4,693,136 (10) 874,444 (12) 4,803,739 (10) 5,105,765 (12) 4,904,249 (12) 4,597,720 (11) 1,840,188 (11) 4,451,638 (14) 5,201,436 (3) 9.2/20 48,461,228
j 4,678,506 (8) 1,914,777 (5) 703,722 (6) 4,057,445 (5) 4,681,437 (6) 691,916 (6) 4,805,059 (12) 5,092,070 (7) 4,898,847 (8) 4,326,394 (4) 1,629,228 (8) 3,594,954 (4) 5,215,150 (12) 13/20 46,289,505
jar 4,704,088 (14) 2,158,273 (14) 1,017,205 (16) 4,129,816 (10) 4,705,456 (13) 893,622 (16) 4,809,136 (16) 5,107,254 (15) 4,904,615 (13) 4,603,367 (14) 1,849,394 (14) 4,451,718 (16) 5,202,611 (8) 6.2/20 48,536,555
lha 4,711,090 (16) 2,215,476 (18) 1,020,194 (18) 4,204,071 (15) 4,830,501 (15) 913,845 (18) 4,918,792 (19) 5,206,933 (19) 5,066,716 (19) 4,802,049 (19) 1,895,771 (17) 4,447,253 (10) 5,263,136 (18) 6.7/20 49,495,827
lzh 4,711,090 (16) 2,215,476 (18) 1,066,340 (19) 4,143,461 (14) 4,819,157 (14) 971,166 (19) 4,816,349 (18) 5,107,584 (16) 4,924,974 (18) 4,635,416 (18) 1,945,961 (19) 4,449,756 (11) 5,212,837 (11) 5.3/20 49,019,567
pkz 4,899,083 (20) 2,354,373 (20) 1,173,097 (20) 4,401,289 (20) 5,120,590 (19) 1,018,250 (20) 5,162,114 (20) 5,253,006 (20) 5,203,747 (20) 5,076,577 (20) 2,084,290 (20) 5,027,854 (20) 5,264,213 (19) 0.2/20 52,038,483
rar 4,634,009 (5) 1,693,150 (4) 173,313 (4) 3,948,241 (4) 4,639,881 (4) 318,269 (3) 4,780,095 (6) 5,081 085 (6) 4,887,973 (6) 4,258,775 (2) 1,318,381 (4) 2,657,731 (3) 5,202,579 (7) 15.5/20 43,593,482
rk 4,589,894 (3) 1,474,339 (2) 132,629 (1) 3,866,814 (1) 4,628,017 (3) 257,588 (1) 4,434,701 (1) 5,017,545 (1) 4,787,286 (1) 4,498,992 (6) 1,168,720 (1) 1,659,771 (1) 5,183,337 (1) 18.2/20 41,699,633
rs 4,625,725 (4) 2,137,145 (9) 937,954 (10) 4,221,864 (16) 4,850,493 (16) 768,711 (7) 4,776,635 (5) 5,066,886 (3) 4,878,852 (3) 4,612,537 (16) 1,560,879 (7) 3,804,335 (8) 5,240,116 (17) 10.7/20 47,482,132
sqx 4,662,560 (7) 2,078,866 (6) 991,992 (12) 4,105,933 (6) 4,699,518 (11) 878,469 (14) 4,808,697 (15) 5,102,452 (10) 4,908,341 (14) 4,590,245 (10) 1,836,245 (9) 4,415,575 (9) 5,208,275 (10) 9.8/20 48,287,168
gz 4,707,481 (15) 2,165,409 (16) 907,006 (8) 4,133,949 (12) 4,684,949 (7) 861,638 (11) 4,807,701 (14) 5,105,913 (14) 4,909,789 (15) 4,588,822 (9) 1,853,650 (15) 4,451,792 (17) 5,202,392 (6) 7.8/20 48,380,491
uha 4,498,275 (1) 1,474,005 (1) 136,880 (2) 3,879,360 (2) 4,625,014 (2) 284,363 (2) 4,760,572 (3) 5,104,837 (11) 4,879,047 (4) 4,237,400 (1) 1,233,812 (2) 2,435,124 (2) 5,187,408 (2) 17.3/20 44,736,097
yz1 4,814,935 (19) 2,128,899 (8) 924,706 (9) 4,279,162 (19) 4,686,669 (8) 804,198 (9) 4,810,966 (17) 5,124,596 (18) 4,922,886 (17) 4,568,274 (7) 1,901,300 (18) 4,561,179 (19) 5,207,874 (9) 6.4/20 48,735,644
zip 4,701,064 (10) 2,155,923 (11) 1,009,814 (14) 4,135,619 (13) 5,270,565 (20) 877,679 (13) 4,799,508 (9) 5,101,205 (9) 4,898,961 (9) 4,599,883 (12) 1,839,080 (10) 4,450,719 (13) 5,264,564 (20) 7.5/20 49,104,584
압축 크기
중간값
4,701,089 2,152,155 962,880 4,130,160 4,696,327 851,884 4,803,740 5,103,645 4,902,262 4,593,983 1,839,634 4,448,505 5,210,556   48,519,559
압축률
중간값
10.6 % 59.0 % 81.7 % 21.4 % 10.5 % 83.8 % 8.4 % 2.8 % 6.8 % 12.6 % 65.0 % 15.4 % 1.0 %   29.0 %

위에 나온 것들 가운데 가장 좋은 방식을 세 가지 들면, rk, rar 그리고 7z과 같다. WinRKWinRar은 상용 소프트웨어이지만, 7-Zip는 자유 오픈 소스이며 (LGPL 라이선스), 리눅스에서도 동작한다.

같이 보기[편집]

참고 자료[편집]

  1. Airelle (2007년). 압축파일 포맷별 압축률 비교(프랑스어). 2010년 2월 1일에 확인.
  2. Airelle (2007년). Windows용 압축 프로그램별 압축률 비교(프랑스어). 2010년 2월 1일에 확인.