У вас вопросы?
У нас ответы:) SamZan.net

Сжатие данных алгоритмическое преобразование данных производимое с целью уменьшения занимаемого

Работа добавлена на сайт samzan.net: 2016-06-20

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 4.3.2025

  1.  Класифікація та різновиди алгоритмів стискання даних.

Сжатие данных — алгоритмическое преобразование данных, производимое с целью уменьшения занимаемого ими объёма. Применяется для более рационального использования устройств хранения и передачи данных. 

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

Все методы сжатия данных делятся на два основных класса:

  1.  Сжатие данных без потерь — метод сжатия данных: видео, аудио, графики, документов представленных в цифровом виде, при использовании которого закодированные данные могут быть восстановлены с точностью до бита. При этом оригинальные данные полностью восстанавливаются из сжатого состояния. Сжатие данных без потерь используется во многих приложениях. Например, оно используется во всех файловых архиваторах. Оно также используется как компонент в сжатии с потерями.

Сжатие без потерь используется, когда важна идентичность сжатых данных оригиналу. Обычный пример — исполняемые файлы и исходный код. Некоторые графические файловые форматы, такие как PNG, используют только сжатие без потерь; тогда как другие (TIFF, MNG) или GIF могут использовать сжатие как с потерями, так и без.

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

Существуют две основных схемы сжатия с потерями:

В трансформирующих кодеках фреймы изображений или звука обычно трансформируются в новое базисное пространство и производится квантование. Трансформация может осуществляться либо для всего фрейма целиком (как, например, в схемах на основе wavelet-преобразования), либо поблочно (характерный пример — JPEG). Результат затем сжимается энтропийными методами.

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

  1.  Різновиди архіваторів (програми, які стискують).

Архівування - це процес стискування інформації (файлів, груп файлів, каталогів, цілих дисків) з метою економії дискового простору та захисту його від несанкціонованого доступу.

Оскільки в стиснутому вигляді інформацією скористатись неможливо, що особливість використовують для її захисту від несанкціонованого доступу. Тобто, при архівуванні вказують пароль на файл, що архівується. В результаті цього інформацією з файла можна скористатись лише розархівувавши її, а для цього потрібно ввести правильний пароль. Отже, архівування проводить дії:

1) Економія дискового простору;

2) Захисту інформації за допомогою пароля;

3) Зберігання резервних копій найбільш важливих інформації;

4) Швидкої передачі файла по комп'ютерних мережах.

Процес архівування чи розархівування інформацій здійснюється спеціальними програмами, що називаються архіваторами.

Архіватори бувають двох типів.

1) архіватори, що працюють в режимі командного рядка. Рядка з ними полягає введенні команд, що відповідає назві виконавчого файлу програми та завданні відповідних параметрів. Такі архіватори працюють в текстовому режимі ОС наприклад в режимі асежу MS-POS.

2) Архіватори оболонки. Програми - із зручними інтерфейсом, що полегшує виконання користувачам операції над архівами. Робота з цим архіватором полягає у виборі потрібних команд в меню, використані гарячих клавіш або маніпулятори миші. Існують архіватори - оболонки, які із зручними інтерфейсом, до ОС подібних о Windows, та і у вигляді текстового вікна.

Архіватори що працюють в режимі командного рядка поділяються на дві групи.

А) парні

Б) непарні

Парні коли одна і таж програма здійснює архівування та розархівування інформації.

Непарні - коли одна програма архівує, а інші розархівовує файли.

  1.  Актуальність алгоритмів стискання даних.

В процесі роботи на ПК перед користувачем часто виникає проблема нестачі дискового простору. Доводиться або знищувати менш важливу інформацію, або записувати на CD-RW, стримери чи інші носії. Та існує ще один вихід із цього становища. Це процес так званого архівування інформації.

  1.  Алгоритми стискання без втрат. Приклади, класифікація.

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

  1. Преобразование Барроуза — Уилера (блочно-сортирующая пре-обработка, которая делает сжатие более эффективным)
  2. LZ77 и LZ78 (используется DEFLATE)
  3. LZW

Алгоритмы кодирования через генерирование битовых последовательностей:

  1. Алгоритм Хаффмана (также используется DEFLATE)
  2. Арифметическое кодирование

