сжатие данных

advertisement
СЖАТИЕ ДАННЫХ
Общие методы сжатия данных
Разработано много методов сжатия данных, каждый из
которых имеет свои достоинства и недостатки.
Метод кодирования длины серии
Длинная последовательность одинаковых элементов
заменяется кодом, обозначающим повторяющийся
элемент, и число его повторений.
Метод относительного кодирования – используется
тогда, когда информация состоит из блоков данных,
которые незначительно отличаются друг от друга.
Пример – кадры фильма, следующие друг за другом.
Записываются различия между блоками, следующими
друг за другом.
Частотно-зависимое кодирование – длина кода
элемента информации обратно пропорциональна частоте
использования этого элемента. Это – коды переменной
длины. Давид Хаффман разработал алгоритм для
создания частотно-зависимых кодов. Поэтому почти все
частотно-зависимые коды, используемые сегодня, - коды
Хаффмана.
Каждый из рассмотренных методов сжатия данных:
кодирования длины серии, относительное кодирование и
частотно-зависимое кодирование имеет свою область
применения.
Более универсальной является система сжатия
Лемпеля-Зива- система, использующая кодирование с
адаптивным словарем. Эта система используется при
создании сжатых файлов, называемых zip – файлами.
Словарем является набор стандартных блоков, из
которых построено сообщение, которое нужно сжать.
Если бы мы хотели сжать текст на английском алфавите,
то такими стандартными блоками были бы буквы
алфавита. Если бы мы хотели сжать уже
закодированные данные, то стандартными блоками
были бы цифры 0 и 1. При адаптивном кодировании
словарь может изменяться в процессе кодирования.
В качестве примера рассмотрим алгоритм LZ77 –
частный случай алгоритма Лемпеля- Зива.
Начнем с простого цитирования начальной части
сообщения. Затем представим оставшуюся часть
сообщения в виде последовательности троек
(содержащих два целых числа, за которыми следует
символ из сообщения). Каждая такая тройка описывает,
как должна строиться следующая часть сообщения на
основе предыдущей. Следовательно, словарь, из
которого строится сообщение, состоит из самого
сообщения.
Например, сжатое сообщение xyxxyzy(5,4,x) состоит из
начального сегмента xyxxyzy, за которым следует
тройка (5,4,x).
Чтобы развернуть оставшуюся часть сообщения,
необходимо расшифровать тройку (5,4,x). Первое число
тройки показывает, на сколько символов нужно
вернуться назад в развернутой цепочке.
xy^xxyzy
Далее нужно добавить в конец развернутой цепочки
символы, находящиеся в этой позиции. Второе число
показывает, сколько символов нужно добавлять.
xy^xxyzy
xyxxyzyxxyz
В завершение добавляем в конец цепочки последний
символ тройки.
xyxxyzyxxyzx
Для того чтобы сжать сообщение с помощью алгоритма
LZ77, сначала переписываем начальный сегмент
сообщения, затем в этом сегменте ищем самую длинную
цепочку, которая совпадает с оставшейся частью
сообщения. К этой цепочке будет относиться первая
тройка.
Сжатие изображений
Растровые изображения представляются обычно 3 байта
на один пиксел.
Разработано много схем сжатия изображений
GIF(Graphic Interchange Format- формат графического
обмена). Сокращает количество цветов, которые могут
быть приписаны пикселу до 256. Это позволяет
представить значение каждого пиксела спомощью
одного байта вместо трех. Каждому коду при помощи
таблицы (палитры) ставится в соответствие
определенное сочетание красного, синего и зеленого
цветов. Одному из цветов используется значение
«прозрачный», то есть через любой участок
изображения, которому присвоен этот цвет виден фон.
Эта возможность и простота формата обусловили его
широкое использование в компьютерных играх, где
многочисленные изображения перемещаются по экрану.
Стандарт JPEG (Joint Photographic Experts Groupобъединенная группа экспертов в области фотографии)
принят производителями цифровых камер для цифровых
фотографий. Стандарт JPEG включает в себя несколько
способов представления изображения, у каждого своя
задача.
Когда требуется предельная точность используется
метод «без потерь», при котором хранится различие
между соседними пикселами, а не интенсивности
пикселов. Различия можно представить более
короткими кодами, чем значения. Различия
записываются с помощью кодов переменной длины. При
использовании этого метода сложно менять размеры
изображения, поэтому используется базисный стандарт
JPEG, который сокращает размер кода используя для
задания состояния пиксела два параметра – яркость и
цвет. Используется свойство – человеческий глаз более
чувствителен к изменению яркости, чем к изменению
цвета. Базисный формат распределяет изображение на
блоки размером четыре пиксела и записывается только
средний цвет каждого блока. В окончательном
представлении сохраняются все быстрые изменения
яркости, но при этом стираются быстрые изменения
цвета. Каждый блок из четырех пикселов задается
только шестью байтами (4 для яркости и 2 для цвета), а
не двенадцатью, как если один пиксел задается тремя
байтами.
Дополнительное пространство экономится при
записи изменений яркости и цвета, а нге их физических
значений. Различия записываются при помощи
математического метода, который называется
дискретным косинусным преобразованием.
Окончательный двоичный код затем сжимается при
помощи метода с кодом переменной длины.
С помощью базисного стандарта JPEG можно
кодировать высококачественные цветные изображения,
используя двоичный код, который занимает примерно в
двадцать раз меньше памяти. Чем формат «три байта на
пиксел», используемый во многих сканерах.
Представление звука
Базовое представление- при помощи отсчетов в
дискретные моменты времени.
8000 отсчетов в секунду – (дальяняя телефония)
44100 отсчетов в секунду – качественное звучание
на музыкальных компакт-дисках.
Для каждого отсчета -16 бит памяти (32 –для
стереозаписей)
Хранение одной секунды звучания требует более
миллиона битов.
В музыкальных сиетезаторах, компьютерных играх
используется система кодирования MIDI (Musical
Instrument Digital Interfase)
Для сжатия звука экспертной группой по
движущимся изображениям (The Motion Picture Experts
Group) разработаныа группа стандартов, один из
которых МР3 – позволяет достичь коэффициент сжатия
до 12.
Задание
1. Разверните сообщение
xyxxyzyxxyzx (0.0.w)(8.6.y)
2. Оцените избыточность кода КОИ-8 (кодирование одного символа текста с
использованием 1 байта) для кодирования текста на русском языке.
3. В велокроссе участвуют 779 спортсменов. Специальное устройство
регистрирует прохождение каждым из участников промежуточного финиша,
записывая его номер с использованием минимально возможного количества
бит, одинакового для каждого спортсмена. Каков информационный объем
сообщения, записанного устройством, после того как промежуточный финиш
прошли 280 спортсменов.
4. В двух деканатах университета в компьютере хранятся данные о
промежуточной сессии в виде текстовых файлов (КОИ-8). Запись о каждом
студенте состоит из 100 символов. Количество студентов одинаково и равно
по 100 человек. В первом деканате данные о каждом студенте хранятся в
виде отдельных файлов, во втором имеется один текстовый файл,
содержащий данные о всех студентах. Настройки файловой системы
компьютеров в деканате одинаковы. Размер кластера равен 4 блокам.
Одинаково ли количество места, занимаемого на внешнем носителями
файлами в деканатах.
Если объем занятого дискового пространства неодинаков, укажите в каком
деканате и во сколько раз больше объем занятого дискового пространства,
используемого для хранения данных.
Download