Czytałem o algorytmach kompresji danych i teoretycznym limicie kompresji danych. Ostatnio spotkałem metodę kompresji zwaną „kombinatorycznym kodowaniem entropii”, główną ideą tej metody jest kodowanie pliku jako znaków przedstawionych w pliku, ich częstotliwości i indeksu permutacji tych znaków reprezentowanych przez plik.
Te dokumenty mogą pomóc w wyjaśnieniu tej metody:
https://arxiv.org/pdf/1703.08127
http://www-video.eecs.berkeley.edu/papers/vdai/dcc2003.pdf
https://www.thinkmind.org/download.php?articleid=ctrq_2014_2_10_70019
Jednak w pierwszym dokumencie przeczytałem, że przy użyciu tej metody mogą skompresować część tekstu poniżej limitu Shannona (nie wzięli pod uwagę miejsca potrzebnego do zapisania częstotliwości znaków i miejsca potrzebnego do zapisania meta dane pliku). Pomyślałem o tym i stwierdziłem, że ta metoda nie będzie bardzo wydajna w przypadku bardzo małych plików, ale z drugiej strony może działać dobrze w przypadku dużych plików. Właściwie nie w pełni zrozumieć ten algorytm lub limitu Shannon bardzo dobrze, ja po prostu wiem, że to suma prawdopodobieństwa każdego znaku pomnożona przez stanowi odwrotność prawdopodobieństwa.
Mam więc kilka pytań:
Czy ta metoda kompresji naprawdę kompresuje pliki do rozmiaru mniejszego niż limit Shannona?
Czy istnieje algorytm kompresji, który kompresuje pliki do poziomu poniżej limitu Shannona (odpowiedź na to pytanie, o ile wiem, nie jest)?
Czy kiedykolwiek istnieje metoda kompresji, która kompresuje pliki do rozmiaru mniejszego niż limit Shannona?
Jeśli kodowanie kombinatoryczne naprawdę kompresuje pliki poza limit Shannona, czy nie jest możliwe kompresowanie pliku raz za razem, dopóki nie osiągniemy pożądanego rozmiaru pliku?