< Return to Video

Compression - Huffman coding

  • 0:04 - 0:08
    Przedstawiając informację,
    np. obraz, cyfrowo,
  • 0:09 - 0:12
    musimy ją podzielić
    na maleńkie fragmenty.
  • 0:12 - 0:17
    To pozwala nam przesłać obraz
    jako ciąg barwnych symboli.
  • 0:17 - 0:19
    A te kolory
    mogą być przedstawiane
  • 0:19 - 0:22
    pod postacią liczb z jakiegoś kodu.
  • 0:25 - 0:27
    Zastanówcie się nad zadaniem:
  • 0:28 - 0:32
    Alicja i Bob binarnie przesyłają
    i odbierają wiadomości.
  • 0:36 - 0:42
    Pobierają centa za bit od klientów
    - za korzystanie z systemu.
  • 0:42 - 0:46
    Przychodzi klientka,
    która chce wysłać wiadomość.
  • 0:46 - 0:49
    Ta wiadomość składa się
    z tysiąca symboli.
  • 0:49 - 0:53
    A jej znaczenie jest nieznane.
  • 0:54 - 0:57
    Wiadomości są zwykle wysyłane
    standardowym, dwubitowym kodem,
  • 0:58 - 1:00
    trzeba by więc naliczyć opłatę
    za 2000 bitów.
  • 1:01 - 1:06
    Jednak Alicja i Bob analizowali już
    wiadomości tej klientki.
  • 1:06 - 1:11
    Obliczyli różne prawdopodobieństwa
    pojawiania się symboli.
  • 1:12 - 1:15
    Czy, znając te wartości,
  • 1:15 - 1:19
    mogą skompresować transmisję
    i zarobić więcej?
  • 1:19 - 1:22
    Jaka jest optymalna
    strategia kodowania?
  • 1:24 - 1:29
    David Huffman sformułował
    słynną strategię optymalną;
  • 1:29 - 1:31
    opublikował ją w 1952 r.
  • 1:31 - 1:35
    Podstawą było tworzenie
    drzewa binarnego od dołu.
  • 1:36 - 1:41
    Wypiszmy więc wszystkie symbole.
    Nazwiemy je węzłami.
  • 1:41 - 1:45
    Wyszukujemy dwa
    najmniej prawdopodobne węzły,
  • 1:46 - 1:48
    w tym przypadku B i C,
  • 1:48 - 1:52
    i łączymy je,
    dodając prawdopodobieństwo.
  • 1:53 - 1:57
    Powtarzamy to z dwoma następnymi
    najmniej prawdopodobnymi węzłami.
  • 1:57 - 2:01
    I łączymy dalej, aż zostanie jeden,
    na samej górze.
  • 2:02 - 2:05
    Wreszcie oznaczamy krawędzie
    na tym drzewie
  • 2:05 - 2:08
    zerami i jedynkami, w jakimś porządku.
  • 2:08 - 2:14
    Kod każdej litery to ścieżka
    od szczytu drzewa do niej.
  • 2:14 - 2:18
    Do A prowadzi tylko jedna
    krawędź, czyli 1.
  • 2:18 - 2:20
    Metodę nazwano kodowaniem Huffmana.
  • 2:20 - 2:26
    Do przykładów tego typu
    nie ma lepszej. Spróbujcie!
  • 2:26 - 2:30
    Np. jeśli skrócicie kod dla D
    do samego zera,
  • 2:30 - 2:33
    to wiadomość „011”
  • 2:34 - 2:37
    może oznaczać DAA,
  • 2:37 - 2:39
    ale też samo B.
  • 2:40 - 2:44
    Trzeba by więc wprowadzić
    odstępy między literami,
  • 2:45 - 2:49
    co niestety zniweluje wszelkie
    oszczędności w transmisji.
  • 2:49 - 2:54
    Jak bardzo skompresowaliśmy
    wiadomość od pierwszych 2000 bitów?
  • 2:54 - 2:59
    Musimy obliczyć przeciętną
    liczbę bitów na literę.
  • 2:59 - 3:02
    Mnożymy długość każdego kodu
  • 3:02 - 3:06
    przez prawdopodobieństwo
    wystąpienia i sumujemy.
  • 3:06 - 3:12
    Uzyskujemy przeciętną długość
    1,75 bita na symbol.
  • 3:12 - 3:15
    To znaczy, że za pomocą
    kodowania Huffmana
  • 3:15 - 3:19
    możemy kompresować
    wiadomości z 2000 bitów
  • 3:20 - 3:22
    do 1750 bitów.
  • 3:23 - 3:26
    Claude Shannon pierwszy stwierdził,
  • 3:26 - 3:29
    że granica kompresji
  • 3:29 - 3:32
    zawsze będzie równa entropii
    źródła wiadomości.
  • 3:37 - 3:42
    W miarę, jak entropia lub niepewność
    naszego źródła maleje,
  • 3:42 - 3:44
    wskutek czynników niestatystycznych,
  • 3:46 - 3:48
    zdolność kompresji rośnie.
  • 3:51 - 3:56
    Tymczasem gdy rośnie entropia,
    wskutek nieprzewidywalności,
  • 3:57 - 4:00
    nasza zdolność kompresji spada.
  • 4:03 - 4:06
    Chcąc coś skompresować
    powyżej entropii,
  • 4:06 - 4:10
    koniecznie musimy odjąć
    część informacji z wiadomości.
Title:
Compression - Huffman coding
Video Language:
English
Duration:
04:16

Polish subtitles

Revisions