elementy teorii informacji - home.agh.edu.plhome.agh.edu.pl/~jgalka/dydaktyka/cps/cps 10 kompresja...
TRANSCRIPT
5/25/2017
1
Elementy teorii informacji
• Co to jest informacja ?
• Słownik Języka Polskiego:– 1. «wiadomość o czymś lub zakomunikowanie czegoś»
– 2. «dział informacyjny urzędu, instytucji»
– 3. «dane przetwarzane przez komputer»
– • informacyjny • informacyjnie • informacyjność
– informacja genetyczna «dane o cechach dziedzicznych organizmu zakodowane w genach»
– informacja naukowa «dział nauki zajmujący się opracowywaniem i rozpowszechnianiem danych naukowych dotyczących aktualnego stanu wiedzy w określonej dziedzinie»
– nośnik danych, informacji «fizyczny ośrodek przeznaczony do przechowywania danych, np. w komputerze – dyski magnetyczne i optyczne»
– teoria informacji «dział matematyki stosowanej poświęcony zagadnieniom kodowania, przekazywania i przechowywania informacji»
Elementy teorii informacji
• Co to jest informacja ?
• Webster’s Dictionary:– the communication or reception of knowledge or intelligence
– a (1) : knowledge obtained from investigation, study, or instruction (2) : INTELLIGENCE, NEWS (3) : FACTS, DATA
– b : the attribute inherent in and communicated by one of two or more alternative sequences or arrangements of something (as nucleotides in DNA or binary digits in a computer program) that produce specific effects
– c (1) : a signal or character (as in a communication system or computer) representing data (2) : something (as a message, experimental data, or a picture) which justifies change in a construct (as a plan or theory) that represents physical or mental experience or another construct
– d : a quantitative measure of the content of information; specifically : a numerical quantity that measures the uncertainty in the outcome of an experiment to be performed
– : the act of informing against a person
– : a formal accusation of a crime made by a prosecuting officer as distinguished from an indictment presented by a grand jury
5/25/2017
2
Elementy teorii informacji
• Co to jest informacja ?
• Claude Edwood Shannon, 1948
– „A Mathematical Theory of Communication”
• Kodowanie źródła
• Kodowanie kanału
• Przepustowość informacyjna kanału
• Informacja <-> miara niepewności
Reprezentacja informacji
• Sygnał jest nośnikiem informacji
• Redundancja
– „Dz ń d br P ństw ”
5/25/2017
3
Reprezentacja informacji
• Sygnał jest nośnikiem informacji
• Redundancja
– „Dz ń d br P ństw ”
– „Dzień dobry Państwu”
Reprezentacja informacji
• Sygnał jest nośnikiem informacji
• Redundancja - nadmiarowość
– „Dz ń d br P ństw ”
– „Dzień dobry Państwu”
• Nadmiarowość kosztuje, więc się jej pozbywamy:
– Kompresja sygnałów (kodowanie źródła)
5/25/2017
4
8
STANDARDOWE TECHNIKI KOMPRESJI SYGNAŁÓW
1. Metody bezstratne
2. Metody stratne
Źródło Kompresja
Kanał transmisji
Dekompresja Odbiorca
1 sek. wideo Full HD 25fps 24 bit = 466 560 000 bps
~= 445 Mbps
1 sek. muzyki CD (fs=44kHz,16 bit, stereo)
~= 1378 kbit
1 fotografia 10 Mpx, 32bpp
~= 305 Mb ~= 38 MB
Kodowanie entropowe
EC, ang. Entropy Coding
Ilość informacji stowarzyszona z komunikatami Mmsm ,...,1:
,log)( 2 mpmI gdzie mp
wystąpienia a jej miarą jest ilość bitów.,ms
Średnia ilość bitów potrzebnych do bezstratnego zakodowania
komunikatu (entropia) jest wartością oczekiwaną
M
m
mm ppH1
2log
wynosi
M
mmsns1
)(
jest prawdopodobieństwem
5/25/2017
5
10
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
h v f l ą p j b x c y z q ó ch
s u r w d k g o
i a n m
e t 1 bit
2 bity
3 bity
4 bity
11
Sprawność kodowania
Oczekiwana ilość bitów
M
m
mmw pbH1
jest prawdopodobieństwem komunikatump
zakodowanego przez symbol posiadający bitów.mb
Sprawność kodowania %100wH
H
może być co najwyżej równa 100%, bo entropia jest dolną
granicą średniej liczby bitów wymaganych do reprezentacji
komunikatów.
gdzie
M
m
mm ppH1
2log
5/25/2017
6
12
Kodowanie ze zmienną długością słowa
VLC ang. Variable Length Coding
-1 1/80 1/41 3/82 1/4
msmp
9,1loglogloglog41
241
83
283
41
241
81
281 H
David A. Huffman
13
Przykład algorytmu kodowaniametodą Huffmana
Symbol
1
0
2
-1
Prawdo-
podobieństwo
3/8
1/4
1/4
1/8
Prawdo-
podobieństwo
3/8
3/8
1/4
Prawdo-
podobieństwo
5/8
3/8
1
0
1
1 0
0
1952 rok
5/25/2017
7
14
Kontynuacja przykładu kodu Huffmana
Przeciętna ilość bitów na symbol 2)(32181
41
41
83 wH
Sprawność kodowania %95%1002
9,1
111|111|110|0|0|10|0|0|110
2 2 -1 1 1 0 1 1 -1
Symbol -1 0 1 2
Prawdopodobieństwo 0,125 0,250 0,375 0,250
Kod binarny 110 10 0 111
100 % sprawność kodowania gdy prawdopodobieństwa są potęgami 1/2
15
Kolejny przykład kodowania Huffmana
]008,0)[0(
]030,0)[1(
]037,0[
]073,0[
]076,0[
b
d
c
a
e
} ]037,0)[0(
]038,0)[1(
]073,0[
]076,0[
c
db
a
e
]073,0)[0(
]075,0)[1(
]076,0[
a
b d c
e
}]076,0)[0(
]148,0)[1(
e
b d c a
}
Symbol a b c d e
Prawdopodobieństwo 0,073 0,008 0,037 0,030 0,076
Kod binarny 10 1110 110 1111 0
5/25/2017
8
16
Prosty przykład kodu Huffmana
mp gęstość prawdopodobieństwa zmiennej losowej ms
m
i
im pF1
dystrybuanta
Znak Prawdopo-
dobieństwo
Kod
Huffmana
♂ 0,95 1
♀ 0,02 00
☺ 0,03 01
H = 0,335 bit/symbol
bit/symbol05,1wH
%9,31
Sprawność tylko
17
Kod Huffmana sekwencji symboli
Sekwencja
symboli
Iloczyn prawdopo-
dobieństw
Kod
Huffmana
♂♂ 0,9025 1
♂♀ 0,0190 000
♂☺ 0,0285 011
♀♂ 0,0190 0010
♀♀ 0,0004 001100
♀☺ 0,0006 001110
☺♂ 0,0285 010
☺♀ 0,0006 001101
☺☺ 0,0009 001111
bit/symbol222,1wH
H = 0,611 bit/symbol
%50sprawność
Poprzednio:
H = 0,335 bit/symbol
05,1wH
%9,31
5/25/2017
9
18
Tworzenie sekwencji elementów dla kodowania arytmetycznego
96938,0969,0969388,0
9694,0
95,00 97,0 1
9694,0969,095,0 97,0
♂
♂
♂
♀
♀ ♀♀ ♀☺
♀♀ ♀♀♀ ♀♀☺
☺
Ilość bitów potrzebna do zakodowania komunikatu
jest częścią całkowitąnp2log1
Przykład kodowania arytmetycznego
Sekwencja
symboli
Iloczyn
prawdopo-
dobieństw
Granice
przedziału
Wartość
środkowa
w kodzie
dziesiętnym
Wartość
środkowa
w kodzie
binarnym
♂♂ 0,9025 0 – 0,9025 0,45125 0,0111001110000101
01,15
♂♀ 0,0190 0,9025 –
0,92150,912 0,1110100101111000
1110106,72
♂☺ 0,0285 0,9215 – 0,95 0,93575 0,1110111110001101
1110116,13
♀♂ 0,0190 0,95 – 0,969 0,9595 0,1111010110100001
1111016,72
♀♀ 0,0004 0,969 – 0,9694 0,9692 0,1111100000011101
111110000001113,29
♀☺ 0,0006 0,9694 – 0,97 0,9697 0,1111100000111110
1111100000111,70
☺♂ 0,0285 0,97 – 0,9985 0,98425 0,1111101111110111
1111106,13
☺♀ 0,0006 0,9985 –
0,99910,9988 0,1111111110110001
1111111110111,70
☺☺ 0,0009 0,9991 - 1 0,99955 0,1111111111100010
1111111111111,12
np2log1
5008,1wH %7,40
5/25/2017
10
20
Kodowanie ciągów
RLC ang. Run Length Coding (RLE)
rv, gdzie v (od ang. value) powtarzający się symbol
r (od ang. run) liczba powtórzeń
1111000111111110001111000000111111111111
1 kod 1111 0 kod 000
1,1 1,0 2,1 1,0 1,1 2,0 3,1
21
Kodowanie predykcyjne
)()(1
insnpr
i
i
n
i nsins )()(
)()()( npnsnd )()()( ndnpns
NADAWCA ODBIORCA
r
i
i
1
1normalizujemy, aby
np. z autokorelacji
czyli
r
i
i
ii
1
5/25/2017
11
Podsumowanie kompresji bezstratnej
• Algorytmy
– Kodowanie Huffmana
– Kodowanie długości sekwencji RLC/RLE
– Kodowanie predykcyjne LPC
– Lempel-Ziv-Welsch LZW
– Deflate
• Formaty plików i systemy
– ZIP, RAR, GIF, PNG, FLAC, …
Kanał transmisyjny (AWGN)
Nadawca KoderKanał
transmisyjnyDekoder Odbiorca
Sygnał Zakodowany sygnał Sygnał
szum kanału
spadek mocy
straty pakietów
mieszanie pakietów
opóźnienie, Jitterrekonstrukcja
postprocessing
RMS
RMSHzsbit
N
SBC 1log 2/
5/25/2017
12
Kanał transmisyjny (AWGN)
szum kanału
spadek mocy
straty pakietów
mieszanie pakietów
opóźnienie, Jitter
RMS
RMSHzsbit
N
SBC 1log 2/
Kanał transmisyjny (AWGN)
5/25/2017
13
26
Metody kompresji stratnej
Kodowanie
stratneDekodowanie
SYGNAŁ
SYGNAŁ
nieco inny
27
Kwantyzacja skalarnaSQ ang. Scalar Quantization
2is 1is is 1is 2is 3is
2is
1is
is
1is
2is
poziomy reprezentacyjne
progi decyzyjne
ii ssQs
)(
gdzie 1, iii ss są rozdzielnymi zbiorami pokrywającymi
podzbiór liczb rzeczywistych.
)(is poziom reprezentacyjny lub kod
Kwantyzacja
równomierna
i nierównomiernaswe
swy
5/25/2017
14
Kwantyzacja skalarna
równomierna nierównomierna
Algorytm Max-Lloyd’a do wyznaczenia funkcji kwantyzacji Q(x) optymalnej względem p(x).
Błąd kwantyzacji:
1
1
22
dxxpxxQeE Q
29
Kwantowanie wektorowe
Książka kodowa ixxQ )(
2, ixxPrzykład gdy
np. działanie w/g reguły Mjxxdxxd ji ,...,1,,
M- liczba elementów książki kodowej
5/25/2017
15
Diagram Woronoja(Voronoi Tessellation)
Gieorgij Fieodosjewicz Woronoj
(1868-1908), student Markowa
Rys. Wikimedia CC
jiddR jii ,,,: μxμxx
Modulacja impulsowo-kodowaPCM (ang. Pulse Code Modulation), ITU-TG.711
• Bez kompresji, Q=8bit, fs=8 kHz – jaki bitrate ?
• Waveform coding – tutaj: kwantyzacja
sPCM(n)=Q(sa(n))
• Nierównomierny rozkład amplitud sygnału mowy
• Nieoptymalne wykorzystanie kwantyzatora
– Wysoki szum kwantyzacji
-1 -0.5 0 0.5 10
2000
4000
6000
8000
10000
12000
14000
Amplituda
Lic
zba p
róbek
Sygnał wejściowy
0 0.5 10
0.2
0.4
0.6
0.8
1
Amplituda wejścia
Am
plit
uda k
om
pandancji,
=
255
-1 -0.5 0 0.5 10
500
1000
1500
2000
2500
3000
3500
4000
Amplituda
Lic
zba p
róbek
Sygnał po kompandancji
1
1
22
dsspssQeE Q
RMS
RMSHzsbit
N
SBC 1log 2/
5/25/2017
16
Modulacja impulsowo-kodowaPCM (ang. Pulse Code Modulation), ITU-TG.711
• Bez kompresji, Q=8bit, fs=8kHz – jaki bitrate ?
• Waveform coding – tutaj: kwantyzacjasPCM(n)=Q(sa(n))
• Nierównomierny rozkład amplitud sygnału mowy– Nieoptymalne wykorzystanie kwantyzatora
• Wysoki szum kwantyzacji
– Kompresja dynamiki (amplitudy) próbek – kompandancja
• μ-Law, μ=2Q-1
• A-Law, A=87.56
-1 -0.5 0 0.5 10
2000
4000
6000
8000
10000
12000
14000
Amplituda
Lic
zba p
róbek
Sygnał wejściowy
0 0.5 10
0.2
0.4
0.6
0.8
1
Amplituda wejścia
Am
plit
uda k
om
pandancji,
=
255
-1 -0.5 0 0.5 10
500
1000
1500
2000
2500
3000
3500
4000
Amplituda
Lic
zba p
róbek
Sygnał po kompandancji
1ln
1lnsgnLaw
nsnsns
11
,ln1
ln1
1,
ln1sgnLaw
nsAA
nsA
Ans
A
nsA
nsnsA
-1 -0.5 0 0.5 10
2000
4000
6000
8000
10000
12000
14000
Amplituda
Lic
zba p
róbek
Sygnał wejściowy
0 0.5 10
0.2
0.4
0.6
0.8
1
Amplituda wejścia
Am
plit
uda k
om
pandancji,
=
255
-1 -0.5 0 0.5 10
500
1000
1500
2000
2500
3000
3500
Amplituda
Lic
zba p
róbek
Sygnał po kompandancji
A-Law
-Law
Modulacja impulsowo-kodowaPCM (ang. Pulse Code Modulation), ITU-TG.711przykład
• Zysk kompandancji dla zakresu liniowego |s(n)|<1/A
δSNR = 20log2(24)=24.1 dB, bo 1/A odpowiada 4 bitom
5/25/2017
17
35
Kodowanie transformatowe
T - transformacja
Q - kwantowanie
K – kodowanie
bezstratne
K-1 - dekodowanie
Q-1 - dekwantyzacja
IT- transformacja
odwrotna
36
Transformacje częstotliwościowe
dtftjfttstwdtetstwfs jft )2sin()2cos()()()()(),(ˆ 2
krótkoczasowa Fouriera
dttftsfs )2cos()()( kosinusowa
falkowa ~ , ( )s a ba
s tt b
adt
1
5/25/2017
18
Dyskretna transformacja kosinusowaDCT (Discrete Cosine Transform)
• Ciąg liczb (wektor, sygnał) można przedstawić jako kombinację liniową innych ciągów (wektorów, sygnałów) bazowych
• Wektory bazowe ortogonalne
• Skoro ortogonalne, to „mało” skorelowane (z definicji)
• Sinusoidy – interpretacja fizyczna – częstotliwość
• DCT:
uwaga, indeksujemy od „0”
1
0 2
)12(cos)()(
2)(
N
n N
knnskc
Nks
1,,1,0 Nk
38
Dyskretna transformacja kosinusowa
1
0 2
)12(cos)()(
2)(
N
n N
knnskc
Nks
1,,1,0 Nk
gdzie
0kdla1
0kdla21)(kc
1
0 2
)12(cos)()(
2)(
N
k N
knkskc
Nns
Transformacja
odwrotna
DCT, ang. Discrete Cosine Transform
5/25/2017
19
DCTFunkcje bazowe
20 40 60 80 100
2
4
6
8
10-1
-0.5
0
0.5
1
0 20 40 60 80 100-1
-0.5
0
0.5
1
m=0
m=1
m=2
m=3
m=4
1
0 2
)12(cos)()(
2)(
N
n N
knnskc
Nks
1,,1,0 Nk
m=0
m=1
m=2
m=3
m=4
DCT- przykład transformat
nr
sygnalu
20 40 60 80 100
10
20
30
40
50 -0.4
-0.2
0
0.2
0.4
0.6
0.8
nr
sygnalu
20 40 60 80 100
10
20
30
40
50
-1
-0.5
0
0.5
1
1.5
sygnaly (stest
)
nr
sygnalu
20 40 60 80 100
10
20
30
40
50 -0.4
-0.2
0
0.2
0.4
0.6
0.8
residual (sw e
- stest
)
nr
sygnalu
20 40 60 80 100
10
20
30
40
50 -1
-0.5
0
0.5
1
Wektory oryginalne wektory transformowane
DCT
0 10 20 30 40 50 60 70 80 90 1000
0.05
0.1
0.15
0.2
0 10 20 30 40 50 60 70 80 90 1000
0.5
1
5/25/2017
20
DCTkowariancja transformat
Kowariancja wektorów Kowariancja transformat DCT
Macierz kowariancji cov(sw y
)
20 40 60 80 100
20
40
60
80
100
-0.05
0
0.05
0.1
Macierz kowariancji widm cov(Sw yKLT)
20 40 60 80 100
20
40
60
80
100
-0.2
0
0.2
0.4
0.6
E[cov(stest
)]=0.00078273
Macierz kowariancji cov(stest
)
20 40 60 80 100
20
40
60
80
100
-0.02
0
0.02
0.04
E[cov(StestKLT)]=0.00024812
Macierz kowariancji widm cov(StestKLT)
20 40 60 80 100
20
40
60
80
100
-0.2
0
0.2
0.4
0.6
42
DCT dla bloków po 8 próbek
0 5 10 15 20 25 30 35 40 45 50-2
-1
0
1
2
Dzieląc sygnał na bloki po 8 próbek posługujemy się transformacją
7
0
16/)12(cos)()(5,0)(n
knnskcks
5/25/2017
21
Kompresja obrazów JPEGISO/IEC IS 10918-1 | ITU-T Recommendation T.811991 rok
Schemat kompresji JPEG
5/25/2017
22
Kwantyzacja widma
Schemat kompresji JPEG
5/25/2017
23
Kompresja obrazów JPEG ang. Joint Photographic Experts GroupISO/IEC IS 10918-1 | ITU-T Recommendation T.81, 1991 rok
Q=100%
R=2.6
Q=10%
R=46
Q=25%
R=23
Q=1%
R=144
Rys. Wikmiedia CC
Q
5/25/2017
24
50
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
51
Kompresja audio w GSM
kbit/s13ms20
1bit260
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.
5/25/2017
25
Kodowanie mowySource-Filter Model
Akustyka mowy
• Dopasowany system komunikacji
• Fizyka, teoria informacji,…
• Zakres częstotliwości:
– PCM 4000Hz
– Std. 8000Hz
– CD 22050Hz
• Dynamika
– min. 3, 4 bity
– 6.5*3 ~ 20 dB
5/25/2017
26
Krzywe izofoniczne Fletchera-Munsona obszar mowy
0 0.1 1 10-20
0
20
40
60
80
100
120
140
Częstotliwość [kHz]
Ciś
nie
nie
akusty
czne [
dB]
Próg bólu(120 fonów)
Próg pobudzenia(0 fonów)
Obszar mowy
fragment siatki obiektywnej skali decybelowej, subiektywna skala fonowa - krzywe izofonicznepróg pobudzenia i próg bólu
Rys. M. Kępiński
55
Maskowanie
Rys. L. Rabiner, Introduction to Digital Speech Processing, NOW 2007
5/25/2017
27
Maskowanie tonów
Rys. P. Vary, R. Martin, Digital Speech Transmission, Wiley 2005
Maskowanie w czasie - przykłady
Rys. P. Vary, R. Martin, Digital Speech Transmission, Wiley 2005
dT
10
ms
20
ms
50
ms
100
dLT=23dB (RMS)
5/25/2017
28
Kompresja Audio MPEG (MP3)Fraunhofer Labs
• MPEG-1/MPEG-2 Audio Layer 3
Kompresja Audio MPEG (MP3)ISO
5/25/2017
29
Wymagania dla transmisji i kodowania
• Stałe opóźnienie, małe opóźnienie
– Opóźnienia transmisji
– Opóźnienia przetwarzania (kodeka, ramkowania)
• Brak echa i przesłuchów
• Zachowanie treści, barwy, prozodii, dynamiki i cech osobniczych mowy, w każdym języku
• Zachowane pasmo, zachowane harmoniczne, DTMF
• Brak szumów / obecność szumów
• Małe straty pakietów, właściwa kolejność pakietów
– mniejsze i stałe opóźnienia
• Rozproszenie informacji
– możliwa rekonstrukcja po stracie pakietu, bitu
• Niskie przepływności bitowe -> duża pojemność systemu
• Łatwość implementacji (koszt energetyczny)
Rodzaje kodeków
• Bit-rate
– Szerokopasmowe > 10 kbps > Wąskopasmowe
– stały | zmienny | przełączany
• Metoda kodowania
– Kodowanie przebiegu (ang. waveform coders), np. PCM
– Kodowanie parametryczne, konieczny model sygnału, np. LP
– Hybrydowe, np. CELP (analysis-by-synthesis)
• Wielomodalne
• Standardy: ITU, ANSI, ETSI, DoD, RCR(JP)
– Np. w GSM 2G, 3G, 4G, 4-24kbps, >8kHz• Half-Rate - 5.6 kbps VSELP (Vector-Sum-Excited LP), std. GSM-HR
• Full-Rate - 13 kbps RPE-LTP (Regular Pulse Excitation – Long Term LP)
• Enhanced FR – 12.2 kbps ACELP (Algebraic Code-Excited LP)
• Adaptive Multi-Rate – 4.75-12.2 kbps (ACELP)
• AMR-WideBand – 6.6-23.85 (ACELP), HD – Voice, G.722.2
• http://en.wikipedia.org/wiki/List_of_codecs#Voice
• http://en.wikipedia.org/wiki/Comparison_of_audio_codecs
5/25/2017
30
Kodowanie CELPang. Code-Excited Linear Prediction
• Występuje w wielu odmianach (ACELP, RCELP, LD-CELP, VSELP, …)
• Najczęściej stosowana obecnie strategia
• Modelowanie traktu głosowego (predykcja liniowa)…
• … z kwantyzacją wektorową (VQ) wyników modelowania / modeli odniesienia
• … z kwantyzacją wektorową (VQ) pobudzenia
• szybką adaptacją parametrów kodera
• i aktywnym psychoakustycznym kształtowaniem szumu
•Zasada działania AbS:
„Analiza przez syntezę” (Analysis by Synthesis)
Analysis-by-Synthesis
5/25/2017
31
CELPstruktura kodera
Formant analysis filter
5/25/2017
32
CELP
• Kodowanie polega na dopasowaniu pobudzenia (ang. excitation signal)
• Ramkowanie 20-30ms
• Stosowanie „pod-ramek” (ang. sub-frames)
• Rozmiar książki kodowej – zazwyczaj > 8 bitów
• Wyznaczanie ważonego błędu syntezy w pętli AbS
• Postfiltering – krótko i długookresowy
• Adaptacja książki kodowej
• Przeszukiwanie książki kodowej:
– Algorytmy stochastyczne
– State-save, i inne…