За счет чего осуществляется сжатие видеосигнала
За счет чего осуществляется сжатие видеосигнала
1. СЖАТИЕ БЕЗ ПОТЕРЬ
Изображение, полученное после декодирования, полностью совпадает с первоначальным.
2. СЖАТИЕ С ПОТЕРЯМИ
Часть информации теряется в процессе сжатия. Принцип сжатия с потерями основан на ограниченных возможностях человеческого зрения.
СЖАТИЕ С ПРОЦЕНТНЫМИ ПОТЕРЯМИ
Все потери информации лежат в границах, когда человеческий глаз не видит разницу между первоначальным изображением и декомпрессированным сжатым изображением, содержащим ошибки сжатия с потерями.
СЖАТИЕ С ЕСТЕСТВЕННЫМИ ПОТЕРЯМИ
При использовании JPEG, MPEG и других форматов компрессии видео с потерями изображение часто повреждается больше, чем при сжатии с процентными потерями, однако, видео все еще остается приемлемым для человеческого восприятия. Если сжатие и декомпрессия в процессе преобразования повреждают изображение, аналогично естественным повреждениям, то зрение не будет сильно “протестовать”.
Потеря большой детализации в изображении часто приемлема, потому что люди воспринимают объекты в естественном мире с различными уровнями детализации, в зависимости от расстояния до объекта и угла зрения. Люди также привыкли к некоторым естественным помехам, как, например, дождь и туман. Человеческий глаз различает острые грани и линии в изображении, независимо от уровня детализации. Таким образом, человек воспринимает объекты, несмотря на изменения в уровне детализации.
СЖАТИЕ С НЕЕСТЕСТВЕННЫМИ ПОТЕРЯМИ
Последовательное кодирование длины (ПКД)
ПКД кодирует последовательность пикселей одинакового цвета (например, черного или белого) как одиночное ключевое слово. Так, например, последовательность пикселей:
77 77 77 77 77 77 77
может быть закодирована как
ПКД хорошо работает с изображениями двоичного уровня (например, черно-белый текст или графика) и 8 битными образами, особенно кадрами мультипликации, содержащими большие последовательности одинакового цвета.
ПКД практически не работает с 24 разрядными естественными изображениями, поскольку в подобных изображениях последовательности пикселей одного цвета практически отсутствуют.
Векторная квантизация
Кодеки, использующие векторную квантизацию: Indeo 3.2, Cinepak.
Indeo и Cinepak работают с YUV представлением цвета.
При векторной квантизации изображение делится на блоки (4×4 пикселя для Indeo и Cinepak). Как правило, некоторые блоки подобны другим блокам, хотя обычно, они не идентичны. Кодер идентифицирует класс подобных блоков и заменяет их на «универсальный» блочный представитель, составляет поисковую таблицу коротких двоичных кодов к «универсальным» блокам. Как правило, самые короткие двоичные коды представляют наиболее общие классы блоков в изображении. При векторной квантизации (VQ) декодер использует поисковую таблицу, чтобы транслировать приблизительное изображение, составленное из «универсальных» блоков согласно поисковой таблице.
Дискретное косинус преобразование (ДКП)
Кодеки, использующие дискретное косинус преобразование:
Дискретное преобразование элементарной волны (DWT- Discrete Wavelet Transform)
Кодеки, использующие DWT:
Простым примером DWT является Haar преобразование элементарной волны:
Haar НПФ (среднее число двух последовательных выборок):
Haar ВПФ (различие двух последовательных выборок):
Последовательности вывода g [n] и h [n] содержат избыточную информацию. Их можно разложить на две последовательности, опустив четные или нечетные члены, после чего все еще возможно воспроизведение первоначального входного сигнала x[n]. Обычно опускаются нечетные выборки. Входной сигнал x [n] может быть воспроизведен полностью по
При сжатии видеоизображения, DWT может повторяться несколько раз. Алгоритм производит такое же число бит, что и подается на его вход. Результаты на выходе называются коэффициентами преобразования.
Haar преобразование элементарной волны используется, прежде всего, для иллюстративных целей. На практике применяются более сложные фильтры.
Алгоритмы, основанные на DWT позволяют добиться лучших результов, чем ДКП. В последнее время, DWT становится все более популярным.
Например, как только текстуры и контуры извлекаются из изображения, последние могут быть закодированы как контрольные точки сплайна (полиномиальная функция представления кривых). Текстуры, в свою очередь, могут быть закодированы с использованием ДКП или DWT.
Кодирование разности кадров
Обычно изменения между соседними кадрами незначительны ( например, в случае шара, летящего перед статическим фоном, большая часть изображения не меняется между кадрами ). На этом основан алгоритм кодирования разности кадров.
Компенсация движения ( КД )
— ClearVideo (RealVideo) Fractal Video Codec от Iterated Systems
Сжатие достигается путем пересылки или сохранения только вектора движения вместо значений пикселей для полного блока. Кодированные ( «предсказанные» ) блоки формируют декодируемый кадр. Блоком ссылки может быть любой 16×16 блок пикселей в кадре ссылки, который больше всего схож с кодированным блоком. Кадр ссылки должен быть декодирован до начала декодирования текущего кадра. Однако, кадр ссылки не обязательно должен идти перед текущим декодируемым кадром. Фактически, кадром ссылки может быть будущий кадр. MPEG учитывает это через так называемый B (двунаправленный предсказанный) кадр.
В этом простом примере, предварительно декодированный кадр также является предыдущим в представленном порядке. Предварительно декодированный или кадр ссылки предшествует текущему кадру по времени. Вообще, имеются различие между декодированным порядком и представленным и порядком. Кадр ссылки может быть и будущим кадром.
Сжатие видео на пальцах: как работают современные кодеки?
Затраты на хранение данных зачастую становятся основным пунктом расходов при создании системы видеонаблюдения. Впрочем, они были бы несравнимо больше, если бы в мире не существовало алгоритмов, способных сжимать видеосигнал. О том, насколько эффективны современные кодеки, и какие принципы лежат в основе их работы, мы и поговорим в сегодняшнем материале.
Для большей наглядности начнем с цифр. Пускай видеозапись будет вестись непрерывно, в разрешении Full HD (сейчас это уже необходимый минимум, во всяком случае, если вы хотите полноценно использовать функции видеоаналитики) и в режиме реального времени (то есть, с фреймрейтом 25 кадров в секунду). Предположим также, что выбранное нами оборудование поддерживает аппаратное кодирование H.265. В этом случае при разных настройках качества изображения (высоком, среднем и низком) мы получим примерно следующие результаты.
Кодек
Интенсивность движения в кадре
Использование дискового пространства за сутки, ГБ
H.265 (Высокое качество)
H.265 (Высокое качество)
H.265 (Высокое качество)
H.265 (Среднее качество)
H.265 (Среднее качество)
H.265 (Среднее качество)
H.265 (Низкое качество)
H.265 (Низкое качество)
H.265 (Низкое качество)
Но если бы сжатия видео не существовало в принципе, мы бы увидели совсем иные цифры. Попробуем разобраться, почему. Видеопоток представляет собой не что иное, как последовательность статичных картинок (кадров) в определенном разрешении. Технически каждый кадр является двумерным массивом, содержащим информацию об элементарных единицах (пикселях), формирующих изображение. В системе TrueColor для кодирования каждого пикселя требуется 3 байта. Таким образом, в приведенном примере мы бы получили битрейт:
Учитывая, что в сутках 86400 секунд, цифры выходят поистине астрономические:
Итак, если бы мы записывали видео без сжатия в максимальном качестве при заданных условиях, то для хранения данных, полученных с одной единственной видеокамеры в течение суток нам бы потребовалось 12 терабайт дискового пространства. Но даже система безопасности квартиры или малого офиса предполагает наличие, как минимум, двух устройств видеофиксации, тогда как сам архив необходимо сохранять в течение нескольких недель или даже месяцев, если того требует законодательство. То есть, для обслуживания любого объекта, даже весьма скромных размеров, потребовался бы целый дата-центр!
К счастью, современные алгоритмы сжатия видео помогают существенно экономить дисковое пространство: так, использование кодека H.265 позволяет сократить объем видео в 90 (!) раз. Добиться столь впечатляющих результатов удалось благодаря целому стеку разнообразных технологий, которые давно и успешно применяются не только в сфере видеонаблюдения, но и в «гражданском» секторе: в системах аналогового и цифрового телевидения, в любительской и профессиональной съемке, и многих других ситуациях.
Наиболее простой и наглядный пример — цветовая субдискретизация. Так называют способ кодирования видео, при котором намеренно снижается цветовое разрешение кадров и частота выборки цветоразностных сигналов становится меньше частоты выборки яркостного сигнала. Такой метод сжатия видеоданных полностью оправдан как с позиции физиологии человека, так и с точки зрения практического применения в области видеофиксации. Наши глаза хорошо замечают разницу в яркости, однако гораздо менее чувствительны к перепадам цвета, именно поэтому выборкой цветоразностных сигналов можно пожертвовать, ведь большинство людей этого попросту не заметит. В то же время, сложно представить, как в розыск объявляют машину цвета «паука, замышляющего преступление»: в ориентировке будет написано «темно-серый», и это правильно, ведь иначе прочитавший описание авто даже не поймет, о каком оттенке идет речь.
А вот со снижением детализации все оказывается уже совсем не так однозначно. Технически квантование (то есть, разбиение диапазона сигнала на некоторое число уровней с последующим их приведением к заданным значениям) работает великолепно: используя данный метод, размер видео можно многократно уменьшить. Но так мы можем упустить важные детали (например, номер проезжающего вдалеке автомобиля или черты лица злоумышленника): они окажутся смазаны и такая запись будет для нас бесполезной. Как же поступить в этой ситуации? Ответ прост, как и все гениальное: стоит взять за точку отсчета динамические объекты, как все тут же становится на свои места. Этот принцип успешно используется со времен появления кодека H.264 и отлично себя зарекомендовал, открыв ряд дополнительных возможностей для сжатия данных.
Это было предсказуемо: разбираемся, как H.264 сжимает видео
Вернемся к таблице, с которой мы начали. Как видите, помимо таких параметров, как разрешение, фреймрейт и качество картинки решающим фактором, определяющим конечный размер видео, оказывается уровень динамичности снимаемой сцены. Это объясняется особенностями работы современных видеокодеков вообще, и H.264 в частности: используемый в нем механизм предсказания кадров позволяет дополнительно сжимать видео, при этом практически не жертвуя качеством картинки. Давайте посмотрим, как это работает.
Кодек H.264 использует несколько типов кадров:
Поскольку в процессе вычитания возможны ошибки, приводящие к появлению графических артефактов, то через какое-то количество кадров схема повторяется: вновь формируется опорный кадр, а вслед за ним — серия кадров с изменениями.
Полное изображение формируется путем «наложения» P-кадров на опорный кадр. При этом появляется возможность независимой обработки фона и движущиеся объектов, что позволяет дополнительно сэкономить дисковое пространство без риска упустить важные детали (черты лиц, автомобильные номера и т. д.). В случае же с объектами, совершающими однообразные движения (например, вращающимися колесами машин) можно многократно использовать одни и те же разностные кадры.
Независимая обработка статических и динамических объектов позволяет сэкономить дисковое пространство
Данный механизм носит название межкадрового сжатия. Предсказанные кадры формируются на основе анализа широкой выборки зафиксированных состояний сцены: алгоритм предвидит, куда будет двигаться тот или иной объект в поле зрения камеры, что позволяет существенно снизить объем записываемых данных при наблюдении за, например, проезжей частью.
Кодек формирует кадры, предсказывая, куда будет двигаться объект
В свою очередь, использование двунаправленных предсказанных кадров позволяет в несколько раз сократить время доступа к каждому кадру в потоке, поскольку для его получения будет достаточно распаковать только три кадра: B, содержащий ссылки, а также I и P, на которые он ссылается. В данном случае цепочку кадров можно изобразить следующим образом.
Такой подход позволяет существенно повысить скорость быстрой перемотки с показом и упростить работу с видеоархивом.
В чем разница между H.264 и H.265?
В H.265 используются все те же принципы сжатия, что и в H.264: фоновое изображение сохраняется единожды, а затем фиксируются лишь изменения, источником которых являются движущиеся объекты, что позволяет значительно снизить требования не только к объему хранилища, но и к пропускной способности сети. Однако в H.265 многие алгоритмы и методы прогнозирования движения претерпели значительные качественные изменения.
Так, обновленная версия кодека стала использовать макроблоки дерева кодирования (Coding Tree Unit, CTU) переменного размера с разрешением до 64×64 пикселей, тогда как ранее максимальный размер такого блока составлял лишь 16×16 пикселей. Это позволило существенно повысить точность выделения динамических блоков, а также эффективность обработки кадров в разрешении 4K и выше.
Кроме того, H.265 обзавелся улучшенным deblocking filter — фильтром, отвечающим за сглаживание границ блоков, необходимым для устранения артефактов по линии их стыковки. Наконец, улучшенный алгоритм прогнозирования вектора движения (Motion Vector Predictor, MVP) помог заметно снизить объем видео за счет радикального повышения точности предсказаний при кодировании движущихся объектов, чего удалось достичь за счет увеличения количества отслеживаемых направлений: если ранее учитывалось лишь 8 векторов, то теперь — 36.
Помимо всего перечисленного выше, в H.265 была улучшена поддержка многопоточных вычислений: квадратные области, на которые разбивается каждый кадр при кодировании, теперь могут обрабатываться независимо одна от другой. Появилась и поддержка волновой параллельной обработки данных (Wavefront Parallelel Processing, WPP), что также способствует повышению производительности сжатия. При активации режима WPP обработка CTU осуществляется построчно, слева направо, однако кодирование каждой последующей строки может начаться еще до завершения предыдущей в том случае, если данных, полученных из ранее обработанных CTU, для этого достаточно. Кодирование различных строк CTU с временной задержкой со сдвигом, наряду с поддержкой расширенного набора инструкций AVX/AVX2 позволяет дополнительно повысить скорость обработки видеопотока в многоядерных и многопроцессорных системах.
Флэш-карты для видеонаблюдения: когда значение имеет не только размер
И вновь вернемся к табличке, с которой мы начали сегодняшний разговор. Давайте подсчитаем, сколько дискового пространства нам понадобится в том случае, если мы хотим хранить видеоархив за последние 30 дней при максимальном качестве видеозаписи:
По нынешним меркам 4 терабайта для винчестера индустриального класса — практически ничто: современные жесткие диски для видеонаблюдения имеют емкость до 14 терабайт и могут похвастаться рабочим ресурсом до 360 ТБ в год при MTBF до 1.5 миллионов часов. Что же касается карт памяти, то здесь все оказывается не так однозначно.
В IP-камерах флэш-карты играют роль резервных хранилищ: данные на них постоянно перезаписываются, чтобы в случае потери связи с видеосервером недостающий фрагмент видеозаписи можно было восстановить из локальной копии. Такой подход позволяет существенно повысить отказоустойчивость всей системы безопасности, однако при этом сами карты памяти испытывают колоссальные нагрузки.
Как видно из нашей таблицы, даже при низком качестве изображения и при условии минимальной активности в кадре, всего за сутки будет записано около 24 ГБ видео. А это значит, что 128-гигабайтная карточка будет полностью перезаписана менее чем за неделю. Если же нам требуется получать максимально качественную картинку, то все данные на таком носителе будут полностью обновляться раз в сутки! И это лишь при разрешении Full HD. А если нам понадобится картинка в 4K? В этом случае нагрузка вырастет практически в два раза (в заданных условиях видео в максимальном качестве потребует уже 250 ГБ).
При бытовом использовании подобное попросту невозможно, поэтому даже самая бюджетная карта памяти способна прослужить вам несколько лет к ряду без единого сбоя. А все благодаря алгоритмам выравнивания износа (wear leveling). Схематично их работу можно описать следующим образом. Пусть в нашем распоряжении есть новенькая флеш-карта, только что из магазина. Мы записали на нее несколько видеороликов, использовав 7 из 16 гигабайт. Через некоторое время мы удалили часть ненужных видео, освободив 3 гигабайта, и записали новые, объем которых составил 2 ГБ. Казалось бы, можно задействовать только что освободившееся место, однако механизм выравнивания износа выделит под новые данные ту часть памяти, которая ранее никогда не использовалась. Хотя современные контроллеры «тасуют» биты и байты куда более изощренно, общий принцип остается неизменным.
Напомним, что кодирование битов информации происходит путем изменения заряда в ячейках памяти за счет квантового туннелирования электронов сквозь слой диэлектрика, что вызывает постепенный износ диэлектрических слоев с последующей утечкой заряда. И чем чаще меняется заряд в конкретной ячейке, тем раньше она выйдет из строя. Выравнивание износа как раз направлено на то, чтобы каждая из доступных ячеек перезаписывалась примерно одинаковое количество раз и, таким образом, способствует увеличению срока службы карты памяти.
Нетрудно догадаться, что wear leveling перестает играть хоть сколько-нибудь значимую роль в том случае, если флэш-карта постоянно перезаписывается целиком: здесь на первый план уже выходит выносливость самих чипов. Наиболее объективным критерием оценки последней является максимальное количество циклов программирования/стирания (program/erase cycle), или, сокращенно, циклов P/E, которое способно выдержать флеш-память. Также достаточно точным и в данном случае наглядным (так как мы можем заранее рассчитать объемы перезаписи) показателем является коэффициент TBW (Terabytes Written). Если в технических характеристиках указан лишь один из перечисленных показателей, то вычислить другой не составит особого труда. Достаточно воспользоваться следующей формулой:
TBW = (Емкость × Количество циклов P/E)/1000
Так, например, TBW флеш-карты емкостью 128 гигабайт, ресурс которой составляет 200 P/E, будет равен: (128 × 200)/1000 = 25,6 TBW.
Давайте считать дальше. Выносливость карт памяти потребительского уровня составляет 100–300 P/E, и 300 — это в самом лучшем случае. Опираясь на эти цифры, мы можем с достаточно высокой точностью оценить срок их службы. Воспользуемся формулой и заполним новую таблицу для карты памяти емкостью 128 ГБ. Возьмем за ориентир максимальное качество картинки в Full HD, то есть в сутки камера будет записывать 138 ГБ видео, как мы выяснили ранее.
Ресурс карты памяти, циклов P/E
Методы сжатия цифрового видео
Постепенно все оборудование для производства видео и телевизионных программ в мире становится цифровым. Почему это происходит? Вовсе не из-за того, что цифровые методы всех восхищают и что качество изображения радикально улучшается, причины такого перехода — прежде всего экономические, ибо в настоящее время и цена, и стоимость эксплуатации цифрового комплекса меньше, чем традиционного аналогового с теми же функциями. Сейчас, когда цифровая техника достигла определенной зрелости, аналоговое оборудование неожиданно оказалось менее эффективным, менее надежным и куда менее рентабельным.
настоящее время пересматриваются сами основы видеопроизводства и доставки изображения зрителю, причем динамика перемен в нынешнюю — цифровую — эпоху значительно выше, чем в аналоговую. Сегодня, к примеру, формат кадра 4:3 постепенно вытесняется форматом 16:9, чересстрочная развертка — прогрессивной (построчной), а изменение стандартов кодирования повышает качество изображения. Экономика диктует и необходимость сжатия видеоинформации. Естественно, любое сжатие ухудшает качество визуализации и применяется не от хорошей жизни, а по необходимости.
Не стоит думать, что прежде не применяли сжатия видеоинформации и что появилось оно только с приходом цифровых технологий. Нет, сжатие применяли всегда, но только раньше оно было аналоговым, а сегодня необходимо делать его полностью цифровым, избавившись, где это возможно, от двойного, то есть и аналогового, и цифрового, сжатия.
Современные методы цифрового сжатия, которое пришло на смену аналоговому, особенно в сочетании с компьютерными технологиями, позволяют не только улучшить качество самого видео, но и расширить возможности видеопроизводства и оптимизировать просмотр аудиовизуальной продукции.
Основы цифровых преобразований
о существу цифровое представление, или оцифровывание, — это разбиение области определения непрерывной функции на некоторые интервалы и представление этой функции в виде набора значений на концах этих интервалов. Так, для цифрового звукового сигнала делят секундный интервал на шкале времени на 32, 44 или 48 промежутков, в каждом таком отсчете измеряют звук и сохраняют его значение с определенной точностью представления — обычно от 14 до 20 разрядов. Такие операции называются процессами дискретизации, то есть представлением какой-либо непрерывной величины (в данном случае — звука) посредством периодических дискретных измерений. После этого говорят, что звук оцифрован с частотой дискретизации соответственно от 32 до 48 кГц и разрядностью от 14 до 20 бит. Следовательно, цифровой поток, который необходимо сначала записать в цифровой форме, а затем воспроизвести, может составить величину от 500 тыс. до 1 млн. бит/с, причем это приводится в расчете на один звуковой канал.
В цифровом видео просто обобщается процесс дискретизации для одного значения на многозначную функцию, имеющую областью значения не число, а картинку (то есть становится трехмерным), чтобы разбить непрерывные строки изображения (сканирующего луча) на так называемые пикселы, или элементы изображения, — трехмерным наше пространство будет потому, что при представлении изображения в каждый момент времени участвует уже не одно значение, как в звуке, а целая картинка — кадр. В результате видеосигнал также представляется последовательностью целых чисел, а иначе говоря — потоком данных.
В случае же компонентных (раздельных) аналоговых видеосигналов в каждом канале надо передавать одновременно три цветовых компонента (красный — Red, зеленый — Green и синий — Blue, то есть RGB) или сигнал яркости совместно с цветоразностными сигналами (YUV). Преобразование цветовых компонентов RGB в компоненты YUV взаимооднозначно, но последний способ позволяет особо выделить изменение яркости сигнала, для которой человеческий глаз предусматривает отдельный механизм восприятия — при помощи палочковых клеток в сетчатке глаза, в отличие от цветового восприятия, осуществляемого колбочковыми клетками. Палочки чувствительнее колбочек, поэтому в системах с раздельным компонентным кодированием (например, в профессиональных видеомагнитофонах Betacam) полосу частот цветоразностных сигналов делают вдвое уже полосы частот сигнала яркости.
Теория дискретизации, в свою очередь, требует, чтобы частота дискретизации была по крайней мере вдвое выше ширины полосы частот сигнала, подлежащего оцифровке. В случае широкополосного сигнала (для звука это, например, одновременное воспроизведение нескольких частотных октав) частота дискретизации должна быть не менее чем в два раза больше наивысшей частоты входного аналогового сигнала (рис. 1).
Рис. 1. Пример дискретизации аналогового сигнала: a — правильная; б — неправильная. В первом случае исходный сигнал легко восстанавливается в виде огибающей отсчетов, а во втором, когда частота сигнала превышает половину используемой частоты дискретизации, такая огибающая уже не имеет ничего общего с исходным сигналом.
Иллюстрациями таких ошибок дискретизации могут служить кадры кинофильмов, где колеса автомобилей начинают вращаться в обратном направлении: это происходит потому, что частота вращения спиц (или вырезов на дисках колес) слишком высока для используемой при съемке частоты кадров, из-за чего получаемая картина не имеет ничего общего с действительностью
Таким образом, если сигнал яркости можно дискретизировать с частотой 13,5 мГц, то цветоразностные — с половинной частотой, то есть 6,75 мГц. Применяют также частоту, которая вчетверо меньше частоты яркостной дискретизации — 3,375 мГц, а поскольку она является самой низкой частотой из применяемых на практике, то в стандартах видео она получила обозначение «1». Соответственно 6,75 мГц обозначается как «2» (удвоенная), а 13,5 мГц как «4» (учетверенная). На этом основании даются и обозначения, применяемые для различных устройств, например студийные цифровые видеокамеры и магнитофоны работают с использованием частот 4:2:2, а в устройствах формата DV применяются схемы 4:1:1 или 4:2:0 (рис. 2). Соответствующая фильтрация (которую можно интерпретировать как аналоговое сжатие) приводит к уменьшению ширины полосы частот входных сигналов, обеспечивая использование увеличенных значений коэффициента сжатия цифрового.
Рис. 2. Пояснение алгоритма дискретизации, применяемого в различных форматах: белыми кружками обозначены те элементы изображения, в цветовом представлении которых меняется только яркость, а красными — которые, кроме яркости, меняют и цвет. В стандарте 4:2:2 цветоразность определяется для каждого второго отсчета, в стандарте 4:1:1 — для каждого четвертого,
а в структуре отсчетов 4:2:0 шаг цветоразностных отсчетов по горизонтали равен шагу по вертикали, что дает почти «квадратную» структуру по цвету
Для хранения и передачи видео также используют совместное (композитное) кодирование видеосигналов, которое можно охарактеризовать как метод сильного аналогового сжатия, поскольку оно позволяет передавать вышеописанные трехкомпонентные цветные изображения в полосе частот, отведенной для однокомпонентных черно-белых изображений.
После оцифровки аналогового сигнала к нему можно применить цифровое сжатие, основанное на том или ином алгоритме цифрового кодирования. В принципе, сжимать можно любой сигнал, представленный в цифровой форме, однако для композитного видео будет возможно только последовательное двойное сжатие (сначала сильное аналоговое, а потом цифровое), что никак нельзя признать удовлетворительным, да и коэффициент цифрового сжатия будет неизбежно ограничен вследствие высокой зашумленности аналогового сигнала. Поэтому, например, самый распространенный сегодня стандарт цифрового сжатия — MPEG — разработан исключительно для раздельных (компонентных) видеосигналов и по сути представляет собой способ замены полных цветовых аналоговых сигналов цифровыми, по возможности без предварительного аналогового сжатия.
Чересстрочность
идеосистемы традиционно используют так называемую чересстрочную развертку, когда строки каждого кадра подразделяются на четные и нечетные, а совокупности четных и нечетных строк называются полями. Попеременная передача четных и нечетных полей вместо целого кадра понадобилась в свое время не от хорошей жизни — таким образом было обеспечено удвоение частоты обновления изображения без удвоения требуемой ширины полосы частот.
Итак, чересстрочную развертку можно трактовать как своего рода аналоговое сжатие. Дефектами такого «сжатия» являются всем известные межстрочные мерцания, плохая разрешающая способность при передаче быстро двигающихся объектов и т.д.
Для достижения лучших результатов цифровое сжатие в идеале должно проводиться с использованием материала с нечересстрочного источника, так как в противном случае это опять будет последовательное двойное сжатие (как в случае с композитным сигналом), от которого нельзя ждать ничего хорошего.
Преобладание в настоящее время чересстрочной развертки в существующих видеосистемах означает, что на практике кодеры цифрового сжатия должны принимать материалы и от чересстрочных источников. Особую трудность чересстрочность создает для сжатия с применением алгоритмов компенсации движения (таких, например, как MPEG), поскольку отслеживать изменения в ситуации, когда последовательные поля не описывают одни и те же точки изображения, довольно сложно. Кроме того, чересстрочность усложняет формирование межполевого разностного сигнала изображения.
Из всего этого следует, что если вашей целью является изготовление DVD-видео (MPEG-2), то даже если ваш плеер не поддерживает прогрессивную (построчную) развертку, а на видеокамере такой режим есть, лучше пользоваться именно им.
Квантование
ермин «квантование» появился на стыке аналоговой и цифровой технологий и означает не что иное, как метод представления значения сигнала в точке отсчета в виде двоичного числа с определенной точностью. Так, аппаратный квантователь разделяет диапазон изменения (или шкалу напряжений аналогового сигнала) на ряд равных промежутков, каждый из которых представлен отдельным числом. Соответственно квантователь вырабатывает номер интервала, в который попадает аналоговое напряжение (само значение, вообще говоря, может определяться по таблице).
Если информация о положении аналогового напряжения внутри интервала теряется, то говорят о погрешности (или ошибке) квантования, но поскольку она не может быть больше интервала квантования, то такую величину ошибки можно минимизировать, используя достаточно большое число интервалов.
Таким образом, 8-битный преобразователь имеет 256 интервалов квантования (обеспечивая соотношение «сигнал/шум» примерно 50 дБ), в 10-битном соответственно 1024 кодовых слова (соотношение «сигнал/шум» на 12 дБ больше) и т.д.
Кстати, таким же образом происходит и восстановление сигнала: храниться может только номер интервала квантования, а восстанавливаемое значение берется из соответствующей таблицы.
Цифровое сжатие
ифровое сжатие, в общем случае известное также как сжатие данных или сокращение цифрового потока, является, в отличие от аналогового, более высокотехнологичным способом получения максимальных аудиовизуальных результатов при минимуме затрат. И потому при цифровом кодировании звук и видео можно довести до зрителя, значительно уменьшив поток или ширину полосы частот, причем с развитием компьютерных технологий известные методы сжатия дешевеют, а новые постепенно становятся все более жизнеспособными. К тому же такие направления, как цифровое вещание и видео по требованию, вообще не могли бы существовать без применения сжатия, а системы нелинейного (то есть произвольного) монтажа оказались бы без него абсолютно нерентабельными.
Цифровое сжатие гибкая технология, поскольку используемые уровни сложности кодирования и степень компрессии могут варьироваться применительно к приложению. Основным принципом цифрового сжатия является использование так называемой избыточности звукового или видеосигнала. Избыточность объясняется тем, что звук и видео содержат области, обладающие сходными характеристиками. Таким образом, весь поток информации можно условно разделить на предсказуемую часть (иначе говоря избыточность) и новую, непредсказуемую часть (известную в теории информации как энтропия). Сумма этих двух величин и дает нам поток данных, уменьшение которого будет зависеть от того, насколько хорошо мы можем осуществить «предсказание». Теоретически можно полностью устранить избыточность и оставить только энтропию, но для этого понадобился бы идеальный алгоритм сжатия, который был бы чрезвычайно сложным и работал бы неоправданно долго. Если же степень сжатия настолько велика, что результирующая скорость потока данных становится меньше энтропии, то информация теряется.
На практике коэффициент сжатия выбирается меньше идеального, чтобы обеспечить некоторый запас надежности. Это дает возможность пользоваться более простыми алгоритмами и производить повторное восстановление/сжатие без ощутимых потерь качества. В бытовой аппаратуре коэффициент сжатия может быть больше, чем в студийной, и если не требуется многократная перезапись, то в процессе сжатия некоторая доля энтропии отбрасывается.
Правила сжатия
Вам не потребуется знать все сложности процесса сжатия, если придерживаться следующих общих правил:
Многие разновидности цифрового сжатия видеосигналов основаны на том, что сигналы высокого уровня по амплитуде не встречаются одновременно на всех частотах, а при сжатии звуковых сигналов необходимо выполнить частотный анализ входного сигнала, чтобы разработать эффект маскирования. Обычно для таких целей используются спектральные преобразования, которые также применяются в методе фазовой корреляции при измерении движения. Частным случаем спектральных преобразований являются преобразования Фурье, которые используются в большинстве известных алгоритмов сжатия аудио- и видеосигналов. Преобразования Фурье — это метод обработки, используемый для анализа изменений сигналов во времени и для выражения их в виде спектра.
В цифровых системах сигнал представляется в виде дискретных отсчетов. Результатом преобразования Фурье для этого сигнала является такое же число дискретных частот — и такое преобразование называется дискретным преобразованием Фурье (ДПФ). Если же вам встретится упоминание о быстром преобразовании Фурье (БПФ), то это означает всего лишь эффективный способ вычисления ДПФ, при котором происходит спектральный анализ блока отсчетов посредством независимого вычисления каждой дискретной частоты анализа.
Что касается термина «дискретное косинусоидальное преобразование» (ДКП, DCT), то это — дополнительное упрощение ДПФ, которое осуществляется благодаря использованию только одной — косинусной — составляющей.
Измерение движения
студийной аппаратуре используется избыточность каждого поля в отдельности (данный вид компрессии называется внутреполевым кодированием), так как использование избыточности от поля к полю внутри одного кадра затрудняет видеомонтаж. Однако если видеомонтаж не требуется или если сложность его минимальна, то можно добиться большего коэффициента сжатия, воспользовавшись избыточностью между последовательными видеокадрами и передавая только их разность. Если движения в кадре нет (соседние кадры идентичны или их разность незначительна), то эффективность такого сжатия по сравнению с внутриполевым многократно возрастает.
Однако на практике движение ведет к уменьшению степени сходства соседних кадров, а разностный сигнал возрастает. Одним из способов преодоления этого является так называемая компенсация движения: если перемещение объекта известно, то информацию об этом перемещении можно передавать в виде вектора движения, а декодер может использовать этот вектор для сдвига группы элементов изображения, описывающих объект в предыдущем кадре. Кодер с компенсацией движения действует следующим образом: весь видеокадр подвергается внутриполевому кодированию, и не только передается, но и запоминается в кодере, чтобы его можно было сравнить со следующим кадром и вычислить векторы движения различных участков; затем предварительно сохраненный кадр смещается в соответствии с этими векторами, чтобы компенсировать это движение, и сравнивается с текущим кадром для получения разностных данных. Разностные данные со всей очевидностью можно трактовать как изображения, подвергая их сжатию разными методами. Именно на таком алгоритме сжатия основаны все стандарты MPEG.
Итак, измерение движения является очень важной операцией методов межполевого (межкадрового) сжатия видеосигналов в MPEG-формате. Для измерения движения в целях его дальнейшей компенсации при кодировании в MPEG применяются два метода: установление соответствия блоков (Block Matching) и вычисление фазовой корреляции (Phase Correlation).
Установление соответствия блоков — простейший метод. В видеокадре выбирается блок отсчетов, который используется в качестве опорного. Если выбранный блок принадлежит объекту, находящемуся в движении, то он появляется в следующем кадре в другом месте. При таком методе опорный блок просто перемещается в пределах второго видеокадра до нахождения совпадающих отсчетов. Установление соответствия определяет вектор перемещения.
Панорама кодеков
Какой кодек лучше? Это зависит и от задач, стоящих перед вами, и от того, для каких полос пропускания и скоростей потоков вы готовите свой материал, и от исходного материала, и от того, на какой системе он будет воспроизводиться.
В последнее время наибольшей популярностью пользуются кодеки на основе MPEG: для изготовления DVD-видео применяются кодеки MPEG-2, а для видеозаписи на CD предпочитают DivX. Поэтому более подробно мы представим вам именно эти форматы, хотя и напомним о существовании других кодеков, в том числе о тех, которые входят в стандартную поставку Microsoft Windows (некоторые реализации кодеров/декодеров вы найдете на нашем CD-ROM).
Стандартные кодеки
Cinepak когда-то это был самый популярный кодек, созданный более 13 лет назад фирмой SuperMac для компьютеров с процессорами Motorola 68030 и Intel 386, оборудованными односкоростными дисководами CD-ROM, а затем усовершенствованный компанией Radius. До сих пор этот кодек сохраняется на Mac и PC (включен в стандартную поставку Windows и Mac OS) и практически не загружает современный процессор. Использует алгоритм векторного квантования (Vector Quantilization, VQ). Всегда сжимает данные как минимум в 10 раз, но плохо подходит для низких скоростей передачи. Компрессия довольно медленная, а декомпрессия очень быстрая. Подходит для стриминга (потокового видео). Несколько лет назад компанией CTI была выпущена версия Cinepak Pro.
Альтернатива MPEG-кодированию от компании Ligos — пакет Indeo XP
for Windows, использующий технологии Indeo Video 5, базируется на алгоритмах Wavelet-компрессии
Intel Indeo Video межплатформенный кодек, первоначально разработанный для Windows. Предназначался для сжатия видео в среде Windows и последующего воспроизведения на компьютерах Macintosh (включен в стандартную поставку Windows и Mac OS). Сегодня новые версии кодека Indeo выпускает и поддерживает компания Ligos (http://www.ligos.com), известная ранее своими MPEG-кодеками LSX-MPEG (этот кодек когда-то даже входил в состав таких популярных пакетов для видеомонтажа, как Adobe Premiere и Ulead MediaStudio Pro), но в настоящее время не выдержавшая конкуренции и прекратившая выпуск MPEG-решений, полностью перейдя на другие алгоритмы компрессии. Последний пакет Indeo XP for Windows, использующий технологии Indeo Video 5, основан уже на волновом кодировании (Wavelet) и включает поддержку всех предыдущих кодеков: Indeo Video 3.2, Indeo Video 4.5 и Indeo Audio 2.5.
Microsoft RLE предназначен для декомпрессии видео, захваченного в среде Windows (включен в стандартную поставку).
Microsoft Video предназначен для декомпрессии видео и последующего просмотра в среде Windows (включен в стандартную поставку).
Sorenson Video этот кодек от компании Sorenson Media (http://www.sorenson.com) включен в стандартную поставку QuickTime, начиная с версии 3.0. Может применяться для создания роликов QT VR. Использует усовершенствованные алгоритмы векторного квантования и компенсации движения, а также адаптивное управление потоком. В настоящее время компания Sorenson Media, кроме новой версии кодека Sorenson Video 3 Pro Codec, выпускает и другие продукты: Sorenson Squeeze 3 for Flash MX (для видео в стандарте Macromedia Flash), Includes Sorenson MPEG-4 Pro (для видео в формате MPEG-4), а также Sorenson Squeeze 3 Compression Suite, который объединяет все эти продукты и включает как средства работы с потоковым видео в форматах Windows Media и RealMedia, так и кодеры MPEG-1 и MPEG-2.
Кодеки для видеоконференций
H.261 (известный также как Px64) — симметричный кодек реального времени, разработанный в качестве стандарта для низкопотоковых приложений (видеоконференций). Полоса пропускания обычно кратна 64 Кбит/с. Дает картинку очень невысокого качества. Аналогичен MPEG-1 (ДКП с компенсацией движения), без двунаправленного кодирования. Оптимизирован для статичных сцен и использует сильное межкадровое сжатие (включен в стандартную поставку Windows и Mac OS).
H.263 следующий после H.261 общепризнанный стандарт для видеоконференций. По сравнению с H.261 качество изображения улучшено, кодек лучше работает с компенсацией движения и обеспечивает более высокую скорость кодирования. Ориентирован на скорость модема 28,8 Кбит/с. Применяются алгоритмы MPEG (включая двунаправленное кодирование). Видеокодек MPEG-4 по сути является модификацией H.263. Этот формат имеет ограничение по разрешению не более 352Ѕ288. Включен в стандартную поставку Windows и Mac OS (начиная с QuickTime 3.0).
H.323/H.324 более поздние стандарты для видеоконференций, которые предполагают использование кодеков в виде подключаемых модулей, что позволяет пользователю выбрать все, что имеется в его системе.
MPEG-кодеки
CinemaCraft Encoder этот кодек разрабатывается и продается компанией Cinema Craft (http://www.cinemacraft.com) в трех версиях: MPEG-2 encoder CCE-Pro (с возможностью кодирования в реальном времени), MPEG-1/2 encoder CCE-SP и MPEG-1/2 encoder CCE-Basic. Текущая версия основного кодера — 2.69.01.10.
TMPGEnc Encoder Plus разрабатывается и продается компанией Pegasus (http://www.pegasys-inc.com). Кроме решения для MPEG-кодирования, Pegasus выпускает полный пакет средств для подготовки и создания DVD-видео: TMPGEnc 3.0 XPress, TMPGEnc DVD Author 1.6, TMPGEnc DVD Source Creator 2.0 и TMPGEnc Plug-Ins AC-3. Версия кодера TMPGEnc 2.521 бесплатно распространяется по адресу http://www.tmpgenc.net/e_main.html.
MainConcept MPEG Encoder от компании Main Concept Multimedia Technologies (http://www.mainconcept.com) в последнее время становится очень популярным. Кроме решения для MPEG-кодирования, у компании есть много других программ для создания, редактирования и обработки видео: видеоредакторы EVE v2 и MainActor v5, плеер/рекордер MainConcept PVR, программа для компоузинга и спецэффектов MainVision, DVD Video Loops, а также такие кодеры, как Motion JPEG Codec, DV Codec, DVCPro 25/50 Codec, H.264 Encoder и др. У Main Concept есть и решение для ОС Linux — это MainActor v5 Linux Video Editing, который продается всего за 99 долл.
MainConcept EVE программа для оцифровки и компрессии аналогового видеосигнала в форматы MPEG-1 и MPEG-2
Canopus ProCoder данный продукт от известной компании Canopus (http://www.canopus.com) по-прежнему остается наилучшим кодером для создания любительских DVD-Video-дисков. Несмотря на успехи конкурентов, другие MPEG-кодеки продолжают заметно уступать ProCoder по качеству кодирования, особенно на невысоких потоках, и, конечно, по качеству изображения. Однако это весьма недешевый продукт (рекомендуемая розничная цена — 599 долл.), снабженный к тому же аппаратным USB-ключом для защиты от копирования. Весной этого года вышла новая версия Canopus ProCoder 2.0. Внешне программа претерпела заметные изменения и теперь оформлена в общем для Canopus стиле. К тому же это одна из немногих программ, производящих корректное преобразование исходного материала из NTSC в формат PAL, причем ProCoder выполняет это в автоматическом режиме и даже преобразует соотношения сторон кадра 16:9 в 4:3 для формата Letterbox. Кроме того, компания Canopus выпускает и другие программные и аппаратные решения для работы с цифровым видео: DVStorm2Pro+, MediaEdge2, EDIUS 2.5 и т.д.
Знаменитый Canopus ProCoder по-прежнему остается наилучшим кодером для создания любительских DVD-Video-дисков
Эти MPEG-кодеки в настоящее время считаются наиболее популярными, но помимо вышеописанных существуют и другие реализации кодирования в MPEG-форматы, в том числе бесплатные, причем качество работы кодеков напрямую зависит от типа и состояния исходного видеоматериала. Советуем посмотреть, как тестировал эти MPEG-кодеки Сергей Блохнин на видеоматериале формата DV по адресу http://www.spline.ru/information/reviews/digital-video/tech/MPEG_encoders.
Однако объем вычислений, требуемый для установления соответствия, может быть огромным, поскольку каждое возможное положение должно быть проверено. Снизить объем вычислений можно посредством поэтапного установления соответствия, если сначала захватывать большой диапазон перемещений, вычисляя «попадание» с небольшой точностью, а на последнем этапе, после локализации возможного положения, эту точность повысить. Поэтому первый этап осуществляется на изображении, подвергнутом интенсивной фильтрации и субдискретизации и содержащем намного меньше отсчетов. После грубой локализации дискретизацию можно понизить, уточнив перемещение, и так же действовать вплоть до окончательного уточнения на исходном изображении, где, в принципе, можно достичь любой желаемой точности (отметим, что некоторые MPEG-кодеки предусматривают управление этим параметром, запрашивая желаемую точность передачи движущихся объектов).
Неточности при измерении движения не представляют особой проблемы в цифровом сжатии, поскольку они возникают внутри петли отслеживания ошибок и компенсируются путем передачи соответствующих разностей видеокадров. Однако большие ошибки в измерении движения могут привести к значительной разнице между последовательными видеокадрами, а это увеличивает объем разностных данных и, как следствие, приводит к снижению качества результирующего изображения, поскольку ограничение на передаваемый поток не позволяет передавать излишние разностные данные.
Другим способом измерения движения является метод фазовой корреляции, который основан на преобразовании Фурье блоков отсчетов в двух соседних видеокадрах с последующим вычитанием всех фаз спектральных составляющих. Полученные фазовые разности подвергаются обратному преобразованию, позволяющему сразу же обнаружить пики, положение которых соответствует перемещению от кадра к кадру. Природа этого преобразования такова, что при точном измерении расстояния и направления движения нельзя точно определить ту область экрана, где происходит это движение.
Вообще, спектральные преобразования обладают одним фундаментальным свойством: чем точнее анализируются частота и фаза сигнала, тем менее точно известно, в каком месте исходного сигнала присутствуют эти частоты. Поэтому в практических применениях метод фазовой корреляции сопровождается этапом согласования, который по своей сути похож на процесс установления соответствия блоков. Однако при применении метода соответствия блоков после установления фазовой корреляции (в отличие от независимого применения, описанного выше) процесс установления соответствия управляется данными движения, полученными методом фазовой корреляции, поэтому проверять согласование для всех возможных направлений и расстояний не требуется, так как они уже точно найдены. К тому же процесс с использованием фазовой корреляции намного эффективнее прямого процесса установления соответствия блоков, так как при фазовой корреляции последовательное установление соответствия блоков с различной разрешающей способностью заменяется параллельной обработкой/согласованием.
Формат MPEG
адеемся, теперь вам стало понятно, что MPEG не является методом сжатия как таковым, а представляет собой набор стандартных средств и алгоритмов, которые могут комбинироваться при реализации цифрового сжатия. Поэтому существует огромное многообразие различных форматов, основанных как на изменении самого MPEG-кодирования, так и на постоянном усовершенствовании его реализаций.
Алгоритмы сжатия, разработанные для передачи неподвижных изображений в других приложениях (таких, например, как цифровая фотография), можно модифицировать для перехода на внутрикадровое сжатие видеоинформации. Например, стандарт JPEG (Joint Photographic Experts Group — Совместная группа экспертов по фотографии) как раз и предоставил в свое время подобные алгоритмы (кстати, JPEG похож на MPEG тем, что тоже допускает использование различных методов кодирования и даже обеспечивает в формате файла хранение самого алгоритма сжатия в описании изображения). Кроме того, до сих пор в профессиональных приложениях используется Motion-JPEG, который не предусматривает межкадрового сжатия, чем упрощает нелинейный монтаж.
Межкадровое сжатие данных обеспечивает увеличение коэффициента компрессии при относительно редких искажениях изображения, что позволяет эффективно доставлять зрителю скомпонованные видеоматериалы. Первоначально столь интенсивное сжатие понадобилось в таких приложениях, как видеотелефоны, видеоигры и т.п., где требовались очень низкие потоки данных, а частые искажения изображения были не слишком принципиальны. Именно на них и были ориентированы стандарты MPEG (Motion Picture Experts Group — Группа экспертов по движущимся изображениям).
Однако, как мы уже сказали, MPEG не предопределяет выбора методов сжатия для кодера — вместо этого стандарты MPEG точно указывают декодеру, какой смысл приписывать тем или иным сжатым цифровым потокам. Стандарты MPEG не содержат и указаний по передаче цифровых потоков, поскольку это определяется конкретным применением. Выбор такого подхода обусловлен необходимостью предоставить большую гибкость при сохранении совместимости. Разработчики могут пользоваться своими запатентованными алгоритмами кодирования и при этом формировать стандартный цифровой поток. Хотя алгоритмы можно постоянно совершенствовать, сигналы все-таки сохранят совместимость с существующими декодерами.
Области применения формата MPEG сегодня очень широки — начиная с маленьких видеороликов, размещаемых в Интернете, и заканчивая высококачественными изображениями на громадных экранах телевидения высокой четкости. Требования к качеству изображения могут быть самыми разными — как весьма низкими для охранных и видеотелефонных сетей, так и очень высокими для кинофильмов на DVD-видео. Кроме того, иногда один и тот же передаваемый сигнал требуется декодировать на уровне различных стандартов (например, на маленьком телевизоре совсем необязательно декодировать сигнал телевидения высокой четкости в полном объеме) — MPEG допускает и комбинированные реализации.
Помимо цифрового сжатия видеосигналов, стандарты MPEG распространяются на звуковое сопровождение в сжатом виде и на мультиплексирование звуковых и видеоданных в одном потоке, чтобы сохранить синхронизацию.
Профили и уровни MPEG
еобходимость иметь широкий диапазон качественных показателей и уровней сложности диктует разделение MPEG-стандартов на так называемые профили с последующим подразделением профиля на уровни.
Профиль предоставляет метод (простой, основной, адаптивный по шуму, адаптивный по разрешению, высокий), а уровень определяет конкретные ограничения этого метода:
• низкий уровень с разрешением до 352Ѕ288 отсчетов с потоком до 4 Мбит/с;
• основной уровень с разрешением до 720Ѕ576 отсчетов с потоком до 15 Мбит/с;
• высокий уровень с разрешением до 720Ѕ576 (до 1440 отсчетов) с потоком до 60 Мбит/с;
• высокий уровень с разрешением до 1920Ѕ288 отсчетов с потоком до 80 Мбит/с.
Простой профиль, как следует из его названия, дает возможность пользоваться кодером и декодером минимальной сложности, а кодирование там, как правило, является однонаправленным.
Основной профиль разработан для значительной части применений, и именно на нем сосредоточено внимание разработчиков оборудования и программ.
Профиль, адаптивный к шуму, предусмотрен для применения в системах, где для передачи одного видеосигнала используются два отдельных цифровых потока, которые можно потом декодировать совместно и получать высококачественное изображение с высоким соотношением «сигнал/шум». В случае отсутствия или порчи одного из потоков результирующее изображение будет иметь ту же разрешающую способность и лишь соотношение «сигнал/шум» понизится. Соответствующий кодер сжатия должен быть спроектирован таким образом, чтобы формировать не один, а два цифровых потока. Первый из них является носителем зашумленного изображения, а другой — сигналом цифровой поддержки, который будет добавлен к первому сигналу для устранения шума. Такой метод, к примеру, может применяться в цифровом телевизионном вещании.
Профиль с адаптацией по разрешению предусматривает несколько цифровых потоков (их число зависит от количества типов устройств, предполагаемых для показа), обеспечивающих возможность воспроизведения на устройствах с различной разрешающей способностью. При этом один поток (низкого разрешения) может декодироваться в любом случае, а другие могут представлять собой сигналы пространственной поддержки, которые при добавлении к первому потоку обеспечивают повышение разрешающей способности с целью отображения на больших высококачественных экранах.
Высокий профиль адаптируется по частоте развертки, позволяя осуществлять передачу цифрового потока, который можно декодировать с получением двух различных кадровых частот в соответствии со сложностью декодера (в частности, для телевизоров 50 и 100 Гц можно предусмотреть отдельные видеопотоки).
Уровни, как мы показали выше, различаются в основном реализуемой разрешающей способностью и требуемым цифровым потоком. Основной уровень применяется в стандартном телевидении и вместе с основным профилем является сегодня самым востребованным.
Но не следует думать, что MPEG-декодер с заданными профилем и уровнем будет декодировать только свой сигнал — в общем случае все MPEG-декодеры позволяют декодировать входные сигналы, соответствующие более низким профилям и уровням. Поэтому стандартный адаптивный декодер будет нормально работать и с основным, и с простым профилем.
Отметим, что в основе большинства вариантов иерархии MPEG лежит вышеописанный видеостандарт 4:2:0, предусматривающий вертикальную субдискретизацию цветоразностных сигналов.
MPEG-1, MPEG-2 и другие
окументация MPEG-1 была опубликована первой и описывала стандарты кодирования с серьезными ограничениями на цифровые потоки — до 1,5 Мбит/с. Чересстрочная развертка в MPEG-1 не поддерживалась, а разрешающая способность была ограничена величиной до 352Ѕ288 отсчетов (в видеостандарте PAL). Для кодирования звука допускалось использование сигналов стерео с потоками до 192 Кбит/с. Такая величина потока была выбрана в основном потому, что в аудиовизуальных системах предполагалось использование компакт-дисков (VideoCD). В дальнейшем скорости считывания компакт-дисков несколько возросли, а требования к потокам смягчились, но разрешающая способность не менялась, что связано в первую очередь с тем, что MPEG-1 — простой формат, в котором сложности с чересстрочностью преодолеваются простым отбрасыванием каждого второго поля перед сжатием. Поскольку при этом эквивалентная вертикальная разрешающая способность и качество передачи снижаются вдвое, для однородности горизонтальное разрешение тоже снижено в два раза. Таким образом, кодер начинает с одной четверти исходной полосы частот, и не удивительно, что за счет этого достигается высокий коэффициент сжатия. Для воспроизведения MPEG-1 на компьютерах сначала применялись специальные платы (MPEG-декодеры), а затем с этим начали справляться и программы (начиная с процессоров Pentium не ниже 166 МГц или PowerMac 120, 166 МГц).
Понятно, что применение MPEG-1 в телевизионном вещании и при производстве видеопродукции было крайне ограниченным, так как он не выдерживал конкуренции с аналоговыми форматами. И даже такие нестандартные усовершенствования MPEG-1, как Super VideoCD (с повышением разрешения до 352Ѕ576, использованием чересстрочности, увеличением потока до 5 Мбит/с и возможностью кодирования с переменным потоком данных), широкого применения не нашли. Чтобы решить эту проблему и составить конкуренцию аналоговым форматам, был разработан стандарт MPEG-2, поддерживающий чересстрочную развертку и позволяющий кодировать стандартное видео с потоками от 3 до 15 Мбит/с и даже сигналы телевидения высокой четкости с потоками от 15 до 30 Мбит/с. Значительно расширены в MPEG-2 и возможности по кодированию звуковых сигналов, а также добавлена поддержка многоканальных систем объемного звучания. Но главной отличительной особенностью формата MPEG-2 следует считать возможность передачи данных с переменной скоростью (Variable Bit Rate, VRB), что позволяло значительно улучшить общее качество картинки, поскольку для статической сцены с небольшими изменениями в кадре можно было снижать поток, а на сложных сценах с большим количеством деталей и быстрым движением — увеличивать его так, чтобы общий поток при этом практически не менялся. По причине того, что стандарты MPEG имеют иерархическую структуру, декодер MPEG-2 может декодировать сигналы MPEG-1, но не наоборот.
Следует также сказать и о стандарте MPEG-4, более известном такими своими клонами, как DivX. Поскольку MPEG-1 перестал удовлетворять пользователей, а MPEG-2 предъявлял высокие требования к производительности системы воспроизведения, да и вообще MPEG-кодеки отличались высокой чувствительностью к потерям пакетов при передаче по сетям, ибо имели высокую взаимозависимость кадров (особенно при двунаправленном кодировании), решено было разработать специальный формат для Интернета — MPEG-4. Первоначально предполагалось, что это будет формат, устойчивый к передаче по сетям, имеющий высокие интерактивные возможности и снабженный специальным языком MSDL (MPEG-4 Syntactic Description Language), позволяющим конструировать кодеки из более простых компонентов, которые, в свою очередь, могли бы загружаться из Интернета. В результате удалось разработать весьма мощный и гибкий формат и достигнуть на нем довольно высокого качества визуализации. И хотя сегодняшний DivX не имеет ничего общего ни с тем, что было задумано, ни даже с форматом MPEG-4 (и, по существу, представляет собой лишь простую, но удачную реализацию возможностей MPEG-формата), именно он пользуется большой популярностью при записи видео на обычные компакт-диски.
Что касается передачи видео по сетям, то возможности реализации этого в рамках MPEG-стандарта заложены в так называемом системном уровне. Так, структуры, которые описывались до сих пор, известны как элементарные потоки, поскольку они являются носителями данных только одного видеоканала (такие же элементарные потоки переносят данные звукового сопровождения). Следующий уровень MPEG-кодирования касается мультиплексирования звуковых и видеоданных сразу нескольких программ (как, например, в цифровых системах спутникового телевидения).
Но если программные потоки, которые составляются из звуковых и видеоданных одной вещательной службы, имеют одну общую тактовую частоту, а пакеты данных переменной длины и относительно плохо защищены от ошибок, то так называемые транспортные потоки организованы несколько по-иному.
Транспортный поток является альтернативой программного потока, и здесь используются пакеты постоянной длины с многоуровневой коррекцией ошибок. И хотя стандарты MPEG не требуют этого в явном виде, принято защищать такой пакет от ошибок посредством добавления к единице записи (пакету в 187 байт) 16 избыточных байт, которые служат для проверки. Системный уровень предоставляет также таблицы распределения программ, где перечисляются все передаваемые элементарные потоки и вещательные службы, к которым эти потоки относятся. А поскольку службы могут пользоваться различными источниками тактовых импульсов, то предусматривается их независимое тактирование.
Так как применение кодирования с переменной длиной слова означает, что происходит динамическое уменьшение или увеличение буфера в кодере и декодере (в результате чего возникают временные задержки), то в системном уровне предусмотрены временные метки, интегрированные в данные, которые гарантируют синхронность. Если при этом применяется условный доступ, то системный уровень обеспечивает управление скремблированием и шифрованием.
Цифровое сжатие звука
вуковое сопровождение цифрового сигнала вещательного качества (не подвергнутого сжатию) требует всего лишь около 1% общего цифрового потока. Однако наш слух очень чувствителен к искажениям звука, в том числе и вызванным цифровым сжатием, поэтому там, где в этом нет жизненной необходимости, звук лучше вообще не сжимать. Если же речь идет о 10-кратном и более высоком сжатии видеосигнала, то цифровые потоки сжатого видео и несжатого звука окажутся сравнимыми, поэтому цифровое сжатие звукового сигнала станет целесообразным.
Методы сокращения звуковых данных схожи с методами сжатия видеоинформации. Если речь идет об аналоговом сжатии, то так же, как и в случае с палочками и колбочками в сетчатке глаза, следует рассмотреть механизмы человеческого восприятия звуков. Так, при цифровом сжатии широко применяется слуховая маскировка, основанная на неспособности нашего уха воспринимать определенные звуки в присутствии других (например, по сравнительной громкости звучания, диапазону и т.д.). Таким образом, ухо человека, как и глаз, способно извлечь лишь некоторую часть информации, содержащейся в приходящем звуке, а значит, то, что оно может различать, можно назвать перцепциальной энтропией, а все остальные составляющие считать избыточными.
Назовем основные методы, применяющиеся при цифровом сжатии звука:
• диапазонная регулировка усиления, которая обеспечивает увеличение уровня слабых сигналов для того, чтобы они превысили минимальный уровень шума, причем увеличение усиления должно компенсироваться в декодере;
• квантование, которое обеспечивает устранение слабых звуков. Это уменьшает длину слова отсчетов, что дает экономию при хранении, но может повысить минимальный уровень шума. Применяя маскировку, можно повысить уровень шума, который, однако, будет оставаться неслышимым;
• кодирование с предсказанием, основанное на монотонной природе звуковых колебаний. Вследствие этого можно передавать только разность между предсказанным и фактическим значением, а приемник, где содержится аналогичный предсказатель, будет добавлять только эту разность и восстанавливать исходное значение;
• полосное кодирование, базирующееся на разбиении звукового спектра по диапазонам частот (полосам). Уровни сигналов в большинстве таких полос будут меньше наивысшего уровня сигнала. В полосном кодировании используется тот эффект, что реальные звуки не обладают равномерным распределением спектральной энергии. При этом число используемых частотных полос зависит от того, какие другие методы применяются вместе с полосным кодированием;
• спектральное кодирование, основанное на преобразовании Фурье (ДКП) или на волновом преобразовании (Wavelet Тransform). Поскольку спектр звукового сигнала меняется медленно, то его коэффициенты требуется передавать реже, чем звуковые отсчеты.
В большинстве кодеров используется сочетание полосного и спектрального кодирования, причем их действие основано на маскировке шума, вызываемого квантованием.
Сжатие звуковых сигналов по стандартам MPEG
стандарте MPEG-1 входные звуковые сигналы дискретизируются с частотой 32; 44,1 или 48 кГц. Определяют также режимы (Layers) и уровни (Levels) кодирования звуковых сигналов. Что касается режимов, то это всем известные моно, когда передается только один канал, стерео — для двух и т.д. Имеется также три алгоритма кодирования разной сложности, известные как уровни 1, 2 и 3 (нумерация здесь идет по возрастанию сложности кодирования, а не по качеству полученного сигнала). Уровень 2 первоначально планировался основным и считался наиболее подходящим для большинства применений. Уровень 1 был рассчитан на упрощенный кодер и потому должен был использоваться только в больших цифровых потоках — в противном случае декодер мог бы не справиться с восстановлением звука и качество воспроизведения понизилось бы. Уровень 3 был самым сложным для кодирования и предназначался для очень малых цифровых потоков, где обеспечивалось наивысшее качество. А поскольку этот уровень хорошо подходил и для воспроизведения и передачи звука в реальном времени (стриминга), например по сети Интернет, то впоследствии, с ростом производительности и сложности кодеков, кодирование музыкальных фрагментов MPEG-1 уровня 3 стало наиболее популярным у пользователей и получило особое название — MP3.
В MP3 была сделана попытка создать очень точную слуховую модель: здесь вычисляется 576-рядное дискретное косинусоидальное преобразование (причем различное число звукорядов объединяется в группы, чтобы смоделировать изменение ширины критических полос слухового механизма человека), а звуковая информация передается в виде коэффициентов преобразования, подвергнутых квантованию в соответствии с моделью маскирования. Чтобы еще больше сократить цифровой поток, применяется код Хаффмана, а в декодере требуется выполнить двойное преобразование.
К тому же в MP3 поддерживаются не только четыре основных режима уровней 1 и 2 (моно, стерео, сдвоенный моно и квазистерео), но и некоторые дополнительные режимы, в частности интенсивная стереофония, которая отличается тем, что в верхней части звукового спектра для каждой полосы частот, управляемой масштабным коэффициентом, передается только один сигнал, сопровождаемый кодовым словом, указывающим его пространственное положение в стереозвуковом образе.
Декодер, в свою очередь, снабжается эквивалентом панорамного потенциометра, с помощью которого декодированный сигнал каждой полосы направляется в каждый из каналов с надлежащим уровнем.