ИНФОРМАТИКИ
Учебное пособие
Москва -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 Сжатие без потерь информации
В системах сжатия без потерь декодер восстанавливает данные
источника абсолютно точно, таким образом, структура системы сжатия
выглядит следующим образом:
8
Наряду с коэффициентом сжатия r эффективность системы сжатия
может быть охарактеризована скоростью сжатия R, определяемой как
отношение
R = k/n
и измеряемой в "количестве кодовых бит, приходящихся на отсчет
данных источника". Система, имеющая больший коэффициент сжатия,
обеспечивает меньшую скорость сжатия.
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 Методы сжатия с потерей информации
11
человека, исполнительные механизмы и т.д. - также обладают конечной
разрешающей способностью, то есть не замечают незначительной разницы
между абсолютно точным и приближенным значениями воспроизводимого
сообщения. Порог чувствительности к искажениям также может быть
различным, но он всегда есть.
Кодирование с разрушением учитывает эти аргументы в пользу
приближенного восстановления данных и позволяет получить за счет
некоторой контролируемой по величине ошибки коэффициенты сжатия,
иногда в десятки раз превышающие степень сжатия для неразрушающих
методов.
Большинство методов разрушающего сжатия основано на кодировании
не самих данных, а некоторых линейных преобразований от них, например,
коэффициентов дискретного преобразования Фурье ( ДПФ ), коэффициентов
косинусного преобразования, преобразований Хаара, Уолша и т.п.
12
ухо способно воспринять, а неслышимые составляющие сигнала можно
отбросить. Кроме того, сигналы можно квантовать с возможно меньшим
разрешением так, чтобы шумы квантования, изменяясь по величине с
изменением уровня самого сигнала, еще оставались бы неслышимыми, т.е.
маскировались бы исходным
сигналом. Учет психоакустических закономерностей слухового
восприятия определяет качество систем кодирования со сжатием цифровых
данных. Методами устранения психофизической избыточности можно
обеспечить сжатие цифровых аудиоданных в 10-12 раз без существенных
потерь в качестве.
13
одинаковую громкость. Анализ усредненного графика порога слышимости
показывает, что слуховая система человека чувствительна к частотам в
диапазоне 0,01–20 кГц.
14
Критическая полоса слуха является полосой, за пределами которой
субъективные ощущения звука сильно изменяются.
На рис.2.2 и 2.3 схематически показан метод определения ширины
критической полосы слуховой системы.
15
узкополосные шумовые компоненты (рис.2.3,а). Поведение порога
обнаружения для тональной компоненты (рис.2.3,б) аналогично рис.2.2,б.
В таблице представлено разбиение слышимого диапазона частот на
критические полосы с соответствующими центральной частотой и шириной
полос идеализированного банка фильтров (рис 2.4) с прямоугольными
амплитудно-частотными характеристиками, который позволяет качественно
воспроизвести звуковые сигналы.
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
18
времени определяет следующий эффект: более слабый сигнал становится
неслышимым за 5 − 20 мс до включения сигнала маскирования и становится
слышимым через 50 − 200 мс после его включения.
19
Это связано с отсутствием гармонических биений. Большой
практический интерес представляют кривые порога слышимости,
полученные при маскировке широкополосными шумами.
20
Рисунок 2.8 – Изменение порога чувствительности слуховой системы при маскировании
тональным сигналом определенной частоты
21
Рисунок 2.9 – Изменение порога чувствительности слуховой системы при маскировании
сигналами со средними частотами полос 0,25, 1, 4 и 8 кГц и уровнем интенсивности 60
дБ
22
наступают, если маскируемый сигнал и маскер одновременно находятся во
временном окне шириной 100−200 мс.
23
Степень маскирования звукового сигнала зависит от интервала между
маскируемым сигналом и маскером, уровня интенсивности и длительности
воздействия маскера. Сближение во времени подачи сигнала и маскера
увеличивает маскировку. Временное маскирование зависит от частотного
взаимоотношения сигнала и маскера точно так же, как и при частотном
маскировании. Оно проявится в большей степени, если сигнал и маскер
близки по частоте.
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)
25
составляющих, находящихся за пределами диапазона тонального маскера
k , по формуле
0 ,1 P ( j )
P NM ( k ) 101 log 10 10
j
, (2.10)
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 ) вычисляются по формуле
27
Функция распространения маскирования SF (i, j ) в дБ от j-го бина
маскера к i-му бину маскируемого сигнала моделируется в виде кусочно-
Pj
линейной функции уровня маскера по формуле
вычисляются по формуле
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.
Таким образом, глобальный маскирующий порог для каждого
частотного бина представляет собой сигнало-зависимую, аддитивную по
мощности модификацию абсолютного порога слышимости в тишине. В этом
случае тональная кривая маскирования, нетональная (шумовая) кривая
маскирования и кривая абсолютного порога складываются для получения
общей кривой маскирования анализируемого входного сигнала.
Маскирующий эффект в каждой критической полосе слуховой системы
характеризуется величиной отношения сигнал/маска. В данной модели
отношение сигнал/маска задается величиной отношения энергии сигнала в
пределах критической полосы к энергии шумов квантования, при которой
данный шум еще маскируется полезным сигналом и не замечается слуховым
аппаратом человека.
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
Форми-
Вход Блок время-
Блок квантования рователь Выход потока
звуковых частотного
и кодирования потока данных
отсчётов преобразования
данных
Психоакустический
процессор
31
субполосным кодером (subband coders) или трансформирующим кодером
(transform coder)
В субполосных кодерах разложение сигнала обычно производится на
небольшое число поддиапазонов и одновременно обрабатываются соседние
по времени отсчеты сигналов В трансформирующих кодерах сигнал делится
на относительно большое число поддиапазонов и одновременно
обрабатываются соседние спектральные составляющие, могут исполь-
зоваться и другие схемы
С точки зрения математики, все банки фильтров имеют одинаковую
структуру, поскольку выполняют одну и ту же операцию — разложение
одной полосы частот на n субполос. Принципиальной разницы между
субполосным кодером и трансформирующим кодером нет Поэтому любое
название можно считать правомерным.
Психоакустический процессор анализирует либо огибающую входного
сигнала, либо огибающую его спектра, формируемого блоком время-
частотного преобразования. С учетом заложенной в его программу
психоакустической модели человеческого слуха, вычисляет гранит
маскирования входного сигнала и определяет количество разрядов, необ-
ходимое для кодирования значений его спектральных составляющих Чем
более точно определена граница маскирования, тем более высокое качество
звучания (при субъективной оценке) может быть достигнуто при
относительно низкой скорости потока бит.
Разные кодеры могут использовать разные психоакустические модели
но, поскольку объем знаний о природе маскирования одних звуков другими
на сегодняшний день все еще достаточно ограничен, ни об одной из них
нельзя сказать, что эта модель правильная, а та не совсем правильная.
Пcихоакустический процессор довольно часто называют
«психоакустической моделью» (Psychoaсoustic Model), «перцептуальной
32
моделью, (Perceptual Model) или "перцептуальной системой кодирования"
(Perceptual Encoding System).
Блок квантования и кодирования осуществляет, как следует из его
названия, квантование и кодирование спектральных составляющих звукового
сигнала. Эта операция реализуется таким образом, что шум квантования не
превышает границы маскирования. Граница маскирования при этом
вычисляется психоакустическим процессором, исходя из величины
огибающей спектра и заложенной в него психоакустичсской модели
человеческого слуха. В зависимости от алгоритма работы перцептуального
кодера, эта процедура может быть реализована самыми разными способами
— от простого блочного компандирования до сложного анализа различных
вариантов квантования с использованием дополнительных элементов
компрессии, обеспечивающих отсутствие шумов.
Блок квантования и кодирования выполняет основную часть работ по
сокращению объема передаваемых данных. Чаще всего используются два
алгоритма его работы.
1. Алгоритм поблочного компандирования или алгоритм с плавающей
запятой.
Массив данных, ограниченный либо во временной области (ряд
последовательных отсчетов сигнала), либо в частотной области (набор
спектральных составляющих в выделенной полосе частот) нормализуется по
максимуму абсолютной величины. Нормализующий коэффициент в этом
случае называется коэффициентом масштабирования (или экспонентой).
Затем все величины, входящие в выделенный массив данных (блок),
квантуются с одним и тем же шагом квантования, который определяется
исходя из общего количества бит, выделенных для данного блока
психоакустическим процессором. Им же задается и алгоритм кодирования.
Схема в этом случае получается наиболее простая, а алгоритм распределения
33
бит не отличается высокой точностью и сложностью в реализации (хотя и
подчиняется принципам маскирования одних звуков другими).
2. Алгоритм, использующий квантование с масштабированием, за-
висящим от уровня шумов в каждой полосе частот, и кодирование по методу
Хаффмана.
Этот алгоритм не предусматривает выделение точного числа бит на
весь блок. Вместо этого оценивается энергия шума, существующего в каждой
рассматриваемой полосе частот, и на ее основе рассчитывается граница
маскирования в этой полосе и коэффициент масштабирования.
Коэффициенты масштабирования выбираются с таким расчетом, чтобы
минимизировать, насколько возможно, присутствующий в данной полосе
шум квантования (то есть, путем изменения размера шага квантования для
всех величин внутри полосы с этим коэффициентом масштабирования), и не
являются результатом выполнения процедуры нормализации. Квантованные
величины кодируются с помощью кодов Хаффмана. Весь процесс находится
под постоянным контролем одной или нескольких схем итерации .
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
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. Вспомогательные данные определяются
пользователем; обычно они связаны с конкретными приложениями. Эти
данные не являются обязательными.
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)
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 .
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, состоящий из двух
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).
32
3.Умножить :Vi k 0 N i , k S k , i 0,...,63.
15
6.Вычислить 32 сэмпла. Для j 0 до 31 выполнить, S i i 0 W j 32i .
В начале вектор V инициализируется нулями
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, по
одному на подполосу, образует выходные данные модели.
49
Преобразование MDCT использует n входных сэмплов xk (где n равно
36 или 12 и получает n/2 (то есть 18 или 6) коэффициентов преобразования
S i . Прямое и обратное преобразование задаются формулами:
n1
n n
Si xk cos 2k 1 (2i 1) , i 0,1,..., 1,
k 0 2n 2 2
n / 21
n
xk S cos 2n 2k 1 2 (2i 1) ,
i 0
i k 0,1,...,n 1.
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
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
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].
Сжатие данных достигается в том случае, когда сокращается или устраняется
избыточность одного или нескольких из вышеуказанных видов.
Современные алгоритмы эффективного кодирования классифицируются по
типу удаляемой избыточности и каждый вид избыточности характерен для
разных видов источников. Поэтому, умение определять тип избыточности,
позволяет выбирать тот алгоритм, который подходит для эффективного
кодирования заданного источника, наилучшим образом.
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
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
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
63
a 2 b tg . (4.6)
2 60
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
образом, при внесении искажений изменяющих локальный контур на один
пиксель относительно оригинального положения, отдельные области
изображения будут оставаться различимыми для наблюдателя, так как
расстояние между ними будет оставаться больше, чем минимально-
различимое зрительной системой здорового человека.
65
сильно “похожи” друг на друга. Такую избыточность принято называть
временной или межкадровой. А межэлементную избыточность на одном
кадре называют пространственной или внутрикадровой.
Естественно, чем выше частота следования кадров
видеопоследовательности, тем меньше интервал времени между соседними
кадрами и, следовательно, меньше различий между этими кадрами. А значит,
с увеличением частоты временная избыточность видеопоследовательности
возрастает.
66
принимать пиксель цветного изображения, используют различные цветовые
пространства.
67
Известно, что органы зрения человека менее чувствительны к цвету
предметов, чем к их яркости (светимости). В цветовом пространстве RGB все
три цвета считаются одинаково важными, и они обычно сохраняются с
одинаковым разрешением. Однако можно отобразить цветное изображение
более эффективно, отделив светимость от цветовой информации и
представив ее с большим разрешением, чем цвет.
Цветовое пространство YCbCr и его вариации (иногда их обозначают
YUV) является популярным методом эффективного представления цветных
изображений. Буква Y обозначает компоненту светимость, которая
вычисляется как взвешенное усреднение компонент R, G и В по следующей
формуле:
Y kr R k g G kb B , (5.1)
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
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), получаем следующие широко распространенные
формулы:
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 бит.
Y сэмпл
Cr сэмпл
Cb сэмпл
72
Рисунок 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
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
75
результат выполнения указанной последовательности действий будет ясен из
контекста.
Кроме того, будем использовать понятие метода кодирования или
схемы кодирования (синоним), как совокупности нескольких алгоритмов
тогда, когда для достижения конечного результата, в нашем случае
компактного представления изображения или видеопоследовательности,
необходимо выполнить несколько промежуточных задач, например,
выделить области интереса (первый алгоритм) и построить коды Хаффмана
(второй алгоритм) для каждой из них.
Понятие формата файла подразумевает наличие жесткой структуры
хранения или порядка передачи совокупности служебной информации,
необходимой для работы декодера, и полезной нагрузки, являющейся
результатом работы кодера. Если полезная нагрузка, в общем случае, имеет
однородную структуру и для выделения отдельных сообщений, скорее всего,
не требуется ничего кроме знания соответствующего алгоритма, то для
правильного декодирования этих сообщений может потребоваться большое
количество разнородной информации. Такая информация будет формировать
заголовок файла. В различных схемах кодирования (JPEG, GIF[6], H.264 и
др.) используются различные наборы алгоритмов сжатия, для декодирования
которым необходимы различные служебные данные, поэтому разным схемам
будут соответствовать разные форматы файлов. Чаще всего формат файла
получает расширение (понятие, используемое в ОС Windows) в виде
аббревиатуры названия схемы кодирования.
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 )
77
5. Макроблок D преобразуется с помощью DCT. Обычно макроблок
D делится на подблоки 8x8 или 4 х 4, и каждый подблок
преобразуется отдельно.
6. Каждый подблок квантуется (X).
7. Для коэффициентов DCT всех подблоков делается
переупорядочение и результат кодируется символами «серия-
значение».
8. Коэффициенты, векторы движения и связанные с ними
информационные заголовки каждого макроблока кодируются
энтропийным кодером для получения выходного сжатого битового
потока.
Оценка движения
Компенсация
движения
P
Dn D 'n
DCT Деквантование IDCT
x
Векторы и
Квантование Переупорядочение заголовки
Энтропийный кодер
Битовый поток
78
F 'n1 (ссылочный) F 'n (реконструкция)
Компенсация движения
D 'n
x
IDCT Деквантование Переупорядочение
Векторы и
заголовки Энтропийный кодер
Битовый поток
79
2. Обращается кодирование «серия-значение», и делается обычное
упорядочение коэффициентов. В результате получается
квантованный преобразованный макроблок X.
3. Макроблок деквантуется, и к результату применяется обратное
преобразование DCT, что дает остаточный макроблок D ' .
4. Декодированный вектор движения используется для нахождения
позиции области 16 х 16 на предыдущем (ссылочном) кадре Fn'1 ,
копия которого хранится декодером. Эта область становится
прогнозом с компенсацией движения P.
5. Макроблок P прибавляется к D ' , и получается восстановленный
макроблок, который сохраняется на своей позиции на
декодированном кадре Fn' .
После полного декодирования кадр Fn' готов для демонстрации зрителю
и, кроме того, его можно сохранить в качестве ссылочного кадра для
декодирования следующего кадра Fn'1 .
После обзора шагов работы кодера и декодера видно, что они содержат
общие функции (деквантование, DCT, реконструкция). Данная схожесть
необходима, чтобы быть уверенным в том, что кодер и декодер работают с
одними и теми же ссылочными кадрами для получения прогноза
компенсации движения.
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.
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,
Избыточные слои.
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
Литература
88