Вы находитесь на странице: 1из 88

МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И

ИНФОРМАТИКИ

ШЕЛУХИН О.И., ГУЗЕЕВ А.В.

СЖАТИЕ АУДИО И ВИДЕО


ИНФОРМАЦИИ

Учебное пособие

Москва -2012
МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И
ИНФОРМАТИКИ

ШЕЛУХИН О.И., ГУЗЕЕВ А. В.

СЖАТИЕ АУДИО И ВИДЕО


ИНФОРМАЦИИ

Учебное пособие

Москва -2012

2
Авторы : Шелухин Олег Иванович – д.т.н., профессор
Гузеев Алексей Валерьевич- к.т.н

Рецензент - д.т.н., профессор Звежинский С.С.

В учебном пособии показаны роль и место методов обработки и


преобразования аудио и видео информации. В систематизированном виде
дано описание алгоритмов статистического кодирования. Представлены
математические основы сжатия звука и изображений. Приведены описания
методов преобразования и сжатия звука и изображений.

3
Содержание
Введение .................................................................................................... 5
1 Цель сжатия информации и типы систем сжатия ................................ 7
1.1 Сжатие без потерь информации .............................................................. 8
1.2 Сжатие с потерей информации ................................................................ 9
1.3 Методы сжатия с потерей информации ................................................11
2 Анализ частотных и временных свойств слухового аппарата........... 12
2.1 Теоретические сведения ..........................................................................12
2.2 Психоакустические особенности слухового восприятия ......................13
2.3 Психоакустическая модель слуховой системы ......................................24
3 Сжатие аудио сигналов ........................................................................ 29
3.1 Принципы психоакустического (перцептуального) сжатия звука .......29
3.2 Общепризнанные методы сжатия данных .............................................34
3.3 Сжатие звука в стандарте MPEG-1 .........................................................39
3.4 Кодирование в частотной области..........................................................42
3.5 Психоакустические модели ....................................................................48
3.6 Кодирование: слой III ..............................................................................49
4 Избыточность видеоданных и основные ее типы .............................. 55
4.1 Понятие избыточности ............................................................................55
4.2 Кодовая избыточность ............................................................................58
4.3 Межэлементная избыточность ...............................................................60
4.4 Психовизуальная избыточность .............................................................61
5.5 Временная избыточность ........................................................................65
5 Основы цифрового представления визуальных сигналов ................. 66
5.1 Понятие глубины цветопередачи изображения .....................................66
5.2 Цветовые пространства ...........................................................................67
5.3 Семплирование в цветовом пространстве YCbCr .................................70
5.4. Видеоформаты ........................................................................................73
5.5 Понятия алгоритма сжатия и формата файла ........................................75
6 Видеокодирование на основе гибридной модели DPCM/DCT.......... 76
6.1 Кодирование в гибридной модели..........................................................76
6.2 Реконструкция данных ............................................................................79
6.3 Декодирование в гибридной модели ......................................................79
7 Стандарт видеокодирования Н.264 ..................................................... 80
7.1 Обзор стандарта H.264 ............................................................................81
7.2 Профили стандарта H.264 .......................................................................84
Литература ............................................................................................... 88

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

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

6
1 Цель сжатия информации и типы систем сжатия
Передача и хранение информации требуют достаточно больших затрат.
И чем с большим количеством информации нам приходится иметь дело, тем
дороже это стоит. К сожалению, большая часть данных, которые нужно
передавать по каналам связи и сохранять, имеет не самое компактное
представление. Скорее, эти данные хранятся в форме, обеспечивающей их
наиболее простое использование, например: обычные книжные тексты,
ASCII коды текстовых редакторов, двоичные коды данных ЭВМ, отдельные
отсчеты сигналов в системах сбора данных и т.д. Однако такое наиболее
простое в использовании представление данных требует вдвое - втрое, а
иногда и в сотни раз больше места для их сохранения и полосу частот для их
передачи, чем на самом деле нужно. Поэтому сжатие данных – это одно из
наиболее актуальных направлений современных телекоммуникаций.
Таким образом, цель сжатия данных - обеспечить компактное
представление данных, вырабатываемых источником, для их более
экономного сохранения и передачи по каналам связи.
Ниже приведена условная структура системы сжатия данных:

В этой схеме вырабатываемые источником данные определим как


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

7
1.1 Сжатие без потерь информации
В системах сжатия без потерь декодер восстанавливает данные
источника абсолютно точно, таким образом, структура системы сжатия
выглядит следующим образом:

Вектор данных источника X, подлежащих сжатию, представляет собой


последовательность X = (x1, x2,… xn ) конечной длины. Отсчеты xi -
составляющие вектора X - выбраны из конечного алфавита данных A. При
этом размер вектора данных n ограничен, но он может быть сколь угодно
большим. Таким образом, источник на своем выходе формирует в качестве
данных X последовательность длиной n из алфавита A .
Выход кодера - сжатые данные, соответствующие входному вектору
X, - представим в виде двоичной последовательности B(X) = ( b1,b2,…bk ),
размер которой k зависит от X. Назовем B(X) кодовым словом,
присвоенным вектору X кодером (или кодовым словом, в которое вектор X
преобразован кодером). Поскольку система сжатия - неразрушающая,
одинаковым векторам Xl = Xm должны соответствовать одинаковые
кодовые слова B ( Xl ) = = B ( Xm ).
При решении задачи сжатия естественным является вопрос, насколько
эффективна та или иная система сжатия. Поскольку, как мы уже отмечали, в
основном используется только двоичное кодирование, то такой мерой может
служить коэффициент сжатия r, определяемый как отношение
размер данных источника в битах n  log 2 (dim A)
r  ,
размер сжатых данных в битах k
где dim A - размер алфавита данных A.
Таким образом, коэффициент сжатия r = 2 означает, что объем
сжатых данных составляет половину от объема данных источника. Чем
больше коэффициент сжатия r, тем лучше работает система сжатия данных.

8
Наряду с коэффициентом сжатия r эффективность системы сжатия
может быть охарактеризована скоростью сжатия R, определяемой как
отношение
R = k/n
и измеряемой в "количестве кодовых бит, приходящихся на отсчет
данных источника". Система, имеющая больший коэффициент сжатия,
обеспечивает меньшую скорость сжатия.

1.2 Сжатие с потерей информации


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

Как и в предыдущей схеме, X = ( x1, x2,… xn ) - вектор данных,


подлежащих сжатию. Восстановленный вектор обозначим как X* = ( x1,
x2,… xn ). Отметим наличие в этой схеме сжатия элемента, который
отсутствовал при неразрушающем сжатии, - квантователя.
Квантователь применительно к вектору входных данных X формирует
вектор Xq, достаточно близкий к X в смысле среднеквадратического
расстояния. Работа квантователя основана на понижении размера алфавита
(простейший квантователь производит округление данных до ближайшего
целого числа).
Далее кодер подвергает неразрушающему сжатию вектор
квантованных данных Xq таким образом, что обеспечивается однозначное
соответствие между Xq и B(Xq) (для Xlq = Xm q выполняется условие B
(Xlq) = B (Xmq)). Однако система в целом остается разрушающей, поскольку
двум различным векторам X может соответствовать один и тот же вектор
X*.

9
Разрушающий кодер характеризуется двумя параметрами - скоростью
сжатия R и величиной искажений D, определяемых как
R = k/n,
1 n
D   ( xi  xi* ) 2 .
n i 1
Параметр R характеризует скорость сжатия в битах на один отсчет
источника, величина D является мерой среднеквадратического различия
между X* и X.
Если имеются система разрушающего сжатия со скоростью и
искажениями R1 и D1 соответственно и вторая система со скоростью R2 и
искажениями D2, то первая из них лучше, если R1 ‹ R2 и D1 ‹ D2. Однако, к
сожалению, невозможно построить систему разрушающего сжатия,
обеспечивающую одновременно снижение скорости R и уменьшение
искажений D, поскольку эти два параметра связаны обратной зависимостью.
Поэтому целью оптимизации системы сжатия с потерями может быть либо
минимизация скорости при заданной величине искажений, либо получение
наименьших искажений при заданной скорости сжатия.
Выбор системы неразрушающего или разрушающего сжатия зависит от
типа данных, подлежащих сжатию. При сжатии текстовых данных,
компьютерных программ, документов, чертежей и т.п. совершенно очевидно,
что нужно применять неразрушающие методы, поскольку необходимо
абсолютно точное восстановление исходной информации после ее сжатия.
При сжатии речи, музыкальных данных и изображений, наоборот, чаще
используется разрушающее сжатие, поскольку при практически незаметных
искажениях оно обеспечивает на порядок, а иногда и на два меньшую
скорость R.
В общем случае разрушающее сжатие обеспечивает, как правило,
существенно более высокие коэффициенты сжатия, нежели неразрушающее.

10
1.3 Методы сжатия с потерей информации

Как уже ранее отмечалось, существуют два типа систем сжатия


данных:
без потерь информации (неразрушающие);
с потерями информации (разрушающие).
При неразрушающем кодировании исходные данные могут быть
восстановлены из сжатых в первоначальном виде, то есть абсолютно точно.
Такое кодирование применяется для сжатия текстов, баз данных,
компьютерных программ и данных и т.п., где недопустимо их даже малейшее
различие. Все рассмотренные выше методы кодирования относились именно
к неразрушающим.
К сожалению, неразрушающее сжатие, при всей привлекательности
перспективы получить абсолютное совпадение исходных и восстановленных
данных, имеет невысокую эффективность – коэффициенты неразрушающего
сжатия редко превышают 3…5 (за исключением случаев кодирования данных
с высокой степенью повторяемости одинаковых участков и т.п.).
Вместе с тем очень часто нет необходимости в абсолютной точности
передачи исходных данных потребителю. Во-первых, сами источники
данных обладают ограниченным динамическим диапазоном и вырабатывают
исходные сообщения с определенным уровнем искажений и ошибок. Этот
уровень может быть большим или меньшим, но абсолютной точности
воспроизведения достичь невозможно.
Во-вторых, передача данных по каналам связи и их хранение всегда
производятся при наличии различного рода помех. Поэтому принятое
(воспроизведенное) сообщение всегда в определенной степени отличается от
переданного, то есть на практике невозможна абсолютно точная передача
при наличии помех в канале связи (в системе хранения).
Наконец, сообщения передаются и сохраняются для их восприятия и
использования получателем. Получатели же информации - органы чувств

11
человека, исполнительные механизмы и т.д. - также обладают конечной
разрешающей способностью, то есть не замечают незначительной разницы
между абсолютно точным и приближенным значениями воспроизводимого
сообщения. Порог чувствительности к искажениям также может быть
различным, но он всегда есть.
Кодирование с разрушением учитывает эти аргументы в пользу
приближенного восстановления данных и позволяет получить за счет
некоторой контролируемой по величине ошибки коэффициенты сжатия,
иногда в десятки раз превышающие степень сжатия для неразрушающих
методов.
Большинство методов разрушающего сжатия основано на кодировании
не самих данных, а некоторых линейных преобразований от них, например,
коэффициентов дискретного преобразования Фурье ( ДПФ ), коэффициентов
косинусного преобразования, преобразований Хаара, Уолша и т.п.

2 Анализ частотных и временных свойств слухового аппарата

2.1 Теоретические сведения


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

12
ухо способно воспринять, а неслышимые составляющие сигнала можно
отбросить. Кроме того, сигналы можно квантовать с возможно меньшим
разрешением так, чтобы шумы квантования, изменяясь по величине с
изменением уровня самого сигнала, еще оставались бы неслышимыми, т.е.
маскировались бы исходным
сигналом. Учет психоакустических закономерностей слухового
восприятия определяет качество систем кодирования со сжатием цифровых
данных. Методами устранения психофизической избыточности можно
обеспечить сжатие цифровых аудиоданных в 10-12 раз без существенных
потерь в качестве.

2.2 Психоакустические особенности слухового восприятия


Описание характеристик любой слуховой системы осуществляется по
частотно-пороговым кривым, которые отражают предельные значения
интенсивности (или мощности звукового давления) в зависимости от частоты
звуковых колебаний. Частотно-пороговые кривые, полученные для слуховой
системы в целом, получили название кривых слышимости. Чувствительность
слуха оценивается минимальной интенсивностью звука, при которой человек
может отличить звук от постоянно существующего фона собственных
шумов. Интенсивность, при которой звук обнаруживается с вероятностью 0,5
(в 50% случаев), называется порогом слышимости или абсолютным порогом
для данного сигнала.
Кривая порога слышимости (рис.2.1), характеризующая наименьшую
интенсивность звука определенной частоты, который может быть услышан
человеком в тишине, хорошо аппроксимируется с помощью нелинейной
функции
2
T ( f )  3,64( f / 1000) 0,8  6,5e 0, 6( f / 1000  3,3)  10 3 ( f / 1000 ) 4 , (2.1)
где T(f) – порог слышимости, дБ; f – частота звукового сигнала, Гц.
Данная кривая представляет собой геометрическое место точек,
которые соответствуют тональным компонентам разных частот, имеющих

13
одинаковую громкость. Анализ усредненного графика порога слышимости
показывает, что слуховая система человека чувствительна к частотам в
диапазоне 0,01–20 кГц.

Рисунок 2.1 – Кривая минимального порога слышимости слухового аппарата человека в


тишине
Наибольшая чувствительность у человека наблюдается на средних
частот 2–5 кГц. Порог слышимости сигнала на частоте около 3 кГц
составляет приблизительно 0 дБ. Порог слышимости значительно
повышается в области низких (менее 200 Гц) и высоких (более 10 кГц) частот
и может достигать значения громкости звука 40 Дб и выше. Следовательно,
для слабых сигналов амплитудно-частотная характеристика слуха является
нелинейной, и, как следствие, слабые низкочастотные и высокочастотные
составляющие сигнала могут быть неслышны. Кривые слышимости
позволяют оценить работо-способность слуховой системы по ряду
признаков: диапазону воспринимаемых
частот, полосе частот, в пределах которой чувствительность
максимальна, абсолютным значениям звукового давления и их изменениям в
зависимости от частоты.
Одно из важных свойств слухового аппарата человека является его ин-
тегрирующая способность, т.е. группирование частотных составляющих
звука в определенные частотные критические полосы. Слуховая система
сравнивает полезный сигнал и мешающий шум по интенсивности в пределах
критических полос слуха, оценивая порог слышимости.

14
Критическая полоса слуха является полосой, за пределами которой
субъективные ощущения звука сильно изменяются.
На рис.2.2 и 2.3 схематически показан метод определения ширины
критической полосы слуховой системы.

Рисунок 2.2 – Определение ширины критической полосы при маскировании узкополосного


шумового компонента двумя тональными компонентами

Узкополосный шумовой сигнал маскируется двумя близко распо-


ложенными тональными компонентами, расстояние f между которыми
постепенно увеличивается. На рис.2,б представлена зависимость поведения
порога обнаружения шумовой компоненты от изменения расстояния между
двумя тональными компонентами f . Данный порог остается постоянным до
тех пор, пока частотное расстояние между тональными компонентами
остается в пределах критической полосы n k fп.к.. Вне полосы порог быстро
уменьшается.

