Например, эту статью можно закодировать с меньшим количеством битов, если принять за условие, что слово "сжатие" кодируется как "сж." Один популярный случай сжатия, с которым знакомы многие юзеры - формат ZIP, который, вместе с обеспечением сжатия, работает как архиватор, сохраняя множество файлов в отдельный конечный файл.
Как в случае с какой-либо связью, связь сжатых данных работает только тогда, когда и отправитель, и получатель информации понимают схему кодирования. Например, этот текст имеет смысл, только если получатель понимает, что здесь интерпретируются символы, представляющие русский язык. Точно так же сжатые данные могут быть поняты, только если метод расшифровки известен получателю. Сжатие полезно, потому что помогает уменьшить потребление дорогих ресурсов, типа пропускной способности передачи данных или места на жёстком диске. С другой стороны, сжатые данные должны быть декомпрессированы для просмотра (или прослушивания), и эта дополнительная обработка может быть вредна для некоторых приложений. Например, схема сжатия видео может требовать дорогих аппаратных средств для видео, которое будет декомпрессировано достаточно быстро для просмотра, т.к. оно декомпрессируется (опция декомпрессации видео полностью проходит перед просмотром, это может быть неудобно, и требует места для декомпрессированного видео). Дизайн схем сжатия данных именно поэтому вовлекает обмены среди различных факторов, включая степень сжатия, количество введённого искажения (при использовании схемы сжатия с потерями) и вычислительные ресурсы, требуемые для того чтобы сжать и разжать данные.
Сжатие без потерь против С потерями Алгоритмы сжатия без потерь обычно эксплуатируют статистическую избыточность таким способом, чтобы представить данные отправителя более кратко, но однако совершенно. Это сжатие возможно потому, что большинство реально-мировых данных имеет статистическую избыточность. Например, в английском тексте, буква 'e' намного более обычна чем 'z', и вероятность, что буква 'q' будет сопровождаться буквой 'z', очень мала. Другой вид сжатия, названный сжатием данных с потерями, возможно если некоторая потеря точности приемлема. Например, человек, рассматривающий фото- или телевидеосцену, мог бы не заметить, что некоторые из самых прекрасных деталей удалены или не представлены совершенно (то есть могут даже не заметить экспонаты сжатия). Точно так же 2 аудиоклипа могут быть восприняты слушателем одинаково, даже при том, что один пропускает детали из другого. Алгоритмы сжатия данных с потерями вводят относительно незначительные различия и представляют изображение, видео или аудио, используя меньше битов. Схемы сжатия без потерь обратимы, так что первоначальные данные могут быть восстановлены, в то время как схемы с потерями принимают некоторую потерю данных, чтобы достигнуть более высокого сжатия. Однако, алгоритмы сжатия данных без потерь не всегда смогут сжать некоторые файлы; действительно, любой алгоритм сжатия не обязательно должен сжать какие-либо данные, не содержащие никаких заметных образцов. Попытки сжать данные, который были уже сжаты, поэтому обычно будут кончаться расширением, т.к. будут попытки сжать зашифрованные данные. Практически, сжатие данных с потерями также будет идти до точки, где сжатие снова не работает, хотя чрезвычайный алгоритм с потерями, который например всегда удаляет последний байт файла, всегда будет сжимать файл до пункта, где совсем пусто. Пример сжатия без потерь против с потерями - следующая строка: 888883333333 Эта строка может быть сжата так: 8[5]3[7] Интерпретируемая как "5 восьмёрок, 7 троек", первоначальная строка абсолютно та же, только написана в меньшей форме. В системе с потерями, использующей вместо этого 83 , первоначальные данные потеряны ради выгоды с меньшим размером файла.
Приложения Вышеупомянутое - очень простой пример кодирования продолжительности выполнения, где большие выполнения значений последовательных идентичных данных заменены простым кодом со значением данных и продолжительностью выполнения. Это пример сжатия данных без потерь. Он часто используется, чтобы оптимизировать место на диске в офисных компьютерах или для лучшего использования пропускной способности подключения в компьютерной сети. Для символических данных типа электронных таблиц, текста, ехе-программ и т.д., без потерь является основным, потому что нельзя допускать изменения даже отдельного бита (кроме некоторых ограниченных случаев). Для визуальных и аудиоданных некоторую потерю качества можно допустить, не теряя необходимый характер данных. Используя в своих интересах ограничения человеческой сенсорной системы, можно сохранить много места при создании файла, который почти неотличим от оригинала. Эти методы сжатия данных с потерями типично предлагают сделку с тремя путями между скоростью сжатия, размером сжатых данных и потерей качества. Сжатие изображения с потерями используется в цифровых камерах, сильно увеличивая ёмкость их памяти при слабом деградировании качества картинки вообще. Точно так же цифровые видеодиски DVD используют кoдeк MPEG-2 с потерями для сжатия видео. В аудио сжатии с потерями используются методы психoaкустики, чтобы удалить неслышимые (или менее слышимые) компоненты сигнала. Сжатие человеческой речи часто выполняется с даже более специализированными методами, так что "сжатие речи" или "кодирование голоса" иногда различается как отдельная дисциплина от "аудиосжатия". Различные стандарты сжатия аудио и речи перечислены вместе с аудиокoдeками. Сжатие голоса используется в Internet-телефонии например, в то время как аудио сжатие используется для риппинга компакт-дисков и декодируется аудиоплеерами.
Tеория Теоретический фон сжатия обеспечивается информационной теорией (которая близко связана с алгоритмической информационной теорией) и теорией искажения нормы. Эти области изучения были по существу созданы Клодом Шанноном, который издавал фундаментальные газеты по этой теме в конце 1940-ых и в начале 1950-ых. Дойл и Кaрлcoн (2000) писали, что сжатие данных "имеет одну из самых простых и самых изящных теорий во всей истории проектирования". Теория шифрования и кодирования также близко связаны. Идея относительно сжатия данных глубоко связана со статистическим выводом. Многие системы сжатия данных без потерь можно рассмотреть в терминах модели с четырьмя стадиями. Системы сжатия данных с потерями типично включают даже больше стадий, включая, например, прогнозирование, преобразование частоты и квантизацию. Методы сжатия Lempel-Ziv (LZ) - среди самых популярных алгоритмов для хранения без потерь. DEFLATE - разновидность LZ, оптимизированная для скорости декомпрессии и коэффициента сжатия, хотя сжатие может быть медленным. DEFLATE используется в PKZIP, gzip и PNG. LZW (Lempel-Ziv-Welch) используется в изображениях GIF. Также примечательны методы LZR (LZ-Renau), которые служат основой для метода Zip. Методы LZ используют модель сжатия на основе таблиц, где табличными вводами заменяют повторные строки данных. Для большинства методов LZ эта таблица производится динамически от более ранних данных при вводе. Сама таблица часто кодируется в Huffman (например, SHRI, LZX). Текущая схема кодирования, основанная на LZ, которая выполняется хорошо - LZX, используемая в формате CAB Microsoft'а. Очень хорошие компрессоры используют вероятностные модели, прогнозы которых соединены в алгоритм, названный арифметическим кодированием. Арифметическое кодирование, изобретенное Джoрмой Риссaнeном и превращённое в практический метод Виттеном, Неалом и Клeaри, достигает превосходного сжатия в знаменитом алгоритме Huffman, и показывает себя особенно хорошо с адаптивными задачами сжатия данных, где прогнозы строго контекстно-зависимы. Арифметическое кодирование используется в биуровнeвом стандарте сжатия изображений JBIG и стандарте сжатия документов DjVu. Система текстового ввода, Dasher, является обратно-арифметическим кодировщиком. Мэтт Мэхоней, один из 3-х основателей Hutter Prize, утверждает, что "Сжатие Эквивалентно Общим Сведениям".
Сравнительное Независимое сравнение различных методов сжатия данных (Результаты и Программное обеспечение, Франц. Airelle, 2007). Текстовые файлы, типа .htm или .txt, можно сильно сжать. Некоторые файлы уже сжаты (например mp3 или .zip), так что норма сжатия таких файлов слабая. Из-за дополнения данными заголовка, часто уменьшение возвращается в таком сжатии, заставляя файл фактически быть немного большим для хранения. В-общем, три лучших проверенных метода - rk, rar и 7z. WinRK и WinRar - коммерческое программное обеспечение, с 7-zip - бесплатный, открытый ресурс (лицензия LGPL) и может использоваться на Linux. |