Многоцелевые

  1.  Кодирование длин серий — простая схема, дающая хорошее сжатие данных, которые содержат много повторяющихся значений
  2.  LZW — используется в gif и во многих других.
  3.  Deflate — используется в gzip, усовершенствованной версии zip и как часть процесса сжатия PNG.
  4.  LZMA — используется в 7-zip.

Сжатие аудио

  1.  Apple Lossless — ALAC (Apple Lossless Audio Codec)
  2.  Audio Lossless Coding — также известен как MPEG-4 ALS
  3.  Direct Stream Transfer — DST
  4.  Dolby TrueHD
  5.  DTS-HD Master Audio
  6.  OptimFROG
  7.  RealPlayer — RealAudio Lossless
  8.  WavPack — WavPack lossless
  9.  WMA Lossless — Windows Media Lossless

Сжатие графики

  1.  ABO — Adaptive Binary Optimization
  2.  BTPC
  3.  CALIC
  4.  CREW
  5.  CTW
  6.  DPCM
  7.  GIF — (без потерь только для изображений содержащих не более 256 цветов)
  8.  JBIG2 — (с потерями или без Ч/Б изображений)
  9.  Lossless JPEG — (расширение стандарта сжатия JPEG, обеспечивающее сжатие без потерь)
  10.  JPEG-LS — (стандарт сжатия без потерь/почти без потерь)
  11.  JPEG 2000 — (в режиме сжатия без потерь)
  12.  LOCO-I
  13.  MRP
  14.  PGF — Progressive Graphics File (сжатие с/без потерь)
  15.  PNG — Portable Network Graphics
  16.  TIFF — (исключая режимы сжатия с потерями[1])
  17.  HD Photo — (включая метод сжатия без потерь)

Сжатие видео

  1.  Animation codec
  2.  CamStudio Video Codec
  3.  CorePNG
  4.  FFV1
  5.  Huffyuv
  6.  Lagarith
  7.  LCL
  8.  MSU Lossless Video Codec
  9.  Qbit Lossless Codec
  10.  SheerVideo
  11.  TSCC — TechSmith Screen Capture Codec
  12.  WMC — Wavelet Media Codec
  13.  Motion JPEG 2000

Сжатие текстов

PPM — архиватор HA (автор Harry Hirvola), использующий алгоритм PPM, известен высокой степенью сжатия на текстовых файлах; по этому параметру он превосходил первые версии появившегося несколько лет спустя RAR. Поэтому популярные в конце 90-х годов компакт-диски наподобие «Библиотека в кармане» использовали именно HA.

Примеры алгоритмов

  1.  Семейство алгоритмов Лемпеля-Зива
  2.  RLE (Run-length encoding — Кодирование длин серий)
  3.  Алгоритми стискання з втратами. Приклади, класифікація.

Существуют две основных схемы сжатия с потерями:

  1.  В трансформирующих кодеках фреймы изображений или звука обычно трансформируются в новое базисное пространство и производится квантование. Трансформация может осуществляться либо для всего фрейма целиком (как, например, в схемах на основе wavelet-преобразования), либо поблочно (характерный пример — JPEG). Результат затем сжимается энтропийными методами.
  2.  В предсказывающих кодеках предыдущие и/или последующие отсчеты данных используются для того, чтобы предсказать текущий отсчет изображения или звука. Ошибка между предсказанными данными и реальными вместе с добавочной информацией, необходимой для производства предсказания, затем квантуется и кодируется.

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

Методы сжатия данных с потерями (примеры)

Компрессия изображений

  1. Снижение глубины цвета
  2.  Метод главных компонент
  3.  Фрактальное сжатие
  4. Сжатие на основе предсказателей
  5.  JPEG-LS
  6.  ДИКМ
  7. Иерархическая сеточная интерполяция
  8. CALIC
  9.  JPEG
  10.  Вэйвлетная компрессия
  11.  JPEG 2000
  12.  DjVu