Рисунок 2.3 – Определение ширины критической полосы при маскировании тонального


компонента двумя узкополосными шумовыми компонентами

На рис. 2.3 приведен случай, когда в качестве маскируемого сигнала


выступает тональная компонента, а в качестве маскирующих сигналов - две

15
узкополосные шумовые компоненты (рис.2.3,а). Поведение порога
обнаружения для тональной компоненты (рис.2.3,б) аналогично рис.2.2,б.
В таблице представлено разбиение слышимого диапазона частот на
критические полосы с соответствующими центральной частотой и шириной
полос идеализированного банка фильтров (рис 2.4) с прямоугольными
амплитудно-частотными характеристиками, который позволяет качественно
воспроизвести звуковые сигналы.

Рисунок 2.4 – Идеализированный банк фильтров как упрощенная модель слуховой


системы
Из таблицы 1 видно, что критическая полоса не соответствует
диапазону с фиксированными нижней и верхней границами. Ширина
критической полосы остается приблизительно постоянной (около 100 Гц)
вплоть до 500 Гц и увеличивается приблизительно на 20% от центральной
частоты при 500 Гц и выше:

100 Гц, f  500 Гц,


BW ( f )  
 0,2 f Гц, f  500 Гц. (2.2)
Из (2.2) видно, что в частотной области до 500 Гц органы слуха
воспринимают интенсивность звука, разделяя ее на участки постоянной
абсолютной ширины, а свыше 500 Гц − на участки постоянной
относительной ширины.
Для среднего слушателя ширина критической полосы слуховых
фильтров (рис.2.5) может быть определена из выражения

16

BW ( f )  25  75 1  1,4( f / 1000) 2 
0,69
(2.3)
Таблица 1
Разбиение слышимого частотного диапазона на критические полосы в
психоакустической модели слухового аппарата
Нижняя и верхняя
Номер Центральная частоты,
критической частота, Гц ширина критической
полосы полосы, Гц

1 50 20-100 100
2 150 100-200 100
3 250 200-300 100
4 350 300-400 100
5 450 400-510 110
6 570 510-630 120
7 700 630-770 140
8 840 770-920 150
9 1000 920-1080 160
10 1170 1080-1270 190
11 1370 1270-1480 210
12 1600 1480-1720 240
13 1850 1720-2000 280
14 2150 2000-2320 320
15 2500 2320-2700 380
16 2900 2700-3150 450
17 3400 3150-3700 550
18 4000 3700-4400 700
19 4800 4400-5300 900
20 5800 5300-6400 1100
21 7000 6400-7700 1300
22 8500 7700-9500 1800
23 10500 9500-12000 2500
24 13500 12000-15500 3500
25 19500 15500-22500 7000

Из рис.2.5. видно, что по мере увеличения центральной частоты


критическая полоса расширяется. Поскольку имеет место однозначная
зависимость между частотой синусоидального колебания и высотой тона, то
по аналогии с частотной группой слуха было введено понятие тональных
групп слуха. Ширина тональной группы не зависит от высоты тона и
составляет 100 мел (один мел равен ощущаемой высоте звука частотой 1000
Гц при уровне интенсивности 40 дБ), поэтому оказалось удобным ввести
единицу высоты тона в одну тональную группу слуха.
17
Рисунок 2.5 – Ширина критических полос как функция центральной частоты

В честь немецкого физика Г. Баркгаузена она носит название барк (1


барк = 100 мел), равная ширине критической полосы или расстоянию между
центральными частотами соседних критических полос. Переход от одной
полосы к другой соответствует изменению высоты в 1 барк.
Функция для перехода от частоты в Гц к частоте в барках (рис.2.6)
определяется соотношением
2
 f  
z ( f )  13arctg (0,00076 f )  3,5arctg    , (2.4)
 7500  
где z(f) представляет собой частоту f в барках.
В основе приемов выделения в звуковом сигнале той части
информации, которая четко воспринимается ухом, и удаления из сигнала
всех остальных неслышимых деталей лежит эффект маскирования. Он связан
с процессом взаимодействия сигналов, что приводит к изменению слуховой
чувствительности к маскируемому сигналу в присутствии маскирующего.
Эффекты слухового маскирования зависят от спектральных и временных
характеристик маскируемого сигнала и сигнала маскирования и могут быть
разделены на две основные группы: частотное (одновременное) и временное
(неодновременное) маскирования.
Маскирование по частоте заключается в следующем: если два сигнала
одновременно находятся в ограниченной частотной области, то более слабый
сигнал становится неслышимым на фоне более сильного. Маскирование по

18
времени определяет следующий эффект: более слабый сигнал становится
неслышимым за 5 − 20 мс до включения сигнала маскирования и становится
слышимым через 50 − 200 мс после его включения.

Рисунок 2.6 – Расстояние между центральными частотами критических полос

Маскирование непосредственно связано с нелинейностью слуха. Она


проявляется в том, что при воздействии на барабанную перепонку
достаточно громкого синусоидального звука с частотой f в слуховом
аппарате формируются гармоники этого звука с частотами 2f, Зf и т.д.
Поскольку в первичном воздействующем тоне этих гармоник нет, они
получили название субъективных гармоник.
Анализ кривых маскировки (кривых порога слышимости при наличии
маскировки) показывает, что маскировка сигналов, имеющих частоту,
лежащую ниже частоты мешающего тона, проявляется значительно слабее
чем вышележащих частот. Это дает основание предполагать, что
маскирующее действие обусловлено возникновением субъективных
гармоник мешающего тона. Несмотря на то, что большую информацию об
эффекте маскировки получают при исследованиях с тональными сигналами,
при использовании возникает ряд трудностей. Например, если два тона
близки по частоте, то между ними возникают биения.
Если в качестве мешающего звука использовать узкополосный белый
шум, пороги слышимости определяются более четко, а сами кривые
получаются более симметричными.

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

Рисунок 2.7 – Кривые порога слышимости при маскировке белым шумом

На рис.2.7 приведены кривые порогов слышимости синусоидальных


звуков, полученные при маскировке белым шумом с различной спектральной
плотностью. Из рис.2.7 видно, что на низких частотах кривые практически не
зависят от частоты (примерно до 500 Гц). При дальнейшем увеличении
частоты уровень порога слышимости повышается на 3 дБ при каждом
удвоении частоты. Это примерно соответствует зависимости расширения
ширины критических полос с увеличением центральной частоты (2). Из этого
следует, что белый шум неодинаково эффективен для маскировки разных
частот. Свойство широкополосных сигналов оказывать максимальное
влияние на маскировку сигнала в пределах критических полос положено в
основу современных психоакустических алгоритмов сжатия сигналов.
Эффект маскирования в частотной области связан с тем, что в присутствии
больших звуковых амплитуд человеческое ухо нечувствительно к малым
амплитудам близких частот (рис.2.8).
Таким образом, для маскирования важнее не абсолютная громкость
звуков, а отношение мощности громкого сигнала к мощности тихого. Кроме
того, чем ближе частота к частоте маскирующего сигнала, тем сильнее
эффект маскирования .

20
Рисунок 2.8 – Изменение порога чувствительности слуховой системы при маскировании
тональным сигналом определенной частоты

Степень маскировки − это разность в децибелах между уровнем порога


слышимости маскируемого тона в присутствии маскера и его уровнем порога
слышимости в тишине. На рис.8 показаны зависимость абсолютного порога
чувствительности уха и характер его изменения в присутствии тона с
частотой 1 кГц и амплитудой в 60 дБ. Из рис.2.8 видно, что порог
слышимости имеет адаптивный характер: он повышается при появлении
каких-либо звуков и понижается в тишине. Для того, чтобы услышать более
слабые звуки на фоне более сильных, их частоты должны значительно
различаться.
Из рис.2.9 видно, что с увеличением средней частоты маскирующего
сигнала диапазон частот, где проявляется маскировка, становится шире.
Кривые маскировки являются несимметричными, они имеют крутой спад в
сторону низких частот и пологий спад в сторону высоких частот.
Если при построении кривых маскировки по оси абсцисс откладывать
не частоты ƒ, а значения высоты тона z в барках, то кривые маскировки при
разных значениях z маскирующего сигнала будут одинаковыми при одном и
том же значении уровня маскирующего сигнала (рис.2.10). Их форма при
таком представлении будет зависеть только от маскирующего сигнала, и не
будет зависеть от величины z. Маскирование имеет место не только внутри
критической полосы, оно распространяется и на соседние полосы. Маскер,
центрированный в пределах критической полосы, оказывает определенное
воздействие на порог обнаружения в соседних критических полосах.

21
Рисунок 2.9 – Изменение порога чувствительности слуховой системы при маскировании
сигналами со средними частотами полос 0,25, 1, 4 и 8 кГц и уровнем интенсивности 60
дБ

Функция протяженности маскирования, которая учитывает


маскирование как внутри, так и между полосами, задается аналитическим
выражением

SF(x)  15,81 7,5(x  0,474) 17,5 1 (x  0,474) 2 , (2.5)


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

22
наступают, если маскируемый сигнал и маскер одновременно находятся во
временном окне шириной 100−200 мс.

Рисунок 2.10 – Частотное маскирование с частотной шкалой в барках

Считается, что за это время завершается полная обработка сигнала с


выделением всех его признаков. В этом случае слуховую систему можно
рассматривать как процессор для обработки звуковых сигналов во временном
окне шириной примерно 200 мс.
Из рис.2.11 видно, что длительность типичных промежутков времени, в
пределах которых действуют предмаскирование и послемаскирование,
состав-ляет соответственно 5 −50 мс и 50 − 200 мс.

Рисунок 2.11 – Зависимость изменения порога слышимости маскируемого сигнала от


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

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

2.3 Психоакустическая модель слуховой системы


Алгоритм работы психоакустической модели слуховой системы
предназначен для вычисления глобальных маскирующих порогов и
отношения сигнал/маска и состоит из следующих этапов.
1. Спектральный анализ и нормализация уровня звукового давления
сигнала. Выборки (отсчеты) входного аудиосигнала s(n) нормализуются по
формуле
s (n)
x( n ) 
N ( 2 b 1 ) , (2.6)

где N – количество отсчетов или длина окна анализа сигнала; b –


количество разрядов или ступеней квантования на выборку; n – индекс
выборки входного сигнала.
Нормализованный сигнал x(n), используя оконную функцию Ханна с
1/16 долей перекрытия, разбивается на блоки, содержащие 512 выборок
входного сигнала. Оценка спектральной плотности мощности P(k) в дБ с
использованием 512-точечного быстрого преобразования Фурье
производится по формуле
2
N 1 2kn
j
P (k )  PN  10 log10  w(n) x(n)e
n 0
N
при 0  k 
N
2
, (2.7)

где PN − уровень нормализации мощности сигнала, равный 90 дБ; k –


индекс спектральной составляющей интервала разрешения (бина);

24
1   2 n  
w(n)  1  cos    − оконная функция Ханна.
2   N 
Поскольку уровни воспроизведения сигнала неизвестны в момент
проведения психоакустического анализа сигнала, процедура нормализации
(6) и параметр PN в (2.7) используются для оценки уровня звукового
давления независимо от входного сигнала.
2. Идентификация тональных и шумовых маскеров. Локальные
максимумы в спектральной плотности мощности P (k ) , которые превышают
соседние компоненты в пределах одного барка по крайней мере на 7 дБ,
идентифицируются как тональные. Множество тональных спектральных
максимумов ST определяется следующим выражением:

 P (k )  P( k  1), 
S T  P (k ) 
 P ( k )  P (k   k )  7 dB  , (2.8)

где P (k ) − к-й локальный спектральный максимум;

2 при 2  k  63 (0.17 5.5 кГц),



k  2,3 при 63 k  127 (5.5 11кГц),
2,6 при 127 k  256 (11 20кГц).

Значения тональных маскеров PTM (k ) в дБ вычисляются из спектральных
максимумов множества (2.8) по формуле
1
0,1P ( k  j )
PTM ( k )  10 log 10  10
j  1
, (2.9)

где P(k-1) и P(k+1) - значения спектральной плотности мощности


частотных составляющих, соседних с P(k).
После идентификации тональных маскеров значение спектральной
плотности мощности PNM (k ) в дБ единственного шумового маскера для
каждой критической полосы вычисляется из оставшихся спектральных

25
составляющих, находящихся за пределами диапазона тонального маскера
  k , по формуле
0 ,1 P ( j )
P NM ( k )  101 log 10  10
j
, (2.10)

для всех P( j)  PTM (k , k  1, k   k ) ,


1 /( l  u 1)
 u 
k   j
где   − средняя геометрическая спектральная
 j 1 
составляющая критической полосы; l и u − нижняя и верхняя границы
спектральных составляющих критической полосы соответственно.
3. Прореживание и преобразование маскеров. На этом шаге количество
маскеров сокращается на основе двух критериев: абсолютного порога
слышимости и частотного прореживания. Тональные и шумовые маскеры,
расположенные ниже абсолютного порога слышимости, отбрасываются, а
остаются лишь маскеры, удовлетворяющие условию
PTM, NM (k)  Tq (k) , (12.1)

где Tq (k ) − уровень звукового давления абсолютного порога


слышимости в тишине для k –й спектральной составляющей.
Процедура скользящего окна шириной 0,5 барка используется для
замены любой пары маскеров, появляющихся в пределах данного окна,
одним маскером с наибольшей мощностью. После выполнения данной
процедуры частотные бины (интервалы разрешения) маскеров
преобразуются согласно схеме субдискретизации

PTM, NM (i)  PTM, NM (k) , (2.12)

PTM , NM (k )  0 , (2.13)

26
 k при 1  k  48,

i   k  (k mod2) при 49  k  96,
где
k  3  ((k 1) mod4) при 97  k  232. (2.14)

Согласно (14), эффект прореживания бинов маскеров в критических
полосах 18−22 слуховой системы составляет 2:1, а для критических полос
22−25 он равен 4:1 без потерь маскирующих компонент. Данная процедура
уменьшает общее число частотных бинов тональных и шумовых маскеров от
256 до 106. Результатом выполнения данного этапа является прореженное
множество тональных и шумовых маскеров.
Данный этап удаляет спектральные компоненты, которые
присутствуют обычно ниже порога слышимости в тишине, и более слабые
тональные компоненты, находящиеся в пределах половины ширины
критической полосы (0,5 барка) сильного тонального компонента. Данная
модель использует прореженные тональные и нетональные (шумовые)
компоненты для определения глобального порога маскирования в частотной
области.
4. Вычисление индивидуальных порогов маскирования. Каждый инди-
видуальный порог характеризует маскирующий вклад в i-й частотный бин
тонального или шумового маскера, расположенного в j-м бине,
преобразованном на этапе 3. Индивидуальные пороги тонального маскера
TTM (i , j ) вычисляются по формуле

TTM (i, j )  PTM ( j )  0,275 z ( j )  SF (i, j )  6,025 , (2.15)


