Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Сжатие без потерь - это класс алгоритмов сжатия данных , который позволяет идеально восстанавливать исходные данные из сжатых данных. Напротив, сжатие с потерями позволяет реконструировать только аппроксимацию исходных данных, хотя обычно со значительно улучшенными степенями сжатия (и, следовательно, уменьшенными размерами носителя).

Благодаря принципу работы с ячейками ни один алгоритм сжатия без потерь не может эффективно сжать все возможные данные. По этой причине существует множество различных алгоритмов, которые разработаны либо с учетом конкретного типа входных данных, либо с конкретными предположениями о том, какие виды избыточности могут содержать несжатые данные.

Сжатие данных без потерь используется во многих приложениях. Например, он используется в формате файла ZIP и в инструменте GNU gzip . Он также часто используется в качестве компонента в технологиях сжатия данных с потерями (например, совместная предварительная обработка стерео среднего и бокового каналов без потерь кодировщиками MP3 и другими аудиокодерами с потерями).

Сжатие без потерь используется в тех случаях, когда важно, чтобы исходные и распакованные данные были идентичными, или когда отклонения от исходных данных были бы нежелательными. Типичными примерами являются исполняемые программы, текстовые документы и исходный код. Некоторые форматы файлов изображений, такие как PNG или GIF , используют только сжатие без потерь, в то время как другие, такие как TIFF и MNG, могут использовать методы без потерь или с потерями. Аудиоформаты без потерь чаще всего используются для архивирования или производства, в то время как аудиофайлы с потерями меньшего размера обычно используются на портативных плеерах и в других случаях, когда пространство для хранения ограничено или точное воспроизведение звука не требуется.

Методы сжатия без потерь [ править ]

Большинство программ сжатия без потерь выполняют две операции последовательно: на первом этапе создается статистическая модель для входных данных, а на втором этапе эта модель используется для сопоставления входных данных с последовательностями битов таким образом, чтобы «вероятные» (например, часто встречающиеся) данные даст более короткий результат, чем «невероятные» данные.

Основными алгоритмами кодирования, используемыми для создания битовых последовательностей, являются кодирование Хаффмана (также используемое алгоритмом дефлятирования ) и арифметическое кодирование . Арифметическое кодирование обеспечивает степень сжатия, близкую к наилучшей из возможных для конкретной статистической модели, которая задается информационной энтропией , тогда как сжатие Хаффмана проще и быстрее, но дает плохие результаты для моделей, которые имеют дело с вероятностями символа, близкими к 1.

Существует два основных способа построения статистических моделей: в статической модели данные анализируются и строится модель, затем эта модель сохраняется со сжатыми данными. Этот подход прост и модулен, но имеет недостаток, заключающийся в том, что сама модель может быть дорогостоящей в хранении, а также в том, что он вынуждает использовать единую модель для всех сжимаемых данных и поэтому плохо работает с файлами, содержащими разнородные данные. Адаптивные модели динамически обновляют модель по мере сжатия данных. И кодер, и декодер начинаются с тривиальной модели, что дает плохое сжатие исходных данных, но по мере того, как они узнают больше о данных, производительность улучшается. В наиболее популярных типах сжатия, используемых на практике, сейчас используются адаптивные кодеры.

Методы сжатия без потерь можно разделить на категории в соответствии с типом данных, для сжатия которых они предназначены. Хотя, в принципе, любой алгоритм сжатия без потерь общего назначения ( универсальный означает, что они могут принимать любую строку битов) может использоваться с любым типом данных, многие из них не могут достичь значительного сжатия данных, которые не имеют формы, для которой они были созданы для сжатия. Многие из методов сжатия без потерь, используемых для текста, также достаточно хорошо работают для индексированных изображений .

Мультимедиа [ править ]

