Cpавнительный анализ методов видеокодирования стандартов ITU-T H.264-AVC/ MPEG-4 Part-10 и H.265 HEVC
Рекомендация ITU-T H.265/ HEVC (High efficiency video coding — высокоэффективное кодирование видеоизображений) представляет собой дальнейший эволюционный виток развития методов сжатия видео. Рекомендация разработана в связи с растущей потребностью в более высокой степени сжатия сигналов движущихся изображений при использовании в различных сферах применения, как, например, потоковая передача в IP-сетях, видеоконференцсвязь, телепроизводство, телевещание, цифровой кинематограф и др. Основной целью при разработке стандарта являлось достижение снижения скорости потока на 50% по сравнению с предшествующими стандартами кодирования для одинакового субъективного качество восприятия. Хотя, изначальная цель достичь выигрыша в 50% по сравнению со стандартом H.264 по качеству субъективного восприятия пока не достигнута, уже получены довольно хорошие результаты примерно в 35%. Приводится описание и сравнительный анализ методов видеокодирования стандартов ITU-T H.264-AVC/ MPEG-4 Part-10 и H.265 HEVC. Рассмотрены особенности методов внутри-кадрового кодирования, межкадрового кодирования с предсказанием и энтропийного кодирования. Приведена таблица сравнения элементов кодирования трех стандартов: MPEG-2, H.264/AVC, H.265/HEVC.
Ключевые слова: видеокодирование, сжатие видео, высокоэффективное кодирование видеоизображений, НЕУС, АУС, И.264, Н.265.
Архипцев С.В.,
аспирант М ТУСИ,
Лукьянов Д.П.,
аспирант М ТУСИ, [email protected]
Рекомендация ITU-T H.265 (одобрена членами МСЭ-T 13 апреля 2013 года) или HEVC (англ. High Efficiency Video Coding — высокоэффективное кодирование видеоизображений), а также стандарт ISO/IEC 23008-2 MPEG-H Часть 2, — совместная разработка экспертной группы по видеокодированию ITU-T Video Coding Experts Group (VCEG) и экспертной группы по движущемуся изображению MPEG, работающих над стандартом совместно под названием Объединенная группа для совместной работы над видео кодированием (JCT-VC) [2]. Рекомендация H.265 представляет собой дальнейшее развитие существующих Рекомендаций по кодированию видеосигнала (МСЭ-T H.261, МСЭ-T H.262, МСЭ-T H.263 и МСЭ-T H.264). Рекомендация была разработана в связи с растущей потребностью в более высокой степени сжатии движущихся изображений для самых разных приложений, таких как потоковая передача в интернете, передача данных, видеоконференц-связь, цифровые запоминающие устройства и телевизионное вещание. Кроме того, она призвана обеспечить возмож-
ность гибкого использования представления кодированного видеосигнала в разнообразных условиях сетевой среды. [1]
Так же как и в случае всех предыдущих стандартов видеокодирования ITU-T и ISO/IEC, в HEVC стандартизованы только битовый поток и синтаксис [1], а так же схема декодирования (отображения) изображений. Схема отображения определяется семантическим значением синтаксиса и процесса декодирования, так чтобы каждый декодер, поддерживающий стандарт, мог воспроизвести изображение одинаково, когда битовый поток соответствует ограничениям стандарта. Это ограничение сферы применения данного стандарта допускает максимальную свободу для оптимизации реализации процесса кодирования (баланс между качеством сжатия, стоимостью реализации, и др.). Однако это не дает никакой гарантии высокого сквозного качества воспроизведения, так как это позволяет даже "сырым" методам кодирования считаться соответствующими стандарту.
Поэтому для обучения и помощи разработчикам в понимании как использовать стандарт, помимо собственно текста стандарта в стандартизацию включен так же свободный исходный код программного обеспечения, как пример того как HEVC может быть кодирован /декодирован. Исходный код распространяется свободно и доступен по ссылке [6].
Как и во всех предшествующих стандартах сжатия ITU-T H.261, MPEG-2, MPEG-4 Part-10/H.264-AVC в стандарте H.265 High
Efficiency Video Coding (HEVC) применяется блочный гибридный подход кодирования ви-део[2]. Гибридный подход состоит в устранении временной статистической избыточности путем применения меж-кадрового (inter-) предсказания, и устранения пространственной избыточности путем внутри-кадрового (intra-) предсказания, а так же кодирования с преобразованием сигналов предсказания для дальнейшего устранения статистической избыточности. Как можно увидеть из схемы кодера, представленной на рисунке 1, структура кодера аналогична предшествующим стандартам сжатия и в ней отсутствуют какие-либо новые блоки. Преимущества стандарта H.265 HEVC основываются на множестве мелких улучшений, что в конечном итоге дает значительное, интегрального типа, улучшение сжатия. На данный момент для одинаковых видеопоследовательностей уменьшение битрейта составляет порядка 35% по сравнению со стандартом MPEG-4 Part-10/H.264-AVC (высокий профиль) и 70% со стандартом MPEG-2 (основной профиль) для одинаковых значений пикового отношения сигнал-шум (PSNR) [3].
Предполагается, что видеоматериал на входе кодера HEVC имеет прогрессивную развёртку (либо исходное видео сразу имеет построчную развертку или же оно предварительно прошло процесс деинтерлейсинга). В HEVC не представлено явных функций кодирования чересстрочной развёртки, так как чересстрочная развёртка не используется в современных дис-
плеях и имеет всё меньшее распространение. Тем не менее, в ИЕУС были представлены метаданные, позволяющие указать кодеру, что было закодировано видео с чересстрочной развёрткой в одном из двух режимов: в виде отдельных изображений, как два поля (четные или нечетные строки кадра) или весь кадр целиком. Этот эффективный метод обеспечивает кодирование видеосигнала с чересстрочной разверткой, минуя необходимость нагружать декодеры поддержкой специального процесса декодирования [2].
В основе кодирования предыдущих стандартов МРЕО-2 и МРЕО-4/И.264-ДУС лежал принцип разбиения изображений на макроблоки обычно размером в 16x16 отсчетов яр-
кости и для структуры 4:2:0 двух соответствующих блоков 8x8 отсчетов цветности. В отличие от H.264 в H.265 вместо макроблоков используются секции с древовидной структурой (CTU — coding tree unit), размер которых выбирается кодером в зависимости от требований соответствующих приложений (например, задержка кодирования/декодирования) и требований к памяти, а так же архитектуры построения кодера и может быть больше чем традиционные макроблоки в стандарте H.264. Использование секций и блоков большего размера повышает эффективность кодирования изображений с высоким разрешением, а так же увеличивается скорость декодирования [3], однако при этом растет вычислительная сложность. Каждая сек-
ция с древовидной структурой состоит из трех древовидных блоков отсчетов (CTB — coding tree block): яркости и двух соответствующих цветоразностных, а так же элементов синтаксиса. Размеры яркостного блока отсчетов NxN и соответствующих цветоразностных блоков N/2xN/2 могут быть выбраны равными N=16, 32 или 64 отсчетам, обычно блоки больших размеров обеспечивают большую компрессию.
Древовидные блоки отсчетов (яркостной и два цветоразностных) затем могут быть разделены на несколько блоков кодирования (CB — coding block). Cекция с древовидной структурой содержит синтаксис квадродерева, который поддерживает разбиение на блоки с пере-
Рис. 1. Отруктура кодера H.265 HEVC
Рис. 2. Разделение древовидного блока отсчетов на блоки кодирования и блоки преобразования (TB — transform block). Cплошными линиями показаны границы древовидных блоков отсчетов (к которым применяется внутри- или меж-кадровое предсказание), пунктирными — границы блоков преобразования (остаточные сигналы после предсказания). а) Разбиение на древовидный блок отсчетов; б) соответствующее квадродерево
менным размером в зависимости от характеристик той области, которая охвачена древовидным блоком отсчетов. ^ответствующий процесс показан на рисунке 2. Размер блоков кодирования может различаться от максимально большого блока, равного древовидному блоку отсчетов, до минимального — размером 8x8. Этот процесс описывается элементом синтаксиса и передается декодеру. Яркостной блок кодирования и цветоразностные блоки кодирования совместно с соответствующим синтаксисом формируют секцию кодирования (CU — coding unit).
Для каждого CU выбирается режим предсказания, который может быть как внутри-кад-ровым, так и меж-кадровым. Когда выбирается внутри-кадровое предсказание, к яркостному CB применяется один из 35 пространственных
внутри-кадровых режимов предсказания (по сравнению с 8 в стандарте H.264 (рисунок 2)). Для обоих цветоразностных CB применяется одинаковый режим внутри-кадрового предсказания, который может быть выбран таким же как для яркостного блока или же выбран отдельно с использованием горизонтального, вертикального, плоскостного, диагональ-вниз-влево или усреднение (DC) режима предсказания. Режим внутри-кадрового предсказания применяется отдельно для каждого блока преобразования .
При использовании меж-кадрового предсказания яркостной и цветоразностные блоки кодирования затем делятся на блоки предсказания (PB — prediction block), которые могут быть равны блокам кодирования или же блок кодирования может быть разбит на 2 или 4 бло-
ка предсказания. Наименьший размер блока предсказания — 4х8 или 8х4 отсчетов. Яркостной и цветоразностные блоки предсказания совместно с соответствующим синтаксисом формируют секцию предсказания (PU — prediction unit). Каждая секция предсказания содержит один или два вектора движения для одностороннего или двустороннего кодирования с предсказанием. Все блоки предсказания, соответствующие блокам кодирования, могут иметь такой же размер, или, как при внутри-ка-дровом предсказании, могут быть разбиты на два или четыре блока, размером MxM, M/2xM, MxM/2 или M/2xM/2 (рисунок 4). Помимо этого, так же может быть использовано асимметричное разложение на блоки меж-кадрового предсказания (AMP — asymmetric motion partitioning), тогда яркостной блок кодир-вания размером MxM может быть так же разбит на два яркостных блока предсказания, при этом один из яркостных блоков предсказания будет состоять из Nx(N/4) или (N/4)xN отсчетов, а другой яркостной блок предсказания будет состоять из оставшихся Nx(3*N/4) или (3*N/4)xN отсчетов блока кодирования (рисунок 4). Асимметричное разложение на блоки меж-кадрового предсказания так же соответственно может быть применено к двум цветоразностным блокам кодирования.
Как и в H.264-AVC в H.265 HEVC поддерживается предсказание вектора движения в "одну четверть" отсчета. Яркостной сигнал предсказания для всех дробно-отсчетных направле-
Рис. 3. Режимы и направления внутри-кадрового предсказания: а) для стандарта Н.265 НЕУ; б) для стандарта Н.264/ МРЕО-4 ДУС
MxM M/2 ХМ MxM/2 M/2XM/2
М/4ХМ (L) М/4ХМ (R) MxM/4(U) МхМ/4 (D)
РИс. 4. Иллюстрация разложения блоков кодирования на блоки предсказания при межкадровом предсказании. При внутри-кадровом предсказании могут быть использованы только режимы MxM и M/2xM/2
ний вычисляется с помощью фильтров 7го или 8го порядков (в зависимости от сдвига дробного отсчета). Для цветоразностных блоков применяется интерполяционный фильтр 4го порядка. HEVC так же поддерживает множественные опорные кадры и концепцию I,P,B слайсов такую же как в H.264/MPEG-4 AVC. Взвешенное предсказание так же производится схожим путем.
В HEVC значительно улучшено кодирование параметров движения по сравнению с предыдущими стандартами. Применяется так называемый режим смешивания (merge mode), в котором кодируется не параметры движения, а взамен этого вычисляется список вероятных параметров (candidate list) движения для соответствующей секции предсказания. В основном, список возможных кандидатов включает в себя параметры движения соседних блоков в пространстве, а так же параметры движения, предсказанные во времени, которые вычисляются на основе данных о движении совмещенных блоков в опорном кадре. Выбор набора параметров движения сообщается передачей индекса в лист возможных кандидатов. Использование блоков большого размера для компенсации движения и режима смешивания позволяют эффективно передавать данные о движении для больших последовательно расположенных элементов изображения. Если секция предсказания кодируется без использования режима смешивания, то передаются соответствующие опорные индексы и разница предсказания вектора движения. Предсказание выполняется с помощью алгоритма продвинутого предсказания вектора движения (AMVP — advanced motion vector prediction). В этом алгоритме для каждого вектора движения составляется список вероятных параметров, который может включать в себя векторы движения соседних блоков с одинаковым опорных индексом, а так же век-
тор движения, предсказанный во времени. Вектор движения кодируется передачей индекса в список вероятных параметров для определения выбранного предсказания и кодирования вектора разницы.
Остаточный сигнал после предсказания затем преобразовывается в спектральную форму с помощью блочного преобразования на основе дискретно-косинусного или дискретно-синусного преобразования. Для кодирования остаточных сигналов меж- или внутри-кадрового предсказания блок кодирования может быть представлен как единый яркостной блок преобразования или же может быть разделен на 4 равных по размеру блока преобразования и далее эти 4 блока преобразования могут быть так же дальше разделены на четыре меньших блока преобразования (процесс показан на рисунке 2). Похожий процесс разделения применяется и к цветоразностным блокам кодирования (за исключением дополнительного разбиения блоков преобразования на меньшие). Такой процесс имеет название остаточное квадродерево (residual quadtree (RQT)). Таким образом, оставшиеся яркостной и цветоразностные блоки преобразования вместе с соответствующим синтаксисом формируют секцию преобразования (TU — transform unit). Для каждого блока преобразования (яркостного и двух цветоразностных) применяется процесс двумерного преобразования. Максимальный и минимальный размер блоков преобразования выбирается кодером. Все блоки преобразования являются квадратными блоками с размером 4x4, 8x8, 16x16 или 32x32 пикселя. Как и в H.264/MPEG-4 AVC применяется целочисленное обратное преобразование. В основном, преобразование представлено в виде целочисленной аппроксимации дискретно-косинусного преобразования (DCT). Однако в HEVC в отличие от AVC для яркостного внутри-кадрового блока TB размером 4x4 применяется альтернативное преобразование на основе целочисленной аппроксимации дискретно-синусного преобразования.
В отличие от стандарта H.264/MPEG-4 part-10/AVC, который поддерживал две схемы энтропийного кодирования CAVLC (контекстноадаптивное кодирование кодами переменной длины) и CABAC (контекстно-адаптивное двоичное арифметическое кодирование)[4,5] стандартом H.265 HEVC предусмотрена только одна схема кодирования CABAC. Данная схема схожа со стандартом H.264, и содержит лишь несколько улучшений, состоящих из применения более сложной схемы выбора контекста, которая более эффективна для больших блоков преобразования. Это позволяет улуч-
шить производительность (особенно для процесса параллельной обработки [3]) и уменьшить требования к памяти.
В HEVC применяется схожий с MPEG4-AVC деблокирующий фильтр, который применяется в петле внутри-кадрового предсказания. Однако его конструкция несколько упрощена в отношении принятия решений и процесса фильтрации и более удобна для параллельной обработки.
Помимо деблокирующего фильтра в структуру HEVC добавлена дополнительная опциональная операция адаптивного смещения отсчетов (SAO — sample adaptive offset), которая применяется после деблокирующего фильтра для лучшего восстановления амплитуд изначального сигнала с использованием значений смещения из переданной кодером таблицы.
SAO — нелинейный фильтр, который может применяться или нет в каждом древовидном блоке кодирования в одном из двух режимов: режим смещения по границам или режим смешения по полосе. Режим смещения по границам применяется путем сравнения значения отсчета с двумя из восьми соседних в четырех направлениях: по горизонтали, по вертикали, под углом 45 градусов и под углом 135 градусов. На основе этого сравнения отсчет классифицируется в одну из пяти категорий: минимум, максимум, граница, в которой отсчет имеет наименьшее значение, граница, в которой отсчет имеет наибольшее значение или монотонная область [2]. Затем, если отсчет попадает в одну из первых четырех категорий, к его амплитуде добавляется смещение, значение которого берется из переданной кодером таблицы смещений. Режим смещения по полосе применяется на основе измерения значения амплитуды отдельного отсчета. Отсчет классифицируется по амплитуде в одну из 32 категорий, так называемые полосы. Затем к отсчетам, принадлежащим четырем из 32 последовательных полос, добавляется значение смещения из переданной кодером таблицы. Использование четырех последовательных полос определяется тем, что единообразных областях, которые склонны к искажениям типа "полосы" амплитуды отсчетов, как правило, расположены в узком диапазоне.
В H.265 по состоянию на апрель 2013 года [1] предусмотрено 3 профиля (в отличие от 7 в H.264) Основной (Main), Основной 10 (Main 10) и Основной профиль неподвижных изображений (Main Still Picture). Уменьшение количества профилей в первую очередь связано с необходимостью обеспечения возможности взаимодействия между различными приложениями и устройствами.
В таблице 1 представлен сравнительный
Таблица 1
Сравнение элементов кодирования стандартов MPEG-2, H.264/AVC, H.265/HEVC
MPEG-2 H.264/AVC H.265/HEVC
Профили Simple Main High 422 SNR Spatial Baseline Main Extended High High 10 High 4:2:2 High 4:4:4 Main profile Main 10 profile Main Still Picture profile
Поддерживаемая развертка Чересстрочная, построчная Чересстрочная, построчная Построчная
Формат представления ТВ сигналов 4:2:0,4:2:2 4:2:0,4:2:2,4:4:4 4:2:0,4:2:2,4:4:4
Тип алгоритма кодирования Г ибридный (устранение временной и пространственной избыточности) Г ибридный (устранение временной и пространственной избыточности) Г ибридный (устранение временной и пространственной избыточности)
Структура кодирования Иерархическая, поддержка системы профилей и уровней Иерархическая, поддержка системы профилей и уровней Иерархическая, поддержка системы профилей и уровней
Типы изображений / слайсов Изображения I, Р, В Слайсы I, Р, В, SI, SP Слайсы 1,Р,В и тайлы (tiles)
Структура макроблока 16x16 Адаптивная с разбиением .макроблоков 16x16-4x4 Блоки с древовидной структурой кодирования от 64x64 до 8x8
Точность оценки движения До 1/2 отсчета До 1/4 отсчета До 1/4 отсчета
Внутри- кадровое предсказание 1 режим 9 режимов 35 режимов
Деблокирующий фильтр Не поддерживается Поддерживается Деблокирующий фильтр, адаптивное смещение отсчетов (SAO), адаптивный петлевой фильтр (ALF)
Тип преобразования для внутри-кадрового кодирования ДКП (плавающая точка) Размер блока 8x8 Целочисленное с точным восстановлением Адаптивный размер блока 8x8 - 4x4 Целочисленное с точным восстановлением Адаптивный размер блока 32x32 - 4x4
Энтропийное кодирование VLC CAVLC, САВАС САВАС с применением параллельных операций
Поддерживаемое разрешение От 128x96 до 1920x1080 От 128x96 до 4096x2304 От 128x96 до 8192x4320
анализ элементов кодирования стандартов MPEG-2, H.264/AVC, H.265/HEVC.
Рекомендация H.265 представляет собой дальнейший эволюционный виток развития методов сжатия видео и, хотя, изначальная цель достичь выигрыша в 50% по сравнению со стандартом H.264 по качеству субъективного восприятия пока не достигнута, уже получены довольно хорошие результаты.
Литература
1. ITU-T Recommendation H.265. High efficiency video coding, 04/2013.
2. Gary J. Sullivan, Jens-RainerOhm, Woo-Jin Han, Member and Thomas Wiegand "Overview of the High Efficiency Video Coding (HEVC) Standard", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, VOL. 22, NO. 12, DECEMBER 2012, pp. 1649-1668.
3. Jens-Rainer Ohm, Gary J. Sullivan, Heiko Schwarz, Thiow Keng Tan and Thomas Wiegand "Comparison of the Coding Efficiency of Video Coding Standards-Including High Efficiency Video Coding (HEVC)", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, VOL. 22, NO. 12, DECEMBER 2012, pp.1669-1684.
4. ITU-T Recommendation H.264. Advanced video coding for generic audiovisual services, 04/2013.
5. Медведев A.A. Методы и устройства компенсации искажений спектров сигналов изображения цифрового вещательного телевидения. Автореферат диссертации на соискание ученой степени кандидата технических наук, Москва, 2010 г.
6. Исходный код опорного программного обеспечения процесса кодирования декодирования по стандарту H.265 HEVC, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP3 and ISO/IEC JTC 1/SC 29/WG/11 [Электронный ресурс]. — https://hevc.hhi.fraunhofer.de/svn/svn_ HEVCSofiware/tags/ (Дата обращения: 12.11.2013).
Comparison of the video coding methods of the ITU-T H.264-AVC/ MPEG-4 Part-10 and H.265 HEVC standards.
S. Arkhiptsev, PhD student of Television and sound broadcasting department, MTUCI, [email protected] D.Lukyanov, PhD student of Television and sound broadcasting department, MTUCI, [email protected]
Abstract.
ITU-T recommendation H.265/ HEVC (High efficiency video coding) represents a further evolutionary stage of development of video coding. Recommendation developed in response to the growing need for higher video compression when it used in various applications, such as IP streaming, video conferencing, TV production, satellite, cable and terrestrial broadcasting, digital cinema and other. The main goal of HEVC standardization effort was to achieve a reduction of the bit-rate at 50 % relative to previous coding standards for the equal perceptual video quality. Although the original goal to achieve 50% bit-rate reduction relative to the H.264 standard has not yet been achieved, fairly good results are obtained already in about 35%. The paper provides a description and a comparative analysis of v'deo coding methods of ITU-T H.264-AVC / MPEG-4 Part-10 and H.265 HEVC standards. The paper describes intra-frame coding, inter-frame coding with motion compensation and entropy coding technologies of both of standards. A table of comparing coding methods of the three coding standards: MPEG-2, H.264/AVC, H.265/HEVC also provided.
Keywords: Video compression, High efficiency video coding, HEVC, advanced video coding, AVC, H.264, H.265.