где PTM ( j ) − уровень звукового давления тонального маскера в дБ в j-м
частотном бине; z( j ) − частота j-го бина в барках; SF (i, j ) − функция
распространения маскирования от j-го бина маскера к i-му бину
маскируемого сигнала.

27
Функция распространения маскирования SF (i, j ) в дБ от j-го бина
маскера к i-му бину маскируемого сигнала моделируется в виде кусочно-
Pj
линейной функции уровня маскера по формуле

17z 0,4PTM( j) 11 при 3  z  1,


 (0,4P ( j)  6) при 1 z  0,
 TM z
SF(i, j)  
 17z при 0  z 1, (2.16)
(0,15P( j)TM 17)z 0,15P( j)TM при 1 z  8,

где  z  z (i )  z ( j ) − расстояние в барках для разделения маскера и


маскируемого сигнала. В данной модели для увеличения вычислительной
эффективности протяженность маскирования ограничивается окрестностью
шириной до 10 барк. Индивидуальные пороги шумового маскера T NM (i , j )

вычисляются по формуле

TNM (i , j )  PNM ( j )  0,175 z ( j )  SF (i , j )  2,025 , (2.17)


где PNM ( j ) − уровень звукового давления шумового маскера в дБ в j-м
частотном бине; z( j ) − частота j-го бина в барках. Функция SF (i, j )

вычисляется путем замены PTM ( j ) на PNM ( j ) в (2.16).


5. Вычисление глобальных порогов маскирования. Индивидуальные
пороги маскирования объединяются, чтобы оценить глобальный порог
маскирования для каждого частотного бина в подмножестве, заданном (2.14).
Данная модель основана на свойстве аддитивности маскирующих эффектов.
Глобальный порог маскирования T g (i ) вычисляется следующим образом:

 0,1T (i ) L M 
0,1TTM ( i ,l )
Tg (i )  10 log10 10 q   10   10 0,1TNM (i ,m ) 
  , (2.18)
 l 1 m 1 
где Tq (i ) − абсолютный порог слышимости для i -го частотного бина;
TTM (i, l ) и T NM (i, l ) − индивидуальные пороги маскирования, вычисленные на

28
этапе 4; L и M − количество соответственно тональных и шумовых маскеров,
идентифицируемых на этапе 3.
Таким образом, глобальный маскирующий порог для каждого
частотного бина представляет собой сигнало-зависимую, аддитивную по
мощности модификацию абсолютного порога слышимости в тишине. В этом
случае тональная кривая маскирования, нетональная (шумовая) кривая
маскирования и кривая абсолютного порога складываются для получения
общей кривой маскирования анализируемого входного сигнала.
Маскирующий эффект в каждой критической полосе слуховой системы
характеризуется величиной отношения сигнал/маска. В данной модели
отношение сигнал/маска задается величиной отношения энергии сигнала в
пределах критической полосы к энергии шумов квантования, при которой
данный шум еще маскируется полезным сигналом и не замечается слуховым
аппаратом человека.

3 Сжатие аудио сигналов

3.1 Принципы психоакустического (перцептуального) сжатия


звука
Английское слово «perceptual» является производным от слова
«perception», которое буквально означает «восприятие», «ощущение» чего-
либо. Другими словами, перцептуальное кодирование подразумевает способ
преобразования потока данных, при котором кодированию подвергается
только та часть общей информации (в данном случае звуковой), которую
способно воспринять человеческое ухо. Другая часть информации, та которая
на слух не воспринимается, из потока данных устраняется совсем. Еще одна
часть информации, параметры которой могут восприниматься только
частично, кодируется более грубо, с использованием меньшего числа
информационных разрядов, или объединяется с другой, похожей на нее
информацией. Таким образом, перцептуальное кодирование подразумевает
невосполнимую утрату значительной части исходной информации, за счет

29
чего и достигается эффект сжатия. Утраченная же информация при
воспроизведении не восстанавливается.
Основная идея перцептуального кодирования цифровых звуковых
сигналов состоит в том что, несмотря на сокращение числа разрядов,
уровень шума квантования на данной частоте остается ниже границы
слышимости. Наиболее значимое явление, известное из психоакустики,
состоит в том, что звук не может быть воспринят человеческим слухом в
двух случаях. Во-первых, если его уровень лежит ниже порога слышимости
на данной частоте, и, во-вторых, если этот звук маскируется другим, более
громким звуком, расположенным вблизи него на оси частот. Как следует из
вышесказанного, оба явления сугубо частотно зависимы. Значит, чтобы
воспользоваться ими в процедуре кодирования звука, необходимо, прежде
всего, преобразовать звуковой сигнал из временной области в частотную, то
есть определить его спектр. Затем, анализируя спектр сигнала и принимая во
внимание границу абсолютного порога слышимости (она известна из
психоакустики) человеческого уха и семейство кривых маскирования для
разных частот (такие кривые определены экспериментально и также
известны из психоакустики), можно рассчитать границу маскирования того
или иного участка спектра и выбрать требуемое число разрядов для
кодирования спектральных компонентов этого участка.
На рисунке 3.1 показаны примеры сигналов различной частоты и ин-
тенсивности. Уровень сигнала С выше абсолютного порога слышимости и
его можно было бы услышать, если бы не шумы, уровень которых выше
уровня сигнала С. Кодировать такой сигнал не имеет смысла. Уровень
сигнала D (1 кГц) выше и уровня шумов и уровня абсолютного порога
слышимости. Этот сигнал кодируется и передается. Уровень сигнала Е выше
уровня шумов, но ниже абсолютного порога слышимости Кодировать и
передавать его также бессмысленно. Следует отметить, что хотя явление
маскирования наблюдается в частотной области, продолжительность его во

30
времени невелика и составляет не более 15 мcек. Поэтому перцептуальное
кодирование следует осуществлять не в частотной, а в частотно-временной
области, то есть, время-частотное преобразование производить не реже, чем
один раз в 15 мсек
Уровень
звукового
давления (дБ)

80

D
60
A
E
40

B C

20

f(кГц)
0,02 0,05 0,1 0,2 0,5 1 2 5 10 20

Рисунок 3.1 – Примеры сигналов различной интенсивности (C, D, E):


A  абсолютная граница слышимости; B  уровень звукового давления шумов

Схема перцептуального кодера показана на рисунке 3.2.

Форми-
Вход Блок время-
Блок квантования рователь Выход потока
звуковых частотного
и кодирования потока данных
отсчётов преобразования
данных

Психоакустический
процессор

Рисунок 3.2 – Обобщенная структурная схема прецептуального кодера

Первичная операция - разложение некоторого множества входных


отсчетов на частотные составляющие, то есть определение спектра сигнала,
осуществляется в блоке время-частотного преобразования. Вместе с
соответствующим ему блоком частотно-временного преобразования
декодера он образует систему анализа-синтеза звукового сигнала Этот блок
часто называют блоком фильтров или банком фильтров (filter bank), а также

31
субполосным кодером (subband coders) или трансформирующим кодером
(transform coder)
В субполосных кодерах разложение сигнала обычно производится на
небольшое число поддиапазонов и одновременно обрабатываются соседние
по времени отсчеты сигналов В трансформирующих кодерах сигнал делится
на относительно большое число поддиапазонов и одновременно
обрабатываются соседние спектральные составляющие, могут исполь-
зоваться и другие схемы
С точки зрения математики, все банки фильтров имеют одинаковую
структуру, поскольку выполняют одну и ту же операцию — разложение
одной полосы частот на n субполос. Принципиальной разницы между
субполосным кодером и трансформирующим кодером нет Поэтому любое
название можно считать правомерным.
Психоакустический процессор анализирует либо огибающую входного
сигнала, либо огибающую его спектра, формируемого блоком время-
частотного преобразования. С учетом заложенной в его программу
психоакустической модели человеческого слуха, вычисляет гранит
маскирования входного сигнала и определяет количество разрядов, необ-
ходимое для кодирования значений его спектральных составляющих Чем
более точно определена граница маскирования, тем более высокое качество
звучания (при субъективной оценке) может быть достигнуто при
относительно низкой скорости потока бит.
Разные кодеры могут использовать разные психоакустические модели
но, поскольку объем знаний о природе маскирования одних звуков другими
на сегодняшний день все еще достаточно ограничен, ни об одной из них
нельзя сказать, что эта модель правильная, а та не совсем правильная.
Пcихоакустический процессор довольно часто называют
«психоакустической моделью» (Psychoaсoustic Model), «перцептуальной

32
моделью, (Perceptual Model) или "перцептуальной системой кодирования"
(Perceptual Encoding System).
Блок квантования и кодирования осуществляет, как следует из его
названия, квантование и кодирование спектральных составляющих звукового
сигнала. Эта операция реализуется таким образом, что шум квантования не
превышает границы маскирования. Граница маскирования при этом
вычисляется психоакустическим процессором, исходя из величины
огибающей спектра и заложенной в него психоакустичсской модели
человеческого слуха. В зависимости от алгоритма работы перцептуального
кодера, эта процедура может быть реализована самыми разными способами
— от простого блочного компандирования до сложного анализа различных
вариантов квантования с использованием дополнительных элементов
компрессии, обеспечивающих отсутствие шумов.
Блок квантования и кодирования выполняет основную часть работ по
сокращению объема передаваемых данных. Чаще всего используются два
алгоритма его работы.
1. Алгоритм поблочного компандирования или алгоритм с плавающей
запятой.
Массив данных, ограниченный либо во временной области (ряд
последовательных отсчетов сигнала), либо в частотной области (набор
спектральных составляющих в выделенной полосе частот) нормализуется по
максимуму абсолютной величины. Нормализующий коэффициент в этом
случае называется коэффициентом масштабирования (или экспонентой).
Затем все величины, входящие в выделенный массив данных (блок),
квантуются с одним и тем же шагом квантования, который определяется
исходя из общего количества бит, выделенных для данного блока
психоакустическим процессором. Им же задается и алгоритм кодирования.
Схема в этом случае получается наиболее простая, а алгоритм распределения

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

3.2 Общепризнанные методы сжатия данных


Общепризнанные Методы сжатия данных, такие, как RLE, стати-
стические и словарные методы, могут быть использованы для компрессии
звуковых файлов без потерь, но результат существенно зависит от
конкретных аудиоданных. Некоторые звуки будут хорошо сжиматься с
помощью RLE, но плохо  статистическими алгоритмами. Другим звукам
больше подходит статистическое сжатие, а при словарном подходе,
наоборот, может произойти расширение. Приведем краткую характеристику
эффективности этих трех методов при сжатии звуковых файлов.
RLE хорошо работает со звуками, которые содержат длинные серии
повторяющихся звуковых фрагментов  сэмплов.
Семпл (англ. sample ) — относительно небольшой оцифрованный
звуковой фрагмент.

34
Важны две характеристики семплов: разрешение, то есть число битов,
и частота дискретизации (семплирования). Число битов семпла определяет
его способность различать уровни амплитуды сигнала. Большое число битов
позволяет воспроизводить оцифрованный звук более качественно и точно.
Частота семплирования напрямую связана с наивысшей частотой, которая
может быть воспроизведена семплом.
При 8-битном сэмплировании это может происходить довольно часто.
Напомним, что разность электрического напряжения между двумя 8-
битовыми сэмплами n и n+1 составляет около 4мВ. Несколько секунд од-
нородной музыки, в которой звуковая волна будет меняться менее чем на
4мВ, породят последовательность из тысяч тождественных сэмплов. При 16-
битном сэмплировании, очевидно, длинные повторы встречаются реже, и,
следовательно, алгоритм RLE будет менее эффективен.
Статистические методы присваивают коды переменной длины
звуковым сэмплам в соответствии с их частотностью. При 8-битном
сэмплировании имеется всего 256 различных сэмплов, поэтому в большом
звуковом файле сэмплу могут быть распределены равномерно. Такой файл не
удастся хорошо сжать методом Хаффмана. При 16-битном сэмплировании
допускается более 65000 звуковых фрагментов. В этом случае возможно, что
некоторые сэмплы будут встречаться чаще, а другие  реже. При сильной
асимметрии вероятностей хороших результатов можно добиться с помощью
арифметического кодирования.
Методы, основанные на словарном подходе, предполагают, что
некоторые фразы будут встречаться часто на протяжении всего файла. Это
происходит в текстовом файле, в котором отдельные слова или их
последовательности повторяются многократно. Звук, однако, является
аналоговым сигналом и значения конкретных сгенерированных сэмплов в
большой степени зависит от работа АЦП. Например, при 8-битном
сэмплировании, волна в 8 мВ становится числовым сэмплом, равным 2, но

35
близкая ей волна, скажем, в 7.6 мВ или 8.5 мВ может стать другим числом.
По этой причине, речевые фрагменты, содержащие совпадающие фразы и
звучащие для нас одинаково, могут слегка отличаться при их
оцифровывании. Тогда они попадут в словарь в виде разных фраз, что не даст
ожидаемого сжатия. Таким образом, словарные методы не очень подходят
для сжатия звука.
Можно добиться лучших результатов при сжатии звука с потерей части
аудиоинформации, развивая методы компрессии, которые учитывают
особенности восприятия звука. Они удаляют ту часть данных, которая
остается неслышимой для органов слуха. Это похоже на сжатие изображений
с отбрасыванием информации, незаметной для глаза. В обоих случаях мы
исходим из того факта, что исходная информация (изображение или звук)
является аналоговым, то есть, часть информации уже потеряно при
квантовании и оцифровывании. Если допустить еще некоторую потерю,
сделав это аккуратно, то это не повлияет на качество воспроизведения
разжатого звука, который не будет сильно отличаться от оригинала. Мы
кратко опишем два подхода, которые называются подавлением пауз и
уплотнением.
Идея подавления пауз заключается в рассмотрении малых сэмплов, как
если бы их не было (то есть, они равны нулю). Такое обнуление будет
порождать серии нулей, поэтому метод подавления пауз, на самом деле,
является вариантом RLE, приспособленным к сжатию звука. Этот метод
основан на особенности звукового восприятия, которое состоит в терпимости
уха человека к отбрасыванию еле слышных звуков. Аудиофайлы,
содержащие длинные участки тихого звука будут лучше сжиматься методом
подавления пауз, чем файлы, наполненные громкими звуками. Этот метод
требует участие пользователя, который будет контролировать параметры,
задающие порог громкости для сэмплов. При этом необходимы еще два
параметра, они не обязательно контролируются пользователем. Один

36
параметр служит для определение самых коротких последовательностей
тихих сэмплов, обычно, это 2 или 3. А второй задает наименьшее число
последовательных громких сэмплов, при появлении которых прекращается
тишина или пауза. Например после 15 тихих сэмплов может последовать 2
громких, а затем 13 тихих, что будет определено как одна большая пауза
длины 30, а аналогичная последовательность из 15, 3 и 12 сэмплов, станет
двумя паузами с коротким звуком между ними.
Уплотнение основано на том свойстве, что ухо лучше различает
изменения амплитуды тихих звуков, чем громких. Типичное АЦП звуковых
карт компьютеров использует линейное преобразование при переводе
напряжения в числовую форму. Если амплитуда a была конвертирована в
число n, то амплитуда 2a будет переведена в число 2n. Метод сжатия на
основе уплотнения сначала анализирует каждый сэмпл звукового файла и
применяет к нему нелинейную функцию для сокращения числа бит,
назначенных этому сэмплу. Например, при 16-битных сэмплах, кодер с
уплотнением может применять следующую простую формулу:
сэмпл
 65536 