Эти методы используют преимущества определенных характеристик изображений, таких как обычное явление непрерывных двухмерных областей схожих тонов. Каждый пиксель, кроме первого, заменяется разницей его левого соседа. Это приводит к тому, что малые значения имеют гораздо большую вероятность, чем большие значения. Это часто также применяется к звуковым файлам и может сжимать файлы, содержащие в основном низкие частоты и небольшую громкость. Для изображений этот шаг можно повторить, взяв разницу в верхний пиксель, а затем в видео можно взять разницу в пикселе в следующем кадре.

Иерархическая версия этого метода берет соседние пары точек данных, сохраняет их разность и сумму, а на более высоком уровне с более низким разрешением продолжает вычисление сумм. Это называется дискретным вейвлет-преобразованием . JPEG2000 дополнительно использует точки данных из других пар и коэффициенты умножения, чтобы смешать их с разницей. Эти множители должны быть целыми числами, чтобы результат был целым при любых обстоятельствах. Значения увеличиваются, увеличивается размер файла, но, надеюсь, распределение значений более пиковое. [ необходима цитата ]

Адаптивное кодирование использует вероятности из предыдущего образца при кодировании звука, от левого и верхнего пикселя при кодировании изображения и дополнительно из предыдущего кадра при кодировании видео. В вейвлет-преобразовании вероятности также проходят через иерархию.

Исторические правовые вопросы [ править ]

Многие из этих методов реализованы в инструментах с открытым исходным кодом и в проприетарных инструментах, особенно в LZW и его вариантах. Некоторые алгоритмы запатентованы в США и других странах, и их законное использование требует лицензирования держателем патента. Из-за патентов на определенные виды сжатия LZW и, в частности, практики лицензирования со стороны патентообладателя Unisys, которую многие разработчики сочли оскорбительной, некоторые сторонники открытого исходного кода призывали людей избегать использования формата обмена графическими данными (GIF) для сжатия файлов неподвижных изображений в пользу Portable. Network Graphics (PNG), который сочетает в себе LZ77 основанное выкачивает алгоритмс выбором фильтров прогнозирования для конкретной предметной области. Однако срок действия патентов на LZW истек 20 июня 2003 г. [1]

Многие из методов сжатия без потерь, используемых для текста, также достаточно хорошо работают для индексированных изображений , но есть другие методы, которые не работают для типичного текста, которые полезны для некоторых изображений (особенно простых растровых изображений), и другие методы, которые используют преимущества определенных характеристики изображений (такие как обычное явление смежных двухмерных областей схожих тонов и тот факт, что цветные изображения обычно имеют преобладание в ограниченном диапазоне цветов из тех, которые представляются в цветовом пространстве).

Как упоминалось ранее, сжатие звука без потерь - это несколько специализированная область. Алгоритмы сжатия звука без потерь могут использовать повторяющиеся шаблоны, показанные волнообразной природой данных - по сути, с использованием авторегрессионных моделей для прогнозирования «следующего» значения и кодирования (надеюсь, небольшой) разницы между ожидаемым значением и фактическими данными. Если разница между предсказанными и фактическими данными (называемая ошибкой ) имеет тенденцию быть небольшой, то определенные значения разницы (например, 0, +1, -1 и т. Д. В выборочных значениях) становятся очень частыми, что можно использовать путем их кодирования. в нескольких выходных битах.

Иногда полезно сжать только различия между двумя версиями файла (или, при сжатии видео , последовательных изображений в последовательности). Это называется дельта-кодированием (от греческой буквы Δ , которая в математике обозначает различие), но этот термин обычно используется только в том случае, если обе версии имеют смысл вне сжатия и распаковки. Например, хотя процесс сжатия ошибки в вышеупомянутой схеме сжатия звука без потерь может быть описан как дельта-кодирование от приближенной звуковой волны до исходной звуковой волны, приближенная версия звуковой волны не имеет смысла ни в каком другом контексте. .

Методы сжатия без потерь [ править ]

