데이터 압축

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

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

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

압축률 비교

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

  • .htm, .txt와 같은 텍스트 파일은 압축하기 쉬우며 압축률이 높은 경우가 많다.
  • 이미 압축되어 있는 파일들(.rar, .zip과 같은 알려진 압축파일, .mpg, .mp3, .jpg와 같은 멀티미디어 파일)은 더 이상 압축할 여지가 적기 때문에, 한 번 더 압축할 때에는 용량이 크게 줄어들지 않는다. 그러므로 압축률이 낮다고 할 수 있다. 헤더 데이터가 추가되기 때문에, 파일이 오히려 더 커질 가능성도 있다.
다른 방식의 데이터 압축 비교
파일*.avi*.dll*.doc*.exe*.gif*.htm*.jpg*.mp3*.mpg*.pdf*.txt*.wav*.zip표기총합
파일 수1626138242467944298368119 674
처음 크기5,261,1525,254,2205,254,6565,254,0565,246,2095,261,1875,246,1165,250,4325,257,7205,257,8765,253,4365,256,0245,262,680 68,315,764
7z4,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/2044,217,482
arj4,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/2048,585,600
bh4,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/2048,502,564
bz24,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/2046,893,957
bza4,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/2047,558,633
cab4,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/2048,274,655
gza4,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/2048,461,228
j4,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/2046,289,505
jar4,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/2048,536,555
lha4,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/2049,495,827
lzh4,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/2049,019,567
pkz4,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/2052,038,483
rar4,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/2043,593,482
rk4,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/2041,699,633
rs4,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/2047,482,132
sqx4,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/2048,287,168
gz4,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/2048,380,491
uha4,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/2044,736,097
yz14,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/2048,735,644
zip4,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/2049,104,584
압축 크기
중간값
4,701,0892,152,155962,8804,130,1604,696,327851,8844,803,7405,103,6454,902,2624,593,9831,839,6344,448,5055,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과 같다. WinRK과 WinRar은 상용 소프트웨어이지만, 7-Zip는 자유 오픈 소스이며 (LGPL 라이선스), 리눅스에서도 동작한다.

같이 보기

각주