образ  32767  2  1  (3.1)
 
для сокращения каждого сэмпла. Эта формула нелинейно отображает
16-битные сэмплы в 15-битные числа интервала [0,32767], причем маленькие
(тихие) сэмплы меньше подвергаются искажению, чем большие (громкие).
Таблица 6.7 иллюстрирует нелинейность этой функции. На ней показано 8
пар сэмплов, причем в каждой паре разность между сэмплами равна 100. Для
первой пары разность между их образами равна 34, а разность между
образами последней (громкой) пары равна 65. Преобразованные 15-битные
числа могут быть приведены к исходным 16-битным сэмплам с помощью
обратной формулы:

37
 образ 
сэмпл  65536 log 2 1  . (3.2)
 32767 
Таблица 3.1
Отображение 16-битных сэмплов в 15-битные числа.
Сэмпл Образ Разность Сэмпл Образ Разность
100 35 30000 12236
200 69 34 30100 12283 47
1000 348 40000 17256
1100 383 35 40100 17309 53
10000 3656 50000 22837
10100 3694 38 50100 22896 59
20000 7719 60000 29040
20100 7762 43 60100 29105 65

Сокращение 16-битных сэмплов до 15-битных чисел не дает су-


щественного сжатия. Лучшее сжатие получается, если в формулах (3.1) и
(3.2) заменить число 32767 меньшим. Например, если взять число 127, то 16-
битные сэмплы будут представлены 8-битными числами, то есть,
коэффициент сжатия будет равен 0.5. Однако, декодирование будет менее
аккуратным. Сэмпл 60100 будет отображен в число 113, а при декодировании
по формуле (3.2) получится сэмпл 60172. А маленький 16-битный сэмпл 1000
будет отображен в 1.35, что после округления даст 1. При декодировании
числа 1 получится 742, что сильно отличается от исходного сэмпла. Здесь
коэффициент сжатия может быть параметром, непосредственно задаваемым
пользователем. Это интересный пример метода сжатия, при котором
коэффициент сжатия известен заранее.
На практике нет необходимости обращаться к уравнениям (3.1) и (3.2),
поскольку результат отображения можно заранее приготовить в виде
таблицы. Тогда и кодирование, и декодирование будут делаться быстро.
Уплотнение не ограничивается уравнениями (3.1) и (3.2). Более
изощренные методы, такие как  -правило и А-правило, широко при-
меняются на практике и входят во многие международные стандарты сжатия.

38
3.3 Сжатие звука в стандарте MPEG-1
Стандарт MPEG-1 сжатия видеофильмов состоит из двух основных
частей: сжатия видео и сжатия звука. В этом параграфе обсудим принципы
компрессии звука в MPEG-1, а именно, его третий слой, который широко
известен по аббревиатуре МРЗ.
Формальное имя стандарта MPEG-1 - international standard for moving
picture video compression IS 11172 (международный стандарт для сжатия
движущихся изображений). Он состоит из 5 частей, среди которых часть 3
[ISO/IEC 93] определяет алгоритм сжатия звука. Как любой стандарт,
выработанный ITU или ISO, документ, описывающий MPEG-1, имеет
нормативный и описательный разделы. Нормативный раздел содержит
спецификации стандарта. Описательный раздел иллюстрирует выбранные
концепции, объясняет причины выбора того или иного подхода, содержит
необходимые базовые сведения.
Аудиостандарт MPEG-1 описывает три метода сжатия, называемые
слоями (layer), которые обозначаются римскими числами I, II и III. Все три
слоя входят в стандарт MPEG-1, но здесь будет описан только слой III. При
сжатии видеофильмов используется только один слой, который обозначается
в заголовке сжатого файла. Любой из этих слоев можно независимо
использовать для сжатия звука без видео. Функциональные модули младших
слоев могут быть использованы старшими слоями, но более высокие слои
используют дополнительные возможности для лучшего сжатия. Интересной
особенностью слоев является их иерархическая структура, то есть, декодер
слоя III может декодировать файлы сжатые слоями I и II.
Результатом разработки трех слоев было возрастание популярности
слоя III. Кодер этого метода очень сложен, но он производит замечательную
компрессию, это обстоятельство в сочетании с тем, что декодер существенно
проще кодера, породило небывалый взрыв популярности звуковых файлов,
которые называются МРЗ-файлами. Очень легко добыть декодер слоя III, с

39
помощью которого можно прослушивать записи формата МРЗ, которые в
огромном количестве находятся во всемирной паутине.
Аудиостандарт MPEG [ISO/IEC 93] начинается нормативным
описанием формата сжатого файла для каждого из трех слоев. Затем следует
нормативное описание декодера. Описание кодера (оно разное для всех
слоев), а также двух психоакустических моделей содержится в описательном
разделе; любой кодер, способный сгенерировать корректно сжатый файл,
может считаться допустимым кодером MPEG. Имеется также несколько
приложений, в которых обсуждаются смежные вопросы, например, защита от
ошибок.
В основе сжатия звука в MPEG лежит принцип квантования. Однако,
квантуемые величины берутся не из звуковых сэмплов, а из чисел
(называемых сигналами) которые выделяются из частотной области звука.
Тот факт, что коэффициент сжатия (или битовая скорость) известен кодеру
означает, что кодер в каждый момент времени знает, сколько бит можно
назначить квантуемому сигналу. Следовательно важной частью кодера
является (адаптивный) алгоритм назначения битов. Этот алгоритм
использует известную битовую скорость и частотный спектр самых
последних аудио сэмплов для определения размера квантованного сигнала
так, чтобы шум квантования (разность между исходным сигналом и его
квантованным образом) была неслышимой (т.е., она находится ниже порога
маскирования, который обсуждался выше).
Психоакустические модели используют частоту сжимаемого звука, но
входной файл содержит звуковые сэмплы, а не звуковые частоты. Эти
частоты необходимо вычислить с помощью сэмплов. По этой причине
первым шагом аудиокодера MPEG является дискретное преобразование
Фурье, при котором 512 последовательных звуковых сэмплов преобразуется
в частотную область. Поскольку количество частот может быть большим, их
группируют в 32 подполосы одинаковой ширины. Для каждой подполосы

40
вычисляется число, которое указывает на интенсивность звука в данной
подполосе. Эти числа, называемые сигналами, затем квантуются. Грубость
квантования на каждой подполосе определяется с помощью порога мас-
кирования этой подполосы, а также с помощью числа оставшихся для
кодирования битов. Порог маскирования для каждой подполосы вычисляется
с помощью психоакустической модели.
MPEG использует две психоакустические модели для частотного и
временного маскирования. Каждая модель описывает, как громкий звук
маскирует другие звуки, которые близки к этому звуку по частоте или по
времени. Модель разделяет область частот на 24 критические полосы и
определяет, как эффекты маскирования проявляются в каждой из полос.
Эффект маскирования, конечно, зависит от частот и амплитуд тонов. Когда
звук разжимается и воспроизводится, пользователь (слушатель) может
выбрать любую амплитуду звучания, поэтому психоакустическая модель
должна быть разработана для наихудшего случая. Эффекты маскирования
также зависят от природы источника сжимаемого звука. Источник может
быть музыкальноподобным или шумоподобным. Две психоакустические
модели основаны на результатах экспериментальной работе исследователей
за многие годы.
Декодер должен быть быстрым, поскольку ему, возможно, предстоит
декодировать видео и аудио информацию в режиме реального времени.
Поэтому он должен быть простым. Значит, у него нет времени использовать
психоакустическую модель или алгоритм назначения битов. То есть, сжатый
файл должен содержать исчерпывающую информацию, которую декодер
будет использовать при деквантовании сигналов. Эта информация (размер
квантованных сигналов) должна быть записана кодером в сжатый файл и она
требует некоторое дополнительные расходы, которые будут удовлетворены
за счет оставшихся битов.

41
(а)

(b)
Рисунок 3.3 – Кодер звука MPEG (a) и его декодер (b).
На рис 3.3 приведена блок-схема основных компонентов кодера и
декодера звука в MPEG. Вспомогательные данные определяются
пользователем; обычно они связаны с конкретными приложениями. Эти
данные не являются обязательными.

3.4 Кодирование в частотной области


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

42
совместимой в пределах данной критической полосы, но различается между
полосами. К сожалению, каждая из низкочастотных полос перекрывает
несколько критических полос, в результате алгоритм назначения битов не
может оптимизировать число присваиваемых битов квантованному сигналу в
пределах этих подполос. Когда несколько критических полос накрываются
подполосой X, алгоритм назначения битов выбирает критическую полосу с
наименьшей шумовой маской и использует эту подполосу для нахождения
числа присваиваемых битов квантованным сигналам из подполосы X.
Второй компромисс связан с обращением банка фильтров, который
используется декодером. Исходное преобразование из временной области в
частотную теряет часть информации (даже до квантования). Следовательно
декодер получает данные, которые немного хуже; он делает обратное
преобразование из частотной области во временную, и тем самым вносит еще
большее искажение. Поэтому разработчики этих двух банков фильтров (для
прямого и обратного преобразований) постарались минимизировать эту
потерю.
Третий компромисс относится к конкретным фильтрам. Смежные
фильтры должны идеально пропускать разные диапазоны частот. На
практике они имеют существенное частотное перекрытие. Звук, состоящий
из одного чистого тона, может попасть в два фильтра и породить сигналы
(которые потом будут квантоваться) в две из 32 подполосы вместо одной.
Многофазный банк фильтров использует (помимо других
промежуточных структур данных) буфер X для хранения 512 входных
сэмплов. Буфером служит очередь FIFO (first-in-first-out, первым вошел 
первым вышел), которая всегда содержит не более 512 последних входных
сэмплов. На Рис.3.4 показаны пять основных шагов алгоритма многофазного
фильтрования.

43
Алгоритм читает очередные 32 сэмпла из входного файла и заносит их
в буфер, одновременно сдвигая его. Буфер всегда содержит 512 самых
последних сэмплов. Сигналы S t [i ] для 32 подполос вычисляются по формуле:
63 7
S t [i ]    M C k  64 j  X k  64 j , i  0,..., 31 .
k 0 j  0
i ,k (3.3)

Здесь S t [i ] обозначает сигнал подполосы i в момент времени t. Вектор С


состоит из 512 коэффициентов окна анализа, которые жестко заданы
стандартом. М обозначает матрицу анализа с компонентами

 (2i  1)(k  16) 


M i ,k  cos , i  0,...,31; k  0,...,63. (3.4)
 64 
1.Поместить 32 новых сэмпла в буфер FIFO X .

2. Окно сэмплов Z i  Ci  X i , для i  0,...,511.

7
3.Промежуточное вычисление : Yi  i 0 Z i 64 j для i  0,...,63.

63
4.Вычисление 32 сигналов : S i  k 0 M i ,k  Yk для i  0,...,31 .

5. Дать на выход 32 подполосных сигнала S i .

Рисунок 3.4 – Многофазный банк фильтров.


Отметим, что выражение в круглых скобках уравнения (3.3) не зависит
от i, а числа M i ,k в (3.4) не зависят от j. (Эта матрица является модификацией
матрицы хорошо известного преобразования DCT, поэтому она называется
матрицей MDCT). Это особенность отражается в компромиссе, который
позволяет уменьшить число арифметических операций. В самом деле, 32
сигнала S t [i ] вычисляются с помощью всего 512  32  64  2560 умножений и
64  7  32  63  2464 сложений, что дает примерно 80 умножений и 80
сложений на один сигнал. Другой важный момент состоит в децимации

44
(прореживании) сэмплов. Весь банк фильтров производит 32 выходных
сигнала для 32 сэмплов. Поскольку каждый из 32 фильтров порождает по 32
сигнала, их следует проредить, оставив только один сигнал на фильтр.
Рис.3.5 графически иллюстрирует работу кодера и декодера при
выполнении шага многофазного фильтрования. Часть (а) рисунка показывает
буфер X, состоящий из 64 сегментов по 32 звуковых сэмпла в каждом. Буфер
сдвигается на один сегмент вправо перед чтением следующих 32 новых
сэмплов из входного файла, которые попадают в буфер слева. После
умножения буфера X на коэффициенты окна С, результат помещается в
вектор Z. Компоненты этого вектора делятся на сегменты по 64 числа в
каждом, и эти сегменты складываются, образуя вектор Y. Вектор Y
умножается на матрицу MDCT, и результат попадает в окончательный вектор
из 32 компонент  сигналов подполосы.
Часть (b) рисунка показывает операции, совершаемые декодером.
Группа из 32 сигналов подполосы умножается на матрицу IMDCT с
компонентами N i ,k , и результат заносится в вектор V, состоящий из двух

сегментов по 32 числа в каждом. Эти сегменты задвигаются в буфер FIFO V


слева. Буфер V имеет ячейки для последних 16 векторов V (то есть, для
16  64 , или 1024 чисел). Новый вектор U из 512 компонентов образуется из
32 альтернативных сегментов буфера V, как показано на рисунке. Затем
вектор U умножается на 512 коэффициентов Di окна синтеза (аналогично
коэффициентам Ci окна анализа, используемого кодером) для вычисления
вектора W. Этот вектор делится на 16 сегментов по 32 компоненты в каждом
и все сегменты складываются. Результатом служат 32 реконструированных
звуковых сэмпла. На Рис.3.6 приведена блок-схема, иллюстрирующая весь
процесс вычислений. Компоненты матрицы синтеза IMDCT задаются
формулой:

45
 (2k  1)(i  16) 
N i ,k  cos , i  0,...,63; k  0,...,31.
 64 
Сигналы подполос, вычисленные на стадии фильтрования, затем
собираются в кадры, содержащие по 1152 сигнала. После этого сигналы
масштабируются и квантуются на основе психоакустической модели,
используемой кодером, с применением алгоритма назначения битов.
Квантованные величины, вместе с коэффициентами масштабирования и
информацией о квантовании (число уровней квантования в каждой
подполосе) записываются в сжатый файл (здесь также используется
кодирование Хаффмана).

(a)

46
(b)
Рисунок 3.5 – Кодер звука MPEG (a) и его декодер (b).

1.Прочитать 32 новых сигнала S i , i  0,..., 31 .

2.Сдвинуть  буфер FIFO Vi  Vi  64 , i  1023 ,...,64.

32
3.Умножить :Vi  k  0 N i , k S k , i  0,...,63.

4.Построить 512 компонентов вектора U :


Для i  0 до 7 выполнить,
Для j  0 до 31 выполнить,
U j  64 i  U j 128 i
U 32  j  64 i  U 96  j 128 i

5. Построить W . Для i  0 до 511 выполнить, Wi  U i  Di .

15
6.Вычислить 32 сэмпла. Для j  0 до 31 выполнить, S i  i  0 W j  32i .

7.Выдать на вход 32 сэмпла S j .


