Контроль ошибок — комплекс методов обнаружения и исправления ошибок в данных при их записи и воспроизведении или передаче по линиям связи.
Сжатие данных без потерь — класс алгоритмов сжатия данных, при использовании которых закодированные данные однозначно могут быть восстановлены с точностью до бита, пикселя, вокселя и т.д. При этом оригинальные данные полностью восстанавливаются из сжатого состояния. Этот тип сжатия принципиально отличается от сжатия данных с потерями. Для каждого из типов цифровой информации, как правило, существуют свои оптимальные алгоритмы сжатия без потерь.
Алгори́тм Ле́мпеля — Зи́ва — Уэлча — это универсальный алгоритм сжатия данных без потерь, созданный Авраамом Лемпелем, Яаковом Зивом и Терри Велчем. Он был опубликован Велчем в 1984 году в качестве улучшенной реализации алгоритма LZ78, опубликованного Лемпелем и Зивом в 1978 году. Алгоритм разработан так, чтобы его было достаточно просто реализовать как программно, так и аппаратно.
LZO — алгоритм сжатия данных, разработанный для достижения максимальной скорости распаковки в середине 1990-х годов. Алгоритм сжимает данные без потерь и его базовая реализация поддерживает многопоточное исполнение.
LZ77 и LZ78 — алгоритмы сжатия без потерь, опубликованные в статьях израильских математиков Авраама Лемпеля и Яакова Зива в 1977 и 1978 годах. Эти алгоритмы — наиболее известные варианты в семействе LZ*, которое включает в себя также LZW, LZSS, LZMA и другие алгоритмы.
PPM — адаптивный статистический алгоритм сжатия данных без потерь, основанный на контекстном моделировании и предсказании. Модель PPM использует контекст — множество символов в несжатом потоке, предшествующих данному, чтобы предсказывать значение символа на основе статистических данных. Сама модель PPM лишь предсказывает значение символа, непосредственное сжатие осуществляется алгоритмами энтропийного кодирования, как например, алгоритм Хаффмана, арифметическое кодирование.
Дискре́тное логарифми́рование (DLOG) — задача обращения функции в некоторой конечной мультипликативной группе .
Фа́зово-и́мпульсная модуля́ция (ФИМ) — один из трёх основных способов цифрового модулирования информации в последовательность импульсов.
Хронология событий, связанных с теорией информации, сжатием данных, кодами коррекции ошибок и смежных дисциплин:
- 1872 — Людвиг Больцман представляет свою H-теорему, а вместе с этим формулу Σpi log pi для энтропии одной частицы газа.
- 1878 — Джозайя Уиллард Гиббс, определяет энтропию Гиббса: вероятности в формуле энтропии теперь взяты как вероятности состояния целой системы.
- 1924 — Гарри Найквист рассуждает о квантификации «Интеллекта» и скорости, на которой это может быть передано системой коммуникации.
- 1927 — Джон фон Нейман определяет фон Неймановскую энтропию, расширяя Гиббсовскую энтропию в квантовой механике.
- 1928 — Ральф Хартли представляет формулу Хартли как логарифм числа возможных сообщений, с информацией, передаваемой, когда приёмник может отличить одну последовательность символов от любой другой.
- 1929 — Лео Силард анализирует демона Максвелла, показывают, как двигатель Szilard может иногда преобразовывать информацию в извлечение полезной работы.
- 1940 — Алан Тьюринг представляет deciban как единицу измерения информации в немецкой машине Энигма с настройками, зашифрованными процессом Banburismus.
- 1944 — теория информации Клода Шеннона в основном завершена.
- 1947 — Ричард Хемминг изобретает Код Хемминга для обнаружения ошибок и их исправления, но не публикует их до 1950 года.
- 1948 — Клод Шеннон публикует Математическую теорию связи
- 1949 — Клод Шеннон публикует Передачу Информации в виде шумов, в которой описаны Теорема отсчётов и Теорема Шеннона — Хартли.
- 1949 — Рассекречена Теория связи в секретных системах Клода Шеннона.
- 1949 — Роберт Фано опубликовал отчет, в котором независимо от Клода Шеннона описан Алгоритм Шеннона — Фано.
- 1949 — опубликовано Неравенство Крафта — Макмиллана.
- 1949 — Марсель Голей вводит коды Голея для исправления ошибок методом упреждения.
- 1950 — Ричард Хемминг публикует коды Хемминга для исправления ошибок методом упреждения.
- 1951 — Соломон Кульбак и Ричард Лейблер вводят понятие расстояния Кульбака-Лейблера.
- 1951 — Дэвид Хаффман изобретает кодирование Хаффмана, метод нахождения оптимальных префиксных кодов для сжатия данных без потерь.
- 1953 — опубликован Sardinas–Patterson algorithm.
- 1954 — Ирвинг Рид и Дэвид E. Мюллер вводит коды Рида-Мюллера.
- 1955 — Питер Элиас вводит свёрточные коды.
- 1957 — Юджин Прандж первый обсуждает циклический избыточный код.
- 1959 — Алексис Хоквингем, и самостоятельно в следующем году Радж Чандра Боуз и Двайджендра Камар Рей-Чоудхури, представляют коды Боуза-Чоудхури-Хоквингема (БЧХ-коды).
- 1960 — Ирвинг Рид и Густав Соломон вводят коды Рида-Соломона.
- 1962 — Роберт Галлагер предлагает код с малой плотностью проверок на чётность; их не использовали в течение 30 лет из-за технических ограничений.
- 1966 — опубликована статья Дэвида Форнея Concatenated error correction code.
- 1967 — Эндрю Витерби открывает алгоритм Витерби, делающий возможным декодирование свёрточных кодов.
- 1968 — Элвин Берлекэмп изобретает алгоритм Берлекэмпа — Мэсси; его применение к расшифровке БЧХ-кодов и кода Рида-Соломона, указанный Джеймсом Мэсси в последующем году.
- 1968 — Крис Уоллис и Дэвид М. Бутон издают первый из многих докладов о Сообщениях минимальной длины (СМД) — их статистический и индуктивный вывод.
- 1972 — опубликована статья о Justesen code.
- 1973 — Дэвид Слепиан и Джек Волф открывают и доказывают Код Слепиана-Вольфа, кодирующего пределы распределённого источника кодирования.
- 1976 — Готфрид Унгербоэк публикует первую статью о Треллис-модуляции.
- 1976 — Йорма Риссанен разрабатывает и позднее патентует арифметическое кодирование для IBM.
- 1977 — Абрахам Лемпель и Яаков Зив разрабатывают алгоритм сжатия Лемпеля-Зива (LZ77)
- 1982 — Готфрид Унгербоэк публикует более подробное описание Треллис-модуляции, что приводит к увеличению скорости аналогового модема старой обычной телефонной службы от 9.6 кбит/сек до 36 кбит/сек.
- 1989 — Фил Кац создаёт .zip формат, включая формат сжатия DEFLATE ; позже это становится наиболее широко используемым алгоритмом сжатия без потерь.
- 1993 — Клод Берроу, Алэйн Главиукс и Punya Thitimajshima вводят понятие Турбо-кодов.
- 1994 — Майкл Барроуз и Дэвид Уилер публикуют теорию преобразования Барроуза-Уилера, которая далее найдет своё применение в bzip2.
- 1995 — Benjamin Schumacher предложил термин Кубит.
- 1998 — предложен Fountain code.
- 2001 — описан алгоритм Statistical Lempel–Ziv.
- 2008 — Erdal Arıkan предложил Полярные коды.
Омега-код Элиаса — это универсальный код для кодирования положительных целых чисел, разработанный Питером Элиасом.
В теории формальных языков задачей о наименьшей грамматике называется задача нахождения наименьшей контекстно-свободной грамматики, которая порождает уникальную последовательность символов. Размер грамматики частью авторов определяется числом символов в правой части правил вывода. Но иногда включается и число правил.
Винсент Рэймен — бельгийский криптограф, автор многочисленных научных публикаций в области симметричной криптографии и один из двух разработчиков Advanced Encryption Standard (AES). Также вместе с Paulo S. L. M. Barreto он является разработчиком криптографической хеш-функции WHIRLPOOL и блочных шифров Anubis, KHAZAD, Noekeon и SHARK.
Яаков Зив или Якоб Зив — израильский учёный-математик, специалист в области теории информации и теории кодирования.
Элвин Берлекэмп — американский математик, заслуженный профессор математики, электротехники и компьютерных наук в Университете Калифорнии в Беркли. Элвин Берлекемп известен своими работами в области теории кодирования и комбинаторной теории игр.
Asymmetric numeral systems — семейство методов энтропийного кодирования, изобретённых Ярославом (Яреком) Дудой в 2006 на основе введённой им концепции асимметричных систем счисления. С 2014 года используется для сжатия данных в ряде программ, так как эти методы по степени сжатия дают примерно столь же хорошее аккуратное приближение к оптимальному энтропийному кодированию, как и арифметическое кодирование, но обладают более высоким быстродействием, не уступая по скорости распаковки алгоритмам кодирования Хаффмана; кроме того, существенным является то, что эти методы не защищены патентами и свободны к использованию, так как создание и распространение свободной альтернативы арифметическому кодированию являлось целью автора.
Терри Арчер Велч — американский учёный, работавший в области компьютерных наук, один из авторов алгоритма сжатия LZW.
LZSS — алгоритм сжатия данных без потерь, производный от метода LZ77. Создан в 1982 году Джеймс Сторером и Томасом Шиманским. LZSS был описан в статье «Data compression via textual substitution», опубликованной в журнале АСМ.
Сдвиг среднего значения — это непараметрическая техника анализа пространства признаков для определения местоположения максимума плотности вероятности, так называемый алгоритм поиска моды. Область применения техники — кластерный анализ в компьютерном зрении и обработке изображений.
Граф Таннера — двудольный граф, используемый для ограничения состояний или равенств, которые определяют коды коррекции ошибок. В теории кодирования графы Таннера использовались для построения более длинных кодов из более мелких. Как кодировщики, так и декодировщики интенсивно используют эти графы.
Сложность Лемпеля-Зива - алгоритм для вычисления Колмогоровской сложности, который может быть исполнен на любом языке программирования, поддерживающем операции копирования и вставки в строку. Несмотря на простоту данного алгоритма, он является очень мощным и быстрым.