STANDARDOWE TECHNIKI KOMPRESJI SYGNAŁÓW

Transkrypt

STANDARDOWE TECHNIKI KOMPRESJI SYGNAŁÓW
STANDARDOWE TECHNIKI KOMPRESJI
SYGNAŁÓW
1 sek wideo – 160 Mbit
Źródło
Kompresja
2 min muzyki (44 100 próbek/sek,
16 bitów/próbkę) 84 Mbit
Kanał transmisji
Dekompresja
Odbiorca
1. Metody bezstratne
2. Metody stratne
1
Kodowanie predykcyjne
r
p ( n)    i s ( n  i )
i 1
np. z autokorelacji
 i   s ( n  i ) s ( n)
n
r

normalizujemy, aby
czyli  i 
i
NADAWCA
1
r

i 1
d ( n)  s ( n)  p ( n)
i 1
i
i
s ( n)  p ( n)  d ( n)
ODBIORCA
2
Kodowanie entropowe
EC od ang. Entropy Coding
s(n)  s m m1
M
Ilość informacji stowarzyszona z komunikatami sm : m  1,..., M 
wynosi I (m)   log 2 pm , gdzie pm jest prawdopodobieństwem
wystąpienia sm , a jej miarą jest ilość bitów.
Średnia ilość bitów potrzebnych do bezstratnego zakodowania
komunikatu (entropia) jest wartością oczekiwaną
M
H   pm log 2 pm
m 1
3
Alfabet Morse’a
Samuel Finley Breese MORSE (1791-1872) –
amerykański malarz i wynalazca
1837 – aparat telegraficzny
1840 - alfabet telegraficzny
1844 – pierwsza na świecie linia
Baltimore - Washington
e


a
n
i
s
h
r
u
v
f
l
w
ą
p
d
j
b x c
1 bit
t
m
g
k
y
z
2 bity
o
q ó
3 bity
ch
4 bity
4
Sprawność kodowania
M
H   pm log 2 pm
m 1
Oczekiwana ilość bitów
M
H w   bm pm
m 1
gdzie pm jest prawdopodobieństwem komunikatu
zakodowanego przez symbol posiadający bm bitów.
Sprawność kodowania

H
100%
Hw
może być co najwyżej równa 100%, bo entropia jest dolną
granicą średniej liczby bitów wymaganych do reprezentacji
komunikatów.
5
Kodowanie ze zmienną długością słowa
VLC ang. Variable Length Coding
sm
pm
-1
0
1
2
1/8
1/4
3/8
1/4
H   18 log 2 18  14 log 2 14  83 log 2 83  14 log 2
1
4
 1,9
6
Przykład algorytmu kodowania
metodą Huffmana 1952 rok
Symbol
Prawdopodobieństwo
Prawdopodobieństwo
Prawdopodobieństwo
1
3/8
3/8
5/8
1
0
1/4
3/8
1
3/8
0
2
1/4
1
1/4
0
-1
1/8
0
7
Kontynuacja przykładu kodu
Huffmana
Symbol
-1
Prawdopodobieństwo
0,125
Kod binarny
110
Przeciętna ilość bitów na symbol
Sprawność kodowania

0
1
2
0,250 0,375 0,250
10
0
111
H w  1  83  2  14  3( 14  18 )  2
1,9
100%  95%
2
111|111|110|0|0|10|0|0|110
2 2 -1 1 1 0 1 1 -1
100 % sprawność kodowania gdy prawdopodobieństwa są potęgami 1/2
8
Kolejny przykład kodowania
Huffmana
e [0,076]
a [0,073]
c [0,037]
d(1)[0,030]
}
e
[0,076]
e
a
[0,073]
c d b (1)[0,075]
db (1)[0,038]
c (0)[0,037]
}
a
[0,076]
(0)[0,073]
a c d b(1)[0,148]
}
e
(0)[0,076]
b(0)[0,008]
Symbol
a
Prawdopodobieństwo
0,073
Kod binarny
10
b
c
d
e
0,008 0,037 0,030 0,076
1110
110
1111
0
9
Prosty przykład kodu Huffmana
pm gęstość prawdopodobieństwa zmiennej losowej sm
m
Fm   pi
i 1
Znak
dystrybuanta
Prawdopodobieństwo
Kod
Huffmana
♂
0,95
1
♀
0,02
00
☺
0,03
01
H = 0,335 bit/symbol
H w  1,05 bit/symbol
Sprawność tylko
  31,9%
10
Kod Huffmana sekwencji symboli
Sekwencja
symboli
Iloczyn
prawdopodobieństw
Kod
Huffmana
H = 0,611 bit/symbol
♂♂
♂♀
♂☺
♀♂
♀♀
♀☺
0,9025
1
0,0190
000
H w  1,222
0,0285
011
sprawność   50 %
0,0190
0010
0,0004
001100
0,0006
001110
☺♂
☺♀
☺☺
0,0285
010
0,0006
001101
0,0009
001111
bit/symbol
Poprzednio:
H = 0,335 bit/symbol
H w  1,05
  31,9%