В начале вектор V инициализируется нулями

Рисунок 3.6 – Реконструкция аудио сэмплов.

47
3.5 Психоакустические модели
Психоакустические модели дают возможность кодеру определить
порог допустимого шума квантования на каждой подполосе. Эта информация
будет использоваться алгоритмом назначения битов, что в сочетании с
количеством имеющихся битов задаст число уровней квантования для
каждой подполосы. Стандарт MPEG устанавливает две психоакустические
модели. Обе модели могут использоваться любым слоем, но только модель II
выдает особую информацию для слоя III. На практике модель I используется
только слоями I и II. Слой III может работать с любой моделью, но лучшие
результаты получаются с моделью II.
Стандарт сжатия звука MPEG разрешает значительную свободу при
реализации моделей. Изощренность этой реализации в конкретном кодере
зависит от требуемой степени сжатия. В приложениях широкого
потребления, в которых не требуется высокий фактор сжатия,
психоакустическая модель может вовсе отсутствовать. В этом случае
алгоритм назначения битов не использует соотношение SMR (signal to mask
ratio, соотношение сигнал/маскирование).
Основные шаги двух моделей состоят в следующем:
1. С помощью преобразования Фурье делается переход от исходных n
равно 36 или 12) и получает n/2 (то есть 18 или 6) коэффициентов
преобразования Si. Прямое и соответствующее ему обратное
преобразование задаются формулами звуковых сэмплов к их частотным
коэффициентам. Это делается отдельно и не так, как в многофазным
фильтрах, поскольку для моделей требуется более высокое разрешение
для более аккуратного определения порогов маскирования.
2. Полученные частоты группируются по критическим полосам, но не
по тем 32, что использовались в основной части кодера.
3. Спектральные значения критических полос разделяются на тональные
(подобные синусоиде) и нетональные (шумоподобные) компоненты.

48
4. Перед определением порогов маскирования шумов для различных
критических полос, модель применяет функцию маскирования к
сигналам из разных критических полос. Эта функция находится
эмпирически, то есть, из экспериментов.
5. Модель вычисляет пороги маскирования для каждой подполосы.
6. Значение SMR (signal to mask ratio, соотношение
сигнал/маскирование) вычисляется для каждой подполосы. Оно равно
частному от деления энергии сигнала подполосы на минимальный порог
маскирования этой подполосы. Множество из 32 значений SMR, по
одному на подполосу, образует выходные данные модели.

3.6 Кодирование: слой III


Слой III использует гораздо более сложный алгоритм, чем первые два
слоя. Это отражается в более высокой степени сжатия оцифрованного звука.
Разница между этими слоями заметна уже на первом шаге алгоритма,
который осуществляет фильтрование. Применяется один и тот же банк
фильтров, но после него совершается модифицированное дискретное
косинус-преобразование (MDCT). Это преобразование исправляет некоторые
ошибки, внесенные многофазными фильтрами, а также подразделяет
подполосы, чтобы сделать их более близкими к критическим полосам.
Декодер слоя III должен применить обратное MDCT, поэтому его работа
усложняется. Преобразование MDCT можно совершать либо над короткими
блоками по 12 сэмплов (что дает 6 коэффициентов преобразования), либо над
длинными блоками по 36 сэмплов (тогда образуется 18 коэффициентов).
Независимо от выбора длины блока, последовательные преобразованные
блоки имеют существенное перекрытие, как изображено на Рис.3.7. На этом
рисунке блоки, показанные выше жирной линии производят лучший спектр
для стационарных звуков (когда соседние сэмплы различаются не сильно), а
короткие блоки более предпочтительны, когда звуковые сэмплы варьируются
быстро.

