Teoria Informacji i Metody Kompresji Danych 1
Materiały wykładowe (fragmenty) 2
Robert Susmaga Instytut Informatyki ul. Piotrowo 2 Poznań kontakt mail owy Robert.Susmaga@CS.PUT.Poznan.PL kontakt osobisty Centrum Wykładowe, blok informatyki, pok. 7 3
Wyłączenie odpowiedzialności Prezentowane materiały, będące dodatkiem pomocniczym do wykładów, z konieczności fragmentarycznym i niedopracowanym, należy wykorzystywać z pełną świadomością faktu, że mogą nie być pozbawione przypadkowych błędów, braków, wypaczeń i przeinaczeń :-) Autor
... 5
Co to za funkcja? log 2 (1/x) = log 2 (x) = log 2 (x)/( 1) = log 2 (x)/log 2 (1/2) = log 1/2 (x)
A przy okazji... pamiętacie? Entropia: wprowadzenie wykres H([x]) = x log P (x) (1 x) log P (1 x) dla P = 2
Przykłady innych odmian miary informacji T. Maszczyk, W. Duch: Comparison of Shannon, Renyi and Tsallis Entropy used in Decision Trees, LectureNotes in Computer Science, 5097, 643 651, 2008.
... 9
TIMKoD: teoria i praktyka W planach mieliśmy porządne wprowadzenie do entropii met. kodowe kompresji statyczne, adaptacyjne met. słownikowe kompresji adaptacyjne met. RLE met. arytmetyczne kompresji......a tu jeszcze o głos wołały kompresja stratna kompresja obrazów (a także: dźwięków) kompresja predykcyjna... Co się udało? Głównie Wikipedia!
[...] [...] nade wszystko, świerszczyku mój, [detektyw] Kwass ma wiadomości encyklopedyczne. Gdyby nasz szef miał chociaż ćwierć tych wiadomości encyklopedycznych, [...] bylibyśmy już dawno milionerami [...] Mówisz, że Hippollit Kwass ma wiadomości encyklopedyczne? [...] Tak jest, świerszczyku mój. On ma wiadomości encyklopedyczne [...]. Musisz mu uszczknąć odrobinę tych wiadomości encyklopedycznych. Uszczknąć? Przynajmniej na literę A. [...] Edmund Niziurski Niewiarygodne przygody Marka Piegusa 1959
... 12
Dygresja Od przybytku głowa boli*! problemu przybytku pozbywamy się kompresując dane przypadłość jest jednakże dość uporczywa atakuje same metody kompresji! (np. słowniki w metodach słownikowych) * w oryginale: Od przybytku głowa nie boli
Rodzina algorytmów LZ... LZ77, LZ78, LZSS, LZW,... charakterystyka (w kategoriach wejście/wyjście) LZ77 dla elementów wejścia o zmiennej długości znajduje elementy wyjścia o stałej długości LZSS, LZ78, LZW dla elementów wejścia o zmiennej długości znajduje elementy wyjścia o zmiennej długości
Rodzina algorytmów LZ... LZ77, LZ78, LZSS, LZW,... zastosowania (w konkretnych systemach kompresji) LZ77 deflate zip, gzip, 7z PNG LZSS, LZ78, LZW compress GIF, TIFF
A przy okazji... pamiętacie? Współczynnik kompresji = 1 N y /N x gdzie dla N x > 0: liczba elementów w ciągu źródłowym N y > 0: liczba elementów w ciągu wynikowym N y < N x : > 0 (kompresja pozytywna) N y = N x : = 0 (brak zmian) N y > N x : < 0 (kompresja negatywna) uwaga: współczynnik kompresji ma ogólniejsze zastosowania niż SWDK!
Algorytm LZW skuteczność kompresji Współczynnik kompresji = 1 N y /N x gdzie N x > 0: liczba elementów w ciągu źródłowym N y > 0: liczba elementów w ciągu wynikowym np. dla N x = 100 i N y = 50: = +0.50 N x = 100 i N y = 75: = +0.25 N x = 100 i N y = 100: = 0.00 N x = 100 i N y = 125: = 0.25 N x = 100 i N y = 150: = 0.50..
Algorytm LZW skuteczność kompresji Dalsze przykłady nieco specyficzne oznaczenie: x dla x > 0: x = wartość x zaokrąglona w górę dla x = 0: x = 1
Algorytm LZW skuteczność kompresji Dalsze przykłady dane wejściowe alfabet wejściowy: {a, b, c,d, r} ciąg wejściowy: abrrracadabrrrra alfabet wyjściowy: {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 8.0, 9.0} ciąg wyjściowy: 1.02.05.08.01.03.01.04.06.08.09.0 parametry danych/metody A: liczność alfabetu N: długość ciągu : współczynnik kompresji A WE = 5 log 2 (A WE ) = 3 N WE = 16 log 2 (A WE ) N WE = 48 A WY = 8 log 2 (A WY ) = 3 N WY = 11 log 2 (A WY ) N WY = 33 = +0.313
Algorytm LZW skuteczność kompresji Dalsze przykłady dane wejściowe alfabet wejściowy: {a} ciąg wejściowy: aaaaaaaaaaaaaaaa alfabet wyjściowy: {1.0, 2.0, 3.0, 4.0, 5.0} ciąg wyjściowy: 1.02.03.04.05.01.0 parametry danych/metody LA: liczność alfabetu DC: długość ciągu : współczynnik kompresji A WE = 1 log 2 (A WE ) = 1 N WE = 16 log 2 (A WE ) N WE = 16 A WY = 5 log 2 (A WY ) = 3 N WY = 6 log 2 (A WY ) N WY = 18 = 0.125
Algorytm LZW eksperymenty Rys. 1 4000 3500 3000 2500 2000 1500 1000 500 0 0 500 1000 1500 2000 2500 3000 3500 4000 we = aaa... X: l(we); Y: l(wy)
Algorytm LZW eksperymenty Rys. 2 700 600 500 400 300 200 100 0 0 500 1000 1500 2000 2500 3000 3500 4000 we = aaa... X: l(we); Y: l(wy)
Algorytm LZW eksperymenty Rys. 2 700 600 500 400 300 200 100 0 0 2 4 6 8 10 12 we = aaa... X: log 2 (l(we)); Y: l(wy)
Algorytm LZW eksperymenty Rys. 3 1 0.8 0.6 0.4 0.2 0-0.2 0 500 1000 1500 2000 2500 3000 3500 4000 we = aaa... X: l(we); Y:
Algorytm LZW eksperymenty Rys. 3 1 0.8 0.6 0.4 0.2 0-0.2 0 2 4 6 8 10 12 we = aaa... X: log 2 (l(we)); Y:
Algorytm LZW eksperymenty Rys. 4 90 80 70 60 50 40 30 20 10 0 0 500 1000 1500 2000 2500 3000 3500 4000 we = aaa... X: l(we); Y: l(dict)
Algorytm LZW eksperymenty Rys. 4 90 80 70 60 50 40 30 20 10 0 0 2 4 6 8 10 12 we = aaa... X: log 2 (l(we)); Y: l(dict)
Algorytm LZW eksperymenty Rys. 5 0.12 0.1 0.08 0.06 0.04 0.02 0 0 500 1000 1500 2000 2500 3000 3500 4000 we = aaa... X: l(we); Y: t enc, t dec (Matlab)
Algorytm LZW eksperymenty Rys. 5 0.12 0.1 0.08 0.06 0.04 0.02 0 0 2 4 6 8 10 12 we = aaa... X: log 2 (l(we)); Y: t enc, t dec (Matlab)
Algorytm LZW eksperymenty Rys. 6 0.12 0.1 0.08 0.06 0.04 0.02 0 0 500 1000 1500 2000 2500 3000 3500 4000 we = aaa... X: l(we); Y: t enc, t dec (Matlab) (wykres wygładzono)
Algorytm LZW eksperymenty Rys. 6 0.12 0.1 0.08 0.06 0.04 0.02 0 0 2 4 6 8 10 12 we = aaa... X: log 2 (l(we)); Y: t enc, t dec (Matlab) (wykres wygładzono)
Algorytm LZW eksperymenty Rys. 2 600 500 400 300 200 100 0 0 500 1000 1500 2000 2500 3000 3500 4000 we = aaa... X: l(we); Y: l(wy) (pominięto zaokrąglenia logarytmów)
Algorytm LZW eksperymenty Rys. 2 600 500 400 300 200 100 0 0 2 4 6 8 10 12 we = aaa... X: log 2 (l(we)); Y: l(wy) (pominięto zaokrąglenia logarytmów)
Algorytm LZW eksperymenty Rys. 3 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 500 1000 1500 2000 2500 3000 3500 4000 we = aaa... X: l(we); Y: (pominięto zaokrąglenia logarytmów)
Algorytm LZW eksperymenty Rys. 3 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 2 4 6 8 10 12 we = aaa... X: log 2 (l(we)); Y: (pominięto zaokrąglenia logarytmów)
... 36
A przy okazji... pamiętacie? Kompresja kodowa a kompresja słownikowa dzięki swej naturalnej dualności, metody kodowa: dla elementów wejścia o stałej długości znajduje elementy wyjścia o zmiennej długości słownikowa: dla elementów wejścia o zmiennej długości znajduje elementy wyjścia o stałej długości stanowią dość udaną parę!
Algorytmy Huffman / Shannon-Fano eksperymenty Prezentowane poniżej wyniki dotyczą eksperymentu, w którym losowano N rozkładów prawdopodobieństw dla ustalonego alfabetu, po czym generowano dla nich kody zgodnie z procedurą Huffmana Shannona-Fano i obrazowano* ich parametry * uwaga: punkty niebieskie rysowane były wcześniej, a czerwone później, wskutek czego na niektórych wykresach (w szczególności: 1 i 1 ) punkty niebieskie są przesłonięte punktami niebieskimi
Algorytmy Huffman / Shannon-Fano eksperymenty Rys. 1 l(a) = 2, N = 1000 X: H(p); Y: SWDK H (p), SWDK SF (p)
Algorytmy Huffman / Shannon-Fano eksperymenty Rys. 1 l(a) = 2, N = 1000 X: H(p); Y: H, H
Algorytmy Huffman / Shannon-Fano eksperymenty Rys. 2 l(a) = 4, N = 1000 X: H(p); Y: SWDK H (p), SWDK SF (p)
Algorytmy Huffman / Shannon-Fano eksperymenty Rys. 2 l(a) = 4, N = 1000 X: H(p); Y: H, H
Algorytmy Huffman / Shannon-Fano eksperymenty Rys. 3 l(a) = 8, N = 1000 X: H(p); Y: SWDK H (p), SWDK SF (p)
Algorytmy Huffman / Shannon-Fano eksperymenty Rys. 3 l(a) = 8, N = 1000 X: H(p); Y: H, H
Algorytmy Huffman / Shannon-Fano eksperymenty Rys. 4 l(a) = 16, N = 1000 X: H(p); Y: SWDK H (p), SWDK SF (p)
Algorytmy Huffman / Shannon-Fano eksperymenty Rys. 4 l(a) = 16, N = 1000 X: H(p); Y: H, H
Algorytmy Huffman / Shannon-Fano eksperymenty Rys. 5 l(a) = 32, N = 1000 X: H(p); Y: SWDK H (p), SWDK SF (p)
Algorytmy Huffman / Shannon-Fano eksperymenty Rys. 5 l(a) = 32, N = 1000 X: H(p); Y: H, H
... 49
Data compression. WTF?* "God Save the Queen" is a song by the British punk rock band the Sex Pistols. It was released as the band's second single [...] during Queen Elizabeth II's Silver Jubilee in 1977. The record s lyrics [...] were controversial at the time, and both the BBC and the Independent Broadcasting Authority refused to play the song. [...] The phrase "no future", the song's closing refrain, became emblematic of the punk rock movement. https://en.wikipedia.org/wiki/god_save_the_queen_(sex_pistols_song) * ang. Kompresja danych. Jaka przyszłość? ( Data compression. What s the Future? )
Data compression. WTF? Teraźniejszość (co najmniej) świetlana kompresja jawna ZIP, RAR, 7Z, APK, CAB,... kompresja niejawna... JPG, MP3, MP4,... PDF,... DOCX,... JAR,... Przyszłość...
Podstawowe tożsamości trygonometryczne sin(x + y) = sin(x) cos(y) + cos(x) sin(y) sin(x y) = sin(x) cos(y) cos(x) sin(y) cos(x + y) = cos(x) cos(y) sin(x) sin(y) cos(x y) = cos(x) cos(y) + sin(x) sin(y)... Dygresja (jedna z ostatnich!)
Podstawowe tożsamości logarytmiczne log P (x y) = log P (x) + log P (y) log P (x/y) = log P (x) log P (y) log P (x y ) = y log P (x)... Dygresja (jedna z ostatnich!)
Przyszłość kompresji? Wstęp do eksperymentu myślowego wartość wartość a log(x) log(a) b log(x) log(b).........
Przyszłość kompresji? Wstęp do eksperymentu myślowego wartość wartość exp(u) exp(x) u exp(v) exp(x) v.........
Przyszłość kompresji? Eksperyment myślowy a b
Przyszłość kompresji? Eksperyment myślowy a log(x) log(a) b log(x) log(b)
Przyszłość kompresji? Eksperyment myślowy log(a) log(b)
Przyszłość kompresji? Eksperyment myślowy c = a b log(a) log(b) log(c)?
Przyszłość kompresji? Eksperyment myślowy log(a) log(b) c = a b log(c)? exp(log(a)) exp(x) log(a) exp(log(b)) exp(x) log(b)
Przyszłość kompresji? Eksperyment myślowy log(a) log(b) c = a b log(c)? a = exp(log(a)) exp(x) log(a) b = exp(log(b)) exp(x) log(b)
Przyszłość kompresji? Eksperyment myślowy c = a b log(a) log(b) a b
Przyszłość kompresji? Eksperyment myślowy c = a b log(a) log(b) a b c = a b
Przyszłość kompresji? Eksperyment myślowy c = a b log(a) log(b) a b c = a b c log(x) log(c)
Przyszłość kompresji? Eksperyment myślowy c = a b log(a) log(b) log(c)
Przyszłość kompresji? Eksperyment myślowy c = a b log(a) log(b) log(c) = = log(a) + log(b)
Przyszłość kompresji? Szerszy eksperyment myślowy a szyfr(x) szyfr(a) b szyfr(x) szyfr(b) desz(u) desz(x) u desz(v) desz(x) v.........
Przyszłość kompresji? Szerszy eksperyment myślowy a szyfr(x) szyfr(a) b szyfr(x) szyfr(b) desz(u) desz(x) u desz(v) desz(x) v.........
Przyszłość kompresji? Szerszy eksperyment myślowy c = a b szyfr(a) szyfr(b) szyfr(c) = = szyfr(a) szyfr(b)
Dygresja (druga z ostatnich!) Homomorfizm [...] funkcja odwzorowująca jedną algebrę ogólną (np. monoid, grupę, pierścień czy przestrzeń wektorową) w drugą, zachowująca przy tym odpowiadające sobie działania. https://pl.wikipedia.org/wiki/homomorfizm
Dygresja (prawie ostatnia!) Szyfrowanie homomorficzne szyfrowanie, które pozwala na operowanie na zaszyfrowanym dokumencie bez jego deszyfrowania (bez znajomości klucza deszyfrującego). https://pl.wikipedia.org/wiki/szyfrowanie_homomorficzne
Przyszłość kompresji? Kompresja homomorficzna w szczególności: fingerprinting (funkcje skrótu) w ogólności: (potencjalne) wykorzystanie transformat! chociażby transformat już znanych i wykorzystywanych! (w innych miejscach, np. w procedurach kompresji stratnej)
Przyszłość kompresji? Pomoc z nieoczekiwanej strony Drużyna A Załoga G Transformata Z w innej wersji: funkcja tworząca
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) jeżeli* t = x 0 + x 1 + x 2 + x 3 +... to t(1 x) = (x 0 + x 1 + x 2 + x 3 +...)(1 x) = = (x 0 + x 1 + x 2 + x 3 +...) (x 1 + x 2 + x 3 + x 4 +...) = = x 0 = 1 i wtedy t = 1/(1 x) czyli 1/(1 x) = x 0 + x 1 + x 2 + x 3 +... * uwaga: może zachodzić wyłącznie dla wybranych x (np. dla x [0,+1))
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) i dalej, ponieważ x 0 + x 1 + x 2 + x 3 +... = 1 x 0 + 1 x 1 + 1 x 2 + 1 x 3 +... więc można zapisywać 1 / (1 x) 1, 1, 1, 1,... wyrażenie 1 / (1 x) reprezentuje (nieskończony) ciąg jedynek inaczej: funkcja (tworząca) f(x) = 1 / (1 x) tworzy (nieskończony) ciąg jedynek...
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) inne wyrażenia reprezentujące ciągi (funkcje tworzące) 1 / (1 2 x) 1, 2, 4, 8,... niech x = 2 y, wtedy 1/(1 x) = x 0 + x 1 + x 2 + x 3 +... implikuje 1/(1 2 y) = (2 y) 0 + (2 y) 1 + (2 y) 2 + (2 y) 3 +... = 1 y 0 + 2 y 1 + 4 y 2 + 8 y 3 +...
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) inne wyrażenia reprezentujące ciągi (funkcje tworzące) 1 / (1 x/2) 1, 1/2, 1/4, 1/8,... niech x = y/2, wtedy 1/(1 x) = x 0 + x 1 + x 2 + x 3 +... implikuje 1/(1 y/2) = (y/2) 0 + (y/2) 1 + (y/2) 2 + (y/2) 3 +... = = 1 y 0 + 1/2 y 1 + 1/4 y 2 + 1/8 y 3 +...
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) w ogólności 1 / (1 a x) 1, a, a 2, a 3,... i wtedy dla a = 1 mamy 1/(1 x) 1, 1, 1, 1,... dla a = 2 mamy 1/(1 2 x) 1, 2, 4, 8,... dla a = 1/2 mamy 1/(1 x/2) 1, 1/2, 1/4, 1/8,...... dla a = 1 mamy 1/(1+x) 1, 1, 1, 1,... dla a = 2 mamy 1/(1+2 x) 1, 2, 4, 8,... dla a = 1/2 mamy 1/(1+x/2) 1, 1/2, 1/4, 1/8,......
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) niech np. Z = 1 / (1 2 x) C = 1, 2, 4, 8,... wobec tego, że wyrażenie Z i ciąg C sobie jednoznacznie odpowiadają oraz Z jest krótsze od C (Z jest skończone, C nieskończone!) można powiedzieć, że Z jest skompresowaną wersją C (to tę wersję w praktyce przechowujemy)
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) jak w tej sytuacji wygląda operacja przekształcająca ciąg C na wyrażenie Z (kompresja)? operacja przekształcająca wyrażenie Z na ciąg C (dekompresja)?
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) dekompresja znalezienie ciągu C reprezentowanego przez wyrażenie Z
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) dekompresja (łatwe!) znalezienie ciągu C reprezentowanego przez wyrażenie Z Pytanie: jak wyznaczyć ciąg C reprezentowany przez (zadane) wyrażenie Z? np. jaki C jest reprezentowany przez Z = (4 x+1)/(1 x 2 x 2 ) Odpowiedź: wyliczyć współczynniki rozwinięcia Taylora* dla x = 0 * cała tajemnica tkwi w tym, że szereg Taylora umie (jednoznacznie) reprezentować różne funkcje, co oznacza m.in., że wartości różnych funkcji można obliczać korzystając z ich rozwinięć w szereg Taylora (a także, że same funkcje można reprezentować za pomocą ich rozwinięć)
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) niech Z = 1 / (1 2 x) wtedy Z(0)/0! = 1 Z (0)/1! = 2 Z (0)/2! = 4 Z (0)/2! = 8...
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) niech Z = 1 / (1+x) wtedy Z(0)/0! = 1 Z (0)/1! = 1 Z (0)/2! = 1 Z (0)/2! = 1...
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) kompresja znalezienie wyrażenia Z reprezentującego ciąg C
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) kompresja (trudne!) znalezienie wyrażenia Z reprezentującego ciąg C Pytanie: jak wyznaczyć wyrażenie Z reprezentujące (zadany) ciąg C? np. jakie Z reprezentuje C = 1, 5, 7, 17,... Odpowiedź: właściwie brak metod (współcześnie) Pytanie pomocnicze: czy warto, a jeżeli tak, to dlaczego, szukać takich metod? Odpowiedź: metodologia wydaje się dość trudna, ale pomimo tego warto, chociażby dlatego, że...
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) niech Z = (4 x+1) / (1 x 2 x 2 ) wtedy Z(0)/0! = 1 Z (0)/1! = 5 Z (0)/2! = 7 Z (0)/2! = 17...
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) jak się okazuje, Z = (4 x+1) / (1 x 2 x 2 ) = 2 Z 1 Z 2, gdzie Z 1 = 1 / (1+2 x) Z 2 = 1 / (1+x) uzasadnienie: 2 Z 1 Z 2 = = 2 1 / (1 2 x) 1 / (1+x) = = (2+2 x 1+2 x) / (1 2 x)/(1+x) = = (4 x+1) / (1 x 2 x 2 )
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) wobec Z 1 = 1 / (1 2 x) 1, 2, 4, 8,... można mieć nadzieję, że 2 Z 1 = 2 1 / (1 2 x) 2, 4, 8, 16,... jednocześnie, wobec Z 2 = 1 / (1+x) 1, 1, 1, 1,... można mieć nadzieję, że Z 2 = 1 / (1+x) 1, 1, 1, 1,...
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) tak jest faktycznie: jeżeli Z 1 = 1 / (1 2 x) 1, 2, 4, 8,... to dla 2 Z 1 = 2 1 / (1 2 x) otrzymujemy Z(0)/0! = 2 Z (0)/1! = 4 Z (0)/2! = 8 Z (0)/2! = 16...
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) tak jest faktycznie: jeżeli Z 2 = 1 / (1+x) 1, 1, 1, 1,... to dla Z 2 = 1 / (1+x) otrzymujemy Z(0)/0! = 1 Z (0)/1! = 1 Z (0)/2! = 1 Z (0)/2! = 1...
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) a więc: Z 1 = 1 / (1 2 x) 1, 2, 4, 8,... Z 2 = 1 / (1+x) 1, 1, 1, 1,... 2 Z 1 = 2 1 / (1 2 x) 2, 4, 8, 16,... Z 2 = 1 / (1+x) 1, 1, 1, 1,...
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) a więc: Z 1 = 1 / (1 2 x) 1, 2, 4, 8,... Z 2 = 1 / (1+x) 1, 1, 1, 1,... 2 Z 1 = 2 1 / (1 2 x) 2, 4, 8, 16,... Z 2 = 1 / (1+x) 1, 1, 1, 1,... jednocześnie: 2 Z 1 Z 2 =...
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) a więc: Z 1 = 1 / (1 2 x) 1, 2, 4, 8,... Z 2 = 1 / (1+x) 1, 1, 1, 1,... 2 Z 1 = 2 1 / (1 2 x) 2, 4, 8, 16,... Z 2 = 1 / (1+x) 1, 1, 1, 1,... jednocześnie: 2 Z 1 Z 2 =... 1, 5, 7, 17,...
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) a więc: Z 1 = 1 / (1 2 x) 1, 2, 4, 8,... Z 2 = 1 / (1+x) 1, 1, 1, 1,... 2 Z 1 = 2 1 / (1 2 x) 2, 4, 8, 16,... Z 2 = 1 / (1+x) 1, 1, 1, 1,... jednocześnie: 2 Z 1 Z 2 =... 1, 5, 7, 17,... operacje wykonane na wzorach po stronie Z wykonały się też na elementach ciągu po stronie C! wniosek: ta metoda jest homomorficzna!
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) czyli: wobec tego, że wyrażenie Z i ciąg C sobie jednoznacznie odpowiadają (nawet po /pewnych/ przekształceniach!) oraz Z jest krótsze od C (Z jest skończone, C nieskończone!) można powiedzieć, że Z jest skompresowaną wersją C (to tę wersję w praktyce przechowujemy i na niej operujemy)
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie)...łyżki dziegciu w beczkach miodu... łatwym / znanym operacjom po jednej stronie mogą odpowiadać trudne / nieznane operacje po drugiej stronie trudny (niemożliwy?) proces kompresji
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) niech Z = Z 1 Z 2 = 2 1/(1 2 x) ( 1)/(1+x) = 2 / (1 x 2 x 2 ) iloczyn wtedy Z(0)/0! = 2 Z (0)/1! = 2 Z (0)/2! = 6 Z (0)/2! = 10...
Przyszłość kompresji? Idea transformat (np. Z) / funkcji tworzących (na przykładzie) niech Z = Z 1 Z 2 = 2 1/(1 2 x) ( 1)/(1+x) = 2 / (1 x 2 x 2 ) powstaje pytanie: czy ciąg 2, 2, 6, 10,... jest jakąś funkcją ciągów 2, 4, 8, 16,... oraz 1, 1, 1, 1,... a jeżeli tak, to jaką?
... 100
(Skompresowana, bo ostatnia) dygresja?! (In 1862 the author Victor Hugo wrote to his publisher asking how his most recent book, Les Misérables, was getting on. Hugo just wrote "?" in his message, to which his publisher replied "!", to indicate it was selling well.) https://en.wikipedia.org/wiki/exformation
... 102