Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

8. Декодирование LZW

.docx
Скачиваний:
17
Добавлен:
19.06.2023
Размер:
32.74 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра информационных систем

отчЁт

по практической работе №8

по дисциплине «Теория информации, данные, знания»

Тема: Декодирование LZW.

Студент гр. 93—

Преподаватель

Писарев И. А.

Санкт-Петербург

2020

Цель работы

Сформулировать ответы на вопросы с указанием источников информации.

Вопросы по теме:

  1. В каких популярных программах реализован метод LZW?

  2. Гарантирует ли метод LZW отсутствие потерь или искажений данных?

  3. Опишите метод декодирования Лемпеля—Зива—Велча (LZW).

Решить задачи:

  1. Декодируйте сообщение «99 256 257 258» методом LZW. Приведите описание последовательности выполненных действий декодирования с комментариями выполняемых шагов алгоритма.

  2. Декодируйте сообщение «65 68 256 257 68 260» методом LZW. Приведите описание последовательности выполненных действий.

Выполнение работы

Вопрос 1.

В настоящее время используется в файлах формата TIFF, PDF, GIF, PostScript и других, а также отчасти во многих популярных программах сжатия данных (ZIP, ARJ, LHA). (2, С. 70)

Вопрос 2.

Данный тип компрессии не вносит искажений в исходный графический файл, и подходит для сжатия растровых данных любого типа. (2, С. 69)

Вопрос 3.

Декодер начинает с заполнения словаря первыми символами алфавита (их, обычно, 256). Затем он читает входной файл, который состоит из указателей в словаре, использует каждый указатель для того, чтобы восстановить несжатые символы из словаря и записать их в выходной файл. Кроме того, он строит словарь тем же методом, что и кодер.

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

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

Задача 1.

Вход

Запись в словарь

Выход

Полная

Частичная

99 (c)

256: c�

c

256 (c�)

256: cc

257: cc�

cc

257 (cc�)

257: ccc

258: ccc�

ccc

258 (ccc�)

258: cccc

259: cccc�

cccc

Выходное сообщение: cccccccccc.

Задача 2.

Вход

Запись в словарь

Выход

Полная

Частичная

65 (A)

256: A�

A

68 (D)

256: AD

257: D�

D

256 (AD)

257: DA

258: AD�

AD

257 (DA)

258: ADD

259: DA�

DA

68 (D)

259: DAD

260: D�

D

260 (D�)

260: DD

261: DD�

DD

Выходное сообщение: ADADDADDD.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. Сэломон Д. Сжатие данных, изображений и звука. М.: Техносфера. 2004. 368 с.

  2. Гошин Е.В. Теория информации и кодирования. Самара: Самарский университет. 2018. 124 с.