49
Преобразование MDCT использует n входных сэмплов xk (где n равно
36 или 12 и получает n/2 (то есть 18 или 6) коэффициентов преобразования
S i . Прямое и обратное преобразование задаются формулами:

n1
  n  n
Si   xk cos 2k 1 (2i 1) , i  0,1,..., 1,
k 0  2n  2  2
n / 21
  n 
xk   S cos 2n 2k 1 2 (2i 1) ,
i 0
i k  0,1,...,n 1.

Размер короткого блока составляет треть от длинного, поэтому их


можно перемешивать. При построении кадра преобразование MDCT может
применять или только длинные блоки, или только короткие (их будет в три
раза больше), или длинные блоки для двух низкочастотных подполос, а в
остальных 30 подполосах использовать короткие блоки. В этом компромиссе
длинные блоки обеспечивают лучшее разрешение для низких частот, где это
наиболее полезно, а короткие блоки лучше поддерживают временное
разрешение для высоких частот.

Рисунок 3.7 – Перекрытие окон MDCT.

Раз MDCT обеспечивает лучшее частотное разрешение, то


одновременно в силу принципа неопределенности оно имеет более плохое
временное разрешение [Salomon 2000]. На практике это выражается в том,
что квантование коэффициентов MDCT порождает ошибки, которые
распределены по времени, и кроме того образует искажения, которые
проявляются в виде предшествующего эха.
Психоакустическая модель, применяемая слоем III, имеет
дополнительные признаки для обнаружения пре-эха. В таких случаях слой III
выполняет сложный алгоритм назначения битов, который занимает биты из

50
доступного накопителя для того, чтобы временно увеличить число уровней
квантования и тем самым побороть пре-эхо. Слой III также способен
переключаться на короткие MDCT блоки, сокращая окно, если имеются
подозрения в возможном появлении пре-эха. (Психоакустическая модель
слоя III вычисляет величину, которая называется «психоакустической
энтропией» (РЕ) и кодер «подозревает» появление условий для пре-эха, если
РЕ>1800.)
Коэффициенты МDСТ пропускаются через некоторый процесс
удаления артефактов, которые вызваны перекрытием частот в 32 подполосах.
Это называется удалением паразитного сигнала. Эта процедура применяется
только к длинным блокам. MDCT использует 36 входных сэмплов для
вычисления 18 коэффициентов, и удаление паразитного сигнала делается с
помощью перекрестной операции между двумя множествами из 18
коэффициентов. Индекс i обозначает расстояние от последней строки
предыдущего блока до первой строки текущего блока. Вычисляется 8
перекрестных операций с различными весовыми коэффициентами csi и cai ,
которые равны:

1 ci
csi  cai 
, , i=0,1,…7.
1  ci2 1  ci2
Восемь величин ci предписаны стандартом: -0.6, -0.535, -0.33, -0.185, -
0.095, -0.041, -0.0142, -0.0037.
Квантование в слое III является неравномерным. Квантователь сначала
увеличивает мощность всех величин на 3/4. Квантование делается по
формуле

 xr (i ) 3 / 4 
is (i )  n int    0.0946,
 quant  

где xr(i)  абсолютная величина сигнала подполосы i, «quant» - размер


шага квантования, «nint» - функция, вычисляющая ближайшее целое, a is(i) 

51
это результат квантования. Как и в слоях I и II, квантование в слое III
является серединным, то есть, значения около нуля квантуются в 0, и
квантователь симметричен относительно нуля.
В слоях I и II каждая подполоса может иметь свой масштабный
множитель. Слой III использует полосы масштабных множителей. Эти
полосы перекрывают несколько MDCT коэффициентов, а их ширина близка к
ширине критических полос. При этом работает особый алгоритм
распределения шумов, который выбирает величины масштабных
множителей.
Слой III использует коды Хаффмана для дальнейшего сжатия
квантованных величин. Кодер генерирует по 18 MDCT коэффициентов на
каждую подполосу. Далее происходит упорядочение получившихся 576
коэффициентов (=18  32) в порядке возрастания частот (для коротких блоков
имеется по три множества коэффициентов на каждую частоту). Напомним,
что 576 коэффициентов соответствуют исходным 1152 звуковым сэмплам.
Множество упорядоченных коэффициентов делится на три зоны, и каждая
зова кодируется своими кодами Хаффмана. Это связано с тем, что в разных
зонах коэффициенты имеют различные статистические распределения.
Значения высоких частот имеют тенденцию к уменьшению и появлению
нулевых серий, а низкочастотные коэффициенты, обычно, имеют большие
значения. Таблицы кодов предписываются стандартом . Разделение
квантованных величин на зоны также позволяет лучше контролировать
распространение возможных ошибок.
Начав со значений наивысших частот, где встречается много нулей,
кодер выбирает первую зону как последовательность нулей наивысших
частот. Маловероятно, но возможно, отсутствие такой последовательности.
Последовательность ограничивается четным числом нулей. Эту
последовательность не нужно кодировать, так как ее значения легко
определить, зная длину второй и третьей зоны. Но ее длина должна быть

52
четной, поскольку другие две зоны кодируют свои значения группами четной
длины.
Вторая зона состоит из последовательности, в которую входят лишь
три значения: -1, 0 и 1. Эта зона называется «count 1». Каждый код Хаффмана
для этой зоны кодирует четыре последовательные величины, поэтому число
различных кодов должно быть равно 34 = 81. Конечно, длина этой зоны
должна быть кратно 4.
Третья зона, которая состоит из «больших значений», содержит все
остальные коэффициенты. Её можно (опционно) разделить еще на три части,
причем каждая может иметь свой собственный код Хаффмана. Каждый код
Хаффмана кодирует два числа.
Наибольшая таблица кодов Хаффмана, предопределенная стандартом,
содержит 16  16 кодов. Более высокие значения кодируются механизмом esc-
кодов.
Кадр F слоя III организован следующим образом: он начинается
обычным 32-битным заголовком, за которым следует (опционный) код CRC
длины 16 бит. Затем следует последовательность из 59 бит дополнительной
информации. Далее располагается часть основных данных. За
дополнительная информацией следует сегмент основных данных
(дополнительная информация содержит, помимо прочего, длину сегмента
данных), однако эти данные не обязательно будут данные именно кадра F!
Здесь могут находиться данные из других кадров, поскольку кодер
использует накопитель битов.
Концепция накопителя битов очень полезна. Кодер может занять биты
из накопителя, если ему необходимо увеличить число уровней квантования,
из-за подозрения в появлении пре-эха. Кроме того, кодер может положить в
накопитель биты, если ему нужно меньше бит, чем среднее их число,
требуемое для кодирования кадра. Однако, занимать биты можно только при

53
условии их возврата. Накопитель не может содержать отрицательное число
битов.
Дополнительная информация о кадре включает в себя 9-битные
указатели на начало основных данных кадра. Вся структура сегментов
данных, а также указатели и накопитель битов показаны на Рис.3.8. На этом
рисунке кадру 1 требовалось только половина его битов, поэтому вторая
половина осталась в накопителе; в конечном счете эти биты были
использованы кадром 2. Этому кадру необходимо немного дополнительного
пространства из своего собственного сегмента, а остаток лежал в накопителе.
Эти биты использовались кадрами 3 и 4. Кадру 3 вовсе не нужны его
собственные биты, поэтому весь сегмент остался в накопителе и был
использован кадром 4. Ему также потребовалось часть битов своего сегмента,
а остаток перешел к кадру 5.
Назначение битов слоем III похоже на алгоритм слоев I и II, но имеет
дополнительную сложность из-за распределения шумов. Кодер распределяет
биты, делает надлежащее квантование подполосных сигналов, кодирует их
кодами Хаффмана и считает общее число битов, сгенерированных
процессом. В этом состоит внутренний цикл назначения битов. Алгоритм
распределения шумов (также называемый процедурой анализа-синтеза)
становится внешним циклом, когда кодер вычисляет шум квантования (то
есть, он деквантует и восстанавливает сигналы подполос и вычисляет
разность между исходным сигналом и его восстановленной копией). Если
обнаруживается, что некоторые перемасштабированные полосы имеют
больший шум, чем позволяет психоакустическая модель, то кодер
увеличивает число уровней квантования для этих полос и повторяет весь
процесс.

54
Рисунок 3.8 – Структура сжатого файла слоя III

Процесс обрывается при выполнении следующих трех условий:


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

4 Избыточность видеоданных и основные ее типы

4.1 Понятие избыточности


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

55
дальнейшем, если это отдельно не оговорено, под термином кодирование
будет пониматься именно эффективное кодирование.
Термин компактное представление означает выбор наиболее удачной, с
точки зрения минимизации объема, системы сообщений, используемой для
представления определенного количества информации. При этом между
понятиями объема информации и количества информации должны быть про-
ведены четкие различия. Они не являются синонимами. Объем, который
занимает информация, измеряется в битах и характеризует место, занимаемое
данной информацией на каком-либо носителе, а количество информации,
также измеряемое в битах, отражает ценность этой информации для
человека. В качестве примера рассмотрим случай, когда два разных человека,
один — многословный, а другой — точный и лаконичный, рассказывают
одну и ту же историю. Тогда количество информации определяется фактами,
о которых идет речь, а объем — словами, использующимися для изложения
информации. Если два рассказчика используют разное количество слов, то
возникают два варианта одной истории, и, по крайней мере, один из них
будет содержать несущественные данные. Это означает, что такой вариант
содержит данные (т.е. слова), которые либо несут несущественную
информацию, либо являются повторением уже известного. В этом случае
говорят об избыточности данных.
В технике связи объем информации определяется количеством
сообщений некоторой системы сообщений заданного источника,
наблюдаемых на его выходе, а количество информации, переносимое
каждым сообщением будет пропорционально отрицательному значению
логарифма вероятности появления этого сообщения на выходе источника
сообщений. От выбора системы сообщений зависит объем, которые эти
сообщения будут занимать. Поэтому, можно говорить, что одна система
сообщений более избыточна по сравнению с другой системой сообщений,
если ее сообщения объемнее, чем сообщения второй системы. При этом

56
соответствующие сообщения первой и второй систем будут нести
одинаковое количество информации.
Избыточность данных является центральным понятием теории
эффективного кодирования. Это не абстрактное понятие, а измеримая
математическая категория. Пусть n1 и n2 означают число элементов в двух
сообщениях, представляющих одну и те же информацию. Тогда
относительная избыточность R D первого сообщения (характеризуемого
значением n1 ) по отношению ко второму сообщению может быть определена
как [6]

1
RD  1  , (4.1)
CR
где величина C R , обычно называемая коэффициентом сжатия, есть

n1
CR  . (4.2)
n2
В случае, когда n2  n1 , получим: C R  1 и RD  0 , что говорит о том, что
первый способ представления информации не содержит избыточных данных
по сравнению со вторым. Если n2  n1 , то C R   и RD  1 , что означает
значительное сжатие и высокую избыточность данных первого сообщения по
отношению ко второму. Наконец, если n2  n1 , то C R  0 и RD   , и
значит, что второе сообщение содержит много избыточных данных по
сравнению с первым. Как правило, такое увеличение количества данных
является нежелательным. Вообще, значения C R и R D находятся внутри
открытых интервалов (0, ) и (,1) , соответственно. На практике,
коэффициент сжатия, такой как 10 (или 10:1), означает, что первая система
сообщений (в среднем) содержит 10 единиц хранения информации
(например, бит) на каждую одну единицу второй (то есть более компактной)
системы. Соответствующее этому значение избыточности 0,9 и означает, что

57
90% объема информации, занимаемого сообщениями первой системы,
является избыточным.
Развитие видеокодирования начиналось с кодирования неподвижных
черно-белых изображений, затем изображения стали полутоновыми и
цветными. Еще позже стали кодировать не одно, а серию изображений. Так
постепенно стали появляться методы кодирования, предназначенные для
кодирования видео. Однако все эти методы, по-прежнему, работают с
последовательностью неподвижных изображений, следующих друг за другом
с определенной частотой, чаще всего частота равна 25 – 30 Гц. Поэтому
избыточность, характерная для изображений, присутствует и в
видеопоследовательностях.
В задаче эффективного кодирования изображений различаются и могут
быть использованы три основных вида избыточности данных: кодовая
избыточность, межэлементная избыточность, и визуальная избыточность [6].
Сжатие данных достигается в том случае, когда сокращается или устраняется
избыточность одного или нескольких из вышеуказанных видов.
Современные алгоритмы эффективного кодирования классифицируются по
типу удаляемой избыточности и каждый вид избыточности характерен для
разных видов источников. Поэтому, умение определять тип избыточности,
позволяет выбирать тот алгоритм, который подходит для эффективного
кодирования заданного источника, наилучшим образом.

4.2 Кодовая избыточность


Объясним понятие кодовой избыточности на примере эффективного
кодирования бинарного (т.е. черно-белого) изображения. Предварительно
разбив это изображение на одинаковые прямоугольные блоки заданного
размера. В таком представлении изображения можно выделять блоки
различных типов, в зависимости от того, какие пиксели внутри блока белые,
а какие черные. Количество различных типов блоков для бинарного
изображения будет равно 2 m*n , где m и n –геометрические размеры блока.

58
Предположим, что дискретная случайная переменная rk , представляет
тип блока бинарного изображения, и что каждое значение rk появляется с
вероятностью p (rk )

nk
p (rk )  k  0,1, 2, , L  1 , (4.3)
n
где L - общее количество различных типов блоков, nk - количество
блоков, имеющих тип k , a n - общее число блоков в изображении. Если
число битов, используемых для представления каждого из значений rk , равно
l (rk ) , то среднее число битов, требуемых для представления значения одного

блока, равно
L 1
Lср   l (rk )  p (rk ) . (4.4)
k 0

Итак, средняя длина всех кодовых слов, присвоенных различным типам


блоков, определяется как сумма произведений числа битов, используемых
для представления каждого типа блока, на вероятность появления блока
этого типа. Таким образом, общее число битов, требуемое для кодирования
изображения состоящего из M  N блоков, составит M  N  Lср .
Кодирование типа блока равномерным кодом длинны m упрощает
правую часть уравнения (4.4). Поскольку вместо величины l (rk )

подставляется m , а сумма p (rk ) по всем 0  k  L  1 равна 1, то Lср  m .


Присвоение кодовых слов с меньшим числом битов более вероятным
типам блоков, и наоборот, более длинных кодовых слов менее вероятным
типам, позволяет достичь сжатия данных. Такой подход называют
неравномерным кодированием (VLC – Variable Length Codes). Если тип блока
изображения кодируются некоторым способом, требующим большего числа
символов, чем это строго необходимо (т.е. при кодировании равномерным
кодом), то говорят, что изображение имеет кодовую избыточность. Вообще,

59
кодовая избыточность возникает всегда, когда при выборе кодовых слов,
присваиваемых событиям (например, типам блоков), знания о вероятностях
событий не используется в полной мере. Когда тип блока изображения
представляется равномерным двоичным кодом, это происходит почти всегда.
Основанием для возникновения кодовой избыточности в этом случае
является то, что изображения, как правило, состоят из объектов, имеющих
регулярную, в некотором смысле предсказуемую морфологию (форму),
причем размеры объектов на изображении обычно превышают размеры
блоков. Прямым следствием этого является тот факт, что на большинстве
изображении определенные типы блоков оказываются более вероятными,
чем другие. Равномерное кодирование типов блоков таких изображений, как
следует из названия, присваивает кодовые слова одинаковой длины как более
вероятным, так и менее вероятным типам. В результате не обеспечивается
минимизация средней длины и появляется кодовая избыточность.
Кодовую избыточность некоторого источника можно численно
выразить с помощью следующей формулы:
L 1
log 2 L   p (rk )  log 2 ( p (rk ))
k 0
H макс  H реал
D  (4.5)
log 2 L H макс

Здесь
H   pi log pi среднее количество информации,
i

приходящееся на один символ источника сообщений.

4.3 Межэлементная избыточность


Существует другая важная форма избыточности данных, которая
напрямую связана с межэлементными связями внутри изображения [6].
Поскольку значение любого элемента изображения может быть достаточно
точно предсказано по значениям его соседей, то информация, содержащаяся
в отдельном элементе, оказывается относительно малой. Большая часть
вклада отдельного элемента в изображение является избыточной; она может
60
быть “угадана” на основе значений соседних элементов. Для отражения
подобной межэлементной связи был введен термин межэлементная
избыточность.
Для уменьшения межэлементной избыточности в изображении,
двумерный массив пикселей, обычно используемый для наблюдения и
интерпретации, должен быть преобразован в некоторый более рациональный
(но обычно «не визуальный») формат. Например, для представления
изображения может быть использована разность между соседними
элементами. Преобразования такого типа (которые устраняют
межэлементную избыточность) классифицируются как отображения. Если из
преобразованного набора данных может быть восстановлено исходное
изображение, то в таком случае говорят об обратимом отображении.
Примером обратимого отображения может служить кодирование длин
серий (RLE – Run Length Encoding). Другим примером может служить
словарное кодирование.

4.4 Психовизуальная избыточность


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

61
Психовизуальная избыточность принципиально отличается от других
видов избыточности, рассмотренных ранее. В отличие от кодовой или ме-
жэлементной избыточности, психовизуальная избыточность связана с ре-
альной и количественно измеримой зрительной информацией. Ее удаление
возможно лишь постольку, поскольку такая информация не является
существенной (не воспринимается) при обычном визуальном восприятии.
Человеческая зрительная система при восприятии окружающего мира в
первую очередь оценивает размеры, форму и взаимное расположение
объектов. Цветовая информация является второстепенной, в некоторых
ситуациях даже мешающей, но, тем не менее, неотъемлемой частью,
позволяющей человеку вести восприятие на более качественном уровне.
Понятно, что видеопоследовательность, как совокупность
неподвижных изображений, обладает большим запасом психовизуальной
избыточности связанной с наличием цветовой информации, которая
возникает в результате того, что глаз не способен воспринять все цветовые
оттенки. Однако даже черно-белое изображение обладает психовизуальной
избыточностью.
Определяющим свойством зрительной системы человека при
восприятии черно-белых изображений является разрешающая способность
глаза. «Разрешающая способность глаза характеризуется степенью различия
близко расположенных мелких деталей, штрихов и точек, и принимается за
одну угловую минуту» [10]. Разумеется, такая разрешающая способность
будет только у человека со стопроцентным зрением. Что бы оценить размеры
и расстояния между самыми мелкими деталями вводится понятие
разрешения изображения.
Разрешение изображения характеризуется количеством пикселей
приходящихся на один дюйм по ширине или по высоте этого изображения
(как правило, геометрические размеры пикселя считаются одинаковыми, т.е.
пиксели квадратные) и обозначается dpi (dot-per-inch). Если изображение

62
формата А4 с размерами 210 мм на 297 мм, что соответствует 8,27 in на 11,69
in, содержит 1728 пикселей по ширине и 2339 пикселей по высоте, то
2339 1728
разрешение такого изображения составит   200 dpi , а сторона
11, 69 8, 27

пикселя будет иметь размер 5 103 in  0,12 мм .


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

Рисунок 4.1 – Определение разрешающей способности глаза

На рисунке 4.1 показаны две геометрические точки, находящиеся на


расстоянии a друг от друга, и точка наблюдения, находящаяся на расстоянии
b от плоскости в которой лежат наблюдаемые геометрические точки и на

равном удалении от каждой из них. Если угол  характеризует величину


разрешающей способности глаза, то расстояние между геометрическими
точками, так же может её характеризовать, при условии что задана дистанция
наблюдения b. Будем считать, что изображение рассматривается с
расстояния в 25 см. Такое расстояние является расстоянием наилучшего
зрения для человека [13].
Учитывая, что угол измеряется в угловых минутах, расстояние между
геометрическими точками можно рассчитать следующим образом:

63
  
a  2  b  tg  . (4.6)
 2  60 

Подставляя в формулу 4.6 b  250 мм и   1 , найдем что:

 1 
a  2  250  tg    0, 073 мм .
 2  60 
Это означает, что нормальный человек может различить две точки с
расстояния в 250 мм, только если эти точки находятся на расстоянии
большем или равном 0,073 мм. Если известно минимальное расстояние
между точками, то количество точек находящихся на таком расстоянии в
одном дюйме можно рассчитать так:

1 in 25, 4 мм
1   1  350 dpi .
a 0, 073
Итак, разрешающая способность нормального человеческого глаза 350
dpi, а разрешение черно-белого изображения 200 dpi. Однако указанные
величины имеют разную природу, хотя и измеряются в одинаковых
единицах: разрешающая способность – количество различаемых точек в
дюйме, а разрешение – количество точек в дюйме. Если в одном дюйме есть
200 пикселей, то в этом дюйме можно поместить максимум 100 не
сливающихся точек. Для отображения 350 отдельных точек потребуется 700
смежных пикселей. Таким образом, сравнивая разрешение изображения и
разрешающую способность человеческого глаза, последнюю величину,
выраженную в dpi, нужно удваивать.
Известно, что для качественных сканеров точность воспроизведения
черно-белой границы +/- 1 элемент разрешения вдоль строки развертки,
считается более чем приемлемой [29]. Если же вспомнить о том, что глаз
человека имеет разрешающую способность 350 dpi, что соответствует
способности различать объекты (точки, штрихи и т.д.) находящиеся на

64
расстоянии не менее 0,073 мм, то можно оценить численный критерий
качества восприятия изображения следующим образом. Так как в
изображении формата А4 с разрешением 200 dpi, т.е. в одном дюйме можно
разместить максимум 100 точек, то минимально возможное расстояние
1 25.4
между точками будет равно in  мм  0,254 мм или два пикселя. Таким
100 100
образом, при внесении искажений изменяющих локальный контур на один
пиксель относительно оригинального положения, отдельные области
изображения будут оставаться различимыми для наблюдателя, так как
расстояние между ними будет оставаться больше, чем минимально-
различимое зрительной системой здорового человека.

5.5 Временная избыточность


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

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

5 Основы цифрового представления визуальных сигналов

5.1 Понятие глубины цветопередачи изображения


Статические растровые изображения представляют собой двумерный
массив чисел. Элементы этого массива называют пикселями (от английского
pixel - picture element). Все изображения можно подразделить на две группы -
с палитрой и без нее. У изображений с палитрой в пикселе хранится число -
индекс в некотором одномерном векторе цветов, называемом палитрой. Чаще
всего встречаются палитры из 16 и 256 цветов.
Изображения без палитры различаются глубиной цветопередачи.
Глубина цветопередачи это количество бит необходимое для представления
значения одного пикселя изображения. Для двухградационных изображений
каждый пиксель представлен одним битом, для полутоновых изображений,
или изображений в градациях серого (grayscale), каждый пиксель
представлен одним байтом или восемью битами, таким образом, каждый
пиксель полутонового изображения может иметь 256 различных значений.
Для полутоновых изображений значение каждого пикселя интерпретируется
как яркость соответствующей точки. Встречаются изображения с 2, 16 и 256
уровнями серого. И, наконец, глубина цветопередачи для цветного
изображения равняется трем байтам или 24 битам, т.е. каждый пиксель
может принимать 16777216 различных значений или цветов. Для того, что бы
сопоставлять оттенки цветов видимого спектра значениям, которые может

66
принимать пиксель цветного изображения, используют различные цветовые
пространства.

5.2 Цветовые пространства


Метод, выбранный для представления яркости (или светимости) и
цвета, называется цветовым пространством. При использовании некоторого
цветового пространства каждый пиксель представляет собой запись
(структуру), полями которой являются компоненты цвета. Самой
распространенной является система RGB, в которой цвет представлен
значениями интенсивности красной (R), зеленой (G) и синей (B) компонент
или плоскостей. В свою очередь, каждая из компонент занимает 24/3=8 бит и
является полутоновым изображением. Т.о. каждый пиксель цветного
изображения в системе цветопредставления RGB принимает различные
значения в соответствии со следующей структурой: 0xRRGGBB. Такая
структура является шестизначным числом в шестнадцатеричной системе
счисления, где каждая пара знаков RR, GG или BB, кодирует значение
пикселя в соответствующей цветовой плоскости. Существуют и другие
системы цветопредставления, например такие, как CMYK, HSI или системы,
состоящие из яркостной плоскости и двух плоскостей цветоразности. Каждая
система цветопредставления имеет свою устоявшуюся область
использования. Например, система CMYK (Cyan Magenta Yellow blacK)
используется в полиграфии и для передачи цветов принтерами, модель RGB
(Red Green Blue) для передачи цвета мониторами и видеокамерами [6], а
модель HSI (Hue Saturation Intensity), которая кодирует цветовой тон,
насыщенность и интенсивность, хорошо соответствует цветовосприятию
человека.
Представление цветных и полутоновых изображений в цифровой
форме на основе различных цветовых моделей, дает возможность для
описания и последующего кодирования таких изображений, как
совокупности двухградационных изображений.

67
Известно, что органы зрения человека менее чувствительны к цвету
предметов, чем к их яркости (светимости). В цветовом пространстве RGB все
три цвета считаются одинаково важными, и они обычно сохраняются с
одинаковым разрешением. Однако можно отобразить цветное изображение
более эффективно, отделив светимость от цветовой информации и
представив ее с большим разрешением, чем цвет.
Цветовое пространство YCbCr и его вариации (иногда их обозначают
YUV) является популярным методом эффективного представления цветных
изображений. Буква Y обозначает компоненту светимость, которая
вычисляется как взвешенное усреднение компонент R, G и В по следующей
формуле:

Y  kr R  k g G  kb B , (5.1)

где k обозначает соответствующий весовой множитель.


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

Cb  B  Y ,
Cr  R  Y ,
(5.2)
Cg  G  Y .
Полное описание цветного изображения задается величиной Y
(компонентой светимости) и тремя хроматическими разностями Сb, Сr и Сg.
которые выражают разность между интенсивностью соответствующего цвета
и средней светимостью каждого пиксела изображения.
До этого момента остается неясным значение нового представления
цвета, поскольку получается четыре компоненты вместо трех в пространстве
RGB. Однако число Cb + Cr + Cg является константой, поэтому только две
из трех хроматических компонент необходимо хранить или предавать,

68
поскольку третью компоненту всегда легко вычислить, зная две другие. В
цветовом пространстве YCbCr используется компонента яркости (Y) и две
хроматические компоненты (Сb, Сr). Преимущество пространства YCbCr по
сравнению с RGB заключается в том, что компоненты Сb и Сr можно
представлять с меньшим разрешением, чем Y, так как глаз человека менее
чувствителен к цвету предметов, чем к их яркости. Это позволяет сократить
объем информации, требуемый для представления хроматических
компонент, без заметного ухудшения качества передачи цветовых оттенков
изображения.
Простой зритель не заметит никаких различий между изображением
RGB и его представлением в цветовом пространстве YCbCr с огрубленным
разрешением хроматических компонент. Использование большего
разрешения для компоненты яркости по сравнению с хроматическими
компонентами является простым, но весьма эффективным приемом при
сжатии изображений.
Отснятое RGB-изображение легко конвертировать в YCbCr для
уменьшения объема сохраняемых или передаваемых данных. Однако перед
тем как отображать картинку на экране или сохранять её на физическом
носителе, необходимо сделать обратную конвертацию YCbCr в RGB.
Соответствующие вычисления для прямого и обратного преобразования
совершаются с помощью уравнений (5.3) и (5.4). Отметим, что множитель
k g получается из соотношения k g  kr  kd  1 , а величина компоненты G

получается вычитанием суммы Cb и Сr из Y.

Y  kr R  (1  kb  kr )G  kb B,
0.5
Cb  ( B  Y ),
1  kb
(5.3)
0.5
Cr  ( R  Y ).
1  kr

69
1  kr
R Y  Cr ,
0.5
2k (1  kb ) 2k (1  kr )
G Y  b Cb  r Cr ,
1  kb  kr 1  kb  k r
(5.4)
1  kb
B Y  Cb.
0.5
Рекомендация ITU-T с идентификатором ВТ.601 [1] предлагает
следующие коэффициенты: kb  0.114 и kr  0.299 . Используя эти значения в
уравнениях (5.3) и (5.4), получаем следующие широко распространенные
формулы:

Y  0.299 R  0.587G  0.114 B,


Cb  0.564( B  Y ),
(5.5)
Cr  0.713( R  Y ).
R  Y  1.402Cr ,
G  Y  0.344Cb  0.714Cr ,
(5.6)
B  Y  1.772Cb.

5.3 Семплирование в цветовом пространстве YCbCr


Так как человеческий глаз большую часть информации воспринимает
через контуры (оценивается размер, форма взаимное расположение
объектов), то представление изображения в цветовом пространстве YCbCr
является наиболее выгодным. Ведь основное количество информации
содержится в яркостной компоненте, а цветоразностные составляющие
имеют большую избыточность.
Для удаления избыточности из цветоразностных компонент
используется семплирование, процесс в результате которого разрешение
компоненты цветового пространства искусственно уменьшается. Для
качественной и количественной оценки семплирования вводится понятие
формата семплирования.
70
Формат 4:4:4 подразумевает, что все три компоненты (Y, Сb и Сr)
имеют одинаковое разрешение и, следовательно, сэмплы всех компонентов
присутствуют в каждом пикселе. Число в пропорции означает относительную
долю каждой компоненты при сэмплировании в горизонтальном
направлении, т.е. для каждой из четырех компонент яркости отбирается по
четыре хроматической компоненты. Сэмплирование по формату 4:4:4
означает полную точность в передаче хроматических компонент. При
сэмплировании по формуле 4:2:2 (этот формат иногда обозначается YUY2)
хроматические компоненты по вертикали имеют одинаковое разрешение с
яркостью, а по горизонтали они имеют половину от разрешения яркости
(числа 4:2:2 означают, что на каждые четыре сэмпла яркости Y по
горизонтали отбирается только две компоненты Сb и две компоненты Сr).
Формат 4:2:2 используется для высококачественного цветного видео.
В популярном формате сэмплирования 4:2:0 (YV12) каждая
компонента Сb и Сr имеет и по вертикали и по горизонтали половину
разрешения по сравнению с Y. Пропорция 4:2:0 выглядит несколько
странной, поскольку эти числа не имеют обычной интерпретации, а само это
выражении просто является данью исторической традиции, когда под этим
«кодом» подразумевался именно этот формат сэмплирования, который
отличается от форматов 4:4:4 и 4:2:2. Цветное сэмплирование 4:2:0 широко
используется во многих потребительских приложениях, таких как
видеоконференции, цифровое телевидение и диски DVD. Поскольку
хроматические компоненты отбираются в четыре раза реже компонент
яркости, то пространство 4:2:0 YCbCr требует в два раза меньше сэмплов по
сравнению с форматом видео 4:4:4 (или R:G:B).
Рассмотрим несколько примеров для изображения с разрешением 720
на 576 пикселов. Разрешение для Y компоненты будет одинаковым для всех
форматов семплирования – 720 х 576 сэмплов по 8 бит на каждый.

71
Разрешения для компонент Cb и Cr будут отличаться в зависимости от
формата семплирования.
В формате 4:4:4 используется полное разрешение 720 на 576 сэмплов
по 8 бит на каждый, следовательно, общее число бит будет состовлять
720  576  8  3  9 953 280 бит. Формат сэмплирования 4:2:0 использует
разрешение в два раза меньшее для Cb и Cr 360 на 288 сэмплов по 8 бит на
каждый, что при вычислении общего числа бит, дает
(720  576  8)  (360  288  8  2)  4 976 640 бит.

Для лучшего понимания, на рисунке 5.1 показана графическая


интерпретация формата семплирования 4:2:0.

Y сэмпл
Cr сэмпл
Cb сэмпл

Рисунок 5.1 – Формат сэмплирования 4:2:0

Формат сэмплирования 4:2:0 иногда называют «12 бит на пиксел».


Чтобы понять такое наименование, достаточно рассмотреть группу из
четырех пикселов. При сэмплировании 4:4:4 требуется ровно 12 сэмплов для
Y, Сb и Сr, т.е. 12 х 8 = 96 бит информации; в среднем 96/4 = 24 бит на
пиксел. А при использовании формата 4:2:0 будет необходимо лишь шесть
сэмплов: четыре для Y и по одному для Сb и Сr, т.е. 6 х 8 = 48 бит
информации; в среднем 48/4 = 12 бит на пиксел.
Еще несколько не очень распространенных, но крайне полезных,
примеров семплирования показано на рисунке 5.2. Правая часть рисунка
показывает, в отличие от рассмотренных ранее форматов, использование
различных частот для каждой из цветоразностных компонент.

72
Рисунок 5.2 – Примеры различных форматов семплирования

Допустим, например, что для компоненты Y частота семплирования по


горизонтали равна 4, для компоненты Сb - 2, а для компоненты Сr - 1. Это
означает, что в горизонтальном направлении на каждое значение Сb
приходится 2 значения компоненты Y, а на каждое значение Сr приходится 4
значения компоненты Y. Если для каждой компоненты частота
семплирования по вертикали была бы равна частоте семплирования по
горизонтали, тогда каждое значение компоненты Y отображалось бы на один
пиксел, каждое значение компоненты Сb - на 4 пиксела, и каждое значение
компоненты Сr -на 16 пикселов (рис. 5.2).

5.4. Видеоформаты
Стандарты видеосжатия могут работать с широким разнообразием
форматов видеокадров. На практике часто принято фиксировать или
преобразовывать видеоматериал к одному из базисных «промежуточных»
форматов перед его сжатием и передачей. Общий промежуточный формат

73
CIF (Coinmon Intermediate Format) является базисным для семейства
распространенных форматов, перечисленных в табл. 5.1. Выбор разрешения
видеокадра зависит от конкретного приложения и от доступной емкости
устройства хранения или от пропускной способности канала передачи
видеоконтента. Например, 4CIF подходит для телевидения стандартного
разрешения и для DVD-видео; CIF и QCIF популярны в приложениях,
обеспечивающих видеоконференции; QCIF и SQ-CIF применяются в
мобильном мультимедиа, где размеры дисплея и битовая скорость приема и
передачи данных весьма ограничены. В табл. 5.1 приведено число битов,
необходимое для представления несжатого кадра каждого формата
(предполагается цветовое сэмплирование 4:2:0 и 8 бит на одну компоненту
сэмпла пространства YCbCr).
Таблица 5.1.
Форматы видеокадров.
Разрешение бит/кадр
яркости
Формат (гориз. х верт.) (4:2:0, 8 бит/сэмпл)
Sub-QCIF 128 х 96 147456
QCIF 176 х 144 304 128
CIF 352 х 288 1216 512
4CIF 704 х 576 4866 048

Широко используемым форматом для кодирования цифрового


видеосигнала в телевизионных применениях является рекомендация ITU-R
под идентификатором ВТ.601 5 [1] (здесь термин «кодирование» означает
цифровое представление сигнала без сжатия). В ней компонента яркости
видеосигнала формата 4:2:2 (Y:Cb:Cr) сэмплируется с частотой 13.5 МГц, а
хроматическая компонента с частотой 6,75 МГц. Параметры
сэмплированного цифрового сигнала зависят от частоты видеокадров (30 Гц
для стандарта NTSC и 25 Гц для стандарта PAL/SECAM). Они приведены в
табл. 5.2. Более высокая частота кадров в NTSC компенсируется меньшим
пространственным разрешением, так что общая битовая скорость остается
одной и той же (216 Мбит/с). Реальная область, отображаемая на дисплее

74
(активная область), меньше общей области, так как из нее исключены
служебные горизонтальные и вертикальные гасящие промежутки, которые
имеются «вне» края кадра.
Каждый сэмпл принимает значения от 0 до 255. Уровни 0 и 255
зарезервированы для синхронизации, а величина яркости лежит в интервале
от 16 (черный) до 235 (белый).
Таблица 5.2
Параметры ITU-R ВТ.601-5
Частота кадров 30 Гц 25 Гц
Полукадров в секунду 60 50
Линий в полном кадре 525 625
Сэмплов яркости на линию 858 864
Хроматических сэмплов на линию 429 432
Бит на сэмпл 8 8
Общая битовая скорость 216 Мбит/с 216 Мбит/с
Активных линий на кадр 480 576
Активных сэмплов на линию (Y) 720 720
Активных сэмплов на линию (Сr, Сb) 360 360

5.5 Понятия алгоритма сжатия и формата файла


На современном этапе развития теории кодирования появилось столь
много различных реализаций всевозможных способов кодирования как
стандартизированных [42,43,46-48,52], так и нет. Таким образом, грань
между понятием алгоритма сжатия (как это понятие используется в [37,55]) и
форматом сжатого файла или даже системой[52] кодирования совершенно
стерлась. Поэтому, что бы избежать путаницы в дальнейшем, под
алгоритмом будем понимать определенную последовательность действий,
которую необходимо выполнить для достижения результата.
Когда речь идет об алгоритме сжатия, как о некотором абстрактном
объекте, то имеется в виду последовательность действий, которую
необходимо выполнить для получения системы сообщений некоторого
источника сообщений, обладающей меньшей избыточностью по сравнению с
первоначальной системой сообщений.
Если рассматривать некоторый конкретный алгоритм, например
алгоритм построения кодов Хаффмана по длинам этих кодов[18,45,52], то

75
результат выполнения указанной последовательности действий будет ясен из
контекста.
Кроме того, будем использовать понятие метода кодирования или
схемы кодирования (синоним), как совокупности нескольких алгоритмов
тогда, когда для достижения конечного результата, в нашем случае
компактного представления изображения или видеопоследовательности,
необходимо выполнить несколько промежуточных задач, например,
выделить области интереса (первый алгоритм) и построить коды Хаффмана
(второй алгоритм) для каждой из них.
Понятие формата файла подразумевает наличие жесткой структуры
хранения или порядка передачи совокупности служебной информации,
необходимой для работы декодера, и полезной нагрузки, являющейся
результатом работы кодера. Если полезная нагрузка, в общем случае, имеет
однородную структуру и для выделения отдельных сообщений, скорее всего,
не требуется ничего кроме знания соответствующего алгоритма, то для
правильного декодирования этих сообщений может потребоваться большое
количество разнородной информации. Такая информация будет формировать
заголовок файла. В различных схемах кодирования (JPEG, GIF[6], H.264 и
др.) используются различные наборы алгоритмов сжатия, для декодирования
которым необходимы различные служебные данные, поэтому разным схемам
будут соответствовать разные форматы файлов. Чаще всего формат файла
получает расширение (понятие, используемое в ОС Windows) в виде
аббревиатуры названия схемы кодирования.

6 Видеокодирование на основе гибридной модели DPCM/DCT

6.1 Кодирование в гибридной модели


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

76
моделью. Любой кодек, совместимый со стандартами H.261, H.263, MPEG-1,
MPEG-2, MPEG-4 и H.264, должен содержать в себе соответствующее
семейство базисных функций кодирования и декодирования, в тоже время
сами реализации и приложения могут значительно различаться.
На рисунках 6.1 и 6.2 приведены общие схемы гибридного кодера и
декодера. Видеопоследовательность кодируется кадр за кадром. Видео кодер
обрабатывает кадр Fn и производит закодированный (сжатый) битовый
поток, а декодер использует этот битовый поток для построения
реконструированного кадра F’n, который чаще всего не идентичен
исходному кадру Fn. Большинство функций декодера, имеются в кодере.
Имеется два основных пути прохождения данных в кодере:
кодирование и реконструкция. Поток кодирования состоит в следующем.
1. Очередной видеокадр Fn подается на вход кодера и
обрабатывается там макроблоками (соответствующими областям
из 16 х 16 сэмплов яркости и хроматичности).
2. Кадр Fn сравнивается со ссылочным кадром, например с ранее
закодированным кадром Fn'1 . Функция оценки движения находит в
Fn'1 , (или в интерполированной по подсэмплам версии кадра Fn'1 )

