ВИДЕОКОДЕР, ВИДЕОДЕКОДЕР И СООТВЕТСТВУЮЩИЕ СПОСОБЫ
VIDEO ENCODER, VIDEO DECODER AND CORRESPONDING METHODS

Область техники, к которой относится изобретение
Варианты осуществления настоящей заявки в целом относятся к области кодирования видео и, в частности, к разбиению и разделению на блоки.
Уровень техники
Видеокодирование (кодирование и декодирование видео) используется в широком диапазоне применений цифрового видео, например, в широковещательном цифровом телевидении, передаче видео через Интернет и мобильные сети, в диалоговых приложениях в реальном времени, таких как видеочат, видеоконференцсвязь, DVD и Blu-Ray диски, системы сбора и редактирования видеоконтента и видеокамеры приложений безопасности.
С момента разработки блочного гибридного подхода к кодированию видео в стандарте H.261 в 1990 году были разработаны новые методики и инструменты кодирования видео, которые легли в основу новых стандартов кодирования видео. Дополнительные стандарты кодирования видео включают видео MPEG-1, видео MPEG-2, ITU-T H.262/MPEG-2, ITU-T H.263, ITU-T H.264/MPEG-4, часть 10, расширенное видеокодирование. (AVC), ITU-T H.265/высокоэффективное видеокодирование (HEVC), ITU-T H.266/универсальное видеокодирование (VVC) и расширения, например масштабируемость и/или трехмерные (3D) расширения этих стандарты. Поскольку создание и использование видео становится все более и более повсеместным, видеотрафик является самой большой нагрузкой на сети связи и хранилище данных, соответственно, одной из целей большинства стандартов кодирования видео было достижение снижения битрейта по сравнению с его предшественником без жертвуя качеством снимка. Даже новейшее высокоэффективное видеокодирование (HEVC) может сжимать видео примерно в два раза больше, чем AVC, без ущерба для качества, существует сильная потребность в новых технологиях для дальнейшего сжатия видео по сравнению с HEVC.
Сущность изобретения
Варианты осуществления настоящей заявки (или настоящего раскрытия) предоставляют устройства и способы для кодирования и декодирования согласно независимым пунктам формулы изобретения.
Вышеупомянутые и другие цели достигаются посредством заявляемых объектов в независимых пунктах формулы изобретения. Дополнительные формы реализации очевидны из зависимых пунктов формулы изобретения, описания и фигур.
В стандарте определение некоторых функций выглядит следующим образом:
набор параметров снимка (PPS): Структура синтаксиса, содержащая элементы синтаксиса, которые применяются к нулю или более целым кодированным снимкам, как определено элементом синтаксиса, найденным в каждом заголовке сегмента.
Набор параметров последовательности (SPS): Структура синтаксиса, содержащая элементы синтаксиса, которые применяются к нулю или более полным CVS, как определено содержимым элемента синтаксиса, найденного в PPS, на который ссылается элемент синтаксиса, найденный в каждом заголовке сегмента.
заголовок сегмента: Часть кодированного сегмента, содержащая элементы данных, относящиеся к первому или всем фрагментам, представленным в сегменте.
подснимок: Прямоугольная область из одного или более сегментов в снимке.
Сегмент состоит либо из нескольких полных клеток, либо только из последовательной последовательности полных фрагментов одной клетки.
клетка: Прямоугольная область CTU в конкретном столбце клеток и в конкретной строке клеток в снимке.
Снимок делится на одну или более строк клеток и один или более столбцов клеток. Клетка - это последовательность CTU, покрывающая прямоугольную область снимка.
Клетка делится на один или более фрагментов, каждый из которых состоит из некоторого количества строк CTU внутри клетки.
Клетка, не разделенная на несколько фрагментов, также называется фрагментом. Однако фрагмент, который является истинным подмножеством клетки, не называется клеткой.
Сегмент содержит либо некоторое количество клеток снимка, либо некоторое количество фрагментов клетки.
Подснимок содержит один или более сегментов, которые вместе покрывают прямоугольную область снимка.
Поддерживаются два режима сегментов, а именно режим сегмента с растровым сканированием и режим прямоугольного сегмента. В режиме сегмента с растровым сканированием сегмент содержит последовательность клеток в поклеточном растровом сканировании снимка. В режиме прямоугольного сегмента сегмент содержит несколько фрагментов снимка, которые вместе образуют прямоугольную область снимка. Фрагменты внутри прямоугольного сегмента находятся в порядке растрового сканирования сегмента.
Согласно первому аспекту изобретения предоставляется способ декодирования битового видеопотока, реализуемый устройством декодирования, причем битовый видеопоток включает в себя данные, представляющие область изображения и заголовок области изображения упомянутой области изображения, при этом способ декодирования включает в себя: получение флага переопределения из битового видеопотока; когда значение флага переопределения является значением переопределения, получение первой информации характеристик разбиения для упомянутой области изображения из заголовка области изображения; и разбиение блока упомянутой области изображения согласно первой информации характеристик разбиения.
Этот подход позволяет каждой области изображения иметь собственную информацию характеристик разбиения, отличную от информации характеристик разбиения для множества областей изображения в наборе параметров, поэтому этот подход обеспечивает эффективный анализ (парсинг) битового потока и, в частности, эффективную сигнализацию информации характеристик разбиения.
При этом получение первой информации характеристик разбиения для упомянутой области изображения из заголовка области изображения может содержать: получение первой информации характеристик разбиения для области изображения из данных, представляющих заголовок области изображения.
При этом может быть предварительно установлено значение переопределения.
При этом значение переопределения включает в себя истину, ложь, 0 или 1.
При этом заголовок области изображения может быть набором или структурой, содержащей элементы данных, относящиеся ко всей или части области изображения.
В возможной форме реализации способа согласно первому аспекту как таковому способ декодирования дополнительно содержит: получение флага разрешения переопределения из битового видеопотока, при этом значение флага разрешения переопределения является разрешающим значением.
При этом разрешающее значение может быть предварительно установлено.
При этом разрешающее значение включает в себя истину, ложь, 0 или 1.
В возможной форме реализации способа согласно первому аспекту как таковому способ декодирования дополнительно включает в себя: получение флага разрешения переопределения из битового видеопотока, при этом получение флага переопределения из битового видеопотока включает в себя: когда значение флага разрешения переопределения является разрешающим значением, получение флага переопределения из битового видеопотока.
При этом разрешающее значение может быть предварительно установлено.
При этом разрешающее значение включает в себя истину, ложь, 0 или 1.
С помощью предоставления флага разрешения переопределения можно эффективно управлять переопределением, тем самым увеличивая гибкость в обработке элементов синтаксиса, связанных с разбиением блоков. Следует отметить, что когда флаг разрешения переопределения установлен в разрешающее значение, то флаг переопределения может быть дополнительно извлечен из битового потока. В противном случае флаг переопределения может не извлекаться из битового потока, и в этом случае переопределение не применяется. Скорее, для разбиения блока может использоваться вторая или третья характеристика разбиения.
В возможной форме реализации способа согласно любой предыдущей реализации первого аспекта или первого аспекта как такового, битовый видеопоток дополнительно включает в себя данные, представляющие набор параметров битового видеопотока, и способ декодирования дополнительно включает в себя: когда значение флага разрешения переопределения является запрещающим значением, разбиение блока упомянутой области изображения согласно второй информации характеристик разбиения для битового видеопотока. При этом вторая информация характеристик разбиения может быть из набора параметров или из набора параметров.
При этом набор параметров может быть набором параметров последовательности (SPS), набором параметров снимка (PPS) или любым другим набором параметров.
При этом запрещающее значение отличается от разрешающего значения.
При этом запрещающее значение может быть предварительно установлено.
При этом запрещающее значение включает в себя истину, ложь, 0 или 1.
Если значение флага разрешения переопределения является запрещающим значением, то первая информация характеристик разбиения может отсутствовать в битовом видеопотоке, и значение первой информации характеристик разбиения может быть выведено равным значению второй информации характеристик разбиения.
При этом набор параметров может быть набором или структурой, содержащей элементы синтаксиса, которые применяются к нулю или более целым кодированным снимкам или кодированной видеопоследовательности, содержащей область изображения.
При этом набор параметров отличается от заголовка области изображения.
Например, вторая информация характеристик разбиения содержит информацию о минимально допустимом размере концевого узла дерева квадрантов, информацию о максимальной глубине многотипного дерева, информацию о максимально допустимом размере корневого узла троичного дерева или информацию о максимально допустимом размере корневого узла двоичного дерева. Любое объединение/подмножество этих и дополнительных параметров может сигнализироваться для конфигурирования характеристик разбиения.
При этом информация о минимально допустимом размере концевого узла дерева квадрантов может быть значением дельты для получения значения минимально допустимого размера концевого узла дерева квадрантов. Например, информация о минимально допустимом размере концевого узла дерева квадрантов может быть sps_log2_min_qt_size_intra_slices_minus2, sps_log2_min_qt_size_inter_slices_minus2 или log2_min_qt_size_minus2.
При этом информация о максимально допустимом размере корневого узла троичного дерева может быть значением дельты для получения значения максимально допустимого размера корневого узла троичного дерева. Например, информация о максимально допустимом размере корневого узла троичного дерева может быть sps_log2_diff_ctu_max_tt_size_intra_slices, sps_log2_diff_ctu_max_tt_size_inter_slices или log2_diff_ctu_max_tt_size.
При этом информация о максимально допустимом размере корневого узла двоичного дерева может быть значением дельты для получения значения максимально допустимого размера корневого узла двоичного дерева. Например, информация о максимально допустимом размере корневого узла двоичного дерева может быть sps_log2_diff_ctu_max_bt_size_intra_slices, sps_log2_diff_ctu_max_bt_size_inter_slices или log2_diff_ctu_max_bt_size.
Например, информация о максимальной глубине многотипного дерева может быть sps_max_mtt_hierarchy_depth_inter_slices, sps_max_mtt_hierarchy_depth_intra_slices или max_mtt_hierarchy_depth.
В дополнение или альтернативно, вторая информация характеристик разбиения содержит информацию характеристик разбиения для блока в интра-режиме или информацию характеристик разбиения для блока в интра-режиме.
Вторая информация характеристик разбиения может включать в себя как информацию характеристик разбиения для блоков в интра-режиме, так и информацию характеристик разбиения для блоков в интра-режиме, сигнализируемых отдельно. Однако настоящее изобретение этим не ограничивается, и может быть одна информация характеристик разбиения, общая как для информации характеристик разбиения для блоков в интра-режиме, так и для информации характеристик разбиения для блоков в интра-режиме.
При этом блок в интра-режиме или блок в интра-режиме относится к набору параметров.
При этом набор параметров может содержать набор параметров последовательности (SPS) или набор параметров снимка (PPS).
При этом блок в интра-режиме может находиться внутри CTU в сегменте с slice_type, равным 2 (I), со ссылкой на набор параметров, или блок в интер-режиме может находиться внутри CTU в сегменте с slice_type, равным 0 (B) или 1 (P), со ссылкой на набор параметров.
В дополнение или альтернативно, вторая информация характеристик разбиения содержит информацию характеристик разбиения для блока яркости и/или информацию характеристик разбиения для блока цветности.
При этом блок яркости или блок цветности относится к набору параметров.
При этом набор параметров может содержать набор параметров последовательности (SPS) или набор параметров снимка (PPS).
При этом блок яркости или блок цветности может находиться внутри CTU в сегменте, относящемся к набору параметров.
В возможной форме реализации способа согласно любой предыдущей реализации первого аспекта или первого аспекта как такового, битовый видеопоток дополнительно включает в себя данные, представляющие набор параметров битового видеопотока, получение флага разрешения переопределения из битового видеопотока включает в себя получение флага разрешения переопределения из набора параметров или получение флага разрешения переопределения в наборе параметров.
При этом получение флага разрешения переопределения из набора параметров может включать в себя получение флага разрешения переопределения из данных, представляющих набор параметров, где набор параметров может быть набором параметров последовательности (SPS) или набором параметров снимка (PPS) или любым другим набор параметров.
В возможной форме реализации способа согласно любой предыдущей реализации первого аспекта или первого аспекта как такового, получение флага переопределения из битового видеопотока включает в себя получение флага переопределения из заголовка области изображения.
При этом получение флага переопределения из заголовка области изображения может включать в себя получение флага переопределения из данных, представляющих заголовок области изображения.
В возможной форме реализации способа согласно любой предыдущей реализации первого аспекта или первого аспекта как такового, первая информация характеристик разбиения содержит информацию о минимально допустимом размере концевого узла дерева квадрантов, информацию о максимальной глубине многотипного дерева, информацию о максимально допустимом размере корневого узла троичного дерева или информацию о максимально допустимом размере корневого узла двоичного дерева.
При этом информация о минимально допустимом размере концевого узла дерева квадрантов может быть значением дельты для получения значения минимально допустимого размера концевого узла дерева квадрантов. Например, информация о минимально допустимом размере концевого узла дерева квадрантов может быть sps_log2_min_qt_size_intra_slices_minus2, sps_log2_min_qt_size_inter_slices_minus2 или log2_min_qt_size_minus2.
При этом информация о максимально допустимом размере корневого узла троичного дерева может быть значением дельты для получения значения максимально допустимого размера корневого узла троичного дерева. Например, информация о максимально допустимом размере корневого узла троичного дерева может быть sps_log2_diff_ctu_max_tt_size_intra_slices, sps_log2_diff_ctu_max_tt_size_inter_slices или log2_diff_ctu_max_tt_size.
При этом информация о максимально допустимом размере корневого узла двоичного дерева может быть значением дельты для получения значения максимально допустимого размера корневого узла двоичного дерева. Например, информация о максимально допустимом размере корневого узла двоичного дерева может быть sps_log2_diff_ctu_max_bt_size_intra_slices, sps_log2_diff_ctu_max_bt_size_inter_slices или log2_diff_ctu_max_bt_size.
Например, информация о максимальной глубине многотипного дерева может быть sps_max_mtt_hierarchy_depth_inter_slices, sps_max_mtt_hierarchy_depth_intra_slices или max_mtt_hierarchy_depth.
Например, область изображения содержит сегмент, клетку или подснимок, а заголовок области изображения содержит заголовок сегмента упомянутого сегмента, заголовок клетки упомянутой клетки или заголовок подснимка.
В возможной форме реализации способа согласно любой предыдущей реализации первого аспекта или первого аспекта как такового, битовый видеопоток может дополнительно включать в себя данные, представляющие набор параметров битового видеопотока, и способ декодирования дополнительно включает в себя: когда значение флага переопределения не является значением переопределения, разбиение S230 блока упомянутой области изображения согласно второй информации характеристик разбиения для битового видеопотока из набора параметров или разбиение S230 блока упомянутой области изображения согласно второй информации характеристик разбиения для битового видеопотока в наборе параметров.
При этом набор параметров может быть набором параметров последовательности (SPS), набором параметров снимка (PPS) или любым другим набором параметров.
Если значение переопределения истинно, значение флага переопределения не является значением переопределения, что означает, что значение флага переопределения ложно.
Если значение переопределения равно 1, значение флага переопределения не является значением переопределения, что означает, что значение флага переопределения равно 0.
Согласно второму аспекту изобретения, способ кодирования битового видеопотока, реализуемый устройством кодирования, причем битовый видеопоток включает в себя данные, представляющие область изображения и заголовок области изображения упомянутой области изображения, при этом способ кодирования включает в себя: определение того, осуществляется ли разбиение блока упомянутой области изображения согласно первой информации характеристик разбиения в заголовке области изображения; при определении того, что разбиение блока осуществляется согласно первой информацией характеристик разбиения, разбиение блока упомянутой области изображения согласно первой информации характеристик разбиения и установку значения флага переопределения в значение переопределения; и включение данных флага переопределения в битовый видеопоток.
В возможной форме реализации способа согласно второму аспекту как таковому способ кодирования дополнительно содержит: определение, разрешено ли разбиение блока согласно первой информации характеристик разбиения; при определении того, что разбиение блока согласно первой информации характеристик разбиения разрешено, установку значения флага разрешения переопределения в разрешающее значение; и включение данных флага разрешения переопределения в битовый видеопоток.
При этом определение того, осуществляется ли разбиение блока упомянутой области изображения согласно первой информации характеристик разбиения в заголовке области изображения, включает в себя: при определении того, что разбиение блока согласно первой информации характеристик разбиения разрешено, определение того, осуществляется ли разбиение блока упомянутой области изображения согласно первой информации характеристик разбиения в заголовке области изображения.
Например, битовый видеопоток дополнительно включает в себя данные, представляющие набор параметров битового видеопотока, и способ кодирования дополнительно включает в себя: при определении того, что разбиение блока согласно первой информации характеристик разбиения не разрешено, разбиение блока упомянутой области изображения согласно второй информации характеристик разбиения для битового видеопотока в наборе параметров и установку значения флага разрешения переопределения в запрещающее значение.
В дополнение или в качестве альтернативы, вторая информация характеристик разбиения содержит информацию о минимально допустимом размере концевого узла дерева квадрантов, информацию о максимальной глубине многотипного дерева, информацию о максимально допустимом размере корневого узла троичного дерева или информацию о максимально допустимом размере корневого узла двоичного дерева.
В дополнение или альтернативно, вторая информация характеристик разбиения содержит информацию характеристик разбиения для блока в интра-режиме или информацию характеристик разбиения для блока в интра-режиме.
Например, вторая информация характеристик разбиения содержит информацию характеристик разбиения для блока яркости или информацию характеристик разбиения для блока цветности.
В возможной форме реализации способа согласно любой предыдущей реализации второго аспекта или второго аспекта как такового, битовый видеопоток дополнительно включает в себя данные, представляющие набор параметров битового видеопотока, флаг разрешения переопределения находится в наборе параметров.
Например, флаг переопределения находится в заголовке области изображения.
В дополнение или в качестве альтернативы к любому из вариантов осуществления первая информация характеристик разбиения содержит информацию о минимально допустимом размере концевого узла дерева квадрантов, информацию о максимальной глубине многотипного дерева, информацию о максимально допустимом размере корневого узла троичного дерева или информацию о максимально допустимом размере корневого узла двоичного дерева.
В дополнение или альтернативно любому из вариантов осуществления, область изображения содержит сегмент, клетку или подснимок, а заголовок области изображения содержит заголовок сегмента упомянутого сегмента, заголовок клетки упомянутой клетки или заголовок подснимка.
Например, битовый видеопоток дополнительно включает в себя данные, представляющие набор параметров битового видеопотока, способ декодирования дополнительно включает в себя: при определении того, что разбиение блока не осуществляется согласно первой информации характеристик разбиения, разбиение (S360) блока упомянутой области изображения согласно второй информации характеристик разбиения для битового видеопотока в наборе параметров и установку значения флага переопределения в значение отсутствия переопределения.
Способ согласно второму аспекту может быть расширен до форм реализации, соответствующих формам реализации первого устройства согласно первому аспекту. Следовательно, форма реализации способа содержит признак(и) соответствующей формы реализации первого устройства.
Преимущества способов согласно второму аспекту такие же, как у соответствующих форм реализации первого устройства согласно первому аспекту.
Согласно третьему аспекту изобретения предоставляется декодер, содержащий: один или более процессоров; и долговременный машиночитаемый носитель данных, соединенный с процессорами и хранящий программы для исполнения процессорами, причем программная часть при ее исполнении процессорами конфигурирует декодер для выполнения любого из вышеупомянутых способов декодирования согласно первому аспекту или любой возможной реализации первого аспекта.
Согласно четвертому аспекту изобретения предоставляется кодер, содержащий: один или более процессоров; и долговременный машиночитаемый носитель данных, соединенный с процессорами и хранящий программы для исполнения процессорами, причем программная часть при ее исполнении процессорами конфигурирует кодер для выполнения способа согласно любому из вышеупомянутых способов декодирования согласно второму аспекту или любой возможной реализации второго аспекта.
Согласно пятому аспекту предлагается машиночитаемый носитель данных, на котором хранятся инструкции, которые при их исполнении предписывают одному или более сконфигурированным процессорам кодировать видеоданные. Инструкции предписывают одному или более процессорам выполнять способ согласно первому или второму аспекту или любой возможной реализации первого или второго аспекта.
Согласно шестому аспекту изобретение относится к компьютерной программе, содержащей программный код для выполнения способа согласно первому или второму аспекту или любому возможному варианту осуществления первого или второго аспекта при выполнении на компьютере.
Согласно седьмому аспекту изобретения предоставляется декодер для декодирования битового видеопотока, причем битовый видеопоток включает в себя данные, представляющие область изображения и заголовок области изображения упомянутой области изображения, при этом декодер содержит: модуль определения переопределения для получения флага переопределения из битового видеопотока; модуль определения характеристик разбиения для получения первой информации характеристик разбиения для упомянутой области изображения из заголовка области изображения, когда значение флага переопределения является значением переопределения; и модуль разбиения блока для разбиения блока упомянутой области изображения согласно первой информации характеристик разбиения.
Способ согласно первому аспекту изобретения может выполняться декодером согласно седьмому аспекту изобретения. Дополнительные признаки и формы реализации декодера согласно третьему аспекту изобретения соответствуют признакам и формам реализации способа согласно первому аспекту изобретения или любой возможной реализации первого аспекта. В соответствии с восьмым аспектом изобретения предоставляется кодер для кодирования битового видеопотока, причем битовый видеопоток включает в себя данные, представляющие область изображения и заголовок области изображения упомянутой области изображения, при этом кодер содержит: модуль разбиения блока для разбиения блока упомянутой области изображения согласно первой информации характеристик разбиения; генератор битового потока для вставки первой информации характеристик разбиения для области изображения в заголовок области изображения и установки значения флага замещения в значение переопределения; и для вставки флага переопределения в битовый видеопоток.
Способ согласно второму аспекту изобретения может выполняться кодером согласно восьмому аспекту изобретения. Дополнительные признаки и формы реализации кодера согласно восьмому аспекту изобретения соответствуют признакам и формам реализации способа согласно второму аспекту изобретения или любой возможной реализации второго аспекта.
Для ясности любой из раскрытых здесь вариантов осуществления может быть объединен с любым одним или более другими вариантами осуществления, чтобы создать новый вариант осуществления в пределах объема настоящего раскрытия.
Согласно девятому аспекту изобретения предоставляется битовый видеопоток, в котором битовый видеопоток включает в себя данные, представляющие область изображения и заголовок области изображения упомянутой области изображения, битовый видеопоток дополнительно включает в себя флаг переопределения, указывающий, присутствует ли первая информация характеристик разбиения для области изображения в заголовке области изображения.
В возможной форме реализации способа согласно девятому аспекту как таковой битовый видеопоток дополнительно включает в себя флаг разрешения переопределения, указывающий, присутствует ли флаг переопределения в заголовке области изображения.
В возможной форме реализации способа согласно любой предыдущей реализации первого аспекта или первого аспекта как такового флаг разрешения переопределения находится в наборе параметров или данных, представляющих набор параметров.
В возможной форме реализации способа согласно любой предыдущей реализации первого аспекта или первого аспекта как такового, флаг переопределения находится в заголовке области изображения или данных, представляющих заголовок области изображения.
Подробности одного или более вариантов осуществления изложены на прилагаемых чертежах и в описании ниже. Другие особенности, объекты и преимущества будут очевидны из описания, чертежей и формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Следующие ниже варианты осуществления изобретения описаны более подробно со ссылкой на прилагаемые чертежи и чертежи, на которых:
Фиг.1A является блок-схемой, показывающей пример системы видеокодирования, выполненной с возможностью реализации вариантов осуществления изобретения.
Фиг.1B является блок-схемой, показывающей другой пример системы видеокодирования, выполненной с возможностью реализации вариантов осуществления изобретения.
Фиг.2 является блок-схемой, показывающей пример видеокодера, выполненного с возможностью реализации вариантов осуществления изобретения.
Фиг.3 является блок-схемой, показывающей примерную структуру видеодекодера, выполненного с возможностью реализации вариантов осуществления изобретения.
Фиг.4 является блок-схемой, иллюстрирующей пример устройства кодирования или устройства декодирования.
Фиг.5 является блок-схемой, иллюстрирующей другой пример устройства кодирования или устройства декодирования;
Фиг.6 является иллюстративной схемой примера разбиения на блоки с использованием структуры квадро-троично-двоичного дерева (QTBT).
Фиг.7 является иллюстративной схемой примера древовидной структуры, соответствующей разбиению блоков с использованием структуры QTBT с Фиг.6.
Фиг.8 является иллюстративной схемой примера типов горизонтальных разбиений троичного дерева.
Фиг.9 является иллюстративной схемой примера типов вертикальных разбиений троичного дерева.
Фиг.10 является блок-схемой, иллюстрирующей способ декодирования согласно варианту осуществления.
Фиг.11 является блок-схемой, иллюстрирующей способ декодирования согласно варианту осуществления.
Фиг.12 является блок-схемой, иллюстрирующей примерный декодер.
Фиг.13 является блок-схемой, иллюстрирующей примерный кодер.
Фиг.14A является блок-схемой, иллюстрирующей способ кодирования согласно варианту осуществления, относящемуся к флагу переопределения.
Фиг.14B является блок-схемой, иллюстрирующей способ кодирования согласно варианту осуществления, относящемуся к флагу разрешения переопределения.
Фиг.15 является блок-схемой, показывающей примерную структуру системы поставки контента, которая реализует службу доставки контента.
Фиг.16 является блок-схемой, показывающей структуру примера терминального устройства.
Следующие одинаковые ссылочные позиции относятся к идентичным или, по меньшей мере, функционально эквивалентным функциям, если явно не указано иное;
Фиг.17 является блок-схемой, показывающей пример видеокодера, выполненного с возможностью реализации вариантов осуществления изобретения;
Фиг.18 является блок-схемой, показывающей примерную структуру видеодекодера, выполненного с возможностью реализации вариантов осуществления изобретения.
Следующие одинаковые ссылочные позиции относятся к идентичным или, по меньшей мере, функционально эквивалентным функциям, если явно не указано иное.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
В нижеследующем описании делается ссылка на сопроводительные чертежи, которые составляют часть раскрытия и на которых показаны в качестве иллюстрации конкретные аспекты вариантов осуществления изобретения или конкретные аспекты, в которых варианты осуществления настоящего изобретения могут быть использовал. Понятно, что варианты осуществления изобретения могут использоваться в других аспектах и содержать структурные или логические изменения, не изображенные на фигурах. Поэтому нижеследующее подробное описание не следует воспринимать в ограничивающем смысле, и объем настоящего изобретения определяется прилагаемой формулой изобретения.
Например, должно понятно, что раскрытие в связи с описанным способом также может быть верным для соответствующего устройства или системы, выполненной с возможностью выполнения способа, и наоборот. Например, если описан один или множество конкретных этапов способа, соответствующее устройство может включать в себя один или множество блоков, например функциональных блоков, для выполнения описанного одного или множества этапов способа (например, один блок, выполняющий один или множество этапов или множество блоков, каждый из которых выполняет один или более из множества этапов), даже если такой один или более блоков явно не описаны или не проиллюстрированы на фигурах. С другой стороны, например, если конкретное устройство описывается на основе одного или множества блоков, например функциональных блоков, соответствующий метод может включать в себя в себя один этап для выполнения функциональных возможностей одного или множества блоков (например, один этап выполнения функциональные возможности одного или множества модулей или множества этапов, каждый из которых выполняет функциональные возможности одного или более из множества модулей), даже если такой один или множество этапов явно не описаны или не проиллюстрированы на фигурах. Кроме того, понятно, что признаки различных примерных вариантов осуществления и/или аспектов, описанных в данном документе, могут быть объединены друг с другом, если специально не указано иное.
Видеокодирование обычно относится к обработке последовательности снимков, которые образуют видео или видеопоследовательность. Вместо термина «снимок» можно использовать термин «кадр» или «изображение» как синонимы в области видеокодирования. Видеокодирование, используемое в настоящей заявке (или настоящем раскрытии), указывает либо видеокодирование, либо декодирование видео. Видеокодирование выполняется на стороне источника, обычно содержащее обработку (например, посредством сжатия) исходных видеоснимков для уменьшения объема данных, необходимых для представления видеоснимков (для более эффективного хранения и/или передачи). Видеодекодирование выполняется на стороне получателя и обычно включает в себя обратную обработку по сравнению с кодером для восстановления видеоснимков. Варианты осуществления, относящиеся к «кодированию» видеоснимков (или снимков в целом, как будет объяснено позже), следует понимать как относящиеся либо к «кодированию», либо к «декодированию» видеопоследовательности. Объединение кодирующей части и декодирующей части также называется CODEC (кодирование и декодирование).
В случае кодирования видео без потерь исходные видеоснимки могут быть восстановлены, т.е. Восстановленные видеоснимки имеют то же качество, что и исходные видеоснимки (при условии отсутствия потерь при передаче или других потерь данных во время хранения или передачи). В случае кодирования видео с потерями выполняется дальнейшее сжатие, например, посредством квантования, чтобы уменьшить объем данных, представляющих видеоснимки, которые не могут быть полностью восстановлены в декодере, т.е. качество восстановленных видеоснимков ниже или хуже по сравнению с к качеству исходных видеоснимков.
Несколько стандартов видеокодирования, начиная с H.261, принадлежат к группе «гибридных видеокодеков с потерями» (т.е. сочетают пространственное и временное предсказание в области дискретных отсчетов и кодирование с двумерным преобразованием для применения квантования в области преобразования). Каждый снимок видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Другими словами, в кодере видео обычно обрабатывается, то есть кодируется, на уровне блока (видеоблока), например, с использованием пространственного (внутри снимка) (интра) предсказания и временного (между снимками) (интер) предсказания для генерации блока предсказания, вычитая блок предсказания из текущего блока (блок, который в настоящее время обрабатывается/должен быть обработан) для получения остаточного блока, преобразование остаточного блока и квантование остаточного блока в области преобразования для уменьшения объема данных, которые должны быть переданы (сжатие), тогда как в декодере обратная обработка по сравнению с кодером частично применяется к кодированному или сжатому блоку, чтобы восстановить текущий блок для представления. Кроме того, кодер дублирует цикл обработки декодера, так что оба будут генерировать идентичные предсказания (например, интра- и интер-предсказание) и/или реконструкцию для обработки, то есть кодирования, последующих блоков.
Используемый здесь термин «блок» может быть частью  снимка или кадра. Для удобства описания варианты осуществления изобретения описаны здесь со ссылкой на высокоэффективное видеокодирование (HEVC) или опорное программное обеспечение универсального кодирования видео (VVC), разработанное Объединенной группой сотрудничества по кодированию видео (JCT-VC) Группа экспертов ITU-T по кодированию видео (VCEG) и Группа экспертов ISO/IEC по движущимся изображениям (MPEG). Специалист в данной области техники поймет, что варианты осуществления изобретения не ограничиваются HEVC или VVC. Он может относиться к CU, PU и TU. В HEVC CTU разделяется на CU с использованием структуры дерева квадрантов, обозначаемой как дерево кодирования. Решение о том, кодировать ли область снимка с использованием межснимочного (интер) (временного) или внутриснимочного (интра) (пространственного) предсказания, принимается на уровне CU. Каждый CU может быть дополнительно разделен на один, два или четыре PU в соответствии с типом разбиения PU. Внутри одного PU применяется один и тот же процесс предсказания, и соответствующая информация передается в декодер на основе PU. После получения остаточного блока посредством применения процесса предсказания на основе типа разбиения PU, CU может быть разделен на блоки преобразования (TU) в соответствии с другой структурой дерева квадрантов, аналогичной дереву кодирования для CU. В новейшей разработке технологии сжатия видео для разбиения блока кодирования используется кадр разбиения квадро-троичного дерева и двоичного дерева (QTBT). В блочной структуре QTBT CU может иметь квадратную или прямоугольную форму. Например, единица дерева кодирования (CTU) сначала разделяется структурой дерева квадрантов. Концевые узлы дерева квадрантов далее разделяются структурой двоичного дерева. Концевые узлы двоичного дерева называются единицами кодирования (CU), и эта сегментация используется для предсказания и обработки преобразования без какого-либо дальнейшего разбиения. Это означает, что CU, PU и TU имеют одинаковый размер блока в структуре блока кодирования QTBT. Параллельно с блочной структурой QTBT также было предложено использовать множественное разбиение, например разбиение троичного дерева. Термин «устройство» также может означать «устройство», «декодер» или «кодер».
В следующих вариантах осуществления кодера 20, декодера 30 и системы 10 кодирования описываются на основе фигур с 1 по 3.
Фиг.1A является принципиальной или схематической блок-схемой, иллюстрирующей примерную систему 10 кодирования, например систему 10 видеокодирования, которая может использовать методики этой настоящей заявки (настоящее раскрытие). Кодер 20 (например, видеокодер 20) и декодер 30 (например, видеодекодер 30) системы 10 кодирования видео представляют примеры устройств, которые могут быть выполнены с возможностью выполнения методик в соответствии с различными примерами, описанными в настоящей заявке. Как показано на Фиг.1A, система 10 кодирования содержит устройство-источник 12, выполненное с возможностью предоставления кодированных данных 13, например кодированного снимка 13, например, в устройство-получатель 14 для декодирования кодированных данных 13.
Устройство-источник 12 содержит кодер 20 и может дополнительно, т.е. в необязательном порядке, содержать источник 16 снимка, модуль 18 предварительной обработки, например модуль 18 предварительной обработки снимка, и интерфейс связи или модуль 22 связи.
Источник 16 снимка может содержать или быть устройством захвата снимка любого типа, например, для захвата реального снимка и/или любого вида снимка или комментария (для кодирования содержимого экрана некоторые тексты на экране также считаются часть снимка или изображения, которое должно быть кодировано), устройство генерации, например процессор компьютерной графики для генерации компьютерного анимированного снимка, или любое устройство для получения и/или предоставления реального снимка, компьютерного анимированного снимка (например, содержимое экрана, снимок виртуальной реальности (VR)) и/или любое их сочетание (например, снимок дополненной реальности (AR)). Источником снимка может быть любой тип памяти или хранилища, в котором хранятся любые из вышеупомянутых снимков.
(Цифровой) снимок представляет собой или может рассматриваться как двумерный массив или матрица дискретных отсчетов со значениями интенсивности. Дискретный отсчет в массиве также может называться пикселем (сокращенная форма элемента снимка) или пикселем. Количество дискретных отсчетов в горизонтальном и вертикальном направлении (или по оси) массива или снимка определяет размер и/или разрешение снимка. Для представления цвета обычно используются три цветовых компонента, то есть снимок может быть представлено или включать в себя три массива дискретных отсчетов. В формате RBG или цветовом пространстве снимок содержит соответствующий массив дискретных отсчетов красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель обычно представлен в формате яркости/цветности или цветовом пространстве, например YCbCr, который содержит компонент яркости, обозначенный Y (иногда вместо этого также используется L), и два компонента цветности, обозначенные Cb и Cr. Компонент Y яркости (или короткой яркости) представляет яркость или интенсивность уровня серого (например, как в полутоновом снимке), в то время как два компонента цветности (или короткой цветности) Cb и Cr представляют компоненты цветности или информации о цвете. Соответственно, снимок в формате YCbCr содержит массив дискретных отсчетов яркости значений дискретных отсчетов яркости (Y) и два массива дискретных отсчетов цветности значений цветности (Cb и Cr). Снимки в формате RGB могут быть преобразованы или преобразованы в формат YCbCr, и наоборот, этот процесс также известен как преобразование цвета или преобразование. Если снимок является монохромным, то он может содержать только массив дискретных отсчетов яркости.
Источник 16 снимка (например, источник 16 видео) может быть, например, камерой для захвата снимка, памятью, например памятью снимков, содержащей или хранящей ранее захваченный или сгенерированный снимок, и/или интерфейс любого типа (внутренний или внешний) для получения или получения снимка. Камера может быть, например, локальной или интегрированной камерой, интегрированной в исходное устройство, память может быть локальной или интегрированной памятью, например, интегрированной в исходное устройство. Интерфейс может быть, например, внешним интерфейсом для приема снимка от внешнего источника видео, например внешнего устройства захвата снимка, такого как камера, внешней памяти, или внешнего устройства создания снимка, например внешнего компьютерного графического адаптера. процессор, компьютер или сервер. Интерфейс может быть интерфейсом любого типа, например проводным или беспроводным интерфейсом, оптическим интерфейсом в соответствии с любым частным или стандартизованным протоколом интерфейса. Интерфейс для получения данных 17 снимка может быть тем же интерфейсом, что и интерфейс 22 связи, или являться его частью.
В отличие от модуля 18 предварительной обработки и обработки, выполняемой модулем 18 предварительной обработки, снимок или данные 17 снимка (например, видеоданные 16) также могут называться необработанным снимком или данными 17 необработанного снимка.
Модуль 18 предварительной обработки выполнен с возможностью приема данных 17 (необработанного) снимка и выполнения предварительной обработки данных 17 снимка для получения предварительно обработанного снимка 19 или данных 19 предварительно обработанного снимка. Предварительная обработка, выполняемая модулем 18 предварительной обработки, может, например, включать в себя обрезку, преобразование цветового формата (например, из RGB в YCbCr), цветокоррекцию или уменьшение шума. Можно понять, что модуль 18 предварительной обработки может быть необязательным компонентом.
Кодер 20 (например, видеокодер 20) выполнен с возможностью приема данных 19 предварительно обработанного снимка и предоставления данных 21 кодированного снимка (дополнительные подробности будут описаны ниже, например, на основе Фиг.2 или Фиг.4).
Интерфейс 22 связи устройства-источника 12 может быть выполнен с возможностью приема данных 21 кодированного снимка и для передачи данных 21 кодированного снимка (или любой их дальнейшей обработанной версии) по каналу 13 связи на другое устройство, например, на устройство-получатель 14 или любое другое устройство для хранения или прямого восстановления или для обработки данных 21 кодированного снимка, соответственно, перед сохранением кодированных данных 13 и/или передачей кодированных данных 13 на другое устройство, например устройство-получатель 14 или любое другое устройство для декодирования или сохранения.
Устройство-получатель 14 содержит декодер 30 (например, видеодекодер 30) и может дополнительно, т.е. в необязательном порядке, содержать интерфейс или модуль 28 связи, модуль 32 постобработки и устройство 34 отображения.
Интерфейс 28 связи устройства-получателя 14 выполнен с возможностью приема данных 21 кодированного снимка (или любой их дальнейшей обработанной версии) или кодированных данных 13, например, непосредственно от устройства-источника 12 или из любого другого источника, например запоминающего устройства, например устройство хранения данных кодированного снимка, и предоставить данные 21 кодированного снимка в декодер 30.
Интерфейс 22 связи и интерфейс 28 связи могут быть выполнены с возможностью передачи или приема данных 21 кодированного снимка или кодированных данных 13 через прямую линию связи между устройством-источником 12 и устройством-получателем 14, например прямое проводное или беспроводное соединение, или через сеть любого типа, например проводную или беспроводную сеть или любое их сочетание, или любую частную и общедоступную сеть, или любое их сочетание.
Интерфейс 22 связи может быть, например, выполнен с возможностью упаковки данных 21 кодированного снимка в соответствующий формат, например, в пакеты, и/или обработки данных кодированного снимка с использованием любого типа кодирования передачи или обработки для передачи по каналу связи или сети связи.
Интерфейс 28 связи, образующий аналог интерфейса 22 связи, может быть, например, выполнен с возможностью приема переданных данных и обработки данных передачи с использованием любого вида соответствующего декодирования или обработки передачи и/или распаковки кодированных данных 13 для получить данные 21 кодированного снимка.
И интерфейс 22 связи, и интерфейс 28 связи могут быть выполнены как однонаправленные интерфейсы связи, как показано стрелкой для данных 13 кодированного снимка на Фиг.1A, указывающей от устройства-источника 12 к устройству-получателю 14, или как интерфейсы двунаправленной связи, и может быть сконфигурирован, например, для отправки и приема сообщений, например для установки соединения, для подтверждения и обмена любой другой информацией, относящейся к каналу связи и/или передаче данных, например, к передаче данных кодированного снимка.
Декодер 30 выполнен с возможностью приема данных 21 кодированного снимка и предоставления данных 31 декодированного снимка или декодированного снимка 31 (дополнительные подробности будут описаны ниже, например, на основе Фиг.3 или Фиг.5).
Постпроцессор 32 устройства-получателя 14 выполнен с возможностью постобработки данных 31 декодированного снимка (также называемых данными восстановленного снимка), например, декодированного снимка 31, для получения данных 33 снимка 33 с постобработкой, например снимка 33 с постобработкой. Постобработка, выполняемая модулем 32 постобработки, может включать в себя, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекцию, обрезку или повторную дискретизацию, или любую другую обработку, например, для подготовки данных декодированного снимка 31 для отображения, например, с помощью устройства 34 отображения.
Устройство 34 отображения устройства-получателя 14 выполнено с возможностью приема данных 33 снимка с постобработкой для отображения снимка, например, пользователю или зрителю. Устройство 34 отображения может быть или содержать любой вид дисплея для представления восстановленного снимка, например интегрированный или внешний дисплей или монитор. Дисплеи могут, например, содержать жидкокристаллические дисплеи (LCD), дисплеи на органических светодиодах (OLED), плазменные дисплеи, проекторы, микро-светодиодные дисплеи, жидкие кристаллы на кремнии (LCoS), цифровой световой процессор (DLP) или любые другие дисплеи.
Хотя Фиг.1A изображает устройство-источник 12 и устройство-получатель 14 как отдельные устройства, варианты осуществления устройств также могут содержать оба или обе функциональные возможности, устройство-источник 12 или соответствующие функциональные возможности и устройство-получатель 14 или соответствующие функциональные возможности. В таких вариантах осуществления устройство-источник 12 или соответствующие функциональные возможности и устройство-получатель 14 или соответствующие функциональные возможности могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения или с помощью отдельного аппаратного и/или программного обеспечения или любого их сочетания.
Как будет очевидно для специального элемента на основании описания, наличие и (точное) разделение функциональных возможностей различных модулей или функций в устройстве-источнике 12 и/или устройстве-получателе 14, как показано на Фиг.1A, может варьироваться в зависимости от фактического устройства и применения.
Кодер 20 (например, видеокодер 20) и декодер 30 (например, видеодекодер 30), каждый может быть реализован как любая из множества подходящих схем, таких как один или более микропроцессоров, процессоров цифровых сигналов (DSP), прикладных программ. специальные интегральные схемы (ASIC), программируемые пользователем вентильные матрицы (FPGA), дискретная логика, оборудование или любые их сочетания. Если методики частично реализованы в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем долговременном машиночитаемом носителе данных и может выполнять инструкции в аппаратных средствах, используя один или более процессоров для выполнения методик этого раскрытия. Любое из вышеперечисленного (включая оборудование, программное обеспечение, объединение аппаратного и программного обеспечения и т.д.) Может рассматриваться как один или более процессоров. Каждый из видеокодера 20 и видеодекодера 30 может быть включен в один или более кодеров или декодеров, каждый из которых может быть интегрирован как часть объединенного кодера/декодера (CODEC) в соответствующем устройстве.
Кодер 20 может быть реализован через схему 46 обработки для воплощения различных модулей, как обсуждалось в отношении кодера 20 на Фиг.2 и/или любой другой кодирующей системе или подсистеме, описанной здесь. Декодер 30 может быть реализован через схему 46 обработки для воплощения различных модулей, как обсуждалось в отношении декодера 30 на Фиг.3 и/или любую другую систему или подсистему декодера, описанную в данном документе. Схема обработки может быть выполнена с возможностью выполнения различных операций, как описано ниже. Как показано на Фиг.5, если методики частично реализованы в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем долговременном машиночитаемом носителе данных и может выполнять инструкции в аппаратных средствах, используя один или более процессоров для выполнения методик этого раскрытия. Любой из видеокодера 20 ивидеодекодера 30 можетбыть интегрирован как часть объединенного кодера/декодера (CODEC) в одном устройстве, например, как показано на Фиг.1B.
Устройство-источник 12 может называться устройством кодирования видео или устройством кодирования видео. Устройство-получатель 14 может называться устройством декодирования видео или устройством декодирования видео. Устройство-источник 12 и устройство-получатель 14 могут быть примерами устройств кодирования видео или устройств кодирования видео.
Устройство-источник 12 и устройство-получатель 14 могут включать в себя любое из широкого диапазона устройств, включая любые виды портативных или стационарных устройств, например портативные или портативные компьютеры, мобильные телефоны, смартфоны, планшеты или планшетные компьютеры, камеры, настольные компьютеры, наборы- приставки, телевизоры, устройства отображения, цифровые медиаплееры, игровые приставки, устройства потоковой передачи видео (например, серверы служб контента или серверы доставки контента), устройство приемника широковещания, устройство передатчика широковещания и т.п. и могут использовать или не использовать любой вид операционной системы.
В некоторых случаях устройство-источник 12 и устройство-получатель 14 могут быть оборудованы для беспроводной связи. Таким образом, устройство-источник 12 и устройство-получатель 14 могут быть устройствами беспроводной связи.
В некоторых случаях система 10 видеокодирования, проиллюстрированная на Фиг.1A является просто примером, и методики настоящей заявки могут применяться к настройкам кодирования видео (например, видеокодирования или видеодекодирования), которые не обязательно включают в себя какой-либо обмен данными между устройствами кодирования и декодирования. В других примерах данные извлекаются из локальной памяти, передаются по сети и т.п. Устройство кодирования видео может кодировать и сохранять данные в памяти, и/или устройство декодирования видео может извлекать и декодировать данные из памяти. В некоторых примерах кодирование и декодирование выполняются устройствами, которые не обмениваются данными друг с другом, а просто кодируют данные в память и/или извлекают и декодируют данные из памяти.
Для удобства описания варианты осуществления изобретения описаны здесь, например, со ссылкой на высокоэффективное видеокодирование (HEVC) или на опорное программное обеспечение универсального кодирования видео (VVC), стандарта кодирования видео следующего поколения, разработанного Объединенной группой сотрудничества по кодированию видео (JCT-VC) Группы экспертов ITU-T по кодированию видео (VCEG) и Группы экспертов ISO/IEC по движущимся изображениям (MPEG). Специалист в данной области техники поймет, что варианты осуществления изобретения не ограничиваются HEVC или VVC.
Следует понимать, что для каждого из вышеупомянутых примеров, описанных со ссылкой на видеокодер 20, видеодекодер 30 может быть выполнен с возможностью выполнения обратного процесса. Что касается элементов синтаксиса сигнализации, видеодекодер 30 может быть выполнен с возможностью приема и анализа такого элемента синтаксиса и соответствующего декодирования связанных видеоданных. В некоторых примерах видеокодер 20 может энтропийно кодировать один или более элементов синтаксиса в кодированный битовый видеопоток. В таких примерах видеодекодер 30 может анализировать такой элемент синтаксиса и соответственно декодировать связанные видеоданные.
Фиг.1B является иллюстративной схемой другого примера системы 40 кодирования видео, включающей в себя кодер 20 с Фиг.2 и/или декодер 30 Фиг.3 согласно примерному варианту осуществления. Система 40 может реализовывать методики в соответствии с различными примерами, описанными в настоящей заявке. В проиллюстрированной реализации система 40 видеокодирования может включать в себя устройство(а) 41 формирования изображения, видеокодер 100, видеодекодер 30 (и/или видеокодер, реализованный посредством логической схемы 47 модуля(ей) 46 обработки), антенну 42, один или более процессоров 43, одно или более запоминающих хранилищ 44 и/или устройство 45 отображения.
Как показано, устройство(а) 41 формирования изображения, антенна 42, модуль(и) 46 обработки, логическая схема 47, видеокодер 20, видеодекодер 30, процессор(ы) 43, запоминающие хранилище(и) 44 и/или устройство 45 отображения могут осуществлять связь друг с другом. Как обсуждалось, хотя и проиллюстрировано как с видеокодером 20, так и с видеодекодером 30, система 40 видеокодирования может включать в себя только видеокодер 20 или только видеодекодер 30 в различных примерах.
Как показано, в некоторых примерах система 40 видеокодирования может включать в себя антенну 42. Антенна 42 может быть приспособлена, например, для передачи или приема кодированного битового видеопотока данных. Кроме того, в некоторых примерах система 40 видеокодирования может включать в себя устройство 45 отображения. Устройство 45 отображения может быть выполнено с возможностью представления видеоданных. Как показано, в некоторых примерах, логическая схема 47 может быть реализована посредством модуля(ей) 46 обработки. Модуль(и) 46 обработки может включать в себя логику специализированной интегральной схемы (ASIC), графический процессор(ы), процессор(ы) общего назначения и т.п. Система 40 видеокодирования также может включать в себя дополнительный процессор(ы) 43, который аналогичным образом может включать в себя логику специализированной интегральной схемы (ASIC), графический процессор(ы), процессор(ы) общего назначения и т.п. В некоторых примерах логическая схема 47 может быть реализована с помощью аппаратного обеспечения, специализированного оборудования для кодирования видео и т.п., а процессор(ы) 43 может реализовывать программное обеспечение общего назначения, операционные системы и т.п. Кроме того, запоминающее хранилище (хранилища) 44 может быть любым типом памяти, например энергозависимой памятью (например, статической памятью с произвольным доступом (SRAM), динамической памятью с произвольным доступом (DRAM) и т.д.) Или долговременной памятью (например, флэш-памятью). память и т.д.) и т.д. В неограничивающем примере запоминающее хранилище (хранилищ) 44 может быть реализовано с помощью кэш-памяти. В некоторых примерах логическая схема 47 может обращаться к запоминающему хранилищу(ам) 44 (например, для реализации буфера изображений). В других примерах логическая схема 47 и/или а модуль (и) 46 обработки могут включать в себя запоминающие хранилища (например, кэш и т.п.) для реализации буфера изображений или т.п.
В некоторых примерах видеокодер 100, реализованный с помощью логической схемы, может включать в себя буфер изображений (например, посредством модуля(ей) 46 обработки или запоминающего хранилища (хранилищ) 44) и графического процессора (например, через модуль (и) обработки 46). Модуль обработки графики может быть с возможностью осуществления связи связан с буфером изображений. Модуль обработки графики может включать в себя видеокодер 100, реализованный посредством логической схемы 47, для воплощения различных модулей, как обсуждалось со ссылкой на Фиг.2 и/или любой другой кодирующей системе или подсистеме, описанной здесь. Логическая схема может быть выполнена с возможностью выполнения различных операций, как описано в данном документе.
Видеодекодер 30 может быть реализован аналогично тому, как реализован с помощью логической схемы 47, для воплощения различных модулей, как обсуждалось в отношении декодера 30 на Фиг.3 и/или любую другую систему или подсистему декодера, описанную в данном документе. В некоторых примерах видеодекодер 30 может быть реализован с помощью логической схемы, может включать в себя буфер изображений (например, посредством модуля(ей) 420 обработки или запоминающего хранилища (хранилищ) 44)) и модуля обработки графики (например, через модуль (и) 46 обработки). Графический процессор может быть с возможностью осуществления связи связан с буфером изображений. Модуль обработки графики может включать в себя видеодекодер 30, реализованный посредством логической схемы 47, для воплощения различных модулей, как обсуждалось со ссылкой на Фиг.3 и/или любую другую систему или подсистему декодера, описанную в данном документе.
В некоторых примерах антенна 42 системы 40 видеокодирования может быть выполнена с возможностью приема кодированного битового видеопотока данных. Как обсуждалось, кодированный поток битов может включать в себя данные, индикаторы, значения индексов, данные выбора режима и т.п., связанные с кодированием видеокадра, как описано в данном документе, например, данные, связанные с разбиением кодирования (например, коэффициенты преобразования или квантованные коэффициенты преобразования, необязательные индикаторы (как обсуждалось) и/или данные, определяющие разбиение кодирования). Система 40 видеокодирования также может включать в себя видеодекодер 30, подключенный к антенне 42 и выполненный с возможностью декодирования кодированного битового потока. Устройство 45 отображения выполнено с возможностью представления видеокадров.
Фиг.2 показывает схематическую/принципиальную блок-схему примерного видеокодера 20, который выполнен с возможностью реализации методик настоящей заявки. В примере на Фиг.2, видеокодер 20 содержит модуль 204 вычисления остатка, модуль 206 обработки преобразования, модуль 208 квантования, модуль 210 обратного квантования и модуль 212 обработки обратного преобразования, модуль 214 восстановления, буфер 216, модуль 220 контурного фильтра, буфер декодированных снимков (DPB) 230, модуль 260 обработки предсказания и модуль 270 энтропийного кодирования. Модуль 260 обработки предсказания может включать в себя модуль 244 интер-предсказания, модуль 254 интра-предсказания и модуль 262 выбора режима. Модуль 244 интер-предсказания может включать в себя модуль оценки движения и модуль компенсации движения (не показаны). Видеокодер 20, показанный на фиг.2, также может называться гибридным видеокодером или видеокодером согласно гибридному видеокодеку.
Например, модуль 204 вычисления остатка, модуль 206 обработки преобразования, модуль 208 квантования, модуль 260 обработки предсказания и модуль 270 энтропийного кодирования образуют прямой путь сигнала кодера 20, тогда как, например, модуль обратного квантования 210, модуль 212 обработки обратного преобразования, модуль 214 восстановления, буфер 216, контурный фильтр 220, буфер декодированных снимков (DPB) 230, модуль 260 обработки предсказания образуют обратный тракт сигнала кодера, при этом обратный тракт сигнала кодера соответствует тракту сигнала декодера (см. декодер 30 на Фиг.3).
Модуль 210 обратного квантования, модуль 212 обработки обратного преобразования, модуль 214 восстановления, контурный фильтр 220, буфер декодированных снимков (DPB) 230, модуль 244 интер-предсказания и модуль 254 интра-предсказания также относятся к формированию «Встроенный декодер» видеокодера 20.
Кодер 20 выполнен с возможностью приема, например, посредством ввода 202 снимка 201 или блока 203 снимка 201, например снимка последовательности снимков, образующих видео или видеопоследовательность. Блок 203 снимка также может называться блоком текущего снимка или блоком снимка, подлежащим кодированию, а снимок 201 - текущим снимком или снимком, который должен быть кодирован (в частности, при кодировании видео, чтобы отличать текущий снимок от других снимков, например, ранее кодированных и/или декодированные снимки одной и той же видеопоследовательности, то есть видеопоследовательности, которая также включает в себя текущий снимок).
(Цифровой) снимок представляет собой или может рассматриваться как двумерный массив или матрица дискретных отсчетов со значениями интенсивности. Дискретный отсчет в массиве также может называться пикселем (сокращенная форма элемента снимка) или пикселем. Количество дискретных отсчетов в горизонтальном и вертикальном направлении (или по оси) массива или снимка определяет размер и/или разрешение снимка. Для представления цвета обычно используются три цветовых компонента, то есть снимок может быть представлен или включать в себя три массива дискретных отсчетов. В формате RBG или цветовом пространстве снимок содержит соответствующий массив дискретных отсчетов красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель обычно представлен в формате яркости и цветности или цветовом пространстве, например YCbCr, который содержит компонент яркости, обозначенный Y (иногда вместо него также используется L), и два компонента цветности, обозначенные Cb и Cr. Компонент Y яркости (или короткой яркости) представляет яркость или интенсивность уровня серого (например, как в полутоновом снимке), в то время как два компонента цветности (или короткой цветности) Cb и Cr представляют компоненты цветности или информации о цвете. Соответственно, снимок в формате YCbCr содержит массив дискретных отсчетов яркости значений дискретных отсчетов яркости (Y) и два массива дискретных отсчетов цветности значений цветности (Cb и Cr). Снимки в формате RGB могут быть преобразованы или преобразованы в формат YCbCr, и наоборот, этот процесс также известен как преобразование цвета или преобразование. Если снимок является монохромным, то он может содержать только массив дискретных отсчетов яркости. Соответственно, снимок может быть, например, массивом дискретных отсчетов яркости в монохромном формате или массивом дискретных отсчетов яркости и двумя соответствующими массивами дискретных отсчетов цветности в цветовой формат 4:2:0, 4:2:2 и 4:4:4.
РАЗБИЕНИЕ
Варианты осуществления кодера 20 могут содержать модуль разбиения (не показан на фиг.2), выполненный с возможностью разбиения снимка 201 на множество (обычно не перекрывающихся) блоков 203 снимка. Эти блоки также могут называться корневыми блоками, макроблоками (H.264/AVC) или блоками дерева кодирования (CTB) или единицами дерева кодирования (CTU) (H.265/HEVC и VVC). Блок разбиения может быть выполнен с возможностью использования одного и того же размера блока для всех снимков видеопоследовательности и соответствующей сетки, определяющей размер блока, или для изменения размера блока между снимками или подмножествами или группами снимков, а также для разбиения каждого снимка на соответствующие блоки.
В дополнительных вариантах осуществления видеокодер может быть выполнен с возможностью приема непосредственно блока 203 снимка 201, например одного, нескольких или всех блоков, образующих снимок 201. Блок 203 снимка также может называться блоком текущего снимка или блоком снимка, который должен быть кодирован.
В одном примере модуль 260 обработки предсказания видеокодера 20 может быть выполнен с возможностью выполнения любого сочетания способов разбиения, описанных выше.
Подобно снимку 201, блок 203 снова является или может рассматриваться как двумерный массив или матрица дискретных отсчетов со значениями интенсивности (значениями дискретных отсчетов), хотя и меньшего размера, чем снимок 201. Другими словами, блок 203 может содержать, например, один массив дискретных отсчетов (например, массив яркости в случае монохромного снимка 201) или три массива дискретных отсчетов (например, массив яркости и два массива цветности в случае цветного снимка 201) или любое другое количество и/или вид массивов в зависимости от применяемого цветового формата. Количество дискретных отсчетов в горизонтальном и вертикальном направлении (или по оси) блока 203 определяет размер блока 203. Соответственно, блок может, например, массив дискретных отсчетов MxN (M-столбец на N-строка) или массив MxN коэффициентов преобразования.
Кодер 20, как показано на Фиг.2, выполнен с возможностью кодирования снимка 201 блок за блоком, например, кодирование и предсказание выполняются для каждого блока 203.
Варианты осуществления видеокодера 20, как показано на фиг.2, могут быть дополнительно выполнены с возможностью разбиения и/или кодирования снимка с использованием сегментов (также называемых видеосегментами), при этом снимок может быть разделен или кодировано с использованием одного или более сегментов. (обычно без перекрытия), и каждый сегмент может содержать один или более блоков (например, CTU) или одну или более групп блоков (например, клетки (tile) (H.265/HEVC и VVC) или фрагменты (VVC)).
Варианты осуществления видеокодера 20, как показано на фиг.2, могут быть дополнительно выполнены с возможностью разбиения и/или кодирования снимка с использованием групп сегментов/клеток (также называемых группами клеток) и/или клеток (также называемых видеоклетками), в котором снимок может быть разделено или кодировано с использованием одной или более групп сегментов/клеток (обычно не перекрывающихся), и каждая группа сегментов/клеток может содержать, например, один или более блоков (например, CTU) или одну или более клеток, при этом каждая клетка, например, может иметь прямоугольную форму и может содержать один или более блоков (например, CTU), например полные или дробные блоки.
ВЫЧИСЛЕНИЕ ОСТАТОЧНОГО ЗНАЧЕНИЯ
Модуль 204 вычисления остатка выполнен с возможностью вычисления остаточного блока 205 на основе блока 203 снимка и блока 265 предсказания (дополнительные подробности о блоке 265 предсказания предоставлены позже), например, посредством вычитания значений дискретных отсчетов блока 265 предсказания из значений дискретных отсчетов блока 203 снимка, дискретный отсчет за дискретным отсчетом (пиксель за пикселем), чтобы получить остаточный блок 205 в области дискретных отсчетов.
ПРЕОБРАЗОВАНИЕ
Модуль 206 обработки преобразования выполнен с возможностью применения преобразования, например дискретного косинусного преобразования (DCT) или дискретного синусного преобразования (DST), к значениям дискретных отсчетов остаточного блока 205 для получения коэффициентов 207 преобразования в области преобразования. Коэффициенты 207 преобразования могут также называться остаточными коэффициентами преобразования и представлять остаточный блок 205 в области преобразования.
Модуль 206 обработки преобразования может быть выполнен с возможностью применения целочисленных аппроксимаций DCT/DST, таких как преобразования, указанные для HEVC/H.265. По сравнению с ортогональным преобразованием DCT, такие целочисленные аппроксимации обычно масштабируются с определенным коэффициентом. Чтобы сохранить норму остаточного блока, который обрабатывается прямым и обратным преобразованиями, в процессе преобразования применяются дополнительные коэффициенты масштабирования. Коэффициенты масштабирования обычно выбираются на основе определенных ограничений, таких как коэффициенты масштабирования, являющиеся степенью двойки для операции сдвига, разрядность коэффициентов преобразования, компромисс между точностью и затратами на реализацию и т.д. Конкретные коэффициенты масштабирования, например, задаются для обратного преобразования, например, блоком 212 обработки обратного преобразования в декодере 30 (и соответствующим обратным преобразованием, например, блоком 212 обработки обратного преобразования в кодере 20), и соответствующие коэффициенты масштабирования для прямое преобразование, например, посредством блока 206 обработки преобразования, в кодере 20 может быть определено соответственно.
Варианты осуществления видеокодера 20 (соответственно модуль 206 обработки преобразования) могут быть выполнены с возможностью вывода параметров преобразования, например типа преобразования или преобразований, например, непосредственно или кодированы или сжаты через модуль 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и использовать параметры преобразования для декодирования.
КВАНТОВАНИЕ
Модуль 208 квантования выполнен с возможностью квантования коэффициентов 207 преобразования для получения квантованных коэффициентов 209 преобразования, например, посредством применения скалярного квантования или векторного квантования. Квантованные коэффициенты 209 преобразования также могут упоминаться как квантованные остаточные коэффициенты 209. Процесс квантования может уменьшить битовую глубину, связанную с некоторыми или всеми коэффициентами 207 преобразования. Например, n-битовый коэффициент преобразования может быть округлен до m-битного коэффициента преобразования во время квантования, где n больше m. Степень квантования может быть изменена посредством регулировки параметра квантования (QP). Например, для скалярного квантования может применяться другое масштабирование для достижения более тонкого или более грубого квантования. Меньшие размеры шагов квантования соответствуют более тонкому квантованию, тогда как большие размеры шагов квантования соответствуют более грубому квантованию. Применимый размер шага квантования может быть указан параметром квантования (QP). Параметр квантования может, например, быть индексом для заранее определенного набора применимых размеров шага квантования. Например, малые параметры квантования могут соответствовать точному квантованию (малые размеры шагов квантования), а большие параметры квантования могут соответствовать грубому квантованию (большие размеры шагов квантования) или наоборот. Квантование может включать в себя деление на размер шага квантования, и соответствующее или обратное деквантование, например, посредством обратного квантования 210, может включать в себя умножение на размер шага квантования. Варианты осуществления согласно некоторым стандартам, например HEVC, могут быть выполнены с возможностью использования параметра квантования для определения размера шага квантования. Обычно размер шага квантования может быть вычислен на основе параметра квантования с использованием аппроксимации с фиксированной точкой уравнения, включающего деление. Дополнительные коэффициенты масштабирования могут быть введены для квантования и деквантования, чтобы восстановить норму остаточного блока, который может быть изменен из-за масштабирования, используемого в приближении с фиксированной точкой уравнения для размера шага квантования и параметра квантования. В одной примерной реализации масштабирование обратного преобразования и деквантование могут быть объединены. В качестве альтернативы могут использоваться настроенные таблицы квантования, и кодер может передавать их в декодер, например, в потоке битов. Квантование - это операция с потерями, при которой потери возрастают с увеличением размеров этапов квантования.
Варианты осуществления видеокодера 20 (соответственно модуль 208 квантования) могут быть выполнены с возможностью вывода параметров квантования (QP), например, напрямую или кодированных через модуль 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и применять параметры квантования для декодирования.
Модуль 210 обратного квантования выполнен с возможностью применения обратного квантования блока 208 квантования к квантованным коэффициентам для получения деквантованных коэффициентов 211, например, посредством применения обратной схемы квантования, применяемой блоком 208 квантования, на основе или с использованием того же размера шага квантования в качестве модуля 208 квантования. Деквантованные коэффициенты 211 также могут упоминаться как деквантованные остаточные коэффициенты 211 и соответствовать - хотя обычно не идентичны коэффициентам преобразования из-за потери при квантовании - коэффициентам 207 преобразования.
Модуль 212 обработки обратного преобразования выполнен с возможностью применения обратного преобразования, применяемого блоком 206 обработки преобразования, например обратного дискретного косинусного преобразования (DCT) или обратного дискретного синусоидального преобразования (DST), чтобы получить блок 213 обратного преобразования в области дискретных отсчетов. Блок 213 обратного преобразования также может называться блоком 213 деквантования обратного преобразования или остаточным блоком 213 обратного преобразования.
Модуль 214 реконструкции (например, сумматор 214) выполнен с возможностью добавления блока 213 обратного преобразования (то есть восстановленного остаточного блока 213) к блоку 265 предсказания, чтобы получить восстановленный блок 215 в области дискретных отсчетов, например, посредством добавления значений дискретных отсчетов восстановленных остаточный блок 213 и значения дискретных отсчетов блока 265 предсказания.
В необязательном порядке, буферный модуль 216 (или короткий «буфер» 216), например строковый буфер 216, выполнен с возможностью буферизации или хранения восстановленного блока 215 и соответствующих значений дискретных отсчетов, например, для интра-предсказания. В дополнительных вариантах осуществления кодер может быть выполнен с возможностью использования нефильтрованных восстановленных блоков и/или соответствующих значений дискретных отсчетов, хранящихся в буфером модуле 216, для любого вида оценки и/или предсказания, например интра-предсказания.
Варианты осуществления кодера 20 могут быть сконфигурированы так, что, например, буферный модуль 216 используется не только для хранения восстановленных блоков 215 для интра-предсказания 254, но также для блока 220 контурного фильтра (не показан на Фиг.2), и/или так что, например, буферный модуль 216 и буферный модуль 230 декодированного снимка образуют один буфер. Дополнительные варианты осуществления могут быть выполнены с возможностью использования фильтрованных блоков 221 и/или блоков или дискретных отсчетов из буфера 230 декодированных снимков (оба не показаны на фиг.2) в качестве входных данных или основы для интра-предсказания 254.
Модуль 220 контурного фильтра (или вкратце «контурный фильтр» 220) выполнен с возможностью фильтрации восстановленного блока 215 для получения фильтрованного блока 221, например, для сглаживания переходов пикселей или иного улучшения качества видео. Модуль 220 контурного фильтра предназначен для представления одного или более контурных фильтров, таких как фильтр устранения блочности, фильтр с адаптивным смещением дискретных отсчетов (SAO) или другие фильтры, например двусторонний фильтр или адаптивный контурный фильтр (ALF), или фильтр повышения резкости. или сглаживающие фильтры или совместные фильтры. Хотя модуль 220 контурного фильтра показан на Фиг.2 как контурный фильтр, в других конфигурациях модуль 220 контурного фильтра может быть реализован как постконтурный фильтр. Отфильтрованный блок 221 также может упоминаться как фильтрованный восстановленный блок 221. Буфер 230 декодированных снимков может хранить восстановленные блоки кодирования после того, как модуль 220 контурного фильтра выполнит операции фильтрации на восстановленных блоках кодирования.
Модуль 220 контурного фильтра (или сокращенно «контурный фильтр» 220) выполнен с возможностью фильтрации восстановленного блока 215 для получения фильтрованного блока 221 или, в общем, для фильтрации восстановленных дискретных отсчетов для получения отфильтрованных значений дискретных отсчетов. Блок контурного фильтра, например, выполнен с возможностью сглаживания переходов пикселей или иного улучшения качества видео. Модуль 220 контурного фильтра может содержать один или более контурных фильтров, таких как фильтр устранения блочности, фильтр с адаптивным смещением дискретных отсчетов (SAO) или один или более других фильтров, например адаптивный контурный фильтр (ALF), фильтр подавления шума (NSF) или любое их сочетание. В одном примере модуль 220 контурного фильтра может содержать фильтр устранения блочности, фильтр SAO и фильтр ALF. Порядок процесса фильтрации может быть фильтром удаления блочности, SAO и ALF. В другом примере добавляется процесс, называемый отображением яркости с масштабированием цветности (LMCS) (а именно, адаптивным внутриконтурным преобразователем). Этот процесс выполняется перед расформированием блоков. В другом примере процесс фильтрации расформирования блоков может также применяться к внутренним краям подблока, например краям аффинных подблоков, краям подблоков ATMVP, краям преобразования подблоков (SBT) и краям внутри подблока (ISP). Хотя модуль 220 контурного фильтра показан на Фиг.2 как контурный фильтр, в других конфигурациях модуль 220 контурного фильтра может быть реализован как постконтурный фильтр. Отфильтрованный блок 221 также может упоминаться как фильтрованный восстановленный блок 221.
Варианты осуществления видеокодера 20 (соответственно модуль 220 контурного фильтра) могут быть выполнены с возможностью вывода параметров контурного фильтра (таких как параметры фильтра SAO или параметры фильтра ALF или параметры LMCS), например, напрямую или кодированные с помощью модуля 270 энтропийного кодирования, так что, например, декодер 30 может принимать и применять одни и те же параметры контурного фильтра или соответствующие контурные фильтры для декодирования.
Варианты осуществления кодера 20 (соответственно модуль 220 контурного фильтра) могут быть выполнены с возможностью вывода параметров контурного фильтра (таких как информация об адаптивном смещении дискретных отсчетов), например, напрямую или энтропийно кодированных с помощью блока 270 энтропийного кодирования или любого другого блока энтропийного кодирования, так что, например, декодер 30 может принимать и применять одни и те же параметры контурного фильтра для декодирования.
Буфер 230 декодированных снимков (DPB) может быть памятью опорных снимков, в которой хранятся данные опорных снимков для использования при кодировании видеоданных видеокодером 20. DPB 230 может быть сформирован любым из множества запоминающих устройств, таких как динамическая память с произвольным доступом (DRAM), включая синхронную DRAM (SDRAM), магниторезистивную RAM (MRAM), резистивную RAM (RRAM) или другие типы запоминающих устройств. DPB 230 и буфер 216 могут быть предоставлены одним и тем же запоминающим устройством или отдельными запоминающими устройствами. В некотором примере буфер 230 декодированных снимков (DPB) выполнен с возможностью хранения отфильтрованного блока 221. Буфер 230 декодированных снимков может быть дополнительно выполнен с возможностью хранения других ранее отфильтрованных блоков, например, ранее восстановленных и отфильтрованных блоков 221, одного и того же текущего снимка или разных снимков, например, ранее восстановленных снимков, и может предоставлять полные ранее восстановленные, то есть декодированные, снимки (и соответствующие опорные блоки и дискретные отсчеты) и/или частично восстановленный текущий снимок (и соответствующие опорные блоки и дискретные отсчеты), например, для интер-предсказания. В некотором примере, если восстановленный блок 215 восстанавливается, но без внутриконтурной фильтрации, буфер декодированных снимков (DPB) 230 конфигурируется для хранения одного или более нефильтрованных восстановленных блоков 215 или, в общем, нефильтрованных восстановленных дискретных отсчетов, например, если восстановленный блок 215 не фильтруется блоком 220 контурного фильтра или любой другой дополнительно обработанной версией восстановленных блоков или дискретных отсчетов.
Модуль 260 обработки предсказания, также называемый блоком 260 обработки предсказания блока, выполнен с возможностью приема или получения блока 203 (текущий блок 203 текущего снимка 201) и данных восстановленного снимка, например опорных дискретных отсчетов того же (текущего) снимка из буфера 216 и/или данные 231 опорных снимков из одного или множеств ранее декодированных снимков из буфера 230 декодированных снимков, и обрабатывать эти данные для предсказания, то есть, чтобы обеспечить блок 265 предсказания, который может быть блоком 245 интер-предсказания или модуль 255 интра-предсказания.
Модуль 262 выбора режима может быть выполнен с возможностью выбора режима предсказания (например, режима внутреннего или интер-предсказания) и/или соответствующего блока 245 или 255 предсказания, который будет использоваться в качестве блока 265 предсказания для вычисления остаточного блока 205 и для реконструкции восстановленного блока 215.
Варианты осуществления блока 262 выбора режима могут быть выполнены с возможностью выбора режима предсказания (например, из тех, которые поддерживаются блоком 260 обработки предсказания), который обеспечивает наилучшее совпадение или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения) или минимальные издержки на сигнализацию (минимальные издержки на сигнализацию означают лучшее сжатие для передачи или хранения), или которая учитывает или уравновешивает и то, и другое. Модуль 262 выбора режима может быть выполнен с возможностью определения режима предсказания на основе оптимизации искажения скорости (RDO), то есть выбора режима предсказания, который обеспечивает оптимизацию искажения с минимальной скоростью или которое связанное искажение скорости по меньшей мере удовлетворяет критерию выбора режима предсказания.
Далее обработка предсказания (например, модуль 260 обработки предсказания и выбор режима (например, блоком 262 выбора режима), выполняемые примерным кодером 20, будут объяснены более подробно.
В дополнение или альтернативно вышеупомянутым вариантам осуществления в других вариантах осуществления согласно Фиг.17, модуль 260 выбора режима содержит модуль 262 разбиения, модуль 244 интер-предсказания и модуль 254 интра-предсказания и выполнен с возможностью приема или получения данных исходного снимка, например исходного блока 203 (текущий блок 203 текущего снимка 17), и данные восстановленного снимка, например отфильтрованные и/или нефильтрованные восстановленные дискретные отсчеты или блоки одного и того же (текущего) снимка и/или из одного или множества ранее декодированных снимков, например, из буфера 230 декодированных снимков или других буферов (например, строкового буфера, не показано). Данные восстановленного снимка используются в качестве данных опорного снимка для предсказания, например интер-предсказания или интра-предсказания, чтобы получить блок 265 предсказания или предиктор 265.
Модуль 260 выбора режима может быть выполнен с возможностью определения или выбора разбиения для текущего режима предсказания блока (включая отсутствие разбиения) и режима предсказания (например, режима внутреннего или интер-предсказания) и генерации соответствующего блока 265 предсказания, который используется для вычисления остаточного блока 205 и для восстановления восстановленного блока 215.
Варианты осуществления модуля 260 выбора режима могут быть выполнены с возможностью выбора разбиения и режима предсказания (например, из тех, которые поддерживаются или доступны для модуля 260 выбора режима), которые обеспечивают наилучшее совпадение или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения), или минимальные издержки на сигнализацию (минимальные издержки на сигнализацию означают лучшее сжатие для передачи или хранения), или который учитывает или балансирует оба. Модуль 260 выбора режима может быть выполнен с возможностью определения режима разбиения и предсказания на основе оптимизации искажения скорости (RDO), то есть выбора режима предсказания, который обеспечивает минимальное искажение скорости. Такие термины, как «лучший», «минимум», «оптимальный» и т.д. В этом контексте не обязательно относятся к общему «лучшему», «минимуму», «оптимальному» и т.д., Но также могут относиться к выполнению прекращения или критерий выбора, такой как значение, превышающее или падающее ниже порогового значения, или другие характеристик, потенциально ведущие к «неоптимальному выбору», но уменьшающие сложность и время обработки.
Другими словами, модуль 262 разбиения может быть выполнен с возможностью разбиения снимка из видеопоследовательности на последовательность единиц дерева кодирования (CTU), а CTU 203 может быть дополнительно разделен на более мелкие блочные разделы или подблоки (которые снова образуют блоков), например, итеративно с использованием разбиения на квадранты (QT), двоичного разбиения (BT) или разбиения на троичное дерево (TT) или любого их сочетания, и для выполнения, например, предсказания для каждого из разбиений блока или подблоков, при этом выбор режима включает в себя выбор древовидной структуры разделенного блока 203, и режимы предсказания применяются к каждому из разбиений или подблоков блока.
Далее более подробно поясняется разбиение (например, посредством модуля 260 разбиения) и обработка предсказания (посредством модуля 244 интер-предсказания и модуля 254 интра-предсказания), выполняемые примерным видеокодером 20.
РАЗБИЕНИЕ
Модуль 262 разбиения может быть выполнен с возможностью разбиения снимка из видеопоследовательности на последовательность единиц дерева кодирования (CTU), а модуль 262 разбиения может разбивать (или разделять) блок 203 дерева кодирования (CTU) на меньшие разделы, например блоки меньшего размера квадратного или прямоугольного размера. Для снимка, который имеет три массива дискретных отсчетов, CTU состоит из блока N × N дискретных отсчетов яркости вместе с двумя соответствующими блоками дискретных отсчетов цветности. Максимально допустимый размер блока яркости в CTU определен равным 128 × 128 в развивающемся универсальном кодировании видео (VVC), но в будущем может быть указано значение, а не 128×128, например 256×256. CTU снимка могут быть кластеризованы/сгруппированы как сегменты/группы клеток, клетки или блоки. Клетка покрывает прямоугольную область снимка, и она может быть разделена на один или более фрагментов. Фрагмент состоит из некоторого количества рядов CTU внутри клетки. Клетку, не разделенную на несколько фрагментов, можно назвать фрагментом. Однако фрагмент - это истинное подмножество клетки и не называется клеткой. В VVC поддерживаются два режима групп клеток, а именно режим растрового сканирования сегмента/группы клеток и режим прямоугольного сегмента. В режиме растровым сканированием группы клеток группа клеток/сегмент содержит последовательность клеток при поклеточном растровом сканировании снимка. В режиме прямоугольного сегмента сегмент содержит несколько фрагментов снимка, которые вместе образуют прямоугольную область снимка. Фрагменты внутри прямоугольного сегмента находятся в порядке растрового сканирования сегмента. Эти меньшие блоки (которые также могут называться подблоками) могут быть дополнительно разделены на еще меньшие разделы. Это также относится к разбиению дерева или иерархическому разбиению дерева, в котором корневой блок, например, на уровне корневого дерева 0 (уровень иерархии 0, глубина 0), может быть рекурсивно разделен, например разделен на два или более блока следующий более низкий уровень дерева, например узлы на уровне дерева 1 (уровень иерархии 1, глубина 1), при этом эти блоки могут быть снова разделены на два или более блоков следующего более низкого уровня, например, уровень дерева 2 (уровень иерархии 2, глубина 2) и т.д. До тех пор, пока разбиение не будет завершено, например, потому что критерий завершения выполняется, например, достигнута максимальная глубина дерева или минимальный размер блока. Блоки, которые не разделяются далее, также называются концевыми блоками или концевыми узлами дерева. Дерево, использующее разбиение на два разбиения, называется двоичным деревом (BT), дерево, использующее разбиение на три разбиения, называется тройным деревом (TT), а дерево, использующее разбиение на четыре разбиения, называется деревом квадрантов (QT).
Например, единица дерева кодирования (CTU) может быть или содержать CTB дискретных отсчетов яркости, два соответствующих CTB дискретных отсчетов цветности снимка, которое имеет три массива дискретных отсчетов, или CTB дискретных отсчетов монохромного снимка или снимка, которое кодируется. с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования дискретных отсчетов. Соответственно, блок дерева кодирования (CTB) может быть блоком NxN дискретных отсчетов для некоторого значения N, так что разбиение компонента на CTB является разбиением. Единица кодирования (CU) может быть или содержать блок кодирования дискретных отсчетов яркости, два соответствующих блока кодирования дискретных отсчетов цветности снимка, которое имеет три массива дискретных отсчетов, или блок кодирования дискретных отсчетов монохромного снимка или снимка, который кодируется с использованием трех отдельных цветовых плоскости и синтаксические структуры, используемые для кодирования дискретных отсчетов. Соответственно, блок кодирования (CB) может быть блоком MxN дискретных отсчетов для некоторых значений M и N, так что разбиение CTB на блоки кодирования является разбиением.
В вариантах осуществления, например, согласно HEVC, единица дерева кодирования (CTU) может быть разделена на CU с использованием структуры дерева квадрантов, обозначенной как дерево кодирования. Решение о том, кодировать ли область снимка с использованием межснимочного (интер) (временного) или внутриснимочного (интра) (пространственного) предсказания, принимается на уровне конечных CU. Каждый концевой CU может быть дополнительно разделен на один, два или четыре PU в соответствии с типом разбиения PU. Внутри одного PU применяется один и тот же процесс предсказания, и соответствующая информация передается в декодер на основе PU. После получения остаточного блока посредством применения процесса предсказания на основе типа разбиения PU, концевой CU может быть разделен на блоки преобразования (TU) в соответствии с другой структурой дерева квадрантов, аналогичной дереву кодирования для CU.
В вариантах осуществления, например, в соответствии с последним разрабатываемым в настоящее время стандартом кодирования видео, который называется универсальным кодированием видео (VVC), объединенное дерево квадратов с вложенным множеством типов, использующее двоичное и троичное разбиение, структура сегментации, например, используемая для разбиения блок дерева кодирования. В структуре дерева кодирования внутри единицы дерева кодирования CU может иметь квадратную или прямоугольную форму. Например, единица дерева кодирования (CTU) сначала разделяется четвертичным деревом. Затем концевые узлы дерева квадрантов могут быть дополнительно разделены с помощью многотипной древовидной структуры. Существует четыре типа разбиения в многотипной древовидной структуре: вертикальное двоичное разбиение (SPLIT_BT_VER), горизонтальное двоичное разбиение (SPLIT_BT_HOR), вертикальное троичное разбиение (SPLIT_TT_VER) и горизонтальное троичное разбиение (SPLIT_TT_HOR). Концевые узлы многотипного дерева называются единицами кодирования (CU), и, если CU не слишком велик для максимальной длины преобразования, эта сегментация используется для предсказания и обработки преобразования без какого-либо дальнейшего разбиения. Это означает, что в большинстве случаев CU, PU и TU имеют одинаковый размер блока в дереве квадрантов с вложенной структурой блока кодирования многотипного дерева. Исключение возникает, когда максимальная поддерживаемая длина преобразования меньше, чем ширина или высота цветового компонента CU. VVC разрабатывает уникальный механизм сигнализации информации о разбиении разделов в дереве квадрантов с вложенной древовидной структурой кодирования с множеством типов. В механизме сигнализации единица дерева кодирования (CTU) рассматривается как корень дерева квадрантов и сначала разделяется структурой дерева квадрантов. Каждый концевой узел дерева квадрантов (если он достаточно большой, чтобы его можно было использовать) затем разбивается на части с помощью многотипной древовидной структуры. В многотипной древовидной структуре первый флаг (mtt_split_cu_flag) сигнализируется, чтобы указать, разделен ли узел дальше; когда узел дополнительно разбивается на разделы, второй флаг (mtt_split_cu_vertical_flag) сигнализируется, чтобы указать направление разбиения, а затем сигнализируется третий флаг (mtt_split_cu_binary_flag), чтобы указать, является ли разбиение двоичным или троичным. На основе значений mtt_split_cu_vertical_flag и mtt_split_cu_binary_flag, режим разрезания многотипного дерева (MttSplitMode) CU может быть получен декодером на основе предопределенного правила или таблицы. Следует отметить, что для определенного дизайна, например, для конвейерной обработки блока яркости 64 × 64 и конвейерной обработки цветности 32 × 32 в аппаратных декодерах VVC, разбиение TT запрещено, когда ширина или высота блока кодирования яркости больше 64, так как показано на рисунке 6. Разбиение TT также запрещено, если ширина или высота блока кодирования цветности больше 32. Конструкция конвейерной обработки делит снимок на блоки данных виртуального конвейера (VPDU), которые определены как неперекрывающиеся блоки в снимке. В аппаратных декодерах последовательные блоки VPDU обрабатываются несколькими этапами конвейера одновременно. Размер VPDU примерно пропорционален размеру буфера на большинстве этапов конвейера, поэтому важно, чтобы размер VPDU был небольшим. В большинстве аппаратных декодеров размер VPDU может быть установлен равным максимальному размеру блока преобразования (ТБ). Однако в VVC разбиение троичного дерева (TT) и двоичного дерева (BT) может привести к увеличению размера VPDU.
Кроме того, следует отметить, что, когда часть блока узла дерева превышает нижнюю или правую границу снимка, блок узла дерева принудительно разделяется до тех пор, пока все дискретные отсчеты каждой кодированной CU не окажутся внутри границ снимка.
В качестве примера инструмент интра-подразбиений (Intra Sub-Partitions (ISP)) может разделять блоки яркости с внутренним предсказанием по вертикали или горизонтали на 2 или 4 подразбиения в зависимости от размера блока.
В одном примере модуль 260 выбора режима видеокодера 20 может быть выполнен с возможностью выполнения любого сочетания способов разбиения, описанных в данном документе.
Как описано выше, кодер 20 выполнен с возможностью определения или выбора наилучшего или оптимального режима предсказания из набора (заранее определенных) режимов предсказания. Набор режимов предсказания может содержать, например, режимы интра-предсказания и/или режимы интер-предсказания.
Набор режимов интра-предсказания может содержать 35 различных режимов интра-предсказания, например ненаправленные режимы, такие как режим постоянного (или среднего) и планарный режим, или направленные режимы, например, как определено в H.265, или может содержать 67 различных режимов интра-предсказания, например, ненаправленные режимы, такие как режим постоянного тока (или среднего) и планарный режим, или направленные режимы, например, как определено для VVC. В качестве примера, несколько обычных режимов углового интра-предсказания адаптивно заменяются режимами широкоугольного интра-предсказания для неквадратных блоков, например, как определено в VVC. В качестве другого примера, чтобы избежать операций деления для предсказания DC, только длинная сторона используется для вычисления среднего для неквадратных блоков. И результаты интра-предсказания планарного режима могут быть дополнительно модифицированы с помощью способа объединения позиционно-зависимого интра-предсказания (PDPC).
Модуль 254 интра-предсказания выполнен с возможностью использования восстановленных дискретных отсчетов соседних блоков одного и того же текущего снимка для генерации блока 265 интра-предсказания согласно режиму интра-предсказания набора режимов интра-предсказания.
Модуль 254 интра-предсказания (или, в общем, модуль 260 выбора режима) дополнительно выполнен с возможностью вывода параметров интра-предсказания (или, в общем, информации, указывающей выбранный режим интра-предсказания для блока) в модуль 270 энтропийного кодирования в форме синтаксиса элементы 266 для включения в данные 21 кодированного снимка, чтобы, например, видеодекодер 30 мог принимать и использовать параметры предсказания для декодирования.
Набор (или возможно) режимы интер-предсказания зависит от доступных опорных снимков (т.е. предыдущим, по меньшей мере, частично декодированных снимков, например, хранится в DBP 230) и других параметрах интер-предсказания, например, используется ли весь опорный снимок или только часть, например, область поиска окна вокруг области текущего блока, опорного снимка для поиска наилучшего соответствия опорного блока, и/или, например, применяются ли интерполяции пикселей, например, половина/полу-пиксель, четверть пикселя и/или интерполяция 1/16 пикселя, или нет.
В дополнение к вышеупомянутым режимам предсказания может применяться режим пропуска, прямой режим и/или другой режим интер-предсказания.
Например, при расширенном предсказании с объединением список потенциально подходящих вариантов на объединение для такого режима создается посредством включения следующих пяти типов потенциально подходящих вариантов по порядку: Пространственный MVP из пространственных соседних CU, Temporal MVP из совместно размещенных CU, MVP на основе истории из таблицы FIFO, попарный средний MVP и нулевые MV. И уточнение вектора движения на стороне декодера (DMVR) на основе двустороннего согласования может применяться для повышения точности MV режима объединения. Режим объединения с MVD (MMVD), который происходит из режима объединения с разностями векторов движения. Флаг MMVD сигнализируется сразу после отправки флага пропуска и флага объединения, чтобы указать, используется ли режим MMVD для CU. И может применяться схема адаптивного разрешения вектора движения (AMVR) на уровне CU. AMVR позволяет кодировать MVD У CU с разной точностью. В зависимости от режима предсказания для текущего CU, MVD текущего CU могут выбираться адаптивно. Когда CU кодируется в режиме объединения, объединенный режим интер-/интра-предсказания (CIIP) может применяться к текущему CU. Для получения предсказания CIIP выполняется взвешенное усреднение сигналов внутреннего и интра-предсказания. Предсказание с компенсацией аффинного движения, поле аффинного движения блока описывается информацией о движении двух контрольных точек (4 параметра) или трех векторов движения контрольных точек (6 параметров). Предсказание временного вектора движения на основе подблоков (SbTMVP), которое аналогично предсказанию временного вектора движения (TMVP) в HEVC, но предсказывает векторы движения суб-CU в текущем CU. Двунаправленный оптический поток (BDOF), ранее называвшийся BIO, является более простой версией, требующей гораздо меньших вычислений, особенно с точки зрения количества умножений и размера умножителя. Режим треугольного разбиения, в таком режиме CU делится равномерно на два треугольных разбиения с использованием либо диагонального разбиения, либо антидиагонального разбиения. Кроме того, режим двойного предсказания выходит за рамки простого усреднения, чтобы обеспечить взвешенное усреднение двух сигналов предсказания.
В дополнение к вышеупомянутым режимам предсказания могут применяться режим пропуска и/или прямой режим.
Модуль 260 обработки предсказания может быть дополнительно выполнен с возможностью разбиения блока 203 на более мелкие части или подблоки, например, итеративно с использованием квадратичного разбиения (QT), двоичного разбиения (BT) или троичного разбиения на разделы (TT) или любое их сочетание, и выполнять, например, предсказание для каждого из разбиений блока или подблоков, при этом выбор режима включает в себя выбор древовидной структуры разделенного блока 203 и режимов предсказания, применяемых к каждому из разбиений блока. или подблоки.
Модуль 244 интер-предсказания может включать в себя модуль оценки движения (ME) (не показан на фиг.2) и модуль компенсации движения (MC) (не показан на фиг.2). Модуль оценки движения выполнен с возможностью приема или получения блока 203 снимка (блока 203 текущего снимка текущего снимка 201) и декодированного снимка 231, или, по меньшей мере, одного или множества ранее восстановленных блоков, например, восстановленных блоков одного или более множество других/различных ранее декодированных снимков 231 для оценки движения. Например, видеопоследовательность может содержать текущий снимок и ранее декодированные снимки 231, или, другими словами, текущий снимок и ранее декодированные снимки 231 могут быть частью или формировать последовательность снимков, образующих видеопоследовательность.
Кодер 20 может, например, быть выполнен с возможностью выбора опорного блока из множества опорных блоков одинаковых или различных снимков из множества других снимков и обеспечивает опорный снимок (или индекс опорного снимка, ...) и/или смещение (пространственное смещение) между положением (X, Y) координатами опорного блока и положением текущего блока в качестве взаимосвязанных параметров предсказания в модуль оценки движения (не показано на фиг.2). Это смещение также называется вектором движения (MV).
Модуль компенсации движения выполнен с возможностью получения, например, приема параметра интер-предсказания и выполнения интер-предсказания на основе или с использованием параметра интер-предсказания для получения блока 265 интер-предсказания. Компенсация движения, выполняемая блоком компенсации движения (не показанным на фиг.2), может включать в себя выборку или генерацию блока предсказания на основе вектора движения/блока, определенного посредством оценки движения, возможно выполнение интерполяции до субпиксельной точности. Интерполяционная фильтрация может генерировать дополнительные дискретные отсчеты пикселей, таким образом потенциально увеличивая количество блоков предсказания потенциально подходящих вариантов, которые могут использоваться для кодирования блока снимка. После приема вектора движения для PU текущего блока снимка модуль компенсации движения может найти блок предсказания, на который указывает вектор движения, в одном из списков опорных снимков. Модуль компенсации движения также может генерировать элементы синтаксиса, связанные с блоками и видеосегментом, для использования видеодекодером 30 при декодировании блоков  снимка видеосегмента.
определенных)
Модуль 254 интра-предсказания выполнен с возможностью получения, например, приема блока 203 снимка (текущего блока снимка) и одного или множества ранее восстановленных блоков, например восстановленных соседних блоков, одного и того же снимка для внутренней оценки. Кодер 20 может, например, быть выполнен с возможностью выбора режима интра-предсказания из множества (заранее режимов интра-предсказания.
Варианты осуществления кодера 20 могут быть выполнены с возможностью выбора режима интра-предсказания на основе критерия оптимизации, например минимального остатка (например, режим интра-предсказания, обеспечивающий модуль 255 предсказания, наиболее похожий на текущий блок 203 снимка) или искажение с минимальной скоростью.
Модуль 254 интра-предсказания дополнительно выполнен с возможностью определения на основе параметра интра-предсказания, например, выбранного режима интра-предсказания, блока 255 интра-предсказания. В любом случае, после выбора режима интра-предсказания для блока, модуль 254 интра-предсказания также выполнен с возможностью предоставления параметра интра-предсказания, то есть информации, указывающей выбранный режим интра-предсказания для блока, в модуль 270 энтропийного кодирования. В одном примере модуль 254 интра-предсказания может быть выполнен с возможностью выполнения любого сочетания способов интра-предсказания, описанных ниже.
Модуль 270 энтропийного кодирования выполнен с возможностью применения алгоритма или схемы энтропийного кодирования (например, схемы кодирования с переменной длиной (VLC), контекстно-адаптивной схемы VLC (CALVC), схемы арифметического кодирования, контекстно-адаптивного двоичного арифметического кодирования (CABAC), основанное на синтаксисе контекстно-адаптивное двоичное арифметическое кодирование (SBAC), энтропийное кодирование с интервалом вероятности (PIPE) или другая методология или метод энтропийного кодирования) квантованных остаточных коэффициентов 209, параметров интер-предсказания, параметра интра-предсказания и/или параметров контурного фильтра, индивидуально или совместно (или не совсем) для получения данных 21 кодированного снимка, которые могут быть выведены выводом 272, например, в форме кодированного битового потока 21. Кодированный битовый поток 21 может быть передан на видеодекодер 30 или заархивирован для последующей передачи или поиска видеодекодером 30. Модуль 270 энтропийного кодирования может быть дополнительно выполнен с возможностью энтропийного кодирования других элементов синтаксиса для текущего кодируемого фрагмента видео.
Другие структурные вариации видеокодера 20 могут использоваться для кодирования видеопотока. Например, кодер 20, не основанный на преобразовании, может квантовать остаточный сигнал напрямую без блока 206 обработки преобразования для определенных блоков или кадров. В другой реализации кодер 20 может иметь модуль 208 квантования и модуль 210 обратного квантования, объединенные в единый блок.
Фиг.3 показывает примерный видеодекодер 30, который выполнен с возможностью реализации методик настоящей заявки. Видеодекодер 30 выполнен с возможностью приема данных кодированного снимка (например, кодированного битового потока) 21, например, кодированных кодером 100, для получения декодированного снимка 131. Во время процесса декодирования видеодекодер 30 принимает видеоданные, например кодированный битовый видеопоток данных, который представляет блоки снимка кодированного фрагмента видео и связанные элементы синтаксиса, от видеокодера 100.
В примере на Фиг.3, декодер 30 содержит модуль 304 энтропийного декодирования, модуль 310 обратного квантования, модуль 312 обработки обратного преобразования, модуль 314 восстановления (например, сумматор 314), буфер 316, контурный фильтр 320, буфер 330 декодированных снимков и модуль 360 обработки предсказания. Модуль 360 обработки предсказания может включать в себя модуль 344 интер-предсказания, модуль 354 интра-предсказания и модуль 362 выбора режима. Видеодекодер 30 может, в некоторых примерах, выполнять этап декодирования, в целом обратный этапу кодирования, описанному в отношении видеокодера 100 на Фиг.2.
Как пояснялось в отношении кодера 20, модуля 210 обратного квантования, модуля 212 обработки обратного преобразования, модуля 214 восстановления, контурного фильтра 220, буфера 230 декодированных снимков (DPB), модуля 344 интер-предсказания и модуль 354 интра-предсказания также называется формированием «встроенного декодера» видеокодера 20. Соответственно, модуль 310 обратного квантования может быть идентичен по функциям модулю 110 обратного квантования, модуль 312 обработки обратного преобразования может быть идентичен по функциям модулю 212 обработки обратного преобразования, модуль 314 восстановления может быть идентичен по функциям модулю 214 восстановления, контурный фильтр 320 может быть идентичен по функциям контурному фильтру 220, и буфер 330 декодированных снимков может быть идентичен по функции буферу 230 декодированных снимков. Следовательно, пояснения, предоставленные для соответствующих модулей и функций видеокодера 20, применяются соответственно к соответствующим модулям и функциям видеодекодера 30.
Модуль 304 энтропийного декодирования выполнен с возможностью выполнения энтропийного декодирования данных 21 кодированного снимка для получения, например, квантованных коэффициентов 309 и/или декодированных параметров кодирования (не показаны на фиг.3), например (декодированных) любого или всех параметров интер-предсказания, параметр интра-предсказания, параметры контурного фильтра и/или другие элементы синтаксиса. Модуль 304 энтропийного декодирования дополнительно выполнен с возможностью пересылки параметров интер-предсказания, параметра интра-предсказания и/или других элементов синтаксиса в модуль 360 обработки предсказания. Видеодекодер 30 может принимать элементы синтаксиса на уровне видеосегмента и/или уровне видеоблока.
Модуль 304 энтропийного декодирования выполнен с возможностью синтаксического анализа битового потока 21 (или, в общем, данных 21 кодированного снимка) и выполнения, например, энтропийного декодирования для данных 21 кодированного снимка, чтобы получить, например, квантованные коэффициенты 309 и/или параметры декодированного кодирования (не показаны на Фиг.3), например, любые или все из параметров интер-предсказания (например, индекс опорного снимка и вектор движения), параметр интра-предсказания (например, индекс или режим интра-предсказания), параметры преобразования, параметры квантования, параметры контурного фильтра и/или другие элементы синтаксиса. Модуль 304 энтропийного декодирования может быть выполнен с возможностью применения алгоритмов или схем декодирования, соответствующих схемам кодирования, как описано в отношении модуля 270 энтропийного кодирования кодера 20. Модуль 304 энтропийного декодирования может быть дополнительно выполнен с возможностью предоставления параметров интер-предсказания, параметра интра-предсказания и/или других элементов синтаксиса модулю 360 применения режима и других параметров другим модулям декодера 30. Видеодекодер 30 может принимать элементы синтаксиса на уровне видеосегмента и/или уровне видеоблока. В дополнение или в качестве альтернативы сегментам и соответствующим синтаксическим элементам могут приниматься и/или использоваться группы клеток и/или клетки и соответствующие элементы синтаксиса.
Модуль 310 обратного квантования может быть идентичен по функциям модулю 110 обратного квантования, модуль 312 обработки обратного преобразования может быть идентичным по функциям модулю 112 обработки обратного преобразования, модуль 314 восстановления может быть идентичным модулю 114 восстановления по функциям, буфер 316 может быть идентичен по функциям буферу 116, контурный фильтр 320 может быть идентичен по функции контурному фильтру 120, и буфер 330 декодированных снимков может быть идентичен по функции буферу 130 декодированных снимков.
Варианты осуществления декодера 30 могут содержать блок разбиения (не показан на Фиг.3). В одном примере модуль 360 обработки предсказания видеодекодера 30 может быть выполнен с возможностью выполнения любого сочетания способов разбиения, описанных выше.
Модуль 360 обработки предсказания может содержать модуль 344 интер-предсказания и модуль 354 интра-предсказания, при этом модуль 344 интер-предсказания может напоминать модуль 144 интер-предсказания по функциям, а модуль 354 интра-предсказания может напоминать модуль 154 интра-предсказания по функциям. Модуль 360 обработки предсказания обычно конфигурируется для выполнения предсказания блока и/или получения блока 365 предсказания из кодированных данных 21, а также для приема или получения (явно или неявно) параметров, связанных с предсказанием, и/или информации о выбранном режиме предсказания, например, из модуля 304 энтропийного декодирования.
Когда видеосегмент кодируется как сегмент с интра-кодированием (I), модуль 354 интра-предсказания модуля 360 обработки предсказания конфигурируется для генерации блока 365 предсказания для блока снимка текущего видеосегмента на основе просигнализированного режима интра-предсказания и данных из ранее декодированные блоки текущего кадра или снимка. Когда видеокадр кодируется с интер-кодированием (то есть B или P) сегмент, модуль 344 интер-предсказания (например, модуль компенсации движения) блока 360 обработки предсказания конфигурируется для создания блоков 365 предсказания для видеоблока текущего видеосегмент на основе векторов движения и других элементов синтаксиса, полученных от модуля 304 энтропийного декодирования. Для интер-предсказания блоки предсказания могут быть созданы из одного из опорных снимков в одном из списков опорных снимков. Видеодекодер 30 может создавать списки опорных кадров, Список 0 и Список 1, используя методики построения по умолчанию на основе опорных снимков, хранящихся в DPB 330.
Модуль 360 обработки предсказания выполнен с возможностью определения информации предсказания для видеоблока текущего видеосегмента посредством анализа векторов движения и других элементов синтаксиса и использует информацию предсказания для создания блоков предсказания для текущего декодируемого видеоблока. Например, модуль 360 обработки предсказания использует некоторые из принятых элементов синтаксиса для определения режима предсказания (например, внутреннее или внешнее предсказание), используемого для кодирования видеоблоков видеосегмента, типа сегмента интер-предсказания (например, B-сегмент, P-сегмент или GPB-сегмент), информация о конструкции для одного или более списков опорных снимков для сегмента, векторы движения для каждого видеоблока с интер-кодированием сегмента, статус интер-предсказания для каждого видеоблока с интер-кодированием сегмента и другая информация для декодирования видеоблоков в текущем видеосегменте.
Модуль 310 обратного квантования выполнен с возможностью обратного квантования, то есть деквантования, квантованных коэффициентов преобразования, предоставленных в потоке битов и декодированных модулем 304 энтропийного декодирования. Процесс обратного квантования может включать в себя использование параметра квантования, вычисленного видеокодером 100 для каждого видеоблока в видеосегменте, для определения степени квантования и, аналогично, степени обратного квантования, которое должно быть применено.
Модуль 310 обратного квантования также может быть выполнен с возможностью приема параметров квантования (QP) (или, в общем, информации, относящейся к обратному квантованию) и квантованных коэффициентов из данных 21 кодированного снимка (например, посредством синтаксического анализа и/или декодирования, например, посредством модуля 304 энтропийного декодирования) и применять на основе параметров квантования обратное квантование к декодированным квантованным коэффициентам 309 для получения деквантованных коэффициентов 311, которые также могут называться коэффициентами 311 преобразования.
Модуль 312 обработки обратного преобразования выполнен с возможностью применения обратного преобразования, например, обратного DCT, обратного целочисленного преобразования или принципиально аналогичного процесса обратного преобразования, к коэффициентам преобразования, чтобы создавать остаточные блоки в области пикселей.
Модуль 312 обработки обратного преобразования также может быть выполнен с возможностью приема деквантованных коэффициентов 311, также называемых коэффициентами 311 преобразования, и для применения преобразования к деквантованным коэффициентам 311, чтобы получить восстановленные остаточные блоки 213 в области дискретных отсчетов. Восстановленные остаточные блоки 213 также могут упоминаться как блоки 313 преобразования. Преобразование может быть обратным преобразованием, например, обратным DCT, обратным DST, обратным целочисленным преобразованием или принципиально аналогичным процессом обратного преобразования. Модуль 312 обработки обратного преобразования может быть дополнительно выполнен с возможностью приема параметров преобразования или соответствующей информации из данных 21 кодированного снимка (например, посредством синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования), чтобы определять преобразование, которое должно применяться к деквантованным коэффициентам 311.
Модуль 314 восстановления (например, сумматор 314) выполнен с возможностью добавления блока 313 обратного преобразования (т.е. восстановленного остаточного блока 313) к блоку 365 предсказания, чтобы получить восстановленный блок 315 в области дискретных отсчетов, например, посредством добавления значений дискретных отсчетов восстановленных остаточный блок 313 и значения дискретных отсчетов блока 365 предсказания.
Модуль 320 контурного фильтра (либо в контуре кодирования, либо после контура кодирования) выполнен с возможностью фильтрации восстановленного блока 315 для получения отфильтрованного блока 321, например, для сглаживания переходов пикселей или иного улучшения качества видео. В одном примере модуль 320 контурного фильтра может быть выполнен с возможностью выполнения любого сочетания способов фильтрации, описанных ниже. Модуль 320 контурного фильтра предназначен для представления одного или более контурных фильтров, таких как фильтр устранения блочности, фильтр с адаптивным смещением дискретных отсчетов (SAO) или другие фильтры, например двусторонний фильтр или адаптивный контурный фильтр (ALF), или фильтр повышения резкости. или сглаживающие фильтры или совместные фильтры. Хотя модуль 320 контурного фильтра показан на Фиг.3 как контурный фильтр, в других конфигурациях модуль 320 контурного фильтра может быть реализован как постконтурный фильтр.
Модуль 320 контурного фильтра также может содержать один или более контурных фильтров, таких как фильтр устранения блочности, фильтр с адаптивным смещением дискретных отсчетов (SAO) или один или более других фильтров, например адаптивный контурный фильтр (ALF), фильтр подавления шума (NSF) или любое их сочетание. В одном примере модуль 220 контурного фильтра может содержать фильтр устранения блочности, фильтр SAO и фильтр ALF. Порядок процесса фильтрации может быть фильтром расформирования блоков, SAO и ALF. В другом примере добавляется процесс, называемый отображением яркости с масштабированием цветности (LMCS) (а именно, адаптивным внутриконтурным преобразователем). Этот процесс выполняется перед расформированием блоков. В другом примере процесс фильтрации расформирования блоков может также применяться к внутренним краям подблока, например краям аффинных подблоков, краям подблоков ATMVP, краям преобразования подблоков (SBT) и краям внутри подблока (ISP).
Декодированные видеоблоки 321 в данном кадре или снимке затем сохраняются в буфере 330 декодированных снимков, в котором хранятся опорные снимки, используемые для последующей компенсации движения.
Декодированные видеоблоки 321 снимка затем сохраняются в буфере 330 декодированных снимков, который сохраняет декодированные снимки 331 в качестве опорных снимков для последующей компенсации движения для других снимков и/или для вывода, соответственно, отображения.
Декодер 30 выполнен с возможностью вывода декодированного снимка 331, например, через вывод 332 для представления или просмотра пользователю.
Другие варианты видеодекодера 30 могут использоваться для декодирования сжатого битового потока. Например, декодер 30 может создавать выходной видеопоток без блока 320 контурной фильтрации. Например, декодер 30, не основанный на преобразовании, может выполнять обратное квантование остаточного сигнала напрямую без модуля 312 обработки обратного преобразования для определенных блоков или кадров. В другой реализации видеодекодер 30 может иметь модуль 310 обратного квантования и модуль 312 обработки обратного преобразования, объединенные в один модуль.
В дополнение или альтернативно вышеупомянутым вариантам осуществления в других вариантах осуществления согласно Фиг.18, модуль 344 интер-предсказания может быть идентичен модулю 244 интер-предсказания (в частности, модулю компенсации движения), а модуль 354 интра-предсказания может быть идентичен модулю 254 интер-предсказания по функциям и выполняет решения о разбиении или разбиении и предсказание на основе параметров разбиения и/или предсказания или соответствующей информации, полученной из данных 21 кодированного снимка (например, посредством синтаксического анализа и/или декодирования, например, посредством модуля 304 энтропийного декодирования). Модуль 360 применения режима может быть выполнен с возможностью выполнения предсказания (интра- или интер-предсказание) для каждого блока на основе восстановленных снимков, блоков или соответствующих дискретных отсчетов (фильтрованных или нефильтрованных) для получения блока 365 предсказания.
Когда видеосегмент кодируется как сегмент с интра-кодированием (I), модуль 354 интра-предсказания модуля 360 применения режима конфигурируется для генерации блока 365 предсказания для блока снимка текущего видеосегмента на основе сигнального режима интра-предсказания и данных из ранее декодированные блоки текущего снимка. Когда видеоиснимок кодируется с интер-кодированием (то есть B или P) сегмент, модуль 344 интер-предсказания (например, модуль компенсации движения) модуля 360 применения режима конфигурируется для создания блоков 365 предсказания для видеоблока текущего видео. сегмент на основе векторов движения и других элементов синтаксиса, полученных от модуля 304 энтропийного декодирования. Для интер-предсказания блоки предсказания могут быть созданы из одного из опорных снимков в одном из списков опорных снимков. Видеодекодер 30 может создавать списки опорных кадров, Список 0 и Список 1, используя методики построения по умолчанию на основе опорных снимков, хранящихся в DPB 330. То же самое или подобное может применяться для или посредством вариантов осуществления с использованием групп клеток (например, групп видеоклеток) и/или клеток (например, видеоклеток) в дополнение или альтернативно к сегментам (например, видеосегментам), например, видео может быть кодировано с использованием групп I, P или B клеток и/или клеток.
Модуль 360 применения режима выполнен с возможностью определения информации предсказания для видеоблока текущего видеосегмента посредством анализа векторов движения или связанной информации и других элементов синтаксиса, и использует информацию предсказания для создания блоков предсказания для текущего декодируемого видеоблока. Например, модуль 360 применения режима использует некоторые из принятых элементов синтаксиса для определения режима предсказания (например, внутреннее или внешнее предсказание), используемого для кодирования видеоблоков видеосегмента, типа сегмента интер-предсказания (например, B-сегмент, P-сегмент или GPB-сегмент), информация о конструкции для одного или более списков опорных снимков для сегмента, векторы движения для каждого видеоблока с интер-кодированием сегмента, статус интер-предсказания для каждого видеоблока с интер-кодированием сегмента и другие информация для декодирования видеоблоков в текущем видеосегменте. То же самое или подобное может применяться для вариантов осуществления или посредством вариантов осуществления с использованием групп клеток (например, групп видеоклеток) и/или клеток (например, видеоклеток) в дополнение или альтернативно к сегментам (например, видеосегментам), например, видео может быть кодировано с использованием групп I, P или B клеток и/или клеток.
Варианты осуществления видеодекодера 30, как показано на фиг.3, могут быть выполнены с возможностью разбиения и/или декодирования снимка с использованием сегментов (также называемых видео сегментами), при этом снимок может быть разделен на или декодировано с использованием одного или более сегментов (обычно без перекрытия), и каждый сегмент может содержать один или более блоков (например, CTU) или одну или более групп блоков (например, клетки (H.265/HEVC и VVC) или блоки (VVC)).
Варианты осуществления видеодекодера 30, как показано на фиг.3, могут быть выполнены с возможностью разбиения и/или декодирования снимка с использованием групп сегментов/клеток (также называемых группами клеток) и/или клеток (также называемых видеоклетками), при этом снимок может быть разделен на или декодировано с использованием одной или более групп сегментов/клеток (обычно не перекрывающихся), и каждая группа сегментов/клеток может содержать, например, один или более блоков (например, CTU) или одну или более клеток, при этом каждая клетка, например, может иметь прямоугольную форму и может содержать один или более блоков (например, CTU), например полные или дробные блоки.
Другие варианты видеодекодера 30 могут использоваться для декодирования данных 21 кодированного снимка. Например, декодер 30 может создавать выходной видеопоток без блока 320 контурной фильтрации. Например, декодер 30, не основанный на преобразовании, может выполнять обратное квантование остаточного сигнала напрямую без модуля 312 обработки обратного преобразования для определенных блоков или кадров. В другой реализации видеодекодер 30 может иметь модуль 310 обратного квантования и модуль 312 обработки обратного преобразования, объединенные в один модуль.
Следует понимать, что в кодере 20 и декодере 30 результат обработки текущего этапа может быть дополнительно обработан и затем выведен на следующий этап. Например, после интерполяционной фильтрации, вывода вектора движения или петлевой фильтрации может выполняться дополнительная операция, такая как обрезка или сдвиг, над результатом обработки интерполяционной фильтрации, вывода вектора движения или петлевой фильтрации.
Фиг.4 является схематической диаграммой устройства 400 видеокодирования согласно варианту осуществления раскрытия. Устройство 400 видеокодирования подходит для реализации раскрытых вариантов осуществления, как описано в данном документе. В варианте осуществления устройство 400 видеокодирования может быть декодером, таким как видеодекодер 30 с Фиг.1A или кодер, такой как видеокодер 20 с Фиг.1А. В варианте осуществления устройство 400 видеокодирования может быть одним или более компонентами видеодекодера 30 с Фиг.1A или видеокодер 20 с Фиг.1A, как описано выше.
Устройство 400 видеокодирования содержит входные порты 410 и модули 420 приемника (Rx) для приема данных; процессор, логический модуль или центральный процессор (CPU) 430 для обработки данных; модули 440 передатчика (Tx) и выходные порты 450 для передачи данных; и память 460 для хранения данных. Устройство 400 видеокодирования может также содержать оптико-электрические (OE) компоненты и электрическо-оптические (EO) компоненты, подключенные к входным портам 410, модулям 420 приемника, модулям 440 передатчика и выходным портам 450 для выход или попадание оптических или электрических сигналов.
Процессор 430 реализован аппаратно и программно. Процессор 430 может быть реализован как одна или более микросхем ЦП, ядер (например, как многоядерный процессор), FPGA, ASIC и DSP. Процессор 430 поддерживает связь с входными портами 410, модулями 420 приемника, модулями 440 передатчика, выходными портами 450 и памятью 460. Процессор 430 содержит модуль 470 кодирования. Модуль 470 кодирования реализует раскрытые варианты осуществления, описанные выше. Например, модуль 470 кодирования реализует, обрабатывает, подготавливает или предоставляет различные операции кодирования. Таким образом, разрешение модуля 470 кодирования обеспечивает существенное улучшение функциональных возможностей устройства 400 видеокодирования и обеспечивает преобразование устройства 400 видеокодирования в другое состояние. В качестве альтернативы модуль 470 кодирования реализован как инструкции, хранящиеся в памяти 460 и выполняемые процессором 430.
Память 460 содержит один или более дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных с переполнением, для хранения программ, когда такие программы выбраны для выполнения, и для хранения инструкций и данных, которые считываются. во время выполнения программы. Память 460 может быть энергозависимой и/или долговременной и может представлять собой постоянную память (ROM), оперативную память (RAM), троичную память с адресацией по содержимому (TCAM) и/или статическую память с произвольным доступом (SRAM).
Фиг.5 является упрощенной блок-схемой устройства 500, которое может использоваться как одно или оба из устройства-источника 310 и устройства-получателя 320 из Фиг.1 согласно примерному варианту осуществления. Устройство 500 может реализовывать методики данной настоящей заявки, описанные выше. Устройство 500 может быть в форме вычислительной системы, включающей несколько вычислительных устройств, или в форме одного вычислительного устройства, например мобильного телефона, планшетного компьютера, портативного компьютера, портативного компьютера, настольного компьютера, и тому подобное.
Процессор 502 в устройстве 500 может быть центральным процессором. В качестве альтернативы, процессор 502 может быть устройством любого другого типа или множеством устройств, способных манипулировать или обрабатывать информацию, существующую в настоящее время или разработанную в будущем. Хотя раскрытые реализации могут быть реализованы с одним процессором, как показано, например процессором 502, преимущества в скорости и эффективности могут быть достигнуты с использованием более чем одного процессора.
Память 504 в устройстве 500 может быть постоянным запоминающим устройством (ROM) или устройством оперативной памяти (RAM) в реализации. В качестве памяти 504 может использоваться любой другой подходящий тип запоминающего устройства. Память 504 может включать в себя код и данные 506, к которым обращается процессор 502, используя шину 512. Память 504 может дополнительно включать в себя операционную систему 508 и прикладные программы 510, прикладные программы 510 включают в себя по меньшей мере одну программу, которая позволяет процессору 502 выполнять описанные здесь способы. Например, прикладные программы 510 могут включать в себя приложения с 1 по N, которые дополнительно включают в себя приложение кодирования видео, которое выполняет описанные здесь методики. Устройство 500 также может включать в себя дополнительную память в виде вторичного запоминающего устройства 514, которое может, например, быть картой памяти, используемой с мобильным вычислительным устройством. Поскольку сеансы видеосвязи могут содержать значительный объем информации, они могут быть сохранены полностью или частично во вторичном хранилище 514 и загружены в память 504 по мере необходимости для обработки. Устройство 500 также может включать в себя одно или более устройств вывода, таких как дисплей 518. Дисплей 518 может быть, в одном примере, сенсорным дисплеем, который объединяет дисплей с сенсорным элементом, способным распознавать сенсорные вводы. Дисплей 518 может быть подключен к процессору 502 через шину 512.
Устройство 500 также может включать в себя одно или более устройств вывода, таких как дисплей 518. Дисплей 518 может быть, в одном примере, сенсорным дисплеем, который объединяет дисплей с сенсорным элементом, способным распознавать сенсорные вводы. Дисплей 518 может быть подключен к процессору 502 через шину 512. Другие устройства вывода, которые позволяют пользователю программировать или иным образом использовать устройство 500, могут быть предоставлены в дополнение к дисплею 518 или в качестве альтернативы ему. Когда устройство вывода представляет собой или включает в себя дисплей, отображение может быть реализовано различными способами, включая жидкокристаллический дисплей (LCD), дисплей с электронно-лучевой трубкой (ЭЛТ), плазменный дисплей или светодиодный дисплей, например, органический светодиодный (OLED) дисплей.
Устройство 500 также может включать в себя устройство 520 считывания изображений, например камеру, или любое другое устройство 520 считывания изображений, существующее в настоящее время или разработанное в дальнейшем, которое может воспринимать изображение, такое как изображение пользователя, управляющего устройством, или взаимодействовать с ним. Аппарат 500. Устройство 520 считывания изображения может быть расположено так, чтобы оно было направлено на пользователя, работающего с устройством 500. В одном примере положение и оптическая ось устройства 520 считывания изображений могут быть сконфигурированы так, что поле зрения включает в себя область, которая непосредственно примыкает к дисплею 518 и из которой дисплей 518 виден.
Устройство 500 также может включать в себя устройство 522 обнаружения звука, например микрофон, или любое другое устройство обнаружения звука, существующее в настоящее время или разработанное в дальнейшем, которое может воспринимать звуки рядом с устройством 500, или взаимодействовать с ним. Звуковое устройство 522 может быть расположено таким образом, чтобы оно было направлено на пользователя, работающего с устройством 500, и может быть выполнено с возможностью приема звуков, например речи или других звуков, издаваемых пользователем, когда пользователь управляет устройством 500.
Хотя Фиг.5 изображает процессор 502 и память 504 устройства 500 как интегрированные в единый блок, могут использоваться другие конфигурации. Операции процессора 502 могут быть распределены между несколькими машинами (каждая машина имеет один или более процессоров), которые могут быть связаны напрямую или через локальную область или другую сеть. Память 504 может быть распределена между несколькими машинами, такими как сетевая память или память на нескольких машинах, выполняющих операции устройства 500. Хотя здесь изображена как одна шина, шина 512 устройства 500 может состоять из нескольких шин. Кроме того, вторичное хранилище 514 может быть напрямую связано с другими компонентами устройства 500 или может быть доступно через сеть и может содержать один интегрированный блок, такой как карта памяти, или более блоков, например несколько карт памяти. Таким образом, устройство 500 может быть реализовано в широком разнообразии конфигураций.
Видеокодирование следующего поколения (NGVC) устраняет разбиение концепций CU, PU и TU и поддерживает большую гибкость для форм разбиения CU. Размер CU соответствует размеру узла кодирования и может иметь квадратную или неквадратную (например, прямоугольную) форму.
В дополнение или альтернативно, TU или PU также могут быть получены посредством деления CU.
В J. An et al., «Блочная структура разбиения для кодирования видео следующего поколения», Международный союз электросвязи, COM16-C966, сентябрь 2015 г. (далее «Предложение VCEG COM16-C966»), quad-tree-binary-tree (QTBT ) методики разбиения были предложены для будущего стандарта кодирования видео помимо HEVC. Моделирование показало, что предлагаемая структура QTBT более эффективна, чем структура дерева квадрантов в используемом HEVC. В HEVC внешнее предсказание для небольших блоков ограничено, чтобы уменьшить доступ к памяти для компенсации движения, а внешнее предсказание не поддерживается для блоков 4 × 4. В QTBT JEM эти ограничения сняты.
В QTBT CU может иметь квадратную или прямоугольную форму. Как показано на Фиг.6, единица дерева кодирования (CTU) сначала разделяется структурой дерева квадрантов. Концевые узлы дерева квадрантов могут быть дополнительно разделены структурой двоичного дерева. В двоичном дереве есть два типа расщепления: симметричное горизонтальное и симметричное вертикальное расщепление. В каждом случае узел разделяется посредством деления узла посередине по горизонтали или вертикали. Концевые узлы двоичного дерева называются единицами кодирования (CU), и эта сегментация используется для предсказания и обработки преобразования без какого-либо дальнейшего разбиения. Это означает, что CU, PU и TU имеют одинаковый размер блока в структуре блока кодирования QTBT. CU иногда состоит из блоков кодирования (CB) различных цветовых компонентов, например, один CU содержит один CB яркости и два CB цветности в случае P и B-сегментов формата цветности 4:2:0 и иногда состоит из CB из один компонент, например один CU, содержит только один CB яркости или только два CB сигнала цветности в случае I-сегментов.
Следующие параметры определены для схемы разбиения QTBT.
-- Размер CTU: размер корневого узла дерева квадрантов, та же концепция, что и в HEVC
-- MinQTSize: минимально допустимый размер концевого узла дерева квадрантов
-- MaxBTSize: максимально допустимый размер корневого узла двоичного дерева
-- MaxBTDepth: максимально допустимая глубина двоичного дерева
-- MinBTSize: минимально допустимый размер концевого узла двоичного дерева
В одном примере структуры разбиения QTBT, когда узел дерева квадрантов имеет размер, равный или меньший, чем MinQTSize, дальнейшее дерево квадрантов не рассматривается. Он не будет в дальнейшем разделен двоичным деревом, так как размер превышает MaxBTSize. В противном случае концевой узел дерева квадрантов может быть дополнительно разделен двоичным деревом. Следовательно, концевой узел дерева квадрантов также является корневым узлом для двоичного дерева, и его глубина двоичного дерева равна 0. Когда глубина двоичного дерева достигает MaxBTDepth (т.е. 4), дальнейшее разбиение не рассматривается. Когда ширина узла двоичного дерева равна MinBTSize (т.е. 4), дальнейшее горизонтальное разбиение не рассматривается. Точно так же, когда узел двоичного дерева имеет высоту, равную MinBTSize, дальнейшее вертикальное разбиение не рассматривается. Концевые узлы двоичного дерева дополнительно обрабатываются с помощью обработки предсказания и преобразования без какого-либо дальнейшего разбиения. В JEM максимальный размер CTU составляет 256 × 256 дискретных отсчетов яркости. Концевые узлы двоичного дерева (CU) могут быть дополнительно обработаны (например, посредством выполнения процесса предсказания и процесса преобразования) без какого-либо дальнейшего разбиения.
Фиг.6 иллюстрирует пример блока 30 (например, CTB), разделенного с использованием методик разбиения QTBT. Как показано на Фиг.6, используя методики разбиения QTBT, каждый из блоков разбивается симметрично по центру каждого блока. Фиг.7 иллюстрирует древовидную структуру, соответствующую блочному разбиению на Фиг.6. Сплошные линии на Фиг.7 обозначают разбиение дерева квадрантов, а пунктирные линии обозначают разбиение двоичного дерева. В одном примере в каждом узле разбиения (т.е. Не концевом) бинарного дерева элемент синтаксиса (например, флаг) сигнализируется, чтобы указать тип выполненного разбиения (например, горизонтальное или вертикальное), где 0 указывает горизонтальное разбиение, а 1 указывает вертикальное разбиение. Для разбиения дерева квадрантов нет необходимости указывать тип разбиения, так как при разбиении дерева квадрантов блок всегда разбивается по горизонтали и вертикали на 4 подблока одинакового размера.
Как показано на Фиг.7, в узле 50 блок 30 разделен на четыре блока 31, 32, 33 и 34, показанных на Фиг.6, используя разбиение QT. Блок 34 далее не разделяется и, следовательно, является концевым узлом. В узле 52 блок 31 дополнительно разделяется на два блока с использованием разбиения BT. Как показано на Фиг.7 узел 52 отмечен цифрой 1, что указывает на вертикальное разбиение. Таким образом, разбиение в узле 52 приводит к блоку 37 и блоку, включающему оба блока 35 и 36. Блоки 35 и 36 создаются дальнейшим вертикальным разбиением в узле 54. В узле 56 блок 32 дополнительно разделяется на два блока 38 и 39 с использованием разбиения BT.
В узле 58 блок 33 разделяется на 4 блока равного размера с использованием разбиения QT. Блоки 43 и 44 создаются из этого разбиения QT и далее не разделяются. В узле 60 верхний левый блок сначала разделяется с использованием вертикального разбиения двоичного дерева, в результате чего получается блок 40 и правый вертикальный блок. Затем правый вертикальный блок разделяется с использованием горизонтального разбиения двоичного дерева на блоки 41 и 42. Нижний правый блок, созданный в результате разбиения дерева квадрантов в узле 58, разбивается в узле 62 с использованием горизонтального разбиения двоичного дерева на блоки 45 и 46. Как показано на Фиг.7 узел 62 помечен 0, что указывает на горизонтальное разбиение.
В дополнение к QTBT, для переопределения BT в структурах CU на основе QTBT предлагается структура разбиения блока под названием многотипное дерево (multi-type-tree (MTT)), что означает, что CTU может быть разделен с помощью разбиения QT сначала для получения блока CTU, а затем во-вторых, блок может быть разделен с помощью MTT-разбиения.
Структура разбиения MTT по-прежнему представляет собой рекурсивную древовидную структуру. В MTT используется несколько различных структур разбиений (например, две или более). Например, согласно методикам MTT, две или более различных структур разбиений могут использоваться для каждого соответствующего неконцевого узла древовидной структуры на каждой глубине древовидной структуры. Глубина узла в древовидной структуре может относиться к длине пути (например, количеству разбиений) от узла до корня древовидной структуры.
В MTT существует два типа разбиений: разбиение BT и разбиение на основе троичного дерева (TT). Тип разбиения может быть выбран из разбиений BT и TT. Структура разбиений TT отличается от структур QT или BT тем, что структура разбиений TT не разбивает блок по центру. Центральная часть блока остается в одном подблоке. В отличие от QT, который создает четыре блока, или двоичного дерева, которое создает два блока, разбиение в соответствии со структурой разбиения TT дает три блока. Примеры типов разбиений в соответствии со структурой разбиений TT включают симметричные типы разбиений (как горизонтальные, так и вертикальные), а также асимметричные типы разбиений (как горизонтальные, так и вертикальные). Кроме того, типы симметричных разбиений согласно структуре разбиений TT могут быть неравномерными/неоднородными или даже/однородными. Типы асимметричных перегородок в соответствии со структурой перегородок ТТ бывают неравномерными/неоднородными. В одном примере структура разбиения TT может включать в себя, по меньшей мере, один из следующих типов разбиений: горизонтальное четное/однородное симметричное троичное дерево, вертикальное четное/однородное симметричное троичное дерево, горизонтальное нечетное/неоднородное симметричное троичное дерево, вертикальное неравномерное Типы разбиений/неоднородное симметричное троичное дерево, горизонтальное неравномерное/неоднородное асимметричное троичное дерево или вертикальное неравномерное/неоднородное асимметричное троичное дерево.
В общем, неровный/неоднородный симметричный тип разбиения троичного дерева - это тип разбиения, который симметричен относительно центральной линии блока, но где по меньшей мере один из трех результирующих блоков не того же размера, что и два других. Один предпочтительный пример - это когда боковые блоки составляют 1⁄4 размера блока, а центральный блок - 1⁄2 размера блока. Четный/равномерный симметричный тип разбиения троичного дерева - это тип разбиения, который симметричен относительно центральной линии блока, и все результирующие блоки имеют одинаковый размер. Такое разбиение возможно, если высота или ширина блока, в зависимости от вертикального или горизонтального разбиения, кратны 3. Неровный/неоднородный асимметричный тип разбиения троичного дерева - это тип разбиения, который не является симметричным относительно центральной линии блока, и где по меньшей мере один из результирующих блоков не такого же размера, как два других.
Фиг.8 - принципиальная диаграмма, иллюстрирующая необязательные примеры типов горизонтальных разбиений троичного дерева. Фиг.9 - принципиальная диаграмма, иллюстрирующая необязательные примеры типов вертикальных разбиений троичного дерева. На обоих Фиг.8 и Фиг.9, h представляет высоту блока в дискретных отсчетах яркости или цветности, а w представляет ширину блока в дискретных отсчетах яркости или цветности. Обратите внимание, что соответствующая центральная линия блока не представляет границу блока (т.е. Разделы троичного дерева не разделяют блок по центральной линии). Скорее, центральная линия \ используется для обозначения того, является ли конкретный тип разбиения симметричным или асимметричным относительно центральной линии исходного блока. Центральная линия также проходит по направлению раскола.
Как показано на Фиг.8, блок 71 разделен с помощью горизонтального ровного/равномерного симметричного типа разбиения. Горизонтальное ровное/равномерное симметричное разбиение создает симметричные верхнюю и нижнюю половины относительно центральной линии блока 71. Тип горизонтального ровного/равномерного симметричного разбиения создает три подблока равного размера, каждый с высотой h/3 и шириной w. Тип горизонтального ровного/равномерного симметричного разбиения возможен, когда высота блока 71 делится на 3 без остатка.
Блок 73 разделен горизонтальным неравномерным/неоднородным симметричным типом разбиения. Горизонтальное неравномерное/неоднородное симметричное разбиение создает симметричные верхнюю и нижнюю половины относительно центральной линии блока 73. Тип горизонтального неравномерного/неоднородного симметричного разбиения создает два блока одинакового размера (например, верхний и нижний блоки с высотой h/4) и центральный блок другого размера (например, центральный блок с высотой ч/2). В одном примере, согласно типу горизонтального неравномерного/неоднородного симметричного разбиения, площадь центрального блока равна объединенным площадям верхнего и нижнего блоков. В некоторых примерах тип горизонтального неравномерного/неоднородного симметричного разбиения может быть предпочтительным для блоков, имеющих высоту, равную степени 2 (например, 2, 4, 8, 16, 32 и т.д.).
Блок 75 разделен горизонтальным неравномерным/неоднородным асимметричным типом разбиения. Горизонтальное неравномерное/неоднородное асимметричное разбиение не дает симметричной верхней и нижней половины относительно центральной линии блока 75 (т.е. верхняя и нижняя половины асимметричны). В примере на Фиг.8, горизонтальное неравномерное/неоднородное асимметричное разбиение дает верхний блок высотой h/4, центральный блок высотой 3h/8 и нижний блок высотой 3h/8. Конечно, можно использовать другие асимметричные конструкции.
Как показано на Фиг.9, блок 81 разделен вертикальным ровным/равномерным симметричным типом разбиения. Вертикальный, равномерный/однородный симметричный тип разбиения создает симметричные левую и правую половины относительно центральной линии блока 81. Тип вертикального четного/равномерного симметричного разбиения создает три подблока равного размера, каждый шириной w/3 и высотой h. Тип вертикального четного/равномерного симметричного разбиения возможен, когда ширина блока 81 делится на 3 без остатка.
Блок 83 разделен вертикальным неравномерным/неоднородным симметричным типом разбиения. Тип вертикального неравномерного/неоднородного симметричного разбиения создает симметричные левую и правую половины относительно центральной линии блока 83. Вертикальное неравномерное/неоднородное симметричное разбиение создает симметричные левую и правую половины относительно центральной линии 83. Тип вертикального неравномерного/неоднородного симметричного разбиения создает два блока равного размера (например, левый и правый блоки шириной w/4) и центральный блок другого размера (например, центральный блок шириной из w/2). В одном примере, согласно типу вертикального неравномерного/неоднородного симметричного разбиения, площадь центрального блока равна объединенным площадям левого и правого блоков. В некоторых примерах тип вертикального неравномерного/неоднородного симметричного разбиения может быть предпочтительным для блоков, имеющих ширину, равную степени 2 (например, 2, 4, 8, 16, 32 и т.д.).
Блок 85 разделен по типу вертикального неравномерного/неоднородного асимметричного разбиения. Тип вертикального неравномерного/неоднородного асимметричного разбиения не дает симметричной левой и правой половины относительно центральной линии блока 85 (то есть левая и правая половины асимметричны). В примере на Фиг.9, тип вертикального неравномерного/неоднородного асимметричного разбиения дает левый блок шириной w/4, центральный блок шириной 3w/8 и правый блок шириной 3w/8. Конечно, можно использовать другие асимметричные конструкции.
В дополнение к параметрам для QTBT, следующие параметры определены для схемы разбиения MTT.
-- MaxBTSize: максимально допустимый размер корневого узла двоичного дерева
-- MinBtSize: минимально допустимый размер корневого узла двоичного дерева.
-- MaxMttDepth: максимальная глубина разнотипного дерева
- - MaxMttDepth offset: максимальное смещение глубины многотипного дерева.
-- MaxTtSize: максимально допустимый размер корневого узла троичного дерева
- - MinTtSize: минимально допустимый размер корневого узла троичного дерева
-- MinCbSize: минимально допустимый размер блока кодирования.
Варианты осуществления раскрытия могут быть реализованы видеокодером или видеодекодером, таким как видеокодер 20 с Фиг.2 или видеодекодер 30 с Фиг.3, в соответствии с вариантом осуществления настоящей заявки. Один или более структурных элементов видеокодера 20 или видеодекодера 30, включая блок разбиения, могут быть выполнены с возможностью выполнения методик вариантов осуществления настоящего раскрытия.
В [JVET-K1001-v4], отчете JVET AHG, J.-R.Ohm, GJSulivan, http://phenix.int-evry.fr/jvet/ синтаксический элемент MinQtSizeY (log2_min_qt_size_intra_slices_minus2 и log2_min_in_qt_size) элемент MaxMttDepth (max_mtt_hierarchy_depth_inter_slices и max_mtt_hierarchy_depth_intra_slices) сигнализируются в SPS.
Элемент синтаксиса разницы между размером CTB яркости и MaxBtSizeY (log2_diff_ctu_max_bt_size) сигнализируется в заголовке сегмента.
CtbSizeY и соответствующий элемент синтаксиса log2_ctu_size_minus2 указывают размер максимального размера блока кодирования в терминах количества дискретных отсчетов яркости.
MinQtSizeY определяется как минимальный размер яркости концевого блока в результате разбиения дерева квадрантов CTU (единицы дерева кодирования). Размер может указывать ширину или высоту блока в количестве дискретных отсчетов. Он также может указывать вместе ширину и высоту в случае квадратных блоков. Например, если MinQtSizeY равно 16, блок кодирования, имеющий размер меньше или равный 16, не может быть разделен на дочерний блок с использованием способа разбиения дерева квадрантов. В предшествующем уровне техники MinQtSizeY, log2_min_qt_size_intra_slices_minus2 и log2_min_qt_size_inter_slices_minus2 используются для указания минимального размера блока дерева квадрантов. Необходимо обратить внимание, что указание размера может быть косвенным указанием, а это означает, что log2_min_qt_size_intra_slices_minus2 может быть двоичным логарифмом (основание 2) количества дискретных отсчетов яркости минимального блока дерева квадрантов. MaxMttDepth определяется как максимальная глубина иерархии для единиц кодирования, полученных в результате из разнотипного разбиения дерева на лист дерева квадрантов или CTU. Единица дерева кодирования (или CTB, блок дерева кодирования) описывает максимальный размер блока, который используется для разбиения кадра снимка. MaxMttDepth описывает верхний предел количества последовательных двоичных или троичных разбиений, которые могут применяться для получения дочернего блока. В качестве примера предположим, что размер CTU равен 128×128 (ширина равна 128, а высота равна 128), а MaxMttDepth равен 1. В этом случае родительский блок (размером 128×128) можно сначала разделить на два дочерних модуля 128×64 с помощью двоичного разбиения. Однако дочерние блоки не могут применять какое-либо последовательное двоичное разбиение (чтобы получить дочерние блоки 128×32 или 64×64), поскольку достигнуто максимальное количество разрешенных двоичных разбиений. Следует отметить, что MaxMttDepth может управлять максимальной глубиной двоичного разбиения или максимальной глубиной троичного разбиения, либо обоими одновременно. Если он управляет как двоичным, так и троичным разбиением одновременно, 1 двоичное разбиение, за которым следует 1 троичное разбиение, может считаться 2 иерархическими разбиениями. В предшествующем уровне техники MaxMttDepth, max_mtt_hierarchy_depth_inter_slices и max_mtt_hierarchy_depth_intra_slices используются для указания максимальной глубины иерархии для единиц кодирования, получаемых из многотипного дерева.
Следует отметить, что названия элементов синтаксиса используются так, как они появляются в предшествующем уровне техники. Однако должно быть ясно, что названия могут быть изменены, поэтому следует считать важным логическое значение элементов синтаксиса.
MaxBtSizeY определяется как максимальный размер яркости (ширина или высота) с точки зрения количества дискретных отсчетов блока кодирования, который может быть разделен с использованием двоичного разбиения. Например, если MaxBtSizeY равно 64, блок кодирования, который больше по размеру либо по ширине, либо по высоте, не может быть разделен с использованием двоичного разбиения. Это означает, что блок размером 128×128 нельзя разделить с помощью двоичного разбиения, тогда как блок размером 64×64 можно разделить с помощью двоичного разбиения.
MinBtSizeY определяется как минимальный размер яркости (ширина или высота) с точки зрения количества дискретных отсчетов блока кодирования, который может быть разделен с использованием двоичного разбиения. Например, если MinBtSizeY равно 16, блок кодирования, который меньше или равен по размеру либо по ширине, либо по высоте, не может быть разделен с использованием двоичного разбиения. Это означает, что блок размером 8×8 нельзя разделить с помощью двоичного разбиения, тогда как блок размером 32×32 можно разделить с помощью двоичного разбиения.
MinCbSizeY определяется как минимальный размер блока кодирования. Например, MinCbSizeY может быть равно 8, что означает, что родительский блок размером 8×8 не может быть разделен с помощью любого из методик разбиения, поскольку гарантируется, что результирующий дочерний блок будет меньше MinCbSizeY либо по ширине, либо по высоте. Согласно второму примеру, если MinCbSizeY равно 8, родительский блок, который имеет размер 8×16, не может быть разделен, например, с использованием разбиения дерева квадрантов, поскольку результирующие четыре дочерних блока будут иметь размер 4×8 (ширина равна 4, а высота равна 8), а ширина результирующих дочерних блоков будет меньше MinCbSizeY. Во втором примере предполагалось, что MinCbSizeY применяется как к ширине, так и к высоте блока, хотя для независимого характеристик ширины и высоты могут использоваться 2 разных элемента синтаксиса.
MinTbSizeY определяется как минимальный размер блока преобразования, выраженный в количестве дискретных отсчетов, блока кодирования, который может быть разделен с использованием троичного разбиения. Например, если MinTbSizeY равно 16, блок кодирования, который меньше или равен по размеру либо по ширине, либо по высоте, не может быть разделен с использованием троичного разбиения. Это означает, что блок размером 8×8 нельзя разделить с помощью троичного разбиения, тогда как блок размером 32×32 можно разделить с помощью троичного разбиения.
Синтаксис RBSP (Raw Byte Sequence Payload) (полезной нагрузки последовательности необработанных байтов)) набора параметров последовательности (раздел 7.3.2.1 [JVET-K1001-v4])
[Ред. (BB): Предварительный базовый SPS, подлежащий дальнейшему изучению и ожидающий дальнейшей разработки спецификации.]
В этих таблицах синтаксиса жирным шрифтом выделены элементы синтаксиса, включенные в битовый поток. Элементы, которые не выделены жирным шрифтом, являются условиями или заполнителями для других синтаксических единиц.
Синтаксис заголовка сегмента (раздел 7.3.3 [JVET-K1001-v4])
[Ред. (BB): Предварительный базовый заголовок сегмента, подлежит дальнейшему изучению и ожидает дальнейшей разработки спецификации.]
Семантика элементов синтаксиса, то есть способ интерпретации элементов синтаксиса, включенных в поток битов, также предусмотрена в стандарте. Далее предоставляется семантика для вышеупомянутых элементов.
Семантика RBSP набора параметров последовательности (раздел 7.4.3.1 [JVET-K1001-v4])
log2_ctu_size_minus2
plus 2 определяет размер блока дерева кодирования яркости каждого CTU.
Переменные CtbLog2SizeY, CtbSizeY, MinCbLog2SizeY, MinCbSizeY, MinTbLog2SizeY, MaxTbLog2SizeY, PicWidthInCtbsY, PicHeightInCtbsY, PicSizeInCtbsY, PicWidthInMinCbsY, PicinCeightIn, производные от PicWidthInMinCbsY, PicinCeightIn, являются производными от PicWidthInMinCbsY, PicinCeightIn:
CtbLog2SizeY=log2_ctu_size_minus2+2 (7 5)
CtbSizeY=1 << CtbLog2SizeY (7 6)
MinCbLog2SizeY=2 (7 7)
MinCbSizeY=1 << MinCbLog2SizeY (7 8)
MinTbSizeY=4 (7 9)
MaxTbSizeY=64 (7 10)
PicWidthInCtbsY=Ceil (pic_width_in_luma_samples ÷ CtbSizeY) (7 11)
PicHeightInCtbsY=Ceil (pic_height_in_luma_samples ÷ CtbSizeY) (7 12)
PicSizeInCtbsY=PicWidthInCtbsY * PicHeightInCtbsY (7 13)
PicWidthInMinCbsY=pic_width_in_luma_samples/MinCbSizeY (7 14)
PicHeightInMinCbsY=pic_height_in_luma_samples/MinCbSizeY (7 15)
PicSizeInMinCbsY=PicWidthInMinCbsY * PicHeightInMinCbsY (7 16)
PicSizeInSamplesY=pic_width_in_luma_samples * pic_height_in_luma_samples (7 17)
PicWidthInSamplesC=pic_width_in_luma_samples/SubWidthC (7 18)
PicHeightInSamplesC=pic_height_in_luma_samples/SubHeightC (7 19)
…
log2_min_qt_size_intra_slices_minus2
plus 2 задает минимальный размер яркости концевого блока, полученного в результате разбиения дерева квадрантов CTU на сегменты с slice_type, равным 2 (I). Значение log2_min_qt_size_intra_slices_minus2 должно быть в диапазоне от 0 до CtbLog2SizeY - 2 включительно.
MinQtLog2SizeIntraY=log2_min_qt_size_intra_slices_minus2+2 (7 22)
[Ред. (BB): Лист (концевой элемент) дерева квадрантов может быть либо единицей кодирования, либо корнем вложенного многотипного дерева.]
log2_min_qt_size_inter_slices_minus2
plus 2 определяет минимальный размер яркости концевого блока, полученного в результате разбиения дерева квадрантов CTU на сегменты с slice_type, равным 0 (B) или 1 (P). Значение log2_min_qt_size_inter_slices_minus2 должно быть в диапазоне от 0 до CtbLog2SizeY - 2 включительно.
MinQtLog2SizeInterY=log2_min_qt_size_inter_slices_minus2+2 (7 23)
max_mtt_hierarchy_depth_inter_slices
определяет максимальную глубину иерархии для единиц кодирования, возникающих в результате разбиения многотипного дерева на листе дерева квадрантов на сегменты с slice_type, равным 0 (B) или 1 (P). Значение max_mtt_hierarchy_depth_inter_slices должно быть в диапазоне от 0 до CtbLog2SizeY - MinTbLog2SizeY включительно.
max_mtt_hierarchy_depth_intra_slices
задает максимальную глубину иерархии для единиц кодирования, возникающих в результате разбиения многотипного дерева на листе дерева квадрантов на сегменты с slice_type, равным 2 (I). Значение max_mtt_hierarchy_depth_intra_slices должно быть в диапазоне от 0 до CtbLog2SizeY - MinTbLog2SizeY включительно.
…
Семантика заголовка фрагмента (раздел 7.4.4 [JVET-K1001-v4])
…
log2_diff_ctu_max_bt_size
определяет разность между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием двоичного разбиения. Значение log2_diff_ctu_max_bt_size должно быть в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно.
Когда log2_diff_ctu_max_bt_size отсутствует, значение log2_diff_ctu_max_bt_size предполагается равным 2.
Переменные MinQtLog2SizeY, MaxBtLog2SizeY, MinBtLog2SizeY, MaxTtLog2SizeY, MinTtLog2SizeY, MaxBtSizeY, MinBtSizeY, MaxTtSizeY, MinTtSizeY и MaxMttDepth выводятся следующим образом:
MinQtLog2SizeY = (slice_type== I)? MinQtLog2SizeIntraY: MinQtLog2SizeInterY (7 25)
MaxBtLog2SizeY=CtbLog2SizeY - log2_diff_ctu_max_bt_size (7 26)
MinBtLog2SizeY=MinCbLog2SizeY (7 27)
MaxTtLog2SizeY = (slice_type== I)? 5 : 6 (7-28)
MinTtLog2SizeY=MinCbLog2SizeY (7 29)
MinQtSizeY=1 << MinQtLog2SizeY (7 30)
MaxBtSizeY=1 << MaxBtLog2SizeY (7 31)
MinBtSizeY=1 << MinBtLog2SizeY (7 32)
MaxTtSizeY=1 << MaxTtLog2SizeY (7 33)
MinTtSizeY=1 << MinTtLog2SizeY (7 34)
MaxMttDepth = (slice_type = = I)? max_mtt_hierarchy_depth_intra_slices: max_mtt_hierarchy_depth_inter_slices (7 35)
[Ред. (BB): В настоящее время максимальный размер TT является фиксированным (32×32 дискретных отсчета яркости и соответствующие дискретные отсчеты цветности для I-сегментов и 64×64 дискретных отсчета яркости и соответствующие дискретные отсчеты цветности для P/B-сегментов), а также максимальный размер BT для I-сегментов (CtbLog2SizeY - 2, например, 32×32 дискретных отсчета яркости и соответствующие дискретные отсчеты цветности для размера CTU 128×128 дискретных отсчетов яркости).]
варианте осуществления 1
В  раскрытия:
Вариант 1 осуществления относится к сигнализации в SPS (наборах параметров последовательности), связанных с характеристиками разбиения элементов синтаксиса высокого уровня (например, MinQtSizeY, MaxMttDepht, MaxBtSizeY) индивидуально по типу сегмента и/или сигнализации флага разрешения (или запрещения) переопределения характеристик разбиения.
В заголовке сегмента сигнализация флага переопределения характеристик разбиения означает:
Если флаг верен,
переопределение элементов синтаксиса высокого уровня, связанных с характеристиками разбиения, в заголовке сегмента, в данном случае переопределение означает повторную сигнализацию элементов в заголовке сегмента.
Иначе,
вывод элементов синтаксиса высокого уровня, связанных с характеристиками разбиения, с помощью сигнализируемых значений из SPS на основе типа сегмента.
Другими словами, флаг переопределения характеристик разбиения сигнализируется в заголовке сегмента, чтобы указать, сигнализируются ли один или более параметров характеристик разбиения в заголовке сегмента или в наборе параметров, таком как SPS. Следует отметить, что набор параметров не обязательно должен быть SPS. Это может быть PPS или любой другой тип набора параметров, который относится, например, к более чем одному сегменту, например к одному или более снимкам видео.
В качестве альтернативы,
В SPS элементы синтаксиса высокого уровня, связанные с характеристиками разбиения (например, MinQtSizeY, MaxMttDepht, MaxBtSizeY), сигнализируются индивидуально в парах на основе функции или индекса, и сигнализируется флаг разрешения (или запрещения) переопределения характеристик разбиения.
В заголовке сегмента сигнализируется флаг переопределения характеристик разбиения и:
Если флаг верен,
переопределение элементов синтаксиса высокого уровня, связанных с характеристиками разбиения, в заголовке сегмента, в данном случае переопределение означает повторную сигнализацию элементов в заголовке сегмента.
иначе
вывод элементов синтаксиса высокого уровня, связанных с характеристиками разбиения, с помощью сигнализируемых значений из SPS на основе признака или индекса, используемых для индивидуальной сигнализации.
Что касается положения сигнализации и переопределения, в качестве альтернативы, например:
сигнализация элементов синтаксиса высокого уровня, связанных с характеристиками разбиения, может выполняться в наборе параметров, а операция переопределения может выполняться в заголовке сегмента.
сигнализация элементов синтаксиса высокого уровня, связанных с характеристиками разбиения, может выполняться в наборе параметров, а операция переопределения может выполняться в заголовке клетки.
сигнализация элементов синтаксиса высокого уровня, связанных с характеристиками разбиения, может выполняться в первом наборе параметров, а операция переопределения может выполняться во втором наборе параметров.
сигнализация элементов синтаксиса высокого уровня, связанных с характеристиками разбиения, может выполняться в заголовке сегмента, а операция переопределения может выполняться в заголовке клетки.
В общем, когда сигнализация элементов синтаксиса высокого уровня, связанных с характеристиками разбиения, выполняется в первом наборе параметров, а операция переопределения выполняется во втором наборе параметров, может быть достигнуто эффективное кодирование, поскольку первый набор относится к более большим областям изображению/видео, чем второй набор параметров.
Преимущество техники (например, сигнализация в SPS, переопределение в заголовке сегмента): Характеристика разбиения высокого уровня управляет компромиссом между сложностью разбиения и эффективностью кодирования от разбиения. Изобретение обеспечивает гибкость управления компромиссом для отдельного сегмента.
И кодер, и декодер выполняют одинаковые (соответствующие) операции.
Соответствующие модификации синтаксиса и семантики на основе предшествующего уровня техники показаны ниже:
Измененный синтаксис RBSP набора параметров последовательности (раздел 7.3.2.1 [JVET-K1001-v4])
[Ред. (BB): Предварительный базовый SPS, подлежащий дальнейшему изучению и ожидающий дальнейшей разработки спецификации.]
Измененный синтаксис заголовка сегмента (раздел 7.3.3 [JVET-K1001-v4])
[Ред. (BB): Предварительный базовый заголовок сегмента, подлежит дальнейшему изучению и ожидает дальнейшей разработки спецификации.]
…
Измененная семантика RBSP набора параметров последовательности (раздел 7.4.3.1 [JVET-K1001-v4])
…
partition_constraint_override_enabled_flag, равное 1,
указывает наличие partition_constraint_override_flag в заголовках сегментов для сегментов, относящихся к SPS. partition_constraint_override_enabled_flag, равное 0, указывает отсутствие partition_constraint_override_flag в заголовках сегментов для сегментов, относящихся к SPS.
sps_log2_min_qt_size_intra_slices_minus2
plus 2 задает минимальный размер яркости по умолчанию для концевого блока, полученного в результате разбиения дерева квадрантов CTU на сегменты с slice_type, равным 2 (I), относящимся к SPS, за исключением случаев, когда минимальные размеры яркости по умолчанию для концевого блока в результате разбиения дерева квадрантов равны CTU переопределяются минимальными размерами яркости концевого блока в результате разбиения дерева квадрантов CTU, присутствующего в заголовке сегмента сегментов, относящихся к SPS. Значение log2_min_qt_size_intra_slices_minus2 должно быть в диапазоне от 0 до CtbLog2SizeY - 2 включительно.
sps_log2_min_qt_size_inter_slices_minus2
plus 2 указывает минимальный размер яркости по умолчанию для концевого блока, полученный в результате разбиения дерева квадрантов CTU на сегменты с slice_type, равным 0 (B) или 1 (P), относящимся к SPS, за исключением случаев, когда минимальные размеры яркости по умолчанию для концевого блока возникающие в результате разбиения дерева квадрантов CTU, перекрываются минимальными размерами яркости блока листьев, возникающими в результате разбиения дерева квадрантов CTU, присутствующего в заголовке сегмента сегментов, относящихся к SPS. Значение log2_min_qt_size_inter_slices_minus2 должно быть в диапазоне от 0 до CtbLog2SizeY - 2 включительно.
sps_max_mtt_hierarchy_depth_inter_slices определяет
максимальную глубину иерархии по умолчанию для единиц кодирования, возникающую в результате разбиения многотипного дерева на листе дерева квадрантов на сегменты с slice_type, равным 0 (B) или 1 (P), относящимся к SPS, если только максимальная глубина иерархии по умолчанию для единиц кодирования полученные в результате разбиения дерева квадрантов на несколько типов, перекрываются максимальными глубинами иерархии для единиц кодирования, возникающими в результате многотипного деревовидного разбиения концевого элемента дерева квадрантов, присутствующего в заголовке сегмента сегментов, относящихся к SPS. Значение max_mtt_hierarchy_depth_inter_slices должно быть в диапазоне от 0 до CtbLog2SizeY - MinTbLog2SizeY включительно.
sps_max_mtt_hierarchy_depth_intra_slices задает
максимальную глубину иерархии по умолчанию для единиц кодирования, возникающих в результате разбиения многотипного дерева концевого элеммента дерева квадрантов на сегменты с slice_type, равным 2 (I), относящимся к SPS, за исключением случаев, когда максимальная глубина иерархии по умолчанию для единиц кодирования, являющихся результатом многотипного деревовидного разбиения концевого элемента дерева квадрантов заменяется максимальной глубиной иерархии для единиц кодирования, возникающих в результате многотипного деревовидного разбиения концевого элемента дерева квадрантов, присутствующего в заголовке сегмента сегментов, относящихся к SPS. Значение max_mtt_hierarchy_depth_intra_slices должно быть в диапазоне от 0 до CtbLog2SizeY - MinTbLog2SizeY включительно.
sps_log2_diff_ctu_max_bt_size_intra_slices определяет
разность по умолчанию между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием двоичного разбиения на сегменты с slice_type, равным 2 (I), со ссылкой на SPS, если значение по умолчанию разности между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием двоичного разбиения, перекрываются разностями между размером CTB яркости и максимальным размером (шириной или высотой) яркости блок кодирования, который может быть разделен с использованием двоичного разбиения, присутствующего в заголовке сегмента сегментов, относящихся к SPS. Значение log2_diff_ctu_max_bt_size должно быть в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно.
sps_log2_diff_ctu_max_bt_size_inter_slices определяет
разность по умолчанию между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием двоичного разбиения на сегменты с slice_type, равным 0 (B) или 1 (P), относящимся к SPS, если разности по умолчанию между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием двоичного разбиения, не заменяются разностими между размером CTB яркости и максимальным размером яркости (шириной или высота) блока кодирования, который может быть разделен с использованием двоичного разбиения, присутствующего в заголовке сегмента сегментов, относящихся к SPS. Значение log2_diff_ctu_max_bt_size должно быть в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно.
…
Измененная семантика заголовка сегмента (раздел 7.4.4 [JVET-K1001-v4])
…
partition_constraint_override_flag, равное 1,
указывает, что параметры характеристик разбиения присутствуют в заголовке сегмента. partition_constraint_override_flag, равное 0, указывает, что параметры характеристик разбиения не присутствуют в заголовке сегмента. Если отсутствует, предполагается, что значение partition_cosntraints_override_flag равно 0.
log2_min_qt_size_minus2
plus 2 определяет минимальный размер яркости концевого блока, полученного в результате разбиения дерева квадрантов CTU для текущего сегмента. Значение log2_min_qt_size_inter_slices_minus2 должно быть в диапазоне от 0 до CtbLog2SizeY - 2 включительно. Если отсутствует, предполагается, что значения log2_min_qt_size_minus2 равны sps_log2_min_qt_size_intra_slices_minus2, если slice_type равно 2 (I), и предполагается, что они будут равны sps_log2_min_qt_size_inter_slices_minus2, если равно 0 slice_minus2, если равно slice_minus2.
max_mtt_hierarchy_depth
определяет максимальную глубину иерархии для единиц кодирования, возникающих в результате многотипного деревовидного разбиения концевого элемента дерева квадрантов для текущего сегмента. Значение max_mtt_hierarchy_depth_intra_slices должно быть в диапазоне от 0 до CtbLog2SizeY - MinTbLog2SizeY включительно. Если не указано, значения max_mtt_hierarchy_depth выводятся как равные sps_max_mtt_hierarchy_depth_intra_slices с slice_type, равным 2 (I), и выводятся как равные sps_max_mtt_hierarchy_depth_inter_slices с 0, slice_slices с 0.
log2_diff_ctu_max_bt_size
определяет разность между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием двоичного разбиения для текущего сегмента. Значение log2_diff_ctu_max_bt_size должно быть в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно. Если не указано, значения log2_diff_ctu_max_bt_size предполагаются равными sps_log2_diff_ctu_max_bt_size_intra_slices с slice_type, равным 2 (I), и выводятся как равными sps_log2_diff_ctu_max_bt_type (равным 1) или slice_bt_s (0) (slice_size) (slice_diff_ctu_max_bt).
Переменные MinQtLog2SizeY, MaxBtLog2SizeY, MinBtLog2SizeY, MaxTtLog2SizeY, MinTtLog2SizeY, MaxBtSizeY, MinBtSizeY, MaxTtSizeY, MinTtSizeY и MaxMttDepth выводятся следующим образом:
В альтернативной реализации вариант 1 раскрытия описывается следующим образом:
Набор параметров последовательности (SPS) содержит параметры, которые применяются ко всей кодированной видеопоследовательности и не изменяются от снимка к снимку в кодированной видеопоследовательности (сокращенно от CVS). Все снимки в одной и той же CVS используют один и тот же SPS.
PPS содержит параметры, которые могут изменяться для разных снимков в одной и той же кодированной видеопоследовательности. Однако несколько снимков могут относиться к одному и тому же PPS, даже с разными типами кодирования сегмента (I, P и B).
Как упоминалось в варианте осуществления 1 настоящего раскрытия, ограничение разбиения высокого уровня управляет компромиссом между сложностью разбиения и эффективностью кодирования от разбиения. Чтобы воспользоваться преимуществом гибкого управления между сложностью и эффективностью кодирования в отдельном снимке/сегменте, вместо способа в варианте осуществления 1 (сигнализируются элементы синтаксиса характеристик разбиения в SPS и переопределяется элемент синтаксиса характеристик разбиения в заголовке сегмента на основе флага переопределения характеристик разбиения, о котором сигнализирует заголовок сегмента), элементы синтаксиса характеристик разбиения (MinQtSizeY, MaxMttDepth, MaxBtSizeY, MaxTtSizeY и т.д.) передаются в PPS, чтобы отрегулировать компромисс между сложностью разбиения и эффективностью кодирования от разбиения на уровне снимка. Если для каждого снимка используется отдельный PPS, тогда настройка применяется к отдельному снимку, если несколько снимков относятся к одному и тому же PPS, то для снимков применяется такая же настройка.
Сигнализация уровня PPS элементов синтаксиса характеристик разбиения может сигнализироваться в одной группе, например, в PPS один индикатор для MinQtSizeY, один индикатор для MaxMttDepth, один индикатор для MaxBtSizeY и один индикатор для MaxTtSizeY сигнализируются, в этом случае регулируемость компромисс между сложностью разбиения и эффективностью кодирования от разбиения осуществляется индивидуально по разным снимкам.
Сигнализация уровня PPS элементов синтаксиса характеристик разбиения также может сигнализироваться в двух группах на основе типа сегмента, например, в PPS один индикатор сегмента интра-режима для MinQtSizeY, один индикатор сегмента интер-режима для MinQtSizeY, один индикатор сегмента интра-режима для MaxMttDepth, один индикатор сегмента интра-режима для MaxMttDepth, один индикатор сегмента интра-режима для MaxBtSizeY, один индикатор сегмента интер-режима для MaxBtSizeY, один индикатор сегмента интра-режима для MaxTtSizeY и один индикатор сегмента интер-режима для MaxTtSizeY сигнализируются, в этом случае регулируемость компромисса между сложностью разбиения и эффективностью кодированием от разбиения осуществляется индивидуально от типа сегмента (интра- или интер-режима).
Сигнализация уровня PPS элементов синтаксиса характеристик разбиения может передаваться в нескольких группах на основе идентификации (например, индекса) сегмента, например, если один снимок разделен на три сегмента, в PPS три разных индикатора на основе идентификации сегмента для MinQtSizeY, три разных индикатора, основанные на идентификации сегментов для MaxMttDepth, и три разных индикатора, основанные на идентификации сегментов для MaxBtSizeY, и три разных индикатора, основанные на идентификации сегментов для MaxTtSizeY, сигнализируются, в этом случае регулируется компромисс между сложностью разбиения и эффективность кодирования из разбиения индивидуально для каждого сегмента.
По сравнению со способом в варианте осуществления 1 преимущество этой альтернативной реализации состоит в том, что структура индикации упрощена. В этом методе, чтобы гибко регулировать компромисс между сложностью разбиения и выигрышем от кодирования от разбиения, переопределение элемента синтаксиса характеристик разбиения в заголовке сегмента не требуется.
С другой стороны, по сравнению со способом в варианте осуществления 1 эта альтернативная реализация ограничена некоторыми сценариями. Этот метод только сигнализирует об характеристик разбиения в PPS. Это означает, что невозможно отрегулировать компромисс между сложностью разбиения и выигрышем от кодирования от разбиения по отдельности по снимкам, если несколько снимков относятся к одному и тому же PPS. Кроме того, если настройка необходима только для ключевых снимков, этот метод будет передавать избыточную информацию в PPS.
множество элементов синтаксиса характеристик разбиения сигнализируется на уровне набора параметров (например, PPS, VPS, SPS) или заголовков (таких как заголовок снимка, заголовок сегмента или заголовок клетки).
варианте осуществления 2
В  раскрытия:
Варианты осуществления, средства
Элементы характеристик синтаксиса высокого уровня разбиения могут сигнализироваться в SPS.
Элементы характеристик синтаксиса высокого уровня разбиения могут быть переопределены в заголовке сегмента.
Элементы характеристик синтаксиса высокого уровня разбиения могут использовать значения по умолчанию.
BT и TT можно отключить в SPS.
BT и TT можно отключить в заголовке сегмента.
Флаг разрешения (запрещения) BT и TT может сигнализироваться в SPS и заменяться в заголовке сегмента.
Преимущество методики (например, сигнализация в SPS, переопределение в заголовке сегмента): Характеристика разбиения высокого уровня управляет компромиссом между сложностью разбиения и эффективностью кодирования от разбиения. Изобретение обеспечивает гибкость управления компромиссом для отдельного сегмента. Для значений по умолчанию и разрешения Bt Tt (функция запрещения) существует еще большая гибкость управления элементами.
И кодер, и декодер выполняют одинаковые (соответствующие) операции.
Соответствующие модификации, основанные на известном уровне техники, показаны ниже:
Измененный синтаксис RBSP набора параметров последовательности (раздел 7.3.2.1 [JVET-K1001-v4])
[Ред. (BB): Предварительный базовый SPS, подлежащий дальнейшему изучению и ожидающий дальнейшей разработки спецификации.]
Измененный синтаксис заголовка сегмента (раздел 7.3.3 [JVET-K1001-v4])
[Ред. (BB): Предварительный базовый заголовок сегмента, подлежит дальнейшему изучению и ожидает дальнейшей разработки спецификации.]
…
Модифицированная семантика RBSP набора параметров последовательности (раздел 7.4.3.1 [JVET-K1001-v4])
…
partition_constraint_control_present_flag, равное 1,
указывает наличие элементов синтаксиса управления характеристиками разбиения в SPS. partition_constraint_control_present_flag, равное 0, указывает отсутствие элементов синтаксиса управления характеристиками разбиения в SPS.
sps_btt_enabled_flag,
равный 1, указывает, что операция разбиения дерева с несколькими типами применяется для сегментов, относящихся к SPS, в которых slice_btt_enable_flag отсутствует. sps_btt_enabled_flag, равный 0, указывает, что операция разбиения многотипного дерева не применяется для сегментов, относящихся к SPS, в которых slice_btt_enable_flag отсутствует. Если отсутствует, предполагается, что значение sps_btt_enabled_flag равно 1.
partition_constraint_override_enabled_flag, равное 1,
указывает наличие partition_constraint_override_flag в заголовках сегментов для сегментов, относящихся к SPS. partition_constraint_override_enabled_flag, равное 0, указывает отсутствие partition_constraint_override_flag в заголовках сегментов для сегментов, относящихся к SPS. Если отсутствует, значение partition_constraint_override_enabled_flag предполагается равным 0.
sps_log2_min_qt_size_intra_slices_minus2
плюс 2 задает начальное значение минимального размера яркости в SPS концевого блока, полученного в результате разбиения дерева квадрантов CTU на сегменты с slice_type, равным 2 (I), относящимся к SPS, если только начальное значение минимальных размеров яркости a Концевые блоки, возникающие в результате разбиения дерева квадрантов CTU, замещаются минимальными размерами яркости блока листьев, возникающими в результате разбиения дерева квадрантов CTU, присутствующего в заголовке сегмента сегментов, относящихся к SPS. Значение log2_min_qt_size_intra_slices_minus2 должно быть в диапазоне от 0 до CtbLog2SizeY - 2 включительно. Если отсутствует, значение sps_log2_min_qt_size_intra_slices_minus2 предполагается равным 0.
sps_log2_min_qt_size_inter_slices_minus2
плюс 2 задает начальное значение минимального размера яркости в SPS концевого блока, полученного в результате разбиения дерева квадрантов CTU на сегменты с slice_type, равным 0 (B) или 1 (P), относящимся к SPS, если только начальное значение минимальные размеры яркости концевого блока, возникающие в результате разбиения дерева квадрантов CTU, переопределяются минимальными размерами яркости конечного блока, возникающего в результате разбиения дерева квадрантов CTU, присутствующего в заголовке сегмента сегментов, относящихся к SPS. Значение log2_min_qt_size_inter_slices_minus2 должно быть в диапазоне от 0 до CtbLog2SizeY - 2 включительно. Если отсутствует, значение sps_log2_min_qt_size_inter_slices_minus2 предполагается равным 0.
sps_max_mtt_hierarchy_depth_inter_slices указывает
начальное значение максимальной глубины иерархии в SPS для единиц кодирования, возникающих в результате разбиения многотипного дерева на листе дерева квадрантов на сегменты с slice_type, равным 0 (B) или 1 (P), относящимся к SPS, если только начальное значение максимальных глубин иерархии для единиц кодирования, возникающих в результате разбиения дерева квадрантов на несколько типов, переопределяются максимальными глубинами иерархии для единиц кодирования, возникающих в результате разбиения многотипного дерева на листе дерева квадрантов, присутствующем в заголовке сегмента сегментов, относящихся к СПС. Значение max_mtt_hierarchy_depth_inter_slices должно быть в диапазоне от 0 до CtbLog2SizeY - MinTbLog2SizeY включительно. Когда нет,
если sps_btt_enabled_flag равен 1
значение sps_max_mtt_hierarchy_depth_inter_slices предполагается равным 3.
иначе
значение sps_max_mtt_hierarchy_depth_inter_slices предполагается равным 0.
sps_max_mtt_hierarchy_depth_intra_slices указывает
начальное значение максимальной глубины иерархии в SPS для единиц кодирования, возникающих в результате разбиения многотипного дерева на листы дерева квадрантов на сегменты с slice_type, равным 2 (I), относящимся к SPS, если только начальное значение максимальной глубины иерархии не соответствует единицы кодирования, полученные в результате разбиения дерева квадрантов на несколько типов, переопределяются максимальной глубиной иерархии для единиц кодирования, возникающих в результате многотипного деревовидного разбиения концевого элемента дерева квадрантов, присутствующего в заголовке сегмента сегментов, относящихся к SPS. Значение max_mtt_hierarchy_depth_intra_slices должно быть в диапазоне от 0 до CtbLog2SizeY - MinTbLog2SizeY включительно. Когда нет,
если sps_btt_enabled_flag равен 1
значение sps_max_mtt_hierarchy_depth_intra_slices предполагается равным 3.
иначе
значение sps_max_mtt_hierarchy_depth_intra_slices предполагается равным 0.
sps_log2_diff_ctu_max_bt_size_intra_slices
указываетначальное значение разницы между размером CTB яркости и максимальным размером (шириной или высотой) яркости в SPS блока кодирования, который может быть разделен с использованием двоичного разбиения на сегменты с slice_type, равным 2 (I), что относится к SPS, если только начальное значение различий между размером CTB яркости и максимальным размером яркости (шириной или высотой) в SPS блока кодирования, который может быть разделен с использованием двоичного разбиения, не заменяется разностими между размером CTB яркости и максимальный размер яркости (ширина или высота) блока кодирования, который может быть разделен с использованием двоичного разбиения, присутствующего в заголовке сегмента сегментов, относящихся к SPS. Значение log2_diff_ctu_max_bt_size должно быть в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно. Когда нет,
если sps_btt_enabled_flag равен 1
значение sps_log2_diff_ctu_max_bt_size_intra_slices предполагается равным 2.
иначе
предполагается, что значение sps_log2_diff_ctu_max_bt_size_intra_slices равно CtbLog2SizeY - MinCbLog2SizeY.
sps_log2_diff_ctu_max_bt_size_inter_slices указывает
начальное значение разницы между размером CTB яркости и максимальным размером яркости (шириной или высотой) в SPS блока кодирования, который может быть разделен с использованием двоичного разбиения на фрагменты с slice_type, равным 0 (B) или 1 ( P) со ссылкой на SPS, если начальное значение разницы между размером CTB яркости и максимальным размером (шириной или высотой) яркости в SPS блока кодирования, который может быть разделен с использованием двоичного разбиения, не заменяется разностими между размер CTB яркости и максимальный размер яркости (ширина или высота) блока кодирования, который может быть разделен с использованием двоичного разбиения, присутствующего в заголовке сегментов, относящихся к SPS. Значение log2_diff_ctu_max_bt_size должно быть в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно. Когда нет,
если sps_btt_enabled_flag равен 1
значение sps_log2_diff_ctu_max_bt_size_inter_slices предполагается равным 0.
иначе
предполагается, что значение sps_log2_diff_ctu_max_bt_size_inter_slices равно CtbLog2SizeY - MinCbLog2SizeY.
…
Измененная семантика заголовка сегмента (раздел 7.4.4 [JVET-K1001-v4])
…
partition_constraint_override_flag, равное 1,
указывает, что параметры характеристик разбиения присутствуют в заголовке сегмента. partition_constraint_override_flag, равное 0, указывает, что параметры сопутствующих ограничений разбиения не присутствуют в заголовке сегмента. Если отсутствует, предполагается, что значение partition_constraints_override_flag равно 0.
slice_btt_enabled_flag,
равный 1, указывает, что операция многотипного разбиения дерева применяется к текущему сегменту. slice_btt_enabled_flag, равный 0, указывает, что операция разбиения многотипного дерева не применяется для текущего сегмента. Когда slice_btt_enabled_flag отсутствует, предполагается, что он равен sps_btt_enabled_flag.
log2_min_qt_size_minus2
plus 2 определяет минимальный размер яркости концевого блока, полученного в результате разбиения дерева квадрантов CTU для текущего сегмента. Значение log2_min_qt_size_inter_slices_minus2 должно быть в диапазоне от 0 до CtbLog2SizeY - 2 включительно. Если нет, значения log2_min_qt_size_minus2 предполагаются равными sps_log2_min_qt_size_intra_slices_minus2 с slice_type, равным 2 (I), и предполагаются равными sps_log2_min_qt_size_inter_slices_minus2 с 0 (slice_minus2, равным 0, slice_minus2) или равным 0 slice_minus2.
max_mtt_hierarchy_depth
определяет максимальную глубину иерархии для единиц кодирования, возникающих в результате многотипного деревовидного разбиения концевого элемента дерева квадрантов для текущего сегмента. Значение max_mtt_hierarchy_depth_intra_slices должно быть в диапазоне от 0 до CtbLog2SizeY - MinTbLog2SizeY включительно. Если не указано, значения max_mtt_hierarchy_depth выводятся как равные sps_max_mtt_hierarchy_depth_intra_slices с slice_type, равным 2 (I), и выводятся как равные sps_max_mtt_hierarchy_depth_inter_slices с 0, slice_slices с 0.
log2_diff_ctu_max_bt_size
определяет разность между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием двоичного разбиения для текущего сегмента. Значение log2_diff_ctu_max_bt_size должно быть в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно. Если не указано, значения log2_diff_ctu_max_bt_size предполагаются равными sps_log2_diff_ctu_max_bt_size_intra_slices с slice_type, равным 2 (I), и выводятся как равными sps_log2_diff_ctu_max_bt_type (равным 1) или slice_bt_s (0) (slice_size) (slice_diff_ctu_max_bt).
Переменные MinQtLog2SizeY, MaxBtLog2SizeY, MinBtLog2SizeY, MaxTtLog2SizeY, MinTtLog2SizeY, MaxBtSizeY, MinBtSizeY, MaxTtSizeY, MinTtSizeY и MaxMttDepth выводятся следующим образом:
варианте осуществления
3
В  раскрытия:
Если MaxTTSizeY (максимальный размер яркости (ширина или высота) блока кодирования, который может быть разделен с использованием троичного разбиения) передается в SPS (или другом наборе параметров или заголовке сегмента), вариант 1 или вариант 2 может быть применен в таким же образом, как и для других вышеупомянутых параметров разбиения.
Преимущество техники: Изобретение для сигнализации индикатора элементов синтаксиса MaxTtSizeY обеспечивает большую гибкость управления элементами.
И кодер, и декодер выполняют одинаковые (соответствующие) операции.
Изменения синтаксиса основаны на варианте 1 или 2.
Измененный синтаксис RBSP набора параметров последовательности (раздел 7.3.2.1 [JVET-K1001-v4])
Измененный синтаксис заголовка сегмента (раздел 7.3.3 [JVET-K1001-v4])
[Ред. (BB): Предварительный базовый заголовок сегмента, подлежит дальнейшему изучению и ожидает дальнейшей разработки спецификации.]
варианте осуществления 4
В  раскрытия:
Разделите btt_enabled_flag варианта осуществления 2 в качестве bt_enalbed_flag и tt_eabled_flag, чтобы отдельно разрешить или запретить разбиение bt и tt.
Преимущество технологии: сигнализация флага разрешения BT и флага разрешения TT по отдельности обеспечивает большую гибкость для управления элементами синтаксиса характеристик разбиения.
И кодер, и декодер выполняют одинаковые (соответствующие) операции.
Синтаксические и семантические изменения на основе варианта 2:
Измененный синтаксис RBSP набора параметров последовательности (раздел 7.3.2.1 [JVET-K1001-v4])
[Ред. (BB): Предварительный базовый SPS, подлежащий дальнейшему изучению и ожидающий дальнейшей разработки спецификации.]
Измененный синтаксис заголовка сегмента (раздел 7.3.3 [JVET-K1001-v4])
[Ред. (BB): Предварительный базовый заголовок сегмента, подлежит дальнейшему изучению и ожидает дальнейшей разработки спецификации.]
…
Семантика RBSP набора параметров последовательности (раздел 7.4.3.1 [JVET-K1001-v4])
…
partition_constraint_control_present_flag, равное 1,
указывает наличие элементов синтаксиса управления характеристиками разбиения в SPS. partition_constraint_control_present_flag, равное 0, указывает отсутствие элементов синтаксиса управления характеристиками разбиения в SPS.
sps_bt_enabled_flag,
равный 1, указывает, что операция разбиения двоичного дерева применяется для сегментов, относящихся к SPS, в которых slice_bt_enable_flag отсутствует. sps_bt_enabled_flag, равный 0, указывает, что операция разбиения бинарного дерева не применяется для сегментов, относящихся к SPS, в которых slice_bt_enable_flag отсутствует. Если отсутствует, предполагается, что значение sps_bt_enabled_flag равно 1.
sps_tt_enabled_flag,
равный 1, указывает, что операция разбиения троичного дерева применяется для сегментов, относящихся к SPS, в которых slice_tt_enable_flag отсутствует. sps_tt_enabled_flag, равный 0, указывает, что операция разбиения троичного дерева не применяется для сегментов, относящихся к SPS, в которых slice_tt_enable_flag отсутствует. Если отсутствует, предполагается, что значение sps_tt_enabled_flag равно 1.
partition_constraint_override_enabled_flag, равное 1,
указывает наличие partition_constraint_override_flag в заголовках сегментов для сегментов, относящихся к SPS. partition_constraint_override_enabled_flag, равное 0, указывает отсутствие partition_constraint_override_flag в заголовках сегментов для сегментов, относящихся к SPS. Если отсутствует, значение partition_constraint_override_enabled_flag предполагается равным 0.
sps_log2_min_qt_size_intra_slices_minus2
plus 2 задает минимальный размер яркости по умолчанию для концевого блока, полученного в результате разбиения дерева квадрантов CTU на сегменты с slice_type, равным 2 (I), относящимся к SPS, за исключением случаев, когда минимальные размеры яркости по умолчанию для концевого блока в результате разбиения дерева квадрантов равны CTU переопределяются минимальными размерами яркости концевого блока в результате разбиения дерева квадрантов CTU, присутствующего в заголовке сегментов, относящихся к SPS. Значение log2_min_qt_size_intra_slices_minus2 должно быть в диапазоне от 0 до CtbLog2SizeY - 2 включительно. Если отсутствует, значение sps_log2_min_qt_size_intra_slices_minus2 предполагается равным 0.
sps_log2_min_qt_size_inter_slices_minus2
plus 2 указывает минимальный размер яркости по умолчанию для концевого блока, полученный в результате разбиения дерева квадрантов CTU на сегменты с slice_type, равным 0 (B) или 1 (P), относящимся к SPS, за исключением случаев, когда минимальные размеры яркости по умолчанию для концевого блока возникающие в результате разбиения дерева квадрантов CTU, перекрываются минимальными размерами яркости блока листьев, возникающими в результате разбиения дерева квадрантов CTU, присутствующего в заголовке сегментов, относящихся к SPS. Значение log2_min_qt_size_inter_slices_minus2 должно быть в диапазоне от 0 до CtbLog2SizeY - 2 включительно. Если отсутствует, значение sps_log2_min_qt_size_inter_slices_minus2 предполагается равным 0.
sps_max_mtt_hierarchy_depth_inter_slices
определяетмаксимальную глубину иерархии по умолчанию для единиц кодирования, возникающую в результате разбиения многотипного дерева на листе дерева квадрантов на сегменты с slice_type, равным 0 (B) или 1 (P), относящимся к SPS, если только максимальная глубина иерархии по умолчанию для единиц кодирования полученные в результате разбиения дерева квадрантов на несколько типов, перекрываются максимальными глубинами иерархии для единиц кодирования, возникающими в результате многотипного деревовидного разбиения концевого элемента дерева квадрантов, присутствующего в заголовке сегмента сегментов, относящихся к SPS. Значение max_mtt_hierarchy_depth_inter_slices должно быть в диапазоне от 0 до CtbLog2SizeY - MinTbLog2SizeY включительно. Когда нет,
если sps_bt_enabled_flag равен 1 или sps_tt_enabled_flag равен 1
значение sps_max_mtt_hierarchy_depth_inter_slices предполагается равным 3.
иначе
значение sps_max_mtt_hierarchy_depth_inter_slices предполагается равным 0.
sps_max_mtt_hierarchy_depth_intra_slices
задаетмаксимальную глубину иерархии по умолчанию для единиц кодирования, возникающих в результате разбиения многотипного дерева концевого элеммента дерева квадрантов на сегменты с slice_type, равным 2 (I), относящимся к SPS, за исключением случаев, когда максимальная глубина иерархии по умолчанию для единиц кодирования, являющихся результатом многотипного деревовидного разбиения концевого элемента дерева квадрантов заменяется максимальной глубиной иерархии для единиц кодирования, возникающих в результате многотипного деревовидного разбиения концевого элемента дерева квадрантов, присутствующего в заголовке сегментов, относящихся к SPS. Значение max_mtt_hierarchy_depth_intra_slices должно быть в диапазоне от 0 до CtbLog2SizeY - MinTbLog2SizeY включительно. Когда нет,
если sps_btt_enabled_flag равен 1, sps_tt_enabled_flag равен 1
значение sps_max_mtt_hierarchy_depth_intra_slices предполагается равным 3.
иначе
значение sps_max_mtt_hierarchy_depth_intra_slices предполагается равным 0.
sps_log2_diff_ctu_max_bt_size_intra_slices
определяетразность по умолчанию между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием двоичного разбиения на сегменты с slice_type, равным 2 (I), со ссылкой на SPS, если значение по умолчанию разности между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием двоичного разбиения, перекрываются разностями между размером CTB яркости и максимальным размером (шириной или высотой) яркости блок кодирования, который может быть разделен с использованием двоичного разбиения, присутствующего в заголовке сегментов, относящихся к SPS. Значение log2_diff_ctu_max_bt_size должно быть в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно. Когда нет,
если sps_bt_enabled_flag равен 1
значение sps_log2_diff_ctu_max_bt_size_intra_slices предполагается равным 2.
иначе
предполагается, что значение sps_log2_diff_ctu_max_bt_size_intra_slices равно CtbLog2SizeY - MinCbLog2SizeY.
sps_log2_diff_ctu_max_bt_size_inter_slices
определяетразность по умолчанию между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием двоичного разбиения на сегменты с slice_type, равным 0 (B) или 1 (P), относящимся к SPS, если разности по умолчанию между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием двоичного разбиения, не заменяются разностими между размером CTB яркости и максимальным размером яркости (шириной или высота) блока кодирования, который может быть разделен с использованием двоичного разбиения, присутствующего в заголовке сегментов, относящихся к SPS. Значение log2_diff_ctu_max_bt_size должно быть в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно. Когда нет,
если sps_bt_enabled_flag равен 1
значение sps_log2_diff_ctu_max_bt_size_inter_slices предполагается равным 0.
иначе
предполагается, что значение sps_log2_diff_ctu_max_bt_size_inter_slices равно CtbLog2SizeY - MinCbLog2SizeY.
sps_log2_diff_ctu_max_tt_size_intra_slices
указываетразность по умолчанию между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием троичного разбиения на сегменты с slice_type, равным 2 (I), относящимся к SPS, если значение по умолчанию разности между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием троичного разбиения, перекрываются разностями между размером CTB яркости и максимальным размером яркости (шириной или высотой) блок кодирования, который может быть разделен с использованием троичного разбиения, присутствующего в заголовке сегментов, относящихся к SPS. Значение sps_log2_diff_ctu_max_tt_size должно быть в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно. Когда нет,
если sps_tt_enabled_flag равен 1
значение sps_log2_diff_ctu_max_tt_size_intra_slices предполагается равным 2.
иначе
предполагается, что значение sps_log2_diff_ctu_max_tt_size_intra_slices равно CtbLog2SizeY - MinCbLog2SizeY.
sps_log2_diff_ctu_max_tt_size_inter_slices
определяетразность по умолчанию между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием троичного разбиения на сегменты с slice_type, равным 0 (B) или 1 (P), относящимся к SPS, если только разности по умолчанию между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием троичного разбиения, не заменяются разностими между размером CTB яркости и максимальным размером яркости (шириной или высота) блока кодирования, который может быть разделен с использованием троичного разбиения, присутствующего в заголовке сегментов, относящихся к SPS. Значение log2_diff_ctu_max_tt_size должно быть в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно. Когда нет,
если sps_tt_enabled_flag равен 1
значение sps_log2_diff_ctu_max_tt_size_inter_slices предполагается равным 1.
иначе
предполагается, что значение sps_log2_diff_ctu_max_tt_size_inter_slices равно CtbLog2SizeY - MinCbLog2SizeY.
…
Измененная семантика заголовка сегмента (раздел 7.4.4 [JVET-K1001-v4])
…
partition_constraint_override_flag, равное 1,
указывает, что параметры характеристик разбиения присутствуют в заголовке сегмента. partition_constraint_override_flag, равное 0, указывает, что параметры сопутствующих ограничений разбиения не присутствуют в заголовке сегмента. Если отсутствует, предполагается, что значение parititon_constraints_override_flag равно 0.
slice_btt_enabled_flag,
равный 1, указывает, что операция разбиения дерева с несколькими типами не применяется для текущего сегмента. slice_btt_enabled_flag, равный 0, указывает, что операция разбиения многотипного дерева применяется к текущему сегменту. Когда slice_btt_enabled _flag отсутствует, предполагается, что он равен sps_btt_enabled_flag.
log2_min_qt_size_minus2
plus 2 определяет минимальный размер яркости концевого блока, полученного в результате разбиения дерева квадрантов CTU для текущего сегмента. Значение log2_min_qt_size_inter_slices_minus2 должно быть в диапазоне от 0 до CtbLog2SizeY - 2 включительно. Если нет, значения log2_min_qt_size_minus2 предполагаются равными sps_log2_min_qt_size_intra_slices_minus2 с slice_type, равным 2 (I), и предполагаются равными sps_log2_min_qt_size_inter_slices_minus2 с 0 (slice_minus2, равным 0, slice_minus2) или равным 0 slice_minus2.
max_mtt_hierarchy_depth
определяет максимальную глубину иерархии для единиц кодирования, возникающих в результате многотипного деревовидного разбиения концевого элемента дерева квадрантов для текущего сегмента. Значение max_mtt_hierarchy_depth_intra_slices должно быть в диапазоне от 0 до CtbLog2SizeY - MinTbLog2SizeY включительно. Если не указано, значения max_mtt_hierarchy_depth выводятся как равные sps_max_mtt_hierarchy_depth_intra_slices с slice_type, равным 2 (I), и выводятся как равные sps_max_mtt_hierarchy_depth_inter_slices с 0, slice_slices с 0.
log2_diff_ctu_max_bt_size
определяет разность между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием двоичного разбиения для текущего сегмента. Значение log2_diff_ctu_max_bt_size должно быть в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно. Если не указано, значения log2_diff_ctu_max_bt_size предполагаются равными sps_log2_diff_ctu_max_bt_size_intra_slices с slice_type, равным 2 (I), и выводятся как равными sps_log2_diff_ctu_max_bt_type (равным 1) или slice_bt_s (0) (slice_size) (slice_diff_ctu_max_bt).
log2_diff_ctu_max_tt_size
определяет разность между размером CTB яркости и максимальным размером яркости (шириной или высотой) блока кодирования, который может быть разделен с использованием двоичного разбиения для текущего сегмента. Значение log2_diff_ctu_max_tt_size должно быть в диапазоне от 0 до CtbLog2SizeY - MinCbLog2SizeY включительно. Если нет, значения log2_diff_ctu_max_tt_size предполагаются равными sps_log2_diff_ctu_max_tt_size_intra_slices с slice_type, равным 2 (I), и предполагаются равными sps_log2_diff_ctu_max_tt_size_size с 0.
Переменные MinQtLog2SizeY, MaxBtLog2SizeY, MinBtLog2SizeY, MaxTtLog2SizeY, MinTtLog2SizeY, MaxBtSizeY, MinBtSizeY, MaxTtSizeY, MinTtSizeY и MaxMttDepth выводятся следующим образом:
На фиг.10 показан соответствующий способ декодирования битового видеопотока, реализуемый устройством декодирования, при этом битовый видеопоток включает в себя данные, представляющие область изображения и заголовок области изображения упомянутой области изображения. Способ декодирования содержит этапы получения S110 флага переопределения (partition_constraint_override_flag) из битового видеопотока; когда значение флага переопределения является значением переопределения (например, 1), получения S120 первой информации характеристик разбиения для упомянутой области изображения из заголовка области изображения; разбиение S130 блока упомянутой области изображения согласно первой информации характеристик разбиения. Если флаг не установлен, информация характеристик разбиения может быть получена из источника, отличного от заголовка области изображения. Область изображения может быть сегментом или клеткой.
На фиг.11 показана блок-схема, включающая блок-схему фиг.10. Кроме того, способ, проиллюстрированный на блок-схеме, включает в себя этапы получения S210 флага разрешения переопределения (partition_constraint_override_enabled_flag) из битового видеопотока; при этом, когда значение флага разрешения переопределения является разрешающим значением (например, 1), получение S110 флага переопределения из битового видеопотока. Более того, когда значение флага переопределения не является значением переопределения (например, значение флага переопределения равно 0), разбиение S230 блока упомянутой области изображения может быть выполнено согласно второй информации характеристик разбиения для битового видеопотока из набор параметров. Кроме того, когда значение флага разрешения переопределения является запрещающим значением (например, значение флага разрешения переопределения равно 0), разбиение S230 блока упомянутой области изображения может быть выполнено согласно второй информации характеристик разбиения для битового видеопотока из набора параметров.
Конкретные особенности в вариантах осуществления настоящего изобретения см. в связанных вариантах осуществления способа декодирования выше. Подробности не описаны здесь снова.
На фиг.12 показан декодер 1200 для декодирования битового видеопотока. Битовый видеопоток включает в себя данные, представляющие область изображения и заголовок области изображения упомянутой области изображения. Декодер содержит: модуль 1210 определения переопределения для получения флага переопределения из битового видеопотока; модуль 1220 определения характеристик разбиения для получения первой информации характеристик разбиения для упомянутой области изображения из заголовка области изображения, когда значение флага переопределения является значением переопределения; модуль 1230 разбиения блока для разбиения блока упомянутой области изображения согласно первой информации характеристик разбиения.
Для получения информации о конкретных функциях блоков в декодере 1200 в вариантах осуществления настоящего изобретения обратитесь к соответствующим описаниям варианта осуществления способа декодирования настоящего изобретения. Подробности не описаны здесь снова.
Модули в декодере 1200 могут быть реализованы программно или схемно.
Декодер 1200 может быть декодером 30, устройством 400 видеокодирования или устройством 500, или частью декодера 30, устройством 400 видеокодирования или устройством 500.
Кодер 1300 может быть кодером 20, устройством 400 видеокодирования или устройством 500, или частью кодера 20, устройством 400 видеокодирования или устройством 500.
На фиг.13 показан кодер 1300 для кодирования битового видеопотока, причем битовый видеопоток включает в себя данные, представляющие область изображения и заголовок области изображения упомянутой области изображения. Кодер содержит: модуль 1310 определения разбиения для определения того, осуществляется ли разбиение блока упомянутой области изображения согласно первой информации характеристик разбиения в заголовке области изображения; модуль 1320 разбиения блока для разбиения блока упомянутой области изображения согласно первой информации характеристик разбиения, когда определено, что разбиение блока осуществляется согласно первой информации характеристик разбиения; модуль 1330 установки флага переопределения для установки значения флага переопределения в значение переопределения; и генератор 1340 битового потока для вставки флага переопределения в битовый видеопоток.
Для получения информации о конкретных функциях блоков в кодере 1300 в вариантах осуществления настоящего изобретения обратитесь к соответствующим описаниям варианта осуществления способа кодирования настоящего изобретения. Подробности не описаны здесь снова.
Модули в кодере 1300 могут быть реализованы программно или схемно.
Кодер 1300 может быть кодером 20, устройством 400 видеокодирования или устройством 500, или частью кодера 20, устройством 400 видеокодирования или устройством 500.
На Фиг.14A показана блок-схема способа кодирования битового видеопотока, реализуемого устройством кодирования, при этом битовый видеопоток включает в себя данные, представляющие область изображения и заголовок области изображения упомянутой области изображения. Способ кодирования включает в себя следующие этапы: определение S310, осуществляется ли разбиение блока упомянутой области изображения согласно первой информации характеристик разбиения в заголовке области изображения; при определении того, что разбиение блока осуществляется согласно первой информации характеристик разбиения («да» на этапе S310), разбиение S320 блока упомянутой области изображения согласно первой информации характеристик разбиения и установку S325 значения флага переопределения в значение переопределения; и включение S330 данных флага переопределения в битовый видеопоток.
В некоторых примерных вариантах осуществления, при определении того, что разбиение блока не осуществляется согласно первой информации характеристик разбиения («нет» на этапе S310), осуществляется разбиение S360 блока упомянутой области изображения согласно второй информации характеристик разбиения и установка S365 значения флага переопределения в значение отсутствия переопределения.
На Фиг.14B показан способ кодирования, содержащий этапы: определения S370, разрешено ли разбиение блока согласно первой информации характеристик разбиения. При определении того, что разбиение блока согласно первой информации характеристик разбиения (определено, что оно) разрешено, способ включает в себя установку S340 значения флага разрешения переопределения в разрешающее значение; и включение S350 данных флага разрешения переопределения в битовый видеопоток. Кроме того, при определении того, что разбиение блока согласно первой информации характеристик разбиения (определяется, что оно) разрешено, на этапе S310 определяется, осуществляется ли разбиение блока упомянутой области изображения согласно первой информации характеристик разбиения в заголовке области изображения.
В некоторых примерных вариантах осуществления, при определении того, что разбиение блока согласно первой информации характеристик разбиения (определено, что оно) не разрешено (то есть запрещено), способ включает в себя установку S380 значения флага разрешения переопределения в не разрешающее (запрещающее) значение.
Конкретные особенности в вариантах осуществления настоящего изобретения см. в связанных вариантах осуществления способа декодирования выше. Подробности не описаны здесь снова.
Ниже приводится объяснение применений способа кодирования, а также способа декодирования, как показано в вышеупомянутых вариантах осуществления, и системы, использующей их.
Фиг.14 - это блок-схема, показывающая систему 3100 поставки контента для реализации услуги распространения контента. Эта система 3100 предоставления контента включает в себя устройство 3102 захвата, терминальное устройство 3106 и, в необязательном порядке, включает в себя дисплей 3126. Устройство 3102 захвата обменивается данными с терминальным устройством 3106 по линии 3104 связи. Линия связи может включать в себя канал 13 связи, описанный выше. Линия 3104 связи включает в себя, помимо прочего, WIFI, Ethernet, кабель, беспроводную связь (3G/4G/5G), USB или любое их сочетание и т.п.
Устройство 3102 захвата генерирует данные и может кодировать данные способом кодирования, как показано в приведенных выше вариантах осуществления. В качестве альтернативы устройство 3102 захвата может распространять данные на сервер потоковой передачи (не показан на фигурах), и сервер кодирует данные и передает кодированные данные на терминальное устройство 3106. Устройство 3102 захвата включает в себя, помимо прочего, камеру, смартфон или планшет, компьютер или портативный компьютер, систему видеоконференцсвязи, PDA, установленное на транспортном средстве устройство или сочетание любого из них или тому подобное. Например, устройство 3102 захвата может включать в себя устройство-источник 12, как описано выше. Когда данные включают в себя видео, видеокодер 20, включенный в устройство 3102 захвата, может фактически выполнять обработку кодирования видео. Когда данные включают в себя звук (то есть голос), аудиокодер, включенный в устройство 3102 захвата, может фактически выполнять обработку кодирования звука. Для некоторых практических сценариев устройство 3102 захвата распределяет кодированные видео- и аудиоданные, мультиплексируя их вместе. Для других практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. Устройство 3102 захвата отдельно распределяет кодированные аудиоданные и кодированные видеоданные на терминальное устройство 3106.
В системе 3100 доставки контента терминальное устройство 310 принимает и воспроизводит кодированные данные. Терминальное устройство 3106 может быть устройством с возможностью приема и восстановления данных, таким как смартфон или планшет 3108, компьютер или ноутбук 3110, сетевой видеорегистратор (NVR)/цифровой видеорегистратор (DVR) 3112, телевизор 3114, телеприставка (STB) 3116, система 3118 видеоконференцсвязи, система 3120 видеонаблюдения, персональный цифровой помощник (PDA) 3122, установленное в транспортном средстве устройство 3124, или их сочетание, или подобное, способное декодировать вышеупомянутые кодированные данные. Например, терминальное устройство 3106 может включать в себя устройство-получатель 14, как описано выше. Когда кодированные данные включают в себя видео, видеодекодеру 30, включенному в терминальное устройство, отдается приоритет для выполнения декодирования видео. Когда кодированные данные включают в себя звук, аудиодекодер, включенный в терминальное устройство, получает приоритет для выполнения обработки декодирования звука.
Для терминального устройства с дисплеем, например смартфона или планшета 3108, компьютера или ноутбука 3110, сетевого видеорегистратора (NVR)/цифрового видеорегистратора (DVR) 3112, телевизора 3114, персонального цифрового помощника (КПК) 3122 или установленное в транспортном средстве устройство 3124, терминальное устройство может передавать декодированные данные на свой дисплей. Для терминального устройства, не оборудованного дисплеем, например STB 3116, системы 3118 видеоконференцсвязи или системы 3120 видеонаблюдения, в нем устанавливается контакт с внешним дисплеем 3126 для приема и отображения декодированных данных.
Когда каждое устройство в этой системе выполняет кодирование или декодирование, может использоваться устройство кодирования снимка или устройство декодирования снимка, как показано в вышеупомянутых вариантах осуществления.
Фиг.15 - схема, показывающая структуру примера терминального устройства 3106. После того, как терминальное устройство 3106 принимает поток от устройства 3102 захвата, модуль 3202 обработки протокола анализирует протокол передачи потока. Протокол включает в себя, помимо прочего, протокол потоковой передачи в реальном времени (RTSP), протокол передачи гипертекста (HTTP), протокол потоковой передачи в реальном времени HTTP (HLS), MPEG-DASH, транспортный протокол в реальном времени (RTP), протокол обмена сообщениями в реальном времени (RTMP), или любое их сочетание или тому подобное.
После того, как модуль 3202 обработки протокола обработает поток, создается файл потока. Файл выводится в модуль 3204 демультиплексирования. Модуль 3204 демультиплексирования может разделять мультиплексированные данные на кодированные аудиоданные и кодированные видеоданные. Как описано выше, для некоторых практических сценариев, например в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. В этой ситуации кодированные данные передаются на видеодекодер 3206 и аудиодекодер 3208 без использования модуля 3204 демультиплексирования.
Посредством обработки демультиплексирования генерируются элементарный поток (ES) видео, ES аудио и, в необязательном порядке, субтитры. Видеодекодер 3206, который включает в себя видеодекодер 30, как объяснено в вышеупомянутых вариантах осуществления, декодирует видео ES с помощью способа декодирования, как показано в вышеупомянутых вариантах осуществления, для генерации видеокадра и подает эти данные в модуль 3212 синхронизации. Аудиодекодер 3208 декодирует аудио ES для генерации аудиокадра и подает эти данные в модуль 3212 синхронизации. В качестве альтернативы видеокадр может сохраняться в буфере (не показан на Фиг.15) перед подачей его в модуль 3212 синхронизации. Точно так же аудиокадр может сохраняться в буфере (не показан на Фиг.15) перед подачей его в модуль 3212 синхронизации.
Модуль 3212 синхронизации синхронизирует видеокадр и аудиокадр и подает видео/аудио на видео/аудио дисплей 3214. Например, модуль 3212 синхронизации синхронизирует представление видео и аудио информации. Информация может закодироваться в синтаксисе с использованием меток времени, касающихся представления кодированных аудио- и визуальных данных, и меток времени, касающихся доставки самого потока данных.
Если субтитры включены в поток, декодер 3210 субтитров декодирует субтитры и синхронизирует их с видеокадром и звуковым кадром и передает видео/аудио/субтитры на дисплей 3216 видео/аудио/субтитров.
Настоящее изобретение не ограничивается вышеупомянутой системой, и либо устройство кодирования снимка, либо устройство декодирования снимка в вышеупомянутых вариантах осуществления может быть включено в другую систему, например, автомобильную систему.
Математические операторы
Математические операторы, используемые в настоящей заявке, аналогичны тем, которые используются в языке программирования C. Однако результаты операций целочисленного деления и арифметического сдвига определяются более точно, а также определяются дополнительные операции, такие как возведение в степень и деление с действительным знаком. Правила нумерации и подсчета обычно начинаются с 0, например, «первый» эквивалентен 0-му, «второй» эквивалентен 1-му и т.д.
Логические операторы
Следующие логические операторы определены следующим образом:
x && y Булево логическое "и" для x и y
х || y Булево логическое "или" для x и y
! Булево логическое «не»
x?y:z Если x равен ИСТИНЕ или не равен 0, вычисляется значение y; в противном случае вычисляется значение z.
Операторы отношения
Следующие операторы отношения определены следующим образом:
> Больше чем
>= Больше или равно
< Менее чем
<= Меньше или равно
== Равно
!= Не равно
Когда оператор отношения применяется к элементу или переменной синтаксиса, которой присвоено значение «na» (не применимо), значение «na» обрабатывается как отдельное значение для элемента или переменной синтаксиса. Значение «na» не считается равным любому другому значению.
Побитовые операторы
Следующие побитовые операторы определены следующим образом:
& Побитовое "и". При работе с целочисленными аргументами оперирует дополнительным до двух представлением целочисленного значения. При работе с двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется посредством добавления более значимых битов, равных 0.
| Побитовое "или". При работе с целочисленными аргументами оперирует дополнительным до двух представлением целочисленного значения. При работе с двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется посредством добавления более значимых битов, равных 0.
^ Побитовое «исключающее ИЛИ». При работе с целочисленными аргументами оперирует дополнительным до двух представлением целочисленного значения. При работе с двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется посредством добавления более значимых битов, равных 0.
x >> y Арифметический сдвиг вправо целочисленного представления x с двоичным дополнением на y двоичных цифр. Эта функция определена только для неотрицательных целых значений y. Биты, сдвинутые в старшие значащие биты (MSB) в результате сдвига вправо, имеют значение, равное MSB x до операции сдвига.
x << y Арифметический сдвиг влево целочисленного представления x с дополнением до двух на y двоичных цифр. Эта функция определена только для неотрицательных целых значений y. Биты, сдвинутые в младшие значащие биты (LSB) в результате сдвига влево, имеют значение, равное 0.
В одном или более примерах описанные функции могут быть реализованы в аппаратных средствах, программном обеспечении, встроенном программном обеспечении или любого их сочетания. Если реализованы в программном обеспечении, функции могут храниться или передаваться в виде одной или более инструкций или кода на машиночитаемом носителе и выполняться аппаратным блоком обработки. Машиночитаемый носитель может включать в себя машиночитаемый носитель данных, который соответствует материальному носителю, например носителю данных, или среде передачи, включая в себя любой носитель, который облегчает передачу компьютерной программы из одного места в другое, например, в соответствии с протоколом связи. Таким образом, машиночитаемые носители обычно могут соответствовать (1) материальным машиночитаемым носителям данных, которые являются долговременными, или (2) средам передачи, таким как сигнал или несущая волна. Носители данных могут быть любыми доступными носителями, к которым может получить доступ один или более компьютеров или один или более процессоров для извлечения инструкций, кода и/или структур данных для реализации методик, описанных в этом раскрытии. Компьютерный программный продукт может включать в себя машиночитаемый носитель.
В качестве примера, но не ограничений, такие машиночитаемые носители данных могут содержать RAM, ROM, EEPROM, CD-ROM или другое запоминающее устройство на оптическом диске, запоминающее устройство на магнитном диске или другие магнитные запоминающие устройства, флэш-память или любой другой носитель, который может использоваться для хранения желаемого программного кода в форме инструкций или структур данных и может быть доступен для компьютера. Кроме того, любое соединение правильно называть машиночитаемым носителем. Например, если инструкции передаются с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасный порт, радио и микроволновая печь, тогда коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасный порт, радио и микроволновая связь, включены в определение носителя. Однако следует понимать, что машиночитаемые носители данных и носители данных не включают в себя соединения, несущие волны, сигналы или другие временные носители, а вместо этого направлены на долговременные материальные носители данных. Диск и диск, используемые здесь, включают компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), дискету и диск Blu-ray, где диски обычно воспроизводят данные магнитным способом, а диски воспроизводят данные оптически с помощью лазеров. Объединения вышеперечисленного также должны быть включены в объем машиночитаемых носителей.
Инструкции могут выполняться одним или более процессорами, такими как один или более процессоров цифровых сигналов (DSP), микропроцессоры общего назначения, специализированные интегральные схемы (ASIC), программируемые логические матрицы (FPGA) или другие эквивалентные интегральные или дискретные логические схемы. Соответственно, термин «процессор», используемый здесь, может относиться к любой из вышеупомянутой структуры или любой другой структуре, подходящей для реализации описанных здесь методик. Кроме того, в некоторых аспектах описанные здесь функциональные возможности могут быть предоставлены в рамках выделенных аппаратных и/или программных модулей, сконфигурированных для кодирования и декодирования или включенных в объединенный кодек. Кроме того, методики могут быть полностью реализованы в одной или более схемах или логических элементах.
Методики этого раскрытия могут быть реализованы в большом количестве устройств или устройств, включая беспроводной телефон, интегральную схему (IC) или набор IC (например, набор микросхем). В этом раскрытии описаны различные компоненты, модули или блоки, чтобы подчеркнуть функциональные аспекты устройств, сконфигурированных для выполнения раскрытых технологий, но не обязательно требующих реализации различными аппаратными блоками. Скорее, как описано выше, различные блоки могут быть объединены в аппаратный блок кодека или предоставлены набором взаимодействующих аппаратных блоков, включая один или более процессоров, как описано выше, в сочетании с подходящим программным обеспечением и/или встроенным программным обеспечением.
В одном примере предоставляется способ кодирования, реализованный устройством кодирования, содержащий: разбиение блока упомянутой области изображения согласно информации характеристик разбиения; генерирование битового поток, включающего в себя один или более элементов синтаксиса характеристик разбиения, при этом один или более элементов синтаксиса характеристик разбиения указывают информацию характеристик разбиения, при этом один или более элементов синтаксиса характеристик разбиения сигнализируются на уровне набора параметров снимка (PPS).
Например, информация характеристик разбиения содержит один или более элементов, выбранных из следующего: информация о минимально допустимом размере концевого узла дерева квадрантов (MinQtSizeY), информация о максимальной глубине многотипного дерева (MaxMttDepth), информация о максимально допустимом размере корневого узла двоичного дерева (MaxBtSizeY) и информация о максимально допустимом размере корневого узла троичного дерева (MaxTtSizeY).
Например, в некоторых вариантах осуществления информация характеристик разбиения содержит информацию о минимально допустимом размере концевого узла дерева квадрантов (MinQtSizeY), информацию о максимальной глубине многотипного дерева (MaxMttDepth) и информацию о максимально допустимом размере корневого узла двоичного дерева (MaxBtSizeY).
В некоторых вариантах осуществления информация характеристик разбиения содержит информацию о минимально допустимом размере концевого узла дерева квадрантов (MinQtSizeY), информацию о максимальной глубине многотипного дерева (MaxMttDepth), информацию о максимально допустимом размере корневого узла двоичного дерева (MaxBtSizeY) и информацию о максимально допустимом размере корневого узла троичного дерева (MaxTtSizeY).
В любом способе, упомянутом выше, информация характеристик разбиения включает в себя: N наборов или групп информации характеристик разбиения, соответствующих N типам сегментов, или N наборов или групп информации характеристик разбиения, соответствующих N индексам сегментов, и при этом каждый набор или группа информации характеристик разбиения содержит один или более элементов, выбранных из следующего: информация о минимально допустимом размере концевого узла дерева квадрантов (MinQtSizeY), информация о максимальной глубине многотипного дерева (MaxMttDepth), информация о максимально допустимом размере корневого узла двоичного дерева (MaxBtSizeY) и информация о максимально допустимом размере корневого узла троичного дерева (MaxTtSizeY); где N является положительным целым числом.
Способ может включать в себя: разбиение блока упомянутой области изображения согласно информации характеристик разбиения; и генерирование битового потока, включающего в себя множество элементов синтаксиса характеристик разбиения, при этом множество элементов синтаксиса характеристик разбиения указывают информацию характеристик разбиения, при этом множество элементов синтаксиса характеристик разбиения сигнализируются на уровне набора параметров или в заголовке.
Например, множество элементов синтаксиса характеристик разбиения сигнализируется на любом с уровня набора параметров видео (VPS), уровня набора параметров последовательности (SPS), уровня набора параметров снимка (PPS), заголовка снимка, заголовка сегмента или заголовок клетки.
В некоторых примерных реализациях информация характеристик разбиения содержит информацию о минимально допустимом размере концевого узла дерева квадрантов (MinQtSizeY), информацию о максимальной глубине многотипного дерева (MaxMttDepth) и информацию о максимально допустимом размере корневого узла двоичного дерева (MaxBtSizeY).
Например, информация о характеристик разбиения включает в себя информацию о минимально допустимом размере концевого узла дерева квадрантов (MinQtSizeY), информацию о максимальной глубине многотипного дерева (MaxMttDepth), информацию о максимально допустимом размере корневого узла двоичного дерева (MaxBtSizeY) и информацию о максимально допустимом размере корневого узла троичного дерева (MaxTtSizeY).
В некоторых вариантах осуществления информация характеристик разбиения содержит два или более выбранного из следующего: информация о минимально допустимом размере концевого узла дерева квадрантов (MinQtSizeY), информация о максимальной глубине многотипного дерева (MaxMttDepth), информация о максимально допустимом размере корневого узла двоичного дерева. (MaxBtSizeY) и информация о максимально допустимом размере корневого узла троичного дерева (MaxTtSizeY).
Например, информация характеристик разбиения включает в себя: N наборов или групп информации характеристик разбиения, соответствующих N типам сегментов, или N наборов или групп информации характеристик разбиения, соответствующих N индексам сегментов, и при этом каждый набор или группа информации характеристик разбиения содержит два или более выбранного из следующего: информация о минимально допустимом размере концевого узла дерева квадрантов (MinQtSizeY), информация о максимальной глубине многотипного дерева (MaxMttDepth), информация о максимально допустимом размере корневого узла двоичного дерева (MaxBtSizeY) и информация о максимально допустимом размере корневого узла троичного дерева (MaxTtSizeY); где N является положительным целым числом.
Согласно варианту осуществления предоставляется способ декодирования, реализуемый устройством декодирования, содержащий: анализ из битового потока одного или более элементов синтаксиса характеристик разбиения, при этом один или более элементов синтаксиса характеристик разбиения указывают информацию характеристик разбиения, причем один или более элементов синтаксиса характеристик разбиения получаются с уровня набора параметров снимка (PPS) битового потока; и разбиение блока области изображения согласно информации характеристик разбиения.
В некоторых реализациях информация характеристик разбиения содержит одно или более выбранного из следующего: информация о минимально допустимом размере концевого узла дерева квадрантов (MinQtSizeY), информация о максимальной глубине многотипного дерева (MaxMttDepth), информация о максимально допустимом размере корневого узла двоичного дерева (MaxBtSizeY) и информация о максимально допустимом размере корневого узла троичного дерева (MaxTtSizeY).
Например, информация характеристик разбиения включает в себя информацию о минимально допустимом размере концевого узла дерева квадрантов (MinQtSizeY), информацию о максимальной глубине многотипного дерева (MaxMttDepth) и информацию о максимально допустимом размере корневого узла двоичного дерева (MaxBtSizeY). Информация характеристик разбиения может содержать информацию о минимально допустимом размере концевого узла дерева квадрантов (MinQtSizeY), информацию о максимальной глубине многотипного дерева (MaxMttDepth), информацию о максимально допустимом размере корневого узла двоичного дерева (MaxBtSizeY) и информацию о максимально допустимом размере корневого узла троичного дерева (MaxTtSizeY).
В некоторых вариантах осуществления информация характеристик разбиения содержит: N наборов или групп информации характеристик разбиения, соответствующих N типам сегментов, или N наборов или групп информации характеристик разбиения, соответствующих N индексам сегментов, и при этом каждый набор или группа информации характеристик разбиения содержит одно или более выбранного из следующего: информация о минимально допустимом размере концевого узла дерева квадрантов (MinQtSizeY), информация о максимальной глубине многотипного дерева (MaxMttDepth), информация о максимально допустимом размере корневого узла двоичного дерева (MaxBtSizeY) и информация о максимально допустимом размере корневого узла троичного дерева (MaxTtSizeY); где N является положительным целым числом.
Согласно варианту осуществления предоставляется способ декодирования, реализуемый устройством декодирования, содержащий: анализ из битового потока множества элементов синтаксиса характеристик разбиения, при этом множество элементов синтаксиса характеристик разбиения указывает информацию характеристик разбиения, при этом множество элементы синтаксиса характеристик разбиения получаются с уровня набора параметров битового потока или заголовка битового потока; и разбиение блока упомянутой области изображения согласно информации характеристик разбиения.
Например, множество элементов синтаксиса характеристик разбиения получается из любого одного из уровня набора параметров видео (VPS), уровня набора параметров последовательности (SPS), уровня набора параметров снимка (PPS), заголовка снимка, заголовка сегмента или заголовок клетки.
Например, информация характеристик разбиения включает в себя информацию о минимально допустимом размере концевого узла дерева квадрантов (MinQtSizeY), информацию о максимальной глубине многотипного дерева (MaxMttDepth) и информацию о максимально допустимом размере корневого узла двоичного дерева (MaxBtSizeY).
В некоторых вариантах осуществления информация характеристик разбиения содержит информацию о минимально допустимом размере концевого узла дерева квадрантов (MinQtSizeY), информацию о максимальной глубине многотипного дерева (MaxMttDepth), информацию о максимально допустимом размере корневого узла двоичного дерева (MaxBtSizeY) и информацию о максимально допустимом размере корневого узла троичного дерева (MaxTtSizeY).
В некоторых реализациях информация характеристик разбиения включает в себя два или более выбранного из следующего: информация о минимально допустимом размере концевого узла дерева квадрантов (MinQtSizeY), информация о максимальной глубине многотипного дерева (MaxMttDepth), информация о максимально допустимом размере корневого узла двоичного дерева (MaxBtSizeY) и информация о максимально допустимом размере корневого узла троичного дерева (MaxTtSizeY).
Например, информация характеристик разбиения включает в себя: N наборов или групп информации характеристик разбиения, соответствующих N типам сегментов, или N наборов или групп информации характеристик разбиения, соответствующих N индексам сегментов, и при этом каждый набор или группа информации характеристик разбиения содержит два или более выбранного из следующего: информация о минимально допустимом размере концевого узла дерева квадрантов (MinQtSizeY), информация о максимальной глубине многотипного дерева (MaxMttDepth), информация о максимально допустимом размере корневого узла двоичного дерева (MaxBtSizeY) и информация о максимально допустимом размере корневого узла троичного дерева (MaxTtSizeY); где N является положительным целым числом.
В некоторых примерах информация характеристик разбиения содержит информацию характеристик разбиения, соответствующую разным типам сегментов или соответствующую различным индексам сегментов.
Например, информация характеристик разбиения содержит информацию характеристик разбиения в интра-режиме и/или информацию характеристик разбиения в интра-режиме.
В любом из вариантов осуществления область изображения содержит снимок или часть снимка.
В некоторых вариантах осуществления, когда значение флага разрешения разбиения многотипного дерева из набора параметров снимка (PPS) включает в себя разбиение многотипного дерева для блока, анализ информации характеристик разбиения из набора параметров снимка и применение разбиения многотипного дерева к блоку области изображения согласно информации характеристик разбиения.
Согласно варианту осуществления предоставляется кодер, содержащий схему обработки для выполнения любого из вышеупомянутых способов.
Согласно варианту осуществления предоставляется декодер, содержащий схему обработки для выполнения любого из вышеупомянутых способов.
Согласно варианту осуществления предоставляется компьютерный программный продукт, содержащий программный код для выполнения способа согласно любому из вышеуказанных способов.
Согласно варианту осуществления предоставляется декодер, содержащий: один или более процессоров; и долговременный машиночитаемый носитель данных, соединенный с процессорами и хранящий программы для исполнения процессорами, причем программная часть при ее исполнении процессорами конфигурирует декодер для выполнения способа согласно любому из вышеупомянутых способов декодирования.
Согласно варианту осуществления предоставляется кодер, содержащий: один или более процессоров; и долговременный машиночитаемый носитель данных, соединенный с процессорами и хранящий программы для исполнения процессорами, причем программная часть при ее исполнении процессорами конфигурирует кодер для выполнения способа согласно любому из вышеупомянутых способов декодирования.
Согласно первому аспекту изобретение относится к способу декодирования битового видеопотока, реализуемого устройством декодирования, при этом битовый видеопоток включает в себя данные, представляющие область изображения и заголовок области изображения упомянутой области изображения, способ декодирования включает в себя:
Получение флага переопределения из битового видеопотока;
Когда значение флага переопределения (например, partition_constraint_override_flag) является значением переопределения, получение первой информации характеристик разбиения для упомянутой области изображения из заголовка области изображения;
Разбиение блока упомянутой области изображения согласно первой информации характеристик разбиения.
В возможной реализации разбиение блока упомянутой области изображения согласно первой информации характеристик разбиения содержит: разбиение блока упомянутой области изображения на подблоки согласно первой информации характеристик разбиения. Способ декодирования дополнительно включает в себя: восстановление подблоков.
В возможной реализации, в которой способ декодирования дополнительно содержит этапы, на которых:
Получение флага разрешения переопределения из битового видеопотока;
При этом, когда значение флага разрешения переопределения (например, partition_constraint_override_enabled_flag) является разрешающим значением, получение флага переопределения из битового видеопотока.
В возможной реализации способ декодирования дополнительно включает в себя:
Получение флага наличия управления характеристиками разбиения из битового видеопотока;
При этом, когда значение флага наличия управления характеристиками разбиения (например, partition_constraint_control_present_flag) является истинным, получение флага разрешения переопределения из битового видеопотока.
В возможной реализации битовый видеопоток, дополнительно включающий в себя данные, представляющие набор параметров битового видеопотока, и значение флага наличия управления характеристиками разбиения является ложным, указывает отсутствие элементов синтаксиса управления характеристиками разбиения в наборе параметров.
В возможной реализации набор параметров представляет собой набор параметров снимка или набор параметров последовательности.
В возможной реализации битовый видеопоток дополнительно включает в себя данные, представляющие набор параметров битового видеопотока, и способ декодирования дополнительно содержит этапы, на которых:
Когда значение флага разрешения переопределения является запрещающим значением, разбиение блока упомянутой области изображения согласно второй информации характеристик разбиения для битового видеопотока из набора параметров.
В возможной реализации вторая информация характеристик разбиения содержит информацию о минимально допустимом размере концевого узла дерева квадрантов, информацию о максимальной глубине многотипного дерева, информацию о максимально допустимом размере корневого узла троичного дерева или информацию о максимально допустимом размере корневого узла двоичного дерева.
В возможной реализации вторая информация характеристик разбиения содержит информацию характеристик разбиения, соответствующую различным параметрам, относящимся к областям изображения или соответствующим другому индексу.
В возможной реализации вторая информация характеристик разбиения содержит информацию характеристик разбиения в интра-режиме или информацию характеристик разбиения в интер-режиме.
В возможной реализации вторая информация характеристик разбиения содержит информацию характеристик разбиения для блока яркости или информацию характеристик разбиения для блока цветности.
В возможной реализации битовый видеопоток дополнительно включает в себя данные, представляющие набор параметров битового видеопотока, получение флага разрешения переопределения из битового видеопотока включает в себя получение флага разрешения переопределения из набора параметров.
В возможной реализации получение флага переопределения из битового видеопотока включает в себя получение флага переопределения из заголовка области изображения.
В возможной реализации первая информация характеристик разбиения содержит информацию о минимально допустимом размере концевого узла дерева квадрантов, информацию о максимальной глубине многотипного дерева, информацию о максимально допустимом размере корневого узла троичного дерева или информацию о максимально допустимом размере корневого узла двоичного дерева.
В возможной реализации область изображения содержит сегмент или клетку, а заголовок области изображения содержит заголовок сегмента упомянутого сегмента или заголовок клетки упомянутой клетки.
В возможной реализации, в которой битовый видеопоток дополнительно включает в себя данные, представляющие набор параметров битового видеопотока, способ декодирования дополнительно включает в себя:
Когда значение флага переопределения не является значением переопределения, разбиение блока упомянутой области изображения согласно второй информации характеристик разбиения для битового видеопотока из набора параметров.
В возможной реализации, когда значение флага разрешения разбиения многотипного дерева (например, slice_btt_enabled_flag) из заголовка области изображения разрешает разбиение многотипного дерева для блока, получение первой информации характеристик разбиения и применение разбиений многотипного дерева к блоку области изображения согласно первой информации характеристик разбиения.
В возможной реализации битовый видеопоток дополнительно включает в себя данные, представляющие набор параметров битового видеопотока, когда флаг разрешения разбиения многотипного дерева из заголовка области изображения отсутствует, и значение флага разрешения разбиения многотипного дерева (например, sps_btt_enabled_flag) из набора параметров разрешает разбиение многотипного дерева для блока, разрешает разбиение многотипного дерева для блока, получение второй информации характеристик разбиения для битового видеопотока из набора параметров и применение разбиения многотипного дерева к блоку области изображения согласно второй информации характеристик разбиения.
Согласно второму аспекту изобретение относится к способу декодирования битового видеопотока, реализуемому устройством декодирования, при этом битовый видеопоток включает в себя данные, представляющие блок и первый набор параметров битового видеопотока, способ декодирования включает в себя:
Получение флага переопределения из битового видеопотока;
Когда значение флага переопределения является значением переопределения, получение первой информации характеристик разбиения для блока из первого набора параметров;
Разбиение блока согласно первой информации характеристик разбиения.
В возможной реализации, в которой разбиение блока согласно первой информации характеристик разбиения содержит: разбиение блока на подблоки согласно первой информации характеристик разбиения. Способ декодирования дополнительно включает в себя: восстановление подблоков.
В возможной реализации, в которой способ декодирования дополнительно содержит этапы, на которых:
Получение флага разрешения переопределения из битового видеопотока;
При этом, когда значение флага разрешения переопределения является разрешающим значением, получение флага переопределения из битового видеопотока.
В возможной реализации, в которой способ декодирования дополнительно содержит этапы, на которых:
Получение флага наличия управления характеристиками разбиения из битового видеопотока;
При этом, когда значение флага наличия управления характеристиками разбиения является истинным, получение флага разрешения переопределения из битового видеопотока.
В возможной реализации, в которой битовый видеопоток дополнительно включает в себя данные, представляющие второй набор параметров битового видеопотока, и значение флага наличия управления характеристиками разбиения является ложным, указывает на отсутствие элементов синтаксиса управления характеристиками разбиения в наборе параметров.
В возможной реализации, в которой битовый видеопоток дополнительно включает в себя данные, представляющие второй набор параметров битового видеопотока, и способ декодирования дополнительно содержит этапы, на которых:
Когда значение флага разрешения переопределения является запрещающим значением, выполняется разбиение блока согласно второй информации характеристик разбиения для битового видеопотока из второго набора параметров.
В возможной реализации вторая информация характеристик разбиения содержит информацию о минимально допустимом размере концевого узла дерева квадрантов, информацию о максимальной глубине многотипного дерева, информацию о максимально допустимом размере корневого узла троичного дерева или информацию о максимально допустимом размере корневого узла двоичного дерева.
В возможной реализации вторая информация характеристик разбиения содержит информацию характеристик разбиения, соответствующую различным параметрам, относящимся к областям изображения, представленным битовым видеопотоком или соответствующим другому индексу.
В возможной реализации вторая информация характеристик разбиения содержит информацию характеристик разбиения в интра-режиме или информацию характеристик разбиения в интер-режиме.
В возможной реализации вторая информация характеристик разбиения содержит информацию характеристик разбиения для блока яркости или информацию характеристик разбиения для блока цветности.
В возможной реализации, в которой битовый видеопоток дополнительно включает в себя данные, представляющие второй набор параметров битового видеопотока, получение флага разрешения переопределения из битового видеопотока включает в себя получение флага разрешения переопределения из второго набора параметров.
В возможной реализации получение флага переопределения из битового видеопотока включает в себя получение флага переопределения из первого набора параметров.
В возможной реализации первая информация характеристик разбиения содержит информацию о минимально допустимом размере концевого узла дерева квадрантов, информацию о максимальной глубине многотипного дерева, информацию о максимально допустимом размере корневого узла троичного дерева или информацию о максимально допустимом размере корневого узла двоичного дерева.
В возможной реализации, в которой битовый видеопоток дополнительно включает в себя данные, представляющие второй набор параметров битового видеопотока;
При этом первый набор параметров представляет собой набор параметров снимка, а второй набор параметров представляет собой набор параметров последовательности.
В возможной реализации, в которой битовый видеопоток дополнительно включает в себя данные, представляющие второй набор параметров битового видеопотока, способ декодирования дополнительно включает в себя:
Когда значение флага переопределения не является значением переопределения, блок разбивается согласно второй информации характеристик разбиения для битового видеопотока из второго набора параметров.
В возможной реализации, в которой, когда значение флага разрешения разбиения многотипного дерева из первого набора параметров включает в себя разбиение многотипного дерева для блока, получение первой информации характеристик разбиения и применение разбиения многотипного дерева к блоку в соответствии с информация об первого характеристик разбиения.
В возможной реализации, в которой битовый видеопоток дополнительно включает в себя данные, представляющие второй набор параметров битового видеопотока, когда флаг разрешения разбиения многотипного дерева из первого набора параметров отсутствует и значение флага разрешения разбиения многотипного дерева из второго набора параметров включает в себя разбиение многотипного дерева для блока, разрешает разбиение многотипного дерева для блока, получение второй информации характеристик разбиения для битового видеопотока из второго набора параметров и применение разбиения многотипного дерева к блоку согласно второй информации характеристик разбиения.
Согласно третьему аспекту изобретение относится к способу декодирования битового видеопотока, реализуемому устройством декодирования, при этом битовый видеопоток включает в себя данные первой области изображения и заголовок первой области изображения упомянутой первой области изображения, способ декодирования включает в себя:
Получение флага переопределения из битового видеопотока;
Когда значение флага переопределения является значением переопределения, получение первой информации характеристик разбиения для первой области изображения из заголовка первой области изображения;
Разбиение блока первой области изображения согласно первой информации характеристик разбиения.
В возможной реализации, в которой разбиение блока первой области изображения согласно первой информации характеристик разбиения содержит: разбиение блока первой области изображения на подблоки согласно первой информации характеристик разбиения. Способ декодирования дополнительно включает в себя: восстановление подблоков.
В возможной реализации, в которой способ декодирования дополнительно содержит этапы, на которых:
Получение флага разрешения переопределения из битового видеопотока;
При этом, когда значение флага разрешения переопределения является разрешающим значением, получение флага переопределения из битового видеопотока.
В возможной реализации, в которой способ декодирования дополнительно содержит этапы, на которых:
Получение флага наличия управления характеристиками разбиения из битового видеопотока;
При этом, когда значение флага наличия управления характеристиками разбиения является истинным, осуществляется получение флага разрешения переопределения из битового видеопотока.
В возможной реализации, в которой битовый видеопоток дополнительно включает в себя данные, представляющие вторую область изображения и заголовок второй области изображения упомянутой второй области изображения, и значение флага наличия управления характеристиками разбиения является ложным, указывает на отсутствие элементов синтаксиса управления характеристиками разбиения во втором заголовке области изображения.
В возможной реализации, в которой битовый видеопоток дополнительно включает в себя данные, представляющие вторую область изображения и заголовок второй области изображения упомянутой второй области изображения, и способ декодирования дополнительно содержит этапы, на которых:
Когда значение флага разрешения переопределения является запрещающим значением, разбиение блока первой области изображения согласно второй информации характеристик разбиения для битового видеопотока из заголовка второй области изображения, при этом вторая область изображения содержит блок первой области изображения.
В возможной реализации вторая информация характеристик разбиения содержит информацию о минимально допустимом размере концевого узла дерева квадрантов, информацию о максимальной глубине многотипного дерева, информацию о максимально допустимом размере корневого узла троичного дерева или информацию о максимально допустимом размере корневого узла двоичного дерева.
В возможной реализации вторая информация характеристик разбиения содержит информацию характеристик разбиения, соответствующую различным параметрам, относящимся к областям изображения, представленным битовым видеопотоком или соответствующим другому индексу.
В возможной реализации вторая информация характеристик разбиения содержит информацию характеристик разбиения в интра-режиме или информацию характеристик разбиения в интер-режиме.
В возможной реализации вторая информация характеристик разбиения содержит информацию характеристик разбиения для блока яркости или информацию характеристик разбиения для блока цветности.
В возможной реализации, в которой битовый видеопоток дополнительно включает в себя данные, представляющие вторую область изображения и заголовок второй области изображения упомянутой второй области изображения, получение флага разрешения переопределения из битового видеопотока содержит получение флага разрешения переопределения из заголовка второй области изображения.
В возможной реализации получение флага переопределения из битового видеопотока включает в себя получение флага переопределения из заголовка первой области изображения.
В возможной реализации первая информация характеристик разбиения содержит информацию о минимально допустимом размере концевого узла дерева квадрантов, информацию о максимальной глубине многотипного дерева, информацию о максимально допустимом размере корневого узла троичного дерева или информацию о максимально допустимом размере корневого узла двоичного дерева.
В возможной реализации, в которой битовый видеопоток дополнительно включает в себя данные, представляющие вторую область изображения и заголовок второй области изображения упомянутой второй области изображения;
При этом заголовок первой области изображения является заголовком сегмента, а заголовок второй области изображения является заголовком клетки, а первая область изображения является сегментом, а вторая область изображения является клеткой, а клетка содержит сегмент; или
Заголовок первой области изображения является заголовком клетки, а заголовок второй области изображения является заголовком сегмента, а первая область изображения является клеткой, а вторая область изображения является сегментом, а сегмент содержит клетку.
В возможной реализации, в которой битовый видеопоток дополнительно включает в себя данные, представляющие вторую область изображения и заголовок второй области изображения упомянутой второй области изображения, способ декодирования дополнительно содержит этапы, на которых:
Когда значение флага переопределения не является значением переопределения, разбиение блока первой области изображения согласно второй информации характеристик разбиения для битового видеопотока из заголовка второй области изображения, при этом вторая область изображения содержит блок первой области изображения.
В возможной реализации, в которой, когда значение флага разрешения разбиения многотипного дерева из заголовка первой области изображения разрешает разбиение многотипного дерева для блока, осуществляется получение первой информации характеристик разбиения и применение разбиения многотипного дерева к блоку первой области изображения согласно первой информации характеристик разбиения.
В возможной реализации, в которой битовый видеопоток дополнительно включает в себя данные, представляющие заголовок второй области изображения битового видеопотока, когда флаг разрешения разбиения многотипного дерева из заголовка первой области изображения отсутствует, и значение флага разрешения разбиения многотипного дерева из заголовка второй области изображения включает в себя разбиение многотипного дерева для блока, позволяет разбиение многотипного дерева для блока, осуществляется получение второй информации характеристик разбиения для битового видеопотока из заголовка второй области изображения и применение разбиения многотипного дерева к блоку области изображения согласно второй информации характеристик разбиения.
Согласно четвертому аспекту изобретение относится к устройству для декодирования видеопотока, включающему в себя процессор и память. В памяти хранятся инструкции, которые предписывают процессору выполнять способ согласно первому аспекту, второму аспекту или третьему аспекту или любому возможному варианту осуществления первого аспекта, второго аспекта или третьего аспекта.
Согласно пятому аспекту предлагается машиночитаемый носитель данных, на котором хранятся инструкции, которые при их исполнении предписывают одному или более сконфигурированным процессорам кодировать видеоданные. Инструкции предписывают одному или более процессорам выполнять способ согласно первому аспекту, второму аспекту или третьему аспекту или любому возможному варианту осуществления первого аспекта, второго аспекта или третьего аспекта.
Согласно шестому аспекту изобретение относится к компьютерной программе, содержащей программный код для выполнения способа согласно первому аспекту, второму аспекту или третьему аспекту или любому возможному варианту осуществления первого аспекта, второго аспекта или третьего аспекта при исполнении на компьютере.
Подводя итог, настоящее раскрытие обеспечивает устройство кодирования и декодирования, а также способ кодирования и декодирования. В частности, настоящее раскрытие относится к разбиению блоков и сигнализации параметров разбиения в потоке битов. Флаг переопределения в заголовке области изображения указывает, должен ли блок быть разделен согласно первой информации характеристик разбиения. Флаг переопределения включается в битовый поток, и блок разбивается соответственно.