Компрессия видео

  1.  Motion JPEG
  2.  Flash (поддерживает Motion JPEG)
  3.  H.261
  4.  H.263
  5.  H.264
  6.  MNG (поддерживает Motion JPEG)
  7.  MPEG-1 Part 2
  8.  MPEG-2 Part 2
  9.  MPEG-4 Part 2
  10. Ogg Theora (отличается отсутствием патентных ограничений)
  11.  Sorenson video codec (англ.)
  12.  VC-1 — открытая спецификация для формата WMV (Microsoft)

Компрессия звука

Музыка

  1.  MP3 — Определён спецификацией MPEG-1
  2.  Ogg Vorbis (отличается отсутствием патентных ограничений и более высоким качеством)
  3.  AAC, AAC+ — существует в нескольких вариантах, определённых спецификациями MPEG-2 и MPEG-4, используется, например, в Apple
  4.  eAAC+ — формат, предлагаемый Sony, как альтернатива AAC и AAC+
  5.  Musepack
  6.  WMA — собственность Microsoft
  7.  ADPCM
  8.  ATRAC
  9.  Dolby AC-3
  10.  DTS
  11.  MPEG-1 Audio Layer II
  12.  VQF

Речь

  1.  CELP
  2.  G.711
  3.  G.726
  4.  HILN
  5.  Speex (отличается отсутствием патентных ограничений)
  6.  iLBC (Кодек со свободными условиями лицензирования)
  7.  Алгоритми стискання, які базуються на особливостях людського сприйняття звуку.

В настоящее время наиболлее распространены три стандарта хранения видеоданных: MPEG-1, MPEG-2 и MPEG-4. В рамках первых двух форматов существуют также форматы хранения звуковой информации – Layer-1, Layer-2 и Layer-3. Эти три звуковых формата определены для MPEG-1 и незначительными расширениями используются в MPEG-2. Все три формата похожи друг на друга, но используют различные уровни компромисса между сжатием и сложностью. Уровень Layer-1 - наиболее простой, не требует значительных затрат на сжатие, но и дает незначительную степень сжатия. Уровень Layer-3 – наиболее трудоемкий и обеспечивает самое лучшее сжатие. В последнее время этот формат завоевал огромную популярность. Его часто называют MP3. Такое название связано с расширением звуковых файлов, хранящихся в этом формате.

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

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

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

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

Еще одним приемом сжатия является использование так называемого совмещенного стерео. Например, если в правом канале какое-то время полная тишина, это "зарезервированное" место используется для повышения качества левого канала или туда "впихиваются" необходимые биты, не влезшие в поток чуть раньше. На последней стадии сжатия используется алгоритм сжатия Хаффмана. Этот процесс позволяет улучить степень сжатия для относительно однородных сигналов, которые плохо сжимаются с помощью описанных выше приемов.

Форматы сжатия семейства MPEG сокращают объем информации следующим образом:

  1.  Устраняется временная избыточность видео (учитывается только разностная информация).
  2.  Устраняется пространственная избыточность изображений путем подавления мелких деталей сцены.
  3.  Устраняется часть информации о цветности.
  4.  Повышается информационная плотность результирующего цифрового потока путем выбора оптимального математического кода для его описания.
  5.  Алгоритми стискання, які базуються на особливостях людського сприйняття зору   (картинки) .

Цифровые системы видеонаблюдения: передача информации и алгоритмы сжатия

Практически все применяемые в видеонаблюдении алгоритмы сжатия базируются на технологии сжатия с потерями (алгоритм сжатия JPEG 2000 имеет защищенное патентами приложение, которое осуществляет сжатие без потерь), когда после декомпрессии получить изображение первоначального качества практически невозможно. Однако устройство человеческого зрения таково, что при невысокой степени сжатия искажения на полученной картинке не влияют или мало влияют на восприятие. Было установлено, что любое изображение содержит в себе избыточную информацию, не воспринимаемую человеческим глазом. Кроме того, известно, что человеческий глаз более чувствителен к яркости картинки, чем к цветности. Этот эффект на начальном этапе компрессии используют практически все алгоритмы сжатия, и объем информации на этой стадии сокращается до 2 раз без потери качества картинки.

Современные алгоритмы сжатия: классификация.

Существующие на сегодняшний день алгоритмы сжатия классифицируются по следующим параметрам.

  1.  Потоковые и статические алгоритмы сжатия

