
- •Классифкация алгоритмов компрессии данных.
- •Компрессия данных. Метод Running и его модификации.
- •Компрессия данных. Метод lzw.
- •Компрессия данных. Метод rle – класса в двоичной системе. Оптимизация.
- •Компрессия данных. Метод Huffman-а.
- •Компрессия данных. Метод арифметического кодирования.
- •Графические форматы. Алгоритмы сжатия графической информации.
- •Сжатие графической информации. Фракталы.
- •Сжатие видео- и аудио- информации.
- •Криптография. Классификация криптосистем и алгоритмов шифрования.
- •Криптография. Алгоритм rsa.
- •Двоичные коды с обнаружением и коррекцией одиночных ошибок. Графическая интерпретация.
- •13. Коды Хемминга. Помехоустойчивость. Схема авто коррекции данных.
- •14. Коды Хемминга для разной длины кодовых слов.
- •Фонетические алфавиты. Алфавит икао/icao.
- •Реализация составных операций в языке Ассемблер. Условный оператор в полном и сокращенном (одна ветвь) виде.
- •Классификации устройств памяти (физических носителей).
- •Основные виды памяти. Организация их взаимодействия с системой.
- •Адресация памяти в эвм.
- •Взаимодействие смежных уровней иерархической организации памяти эвм.
- •Обоснование принципа локальности при работе созу.
- •Стратегии замещения страниц при работе созу.
- •Преимущества от появления виртуальной памяти.
- •Понятия Микропрограммы и Микрооперации.
- •Роль прерываний в эвм. Их классификация.
- •Специализированные процессоры ввода-вывода (каналы).
- •Типы периферийных устройств, подключаемых к мультиплексному каналу.
- •Различия селекторного и мультиплексного каналов.
Классифкация алгоритмов компрессии данных.
Неискажающие (loseless) методы сжатия гарантируют, что декодированные данные будут в точности совпадать с исходными;
Искажающие (lossy) методы сжатия (называемые также методами сжатия с потерями) могут искажать исходные данные, например за счет удаления несущественной части данных, после чего полное восстановление невозможно.
Первый тип сжатия применяют, когда данные важно восстановить после сжатия в неискаженном виде, это важно для текстов, числовых данных и т. п. Полностью обратимое сжатие, по определению, ничего не удаляет из исходных данных. Сжатие достигается только за счет иного, более экономичного, представления данных.
Второй тип сжатия применяют, в основном, для видео изображений и звука. За счет потерь может быть достигнута более высокая степень сжатия. В этом случае потери при сжатии означают несущественное искажение изображения (звука) которые не препятствуют нормальному восприятию, но при сличении оригинала и восстановленной после сжатия копии могут быть замечены.
Компрессия данных. Метод Running и его модификации.
Это самый простой из методов упаковки информации. В исходной строке (сообщении) отыскиваются достаточно длинные серии следующих подряд друг за другом одинаковых символов, которые затем заменяются на более короткую комбинацию:
Алфавит = {A…Z} (26 символов)
Message = ”ABBBCCCCCCCDEFG” (15 символов)
Code_message = ”ABBB Х1 Х2 Х3 DEFG”
Х1 – специальный символ-метка, например, отсутствующий в исходной строке (M), по которому декодировщик узнает, что в этом месте нужно сделать обратную замену.
Х2 – сам тиражируемый символ (C).
Х3 – счетчик повторов (должен быть задан символами того же алфавита, в данном примере длина серии ССССССС равна 7, используем 7-й символ алфавита abcdefG) Получается, что при наилучшем раскладе удастся сжать 26 символов до 3.
Code_message = ”ABBB M C G DEFG”
Осталось только передать, какой символ выступает в роли метки. Проще всего добавить его на первое место в сообщении:
Code_message = ”MABBB M C G DEFG” (12 символов)
Ratio = 12/15 *100% = 80% (всегда считаем выгоду)
Компрессия данных. Метод lzw.
История этого алгоритма начинается с опубликования в мае 1977 г. Дж. Зивом (Jacob Ziv) и А. Лемпелем (Abraham Lempel) статьи в журнале "Информационные теории" под названием "IEEE Trans". В последствии этот алгоритм был доработан Терри А. Велчем (Terry Archer Welch) и в окончательном варианте отражен в статье "IEEE Compute" в июне 1984 . В этой статье описывались подробности алгоритма и некоторые общие проблемы с которыми можно столкнуться при его реализации. Позже этот алгоритм получил название - LZW (Lempel - Ziv - Welch).
Алгоритм LZW представляет собой алгоритм кодирования последовательностей неодинаковых символов.
M = "Класс TSuperCollection был порожден от TCollection" (50 символов)
Алфавит явно расширен = {а…яА…Яa…zA…Z…}
В сообщении обнаружен повтор. Закодируем его по схожему принципу:
C = "Класс TSuperCollection был порожден от T Х1 Х2 Х3" (50 символов)
Х2 – в этот раз данное поле содержит указатель на начало оригинальной серии
(13-я позиция = символ л)
C = "MКласс TSuperCollection был порожден от T M л и" (44 символа)
Ratio = 44/50 *100% = 88%
Очевидным преимуществом алгоритма является то, что нет необходимости включать таблицу кодировки в сжатый файл (самообучающийся алгоритм). Другой важной особенностью является то, что сжатие по алгоритму LZW является однопроходной операцией.
При компьютерной реализации обычно генерируется таблица замен для всех комбинаций из 3,4,5 и т.д. найденных последовательностей.