РАЗДЕЛ 1. ОБЗОР СТАНДАРТОВ КОДИРОВАНИЯ MPEG-4 H.264 И MPEG-4 H.265
Общие сведения о стандарте MPEG H.264
H.264 MPEG-4 Part 10/AVC —стандарт видеокодирования,
предназначенный для достижения высокой степени сжатия видеопотока при сохранении высокого качества. Стандарт H.264/AVC предназначен для технических решений, включающих следующие области применения:
1) кабельное, спутниковое, наземное вещание, вещание с помощью кабельных и DSL модемов;
2) хранение на оптических и магнитных носителях, DVD и т.д.;
3) диалоговые службы, работающие в различных сетях (например, ISDN, Ethernet, LAN, DSL, беспроводные и мобильные сети, а также любые сочетания этих сетей);
4) видео по запросу или службы потокового мультимедиа в различных сетях;
5) MMS (службы мультимедийных сообщений) в различных сетях и т.д.
H.264 является результатом совместного проекта группы экспертов по кодированию видео ITU-T и группы экспертов по вопросам кинотехники
ISO/IEC (MPEG). ITU-T проводит координацию телекоммуникационных стандартов от имени Международного телекоммуникационного союза. ISO
расшифровывается как Международная организация по стандартизации, а
IEC – Международная электротехническая комиссия, которая осуществляет надзор за всеми электротехническими, электронными и сопутствующими им технологиями.
Название H.264 используется со стороны ITU-T, в то время как ISO/IEC
дали стандарту название MPEG-4 Part 10/AVC, поскольку он представляет собой новый элемент в их пакете MPEG-4. В пакет MPEG-4, к примеру,
входит и MPEG-4 Part 2 – стандарт, применяемый в видеокодерах и сетевых камерах на базе IP-систем.
Финальный черновой вариант первой версии стандарта был закончен в мае 2003 года.
MPEG H.264, разработанный для исправления некоторых недостатков в предыдущих стандартах сжатия видеоизображений, достигает своих целей
благодаря:
- устойчивости к ошибкам, которая позволяет воспроизводить изображение
несмотря на ошибки при передаче данных по различным сетям
- малой задержке и получению лучшего качества при более длительной задержке
- простой структуре синтаксиса, которая упрощает внедрение стандарта
- декодированию на основе точного совпадения, при котором определяется точное количество числовых расчетов, производимых кодером и декодером,
что позволяет избежать появления накапливающихся ошибок.
MPEG H.264 также обладает гибкостью, которая позволяет применять его для решения различных задач с самыми разными требованиями к скорости передачи данных. К примеру, в области развлекательного видео
(телетрансляции, DVD, спутниковое и кабельное телевидение) H.264
способен обеспечить скорость от 1 до 10 Мбит/с с большой задержкой, в то время как для телекоммуникационных услуг H.264 может предложить скорость передачи данных менее 1 Мбит/с с малой задержкой [8].
Структурная схема кодера H.264
Кодер H.264 содержит практически те же элементы, что и кодеры
MPEG1, MPEG2, MPEG4, H.261, H.263. В целом сжатие происходит по тем же принципам, хотя во всех основных элементах есть качественные изменения. Это позволило значительно повысить качество кодирования.
Кодер включает две ветви обработки видеопотока:
1) канал прямого кодирования, где обработка данных происходит слева направо;
2) канал реконструкции видеоизображения, в нем обработка данных происходит справа налево.
В декодере обработка данных происходит справа налево.
На вход кодера поступает кадр Fn. Обработка кадра происходит по макроблокам, соответствующим фрагментам размером 16×16 точек в исходном изображении. Каждый макроблок может быть обработан в двух режимах: INTRA или INTER. В любом режиме прогноз макроблока Pn
формируется на основе восстановленного кадра.
В режиме INTRA прогноз формируется из выборок текущего кадра n,
предварительно закодированных и восстановленными (F'n на рис.1.1 и 1.2).
Причем используются выборки кадра до деблокирующего фильтра. В режиме
INTER прогноз формируется с учетом изменений, которые произошли в текущем кадре по сравнению с одним или несколькими предыдущими (или последующими). Кадры, служащие для прогноза, должны быть предварительно закодированы и восстановлены. В блоках формирования
INTRA- и INTER-прогноза происходит выбор наиболее подходящего способа в зависимости от типа кодируемого кадра.
Рис.1.1. Структурная схема кодера
Рис.1.2. Структурная схема декодера
Полученный прогноз Pn вычитается из текущего макроблока. В
результате вычисляется макроблок остаточных коэффициентов Dn. Этот макроблок поступает в преобразователь, где происходит частотное преобразование остаточных коэффициентов.Частотные коэффициенты квантуются (масштабируются), что позволяет произвести сжатие видеоданных с потерями. Полученный набор преобразованных и квантованных коэффициентов X служит исходным для обратного канала реконструкции данных. В дальнейшем коэффициенты переупорядочиваются в блоке прямого сканирования. В результате коэффициенты выстраиваются в линейный массив в порядке возрастания. Затем происходит энтропийное кодирование упорядоченного массива коэффициентов, что обеспечивает сжатие данных без потерь. Закодированные коэффициенты вместе с дополнительной информацией, требуемой для правильного декодирования макроблока (режима прогноза, коэффициент квантования и т. д.), составляют сжатый битовый поток данных абстрактного сетевого уровня (NAL). Этот поток может передаваться по каналу связи либо быть записан на любой носитель для хранения.
В канале реконструкции вначале происходит обратное квантование,
затем обратное частотное преобразование. В итоге получаются восстановленные разностные коэффициенты D'n. Они суммируются с прогнозом Pn, и это позволяет получить восстановленный кадр F'n.
Необходимо отметить, что восстановленный кадр не является идентичными исходному. В него внесены искажения, обусловленные квантованием и квазиортогональным частотным преобразованием. Именно такой кадр будет получен на приемной стороне, и поэтому именно его необходимо использовать для формирования прогноза в режиме INTRA.
При обработке кадра по макроблокам возникают специфические искажения (блочность), проявляющиеся в резких перепадах значений коэффициентов на границе между макроблоками. Для их уменьшения предназначен деблокирующий фильтр. Полученный после него восстановленный кадр служит в качестве опорного для формирования прогноза в режиме INTER. Отметим, что невозможно использовать деблокирующий фильтр в режиме INTRA, так как на момент формирования прогноза в этом режиме обработанной является только часть макроблоков, и
полной информации о границе между макроблоками нет.
Декодер получает сжатый битовый поток абстрактного сетевого уровня
NAL (рис. 1.2). Он осуществляет обратные процедуры по отношению к кодеру. Стоит только отметить, что в блоках формирования INTRA- и INTER-прогнозов нет элементов, отвечающих за анализ кадра. Информация о конкретном режиме и способе его реализации извлекается из битового потока.