11
Tworzenie sekwencji elementów dla
kodowania arytmetycznego
♂
♀
0,95
0
♀♂
♀♀♂
0,969
Ilość bitów potrzebna do zakodowania komunikatu
jest częścią całkowitą 1 log 2 pn
0,97
1
♀♀ ♀☺
0,969
0,95
☺
0,9694
0,97
♀♀♀ ♀♀☺
0,96938
0,9694
0,969388
12
Przykład kodowania arytmetycznego
H w  1,5008   40,7 %
Sekwencja
symboli
Iloczyn
prawdopodobieństw
Granice
przedziału
Wartość
środkowa
w kodzie
dziesiętnym
Wartość
środkowa
w kodzie
binarnym
♂♂
♂♀
♂☺
♀♂
0,9025
0 – 0,9025
0,45125
0,0111001110000101
0,0190
0,9025 –
0,9215
0,912
0,1110100101111000
0,0285
0,9215 –
0,95
0,93575
0,1110111110001101
0,0190
0,95 – 0,969
0,9595
0,1111010110100001
♀♀
♀☺
☺♂
☺♀
☺☺
0,0004
0,969 –
0,9694
0,9692
0,1111100000011101
0,0006
0,9694 –
0,97
0,9697
0,1111100000111110
0,0285
0,97 –
0,9985
0,98425
0,1111101111110111
0,0006
0,9985 –
0,9991
0,9988
0,1111111110110001
0,0009
0,9991 - 1
0,99955
0,1111111111100010
0
111010
111011
111101
1111100000011
11111000001
111110
11111111101
11111111111
1 log 2 pn
1,15
6,72
6,13
6,72
13,29
11,70
6,13
11,70
11,12
13
Kodowanie ciągów
RLC ang. Run Length Coding
v, r  gdzie v (od ang. value) powtarzający się symbol
r (od ang. run) liczba powtórzeń
1111000111111110001111000000111111111111
1,1 0,1 1,2 0,1 1,1
1 kod 1111
0,2
1,3
0 kod 000
14
Metody kompresji stratnej
SYGNAŁ
Kodowanie
stratne
Dekodowanie
SYGNAŁ
nieco inny
15
Kwantyzacja skalarna
swy
SQ ang. Scalar Quantization
swe
Kwantyzacja
równomierna
i nierównomierna

 
si  2 si 1 si
si  2
si 1 si si 1

si 1

si  2
poziomy reprezentacyjne
si  2

s   i    Q( s)  si
si 3

s (i )
progi decyzyjne
poziom reprezentacyjny
lub kod
gdzie i  si , si 1  są rozdzielnymi zbiorami pokrywającymi
podzbiór liczb rzeczywistych.
Kwantyzacja strefowa
16
Kwantowanie wektorowe
Przykład gdy s, si   2
Książka kodowa Q( s )  si
np. działanie w/g reguły
d s, si   d s, s j   j  1,..., M
M- ilość elementów książki kodowej
17
Kodowanie transformatowe
T - transformacja
K-1 - dekodowanie
Q - kwantowanie
K – kodowanie bezstratne
Q-1 - dekwantyzacja
IT- transformacja odwrotna
18
Transformacje częstotliwościowe
krótkoczasowa


2

jft

Fouriera
sˆ( f )   w(t ) s (t )e
dt   w(t ) s (t ) cos( 2jf )  j sin( 2jf )  dt

kosinusowa

s( f ) 


 s(t ) cos(2tf ) dt

falkowa
1
~
s a , b 
a

 t  b
s(t )   a  dt
19
Dyskretna transformacja kosinusowa
DCT od ang. Discrete Cosine Transform

s (k ) 
gdzie
N 1
2
 (2n  1)k 
c(k ) s (n) cos

N
2
N


n 0
1 2
c(k )  
 1
k  0,1,  , N  1
dla k  0
dla k  0
Transformacja odwrotna
s ( n) 
2 N 1

 (2n  1)k 
c
(
k
)
s
(
k
)
cos



N k 0
2N


20
DCT dla bloków po 8 próbek
Dzieląc sygnał na bloki po 8 próbek posługujemy się transformacją
7
s (k )  0,5 c(k ) s (n) cos(2n  1)k / 16 
n 0
2
1
0
-1
-2
0
5
10
15
20
25
30
35
40
45
50
21
Banki filtrów cyfrowych
1
s
z
Kwantyzacja
z
2
2

2
1
2

z 1

Kwantyzacja
s
2

z 1
 2s
2
2

z 1

2
z 1
s
22
Sygnał audio:
44 100 próbek/sekundę po 16 bitów daje
705 600 bitów/s w jednym kanale
Sygnał telefoniczny:
Filtrowanie
do 4 kHz,
Próbkowanie 8000 próbek/sekundę,
Zamiana próbek na 13-bitowe pakiety strumień 104 kbit/s,
KOMPRESJA do 13 kbit/s.
Kompresja 705 600 / 13 000 ~ 54,28
23
Kompresja audio w GSM
Sygnał dzielony na bloki po 20 ms,
 Każdy blok kodowany na 260 bitach,
 Biblioteka wzorców (sygnałów wzorcowych)
i 104 bity na sygnał wzorcowy,
156 bitów opisuje różnicę między wzorcem
a oryginałem.

260 bit 
1
 13 kbit/s
20 ms
24