Методы сжатия изображений

Определения. Аббревиатуры и классификации методов сжатия

Разбить на страницы
Показывать лекцию целиком

Базовые определения

Бит - это "атом" цифровой информации: переменная, которая может принимать ровно два различных значения:

  • "1" (единица, да, истина, существует)
  • "0" (ноль, нет, ложь, не существует)
  • Любая система, которую можно перевести в одно из двух различных задаваемых состояний и удержать в нем в течение требуемого промежутка времени, может быть использована для хранения одного бита информации.

    Емкость для хранения бита можно представлять себе как небольшой "ящик" где-то в пространстве-времени (в микросхеме, на магнитном/оптическом диске, линии связи) с двумя возможными состояниями: полный - "1", и пустой - "0".

    Данные - информация в цифровом виде.

    Объем данных измеряется в битах, но может быть и рациональным числом, а не только целым.

    R-битный элемент - совокупность R битов - имеет $$2^R$$ возможных значений-состояний. Большинство источников цифровой информации порождает элементы одного размера R. А в большинстве остальных случаев - элементы нескольких размеров: $$R_1 ,{\rm{ }}R_2 ,{\rm{ }}R_3.$$.. (например, 8, 16 и 32).

    Байт - это 8-битный элемент: совокупность восьми битов.

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

    Блок - конечная последовательность цифровой информации.

    Поток - последовательность с неизвестными границами: данные поступают маленькими блоками, и нужно обрабатывать их сразу, не накапливая. Блок - последовательность с произвольным доступом, а поток - с последовательным.

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

    Используют и такие пары терминов: компрессия/декомпрессия, кодирование/декодирование, упаковка/распаковка.

    Под просто сжатием будем далее понимать сжатие без потерь (lossless compression).

    Сжатие с потерями (lossy compression) - это два разных процесса:

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

    Конечную последовательность битов назовем кодомВ теории информации кодом называется совокупность всех битовых последова-тельностей, применяемых для представления порождаемых источником символов. Авторы сознательно пошли на использование слова "код" в обыденном значении, а количество битов в коде - длиной кода.

    Конечную последовательность элементов назовем словом, а количество элементов в слове - длиной слова. Иногда используются синонимы: строка и фраза. В общем случае слово построено из R-битных элементов, а не 8-битных. Таким образом, код - это слово из 1-битных элементов.

    Например, в блоке из 14-и элементов "кинчотсихыннад" одно слово длиной 14 элементов, два слова длиной 13, и так далее, 13 слов длиной 2 и 14 слов длиной 1. Аналогично в блоке из семи битов "0100110" один код длиной 7 битов, два кода длиной 6, и так далее, семь кодов длиной 1.

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

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

    ASCII (American Standard Code for Information Interchange - Американский Стандартный Код для Обмена Информацией) каждому значению байта ставит в соответствие символ. Но чтобы построить однозначное соответствие для всех необходимых символов из множества национальных алфавитов народов мира, требуется больше: по крайней мере 16 битов на символ (что и обеспечивает стандарт Unicode ).

    Множество всех различных символов, порождаемых некоторым источником, называется алфавитом, а количество символов в этом множестве - размером алфавита. Источники данных порождают только элементы, но физические источники информации - символы или элементы.

    Размер алфавита таблицы ASCII равен $$2^8 = 256$$, а Unicode - $$2^{16} = 65536$$. Это две самые распространенные таблицы символов.

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

    Можно говорить, что источник без памяти порождает "элементы", а источник данных с памятью - "слова", поскольку во втором случае

  • учет значений соседних элементов ( контекста ) улучшает сжатие, то есть имеет смысл трактовать данные как слова;
  • поток данных выглядит как поток слов.
  • В первом же случае имеем дело с перестановкой элементов, и рассматривать данные как слова нет смысла.

    Кавычки показывают, что это условные названия способов интерпретации входных данных: "слова", "элементы", "биты".

    По традиции бинарный источник без памяти называют обычно "источник Бернулли", а важнейшим частным случаем источника данных с памятью является "источник Маркова" (N-го порядка): состояние на i-ом шаге зависит от состояний на N предыдущих шагах: i-1, i-2,…, i-N.

    Третья важнейшая применяемая при сжатии данных математическая модель - "аналоговый сигнал":

  • данные считаются количественными;
  • источник данных считается источником Маркова 1-го порядка.
  • Если использовать модель "аналоговый сигнал" с N > 1, то при малых N эффективность сжатия неизменна или незначительно лучше, но метод существенно сложнее, а при дальнейшем увеличении N эффективность резко уменьшается.

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

    Еще две важных характеристики алгоритма сжатия - объемы памяти, необходимые для сжатия и для разжатия (для хранения данных, создаваемых и/или используемых алгоритмом).

    Названия и аббревиатуры методов

    CM (Context Modeling) - Контекстное моделирование

    DMC (Dynamic Markov Compression) - Динамическое марковское сжатие (является частным случаем CM)

    PPM (Prediction by Partial Match) - Предсказание по частичному совпадению (является частным случаем CM)

    LZ-методы - методы Зива-Лемпела, в том числе LZ77, LZ78, LZH и LZW

    PBS (Parallel Blocks Sorting) - Сортировка параллельных блоков

    ST (Sort Transformation) - Частичное сортирующее преобразование (является частным случаем PBS)

    BWT (Burrows-Wheeler Transform) - Преобразование Барроуза-Уилера (является частным случаем ST)

    RLE (Run Length Encoding) - Кодирование длин повторов

    HUFF (Huffman Coding) - кодирование по методу Хаффмана

    SEM (Separate Exponents and Mantissas) - Разделение экспонент и мантисс (Представление целых чисел)

    UNIC (Universal Coding) - Универсальное кодирование (является частным случаем SEM)

    ARIC (Arithmetic Coding) - Арифметическое кодирование

    RC (Range Coding) - Интервальное кодирование (вариант арифметического)

    DC (Distance Coding) - Кодирование расстояний

    IF (Inverted Frequences) - "Обратные частоты" (вариант DC)

    MTF (Move To Front) - "Сдвиг к вершине", "Перемещение стопки книг"

    ENUC (Enumerative Coding) - Нумерующее кодирование

    FT (Fourier Transform) - Преобразование Фурье

    DCT (Discrete Cosine Transform) - Дискретное Косинусное Преобразование, ДКП (является частным случаем FT)

    DWT (Discrete Wavelet Transform) - Дискретное Вэйвлетное Преобразование, ДВП

    LPC (Linear Prediction Coding) - Линейно-Предсказывающее Кодирование, ЛПК (к нему относятся Дельта-кодирование, ADPCM, CELP и MELP)

    SC (Subband Coding) - Субполосное кодирование

    VQ (Vector Quantization) - Векторное квантование

    Страницы:

    Базовые определения

    Бит - это "атом" цифровой информации: переменная, которая может принимать ровно два различных значения:

  • "1" (единица, да, истина, существует)
  • "0" (ноль, нет, ложь, не существует)
  • Любая система, которую можно перевести в одно из двух различных задаваемых состояний и удержать в нем в течение требуемого промежутка времени, может быть использована для хранения одного бита информации.

    Емкость для хранения бита можно представлять себе как небольшой "ящик" где-то в пространстве-времени (в микросхеме, на магнитном/оптическом диске, линии связи) с двумя возможными состояниями: полный - "1", и пустой - "0".

    Данные - информация в цифровом виде.

    Объем данных измеряется в битах, но может быть и рациональным числом, а не только целым.

    R-битный элемент - совокупность R битов - имеет $$2^R$$ возможных значений-состояний. Большинство источников цифровой информации порождает элементы одного размера R. А в большинстве остальных случаев - элементы нескольких размеров: $$R_1 ,{\rm{ }}R_2 ,{\rm{ }}R_3.$$.. (например, 8, 16 и 32).

    Байт - это 8-битный элемент: совокупность восьми битов.

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

    Блок - конечная последовательность цифровой информации.

    Поток - последовательность с неизвестными границами: данные поступают маленькими блоками, и нужно обрабатывать их сразу, не накапливая. Блок - последовательность с произвольным доступом, а поток - с последовательным.

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

    Используют и такие пары терминов: компрессия/декомпрессия, кодирование/декодирование, упаковка/распаковка.

    Под просто сжатием будем далее понимать сжатие без потерь (lossless compression).

    Сжатие с потерями (lossy compression) - это два разных процесса:

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

    Конечную последовательность битов назовем кодомВ теории информации кодом называется совокупность всех битовых последова-тельностей, применяемых для представления порождаемых источником символов. Авторы сознательно пошли на использование слова "код" в обыденном значении, а количество битов в коде - длиной кода.

    Конечную последовательность элементов назовем словом, а количество элементов в слове - длиной слова. Иногда используются синонимы: строка и фраза. В общем случае слово построено из R-битных элементов, а не 8-битных. Таким образом, код - это слово из 1-битных элементов.

    Например, в блоке из 14-и элементов "кинчотсихыннад" одно слово длиной 14 элементов, два слова длиной 13, и так далее, 13 слов длиной 2 и 14 слов длиной 1. Аналогично в блоке из семи битов "0100110" один код длиной 7 битов, два кода длиной 6, и так далее, семь кодов длиной 1.

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

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

    ASCII (American Standard Code for Information Interchange - Американский Стандартный Код для Обмена Информацией) каждому значению байта ставит в соответствие символ. Но чтобы построить однозначное соответствие для всех необходимых символов из множества национальных алфавитов народов мира, требуется больше: по крайней мере 16 битов на символ (что и обеспечивает стандарт Unicode ).

    Множество всех различных символов, порождаемых некоторым источником, называется алфавитом, а количество символов в этом множестве - размером алфавита. Источники данных порождают только элементы, но физические источники информации - символы или элементы.

    Размер алфавита таблицы ASCII равен $$2^8 = 256$$, а Unicode - $$2^{16} = 65536$$. Это две самые распространенные таблицы символов.

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

    Можно говорить, что источник без памяти порождает "элементы", а источник данных с памятью - "слова", поскольку во втором случае

  • учет значений соседних элементов ( контекста ) улучшает сжатие, то есть имеет смысл трактовать данные как слова;
  • поток данных выглядит как поток слов.
  • В первом же случае имеем дело с перестановкой элементов, и рассматривать данные как слова нет смысла.

    Кавычки показывают, что это условные названия способов интерпретации входных данных: "слова", "элементы", "биты".

    По традиции бинарный источник без памяти называют обычно "источник Бернулли", а важнейшим частным случаем источника данных с памятью является "источник Маркова" (N-го порядка): состояние на i-ом шаге зависит от состояний на N предыдущих шагах: i-1, i-2,…, i-N.

    Третья важнейшая применяемая при сжатии данных математическая модель - "аналоговый сигнал":

  • данные считаются количественными;
  • источник данных считается источником Маркова 1-го порядка.
  • Если использовать модель "аналоговый сигнал" с N > 1, то при малых N эффективность сжатия неизменна или незначительно лучше, но метод существенно сложнее, а при дальнейшем увеличении N эффективность резко уменьшается.

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

    Еще две важных характеристики алгоритма сжатия - объемы памяти, необходимые для сжатия и для разжатия (для хранения данных, создаваемых и/или используемых алгоритмом).

    Названия и аббревиатуры методов

    CM (Context Modeling) - Контекстное моделирование

    DMC (Dynamic Markov Compression) - Динамическое марковское сжатие (является частным случаем CM)

    PPM (Prediction by Partial Match) - Предсказание по частичному совпадению (является частным случаем CM)

    LZ-методы - методы Зива-Лемпела, в том числе LZ77, LZ78, LZH и LZW

    PBS (Parallel Blocks Sorting) - Сортировка параллельных блоков

    ST (Sort Transformation) - Частичное сортирующее преобразование (является частным случаем PBS)

    BWT (Burrows-Wheeler Transform) - Преобразование Барроуза-Уилера (является частным случаем ST)

    RLE (Run Length Encoding) - Кодирование длин повторов

    HUFF (Huffman Coding) - кодирование по методу Хаффмана

    SEM (Separate Exponents and Mantissas) - Разделение экспонент и мантисс (Представление целых чисел)

    UNIC (Universal Coding) - Универсальное кодирование (является частным случаем SEM)

    ARIC (Arithmetic Coding) - Арифметическое кодирование

    RC (Range Coding) - Интервальное кодирование (вариант арифметического)

    DC (Distance Coding) - Кодирование расстояний

    IF (Inverted Frequences) - "Обратные частоты" (вариант DC)

    MTF (Move To Front) - "Сдвиг к вершине", "Перемещение стопки книг"

    ENUC (Enumerative Coding) - Нумерующее кодирование

    FT (Fourier Transform) - Преобразование Фурье

    DCT (Discrete Cosine Transform) - Дискретное Косинусное Преобразование, ДКП (является частным случаем FT)

    DWT (Discrete Wavelet Transform) - Дискретное Вэйвлетное Преобразование, ДВП

    LPC (Linear Prediction Coding) - Линейно-Предсказывающее Кодирование, ЛПК (к нему относятся Дельта-кодирование, ADPCM, CELP и MELP)

    SC (Subband Coding) - Субполосное кодирование

    VQ (Vector Quantization) - Векторное квантование

    Вернуться к учебному плану