데이터 압축

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

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

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

압축률 비교 
다른 방식의 데이터 압축에 대한 테스트 결과이다. 괄호 안의 숫자는 압축 방식의 순위이다.

 .htm, .txt와 같은 텍스트 파일은 압축하기 쉬우며 압축률이 높은 경우가 많다.
 이미 압축되어 있는 파일들(.rar, .zip과 같은 알려진 압축파일, .mpg, .mp3, .jpg와 같은 멀티미디어 파일)은 더 이상 압축할 여지가 적기 때문에, 한 번 더 압축할 때에는 용량이 크게 줄어들지 않는다. 그러므로 압축률이 낮다고 할 수 있다. 헤더 데이터가 추가되기 때문에, 파일이 오히려 더 커질 가능성도 있다.

{| class="wikitable"
! colspan="16" | 다른 방식의 데이터 압축 비교
|-----
| bgcolor="#ffffaa" align="center" | 파일
| bgcolor="#ffffaa" | *.avi || bgcolor="#ffffaa" | *.dll
| bgcolor="#ffffaa" | *.doc
| bgcolor="#ffffaa" | *.exe || bgcolor="#ffffaa" | *.gif
| bgcolor="#ffffaa" | *.htm
| bgcolor="#ffffaa" | *.jpg || bgcolor="#ffffaa" | *.mp3
| bgcolor="#ffffaa" | *.mpg
| bgcolor="#ffffaa" | *.pdf || bgcolor="#ffffaa" | *.txt
| bgcolor="#ffffaa" | *.wav
| bgcolor="#ffffaa" | *.zip || bgcolor="#ffffaa" | 표기
| bgcolor="#ffffaa" | 총합
|-----
| bgcolor="#ffffaa" align="center" | 파일 수
| bgcolor="#ffffaa" | 16 || bgcolor="#ffffaa" | 26
| bgcolor="#ffffaa" | 138
| bgcolor="#ffffaa" | 24 || bgcolor="#ffffaa" | 246
| bgcolor="#ffffaa" | 79
| bgcolor="#ffffaa" | 44 || bgcolor="#ffffaa" | 29
| bgcolor="#ffffaa" | 8
| bgcolor="#ffffaa" | 36 || bgcolor="#ffffaa" | 8
| bgcolor="#ffffaa" | 1
| bgcolor="#ffffaa" | 19 || bgcolor="#ffffaa" |  
| bgcolor="#ffffaa" | 674
|-----
| bgcolor="#ffffaa" align="center" | 처음 크기
| bgcolor="#ffffaa" | 5,261,152 || bgcolor="#ffffaa" | 5,254,220
| bgcolor="#ffffaa" | 5,254,656
| bgcolor="#ffffaa" | 5,254,056 || bgcolor="#ffffaa" | 5,246,209
| bgcolor="#ffffaa" | 5,261,187
| bgcolor="#ffffaa" | 5,246,116 || bgcolor="#ffffaa" | 5,250,432
| bgcolor="#ffffaa" | 5,257,720
| bgcolor="#ffffaa" | 5,257,876 || bgcolor="#ffffaa" | 5,253,436
| bgcolor="#ffffaa" | 5,256,024
| bgcolor="#ffffaa" | 5,262,680 || bgcolor="#ffffaa" |  
| bgcolor="#ffffaa" | 68,315,764
|-----
| align="center" | 7z || 4,524,067 (2)
| 1,543,179 (3) || 147,690 (3) || 3,910,541 (3)
| bgcolor="#ddffdd" | 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
|-----
| align="center" | 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
|-----
| align="center" | 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
|-----
| align="center" | 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
|-----
| align="center" | 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
|-----
| align="center" | 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
|-----
| align="center" | 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
|-----
| align="center" | 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
|-----
| align="center" | 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
|-----
| align="center" | 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
|-----
| align="center" | 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
|-----
| align="center" | pkz || bgcolor="#ffdddd" | 4,899,083 (20)
| bgcolor="#ffddec" | 2,354,373 (20)
| bgcolor="#ffdddd" | 1,173,097 (20) || bgcolor="#ffdddd" | 4,401,289 (20)
| 5,120,590 (19)
| bgcolor="#ffdddd" | 1,018,250 (20) || bgcolor="#ffdddd" | 5,162,114 (20)
| bgcolor="#ffdddd" | 5,253,006 (20)
| bgcolor="#ffdddd" | 5,203,747 (20) || bgcolor="#ffdddd" | 5,076,577 (20)
| bgcolor="#ffdddd" | 2,084,290 (20)
| bgcolor="#ffdddd" | 5,027,854 (20) || 5,264,213 (19)
| bgcolor="#ffdddd" | 0.2/20
52,038,483
|-----
| align="center" | 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
|-----
| align="center" | rk || 4,589,894 (3)
| 1,474,339 (2)
| bgcolor="#ddffdd" | 132,629 (1) || bgcolor="#ddffdd" | 3,866,814 (1)
| 4,628,017 (3)
| bgcolor="#ddffdd" | 257,588 (1) || bgcolor="#ddffdd" | 4,434,701 (1)
| bgcolor="#ddffdd" | 5,017,545 (1)
| bgcolor="#ddffdd" | 4,787,286 (1) || 4,498,992 (6)
| bgcolor="#ddffdd" | 1,168,720 (1)
| bgcolor="#ddffdd" | 1,659,771 (1) || bgcolor="#ddffdd" | 5,183,337 (1)
| bgcolor="#ddffdd" | 18.2/20
41,699,633
|-----
| align="center" | 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
|-----
| align="center" | 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
|-----
| align="center" | 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
|-----
| align="center" | uha || bgcolor="#ddffdd" | 4,498,275 (1)
| bgcolor="#ddffdd" | 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) || bgcolor="#ddffdd" | 4,237,400 (1)
| 1,233,812 (2) || 2,435,124 (2) || 5,187,408 (2)
| 17.3/20
44,736,097
|-----
| align="center" | 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
|-----
| align="center" | zip
| 4,701,064 (10) || 2,155,923 (11) || 1,009,814 (14)
| 4,135,619 (13) || bgcolor="#ffdddd" | 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)
| bgcolor="#ffdddd" | 5,264,564 (20) || 7.5/20
49,104,584
|-----
| bgcolor="#ffffaa" align="center" | 압축 크기중간값
| bgcolor="#ffffaa" | 4,701,089 || bgcolor="#ffffaa" | 2,152,155
| bgcolor="#ffffaa" | 962,880
| bgcolor="#ffffaa" | 4,130,160 || bgcolor="#ffffaa" | 4,696,327
| bgcolor="#ffffaa" | 851,884
| bgcolor="#ffffaa" | 4,803,740 || bgcolor="#ffffaa" | 5,103,645
| bgcolor="#ffffaa" | 4,902,262
| bgcolor="#ffffaa" | 4,593,983 || bgcolor="#ffffaa" | 1,839,634
| bgcolor="#ffffaa" | 4,448,505
| bgcolor="#ffffaa" | 5,210,556 || bgcolor="#ffffaa" |  
| bgcolor="#ffffaa" | 48,519,559
|-----
| bgcolor="#ffffaa" align="center" | 압축률중간값
| bgcolor="#ffffaa" | 10.6 % || bgcolor="#ffffaa" | 59.0 %
| bgcolor="#ffffaa" | 81.7 %
| bgcolor="#ffffaa" | 21.4 % || bgcolor="#ffffaa" | 10.5 %
| bgcolor="#ffffaa" | 83.8 %
| bgcolor="#ffffaa" | 8.4 % || bgcolor="#ffffaa" | 2.8 %
| bgcolor="#ffffaa" | 6.8 %
| bgcolor="#ffffaa" | 12.6 % || bgcolor="#ffffaa" | 65.0 %
| bgcolor="#ffffaa" | 15.4 %
| bgcolor="#ffffaa" | 1.0 % || bgcolor="#ffffaa" |  
| bgcolor="#ffffaa" | 29.0 %
|}

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

같이 보기 

 정보 엔트로피
 그림 압축
 실행 파일 압축

각주 

 
컴퓨팅
유틸리티 소프트웨어 종류
영상 압축
화상 통화