область 16 х 16, которая больше других «похожа» на текущий


макроблок в Fn (при этом используется некоторый критерий
схожести макроблоков). Смещение текущего макроблока по
отношению к положению выбранного ссылочного макроблока
записывается в вектор движения VM.
3. На основе выбранного вектора движения VM строится прогноз
компенсированного движения P (область 16 х 16, выбранная
функцией оценки движения).
4. Макроблок P вычитается из текущего макроблока, и их разность
D называется остаточным макроблоком.

77
5. Макроблок D преобразуется с помощью DCT. Обычно макроблок
D делится на подблоки 8x8 или 4 х 4, и каждый подблок
преобразуется отдельно.
6. Каждый подблок квантуется (X).
7. Для коэффициентов DCT всех подблоков делается
переупорядочение и результат кодируется символами «серия-
значение».
8. Коэффициенты, векторы движения и связанные с ними
информационные заголовки каждого макроблока кодируются
энтропийным кодером для получения выходного сжатого битового
потока.

Fn (текущий) F 'n 1 (ссылочный) F 'n (реконструкция)

Оценка движения

Компенсация
движения

P
Dn D 'n
DCT Деквантование IDCT

x
Векторы и
Квантование Переупорядочение заголовки

Энтропийный кодер

Битовый поток

Рисунок 6.1 – Кодер гибридной модели

78
F 'n1 (ссылочный) F 'n (реконструкция)

Компенсация движения

D 'n
x
IDCT Деквантование Переупорядочение

Векторы и
заголовки Энтропийный кодер