Ни один алгоритм сжатия без потерь не может эффективно сжать все возможные данные (подробности см. В разделе « Ограничения» ниже). По этой причине существует множество различных алгоритмов, которые разработаны либо с учетом конкретного типа входных данных, либо с конкретными предположениями о том, какие виды избыточности могут содержать несжатые данные.

Некоторые из наиболее распространенных алгоритмов сжатия без потерь перечислены ниже.

Общего назначения [ править ]

  • bzip2 - объединяет преобразование Барроуза – Уиллера с кодированием RLE и Хаффмана.
  • Конечная энтропия состояния - энтропийное кодирование , табличный вариант ANS , используемый LZFSE и Zstandard
  • Кодирование Хаффмана - энтропийное кодирование, хорошо сочетающееся с другими алгоритмами, используемыми packутилитой Unix
  • Сжатие Лемпеля-Зива (LZ77 и LZ78) - алгоритм на основе словаря, который лежит в основе многих других алгоритмов
    • Алгоритм цепи Лемпеля – Зива – Маркова (LZMA) - очень высокая степень сжатия, используется 7zip и xz
    • Lempel – Ziv – Oberhumer (LZO) - рассчитан на скорость за счет степени сжатия
    • Lempel – Ziv – Storer – Szymanski (LZSS) - используется WinRAR в тандеме с кодированием Хаффмана.
      • Deflate - сжатие Сочетания LZSS с кодированием Хаффмана, используемое ZIP , GZIP и PNG изображений
    • Lempel – Ziv – Welch (LZW) - используется изображениями GIF и compressутилитой Unix.
    • Конечная энтропия Лемпеля – Зива (LZFSE) - объединяет энтропию Лемпеля – Зива и конечную энтропию, используется в iOS и macOS
    • Zstandard (ZSTD) - объединяет LZ77, энтропию конечного состояния и кодирование Хаффмана, используемое ядром Linux.
  • Прогнозирование путем частичного совпадения (PPM) - оптимизировано для сжатия обычного текста
  • Кодирование длин серий (RLE) - Простая схема, обеспечивающая хорошее сжатие данных, содержащих множество прогонов одного и того же значения.

