데이터 압축 은 데이터 를 더 적은 저장 공간에 효율적으로 기록하기 위한 기술, 또는 그 기술의 실제 적용을 가리킨다.
크게 데이터를 더 작은 크기로 변환시키는 인코딩 과정과 저장된 데이터를 다시 불러와 원래 데이터 형태로 복원시키는 디코딩 과정으로 이루어진다. 이때 인코딩하기 전의 데이터 크기와 인코딩하고 나서의 데이터 크기의 비율을 압축률 이라고 한다.
압축 기술의 종류에 따라 데이터의 내용을 바꾸지 않고 원래 내용 그대로 디코딩할 수 있는 무손실 압축 과 더 높은 압축률을 얻을 수 있지만 디코딩한 데이터의 세부적인 디테일을 일부 희생시키는 손실 압축 이 존재한다. 대표적인 무손실 압축 알고리즘에는 반복 길이 부호화 와 허프만 부호화 , 산술 부호화 등이 있다. 손실 압축 알고리즘은 인간의 감각 기관 의 특성을 역이용하여 압축률을 높이므로, 음성, 정지화상, 동영상 등 데이터의 종류에 따라 각각 다른 알고리즘이 사용된다. MPEG 표준 압축기술이 많이 쓰인다.
압축률 비교
다른 방식의 데이터 압축에 대한 테스트 결과이다. 괄호 안의 숫자는 압축 방식의 순위이다.[ 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 과 같다. WinRK 과 WinRar 은 상용 소프트웨어이지만, 7-Zip 는 자유 오픈 소스 이며 (LGPL 라이선스), 리눅스 에서도 동작한다.
같이 보기
각주