Я читав про алгоритми стиснення даних та теоретичну межу стиснення даних. Нещодавно я зіткнувся з методом стиснення під назвою "Комбінаторне кодування ентропії", головна ідея цього методу - кодувати файл як символи, представлені у файлі, їх частоти та індекс перестановки цих символів, представлений файлом.
Ці документи можуть допомогти пояснити цей метод:
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
Однак у першому документі я прочитав, що за допомогою цього методу вони можуть стиснути деякий текст до межі, ніж межа Шеннона (Вони не враховували простір, необхідний для збереження частоти символів, і простір, необхідний для збереження мета дані файлу). Я подумав про це, і виявив, що цей метод не буде дуже ефективним для дуже малих файлів, але, з іншого боку, він може добре працювати з великими файлами. Насправді я не дуже добре розумію цей алгоритм або обмеження Шеннона, я просто знаю, що це сума ймовірності кожного символу, помножена на зворотної ймовірності.
Тож у мене є кілька питань:
Чи справді цей метод стиснення стискає файли менше, ніж межа Шеннона?
Чи існує якийсь алгоритм стиснення, який стискає файли менше, ніж межа Шеннона (відповідь на це питання, наскільки я знаю, ні)?
Чи може існувати метод стиснення, який стискає файли, менші за обмеження Шеннона?
Якщо комбінаторне кодування дійсно стискає файли, що перевищують обмеження Шеннона, чи не можна стиснути файл знову і знову, поки ми не досягнемо потрібного нам розміру?