Потоковые алгоритмы сжатия работают с последовательностями кадров, кодируя разностную информацию между опорными кадрами (алгоритмы сжатия семейства MPEG, алгоритм сжатия JPEG 2000), тогда как статические алгоритмы сжатия работают с каждым изображением в отдельности (алгоритмы сжатия JPEG и MJPEG).

  1.  Алгоритмы сжатия с потерями и без потерь данных

В зависимости от степени сжатия, различают:

  1.  Сжатие без заметных потерь с точки зрения восприятия. Как отмечалось выше, в силу своих физиологических особенностей человеческий глаз менее чувствителен к цветоразностной составляющей изображения, чем к яркостной. При невысоких коэффициентах компрессии алгоритмы сжатия дают картинку, которая воспринимается глазом как точная копия оригинала, тогда как данный алгоритм сжатия работает с потерями данных, и полученное после декомпрессии изображение не совпадает с исходным.
  2.  Сжатие с естественной потерей качества характеризуется появлением воспринимаемых глазом, но незначительных искажений изображения. Это проявляется в уменьшении детализации сцены, а алгоритмы сжатия, основанные на дискретном косинусном преобразовании, могут продуцировать незначительные блочные искажения картинки. Базирующиеся на вейвлет-преобразовании алгоритмы сжатия дают размытость вблизи резких границ, однако такие артефакты даже при довольно больших коэффициентах сжатия мало влияют на процесс зрительного восприятия картинки.
  3.  Сжатие с неестественной потерей качества характеризуется нарушением самой важной с точки зрения восприятия характеристики изображения – контуров. При высоких коэффициентах компрессии алгоритм сжатия JPEG вносит в картинку блочные искажения, которые сильно влияют на восприятие изображения человеческим глазом, в то время как алгоритмы сжатия, использующие вейвлет-преобразование, делают изображение «затуманенным», с размытыми контурами, не изменяя их формы. Поэтому алгоритмы сжатия типа Wavelet обеспечивают более высокие по сравнению с алгоритмом JPEG коэффициенты сжатия.

Основные характеристики наиболее распространенных алгоритмов сжатия

Алгоритмы сжатия

Размер файла (цветной кадр с разрешением 720х576 пкс.)

Величина потока оцифрованного видео с параметрами 720х576 пкс. и 25 к/с.

Wavelet

50 кб

10 Мбит/с

MJpeg

25 кб

5 Мбит/с

JPEG

70 кб

14 Мбит/с

MPEG-2

10 кб

2 Мбит/с

MPEG-4

5 кб

1 Мбит/с

  1.  Алгоритм кодування RLE.

Найпростіший із словарних методів – RLE (Run Length Encoding, кодування змінної довжини) уміє стискати дані, в яких є послідовності байтів, що повторюються. Упаковані RLE дані складаються з байтів що управляють та байтів даних.

Якщо старший біт байта, що управляє, рівний 0, то наступні байти (у кількості, записаній в семи молодших бітах байта, що управляє) при пакуванні не змінюються.

Якщо старший біт рівний 1, то наступний байт потрібно повторити стільки разів, яке число записане в решті розрядів байта, що управляє.

Наприклад, початкова послідовність 00000000 00000000 00000000 00000000 11001100 10111111 10111011  буде закодована в наступному вигляді (виділені байти, що управляють): 10000100 00000000 00000011 11001100 10111111 10111011.

А  дані що складаються з сорока нульових байтів, будуть закодовані всього двома байтами: 1010 1000 00000000.

  1.  Словниковий метод кодування.

Метод сжатия с использованием словаря — разбиение данных на слова и замена их на индексы в словаре. Этот метод является наиболее распространенным подходом для сжатия данных в настоящее время. Является естественным обобщением RLE.

В наиболее распространенном варианте реализации словарь постепенно пополняется словами из исходного блока данных в процессе сжатия.

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

К методам сжатия с использованием словаря относятся следующие алгоритмы: LZ77/78LZWLZODEFLATELZMALZXROLZ.

  1.  Кодування Хаффмана.

Один из первых алгоритмов эффективного кодирования информации был предложен Д. А. Хаффманом в 1952 году. Идея алгоритма состоит в следующем: зная вероятности символов в сообщении, можно описать процедуру построения кодов переменной длины, состоящих из целого количества битов. Символам с большей вероятностью ставятся в соответствие более короткие коды. Коды Хаффмана обладают свойством префиксности (т.е. ни одно кодовое слово не является префиксом другого), что позволяет однозначно их декодировать.

