1 / 15

Сжатие информации

Сжатие информации. Сжатие - более эффективное представление информации, другими словами “выжимание воздуха” из данных Сжатие бывает без потерь и с потерями Сжатие без потерь . Изображение, полученное после декодирования, полностью совпадает с первоначальным

mayes
Download Presentation

Сжатие информации

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Сжатие информации Сжатие - более эффективное представление информации, другими словами “выжимание воздуха” из данных Сжатие бывает без потерь и с потерями • Сжатие без потерь. Изображение, полученное после декодирования, полностью совпадает с первоначальным • Сжатие с потерями. Часть информации теряется в процессе сжатия. Принцип сжатия с потерями основан на ограниченных возможностях человеческого зрения. Все потери информации лежат в границах, когда человеческий глаз не видит разницу между первоначальным изображением и декомпрессированным сжатым изображением, содержащим ошибки сжатия с потерями

  2. Сжатие без потерь • Групповое сжатие • Кодирование методом Хаффмана • Схема сжатия LZW • Арифметическое сжатие

  3. Групповое сжатие • Серии повторяющихся величин заменяются единственной величиной и количеством • Например: abbbbbbccdddttddd => 1a6b2c3d2t3d • Этот алгоритм просто реализуется и хорошо работает с длинными сериями повторяющихся величин. • Например: для изображений с большими областями постоянной яркости или цвета

  4. Одна из популярных реализаций группового сжатия – PackBits, используемая для bitmap данных на Apple Macintosh. Предполагая 8-битные данные, PackBits кодирует регулярные величины двумя битами. Для повторяющихся величин первый байт содержит n, (от (-127) до (-1)) количество повторений (-n+1). Второй байт содержит повторяющуюся величину. • Неповторяющиеся величины обозначаются однобайтовым кодом m (от 0 до 127), он представляет длину последовательности минус 1 (abcde m=4). Далее сама последовательность. • Групповое кодирование используется в таких форматах, как MacPaint, TIFF, GEM, PCX, FLI

  5. Кодирование методом Хоффмана (1952) • Данные заменяются более эффективнымикодами • Этот подход, созданный для текстовыхфайлов, породил множество вариантов • Основная схема – присвоение двоичного кодакаждой уникальной величине, причем длинаэтих кодов различна • Более короткие коды неиспользуются для более часто появляющихсявеличин

  6. Значение кодов хранятся в таблице перекодировки Например: abbbcccddeeeeeeeeef Частота, с которой повторяются уникальные величины a:1 b:3 c:3 d:2 e:9 f:1

  7. a:1 b:3 c:3 d:2 e:9 f:1 Для формирования минимального кода используется двоичное дерево. Алгоритм объединяет вместе элементы, появляющиеся наименее часто; затем пара рассматривается как один элемент и их частоты объединяются. Это повторяется до тех пор, пока все элементы не объединяются в пары Наиболее редко используемые значения a и f, так что они становятся первой парой; a - присваивается нулевая ветвь, а f - первая. Это означает, что 0 и 1 будут младшими битами кодов для а и f. Более старшие биты будут получены из дерева по мере того, как оно будет построено. Затем частоты этих первых двух суммируются 1+1=2. Поскольку частота (этих а и f) = 2, объединяем пару с d у которой частота тоже 2. Исходной паре присваивается нулевая ветвь дерева, а - ветвь 1. Таким образом код для а заканчивается на 00, f - 01; d - заканчивается на 1 и будет на один бит короче по сравнению с кодами для а и f

  8. Эффективность алгоритма Хаффмана изменяется с точностью алгоритма и типом изображения. Алгоритм достигает сжатия 8:1. • Кодирование по Хаффману нуждается в точной статистике, поэтому для обеспечения правильной работы, алгоритм часто реализуется в два прохода: • в первый проход создается статистическая модель; • во второй - кодируются данные • В результате, и благодаря тому, что коды переменной длины требуют больше времени для обработки компрессии и декомпрессии сжатие по Хаффману сравнительно медленный процесс

  9. Схема сжатия LZW (1984) • LZW - более современный алгоритм сжатия. В отличие от схемы Хаффмана, перед кодированием не требуется создавать таблицу кодов. Начиная с простой таблицы кодов алгоритм формирует более эффективную таблицу по мере продвижения. Этот алгоритм является адаптивным • LZW начинается с таблицы с одним элементом кода для каждой возможной величины (для восьми бит - 256 элементов). Затем она добавляет в таблицу данные для каждого уникального имени, которое обнаруживает. Необходимо формировать максимальную длину таблицы потому необходимо знать, какой длины код может быть представлен. (Некоторые реализации LZW допускают переменную длину)

  10. Например: ababaaacaaaad • Для простоты: каждая буква - два бита (всего четыре буквы). Начальная кодовая таблица: а:00, b:01, c:10, d:11. LZW ищет самую длинную последовательность. Он находит а и распознает, затем проверяет ab и не распознает. Тогда он заводит код для этой величины. а(000) и делает новый элемент для величин, которые не распознает a:000, b 001, c:010, d:011, ab:100 • Шифратор затем берет последнюю величину b и проверяет последовательность со следующей величиной. ba - не распознается. Заводится код для ba. • Теперь время для “хорошего этапа”. Шифратор и дешифратор могут определить следующий элемент ab. Трехбитный код заменяет два двухбитных • Типичные коэффициенты сжатия при LZW от 1:1 до 3:1, хотя некоторые изображения сжимаются 10:1. Изображение с “шумом” плохо сжимаются. • LZW используется в gif и tiff

  11. Арифметическое сжатие • Арифметическое сжатие, подобно кодированию Хаффману, использует более короткие коды для часто появляющихся участков и более длинные для редко появляющихся. Это более эффективный алгоритм, хотя он (подобно LZW) сжимает последовательность величин, а не сами величины. Арифметическое сжатие близко подходит к теоретическим пределом для алгоритмов сжатия без потерь • Возьмем для примера, множество значений пикселей представленных буквами. Предположим, что каждый пиксель в 1900-пикселовом изображение имеет одну из шести величин, и они появляются с частотами: a:100, b:300, c:300, d:200, f:100

  12. a:100, b:300, c:300, е:900 d:200, f:100 • Один из способов определения состояния этой последовательности задание вероятностей с которой появляются эти пиксели P(a)=0.0526 P(b)=0.1579 P(c)=0.1579 P(d)=0.1052 P(e)=0.4737 P(f)=0.0526 • Серия пикселей, например eb, будет иметь вероятность P(e) x P(b)

  13. Проблема, возникающая при этом задании в том, что вероятности не уникальны P(b)=P(c) x P(eb)=P(ec) • Однако, если вероятность рассматривать как длину, то величину b можно представить сегментом от 0,0526 до 0,2105. Длина этого сегмента вероятность P(b). • Величина c имеет ту же вероятность, что и b, но в другом диапазоне от 0,2105 до 0,3684. Теперь можно представить однозначно любую величину числом, любым, но принадлежащим выбранному диапазону. Например, 0,25 указывает величину c. • В данном случае достаточно двух цифр • Для е от 0.4736 до 0.9473 можно выбрать 0.5 • Более широкий диапазон, больше вероятность, следовательно, меньше знаков

  14. Для представления последовательности из двух символов, необходимо разбить интервал для первого символа • Для ebот 0.4986 до 0.5733 • Для кодирования достаточно 0,50

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

More Related