Главная страница
Навигация по странице:

  • Учебная информация Сжатие

  • Алгоритмы сжатия без потерь

  • Алгоритмы сжатия, использующие исключение повторов

  • Пример . Сжатие Исходные данные

  • 10 15

  • 33 33 33 33 33 33 33

  • Сжатые данные

  • Лабораторная работа №8. Лабораторная работа 8 Сжатие данных. Алгоритм rle


    Скачать 175.98 Kb.
    НазваниеЛабораторная работа 8 Сжатие данных. Алгоритм rle
    Дата13.11.2022
    Размер175.98 Kb.
    Формат файлаdocx
    Имя файлаЛабораторная работа №8.docx
    ТипЛабораторная работа
    #785724

    Лабораторная работа № 8

    Сжатие данных. Алгоритм RLE.

    Цель работы: Освоение терминологии, используемой при сжатии данных, характеристик алгоритмов сжатия данных, принципов работы алгоритмов сжатия без потерь, детальное освоение алгоритма сжатия без потерь, использующего исключение повторов (RLE).

    Задание

    1. Прочитать учебную информацию, разобрать примеры решения задач.

    2. В соответствии со своим номером варианта, решить задания из каждого блока.

    3. В отчет включить решенные задачи.



    № Варианта

    Задание



    Упаковать алгоритмом RLE следующие данные: 00000000000001СA352266664832BF16541940894316940432410990870679006469408940480DAEBF

    Распаковать сжатые алгоритмом RLE графического формата РСХ следующие данные:CF363523C6C2C0B5D012



    Упаковать алгоритмом RLE графического формата РСХ следующие данные:1010101010FFFFFFFF00FFEF0001EFEFEFCFCFF000000FF00102547115640356401564

    Распаковать сжатые алгоритмом RLE графического формата РСХ следующие данные:C1FFC5EFC3C2A1D0BFBEC1C6C3FF



    Упаковать алгоритмом RLE графического формата РСХ следующие данные: 0000000000000111111111111111111111FFFFFFA0000A12 DDDB1B1B1B1B1B1BC1C0

    Распаковать сжатые алгоритмом RLE графического формата РСХ следующие данные:25369568C426B3A7C9EFD196



    Упаковать алгоритмом RLE графического формата РСХ следующие данные:00000200000003BAC52355564832CF09832498732409809328767373737373D0C0B0A0

    Распаковать сжатые алгоритмом RLE графического формата РСХ следующие данные: C1C123645546A36FE1C0



    Упаковать алгоритмом RLE графического формата РСХ следующие данные: 02000004000001D03245674616416ADC2AD1C12424242424 24242424242424442424242424

    Распаковать сжатые алгоритмом RLE графического формата РСХ следующие данные: ADAEBABF00C1FEC2C3E4C5C0C1E4



    Упаковать алгоритмом RLE графического формата РСХ следующие данные: BD2F154FDBA1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1 354321564324564534FF534534DDCFCFCFCFC0C1

    Распаковать сжатые алгоритмом RLE графического формата РСХ следующие данные:C4000100C1FEC3FFC1CFC1FFC1CFC1FFC1CF



    Упаковать алгоритмом RLE графического формата РСХ следующие данные:02000004000001BABB22FFFFFEFEFCFC4812EFF0F0F0F0F0D0D0D0D0D0B0B1A0A0A1

    Распаковать сжатые алгоритмом RLE графического формата РСХ следующие данные: CF363523C6C2C0B5D012D266531312C1C1A5



    Упаковать алгоритмом RLE графического формата РСХ следующие данные:BABABABABABBABABABABABBABABABB687064701890434836048016401AD6C4ADC6146A4DC63A4C6486

    Распаковать сжатые алгоритмом RLE графического формата РСХ следующие данные:0112358C15D025C1C6C2FE



    Упаковать алгоритмом RLE графического формата РСХ следующие данные:DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD03245674616416ADC2AD1C1DFBEDDFBEDFEBEFFCD

    Распаковать сжатые алгоритмом RLE графического формата РСХ следующие данные:D266531312C1C1A5



    Упаковать алгоритмом RLE графического формата РСХ следующие данные:01BD2F154FDBE01015FDE01ED1001A0A101C61EF01D0113333333333333334

    Распаковать сжатые алгоритмом RLE графического формата РСХ следующие данные: D0DEA0C1D0FF363523C6C1C5AA



    Упаковать алгоритмом RLE графического формата РСХ следующие данные: 408ADF70ADF604ADF19F8D400E022222222223333333334544444545B554555444A4DFFDFDF4A4A4

    Распаковать сжатые алгоритмом RLE графического формата РСХ следующие данные:ADAEBABFBDC6C1C5C0123456789ABCDEFF



    Упаковать алгоритмом RLE графического формата РСХ следующие данные:01BD2F154FDBE01015FDE01ED1001A0A101C61EF01D0113333333333333334

    Распаковать сжатые алгоритмом RLE графического формата РСХ следующие данные:011011A2B2C2D2C1FFD321



    Упаковать алгоритмом RLE графического формата РСХ следующие данные:DBAEFDBAFDABFDBAEDFABEDFAEBDFEABDFABEDFFADBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAEBDDBAEBDF

    Распаковать сжатые алгоритмом RLE графического формата РСХ следующие данные:D1A0A1A2B2C1C2C3C4C5C6B6B715



    Упаковать алгоритмом RLE графического формата РСХ следующие данные:3416970316ADBEFEFABD374A90273296341204793240514134510350134510435014354242424242424242

    Распаковать сжатые алгоритмом RLE графического формата РСХ следующие данные:D0DEA0C1D0FF363523C6C1C5AAADAEBABFBDC6C1C5C0123456789ABCDEFF



    Упаковать алгоритмом RLE графического формата РСХ следующие данные:00000000000001CA352266664832BF16541940894316946940432410990870679006469408940480DAEBFA

    Распаковать сжатые алгоритмом RLE графического формата РСХ следующие данные: 0112358C15D025C1C6C2FE1A0A1A2B2C1C2C3C4C5C6B6B715



    Упаковать алгоритмом RLE графического формата РСХ следующие данные: 00000200000003BAC52355564832CF09832498732409809328767373737373D0C0B0A0

    Распаковать сжатые алгоритмом RLE графического формата РСХ следующие данные: 25369568C426B3A7C9EFD196



    Упаковать алгоритмом RLE графического формата РСХ следующие данные: 02000004000001BABB22FFFFFEFEFCFC4812EFF0F0F0F0F0D0D0D0D0D0B0B1A0A0A1

    Распаковать сжатые алгоритмом RLE графического формата РСХ следующие данные: D1A0A1A2B2C1C2C3C4C5C6B6B715



    Упаковать алгоритмом RLE графического формата РСХ следующие данные: DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD03245674616416ADC2AD1C1DFBEDDFBEDFEBEFFCD

    Распаковать сжатые алгоритмом RLE графического формата РСХ следующие данные: C1FFC5EFC3C2A1D0BFBEC1C6C3FF



    Упаковать алгоритмом RLE графического формата РСХ следующие данные: DBAEFDBAFDABFDBAEDFABEDFAEBDFEABDFABEDFFADBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAEBDDBAEBDF

    Распаковать сжатые алгоритмом RLE графического формата РСХ следующие данные: 61C1CAC1DBCEC1DCC1FAC1C1C1FBC624ACC4AD



    Упаковать алгоритмом RLE графического формата РСХ следующие данные: 3416970316ADBEFEFABD374A90273296341204793240514134510350134510435014354242424242424242

    Распаковать сжатые алгоритмом RLE графического формата РСХ следующие данные: C398C1C500C611C2DEA1CCCDC1DC

    Учебная информация

    Сжатие данных в вычислительной технике и системах связи (используются также термины архивация данных, когда сжатие применяется к готовым документам; программные средства, выполняющие эти операции, называют архиваторами, например, WinZip, WinRAR, WinArj, PKZIP.EXE, RAR.EXE, ARJ.EXE; используется и синонимы слова сжатие упаковка, компрессия) - это процесс кодирования массивов данных таким образом, чтобы объем занимаемый полученным кодом в запоминающих устройствах, был бы, по возможности минимальным.

    При этом процесс сжатия должен быть полностью или частично обратимым, т.е. должна существовать обратная процедура, называемая декодированием (распаковкой, разархивацией), позволяющая восстановить из сжатых данных набор данных, в той или иной мере соответствующий исходным данным.

    Такое определение под сжатием понимает следующие процедуры преобразования данных: неискажающее сжатие цифровых данных, сжатие цифровых данных с регулируемыми потерями, получение экономного представления входного аналогового сигнала.

    При неискажающем сжатии цифровых данных исходный массив цифровых данных (исходное сообщение) представляется таким образом, чтобы получить минимизированный объем закодированных данных. Сжатие должно быть полностью обратимым, т.е. должна существовать процедура, позволяющая восстановить из сжатых данных точную копию исходного массива данных. Подчеркивая эту особенность, такой процесс часто называют сжатием без потерь, обратимым сжатием. Исходные данные представляются каким-либо двоичным кодом: коды символов текста, команд процессора, яркости точек растрового изображения, амплитуды аналогового сигнала, ссылки на другие фрагменты данных.

    При сжатии цифровых данных с регулируемыми потерями обеспечивается экономное представление цифровых данных, но процедура сжатия не является полностью обратимой, т.е. распаковка не позволяет во всех случаях восстановить исходный массив данных до отдельного бита. Как правило, потери допускаются только в той части данных, которая не является существенной при дальнейшем использовании распакованного сообщения. Ясно, что в общем случае «существенность» потерь данных оценить невозможно, поэтому сжатие с потерями допускается только для данных, которые допускают некоторую потерю. Обычно это аналоговые по своей природе данные, например, оцифрованные изображения или звук: цифровые фотографии, видеоряды, звукозаписи.

    Алгоритмы сжатия без потерь

    Для сжатия без потерь доказаны следующие теоремы.

    1. Для любой последовательности данных существует теоретический предел сжатия, который не может быть превышен без потери части информации.

    2. Для любого алгоритма сжатия можно найти такую последовательность данных, для которой он обеспечит лучшую степень сжатия, чем другие алгоритмы.

    3. Для любого алгоритма сжатия можно найти такую последовательность данных, для которой данный алгоритм вообще не позволит получить сжатия.

    Из сформулированных теорем следует, что наивысшую эффективность алгоритмы сжатия демонстрируют для разных типов данных и разных объемов данных. Поэтому разработано в настоящее время достаточно большое количество алгоритмов сжатия без потерь. Наиболее распространенные алгоритмы сжатия без потерь приведены на рис. 1.


    Алгоритмы сжатия, использующие исключение повторов

    Алгоритмы сжатия, использующие исключение повторов (RLE = Run-Length Encoding) чрезвычайно просты и ориентированы на быстрое сжатие данных, содержащих много идущих подряд одинаковых символов.

    В основу алгоритмов RLE положен принцип выявления групп подряд идущих одинаковых символов и замены их структурой, в которой указывается код символа и число повторов, т.е. группа идущих подряд одинаковых символов заменяется на пару кодов вида <код символа; число 13 повторов>. Максимальное число одинаковых символов, которое можно закодировать одной такой парой, определяется длиной кода числа повторов.

    В качестве примера рассмотрим реализацию RLE а графическом формате PCX. Группа повторяющихся байтов заменяется на байт-счетчик и байт данных. В байте-счетчике старшие два бита содержат единицы, в младших шести битах хранится число повторов. Неповторяющиеся значения, меньшие 0C0h = 0C016 = 110000002, записываются в сжатые данные без изменений. Для неповторяющихся значений, больших 0C016 = 110000002, (т.е. с двумя единицами в старших разрядах) такой подход недопустим, так как при распаковке такой байт будет восприниматься как байт-счетчик повторов. Поэтому такие байты при записи в сжатый поток предваряются байтом-счетчиком с числом повторов, равным единице (11000001 = С116).

    Проблему при сжатии алгоритмами RLE представляют данные, содержащие незначительное количество повторяющихся символов. К одиночным символам также приходится добавлять счетчик повторов, что вместо сжатия дает увеличение объема данных. Поэтому в практических реализациях алгоритмы RLE несколько усложняются, чтобы уменьшить увеличение объема сжатых данных в случае не очень подходящих данных.

    Пример. Сжатие

    Исходные данные: 01BD2F154FDBE01015FDEO1ED1001A0A 10 1C 61 EF 01 D0 11 33 33 33 33 33 33 33 34

    Последовательно проверяем каждый байт, и формируем сжатый поток согласно алгоритму RLE.

    01 – первый байт исходных данных. Следующий за ним байт BD, это означает, что первый байт не входит в цепочку повторяющихся байтов.

    Старшие два бита байта 01 не равны единицам. Следовательно, первый байт исходных данных переписываем в сжатый поток без изменений.

    BD 2F 15 4F следующие за первым байты, аналогично первому, переписываем в сжатый поток без изменения.

    Два следующих байта DB16=110110112 и E016=111000002 – это байты, старшие два бита которых содержат единицы. Поэтому, эти байты, при записи в сжатый поток, предваряем байтами-счетчиками, с числом повторов равным единице (C116=110000012).

    10 15 – эти байты не содержат единицы в старших битах и не входят в цепочку повторяющихся байтов. Переписываем их в сжатый поток без изменения.

    Два следующих бита FD16=111111012 E016=111000002 – это байты, старшие два бита которых содержат единицы. Поэтому, эти байты, при записи в сжатый поток, предваряем байтами-счетчиками, с числом повторов равным единице (C116=110000012).

    1E – этот байт не содержит единиц в старших битах и не входит в цепочку повторяющихся байтов. Переписываем его в сжатый поток без изменения.

    Следующий байт D116=110100012 – это байт, старшие два бита которого содержат единицы. Поэтому, этот байт, при записи в сжатый поток, предваряем байтом-счетчиком, с числом повторов равным единице (C116=110000012).

    00 1A 0A 10 1C 61 – эти байты не содержат единицы в старших битах и не входят в цепочку повторяющихся байтов. Переписываем их в сжатый поток без изменения.

    Следующий байт EF16=111011112 – это байт, старшие два бита которого содержат единицы. Поэтому, этот байт, при записи в сжатый поток, предваряем байтом-счетчиком, с числом повторов равным единице (C116=110000012).

    01 – этот байт не содержит единиц в старших битах и не входит в цепочку повторяющихся байтов. Переписываем его в сжатый поток без изменения.

    Следующий байт D016=110100002 – это байт, старшие два бита которого содержат единицы. Поэтому, этот байт, при записи в сжатый поток, предваряем байтом-счетчиком, с числом повторов равным единице (C116=110000012).

    11 – этот байт не содержит единиц в старших битах и не входит в цепочку повторяющихся байтов. Переписываем его в сжатый поток без изменения.

    Далее идёт группа повторяющихся байтов 33 33 33 33 33 33 33, её заменяем на байт-счетчик и байт данных C7 33.

    Последний байт 34 не содержит единицы в старших битах, переписываем его в сжатые данные без изменения.

    Сжатые данные: 01 BD 2F 15 4F C1 DB C1 E0 10 15 C1 FD C1 EO 1E C1 D1 00 1A 0A 10 1C 61 C1 EF 01 C1 D0 11 C7 33 34
    Пример 2 выполнения РАСПАКОВКА

    Сжатые данные: 01 10 11 A2 B2 C2 D2 C1 FF D3 21

    Последовательно проверяем каждый байт.

    01 10 11 А2 B2 – не являются байтами-счетчиками, их записываем в распакованные данные без изменения.

    Следующий байт С216=110000102 – это байт-счетчик (с числом повторов равным двум), байт значения которого D2. В распакованные данные записываем D2 D2.

    Затем идет С1 – это байт-счетчик (с числом повторов равным единице), байт значения которого FF. В распакованные данные записываем FF.

    D3 – это байт-счетчик (т.к. D316=110100112, с числом повторов равным 0100112=1910), байт, значение которого 21. В распакованные данные записываем девятнадцать раз байт 21.

    Распакованные данные: 01 10 11 A2 B2 D2 D2 FF 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21


    Контрольные вопросы:

    1. Приведите определение процесса сжатия данных.

    2. Приведите определение неискажающего сжатия цифровых данных (сжатие без потерь).

    3. Приведите определение сжатия цифровых данных с регулируемыми потерями.

    4. Приведите определение архиватора. Приведите примеры распространенных архиваторов.

    5. Какие алгоритмы сжатия без потерь Вам известны?

    6. Сформулируйте теоремы для сжатия без потерь.

    7. Сформулируйте идею сжатия данных статистическими алгоритмами.

    8 Какой принцип положен в основу алгоритмов RLE?


    написать администратору сайта