Приводится обзор современного стандарта сжатия цифрового видео H.265/HEVC. Описываются основные подходы, используемые в данном стандарте. Особое внимание уделяется отличию методов, используемых в новом стандарте, от классических методов в области сжатия цифрового видео.
Overview of the new standard OF digital video compressing H.265/HEVC.pdf В апреле 2013 г. был официально утвержден проект международного стандарта сжатия цифровых видеопоследовательностей H.265/HEVC [1]. Его разработкой занималась объединенная команда из группы экспертов по видеокодированию VCEG (Video Coding Experts Group) и группы экспертов по движущимся изображениям MPEG (Moving Picture Experts Group). Ключевым требованием, предъявляемым к новому стандарту, стало обеспечение двукратного увеличения степени сжатия по сравнению с текущим индустриальным стандартом H.264/AVC при фиксированном качестве. Для достижения данной цели был предложен ряд алгоритмических средств, учитывающих многие аспекты сжатия видео. В целом HEVC реализует классическую схему гибридного кодирования [2], которая успешно применялась в стандартах прошлых поколений MPEG-2 [3] и H.264/AVC [4]. Ее основная идея состоит в устранении временной и пространственной избыточностей видеопоследовательности. Под временной избыточностью понимается корреляция значений пикселей между кадрами, под пространственной – корреляция значений пикселей внутри каждого кадра. Все кадры последовательности разбиваются на три группы: I-кадры (intra), P-кадры (predicted) и B-кадры (bidirectional). I-кадры (или ключевые) кодируются независимо от других кадров. Как правило, декодирование сжатого видеопотока начинается именно с I-кадра. Данный тип кадров дает возможность устранить лишь пространственную избыточность внутри этого же кадра. P-кадром называется кадр, ссылающийся на один или несколько предыдущих кадров. При кодировании кадров типа P кодек пытается найти максимально близкий к кодируемому блоку пикселей блок в предыдущих кадрах. Этот процесс называется предсказанием, а кадры, полученные таким образом, – предсказанными. При кодировании предсказанного блока используется остаточная информация (residuals), представляющая собой разность значений соответствующих пикселей между кодируемым блоком и блоком, от которого он был предсказан. B-кадры также являются предсказанными, но, в отличие от P-кадров, они могут ссылаться как на предыдущие, так и на последующие кадры видеопоследовательности. Кодирование видеопоследовательности P- и B-кадрами позволяет устранить оба вида избыточности. В HEVC остаточный сигнал подвергается модификации дискретного косинусного и синусного преобразования, переводящего сигнал из амплитудной области в частотную. Полученные в результате такого преобразования коэффициенты квантуются с тем, чтобы, пожертвовав менее важными данными, обеспечить необходимую степень сжатия. Таким образом, именно в процессе квантования происходит потеря данных, влияющая на снижение качества видео. Гибридная схема видеокодирования предполагает покадровое кодирование видеопоследовательности. Каждый кодируемый кадр при этом разбивается на блоки. Для эффективного и гибкого представления видео различных разрешений в HEVC используются три абстракции: блок кодирования – CU (coding unit), блок предсказания – PU (prediction unit) и блок преобразования – TU (transform unit). CU является базовым блоком сжатия. Его концепция в целом аналогична концепции макроблока [3, 4] в стандартах AVC и MPEG-2, однако является гораздо более гибкой. В стандартах AVC и MPEG-2 размер макроблока равен 16×16 пикселей. В стандарте HEVC блок кодирования может иметь размер 8×8, 16×16 пикселей, а также 32×32 и 64×64 для эффективного сжатия видео более высоких разрешений (4K). CU покрывается одним или несколькими (до четырех) PU, которые выделяют участок блока для выполнения его предсказания. Для эффективного кодирования нерегулярных узоров видеокадра поддерживается асимметричное разбиение на участки движения AMP (asymmetric motion partitioning). Блок преобразования TU также содержится внутри CU и не зависит от разбиения на PU (за исключением intra режима). Вдобавок к стандартным преобразованиям 4×4 и 8×8 для TU поддерживаются быстрые преобразования 16×16 и 32×32. Для улучшения производительности межкадрового предсказания в HEVC предложено несколько новых алгоритмических средств: улучшены возможности предсказания векторов движения, модифицированы субпиксельные интерполяционные фильтры. Для увеличения эффективности устранения пространственной избыточности добавлены дополнительные углы внутрикадрового предсказания, позволяющие получить более точные структуры предсказания. Это ведет к снижению энергии остаточного сигнала и, следовательно, повышенной эффективности кодирования. HEVC содержит 35 режимов внутрикадрового предсказания, среди которых схожие с AVC режимы Planar и DC, а также 33 угловых режима (рис. 1). Рис. 1. Угловые направления при внутрикадровом предсказании В стандарте предыдущего поколения H.264/AVC определено всего 8 вариантов углового внутрикадрового предсказания блоков: направления 6, 10, 14, 18, 22, 26, 30, 34 на рис. 1. Для уменьшения искажений между исходным и восстановленным видеокадрами используется фильтрация. В дополнение к модифицированному деблочному фильтру применяется адаптивный SAO-фильтр (Sample Adaptive Offset) для снижения средних искажений локальных областей. В качестве алгоритма энтропийного кодирования HEVC предлагает синтаксически-ориентированный контекстно-адаптивный двоичный арифметический кодер SBAC (syntax-based context-adaptive binary arithmetic coder). SBAC является адаптивным двоичным арифметическим методом кодирования с использованием контекстных моделей, обеспечивающим высокую эффективность кодирования разных синтаксических элементов с различными статистическими свойствами. В большинстве своем он аналогичен арифметическому кодеру CABAC, применяемому в AVC. В отличие от CABAC он имеет большее число контекстов. Кроме того, для увеличения эффективности энтропийного кодирования коэффициентов преобразования используется адаптивный обход коэффициентов, который явным образом определяет порядок сканирования каждого блока преобразования. В работе [2] приводится базовая схема видеокодирования в рамках H.265, которая наглядно иллюстрирует описанный выше гибридный подход (рис. 2). Рис. 2. Базовая схема H.265/HEVC кодека Блоки на белом фоне представляют собой кодирующую часть алгоритма, блоки на сером фоне – часть декодера, необходимую для корректного кодирования связанных друг с другом кадров. Алгоритмы, описанные в стандарте сжатия H.265/HEVC, со всеми его новшествами являются существенно более сложными в вычислительном смысле, чем в ранних стандартах. В связи с этим разработчики предусмотрели возможность распараллеливания процессов кодирования и декодирования на современных многоядерных устройствах. Одним из таких новшеств является введение нового понятия тайла (tile). Тайлы представляют собой разбиение кадра на прямоугольные области, которые могут кодироваться и декодироваться независимо друг от друга. В отличие от слайсов (slices), концепция которых осталась в целом аналогичной концепции слайсов в AVC, тайлы не являются отдельными синтаксическими единицами кодирования, за счет чего достигается дополнительное увеличение степени сжатия. На границах тайлов происходит сброс контекста энтропийного кодека в значение по умолчанию, благодаря чему появляется возможность независимой обработки нескольких тайлов параллельно. Проведенные в рамках данной работы эксперименты показали, что накладные расходы, возникающие из-за сокращения вариантов внутрикадрового предсказания и обновления контекстов энтропийного кодера на границах, пренебрежительно малы. Рисунок 3 иллюстрирует возможное разбиение кадра на четыре тайла и процесс параллельной обработки каждого из них. Темным цветом выделены уже обработанные CU; серым – CU, находящиеся в процессе обработки; белым – CU, ожидающие обработки. Рис. 3. Пример тайловой параллелизации кодека HEVC Еще одним способом распараллеливания кодека, предусмотренным стандартом, является использование WPP (Wavefront Parallel Processing) [5]. В этом случае обработка кадра осуществляется несколькими потоками, каждый из которых работает над определенной строкой. При этом в качестве контекста энтропийного кодека для i-го элемента i-й строки используется контекст, полученный в результате кодирования (декодирования) (i+1)-го элемента (i+1)-й строки. Также данное условие обеспечивает возможность корректного внутрикадрового предсказания. Таким образом, первая строка кодируется (декодируется) в обычном порядке, для второй обработка может начаться уже после того, как готовы первые два CU первой строки, для третьей – как только готовы первые два CU второй строки? и т.д. Данный процесс легко масштабируется на произвольное количество вычислителей. На рис. 4 приведен возможный вариант параллельной обработки кадра тремя потоками с использованием модели WPP. Рис. 4. Пример распараллеливания кодека HEVC с использованием WPP При применении всех предложенных алгоритмических средств стандарт H.265/HEVC в среднем позволяет достичь примерно 40 % уменьшения размера закодированного видео по сравнению с H.264/AVC – для разрешений 720р, и 50 % – для 1080p и 4К разрешений [6]. Кроме того коэффициент сжатия имеет тенденцию к увеличению с ростом разрешения видео, что хорошо соотносится с главной целью создания стандарта H.265. Новый стандарт вызвал очень высокий интерес среди ведущих игроков мировой индустрии цифрового телевизионного вещания с самого момента появления первого драфта стандарта. Уже на выставке CES 2013, проводившейся в январе 2013 г., большинство передовых компаний представило свои решения. Четырьмя месяцами позже, в апреле 2013 г., на выставке Национальной ассоциации броадкастеров (NAB) практически каждый разработчик выставил перспективные модели ТВ-оборудования, работающие в новом стандарте. Этот интерес вызван в первую очередь тем, что при сохранении того же визуального качества изображения, что и H.264/AVC, требуемая полоса пропускания может быть сокращена практически в два раза. Другим поводом явилось существенное увеличение количества моделей ТВ-мониторов с разрешением 4К. В рамках существующих стандартов невозможно вещать видео с таким разрешением с приемлемым качеством. H.265/HEVC дает возможность доставлять 4К ТВ-сигнал в той же полосе пропускания, что и стандартный HD, закодированный в стандарте H.264/AVC. Таким образом, применение стандарта H.265/HEVC в индустрии цифрового телевидения является чрезвычайно перспективным, и мы ожидаем первых внедрений уже в 2013 г. Массовое применение нового стандарта начнется в течение 2015–2016 гг., а полный переход должен завершиться к 2020 г. Авторы принимают непосредственное участие в пилотном проекте Датского национального телевидения по запуску вещания в формате H.265/HEVC в Копенгагене летом 2013 г.
Черняк Р.И. | ЗАО «Элекард Девайсез» | инженер-программист | roman.chernyak@elecard.ru |
Шарабайко М.П. | Томский политехнический университет; ЗАО «Элекард Девайсез» | аспирант кафедры Вычислительной техники Томского политехнического университета, инженер-программист ЗАО «Элекард Девайсез» | maxim.sharabayko@elecard.ru |
Поздняков А.А. | ЗАО «Элекард Девайсез» | президент группы компаний Элекард | andrey.posdnyakov@elecard.ru |
Andrivon P., Salmon P., Bordes P. Comparison of Compression Performance of HEVC Draft 10 with AVC for UHD-1 material // JCT-VC: 13th Meeting. – Incheon, KR, 18–26 Apr. 2013. – 6 p. URL: http://phenix.int-evry.fr/jct/doc_end_user/current_document.php?id=74
Fraunhofer Heinrich-Hertz-Institut [Электронный ресурс]. Wavefronts for HEVC Parallelism. – URL: http://www.hhi.fraunhofer.de/de/kompetenzfelder/image-processing/research-groups/multimedia-communications/wavefronts-for-hevc-parallelism.html (дата обращени
MPEG-2 ISO/IEC 13818-2: 1996 – Generic coding of moving pictures and associated audio information: Video.
Recommendation ITU-T H.264: Advanced video coding for generic audiovisual services // ITU. June 2011.
Bross B. et al. High Efficiency Video Coding (HEVC) text specification draft 10 (for FDIS & Last Call). - JCT-VC, Geneva, CH, 14–23 Jan. 2013.
Sullivan Gary J., Ohm Jens-Rainer, Han Woo-Jin, Wiegand Thomas. Overview of the High Efficiency Video Coding (HEVC) Standard // IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY. 2012. Vol. 22, № 12. P. 1649–1668.