Аудио [ править ]

  • Apple Lossless (ALAC - аудиокодек Apple без потерь)
  • Акустическое кодирование с адаптивным преобразованием (ATRAC)
  • Кодирование без потерь звука (также известное как MPEG-4 ALS)
  • Прямая потоковая передача (DST)
  • Dolby TrueHD
  • DTS-HD Master Audio
  • Бесплатный аудиокодек без потерь (FLAC)
  • Упаковка без потерь Meridian (MLP)
  • Аудио Обезьяны (Monkey's Audio APE)
  • MPEG-4 SLS (также известный как HD-AAC)
  • OptimFROG
  • Исходное качество звука (OSQ)
  • RealPlayer (RealAudio без потерь)
  • Сократить (ШН)
  • TTA (True Audio Lossless)
  • WavPack (WavPack без потерь)
  • WMA без потерь (Windows Media без потерь)

Растровая графика [ править ]

  • HEIF - высокоэффективный формат файлов изображений (сжатие без потерь или с потерями, с использованием HEVC )
  • ILBM - (сжатие RLE без потерь изображений Amiga IFF )
  • LDCT - Дискретное косинусное преобразование без потерь [2] [3]
  • JBIG2 - (сжатие без потерь или с потерями черно-белых изображений)
  • JPEG 2000 - (включает метод сжатия без потерь через обратимое целочисленное вейвлет-преобразование LeGall-Tabatabai 5/3 [4] [5] [6] )
  • JPEG XR - ранее WMPhoto и HD Photo , включает метод сжатия без потерь
  • JPEG-LS - (стандарт сжатия без / почти без потерь)
  • PCX - Обмен PiCture
  • PDF - Portable Document Format (сжатие без потерь или с потерями)
  • PNG - переносимая сетевая графика
  • TIFF - формат файла изображений с тегами (сжатие без потерь или с потерями)
  • TGA - Truevision TGA
  • WebP - (сжатие без потерь или с потерями изображений RGB и RGBA)
  • FLIF - бесплатный формат изображений без потерь
  • AVIF - формат файла изображения AOMedia Video 1

3D-графика [ править ]

  • OpenCTM - сжатие без потерь трехмерных треугольных сеток

Видео [ править ]

См. Этот список видеокодеков без потерь.

Криптография [ править ]

Криптосистемы часто сжимают данные («открытый текст») перед шифрованием для дополнительной безопасности. При правильной реализации сжатие значительно увеличивает расстояние единственности за счет удаления шаблонов, которые могут облегчить криптоанализ . [7] Однако многие обычные алгоритмы сжатия без потерь создают заголовки, оболочки, таблицы или другой предсказуемый вывод, который вместо этого может упростить криптоанализ. Таким образом, криптосистемы должны использовать алгоритмы сжатия, выходные данные которых не содержат этих предсказуемых шаблонов.

Генетика и геномика [ править ]

Алгоритмы сжатия генетических данных (не путать с генетическими алгоритмами ) - это последнее поколение алгоритмов сжатия без потерь, которые сжимают данные (обычно последовательности нуклеотидов) с использованием как обычных алгоритмов сжатия, так и специальных алгоритмов, адаптированных к генетическим данным. В 2012 году группа ученых из Университета Джона Хопкинса опубликовала первый алгоритм сжатия генетических данных, который не использует внешние генетические базы данных для сжатия. HAPZIPPER был адаптирован для данных HapMap и обеспечивает более чем 20-кратное сжатие (уменьшение размера файла на 95%), обеспечивая сжатие в 2–4 раза быстрее, чем ведущие универсальные утилиты сжатия. [8]

Алгоритмы сжатия геномных последовательностей, также известные как компрессоры последовательностей ДНК, исследуют тот факт, что последовательности ДНК имеют характерные свойства, такие как инвертированные повторы. Самые удачные компрессоры - XM и GeCo. [9] Для эукариот XM немного лучше по степени сжатия, хотя для последовательностей размером более 100 МБ его вычислительные требования непрактичны.

Исполняемые файлы [ править ]

Самораспаковывающиеся исполняемые файлы содержат сжатое приложение и декомпрессор. При запуске декомпрессор прозрачно распаковывает и запускает исходное приложение. Это особенно часто используется в демонстрационном кодировании, где проводятся соревнования для демонстраций со строгими ограничениями по размеру, вплоть до 1k . Этот тип сжатия не ограничивается строго двоичными исполняемыми файлами, но также может применяться к сценариям, таким как JavaScript .

Тесты сжатия без потерь [ править ]

Алгоритмы сжатия без потерь и их реализации регулярно тестируются в прямых тестах . Существует ряд наиболее известных тестов сжатия. Некоторые тесты охватывают только степень сжатия данных , поэтому победители в этих тестах могут оказаться непригодными для повседневного использования из-за низкой скорости лучших тестов. Еще одним недостатком некоторых тестов является то, что их файлы данных известны, поэтому некоторые разработчики программ могут оптимизировать свои программы для достижения максимальной производительности на конкретном наборе данных. Победители в этих тестах часто приходят из класса программного обеспечения для сжатия контекстного микширования .

Мэтт Махони в своем выпуске бесплатного буклета « Объяснение сжатия данных» за февраль 2010 г. дополнительно перечисляет следующее: [10]

  • Корпус Калгари, построенный в 1987 году, больше не используется широко из-за своего небольшого размера. Мэтт Махони в настоящее время поддерживает программу Calgary Compression Challenge, созданную и поддерживаемую с 21 мая 1996 г. по 21 мая 2016 г. Леонидом Броухисом.
  • Тестирование сжатия большого текста [11] и аналогичный приз Hutter Prize используют обрезанный набор данных Wikipedia XML UTF-8 .
  • Generic Compression Benchmark [12], поддерживаемый самим Махони, проверяет сжатие данных, генерируемых случайными машинами Тьюринга .
  • Сами Рансас (автор NanoZip) поддерживает рейтинги сжатия, эталонный тест, аналогичный тесту максимального сжатия нескольких файлов, но с минимальными требованиями к скорости. Он также предлагает калькулятор, который позволяет пользователю взвесить важность скорости и степени сжатия. Топ-программы здесь довольно разные из-за требований к скорости. В январе 2010 года лидирующими программами были NanoZip, за которыми следовали FreeArc , CCM , flashzip и 7-Zip .
  • Тест Monster of Compression от NF Antonio тестирует сжатие 1 ГБ общедоступных данных с 40-минутным ограничением по времени. По состоянию на 20 декабря 2009 г. лучшим архиватором является NanoZip 0.07a, а лучшим компрессором для одиночных файлов - ccmx 1.30c, оба контекста смешиваются .

Веб-сайт Compression Ratings опубликовал сводную диаграмму «границы» по степени сжатия и времени. [13]

Инструмент анализа сжатия [14] - это приложение для Windows, которое позволяет конечным пользователям оценивать характеристики производительности потоковых реализаций LZF4, Deflate, ZLIB, GZIP, BZIP2 и LZMA, используя свои собственные данные. Он производит измерения и графики, с помощью которых пользователи могут сравнивать скорость сжатия, скорость распаковки и степень сжатия различных методов сжатия и проверять, как уровень сжатия, размер буфера и операции очистки влияют на результаты.

Ограничения [ править ]

Алгоритмы сжатия данных без потерь не могут гарантировать сжатие для всех наборов входных данных. Другими словами, для любого алгоритма сжатия данных без потерь будет входной набор данных, который не станет меньше при обработке алгоритмом, а для любого алгоритма сжатия данных без потерь, который уменьшает хотя бы один файл, будет как минимум один файл, который он увеличивает. Это легко доказать с помощью элементарной математики, используя следующий счетный аргумент :

  • Предположим, что каждый файл представлен как строка бит произвольной длины.
  • Предположим, что существует алгоритм сжатия, который преобразует каждый файл в выходной файл, длина которого не превышает длину исходного файла, и что по крайней мере один файл будет сжат в выходной файл, который короче исходного файла.
  • Пусть M будет наименьшим числом, при котором существует файл F с длиной M бит, который сжимается до чего-то более короткого. Пусть N будет длина (в битах) сжатой версии F .
  • Поскольку N < M , каждый файл длины N сохраняет свой размер во время сжатия. Таких файлов может быть 2 N. Вместе с F , это делает 2 N + 1 , что все файлы компресса в одном из 2 N файлов длины N .
  • Но 2 N меньше, чем 2 N +1, поэтому по принципу «ящика» должен существовать некоторый файл длины N, который одновременно является выходом функции сжатия на двух разных входах. Этот файл нельзя надежно распаковать (какой из двух оригиналов должен дать?), Что противоречит предположению о том, что алгоритм был без потерь.
  • Следовательно, мы должны заключить, что наша первоначальная гипотеза (что функция сжатия больше не делает файл) обязательно неверна.

Любой алгоритм сжатия без потерь, который делает некоторые файлы короче, обязательно должен делать некоторые файлы длиннее, но необязательно, чтобы эти файлы становились намного длиннее. Большинство практических алгоритмов сжатия предоставляют средство «выхода», которое может отключить нормальное кодирование файлов, которые стали бы длиннее из-за кодирования. Теоретически требуется только один дополнительный бит, чтобы сообщить декодеру, что нормальное кодирование отключено для всего ввода; однако в большинстве алгоритмов кодирования для этой цели используется по крайней мере один полный байт (а обычно более одного). Например, сжатые файлы deflate никогда не должны увеличиваться более чем на 5 байтов на 65 535 байтов ввода.

Фактически, если мы рассмотрим файлы длины N, если бы все файлы были равновероятными, то для любого сжатия без потерь, которое уменьшает размер некоторого файла, ожидаемая длина сжатого файла (усредненная по всем возможным файлам длины N) обязательно должна быть больше, чем N. [ необходима цитата ] Так что, если мы ничего не знаем о свойствах данных, которые сжимаем, мы могли бы вообще не сжимать их. Алгоритм сжатия без потерь полезен только тогда, когда мы с большей вероятностью сжимаем одни типы файлов, чем другие; тогда алгоритм может быть разработан для лучшего сжатия этих типов данных.

Таким образом, главный урок из этой аргументации заключается не в том, что человек рискует большими потерями, а просто в том, что нельзя всегда выигрывать. Выбор алгоритма всегда означает неявный выбор подмножества всех файлов, которые станут существенно короче. Это теоретическая причина, по которой нам нужны разные алгоритмы сжатия для разных типов файлов: не может быть никакого алгоритма, подходящего для всех типов данных.

«Уловка», которая позволяет алгоритмам сжатия без потерь, используемым для того типа данных, для которого они были разработаны, последовательно сжимать такие файлы до более короткой формы, заключается в том, что файлы, для которых предназначены алгоритмы, имеют некоторую форму легко моделируемой избыточности, которая алгоритм предназначен для удаления и, следовательно, относится к подмножеству файлов, которые этот алгоритм может сделать короче, тогда как другие файлы не будут сжаты или даже больше. Алгоритмы, как правило, специально настроены для определенного типа файла: например, программы сжатия звука без потерь плохо работают с текстовыми файлами, и наоборот.

В частности, файлы случайных данных не могут быть последовательно сжаты каким-либо мыслимым алгоритмом сжатия данных без потерь: действительно, этот результат используется для определения концепции случайности в теории алгоритмической сложности .

Доказано, что невозможно создать алгоритм, который может без потерь сжать любые данные. [15] Несмотря на то, что на протяжении многих лет было много заявлений о том, что компании достигли «идеального сжатия», когда произвольное количество N случайных битов всегда может быть сжато до N  - 1 бит, подобные утверждения можно безопасно отбросить, даже не глядя на них. дополнительные сведения о предполагаемой схеме сжатия. Такой алгоритм противоречит фундаментальным законам математики, потому что, если бы он существовал, его можно было бы многократно применять, чтобы без потерь уменьшить любой файл до длины 0. По этой причине якобы «идеальные» алгоритмы сжатия часто насмешливо называют «волшебными» алгоритмами сжатия.

С другой стороны, также было доказано [ необходима цитата ], что не существует алгоритма для определения того, является ли файл несжимаемым в смысле колмогоровской сложности . Следовательно, возможно, что любой конкретный файл, даже если он выглядит случайным, может быть значительно сжат, даже включая размер декомпрессора. Примером могут служить цифры математической константы « пи» , которые кажутся случайными, но могут быть сгенерированы очень маленькой программой. Однако даже при том, что невозможно определить, является ли конкретный файл несжимаемым, простая теорема о несжимаемых строках показывает, что более 99% файлов любой заданной длины не могут быть сжаты более чем на один байт (включая размер декомпрессора).

Математические основы [ править ]

Абстрактно алгоритм сжатия можно рассматривать как функцию от последовательностей (обычно октетов). Сжатие считается успешным, если результирующая последовательность короче исходной последовательности (и инструкций для карты декомпрессии). Чтобы алгоритм сжатия работал без потерь , карта сжатия должна формировать инъекцию от «простых» до «сжатых» битовых последовательностей.

Принцип голубятни запрещает взаимное соответствие между набором последовательностей длины N и любым подмножеством набора последовательностей длины N -1. Следовательно, невозможно создать алгоритм без потерь, который уменьшал бы размер каждой возможной входной последовательности.

Точки применения в реальной теории сжатия [ править ]

Разработчики реальных алгоритмов сжатия признают, что потоки с высокой энтропией информации не могут быть сжаты, и, соответственно, включают средства для обнаружения и обработки этого условия. Очевидный способ обнаружения - применение алгоритма необработанного сжатия и проверка того, меньше ли его выход, чем вход. Иногда обнаружение осуществляется эвристикой ; например, приложение сжатия может считать файлы, имена которых заканчиваются на «.zip», «.arj» или «.lha», несжимаемыми без какого-либо более сложного обнаружения. Обычный способ справиться с этой ситуацией - цитировать ввод или несжимаемые части ввода в выводе, минимизируя накладные расходы на сжатие. Например, застежка-молнияформат данных определяет «метод сжатия» «Сохраненный» для входных файлов, которые были дословно скопированы в архив. [16]

Испытание на миллион случайных цифр [ править ]

Марк Нельсон, в ответ на заявления о магических алгоритмах сжатия, появляющихся в comp.compression, сконструировал двоичный файл размером 415 241 байт с высокоэнтропийным содержимым и бросил публичный вызов в 100 долларов каждому, кто бы мог написать программу, которая вместе со своими входными данными могла бы быть меньше, чем предоставленные им двоичные данные, но иметь возможность восстановить их без ошибок. [17]

FAQ для comp.compression телеконференции содержит вызов Майка Голдман предлагают $ 5000 за программу , которая может сжимать случайные данные. Патрик Крейг принял вызов, но вместо того, чтобы сжимать данные, он разделил их на отдельные файлы, все из которых оканчивались цифрой 5., который не был сохранен как часть файла. Отсутствие этого символа позволяло результирующим файлам (плюс, в соответствии с правилами, размеру программы, которая их собирала повторно) быть меньше, чем исходный файл. Однако фактического сжатия не было, и информация, хранящаяся в именах файлов, была необходима для их повторной сборки в правильном порядке в исходном файле, и эта информация не была принята во внимание при сравнении размеров файлов. Таким образом, самих файлов недостаточно для восстановления исходного файла; имена файлов также необходимы. Патрик Крейг согласился с тем, что никакого значимого сжатия не произошло, но утверждал, что формулировка запроса на самом деле этого не требует. Полная история мероприятия, включая обсуждение того, была ли проблема решена технически, находится на Патрике Крейге.[18]

См. Также [ править ]

  • Сравнение файловых архиваторов
  • Сжатие данных
  • Дэвид А. Хаффман
  • Энтропия (теория информации)
  • Код на основе грамматики
  • Теория информации
  • Колмогоровская сложность
  • Список кодеков
  • Сжатие звука с преобразованием без потерь (LTAC)
  • Сжатие с потерями
  • Прекомпрессор
  • Универсальный код (сжатие данных)
  • Нормальный номер

Ссылки [ править ]

  1. ^ «Патентная информация LZW» . О Unisys . Unisys. Архивировано из оригинала на 2009-06-02.
  2. ^ Ахмед, Насир ; Mandyam, Giridhar D .; Маготра, Нирадж (17 апреля 1995 г.). «Схема на основе DCT для сжатия изображений без потерь» . Сжатие цифрового видео: алгоритмы и технологии 1995 . Международное общество оптики и фотоники. 2419 : 474–478. DOI : 10.1117 / 12.206386 . S2CID 13894279 . 
  3. ^ Komatsu, K .; Сезаки, Каору (1998). «Обратимое дискретное косинусное преобразование» . Материалы Международной конференции IEEE 1998 г. по акустике, обработке речи и сигналов, ICASSP '98 (каталожный номер 98CH36181) . 3 : 1769–1772 т. 3. DOI : 10.1109 / ICASSP.1998.681802 . ISBN 0-7803-4428-6. S2CID  17045923 .
  4. Салливан, Гэри (8–12 декабря 2003 г.). «Общие характеристики и конструктивные соображения для кодирования видео временного поддиапазона» . ITU-T . Группа экспертов по кодированию видео . Проверено 13 сентября 2019 .
  5. ^ Unser, M .; Блю Т. (2003). «Математические свойства вейвлет-фильтров JPEG2000» (PDF) . IEEE Transactions по обработке изображений . 12 (9): 1080–1090. DOI : 10.1109 / TIP.2003.812329 . PMID 18237979 . S2CID 2765169 .   
  6. ^ Bovik, Алан С. (2009). Основное руководство по обработке видео . Академическая пресса . п. 355. ISBN 9780080922508.
  7. ^ Альфред Дж. Менезес; Джонатан Кац; Пол К. ван Оршот; Скотт А. Ванстон (16 октября 1996 г.). Справочник по прикладной криптографии . CRC Press. ISBN 978-1-4398-2191-6.
  8. ^ Chanda, P .; Elhaik, E .; Бадер, JS (2012). «HapZipper: делиться популяциями HapMap стало еще проще» . Nucleic Acids Res . 40 (20): 1–7. DOI : 10.1093 / NAR / gks709 . PMC 3488212 . PMID 22844100 .  
  9. ^ Пратас, Д .; Пинхо, AJ; Феррейра, PJSG (2016). «Эффективное сжатие геномных последовательностей». Конференция по сжатию данных (PDF) . Snowbird, Юта.
  10. ^ Мэтт Махони (2010). «Объяснение сжатия данных» (PDF) . С. 3–5.
  11. ^ «Тест сжатия большого текста» . mattmahoney.net .
  12. ^ "Стандартный тест сжатия" . mattmahoney.net .
  13. ^ Визуализация степени сжатия и времени
  14. ^ «Инструмент анализа сжатия» . Бесплатные инструменты . Noemax Technologies.
  15. ^ «comp.compression Часто задаваемые вопросы (часть 1/3) / Раздел - [9] Сжатие случайных данных (WEB, Gilbert и другие)» . faqs.org .
  16. ^ "Спецификация формата файла .ZIP" . PKWARE, Inc., глава V, раздел J.
  17. ^ Нельсон, Марк (20.06.2006). «Повторный вызов миллиона случайных цифр» .
  18. ^ Крейг, Патрик. «Проблема сжатия $ 5000» . Проверено 8 июня 2009 .

Дальнейшее чтение [ править ]

  • Сайуд, Халид (2017-10-27). Введение в сжатие данных . Серия Морган Кауфманн в мультимедийной информации и системах (5 - е изд.). Морган Кауфманн . ISBN 978-0-12809474-7. (790 стр.)
  • Сайуд, Халид, изд. (2002-12-18). Справочник по сжатию без потерь (связь, сети и мультимедиа) (1-е изд.). Академическая пресса . ISBN 978-0-12390754-7. (488 стр.)

Внешние ссылки [ править ]

  • «Формат сжатия LZF» . github . Проверено 17 октября 2017 .
  • Фамдо, Нам. «Теория сжатия данных» . Сжатие данных . Проверено 17 октября 2017 .
  • «Сравнение без потерь» . База знаний Hydrogenaudio . 2015-01-05 . Проверено 17 октября 2017 .
  • «Аудиоформаты без потерь и с потерями для музыки» . Bobulous Central . 2003-11-06 . Проверено 17 октября 2017 .
  • «Тест сжатия изображений» . Архивировано 10 февраля 2013 года. обзор
    • Патент США № 7,096,360 , «[a] n« Метод частотно-временного сжатия данных », поддерживающий сжатие, шифрование, декомпрессию, дешифрование и сохранение множества двоичных цифр через частоты, где каждая частота представляет множество битов».
  • Image rars (графическое представление сжатия)