Классический алгоритм Хаффмана на входе получает таблицу частот встречаемости символов в сообщении. Далее на основании этой таблицы строится дерево кодирования Хаффмана

  1.  Символы входного алфавита образуют список свободных узлов. Каждый лист имеет вес, который может быть равен либо вероятности, либо количеству вхождений символа в сжимаемое сообщение.
  2.  Выбираются два свободных узла дерева с наименьшими весами.
  3.  Создается их родитель с весом, равным их суммарному весу.
  4.  Родитель добавляется в список свободных узлов, а два его потомка удаляются из этого списка.
  5.  Одной дуге, выходящей из родителя, ставится в соответствие бит 1, другой — бит 0.
  6.  Шаги, начиная со второго, повторяются до тех пор, пока в списке свободных узлов не останется только один свободный узел. Он и будет считаться корнем дерева.

Классический алгоритм Хаффмана имеет ряд существенных недостатков. Во-первых, для восстановления содержимого сжатого сообщения декодер должен знать таблицу частот, которой пользовался кодер. Следовательно, длина сжатого сообщения увеличивается на длину таблицы частот, которая должна посылаться впереди данных, что может свести на нет все усилия по сжатию сообщения. Кроме того, необходимость наличия полной частотной статистики перед началом собственно кодирования требует двух проходов по сообщению: одного для построения модели сообщения (таблицы частот и Н-дерева), другого для собственно кодирования. Во-вторых, избыточность кодирования обращается в ноль лишь в тех случаях, когда вероятности кодируемых символов являются обратными степенями числа 2. В-третьих, для источника с энтропией, не превышающей 1 (например, для двоичного источника), непосредственное применение кода Хаффмана бессмысленно.

  1.  Адаптивне кодування Хаффмана.

Алгоритм Хаффмана адаптивный жадный алгоритм оптимального префиксного кодирования алфавита с минимальной избыточностью.

Этот метод кодирования состоит из двух основных этапов:

  1.  Построение оптимального кодового дерева.
  2.  Построение отображения код-символ на основе построенного дерева.

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

В создании алгоритма адаптивного кодирования Хаффмана наибольшие сложности возникают при разработке процедуры обновления модели очередным символом. Теоретически можно было бы просто вставить внутрь этой процедуры полное построение дерева кодирования Хаффмана, однако, такой алгоритм сжатия имел бы неприемлемо низкое быстродействие, так как построение Н-дерева — это слишком большая работа, и производить её при обработке каждого символа неразумно. К счастью, существует способ модифицировать уже существующее Н-дерево так, чтобы отобразить обработку нового символа.

Обновление дерева при считывании очередного символа сообщения состоит из двух операций.

Первая — увеличение веса узлов дерева. Вначале увеличиваем вес листа, соответствующего считанному символу, на единицу. Затем увеличиваем вес родителя, чтобы привести его в соответствие с новыми значениями веса потомков. Этот процесс продолжается до тех пор, пока мы не доберемся до корня дерева. Среднее число операций увеличения веса равно среднему количеству битов, необходимых для того, чтобы закодировать символ.

Вторая операція — перестановка узлов дерева — требуется тогда, когда увеличение веса узла приводит к нарушению свойства упорядоченности, то есть тогда, когда увеличенный вес узла стал больше, чем вес следующего по порядку узла. Если и дальше продолжать обрабатывать увеличение веса, двигаясь к корню дерева, то дерево перестанет быть деревом Хаффмана.

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

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




1. правовые формы предприятий
2. реферат дисертації на здобуття наукового ступеня кандидата біологічних наук Київ ~ 2001 Дисе.
3. Тема урока- Закрепление пройденного материала
4. тематики иностранных языков г
5. Тема 4 Пароніми Активна і пасивна лексика
6. Туристичні ресурси Київської області
7. є ю Закінчення що трапляються як винятки взято в дужки як наприклад у родовому відмінку множини- суддів
8. Знаменный распев
9. Введение.html
10. педагогика и психология