007 Новый стандарт видеокодирования HEVC.ppt
- Количество слайдов: 55
Новый стандарт видеокодирования HEVC (High Efficiency Video Coding) ITU-T Rec. H. 265 – ISO/IEC 23008 -2 (MPEG-H Part 2)
High Efficiency Video Coding • HEVC – новейший стандарт видеокодирования, подготовленный группами VCEG (video coding experts group) ITU-T b и MPEG (moving picture experts group) ISO/IEC, объединенными в JCT-VC (joint collaborative team on video coding) • Основная цель этой работы – существенное повышение эффективности сжатия по отношению к существующим стандартам – до 50% снижение битового потока при сохранении визуального качества
Стандарты видеокодирования • • H. 261: ver. 1 – ноябрь 1990, ver. 2 – март 1993 MPEG-1 Visual: 1993 H. 262/MPEG-2 Visual: ver. 1 – ноябрь 1994 H. 263: ver. 1 – ноябрь 1995 MPEG-4 Visual: ver. 1 – апрель 1999 H. 264/MPEG-4 AVC: ver. 1 – май 2003 H. 265/MPEG-H HEVC: ver. 1 – январь 2013
Основное назначение HEVC • HEVC разрабатывался для практически всех приложений, в которых используется H. 264/AVC: – – – – ТВЧ Системы сбора и редактирования видеоинформации Камкодеры Системы безопасности Видео в интернете и мобильных сетях Blue-ray диски Видеочаты, видеоконференцсвязь и пр. • Особое внимание было уделено двум вопросам: – Повышенное разрешение видео – Более интенсивное использование архитектуры параллельной обработки • Синтаксис HEVC универсален и подходит для практически всех видов приложений
Основные цели разработки HEVC • • Высокая эффективность кодирования Интеграция в транспортные системы Устойчивость к потерям данных Возможность реализации с интенсивным использованием параллельной обработки
Архитектура синтаксиса высокого уровня • Ряд новых возможностей повышает гибкость работы в множестве приложений и в различном сетевом окружении, устойчивость к потере данных • В то же время архитектура синтаксиса высокого уровня H. 264/AVC в целом сохранена, включая нижеописанные характерные черты
Элементы синтаксиса высокого уровня – наборы параметров (1) • Набор параметров содержит информацию, которая может быть использована для декодирования нескольких областей • Структура набора параметров обеспечивает надежный механизм передачи данных, которые являются значимыми для процесса декодирования • Концепции набора параметров последовательности и набора параметров изображения дополнены новой структурой набора видеопараметров (VPS, video parameter set) - метаданными, описывающими общие характеристики закодированной видеопоследовательности, включая временные подслои (эти данные могут быть востребованы в последующих расширениях стандарта, в текущей версии эти данные не участвуют в процессе декодирования)
Элементы синтаксиса высокого уровня – единицы NAL (2) • Структура синтаксиса единиц NAL (network abstraction layer, уровень сетевой абстракции) – Каждая синтаксическая структура помещается в логический пакет данных, называемый единицей NAL – По двухбайтовому заголовку единицы NAL можно определить назначение передаваемых в этом пакете данных
Единицы NAL • Синтаксис высокого уровня HEVC содержит множество элементов, наследованных от NAL H. 264/AVC • NAL обеспечивает возможность отображать данные VLC на различные средства транспортного уровня (RTP/IP, MP 4, MPEG-2 TS, etc. ) и обеспечивать определенную устойчивость к пакетным ошибкам • Единицы NAL делятся на VLC NAL и non-VLC NAL • В HEVC имеются несколько типов единиц VLC NAL, определяющих категории кадров, удобные для инициализации декодирования и произвольного доступа
Типы единиц NAL Тип 0 Значение Не назначено Класс non-VLC 1, 2 non-TSA, non-STSA последующий кадр (опорный и не опорный) VLC 3, 4 Кадр TSA (temporal sub-layer access) (опорный и не опорный) VLC 5, 6 Кадр STSA (step-wise TSA) (опорный и не опорный) VLC 7, 8, 9 Кадр BLA (broken link access) (с DLP и TFD, только DLP, без LP) VLC 10, 11 Кадр IDR (instantaneous decoder refresh) (с или без DLP) VLC 12 Кадр CRA (clean random access) VLC 13 Кадр DLP (decodable leading picture) VLC 14 Кадр TFD (tagged for discard) VLC 15 -20 Зарезервировано VLC 21 -24 Зарезервировано non-VLC 25 VPS (video parameter set) non-VLC 26 SPS (sequence parameter set) non-VLC 27 PPS (picture parameter set) non-VLC 28 Разделитель единиц доступа non-VLC 29 Конец последовательности non-VLC 30 Конец потока non-VLC 31 Данные заполнения non-VLC 32 Сообщение SEI non-VLC 33 -47 Зарезервировано non-VLC 48 -63 Не назначено non-VLC
Произвольный доступ и соединение битовых потоков (1) • Битовый поток должен начинаться с единицы IDR (instantaneous decoding refresh), которая содержит I-кадр; присутствие IDR означает ни один из последующих кадров не содержит ссылок на предшествующие IDR (структура closed GOP) • Кадр CRA (clean random access) означает использование Iкадра в точке RAP (random access point) – точки, с которой можно начать декодирование (open GOP) • Недекодируемые кадры после CRA идентифицируются как TFD (tagged for discard) • Положение точки соединения различных потоков может индицироваться кадрами BLA (broken link access)
Произвольный доступ и соединение битовых потоков (2) • Операция соединения потоков может быть выполнена изменением типа единицы NAL с CRA на BLA и присоединением другого потока начиная с кадра RAP (IDR, CRA или BLA) • За кадром RAP в порядке декодирования может следовать кадр DLP (decodable leading picture), который предшествует кадру RAP в порядке отображения и не ссылается на кадры, предшествующие кадру RAP • Кадры TFD и DLP вместе называются LP (leading pictures) • Кадры, которые следуют за кадром RAP как в порядке декодирования, так и в порядке воспроизведения, называются последующими (trailing) кадрами; они не могут ссылаться на кадры LP для предсказания
Временные подслои • Это аналог временной масштабируемости, индицируемой в заголовке NAL • Переход на более высокий уровень может индицироваться кадрами TSA (temporal sublayer access) и STSA (step-wise TSA) • В точке TSA возможен переход на любой более высокий уровень, в точке STSA – только на следующий
Элементы синтаксиса высокого уровня - слайсы (3) • Слайс – структура данных, которая может быть декодирована независимо от остальных слайсов этого же изображения, а именно это касается энтропийного кодирования, предсказания сигнала и восстановления остатков предсказания сигнала (это справедливо для простых слайсов, в отличие от зависимых слайсов) • Слайс может занимать все изображение или только его часть • Одно из главных назначений слайса – пересинхронизация в случае потери данных • Обычно в случае пакетной передачи ограничивается максимальное количество бит в слайсе, при этом количество CTU в слайсе меняется
Элементы синтаксиса высокого уровня - метаданные (4) • Метаданные SEI и VUI – Синтаксис включает поддержку различных типов метаданных, называемых дополнительной расширенной информацией (supplemental enhancement information) и информацией о свойствах видео (video usability information) – Это могут быть данные о времени кадров видео, цветовом пространстве видеосигнала, упаковке 3 D информации и пр.
Параллельное декодирование и структурирование слайсов (1) • Новые свойства введены в HEVC с целью расширения возможностей параллельной обработки или модификации структурирования данных слайсов для пакетирования: – Тайлы (tiles) – независимо декодируемые прямоугольные области, на которые может быть разделено изображение; основное назначение – возможность распараллеливания
Параллельное декодирование и структурирование слайсов (2) – Фронтальная параллельная обработка (wavefront parallel processing, WPP), при которой слайс делится на ряды CTU; каждый последующий ряд CTU можно начинать обрабатывать с небольшой задержкой относительно начала времени обработки предыдущего ряда; WPP обычно обеспечивает более высокую эффективность кодирования, чем тайлы – Зависимые слайсы, которые позволяют помещать данные определенных WPP или тайла в отдельные единицы NAL, что потенциально позволяет снизить задержку
Наборы и списки опорных кадров (1) • Для работы с кадрами, имеющими несколько опорных кадров, необходим определенный набор ранее декодированных кадров в буфере декодированных кадров (DPB, decoded picture buffer) • Для идентификации этих кадров передается список идентификаторов POC (picture order count, счетчик порядка кадров) в каждом заголовке слайса • Список сохраняемых опорных кадров называется RPS (reference picture set, набор опорных кадров)
Наборы и списки опорных кадров (2) • Как и в H. 264/AVC, создаются два списка опорных кадров (list 0, list 1), но синтаксис с использованием RPS более устойчив к потерям данных, более удобен для произвольного доступа и пр.
Уровень видеокодирования (VCL) • HEVC реализует обычный гибридный подход: внутри/межкадровое предсказание и кодирование с двумерным преобразованием
Блок-схема кодера • Множество улучшений вместе дает эффект существенного повышения эффективности кодирования
Представление изображений • Базовая модель – YCb. Cr 4: 2: 0, другие предусматриваются в последующих расширениях • 8 или 10 бит на пиксел (компоненту), в расширениях возможно больше, далее рассматривается только 8 бит на пиксел
Основные свойства VCL (1) • Структура Участков дерева кодирования (CTU, coding tree unit) и Блоков дерева кодирования (CTB, coding tree block) – Вместо макроблока используется CTU – CTU состоит из CTB яркости и двух CTB цветности – Размер CTB: 16 х16, 32 х32 или 64 х64, размер специфицируется в SPS – CTB делится на меньшие блоки с использованием структуры квадродерева – Использование больших размеров CTU особенно эффективно для кодирования видео высокого разрешения
Слайсы и тайлы (1)
Слайсы и тайлы (2) • Слайс – последовательность CTU, которые обрабатываются в порядке сканирования; кадр разбивается на один или несколько слайсов • Слайсы самодостаточны, то есть могут быть корректно декодированы независимо (кроме эффектов фильтрации на границах слайса) • Внутрикадровое предсказание не осуществляется вдоль границ слайсов • Есть три типа слайсов: I, P и B • Основная цель слайсов – пересинхронизация после потери данных • Для пакетной передачи часто ограничивают максимальный размер слайса
Слайсы и тайлы (3) • Тайлы – самодостаточные и независимо декодируемые прямоугольные области кадра • Основная цель тайлов – использование параллельной обработки для кодирования и декодирования • Несколько тайлов могут содержаться в одном слайсе и наоборот – один тайл может содержать несколько слайсов • Для упрощения пакетирования данных дополнительно введены зависимые слайсы • Для фронтальной параллельной обработки (WPP) слайс делится на строки CTU • WPP и тайлы одновременно не используются
Основные свойства VCL (2) • Участки кодирования (CU, coding unit) и Блоки кодирования (CB, coding block) – Синтаксис квадродерева CTU указывает размеры и положения блоков кодирования (CB) яркости и цветности – Корень квадродерева связан с CTU – Деление осуществляется для яркости и цветности совместно – Обычно один CB яркости и два CB цветности образуют CU – Минимальный размер CB специфицируется в SPS и составляет не менее 8 х8 (в яркости) – CTU может содержать один CU или может делиться на несколько CU – Каждый CU связан с делением на участки предсказания (PU, prediction unit) и деревом участков преобразования (TU, transform unit) – На правой и нижней границах кадра, там где CTU может выходить за границы кадра, деление на CB осуществляется в неявном виде так, чтобы не было выхода за границы
Основные свойства VCL (3) • Участки предсказания (PU, prediction unit) и Блоки предсказания (PB, prediction block) – Решение о кодировании участка изображения с внутриили межкадровым предсказанием принимается на уровне CU – Корень деления на PU находится на уровне CU – В зависимости от решения об основном типе предсказания блоки CB яркости и цветности могут быть далее поделены по размеру и предсказаны с помощью блоков PB яркости и цветности – Поддерживаются различные размеры PB от 64 х64 до 4 х4 отсчета
Блоки и участки предсказания (1) • Предсказание может быть межкадровым и внутрикадровым • При внутрикадровом предсказании размер PB равен размеру CB, кроме наименьшего размера – В последнем случае CB может быть разделен на 4 части с различными режимами предсказания – При размере блока 4 х4 в яркости, в цветности размер блока тоже 4 х4 • При межкадровом предсказании CB делится на один, два или 4 PB – Деление на 4 блока возможно только для минимального размера CB – Деление на 2 блока может быть симметричным или асимметричным
Блоки и участки предсказания (2) • При внутрикадровом предсказании размер PB равен размеру CB, кроме наименьшего размера – В последнем случае CB может быть разделен на 4 части с различными режимами предсказания – При размере блока 4 х4 в яркости, в цветности размер блока тоже 4 х4 – Каждому PB с межкадровым кодированием присваиваются один или два вектора движения и индексы опорных кадров – Межкадровое предсказание не допускается для блоков 4 х4, а для блоков 4 х8 и 8 х4 допускается только однонаправленное предсказание
Основные свойства VCL (4) • Участки преобразования (TU, transform unit) и Блоки преобразования (TB, transform block) – Остатки предсказания кодируются с помощью блочного преобразования – Корень структуры дерева участков TU находится на уровне CU – Остаток предсказания CB яркости или цветности может быть равен TB или может быть поделен на меньшие TB – Определены целочисленные базисные функции, «похожие» на ДКП, для размеров 4 х4, 8 х8, 16 х16 и 32 х32 – Для преобразования остатков внутрикадрового предсказания размером 4 х4 может альтернативно использоваться целочисленное преобразование, «похожее» на ДСП
Древовидная структура деления на TB и TU • Для кодирования остатков предсказания CB могут быть поделены на TB, деление сигнализируется квадродеревом • Минимальный размер деления – 4 х4
Преобразования
Упорядочивание • Перед энтропийным кодированием применяется один из трех видов упорядочивания
Основные свойства VCL (5) • Сигнализация векторов движения (MV, motion vector) – Используется Улучшенное предсказание векторов движения (AMVP, advanced motion vector prediction), включая определение нескольких наиболее вероятных кандидатов на основе данных соседних PB и опорного кадра – Также используется так называемый режим объединения (merge mode) для кодирования MV, что позволяет «наследовать» MV соседних PB – Также улучшены по сравнению с H. 264/AVC пропущенные (skipped) блоки и прямое (direct) предсказание
Основные свойства VCL (6) • Компенсация движения (MC, motion compensation) – Используется предсказание движения с точностью до четверти пиксела – Для вычисления промежуточных отсчетов используются 7 ми (четвертьпиксельные положения) и 8 -ми (полупиксельные положения) точечные фильтры – Могут использоваться несколько опорных изображений – Для каждого PB могут передаваться один или два вектора движения – Может использоваться взвешенное предсказание (масштабирование и сдвиг сигнала предсказания)
Интерполяция при межкадровом предсказании (1) • Для яркости используется восьмиточечный фильтр для полупиксельных позиций и семиточечный – для четвертьпиксельных • Для цветности используются четырехточечные фильтры, точность – 1/8; фильтры 1, 2, 3, 4 используются для положений 1/8, 2/8, 3/8 и 4/8, для положений 5/8, 6/8 и 7/8 используются зеркально отраженные фильтры 3, 2 и 1
Интерполяция при межкадровом предсказании (2)
Интерполяция при межкадровом предсказании (3)
Основные свойства VCL (7) • Внутрикадровое предсказание – Для пространственного внутрикадрового предсказания используются отсчеты соседних уже декодированных блоков – Имеются 33 варианта направленного предсказания, а также плоское (planar) и DC предсказание – Выбранный режим предсказания кодируется с использованием наиболее вероятного режима на базе режимов соседних уже закодированных блоков
Внутрикадровое предсказание • Определены 33 режима направленного предсказания для PU размером от 4 х4 до 32 х32 • Также определены плоское (planar) и DC предсказания • Для цветности могут быть явно указаны горизонтальное, вертикальное, плоское и DC предсказание, или указывается такое же предсказание, как для яркости
Сглаживание опорных отсчетов (внутрикадровое предсказание) • Опорные отсчеты для внутрикадрового предсказания в ряде случаев фильтруют с помощью трехточечного фильтра [1 2 1]/4 • Такая фильтрация применяется: – Для блоков 8 х8 для диагонального предсказания (2, 18, 34) – Для блоков 16 х16 для всех направлений, кроме почти горизонтального и почти вертикального (9, 10, 11, 25, 26, 27) – Для блоков 32 х32 для всех направлений, кроме горизонтального и вертикального (10, 26) – Для плоского предсказания – только для блоков 4 х4
Сглаживание значений на границах (внутрикадровое предсказание) • Для устранения разрывов вдоль границ блоков в трех режимах (DC, горизонтальное и вертикальное предсказание) граничные отсчеты в предсказываемом блоке заменяются на фильтрованные значения • В режиме DC фильтруются первый столбец и первая строка, используется двухточечный фильтр [3 1]/4 • При горизонтальном предсказании фильтруется первый столбец (к значениям прибавляется половина разности между опорным значением и значением в левом верхнем углу) • При вертикальном предсказании фильтруется первая строка
Кодирование режимов (внутрикадровое предсказание) • При кодировании режима из-за возросшего количества возможных направлений предсказания используется три «наиболее вероятных режима» (MPM, most probable mode), в отличие от H. 264/AVC, в котором использовался один наиболее вероятный режим
Основные свойства VCL (8) • Управление квантованием – Используется квантование с равномерным восстановлением (URQ, uniform reconstruction quantization) – Матрицы квантования могут использоваться для различных размеров блоков преобразования
Основные свойства VCL (9) • Энтропийное кодирование – Используется контекстно-адаптивное бинарное арифметическое кодирование (CABAC, context adaptive binary arithmetic coding) – Схема CABAC улучшен по сравнению с H. 264/AVC с целью повышения скорости обработки (особенно для архитектур с параллельной обработкой) и степени компрессии, а также для снижения требований к памяти для хранения контекстов
Основные свойства VCL (10) • Деблокинговая фильтрация (DF, deblocking filtering) в обратной петле декодирования – Аналогично фильтру в стандарте H. 264/AVC встраивается в петлю обратной связи при межкадровом предсказании – Упрощен по сравнению с H. 264/AVC – Легче распараллеливается
Деблокинговый фильтр • Применяется ко всем отсчетам на границах PU и TU, кроме границ кадра и кроме границ слайсов и тайлов, если это указано флагом • Применяется на границах блоков 8 х8 и в яркости, и в цветности (назовем эти блоки P и Q) • Заданы три степени фильтрации (0, 1, 2 – нет, слабая, сильная): § 2 – если P и Q – внутрикодированные § 1 – если выполнено одно из условий: v в блоках P и Q есть хотя бы один ненулевой коэффициент преобразования v индексы опорных кадров P и Q не равны v вектора движения P и Q не равны v разница любой из компонент векторов движения P и Q больше или равна 1 § 0 – деблокинг не применяется • Фильтр определяется двумя параметрами (tc и β) • Для цветности – только слабая фильтрация при значении 2
Основные свойства VCL (11) • Адаптивный (к значениям отсчетов) сдвиг (SAO, sample adaptive offset) – Нелинейное отображение амплитуд в петле обратной связи межкадрового предсказания после DF – Цель SAO – улучшение восстановления оригинальных амплитуд сигнала с помощью таблицы соответствия (look-up table), которая описывается с помощью нескольких дополнительных параметров, которые определяются по анализу гистограммы на стороне кодера
Адаптивный сдвиг SAO • Применяется к отсчетам после деблокингового фильтра в соответствии с заданной таблицей (look-up table) • Решение принимается в зависимости от локального градиента • Индекс не передается, а определяется как на кодере, так и на декодере
Специальные режимы кодирования • Режим I-PCM – не применяется предсказание, преобразование, квантование и энтропийное кодирование, то есть значения отсчетов передаются напрямую; может применяться там, где сжатие неэффективно, например для шумоподобного сигнала • Режим сжатия без потерь (lossless) – не применяется преобразование, квантование и операции фильтрации, то есть остатки предсказания передаются на энтропийный кодер • Режим без преобразования (transform skipping) предназначен главным образом для такого специфического видеоконтента как компьютерная графика, смесь графики и видео (движущийся текст) и пр. ; этот режим применяется только к блокам преобразования 4 х4
Профили, ранги и уровни
Закон Мура для компрессии
Для интерактивных приложений
Для развлекательных программ