Битовый поток

Рисунок 6.2 – Декодер гибридной модели

6.2 Реконструкция данных


Данный поток предусматривает всего два шага:
1. Для каждого квантованного макроблока X делается его
деквантование и обратное преобразование для получения
декодированного остаточного макроблока D' . Заметим, что
процедура квантования не является обратимой, поэтому макроблок
D ' в большинстве случаев не совпадает с D (т.е. здесь вносится
искажение).
2. Прогноз компенсации движения P складывается с D' для
получения реконструированного макроблока, который сохраняется
в реконструированном кадре Fn' .

6.3 Декодирование в гибридной модели


1. Сжатый поток битов декодируется энтропийным декодером для
извлечения из него коэффициентов преобразования, векторов
движения и заголовков каждого макроблока.

79
2. Обращается кодирование «серия-значение», и делается обычное
упорядочение коэффициентов. В результате получается
квантованный преобразованный макроблок X.
3. Макроблок деквантуется, и к результату применяется обратное
преобразование DCT, что дает остаточный макроблок D ' .
4. Декодированный вектор движения используется для нахождения
позиции области 16 х 16 на предыдущем (ссылочном) кадре Fn'1 ,
копия которого хранится декодером. Эта область становится
прогнозом с компенсацией движения P.
5. Макроблок P прибавляется к D ' , и получается восстановленный
макроблок, который сохраняется на своей позиции на
декодированном кадре Fn' .
После полного декодирования кадр Fn' готов для демонстрации зрителю
и, кроме того, его можно сохранить в качестве ссылочного кадра для
декодирования следующего кадра Fn'1 .
После обзора шагов работы кодера и декодера видно, что они содержат
общие функции (деквантование, DCT, реконструкция). Данная схожесть
необходима, чтобы быть уверенным в том, что кодер и декодер работают с
одними и теми же ссылочными кадрами для получения прогноза
компенсации движения.

7 Стандарт видеокодирования Н.264


Группой экспертов MPEG и VCEG был разработан новый стандарт,
который обещал превзойти по степени сжатия видеоизображений
опубликованные ранее стандарты MPEG-4 и H.263. Этот стандарт получил
название «продвинутое кодирование видео» - AVC (Advanced Video Coding)
и был опубликован одновременно как стандарт MPEG-4 Part 10 и как
рекомендация ITU-T H.264.
Стандарт H.264 обеспечивает сжатие высокого качества при очень
низких значениях битрейта. Основные преимущества заключаются в
80
усовершенствованных технологиях компенсации движения, за счет
обработки блоков переменного размера и формы, применение более точных
векторов движения и большего количества связанных изображений, также
улучшено интра-предсказание (кодирование с предсказанием в рамках
одного кадра) и лучшее преобразование. На сегодняшний день стандарт
H.264 является одним из самых прогрессивных и отвечающих современным
требованиям алгоритмов компрессии.

7.1 Обзор стандарта H.264


Стандарт H.264 имеет более узкие границы применения по сравнению с
MPEG-4. Он был разработан для эффективного кодирования и
помехоустойчивой передачи видео прямоугольного формата. Его
первоначальной задачей было обеспечение функциональности, схожей с
H.263+ и MPEG-4 Visual, но с лучшим сжатием и с более надежным
механизмом передачи видеоданных. Целевые приложения включают
двухсторонние видеокоммуникации (видеоконференции и видеотелефония),
кодирование сетевого широковещания, видео высокого качества и
организацию видеопотоков через сети пакетной передачи данных.
Поддержка устойчивой передачи данных по сетям встроена в стандарт,
который разработан так, чтобы его можно было легко встраивать в разные
компьютерные платформы.
Кодек имеет несколько преимуществ – это меньший объем передачи
информации в секунду (битрейт), что особенно важно для кабельных и
спутниковых операторов, вместо одного канала с кодированием MPEG2,
можно вместить два с кодированием H.264, также благодаря низкому
битрейту достигается вещание там, где технологии передачи данных
ограничены в полосе пропускания, но благодаря стандарту H.264 качество
передаваемого сигнала остается приемлемым; распространенность, решения
с использованием головных станций и инфраструктуры, поддерживающих

81
MPEG-4, будет значительно дешевле и проще реализуемо, в силу своей
распространенности.
Важное влияние на работу кодека стандарта H.264 оказывает размер
макроблоков. Стандарты разработанные ранее имели фиксированную
величину макроблока 16x16 пикселей, но H.264 позволяет изменять этот
размер. Несмотря на то, что минимальный размер блока составляет 4x4
пикселя, в особых случаях блоки могут уменьшаться до 2x2. Малые, средние
и большие блоки, чередуясь в кадрах, адаптивно регулируют процесс
кодирования, способствуя получению оптимального изображения и в
значительной мере определяя нагрузку процессора во время кодирования в
режиме «реального времени».
Объединенная группа, участвующая в определении стандарта H.264,
сосредоточила свое основное внимание на создании простого и ясного
решения, сводящего к минимуму количество опций и параметров.
Важнейшим аспектом данного стандарта, как и в случае с другими
видеостандартами, является предоставления различных возможностей в
рамках профилей (наборов алгоритмических параметров) и уровней (классов
функционирования) для оптимальной поддержки популярных продуктов и
распространенных форматов. В H.264 заложено семь профилей, каждый из
которых рассчитан на конкретную область применения. Каждый профиль
определяет, какой именно набор параметров может использовать кодер и
ограничивает сложность реализации декодера. H.264 имеет 11 уровней или
степеней ограничения требований к функциональности, пропускному каналу
и памяти. Каждый уровень определяет скорость передачи данных и скорость
кодирования в макроблоках в секунду для разрешений в диапазоне от QCIF
до HDTV и выше. Чем выше разрешение, тем выше требуемый уровень.
В зависимости от профиля, кодером могут использоваться различные
типы кадров, а именно I-кадры, P-кадры и B-кадры. I-кадр (вводный кадр) –
это изолированный кадр, который может декодироваться независимым

82
образом без привязки к любым другим изображениям. Первое изображение в
видеопоследовательности всегда является I-кадром. I-кадры необходимы в
качестве начальных точек для новых просмотров или точек повторной
синхронизации в случае нарушения переданного потока битов. I-кадры
можно использовать для реализации функций перемотки вперед, назад и
иных функций произвольного доступа. Кодер автоматически вставляет I-
кадры через равные промежутки времени или по требованию в случае, когда
ожидается присоединение новых клиентов к просмотру потока. Недостатком
I-кадров является чрезмерное количество составляющих их бит, но, с другой
стороны, они и не создают большого количества искажений. P-кадр
(промежуточный кадр предсказуемого характера) содержит ссылки для
своего кодирования на части предшествующих I-кадров и/или P-кадров. P-
кадры, как правило, требуют меньшее количество бит, чем I-кадры, но имеют
недостаток в том плане, что они очень уязвимы по отношению к ошибкам
передачи из-за своей сложной зависимости от предшествующих ссылочных
P- и I-кадров. B-кадр (промежуточный кадр двунаправленного предсказания)
– это кадр, содержащий в себе ссылки как на предыдущий, так и на
последующий ссылочные кадры, как показано на рисунке 7.1.

Рисунок 7.1 – Структура кадров стандарта H.264

Стандарт H.264 ввел передовую схему внутреннего предсказания при


кодировании I-кадров. Данная схема значительно сокращает размер (в битах)
I-кадра при сохранении высокого качества при помощи успешного
предсказания маленьких блоков пикселей в рамках макроблока внутри кадра.
Это происходит посредством попытки найти «похожие» комбинации
83
пикселей среди ранее закодированных пикселей, являющихся ближайшими
соседями кодируемого пиксельного блока 4x4. Путем повторного
использования уже закодированных макроблоков значительно сокращается
размер данных. Таким образом, если в потоке использовать только I-кадры
то, размер получившегося файла H.264 будет гораздо меньшим, чем размер
соответствующего файла MPEG4.
В H.264 также улучшена компенсация движения на основе блоков,
применяемая при кодировании P- и B-кадров. Кодер может выбирать для
поиска совпадающих блоков (вплоть до субпиксельной точности) один или
несколько участков внутри одного или нескольких ссылочных кадров. Для
улучшения поиска совпадений можно также настраивать размер и форму
блоков. На участках, где внутри ссылочного кадра нельзя найти никаких
совпадающих блоков, используются внутренне закодированные макроблоки.
Высокая степень гибкости поблочной компенсации движения в H.264
эффективна для видео содержащего большое количество движущихся
объектов. Компенсация движения является наиболее востребованным
аспектом видеокодера, а различные способы и уровни, при которых
возможна ее реализация посредством кодера H.264, помогают повысить
эффективность сжатия видеоизображения. Стандарт H.264 позволяет
уменьшить число блочных артефактов, характерных для
видеопоследовательностей с высокой степенью сжатия, построенных
кодерами стандартов Motion JPEG и MPEG, благодаря встроенному
деблокирующему фильтру. Этот фильтр автоматически сглаживает края
блоков, создавая почти идеальное развернутое изображение.

7.2 Профили стандарта H.264


«Профиль» - это подмножество синтаксиса потока битов. В границах
такого синтаксиса даже для одного профиля, наблюдается значительное
разнообразие характеристик кодеров и декодеров. Например, в рамках
одного профиля может варьироваться размер обрабатываемых изображений.

84
Для многих приложений нет ни практического, ни экономического смысла
реализовывать декодер, способный ко всем гипотетическим применениям
этого синтаксиса в рамках конкретного профиля. Чтобы рассмотреть эту
проблему, в каждом профиле определены «уровни». Уровень – это особое
множество ограничений, наложенных на значения элементов синтаксиса в
потоке битов. Эти ограничения могут быть простыми ограничениями
значений. Кроме того, они могут принимать форму ограничений на
арифметические комбинации значений (например, на ширину изображения,
умноженную на его высоту и умноженную на число изображений,
декодированных за секунду). Чтобы получить подмножество законченного
синтаксиса, в поток битов включены флаги, параметры и другие элементы
синтаксиса, сигнализирующие о присутствии или отсутствии элементов
синтаксиса, которые могут позже появиться в потоке битов.
Изначально в стандарте H.264 были определены три профиля (рис. 7.2):
 Базовый профиль, поддерживает моды кодирования intra и inter (на
основе I-кадров и P-кадров соответственно) и энтропийное
кодирование с помощью контекстно-адаптивных кодов переменной
длины (CAVLC – Context-adaptive variable length coding).
 Основной профиль включает поддержку видео с чересстрочной
разверткой, кодирование inter с помощью B-слоев и взвешенное
прогнозирование, а также контекстное арифметическое энтропийное
кодирование (CABAC – Context-adaptive binary arithmetic coding).
 Расширенный профиль не поддерживает чересстрочное видео и
кодирование CABAC, но в нем имеются некоторые моды, которые
позволяют переключаться между битовыми потоками (SP-кадры и
SI-кадры) и повышаться устойчивость к ошибкам передачи
(разделение данных).
В дальнейшем были введены различные профили такие, как High
Profile, являющийся основным для цифрового вещания и видео на

85
оптических носителях, High 10 Profile, поддерживающий дополнительно 10-
битовую глубину цветопередачи изображения, High 4:2:2 Profile,
поддерживающий дополнительный вариант кодирования цветности, нацелен
в основном на профессиональное использование при работе с чересстрочным
видеопотоком и High 4:4:4 Predictive Profile, основанный на High 4:2:2 Profile,
включающий работу с 14-битной глубиной цветопередачи. Также
предусматриваются профили для профессионального применения и для
работы со стереоскопическим видеопотоком.
Потенциальными сферами применения базового профиля являются
видеотелефония, организация видеоконференций и беспроводных
коммуникаций. Применение приложений основного профиля охватывает
телевизионное вещание и хранение видеоданных, а расширенный профиль
может оказаться полезным в приложениях потокового медиа.
Основной профиль
Расширенный профиль
Полукадры,
CABAC.
SP- и SL- слои,
Разделение данных,
B-слои,
Взвешенный прогноз.

Базовый профиль

I-слои,
P-слои,
CAVLC,
Группы слоев и ASO,
Избыточные слои.

Рисунок 7.2 – Содержание профилей стандарта H.264

Для детального изучения и понимания структуры стандарта H.264,


следует обратиться к стандарту H.261, так как ядром всех H.26x стандартов
является именно он. Вообще говоря, самым правильным способом
самостоятельного изучения стандарта, является чтение его документации.

86
Однако число страниц стандарта Н.264 насчитывает почти 7 сотен, стандарта
H.263 – около 230, а стандарта H.261 – всего 29. Этот факт еще раз
подчеркивает важность порядка изучения указанных стандартов.
H.261 был первым широко распространенным стандартом
видеоконференций, разработанным ITU-T для поддержки видеотелефонии и
видеоконференций через сети с коммутацией каналов ISDN. Эти сети
работали на скорости, кратной 64 Кбит/с, и стандарт был разработан для
осуществления достаточно простого видеокодирования на этой битовой
скорости. Стандарт использовал известную гибридную модель DPCM/DCT с
компенсацией движения с целопиксельной точностью.
В целях дальнейшего улучшения степени сжатия H.261 рабочая группа
ITU-T разработала стандарт H.263. Он обеспечвал лучшее сжатие, чем
предшественник, с поддержкой базового видеокачества на скоростях до 30
Кбит/с. Также H.263 вошел в группу стандартов, обеспечивающих передачу
видео по сетям с коммутацией каналов и пакетов. Базовая модель
кодирования H.263 (гибрид DPCM/DCT с полупиксельной компенсацией
движения) была принята в качестве ядра простого профиля стандарта MPEG-
4 Visual. Оригинальная модель H.263 включала четыре дополнительные
моды кодирования (описанные в приложении к стандарту), а в выпуск 2 был
добавлен ряд дальнейших деталей, например увеличенная степень сжатия и
помехоустойчивая передача по зашумленным каналам. Термины H.263+ и
H.263++ используются для обозначения кодеков, которые поддерживают
некоторые дополнительные моды кодирования. Выбор возможных мод
кодека был оставлен за разработчиками. Такой Широкий спектр возможных
комбинаций мод, а значит и проблем совместимости кодеков разных
производителей, вынудил разработчиков стандарта H.264 остановиться на
достаточно простой структуре из трех профилей.

87
Литература

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


2. Ковалгин Ю.А., Вологдин Э.И. Цифровое кодирование звуковых сигналов.
С-Пб.: Корона-Принт, 2004.
3. Ватолин Д., Раушняк А., Смирнов М., Юкин В. Методы сжатия данных.
М.: Диалог-МИФИ, 2003.
4. Сергиенко В.С., Баранов В.В. Сжатие данных, речи, звука и изображений
в телекоммуникационных системах. Учебное пособие.. – М.: ИП
«РадиоСофт», 2011 – 360 с.
5. Ричардсон Я. «Видеокодирование. H.264 и MPEG-4 – стандарты нового
поколения». М., Техносфера, 2005
6. Гонсалес Р., Вудс Р., Цифровая обработка изображений // М.: Техносфера,
2005.

88

Вам также может понравиться