Week 13. 데이타 압축 기법 [Download]

Download Report

Transcript Week 13. 데이타 압축 기법 [Download]

응용프로그램
- 압축기법 (Compression)
2003. 5. 27.
데이터 압축

저장 혹은 전송하는 데이터 양을 줄이는 기법
–
–
–
–
데이터 통신에서 데이터 전송량 감소
디스크 용량의 효율적 사용
특히 비디오 신호, 팩시밀리 등에서 중요하게 사용됨
예) 부드러운 동화상을 재현하기 위해서는,
• 1초를 30개의 프레임으로 나누어 각 프레임마다 정지화상을 연속적으로 보여줌.
• 정지화상 64kb라고 하고, 60분가량 동화상 저장하기 위해서는
• 64kb * 30frame * 3,600 sec = 6,750Mb = 10장 CD

분량
압축/복원 기술
– 무손실형: 음성/텍스트 데이터
• 압축후 본래의 정보를 복구할 수 있음.
• 압축비를 높게 하기 힘듬.
– 손실형: 이미지/영상 데이터
• 중복, 불필요한 정보를 삭제하기 때문에, 압축후 본래의 정보를
복구할 수 없음.
• 압축비를 높게 할 수 있으나, 본래 정보를 잃어버림.
2
데이터 압축 효과

매체
NTSC(TV)
HDTV
Fax
전화 음성
Text
비압축
압축
100Mbps
1000Mbps
3Mbits
64Kbps
1MBytes
1.5-5Mbps
6-60Mbps
100Kbits
16Kbps
500KBytes
압축률
약20배
약 20배
약 30배
약 4배
약 2배
3
수치데이타 압축

희소 데이터에 대한 위치 표현 압축
– 0이 아닌 값만을 그 위치와 함께 저장
– 예)
• 원래 데이터
– 0,12,0,0,0,24,0,0,0,36,36,0,0,0,0,0,0,38,0
• 압축데이터
– 2:12, 6:24, 10:36, 11:36, 18:38
4
수치데이타 압축

희소 데이터에 대한 비트 벡터 표현
– 해당 데이터가 존재하면 ‘1’,
– 존재하지 않으면 ‘0’으로 표현
– 예)
• 원래 데이터
– 0,12,0,0,0,24,0,0,0,36,36,0,0,0,0,0,0,38,0
• 압축데이터
– 0100010001100000010:12,24,36,36,38
5
데이터 압축

비트 압축
– 한 문자이상을 단일 바이트에 저장
– 일반 문자 또는 구두점은 8번째 비트를 사용하지 않음
• 7개의 문자가 사용하는 8bit * 7개 중에서 최상단 1bit*7개를
한 개문자를 저장하는 공간으로 활용
• 압축율: 1-1/8 = 87.5%
• 예)
바이트 1:
바이트 2:
바이트 3:
바이트 4:
바이트 5:
바이트 6:
바이트 7:
바이트 8:
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
바이트 2:
바이트 3:
바이트 4:
바이트 5:
바이트 6:
바이트 7:
바이트 8:
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
6
데이터 압축

문자 제거 기법
– 최소의 알파벳을 사용하여 자주 사용되지
않은 문자는 제거
– 실제 문서 데이터로부터 최소의 알파벳
집합을 생성
– 분실형 기법
7
Run Length Encoding


자료의 반복성을 이용하는 자료 압축 기법
Run은 전치문자 뒤에 자료의 개수가, 개수 뒤에
원자료의 해당문자가표현됨.
– 단점: 유일한 자료로 이루어진 스트링인 경우는 원자료처럼
표현, RLE암호화는 자료 반복이 빈번한 경우에만 적용

예)
– 전치문자로 “+”를 사용하는경우
ABCDDDDDDDDEEEEEEEEE
ABC+8D+9E
8
이미지 압축

GIF 압축
– RLE(Run Length Encoding) 방식을 응용한
LZW(Lempel-Ziv-Welch) 알고리즘을 사용
A B B B B B B B B A
A 1 B 8 A 1
• 수평으로 같은 색을 갖는 이미지의 경우 압축 효과가
크다.
9
허프만(Huffman) 코딩

가변길이 코딩
– 빈번하게 발생하는 자료의 표현에 적은
수의 비트를 사용하고, 드물게 발생하는
자료의 표현에는 보다 많은 비트들을 사용

방법
– 압축하고 싶은 파일을 한 번 읽어 각 문자의
출현 확률비를 계산
– 만약, 알파벳 A, B, C의 세문자가 있어,
그것의 확률비가 4:2:1이라고 하자.
10
허프만(Huffman) 코딩
7
4
2
1
4
3
7
1
0
0
A B C
A B C
합이 가장 작은
두개의 가지를 묶음
부호테이블
A: 0
B: 10
C: 11
A B C
합이 가장 작은
두개의 가지를 묶음
1
A B C
각 단말노드에 대해
부호를 붙임
- 왼쪽 가지: 0
- 오른쪽 가지: 1
예) 평문: AAABCBA
암호문: 0001011100
11