КВАНТОВАНИЕ ЦВЕТНОСТИ В КОДИРОВАНИИ ВИДЕОСИГНАЛОВ
CHROMA QUANTIZATION IN VIDEO CODING

УРОВЕНЬ ТЕХНИКИ
Следующее поколение стандарта «Высокоэффективное кодирование видеосигналов» (High Efficiency Video Coding - HEVC/H.265), которое была разработано совместно ITU (международный союз электросвязи) и ISO MPEG (экспертная группа кинематографии международной организации по стандартизации), ввело несколько новых средств кодирования видеосигналов с целью улучшения эффективности кодирования видеосигналов по сравнению с предшествующими стандартами и технологиями кодирования видеосигналов, такими как MPEG-2, MPEG-4 Часть2, MPEG-4 AVC/H.264, VC1, и VP8, среди прочих. В своей первой версии, этот новый стандарт может поддерживать кодирование 8-битового или 10-битового материала YUV 4:2:0 с использованием трех, четко определенных профилей, т.е., Главного (Main) профиля, Главного-10 (Main 10) профиля, и Главного профиля неподвижного изображения. Однако работы все еще продолжаются для поддержки более, чем 10-битовой точности выборки (глубины цвета), а также разных форматов выборки цвета и цветовых пространств, включающих в себя YUV 4:2:2, YUV 4:4:4, и RGB 4:4:4, среди прочих. Кодирование таких материалов представляет значительный интерес, в первую очередь, для использования в некоторых профессиональных применениях, таких как применения в кинематографии, съемке, редактировании видеоконтента, архивации, формировании медицинских изображений, и т.д., а также в некоторых потребительских применениях, таких как применение в сжатии и совместном использовании экранного контента, дистанционных вычислениях, и играх, среди прочего.
До недавнего времени, существующие видеокодеки почти всегда отдавали значительно более высокий приоритет кодированию компоненте яркости изображения. Параметры кодирования, которые управляют характеристиками кодирования и качеством информации о яркости, главным образом, обеспечены на нижних уровнях иерархии кодирования видеосигналов, таких как уровень слайса (slice), уровень блока дерева кодирования, уровень блока кодирования, или даже уровень блока преобразования HEVC. Управление и настройка параметров для всех остальных компонент, главным образом, возможны на более высоком уровне, таком как уровень последовательности, уровень набора параметров изображения, или уровень слайсов, в сочетании с модификациями параметров управления яркостью. Например, в MPEG-4 AVC, квантование яркости и соответствующий параметр квантования (Quantization Parameter - QP) контролировался с использованием сигнализируемого параметра на уровне макроблока. Единственный сдвиг для каждой компоненты цветности был обеспечен в наборах параметров изображений. Каждый сдвиг QP цветности управляет значением QP соответствующей компоненты цветности в зависимости от QP яркости, в пределах каждого макроблока. Однако эта зависимость является фиксированной для всего изображения. Если было необходимо изменить качество области яркости или цветности, то тогда подвергались воздействию другие компоненты, вследствие этой очень жесткой зависимости. В HEVC, было также обеспечено некоторое дополнительное управление, поскольку HEVC обеспечивает возможность отдельной сигнализации сдвигов квантования цветности для каждого слайса. Однако, использование многочисленных слайсов может быть нежелательным или нефункциональным для некоторых применений, поскольку обеспеченное управление все же является в некоторой степени грубым.
Для некоторых применений или некоторого контента, способность независимого управления качеством некоторых цветовых компонент может быть очень важной в целях улучшения общего качества, степени сжатия, а также общего восприятия пользователем. Некоторые области, например, могут характеризоваться разными характеристиками текстуры или шума даже в цветовых компонентах, в то время как улучшение цветовых границ может быть более или менее важным, чем обеспечение улучшения этой информации по яркости. Кроме того, для применений формата 4:4:4, таких как совместное использование видеоизображений и дистанционные вычисления, может быть необходимым кодирование RGB-контента, причем важность и, таким образом, необходимый контроль, красного или синего цветовых компонент, как правило, являются более высокими, чем важность компонент цветности в области YUV. Также, может потребоваться кодирование смешанного видеоконтента, который является комбинацией синтетического контента, такого как компьютерная графика или приложения, и естественных изображений или видео. В этом сценарии, при разных характеристиках естественного и синтетического контента, а также возможности того, что естественный контент, который исходно содержал изображения в формате 4:2:0, был преобразован вверх для отображения в формате 4:4:4, наличие способности управления параметрами квантования цветности может, потенциально, сильно повлиять на эффективность кодирования и субъективное качество.
Таким образом, необходим способ, который, по сравнению с существующими кодеками, обеспечивает возможность дополнительного управления параметрами квантования цветности, а также обеспечивает распространение этой поддержки на все общепринятые цветовые форматы (такие как YUV, RGV, YCoCg, или YCoCg-R), на все общепринятые схемы цветовых выборок (такие как 4:2:0, 4:2:2. 4:4:4, или 4:4:4:4), а также на множество глубин цвета для каждой компоненты. Такой способ должен обеспечить сигнализацию и изменение информации о сдвиге QP цветности в пределах блока кодирования значительно более гибким способом, без наложения каких-либо ограничений на форматы цвета или выборки.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Для обеспечения системы кодирования видеосигналов, в которой параметры квантования (quantization parameters - QP) цветности могут быть заданы более гибко, некоторые варианты осуществления данного изобретения обеспечивают способ сигнализации дополнительных значений сдвига QP цветности, которые являются конкретными для групп квантования. В некоторых вариантах осуществления, каждая группа квантования явно задает свой собственный набор значений сдвига QP цветности. В некоторых вариантах осуществления, таблица возможных наборов значений сдвига QP цветности задана в области заголовка изображения или слайса, и каждая группа квантования использует индекс для выбора записи из таблицы для определения своего собственного набора значений сдвига QP цветности. Затем, значения сдвига QP цветности уровня группы квантования используют для определения значений QP цветности для блоков или наборов пикселей в пределах группы квантования. В некоторых вариантах осуществления, значения QP цветности группы квантования используют в сочетании с QP яркости блока и значениями сдвига QP цветности, уже заданными на более высоких уровнях иерархии кодирования видеосигналов.
Некоторые варианты осуществления связывают спецификации сдвига QP цветности с группами квантования (quantization group - QG), которые включают в себя один или более элементов видеоданных. В некоторых вариантах осуществления, каждая QG связана со своим собственным набором спецификаций сдвига QP цветности, и, в некоторых из этих вариантов осуществления, набор спецификаций сдвига QP цветности, связанный с QG, закодирован или встроен в пределах структуры кодирования элемента видеоданных в QG.
Для дополнительного уменьшения непроизводительных затрат или использования битов, некоторые варианты осуществления задают все доступные значения сдвига каждой компоненты, или комбинацию значений обеих компонент, на более высоком уровне, например, в наборе параметров последовательности (sequence parameter set - SPS), наборе параметров изображения (picture parameter set - PPS), или в заголовке текущего слайса. В некоторых из этих вариантов осуществления, заголовок синтаксиса более высокого уровня (заголовок SPS/PPS/слайсов) перечисляет разные возможные значения сдвига в табличной форме, причем каждой записи в таблице назначают индекс. Тогда, на уровне элемента кодирования/группы квантования, некоторые варианты осуществления задают только индекс или индексы необходимых значений сдвига квантования. Такие сдвиги могут быть независимыми от значений сдвига, заданных в заголовке слайса или PPS, или, напротив, могут добавляться к значениям сдвига, заданным в заголовке слайса или PPS. Для уменьшения величины битового потока, некоторые варианты осуществления ограничивают количество записей в таблице максимальным значением.
Кодеры в разных вариантах осуществления используют разные способы для выбора и назначения дополнительных значений сдвига QP цветности, которые являются конкретными для группы квантования. Некоторые варианты осуществления выполняют этап предварительного анализа, на котором кодер выполняет анализ уровня области. Некоторые варианты осуществления идентифицируют разные области в изображении, которые являются областями с разными типами видеоконтента. В некоторых из этих вариантов осуществления, разным областям с разными типами видеоконтента назначают разные значения сдвига QP цветности или разные группы квантования. Некоторые варианты осуществления отличают графический контент от реального видеоконтента. Некоторые варианты осуществления отличают видеоконтент формата 4:4:4, который исходно закодирован в формате 4:4:4, от видеоконтента формата 4:4:4, который получен увеличенной выборкой из формата 4:2:0. Некоторые варианты осуществления отличают видеоконтент, который исходно мог иметь другие глубины цвета. Эти характеристики видеоконтента, дополнительно к их зависимостям от цветовых компонент, а также информацию о регулировании скорости, используют в некоторых вариантах осуществления для определения уровней квантования или зависимостей квантования между всеми цветовыми компонентами.
Предшествующая Сущность изобретения, как предполагается, служит для краткого ознакомления с некоторыми вариантами осуществления данного изобретения. Это не означает, что она является введением или обзором всего предмета изобретения, описанного в этом документе. Подробное описание, которое следует ниже, и Чертежи, которые относятся к Подробному описанию, будут дополнительно описывать варианты осуществления, описанные в Сущности изобретения, а также другие варианты осуществления. Таким образом, для понимания всех вариантов осуществления, описанных в этом документе, необходим полный обзор Сущности изобретения, Подробного описания, и Чертежей.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Новые отличительные признаки данного изобретения изложены в приложенной формуле изобретения. Однако, в целях объяснения, некоторые варианты осуществления данного изобретения показаны на следующих фигурах.
Фиг. 1 показывает иерархическую структуру 100 кодирования видеосигналов, которая включает в себя группы квантования цветности, причем каждая группа квантования цветности имеет свой собственный набор спецификаций сдвига QP цветности.
Фиг. 2а-с показывают некоторые способы для кодирования набора значений сдвига QP цветности для группы квантования цветности.
Фиг. 3 показывает примерный заголовок изображения или набор параметров изображения (picture parameter set - PPS), который задает определение группы квантования цветности.
Фиг. 4 показывает примерный элемент дерева кодирования, который может присутствовать в группе квантования цветности.
Фиг. 5 показывает спецификацию дополнительных сдвигов QP цветности в пределах группы квантования.
Фиг. 6 показывает спецификацию дополнительных сдвигов QP цветности в пределах группы квантования с использованием другого способа для задания значений сдвига QP цветности для двух компонент цветности.
Фиг. 7 концептуально показывает процесс для определения значений QP цветности из битового потока видеоданных, который обеспечивает дополнительные спецификации сдвига QP цветности.
Фиг. 8 показывает иерархическую структуру кодирования видеосигналов, которая включает в себя таблицу возможных значений сдвига QP цветности в заголовке более высокого уровня.
Фиг. 9 показывает примерный заголовок изображения или набор параметров изображения (PPS), который кодирует таблицу сдвигов QP цветности.
Фиг. 10 показывает заголовок изображения, который кодирует каждую запись таблицы сдвигов QP цветности с предсказанием.
Фиг. 11 показывает примерный элемент дерева кодирования, который может присутствовать в группе квантования, которая использует индекс для считывания значений сдвига QP цветности из таблицы в заголовке изображения.
Фиг. 12 показывает группу квантования, которая использует индекс для выбора записи в таблице значений сдвига QP цветности.
Фиг. 13 концептуально показывает процесс для определения значений QP цветности из битового потока видеоданных, который использует таблицу возможных значений сдвига QP цветности для реализации дополнительных спецификаций сдвига QP цветности.
Фиг. 14 показывает псевдокод для заголовка изображения, который включает в себя выбор способа задания дополнительных значений сдвига QP цветности.
Фиг. 15 показывает реализацию псевдокода для элемента преобразования, который способен задать значения сдвига QP цветности для группы квантования с использованием любого из трех разных способов.
Фиг. 16 показывает примерную сегментацию и категоризацию изображения.
Фиг. 17 концептуально показывает процесс 1700 для анализа разных областей изображения и назначения сдвигов QP цветности соответствующим образом.
Фиг. 18 показывает обобщенный кодер видеосигналов.
Фиг. 19 показывает обобщенный декодер видеосигналов.
Фиг. 20 концептуально показывает электронную систему, с использованием которой реализованы некоторые варианты осуществления данного изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
В нижеследующем описании, многие подробности изложены в целях объяснения. Однако специалистам в данной области техники будет понятно, что данное изобретение может быть осуществлено на практике без использования этих конкретных подробностей. В других примерах, общеизвестные структуры и устройства показаны в форме блок-схем, чтобы не затруднять понимание описания данного изобретения несущественными подробностями.
Для обеспечения системы кодирования видеосигналов, в которой параметры квантования цветности (QP цветности) могут быть заданы более гибко, некоторые варианты осуществления данного изобретения обеспечивают способ сигнализации дополнительных значений сдвига QP цветности, которые являются конкретными для групп квантования. В некоторых вариантах осуществления, каждая группа квантования явно задает свой собственный набор значений сдвига QP цветности. В некоторых вариантах осуществления, таблица возможных наборов значений сдвига QP цветности задана в области заголовка изображения или слайса, и каждая группа квантования использует индекс для выбора записи из таблицы для определения своего собственного набора значений сдвига QP цветности. Затем, значения сдвига QP цветности уровня группы квантования используют для определения значений QP цветности для блоков в пределах группы квантования. В некоторых вариантах осуществления, значения QP цветности группы квантования используют в сочетании с QP яркости блока и значениями сдвига QP цветности, уже заданными на более высоких уровнях иерархии кодирования видеосигналов.
Секция I ниже описывает способ для задания дополнительных значений сдвига QP цветности. Конкретно, Секция I.a описывает способы для явного задания дополнительных значений сдвига QP цветности в группах квантования, в то время как Секция I.b описывает способы для задания таблицы возможных значений сдвига QP цветности. Затем, Секция II описывает разные системы и способы для идентификации и назначения дополнительных значений сдвига QP цветности для разных областей изображения. Секция III описывает системы кодера видеосигналов и декодера видеосигналов, которые реализуют некоторые варианты осуществления данного изобретения, в то время как Секция IV описывает вычислительную систему, с использованием которой реализованы некоторые варианты осуществления данного изобретения.
I. ЗАДАНИЕ ДОПОЛНИТЕЛЬНЫХ СДВИГОВ QP ЦВЕТНОСТИ
a. Задание дополнительных сдвигов QP цветности в группах квантования
Некоторые варианты осуществления данного изобретения обеспечивают способ задания значений сдвига параметров квантования цветности (сдвигов QP цветности) для кодирования последовательности видеоданных. Этот способ связывает спецификации сдвига QP цветности с группами квантования цветности, причем каждая QG цветности заключает в себе один или более элементов видеоданных (таких как элементы кодирования в HEVC). В некоторых вариантах осуществления, набор спецификаций сдвига QP цветности, связанный с группой квантования цветности, закодирован или встроен в пределах структуры кодирования элемента видеоданных в группе квантования цветности. В некоторых вариантах осуществления, спецификацию сдвига QP цветности для группы квантования цветности применяют дополнительно к другим спецификациям сдвига QP цветности, которые заданы для структуры кодирования видеоданных на более высоком уровне иерархии кодирования видеосигналов (таком как слайс или изображение), которая заключает в себе группу квантования цветности. В некоторых вариантах осуществления, сдвиги QP цветности из разных уровней применяют вместе (посредством, например, добавления их к значению QP яркости) для определения параметров квантования цветности (QP цветности).
В некоторых вариантах осуществления, группы квантования цветности (QG цветности) определяют дополнительно к группам квантования яркости (QG яркости). QG яркости также заключает в себе один или более элементов видеоданных, но она предназначена для задания параметров квантования яркости (QP яркости). В некоторых вариантах осуществления, QG цветности могут перекрываться с одной или более QG яркости или заключать в себе одну или более QG яркости. Другими словами, разные области в пределах QG цветности могут относиться к разным QG яркости и, следовательно, могут иметь разные QP яркости.
Для некоторых вариантов осуществления данного изобретения, Фиг. 1 показывает иерархическую структуру 100 кодирования видеосигналов, которая включает в себя группы квантования цветности (QG цветности), причем каждая из них имеет свой собственный набор спецификаций сдвига QP цветности. Иерархическая структура 100 кодирования видеосигналов включает в себя несколько изображений 101-103. Среди них, изображение 102 включает в себя несколько слайсов 111-113. Слайс 112 включает в себя несколько QG 121-123 цветности. Изображение 102 имеет набор 132 параметров изображения (PPS), который включает в себя набор спецификаций сдвига QP цветности. QG 121-123 цветности связаны с наборами 141-143 сдвигов QP цветности, соответственно.
Иерархическая структура 100 кодирования видеосигналов соответствует последовательности видеоизображений. Последовательность видеоизображений организуют в слоях элементов видеоданных на различных уровнях иерархии, причем элемент видеоданных на более высоком уровне заключает в себе один или более элементов видеоданных более низких уровней. Например, группа изображений (GOP) является элементом видеоданных на более высоком уровне иерархии, чем изображение, изображение является элементом видеоданных на более высоком уровне иерархии, чем слайс изображения, слайс является элементом видеоданных на более высоком уровне иерархии, чем элемент дерева кодирования, и т.д. В некоторых вариантах осуществления, по меньшей мере некоторые параметры, заданные для элемента видеоданных более высокого уровня, являются применяемыми для элементов видеоданных более низкого уровня, которых элемент видеоданных более высокого уровня заключает в себе. Например, в некоторых вариантах осуществления, спецификация сдвига QP цветности уровня изображения для изображения 102 (из PPS 132) является применяемой для всех QG цветности, заключенных в изображении 102 (например, QG 121-123 цветности).
Структура 100 кодирования видеосигналов кодируется в виде битового потока, в некоторых вариантах осуществления. Такой битовый поток основан на установленном формате кодирования видеосигналов, таком как стандарт HEVC/H.265 или стандарт MPEG-4 AVC/H.264. Изображение по стандарту H.265 может включать в себя один или более слайсов, и каждый слайс может иметь один или более элементов дерева кодирования (coding tree units - CTU). Дополнительно, каждый CTU может быть подразделен на блоки. H.265 также обеспечивает возможность определения групп квантования яркости для квантования/деквантования компонент яркости. Каждая группа квантования имеет возможность получения параметра квантования яркости, который является конкретным для элементов видеоданных в пределах этой группы квантования. После получения, параметр квантования яркости, затем, используют для выполнения квантования DCT-коэффициентов яркости. По стандарту H.265, параметры квантования цветности получают из параметров квантования яркости на основе значений сдвига, обеспеченных на уровне изображения или слайса соответствующего H.265 битового потока. Структура 100 кодирования видеосигналов обеспечивает сигнализацию или спецификацию сдвигов QP цветности, которая является дополнительной к сдвигам QP цветности уровня изображения/слайса, разрешенным стандартом H.265.
QG 141-143 цветности являются определенными диапазонами в структуре 100 кодирования видеосигналов. Каждая из QG 141-143 связана со своим собственным набором значений 141-143 сдвига QP цветности. В некоторых вариантах осуществления, группа квантования может быть группой элементов видеоданных, которые совместно используют один и тот же набор значений QP. В некоторых вариантах осуществления, сигнализацию для сдвигов QP цветности в некоторой QG применяют ко всем элементам видеоданных в пределах этой QG. В некоторых вариантах осуществления, сдвиги QP применяют, начиная с первой сигнализируемой остаточной информации о цветности, и далее. Любые области, предшествующие сигнализации, не связывают с сигнализируемым сдвигом QP цветности. Другими словами, QG может быть «фрагментированной».
В некоторых вариантах осуществления, QG (цветности или яркости) могут быть определены на разных уровнях или глубинах иерархии кодирования видеосигналов, таких как элемент дерева кодирования, элемент кодирования или элемент преобразования, как они поддерживаются в HEVC. В некоторых вариантах осуществления, определение QG для сдвига QP цветности наследует определение QG для компонент яркости, при доступности.
В некоторых вариантах осуществления, глубина, уровень, и размер QG (цветности или яркости) могут быть гибко заданы в битовом потоке и могут изменяться от изображения к изображению. Например, одно изображение (например, 101) может задать, что его QG цветности находятся на верхнем уровне квадродерева кодирования (т.е. QG является CTU), в то время как другое изображение (например, 103) может задать, что его QG цветности находятся на более низком уровне квадродерева кодирования (например, QG является блоком кодирования квадродерева). В некоторых вариантах осуществления, параметры более высокого уровня (такие как PPS или заголовок слайса) задают, на каком уровне иерархии кодирования видеосигналов находятся QG изображения, подлежащего определению.
Фиг. 1 также показывает, как сдвиги, заданные посредством QG цветности, используются для вычисления значений QP цветности. В некоторых вариантах осуществления, таких как варианты осуществления, показанные на фиг. 1, первый набор параметров сдвигов QP цветности уже сигнализирован в PPS 132 (и/или заголовке для слайса 112). В некоторых вариантах осуществления, значения сдвига QP цветности, которые заданы на уровнях выше QG цветности (например, PPS и/или заголовка слайса) игнорируют, когда QG задают свои собственные значения сдвига QP цветности. В некоторых вариантах осуществления, синтаксические элементы сдвига QP цветности более высокого уровня и сдвиги QP цветности уровня QG учитываются совместно для уменьшения непроизводительных затрат. А именно, адаптацию значений QP цветности выполняют, в зависимости от обоих наборов параметров, совместно, и сигнализируемую информацию можно увидеть в виде сдвига «второго порядка». В некоторых из этих вариантов осуществления, значения QP цветности для текущей QG цветности вычисляют следующим образом:
QPchroma[i]=QPluma+QPoffset_pps[i]+QPoffset_quant_group[i] (1)
(QPchroma[i] – QP_цветности[i], QPluma – QP_яркости, QPoffset_pps[i] – сдвиг_QP_pps[i], QPoffset_quant_group[i] – сдвиг_QP_группы_квантования[i])
(i=0 для первой компоненты цветности; i=1 для второй компоненты цветности)
Причем, QPluma является QP компоненты яркости, соответствующей текущей группе квантования цветности, QPoffset_pps[i] является сдвигом QP i-ой компоненты цветности из текущего PPS (или заголовка слайса), и QPoffset_quant_group[i] является дополнительным сдвигом, сигнализируемым на уровне QG для этой компоненты. Таким образом, сумма QPoffset_pps[i]+QPoffset_quant_group[i] образует общий сдвиг QP цветности i-ой компоненты цветности.
В некоторых вариантах осуществления, адаптация значений QP цветности основана на параметрах сдвига QP цветности из многочисленных уровней иерархии кодирования видеосигналов. Например, в некоторых вариантах осуществления, вычисление значений QP цветности учитывает значения сдвига QP цветности из PPS, а также из заголовка слайса. В некоторых из этих вариантов осуществления, значение QP цветности для компоненты цветности i текущей QG вычисляют следующим образом:
QPchroma[i]=QPluma+QPoffset_pps[i]
+ QPoffset_slice[i]+QPoffset_quant_group[i] (2)
Причем, QPoffset_slice[i] (сдвиг_QP_слайса[i]) является сдвигом QP i-ой компоненты цветности из текущего заголовка слайса, QPoffset_pps[i] является сдвигом QP i-ого компоненты цветности из текущего PPS, и сумма QPoffset_pps[i]+QPoffset_slice[i]+QPoffset_quant_group[i] является общим сдвигом QP цветности i-ой компоненты цветности. Некоторые варианты осуществления, необязательно, обеспечивают возможность задания одного или более дополнительных значений сдвига QP цветности в других уровнях иерархии кодирования видеосигналов. Для кодирования или декодирования конкретного блока кодирования, некоторые из этих вариантов осуществления используют некоторые или все значения сдвига QP цветности, заданные на уровнях иерархии кодирования видеосигналов, которые заключают в себе конкретный блок кодирования (или применяются к нему).
Как упомянуто выше, значения QP цветности QG цветности вычисляют посредством добавления сдвигов QP цветности к значению QP яркости, применяемому к QG цветности. В некоторых вариантах осуществления, значение QP яркости, соответствующее QG цветности, может изменяться в пределах QG цветности. Это происходит, поскольку QG яркости и QG цветности могут перекрываться таким образом, что QG цветности может заключать в себе элементы кодирования, которые попадают в разные QG яркости и, таким образом, имеют разные значения QP яркости. Следовательно, разные элементы кодирования в пределах QG цветности могут, в результате, иметь разные значения QP цветности (поскольку сдвиги QP цветности, применяемые к QG цветности, применены к разным значениям QP яркости в пределах QG цветности).
В примере фиг. 1, QG 121 цветности имеет четыре соответствующих значения QP яркости (QPLuma), поскольку QG 121 цветности перекрывается с четырьмя разными QG 171-174 яркости. Эти четыре значения QP яркости QG 121 цветности приводят к четырем возможным значениям QP цветности, после применения сдвигов QP цветности (QPoffset_pps, QPoffset_slice, QPoffset_quant_group) из сдвига 132 PPS и сдвига 141 QG1. Таким образом, элемент кодирования в QG 121 цветности может иметь одно из этих четырех возможных значений QP цветности, в зависимости от базовой QG яркости, в которую попадает элемент кодирования. Подобным образом, QG 123 цветности перекрывается с двумя разными QG 181-182 яркости, и элемент кодирования в QG 123 цветности может иметь одно из двух возможных значений QP цветности, в зависимости от базовой QG яркости, в которую попадает элемент кодирования.
С другой стороны, QG 122 цветности имеет только одно соответствующее значение QP яркости, поскольку QG 122 цветности попадает полностью в пределы QG 175 яркости (или заключает в себе точно такой же набор элементов кодирования, что и QG 175 яркости). Следовательно, все элементы кодирования в QG 122 цветности имеют одно и то же значение QP цветности после применения сдвигов QP цветности.
Поскольку существуют две компоненты цветности для каждой компоненты яркости для большинства форматов кодирования видеосигналов (например, YCbCr), в некоторых вариантах осуществления, каждый сдвиг QP цветности для группы квантования является набором значений, который включает в себя спецификацию для вычисления двух значений сдвига для двух компонент цветности. Для некоторых вариантов осуществления, фигуры 2а-с показывают некоторые способы для кодирования набора значений сдвига для QG 141 фиг. 1. Некоторые варианты осуществления используют только один из этих способов для кодирования набора значений сдвига QP цветности. Некоторые варианты осуществления выбирают разные способы для разных QG, на основе характеристик конкретных QG.
Фиг. 2а показывает набор значений сдвига QP цветности в виде двух независимых значений 241 и 242 сдвига. Эти два значения прямо используются в виде сдвига QP цветности для компоненты [0] (251) и для компоненты [1] (252). Некоторые варианты осуществления выбирают этот способ кодирования сдвига QP цветности, когда две компоненты цветности имеют очень малую корреляцию друг с другом. Дополнительный пример этого способа кодирования значений сдвига QP цветности дополнительно описан ниже со ссылкой на фиг. 5.
Фиг. 2b описывает набор значений сдвига, закодированных в виде одного единственного значения 243, которое одновременно используется в качестве сдвига QP цветности обеими компонентами цветности (253 и 254). Некоторые варианты осуществления выбирают этот способ, когда две компоненты цветности являются очень похожими в своих зависимостях от компоненты яркости. Дополнительный пример этого способа кодирования значений сдвига QP цветности дополнительно описан ниже со ссылкой на фиг. 6.
Фиг. 2с описывает набор значений сдвига, закодированных в виде значения 244 непосредственного сдвига и дельта-значения 245, на основе непосредственного сдвига. В этом примере, значение 244 непосредственного сдвига прямо применяется в качестве сдвига QP цветности первой компоненты (255) цветности, в то время как сумма дельта-значения 245 и непосредственного значения 244 используется в качестве значения сдвига QP цветности второй компоненты (256) цветности. Некоторые варианты осуществления выбирают этот способ, когда две компоненты цветности отличаются в своих зависимостях от компоненты яркости на малый сдвиг, который может быть легко закодирован в битовом потоке с использованием очень малого количества битов. Этот способ кодирует второй сдвиг QP цветности (для компоненты [1]) в зависимости от первого сдвига QP цветности. А именно, второй сдвиг QP цветности теперь предсказывают на основании первого сдвига QP цветности (для компоненты [0]). В некоторых вариантах осуществления, значение QP цветности для первой компоненты цветности вычисляют следующим образом:
QPchroma[0]=QPluma+QPoffset_pps[0]+QPoffset_quant_group[0]. (3)
Значение QP цветности для второй компоненты цветности вычисляют следующим образом:
QPchroma[1]=QPluma+QPoffset_pps[1]+QPoffset_quant_group[0]
+ QPoffset_quant_group[1]. (4)
(i=0 для первой компоненты цветности; i=1 для второй компоненты цветности)
Как упомянуто выше, некоторые варианты осуществления используют значения сдвига QP цветности из многочисленных разных уровней иерархии кодирования видеосигналов для получения конечного значения QP цветности. Для некоторых вариантов осуществления, которые используют значения сдвига QP цветности как из PPS, так и из заголовка слайса, значение QP цветности для первой компоненты цветности вычисляют следующим образом:
QPchroma[0]=QPluma+QPoffset_pps[0]+QPoffset_slice[0]
+ QPoffset_quant_group[0]. (5)
Значение QP цветности для второй компоненты цветности вычисляют следующим образом:
QPchroma[1]=QPluma+QPoffset_pps[1]+QPoffset_slice[1]
+ QPoffset_quant_group[0]+QPoffset_quant_group[1]. (6)
Как упомянуто выше, в некоторых вариантах осуществления, определение группы квантования яркости и/или цветности задают параметрами, которые находятся на уровне изображения. Фиг. 3 показывает примерный заголовок изображения или PPS 300, который задает определение группы квантования цветности. Упомянутый примерный заголовок 300 изображения связан с изображением 102 структуры 100 кодирования видеосигналов. Заголовок 300 изображения описан посредством псевдокода, который модифицирован на основании псевдокода стандарта H.265 для размещения дополнительных сдвигов QP цветности (т.е. адаптации значений QP цветности). В некоторых вариантах осуществления, псевдокод для стандарта видеосигналов (такого как стандарт H.265 или модифицированный стандарт) описывает операции, которые необходимы декодеру видеосигналов при обработке битового потока, который соответствует стандарту видеосигналов. Псевдокод также описывает операции, которые необходимы кодеру видеосигналов при генерации битового потока, который соответствует стандарту видеосигналов.
В целях иллюстрации, псевдокод заголовка 300 изображения показан на фиг. 3 с использованием темных линий 311-313. Линии 311-313 обеспечивают дополнительные значения сдвига QP цветности и определяют группы квантования цветности для сдвигов QP цветности в изображении 102. Конкретно, параметр “additional_chroma_qp_offset” («дополнительный_сдвиг_ QP_цветности») в линии 311 информирует декодер, что в битовом потоке будет существовать дополнительная спецификация сдвига QP цветности. Когда эта переменная не установлена для конкретного изображения, битовый поток не будет включать в себя биты для задания дополнительного сдвига QP цветности для изображения, для предотвращения избыточного расходования битов.
Параметр “chroma_qp_offset_max_depth” («максимальная_глубина_сдвига_QP_цветности») в линии 313 определяет уровень (и, следовательно, размер или иерархическую глубину) QG цветности. Этот параметр может быть установлен равным размеру всего элемента дерева кодирования (coding tree unit - CTU) или может быть уменьшен до размера наименьшего элемента кодирования, возможного в битовом потоке. Некоторые варианты осуществления обеспечивают наличие спецификации и сигнализации дополнительных сдвигов QP цветности на любом необходимом уровне (например, на уровне CTU, на уровне группы квантования, определяющей цветность, на уровне элемента кодирования, на уровне элемента преобразования, и т.д.).
В некоторых вариантах осуществления, вместо определения групп квантования, конкретно для сдвигов QP цветности, битовый поток использует параметр “diff_cu_qp_delta_depth”, который также определяет группы квантования для QG яркости. В некоторых вариантах осуществления, если параметр для определения группы квантования является недоступным, то тогда всему изображению назначают один и тот же QP для яркости, и не разрешают никаких адаптаций QP для яркости.
Фиг. 4 показывает примерный элемент 400 дерева кодирования, который может существовать в группе квантования. Элемент 400 дерева кодирования описан посредством псевдокода, модифицированного на основании псевдокода стандарта H.265 для размещения дополнительных сдвигов QP цветности. Элемент 400 дерева кодирования находится в группе 122 квантования, которая находится в слайсе 112 изображения 102.
Псевдокод для элемента 400 дерева кодирования показан с использованием темных линий 411-413, которые добавлены в целях определения того, является ли элемент дерева кодирования частью QG. Конкретно, на линии 411, параметр “additional_chroma_qp_offset” («дополнительный_сдвиг_QP_цветности») (например, из заголовка 300 изображения) используют для указания того, разрешена ли дополнительная информация о цветности. Параметр “chroma_qp_offset_max_depth” («максимальная_глубина_сдвига_QP_цветности») сравнивают с переменной “log2CbSize” для определения того, находится ли элемент 400 дерева кодирования в группе квантования (такой как группа 122 квантования). Если это так, то псевдокод устанавливает переменную “IsCrCuQpOffsetCoded” равной 0, на линии 412. Для некоторых вариантов осуществления, это также инициализирует начальную точку группы квантования цветности.
Фиг. 5 показывает спецификацию дополнительных сдвигов QP цветности в пределах QG 122. Как описано выше со ссылкой на фиг. 3 и 4, посредством заголовка 300 изображения определено, что QG 122 включает в себя элемент 400 дерева кодирования. Дополнительные сдвиги QP цветности заданы в пределах элемента 500 преобразования элемента 400 дерева кодирования. Элемент 500 преобразования описан посредством псевдокода, модифицированного на основании псевдокода стандарта H.265 для размещения дополнительных сдвигов QP цветности.
Псевдокод для элемента 500 преобразования показан с использованием темных линий 511-519, которые добавлены в целях задания дополнительных сдвигов QP цветности. Конкретно, на линии 511, параметр “additional_chroma_qp_offset” («дополнительный_сдвиг_QP_цветности») используют для указания того, разрешена ли дополнительная информация о цветности. Переменную “IsCrCuQpOffsetCoded” используют для указания того, необходимо ли задать (или принять) информацию о сдвиге QP цветности в элементе 500 преобразования. Если значения сдвига QP цветности для QG 122 уже закодированы, то нет необходимости задавать значения сдвига QP цветности снова.
Если QG 122 еще не закодировала набор значений сдвига QP цветности (например, если переменная “IsCrCuQpOffsetCoded” равна 0), то элемент 500 преобразования на линиях 512-517 задает значения сдвига QP цветности для двух компонент цветности. В этом примере, элемент преобразования задает набор сдвигов QP цветности в виде двух независимых значений со знаком, причем каждое значение со знаком сигнализировано с использованием абсолютного значения (“cu_chroma_cmp0_qp_offset_abs” или “cu_chroma_cmp1_qp_offset_abs”) и флага знака (“cu_chroma_cmp0_qp_delta_sign_flag” и “cu_chroma_cmp0_qp_delta_sign_flag”). Затем, псевдокод устанавливает переменную “IsCrCuQpOffsetCoded” равной 1, указывая на то, что значения сдвига QP цветности этой группы квантования уже заданы.
Как упомянуто выше со ссылкой на фиг. 2a-2b, группы квантования в разных вариантах осуществления задают значения сдвига QP цветности для двух компонент цветности по-разному. Фиг. 6 показывает спецификацию дополнительных сдвигов QP цветности в пределах QG 122 с использованием другого способа для задания значений сдвига QP цветности для двух компонент цветности. Фиг. 6 показывает элемент 600 преобразования, который описан посредством псевдокода, подобного псевдокоду для элемента 500 преобразования, причем единственное отличие состоит в том, что линии 611-616 задают только одно значение сдвига QP цветности (абсолютное значение+знак) для обеих компонент цветности. В некоторых вариантах осуществления, задание одного значения сдвига QP цветности для обеих компонент цветности является достаточным, поскольку в большинстве случаев важность двух компонент цветности может не меняться. Сигнализация одного или двух таких параметров может быть установлена, или может быть сигнализирована в других синтаксических местоположениях более высокого уровня, таких как SPS, PPS, или заголовок слайса.
Для некоторых вариантов осуществления, фиг. 7 концептуально показывает процесс 700 для определения значений QP цветности из битового потока видеоизображений, который обеспечивает дополнительные спецификации сдвига QP цветности. В некоторых вариантах осуществления, процесс 700 выполняется посредством декодера видеосигналов, который использует этот процесс для выполнения деквантования компонент цветности при декодировании битового потока видеосигналов для отображения. В некоторых вариантах осуществления, процесс начинается, когда декодер принял битовый поток видеоданных и начинает декодировать конкретное видеоизображение для отображения или других целей.
В операции 705, процесс 700 обрабатывает параметры в заголовке изображения или PPS конкретного видеоизображения. Как описано выше со ссылкой на фиг. 3, в некоторых вариантах осуществления, заголовок изображения или PPS видеоизображения включает в себя флаги (например, “additional_chroma_qp_offset”), для определения того, разрешены ли дополнительные сдвиги QP цветности для видеоизображения. Заголовок изображения или PPS также идентифицирует уровень иерархии видеосигналов, в котором будут определены группы квантования цветности для дополнительных сдвигов QP цветности (например, посредством установки переменной “chroma_qp_offset_max_depth”).
Далее, процесс идентифицирует (в операции 710) значения сдвига QP цветности более высокого уровня. В некоторых вариантах осуществления, эти значения сдвига QP цветности более высокого уровня являются сдвигами уровня изображения, закодированными в заголовке изображения (или в виде части PPS). В некоторых вариантах осуществления, эти значения сдвига QP цветности более высокого уровня являются сдвигами уровня слайса, закодированными в заголовке слайса. Некоторые варианты осуществления идентифицируют многочисленные значения сдвига QP цветности более высокого уровня, включающие в себя как уровень изображения, так и уровень слайса.
Затем, процесс определяет (в операции 720), являются ли дополнительные сдвиги QP цветности разрешенными или доступными для этого конкретного видеоизображения и/или слайса. Если дополнительные сдвиги QP цветности являются недоступными, то процесс приступает к операции 750. Если дополнительные сдвиги QP цветности являются доступными, то процесс приступает к операции 730.
В операции 730, процесс определяет, достиг ли он начала группы квантования цветности. В некоторых вариантах осуществления, процесс проверяет, находится ли он на уровне иерархии видеосигналов, который идентифицирован в качестве группы квантования цветности. Если процесс не находится в начале группы квантования цветности (например, уже находится внутри группы квантования цветности), то процесс приступает к операции 750. Если процесс находится в начале группы квантования цветности, то процесс приступает к операции 740. Примеры операций 720 и 730 описаны со ссылкой на вышеупомянутую фиг. 4.
В операции 740, процесс идентифицирует значения сдвига QP цветности для группы квантования цветности. В некоторых вариантах осуществления, сдвиги QP цветности кодируются явно в пределах групп квантования цветности, как описано выше со ссылкой на фиг. 5 и 6.
Затем, процесс идентифицирует (в операции 750) значение (значения) QP яркости для группы квантования цветности. Как упомянуто выше, в некоторых вариантах осуществления, значения QP яркости устанавливают согласно группам квантования яркости, которые могут быть или могут не быть такими же, как группы квантования цветности. В зависимости от сигнализации, количество групп квантования яркости может быть большим или меньшим, чем количество групп квантования цветности. В некоторых вариантах осуществления, группа квантования яркости может содержать многочисленные группы квантования цветности, или наоборот. В некоторых вариантах осуществления, группы квантования цветности и группы квантования яркости могут перекрывать друг друга. Следовательно, разные элементы кодирования в одной и той же группе квантования цветности могут иметь разные значения QP яркости, на основе групп квантования яркости.
Далее, процесс вычисляет (в операции 760) значения QP цветности. Для декодера, некоторые варианты осуществления вычисляют значение QP цветности на основании идентифицированных значений QP яркости и на основании каждого идентифицированного сдвига QP цветности. В некоторых вариантах осуществления, это выполняют посредством суммирования значения QP яркости и всех идентифицированных сдвигов QP цветности (из уровня слайса/ изображения и из уровня QG), как показано выше в уравнениях (1)-(6).
Затем, процесс определяет (в операции 770), достиг ли он конца изображения (если сдвиг QP цветности более высокого уровня предназначен для всего изображения) или он достиг конца слайса (если сдвиг QP цветности более высокого уровня предназначен для слайса). Если это так, то процесс 700 завершается. Если это не так, то процесс 700 возвращается к операции 730 для обработки следующей группы квантования.
Как показано выше со ссылкой на фиг. 1-6, значения QP цветности кодируются с предсказанием, посредством использования сдвигов на основании значений QP яркости. Кроме того, в некоторых вариантах осуществления, сами значения сдвига кодируются с предсказанием, посредством обеспечения сдвига друг относительно друга, причем, например, сдвиги уровня QG являются сдвигами относительно сдвигов уровня слайса и/или изображения, и/или значения сдвига одной компоненты цветности кодируют в виде сдвигов относительно другой компоненты цветности. В некоторых вариантах осуществления, сдвиги QP цветности дополнительно предсказывают на основании значений цветности или сдвигов соседних элементов кодирования или блоков, или на основании значений цветности или сдвигов расположенного рядом элемента кодирования или блока в соседнем видеоизображении, поскольку они, по всей вероятности, похожи на элементы кодирования или блоки текущей группы квантования цветности. Некоторые варианты осуществления не выполняют предсказания, по меньшей мере для некоторых групп квантования. В этих примерах, значения QP цветности кодируют явно (не в виде сдвигов), таким образом, что параметры QP компоненты яркости игнорируются (поскольку нет необходимости обеспечения сдвига относительно яркости).
Некоторые варианты осуществления используют флаг для указания того, что набор значений сдвига QP цветности из соседней группы квантования будет использован для текущей группы квантования. В некоторых вариантах осуществления, эта соседняя группа квантования пространственно расположена слева или выше текущей группы квантования. Например, некоторые варианты осуществления используют флаг “cu_qp_update_signal” для указания того, будут ли использованы значения сдвига QP цветности соседней группы квантования. В некоторых вариантах осуществления, флаг “cu_qp_update_signal” («сигнал_обновления_QP_cu») сигнализируют перед параметром “cu_chroma_qp_offset_abs” на линии 612 фиг. 6.
Если флаг равен «1», то текущая группа квантования будет обеспечивать обновление для задания своих собственных значений сдвига QP цветности. Если флаг равен «0», то текущая группа квантования не будет обеспечивать обновление своего набора значений сдвига QP цветности, а, напротив, унаследует свои значения сдвига QP цветности из последнего заданного набора значений сдвига QP цветности (например, из соседней группы квантования слева) или других ранее заданных значений сдвига QP цветности (например, из соседней группы квантования сверху, или другой соседней группы квантования). Если соседние значения сдвига QP цветности являются недоступными, то некоторые варианты осуществления, тогда, используют значения сдвига QP цветности, установленные по умолчанию, из PPS и/или заголовка слайса.
В некоторых вариантах осуществления, флаг “cu_qp_update_signal” может принимать дополнительные возможные значения для обработки разных опций для задания значений сдвига QP цветности. Например, в некоторых вариантах осуществления, если флаг равен «0», то используют значения сдвига QP цветности из левой соседней группы квантования; если флаг равен «1», то используют значения сдвига QP цветности из верхней соседней группы квантования; и, если флаг равен «2», то текущая группа квантования будет явно задавать новый набор значений сдвига QP цветности. Иначе, текущая группа квантования будет использовать значения сдвига QP цветности, установленные по умолчанию, из PPS и/или заголовка слайса. В некоторых вариантах осуществления, значения сдвига QP цветности, унаследованные текущей группой квантования, основаны на средних значениях сдвига QP цветности по меньшей мере двух соседних групп квантования (например, левой и верхней).
Для дополнительного уменьшения непроизводительных затрат, некоторые варианты осуществления задают, что эти дополнительные сдвиги QP цветности могут быть только в пределах малого диапазона значений, т.е., от значения –x до x. Выполнение этого изменяет процесс энтропийного кодирования, поскольку это меняет предсказываемые статистические данные информации, подлежащей сигнализации (т.е., для контекстно-адаптивного бинарного арифметического (Context Adaptive Binary Arithmetic - CABAC) кодирования, или при использовании схемы кодирования с «ограниченной по максимуму» универсальной длиной переменной). В некоторых вариантах осуществления, значение x (например, диапазон) устанавливают для всей последовательности; или сигнализируют на более высоком синтаксическом уровне, таком как PPS, SPS, или заголовок слайса. Некоторые из этих вариантов осуществления выполняют это посредством задания x напрямую, или, если x соответствует степени двойки, то значения log2(x). Некоторые варианты осуществления задают x посредством разделения абсолютного значения, т.е., abs(x), и знака x. В CABAC, значение abs(x) соответствует параметру cMax, необходимому в процессе преобразования в двоичную форму.
b. Задание дополнительных сдвигов QP цветности в таблице
Для дополнительного уменьшения непроизводительных затрат или использования битов, некоторые варианты осуществления задают все возможные значения сдвига каждой компоненты, или комбинацию значений обеих компонент в синтаксисе более высокого уровня, например, в наборе параметров последовательности (sequence parameter set - SPS), наборе параметров изображения (picture parameter set - PPS), или в заголовке текущего слайса. В некоторых из этих вариантов осуществления, заголовок более высокого уровня (заголовок слайса/PPS/SPS) перечисляет разные возможные значения сдвига в табличной форме, причем каждой записи в таблице назначают индекс. Тогда, на уровне элемента кодирования/группы квантования, некоторые варианты осуществления задают только индекс или индексы необходимых значений сдвига квантования. Такие сдвиги могут быть независимыми от значений сдвига, заданных в заголовке слайса или PPS, или, напротив, могут добавляться к значениями сдвига, заданным в заголовке слайса или PPS. Для уменьшения величины битового потока, некоторые варианты осуществления ограничивают количество записей в таблице максимальным значением.
Фиг. 8 показывает иерархическую структуру 800 кодирования видеосигналов, которая включает в себя таблицу 890 возможных значений сдвига QP цветности, кодируемых в заголовке более высокого уровня. QG цветности на более низком уровне структуры кодирования видеосигналов, тогда, использует индекс для выбора одного из возможных значений сдвига QP цветности из таблицы 890, для вычисления значений QP цветности. Структура 800 кодирования видеосигналов является подобной структуре 100 кодирования видеосигналов. Структура 800 кодирования видеосигналов включает в себя несколько изображений 801-803. Среди них, изображение 802 включает в себя несколько слайсов 811-812. Слайс 811 включает в себя несколько QG 821-823 цветности. Изображение 802 имеет набор 831 параметров изображения (PPS), который включает в себя набор спецификаций сдвига QP цветности, который применяется ко всем QG цветности, заключенным в изображении 802. Как упомянуто выше со ссылкой на фиг. 1, а также уравнения (1) и (2), некоторые варианты осуществления также задают сдвиг QP цветности уровня слайса (не показан), и адаптация значений QP цветности основана на параметрах сдвига QP цветности из многочисленных уровней иерархии кодирования видеосигналов. В отличие от QG 121-123 цветности фиг. 1, которые задают свой собственный набор значений сдвига QP цветности, каждая из QG 821-823 цветности выбирает набор значений сдвига QP цветности из таблицы 890.
Таблица 890 является массивом, который включает в себя многочисленные записи. Каждая запись содержит набор сдвигов QP цветности, который может быть выбран любыми группами квантования в изображении. В этом примере, таблица 890 включает в себя записи 891-895, которые соответствуют наборам A, B, C, D, и E сдвигов QP цветности, соответственно. В некоторых вариантах осуществления, каждая из записей может быть выбрана любым количеством групп квантования или ни одной из них. В примере фиг. 8, как QG 822, так и QG 823, выбирает набор А (891) сдвигов QP цветности, в то время как QG 821 выбирает набор С (893) сдвигов QP цветности. В некоторых вариантах осуществления, кодер решает, какие наборы сдвигов QP цветности включить, и сколько наборов сдвигов QP цветности включить в таблицу для минимизации скорости цифровой передачи.
После идентификации набора значений сдвига QP цветности из таблицы 890, вычисление параметров квантования цветности является подобным вычислению параметров квантования цветности фиг. 1. В примере фиг. 8, значения 851 QP яркости (из четырех QG яркости, перекрывающихся с QG 821 цветности) являются применяемыми к QG 821 цветности, значение 852 QP яркости (из такой же QG яркости) является применяемым к QG 822 цветности, и значения 853 QP яркости (из двух QG яркости, перекрывающихся с QG 823 цветности) являются применяемыми к QG 823. Суммирование значений 851 QP яркости, сдвига 831 QP цветности (для изображения 802 и/или для слайса 811), и сдвига С QP цветности (считанного из записи 893 таблицы для QG 821) дает значения 861 QP цветности для QG 821. Суммирование значений 852 QP яркости, сдвига 831 QP цветности, и сдвига А QP цветности (считанного из записи 891 таблицы) дает значения 862 QP цветности для QG 822. Суммирование значений 853 QP яркости, сдвига 831 QP цветности, и сдвига А QP цветности (считанного из записи 891 таблицы) дает значения 863 QP цветности для QG 823.
В некоторых вариантах осуществления, таблицу сдвигов QP цветности кодируют в пределах области заголовка кодированного видеоизображения. Фиг. 9 показывает примерный заголовок изображения или PPS 900, который кодирует таблицу 890. Заголовок 900 изображения описан посредством псевдокода, который модифицирован на основании псевдокода стандарта H.265, для размещения дополнительных сдвигов QP цветности.
Псевдокод для заголовка 900 изображения показан с использованием темных линий 911-917, которые добавлены в целях определения групп квантования для сдвигов QP цветности, а также кодирования таблицы 890. Конкретно, параметр “additional_chroma_qp_offset” в линии 911 информирует декодер о том, что будут присутствовать дополнительные спецификации сдвига QP цветности для изображения 802, а параметр “chroma_qp_offset_max_depth” в линии 913 определяет уровень (и, следовательно, размер или иерархическую глубину) для QG в изображении 802. Линии 914-916 псевдокода, тогда, определяют набор значений сдвига QP цветности для каждой записи (891-895) таблицы 890. Как показано, каждой записи таблицы назначают значение сдвига QP цветности для первой компоненты (“chroma_cmp0_qp_offset[k]”) и значение сдвига QP цветности для второй компоненты (“chroma_cmp1_qp_offset[k]”).
Поскольку две компоненты цветности для каждой записи таблицы сдвигов QP цветности являются, возможно, коррелированными, некоторые варианты осуществления используют значение сдвига QP цветности одной компоненты цветности для предсказания значения сдвига QP цветности другой компоненты цветности. Другими словами, для k-ой записи в таблице, если chroma_cmp0_qp_offset[k] представляет значение сдвига первой компоненты цветности, а chroma_cmp1_qp_offset[k] представляет значение сдвига второй компоненты цветности, то тогда сдвиг QP цветности для второй компоненты цветности k-ой записи вычисляют следующим образом:
chroma_cmp1_qp_offset[k]=chroma_cmp0_qp_offset[k]
+delta_chroma_cmp1_qp_offset[k] (7)
А именно, вместо отправки полного параметра сдвига, т.е., chroma_cmp1_qp_offset[k], некоторые варианты осуществления отправляют дельта-параметр, т.е., delta_chroma_cmp1_qp_offset[k], для вычисления сдвига для второго сдвига QP цветности chroma_cmp1_qp_offset[k]. Фиг. 10 показывает заголовок 1000 изображения, который кодирует каждую запись (891-895) таблицы 890 сдвигов QP цветности (на линиях 1015 и 1016) в виде chroma_cmp0_qp_offset[k] и delta_chroma_cmp1_qp_offset[k], согласно уравнению (7).
Существуют другие возможные способы кодирования с предсказанием таблицы сдвигов QP цветности, для уменьшения использования битов. Например, в некоторых вариантах осуществления, записи таблицы сдвигов QP цветности кодируют с предсказанием друг относительно друга, так что все записи кроме одной являются предсказанными на основании других записей. Одним примером является кодирование каждой последующей записи в таблице, после первой записи, в виде дельта-значения, предсказанного на основании предшествующей записи в таблице. В некоторых вариантах осуществления, первая запись является явным QP. В некоторых вариантах осуществления, первая запись сама является сдвигом, и, таким образом, сама является дельтой.
Фиг. 11 показывает примерный элемент 1100 дерева кодирования, который может быть в группе квантования, которая использует значения сдвига QP цветности из таблицы в заголовке изображения. Элемент 1100 дерева кодирования описан посредством псевдокода, модифицированного на основании псевдокода стандарта H.265 для размещения дополнительных сдвигов QP цветности. Элемент 1100 дерева кодирования находится в группе 821 квантования слайса 811. Слайс 811 находится в изображении 802, чей заголовок или PPS включает в себя таблицу 890. Псевдокод для элемента 1100 дерева кодирования является идентичным псевдокоду для элемента 400 дерева кодирования фиг. 4, поскольку, в некоторых вариантах осуществления, не существует разницы между элементом дерева кодирования в группе квантования, которая встраивает значения сдвига QP цветности явно, и элементом дерева кодирования в группе квантования, которая использует набор значений сдвига QP цветности из таблицы.
Псевдокод для элемента 1100 дерева кодирования показан с использованием темных линий 1111-1113, которые добавлены в целях определения того, является ли элемент дерева кодирования частью QG. Конкретно, на линии 1111, параметр “additional_chroma_qp_offset” используют для указания того, разрешена ли дополнительная информация о цветности. Параметр “chroma_qp_offset_max_depth” сравнивают с переменной “log2CbSize” для определения того, находится ли элемент 1100 дерева кодирования в группе квантования цветности. Для некоторых вариантов осуществления, это также инициализирует начальную точку группы квантования цветности.
Фиг. 12 показывает группу квантования, которая использует индекс для выбора записи в таблице значений сдвига QP цветности. Как описано выше, группа 821 квантования включает в себя элемент 1100 дерева кодирования, который, в свою очередь, включает в себя элемент 1200 преобразования. Элемент 1200 преобразования описан на фиг. 12 посредством псевдокода, модифицированного на основании псевдокода стандарта H.265 для размещения дополнительных сдвигов QP цветности.
Псевдокод для элемента 1200 преобразования показан с использованием темных линий 1211-1214, которые добавлены в целях задания дополнительных сдвигов QP цветности. Конкретно, на линии 1211, параметр “additional_chroma_qp_offset” используют для указания того, разрешена ли дополнительная информация о цветности. Переменную “IsCrCuQpOffsetCoded” используют для указания того, необходимо ли задать (или принять) информацию о сдвигах QP цветности в элементе 1200 преобразования. Если значения сдвига QP цветности для QG 821 уже закодированы, то нет необходимости задавать значения сдвига QP цветности снова. Если QG 821 еще не закодировала набор значений сдвига QP цветности (т.е., если переменная “IsCrCuQpOffsetCoded” равна 0), то элемент 1200 преобразования на линиях 1212 задает индекс “cu_chroma_qp_offset_table_index” для выбора записи из таблицы 890. Для этого примера, значение индекса устанавливают для выбора значений сдвига QP цветности, содержащихся в записи С (893) таблицы 890.
Для некоторых вариантов осуществления, фиг. 13 концептуально показывает процесс 1300 для определения значений QP цветности из битового потока видеоданных, который использует таблицу возможных значений сдвига QP цветности для реализации дополнительных спецификаций сдвига QP цветности. В некоторых вариантах осуществления, процесс 1300 выполняют посредством декодера видеосигналов, который использует этот процесс для выполнения деквантования компонент цветности при декодировании битового потока видеоданных для отображения или других целей. В некоторых вариантах осуществления, процесс 1300 начинается, когда декодер принял битовый поток видеоданных и начинает декодировать конкретное видеоизображение, в некоторых вариантах осуществления.
В операции 1305, процесс 1300 обрабатывает параметры в заголовке изображения или PPS конкретного видеоизображения. В некоторых вариантах осуществления, заголовок изображения включает в себя флаги для определения того, разрешены ли дополнительные сдвиги QP цветности для видеоизображения. Заголовок изображения также включает в себя параметры для идентификации уровня иерархии кодирования видеосигналов, в котором будут определены группы квантования для дополнительных сдвигов QP цветности.
Далее, процесс идентифицирует (в операции 1310) значения сдвига QP цветности более высокого уровня. В некоторых вариантах осуществления, эти значения сдвига QP цветности более высокого уровня являются сдвигами уровня изображения, закодированными в заголовке изображения (или в виде части PPS). В некоторых вариантах осуществления, эти значения сдвига QP цветности более высокого уровня являются сдвигами уровня слайса, закодированными в заголовке слайса. Некоторые варианты осуществления идентифицируют многочисленные значения сдвига QP цветности более высокого уровня, включая как уровень изображения, так и уровень слайса.
Затем, процесс определяет (в операции 1320), разрешены ли и доступны ли дополнительные сдвиги QP цветности для этого конкретного видеоизображения или слайса. Если дополнительные сдвиги QP цветности являются недоступными, то процесс приступает к операции 1350. Если дополнительные сдвиги QP цветности являются доступными, то процесс приступает к операции 1325 для приема записей таблицы сдвигов QP цветности из битового потока.
Далее, процесс определяет (в операции 1330), достиг ли он начала группы квантования. В некоторых вариантах осуществления, процесс проверяет, находится ли он на уровне иерархии видеосигналов, который идентифицирован в качестве группы квантования. Если процесс не находится в начале группы квантования (например, уже находится внутри QG), то процесс приступает к операции 1350. Если процесс находится в начале группы квантования, то процесс приступает к операции 1335.
В операции 1335, процесс определяет, существуют ли какие-либо остаточные коэффициенты цветности для кодирования. В некоторых вариантах осуществления, если не существует никаких остаточных коэффициентов цветности, то тогда сдвиги (или их соответствующие индексы) не сигнализируют. Сигнализация начинается, когда встречается первый ненулевой коэффициент преобразования для блока цветности, и сдвиги QP цветности становятся активными от этой точки дальше и до конца группы квантования цветности. Сдвиги QP цветности равны 0, пока не встретится первый ненулевой коэффициент преобразования блока цветности (следовательно, область без коэффициентов цветности может не иметь никакой сигнализации сдвигов QP цветности). Если существуют остаточные коэффициенты цветности для кодирования, то процесс приступает к операции 1340. Иначе, процесс приступает к операции 1350.
В операции 1340, процесс выбирает одну или более записей в таблице сдвигов QP цветности, содержащую набор значений сдвига QP цветности для группы квантования. В некоторых вариантах осуществления, эта операция влечет за собой прием индекса из битового потока и использование принятого индекса для выбора записи из таблицы сдвигов QP цветности. В некоторых вариантах осуществления, которые кодируют с предсказанием значения сдвига QP цветности в таблице, этот процесс включает в себя восстановление значений сдвига QP цветности (обеих компонент цветности) на основании предсказанных значений или дельта-значений.
Затем, процесс идентифицирует (в операции 1350) значения QP яркости для группы квантования. Как упомянуто выше, в некоторых вариантах осуществления, значения QP яркости определяют для группы квантования, которая является такой же, как группа квантования для значений QP цветности. В некоторых вариантах осуществления, группы квантования для QG яркости и QG цветности определяют независимо.
Далее, процесс вычисляет (в операции 1360) значения QP цветности. Некоторые варианты осуществления вычисляют значение QP цветности на основании идентифицированных значений QP яркости и на основании каждого идентифицированного сдвига QP цветности. В некоторых вариантах осуществления, это выполняют посредством суммирования значения QP яркости и всех идентифицированных сдвигов QP цветности (из уровня слайса/изображения и из уровня QG), как показано выше в уравнениях (1)-(6).
Затем, процесс определяет (в операции 1370), достиг ли он конца изображения (если сдвиг QP цветности более высокого уровня предназначен для всего изображения), или он достиг конца слайса (если сдвиг QP цветности более высокого уровня предназначен для слайса). Если это так, то процесс 1300 завершается. Если это не так, то процесс 1300 возвращается к операции 1330 для обработки следующей группы квантования.
Фиг. 5, 6, и 12 представили несколько разных способов, которые группа квантования может использовать для задания набора значений сдвига QP цветности. В некоторых вариантах осуществления, группы квантования в разных изображениях или слайсах могут использовать разные способы для задания значений сдвига QP цветности. Кодер, в некоторых из этих вариантов осуществления, выбирает наилучший способ, который, как он считает, необходим для текущего изображения или слайса, для обеспечения более высокой гибкости или уменьшения непроизводительных затрат кодирования.
Для некоторых вариантов осуществления, фиг. 14 показывает псевдокод для заголовка 1400 изображения, который включает в себя выбор способа задания дополнительных значений сдвига QP цветности. Заголовок 1400 изображения является похожим на заголовок 900 изображения тем, что он включает в себя флаги “additional_chroma_qp_offset” (на линии 1411) и “chroma_qp_offset_max_depth” (на линии 1413). Заголовок 1400 изображения также включает в себя записи таблицы 890 сдвигов QP цветности (на линиях 1415-1417). Однако, в отличие от заголовка 900 изображения, заголовок 1400 изображения также задает способ, посредством установки “chroma_qp_offset_method” («способ_сдвига_QP_цветности») (на линии 1414).
Фиг. 15 показывает реализацию псевдокода для элемента 1500 преобразования, который способен задавать значения сдвига QP цветности для группы квантования с использованием любого из трех разных способов. Когда флаг способа “chroma_qp_offset_method” установлен равным 0 (на линии 1512), элемент 1500 преобразования использует индекс “cu_chroma_qp_offset_table_index” (индекс_таблицы_сдвигов_QP_цветности_cu») для выбора записи из таблицы 890, для вычисления значений сдвига QP цветности QG 821, как на фиг. 12. Когда флаг способа установлен равным 1 (на линии 1514), элемент 1500 преобразования кодирует два независимых значения сдвига QP цветности для двух компонент цветности (с использованием как флага абсолютного значения, так и флага знака), как на фиг. 5. Когда флаг способа установлен равным 2 (на линии 1522), элемент 1500 преобразования кодирует только одно значение сдвига QP цветности для обеих компонент цветности, как на фиг. 6.
II. НАЗНАЧЕНИЕ ДОПОЛНИТЕЛЬНЫХ СДВИГОВ QP ЦВЕТНОСТИ
Кодеры, в разных вариантах осуществления, используют разные способы для идентификации и назначения дополнительных значений сдвига QP цветности. В некоторых вариантах осуществления, кодер анализирует изображения в последовательности видеоданных для идентификации наиболее подходящих значений QP для квантования (например, для оптимального баланса качества и скорости цифровой передачи). Некоторые варианты осуществления анализируют различные области изображения для идентификации групп квантования, которые могут быть оптимально закодированы посредством общего набора значений QP цветности.
Некоторые варианты осуществления выполняют этап предварительного анализа, в котором кодер выполняет анализ уровня области (например, для каждого блока NxM, где, например, N=M=4, или анализ на основе сегментирования объекта), для извлечения для каждой цветовой компоненты в этой области интенсивности (например, среднего значения, или осветленности для яркости и насыщенности для цвета), оттенка цвета, характеристик дисперсии/активности/текстур, характеристик шума, и характеристик движения (например, вектор движения и/или предсказываемое значение искажений).
Поскольку видеоконтент разных типов может быть объединен в одном и том же видеопотоке или даже в одном и том же видеоизображении, некоторые варианты осуществления идентифицируют разные области в изображении, которые являются областями разных типов видеоконтента. В некоторых из этих вариантов осуществления, разным областям с разными типами видеоконтента назначают разные значения сдвига QP цветности, или им назначают разные группы квантования. Некоторые варианты осуществления отличают графический контент от реального видеоконтента. Некоторые варианты осуществления отличают видеоконтент формата 4:4:4, который исходно закодирован в формате 4:4:4, от видеоконтента формата 4:4:4, который получен увеличенной выборкой из формата 4:2:0. Некоторые варианты осуществления отличают видеоконтент, который исходно мог иметь другие глубины цвета. Эти характеристики видеоконтента, дополнительно к их зависимостям от цветовых компонент, а также информацию о регулировании скорости, используют в некоторых вариантах осуществления для определения уровней квантования или зависимостей квантования между всеми цветовыми компонентами.
Фиг. 16 показывает примерную сегментацию и категоризацию изображения 1600. Изображение разделено на элементы дерева кодирования, и каждый элемент дерева кодирования подразделен на элементы кодирования. Различные элементы кодирования изображения 1600 разделены на четыре разных группы сдвигов QP цветности. В некоторых вариантах осуществления, четыре разных группы сдвигов QP цветности сигнализируют в PPS, и кодер может выбрать подходящую группу, подлежащую сигнализации на уровне группы квантования. В некоторых вариантах осуществления, сдвиги QP цветности явно сигнализируют в пределах каждой группы квантования во время кодирования.
Выбор значения сдвига QP цветности определен относительными визуальными сложностями или текстурами, среди компонент яркости и цветности. Группам квантования изображения 1600 назначают разные категории 1611-1614 согласно их уровням текстурирования. Например, области, которые кажутся однородными по всем цветовым компонентам, относятся к первой категории 1611, однородные области яркости с высокотекстурированными цветовыми компонентами относятся ко второй категории 1612, высокотекстурированные области яркости с однородной цветовой информацией относятся к третьей категории 1613, в то время как области с высокой степенью текстурирования по всем трем компонентам относятся к четвертой категории 1614. Кодер, в некоторых вариантах осуществления, может создавать дополнительные подкатегории для каждой категории, на основе движения и интенсивности. В некоторых вариантах осуществления, дополнительные категоризации выполняют посредством учета различий между самими двумя компонентами цветности.
Эти категоризации могут быть, затем, использованы для задания разных наборов сдвигов QP цветности для разных категорий. Например, в некоторых вариантах осуществления, первой категории 1611 (все однородные) назначают нулевые или отрицательные сдвиги QP. В этом сценарии, отрицательный сдвиг QP цветности обеспечивает возможность назначения улучшенного качества цветности в таких областях, поскольку улучшенное качество цветности может быть более заметным вследствие характеристик всех цветовых компонент. Для второй категории 1612 (однородная яркость, высокотекстурированная цветовая информация) может быть использован больший, положительный сдвиг QP. В этом случае, больший QP цветности обеспечивает возможность лучшего управления компонентами цветности, чтобы не подавить компоненты яркости, в то время как некоторое маскирование текстуры из информации о цветности может быть, все же, использовано для обеспечения хорошего субъективного качества. Для третьей категории 1613 (высокотекстурированная яркость и однородная цветность), некоторые варианты осуществления используют больший отрицательный сдвиг QP цветности, который помогает при обеспечении немного лучшего цветового качества. Некоторые другие варианты осуществления используют больший положительный сдвиг QP цветности для лучшего использования маскирование текстуры яркости. Для четвертой категории 1614 (высокая степень текстурирования по всем трем компонентам), некоторые варианты осуществления используют нулевой или положительный сдвиг QP цветности для лучшего использования маскирования текстуры яркости и предотвращения избыточного расходования битов на несущественное улучшение субъективного качества цветности. Следует отметить, что точные значения сдвига QP цветности, назначенные для группы квантования, зависят от соответствующих значений QP яркости для этой группы квантования. Разные решения могут быть выполнены на основе субъективного или объективного качества и механизмов выбора скорости цифровой передачи, в других кодерах.
В некоторых вариантах осуществления, если разрешено или необходимо ограниченное количество сдвигов QP цветности (их спецификация может потребовать задания возможного увеличения непроизводительных затрат битов, кроме определения областей и необходимых им наборов сдвигов QP), то выполняют дополнительный выбор, на основе распространенности каждого набора сдвигов, а также его воспринимаемого субъективного или объективного влияния на качество.
Эти критерии, затем, используются некоторыми из этих вариантов осуществления для «отсечения» возможного количества наборов сдвигов QP цветности, сигнализируемых в пределах битового потока, поскольку теперь в пределах битового потока сигнализируются только наиболее критичные наборы сдвигов. Областям, классифицированным в категориях, которые «отсечены», может быть, все же, назначен набор сдвигов, который является достаточно близким к необходимым значениям. Это является компромиссом, который может быть сделан, если задан некоторый субъективный или объективный процесс взвешивания, согласно которому сдвиги QP цветности, которые заданы, являются, отдельно, «субоптимальными» для всех групповых типов областей, но, если заданы ограничения скорости цифровой передачи, возможно, обеспечат наилучшую общую/совместную производительность.
Для применений в реальном времени, когда предварительный анализ невозможен, некоторые варианты осуществления используют «установленный выбор» сдвигов QP. В некоторых вариантах осуществления, этот выбор основан на анализе данных из предшествующих изображений, которые уже закодированы. В некоторых вариантах осуществления, в которых сдвиги QP цветности явно сигнализируют для каждой группы квантования, выбор выполняют «на лету» или динамически для каждого активно кодируемого блока, на основе его выбранного параметра квантования яркости, его различных пространственно-временных и цветовых характеристик, а также информации о кодировании из прошлых блоков (т.е., какая была скорость цифровой передачи, какие были побитовые зависимости между яркостью и цветностью, а также каким было введенное искажение других подобных или соседних блоков, закодированных ранее). В некоторых вариантах осуществления, параметры квантования яркости получают совместно со сдвигами QP цветности, если задан один и тот же тип скорости цифровой передачи и зависимостей между характеристиками контента и условий.
Некоторые варианты осуществления дополнительно улучшают выбор сдвигов QP цветности текущего изображения посредством проверки соседних с ним изображений. Конкретно, некоторые варианты осуществления проверяют, как эти соседние изображения были закодированы или будут закодированы, а также, насколько эти соседние изображения соответствуют по времени текущему изображению или его областям. Например, если текущее изображение подлежит кодированию в качестве «ключевого» изображения (например, в качестве изображения с внутренним или «периодическим» обновлением), то некоторые варианты осуществления могут закодировать дополнительные сдвиги QP цветности для улучшения качества цветности текущего изображения. Напротив, если текущее изображение является изображением однократного использования или менее важным изображением в иерархии кодирования, то некоторые варианты осуществления могут воздержаться от назначения дополнительных сдвигов QP цветности способом, который приводит к повышенной скорости цифровой передачи (или могут совсем не использовать дополнительные сдвиги QP цветности). Для других типов изображений, некоторые варианты осуществления используют более умеренное изменение сдвигов QP цветности для достижения лучшего компромисса между скоростью цифровой передачи и качеством.
В некоторых вариантах осуществления, разные параметры сдвигов QP цветности задают для разных уровней масштабируемости, например, для разрешения, качества, глубины цвета, и т.д. Некоторые варианты осуществления применяют дополнительные сдвиги QP цветности для 3D/многовидовых применений, где разные сдвиги QP цветности назначают разным видам. Например, пространственное маскирование может быть рассмотрено для назначения и предсказания сдвигов QP цветности для уменьшения непроизводительных затрат и максимизации субъективного качества такой системы.
Для некоторых вариантов осуществления, фиг. 17 концептуально показывает процесс 1700 для анализа разных областей изображения и назначения сдвигов QP цветности соответствующим образом. Этот процесс выполняют посредством декодера видеосигналов, в некоторых вариантах осуществления.
Процесс начинается, когда он принимает (в операции 1710) видеоизображение. Это видеоизображение может быть необработанным изображением в несжатом видеопотоке или декодированным изображением из сжатого битового потока видеоданных. Затем, процесс идентифицирует (в операции 1720) область в изображении, которая имеет общие характеристики, что обеспечивает для элементов кодирования в этой области возможность наличия общего набора значений сдвига QP цветности. Например, некоторые варианты осуществления идентифицируют область, которая исходно закодирована в формате 4:2:0, в виде области, в которой более высокие значения QP (и, следовательно, положительный сдвиг QP цветности) могут быть использованы для уменьшения скорости цифровой передачи. Напротив, некоторые варианты осуществления идентифицируют область, которая исходно закодирована в формате 4:4:4, в виде области, в которой более низкие значения QP (и, следовательно, более низкие или отрицательные значения сдвига QP) необходимы для поддержки качества.
Затем, процесс анализирует (в операции 1730) пространственно-временные характеристики каждой области. В некоторых вариантах осуществления, этот анализ включает в себя анализ текстуры/дисперсии/активности области, формата (4:4:4 или 4:2:0, и т.д.), шума, движения, глубины цвета, или других характеристик, которые могут влиять на зависимость между яркостью и цветностью, а также между двумя компонентами цветности.
Далее, процесс назначает (в операции 1740) значения сдвига QP цветности, на основе анализа области. В некоторых вариантах осуществления, процесс сначала идентифицирует подходящее значение сдвига QP цветности для области, на основе анализа, выполняемого в операции 1730, затем вычитает выбранное значение QP яркости из идентифицированного значения QP цветности, для получения необходимого общего значения сдвига QP цветности. Процесс 1740, в некоторых вариантах осуществления, также разлагает общее значение сдвига QP цветности на значения сдвига QP цветности на различных уровнях иерархии кодирования видеосигналов (например, изображение, слайс, и группа квантования). Некоторые варианты осуществления идентифицируют значения сдвига QP цветности для групп квантования посредством вычитания значений сдвига QP цветности для синтаксических элементов более высокого уровня из общего значения сдвига QP цветности. В некоторых вариантах осуществления, эту операцию выполняют посредством контроллера скорости, описанного со ссылкой на фиг. 18 ниже.
Затем, процесс заполняет (в операции 1750) таблицу сдвигов QP цветности значениями сдвига QP цветности, идентифицированными для групп квантования в области. Процесс 1700 также кодирует соответствующие им значения индексов в группах квантования, как описано в Секции I.b выше. Для некоторых вариантов осуществления, которые задают значения сдвига QP цветности явно, процесс 1700 кодирует значения сдвига QP цветности в пределах самих групп квантования, как описано в Секции I.а выше.
Затем, процесс определяет (в операции 1760), существуют ли еще области в изображении, которые подлежат анализу. Если это так, то процесс возвращается к операции 1720. Иначе, процесс 170 завершается.
III. ВИДЕОСИСТЕМЫ
Фиг. 18 показывает обобщенный кодер 1800 видеосигналов (например, HEVC-кодер) для некоторых вариантов осуществления данного изобретения. Кодер 1800 видеосигналов принимает видеопоток от источника 1805 видеоданных и создает сжатый, кодированный битовый поток 1895, подлежащий запоминанию и/или передаче.
Кодер видеосигналов включает в себя модуль 1810 преобразования, модуль 1815 квантования, энтропийный кодер 1820, модуль 1825 обратного квантования, модуль 1830 обратного преобразования, фильтр 1840 деблокирования, фильтр 1845 адаптивного к выборке сдвига (sample adaptive offset - SAO), кадровый буфер 1850, модуль 1835 управления скоростью, и модуль 1890 предсказания. Модуль 1890 предсказания включает в себя модуль 1860 оценки движения, модуль 1865 компенсации движения, модуль 1870 внутреннего предсказания, и модуль 1880 выбора режима. Кодер 1800 видеосигналов также включает в себя устройство 1855 отображения видеоданных, в некоторых вариантах осуществления.
Модуль 1815 квантования является модулем, который использует параметры квантования для выполнения квантования на основании коэффициентов преобразования (например, DCT) из модуля 1810 преобразования. В некоторых вариантах осуществления, модуль 1810 преобразования может быть полностью обойден (например, в режиме обхода преобразования, поддерживаемого HEVC), таким образом, чтобы модуль 1815 квантования принимал значения изображения или коды ошибок предсказания изображения без преобразования. Модуль 1815 квантования применяет разные значения QP для разных областей/блоков, для каждой цветовой компоненты. Значения QP, используемые модулем 1815 квантования, также кодируют в качестве значений QP яркости и сдвигов QP цветности в битовом потоке 1895. В некоторых вариантах осуществления, значения QP, используемые модулем 1815 квантования, определяются и поставляются модулем 1835 управления скоростью.
Модуль 1835 управления скоростью управляет скоростью цифровой передачи кодированного битового потока видеоданных посредством управления значениями QP, которые используются модулем 1815 квантования (и модулем 1825 обратного квантования). В некоторых вариантах осуществления, модуль 1835 управления скоростью поставляет разные значения QP к модулю 1815 квантования для разных групп квантования. Для идентификации значений QP (для яркости и цветности), которые являются наиболее подходящими для квантования (например, имеют оптимальный баланс между качеством и скоростью цифровой передачи для данной последовательности видеоданных), модуль 1835 управления скоростью, в некоторых вариантах осуществления, выполняет по меньшей мере некоторые операции анализа, описанного в Секции II выше, для обеспечения значения QP яркости для каждой группы квантования яркости и набора значений сдвига QP цветности для каждой группы квантования цветности. В некоторых вариантах осуществления, модуль 1835 управления скоростью также использует анализ для идентификации областей и назначения групп квантования (яркости и цветности).
В некоторых вариантах осуществления, модуль 1835 управления скоростью разлагает набор значений сдвига QP цветности на наборы значений сдвига QP цветности на различных уровнях иерархии кодирования видеосигналов. В некоторых из этих вариантов осуществления, по меньшей мере некоторые наборы значений сдвига QP цветности дополнительно разлагают на предсказанные значения по двум компонентам, как показано в уравнениях (1)-(7) выше. В некоторых вариантах осуществления, значения сдвига QP более низкого уровня идентифицируют посредством вычитания значений сдвига QP более высокого уровня из общих значений сдвига QP цветности. Например, некоторые варианты осуществления вычисляют сдвиги QP цветности уровня группы квантования следующим образом:
QPoffset_quant_group[i]=QPchroma[i] – QPluma
– QPoffset_pps[i] – QPoffset_slice[i] (8)
(QPoffset_quant_group[i] – сдвиг_QP_группы_квантования[i], QPchroma[i] – QP_цветности, QPluma – QP_яркости, QPoffset_pps[i] - сдвиг_QP_pps[i], QPoffset_slice[i] - сдвиг_QP_слайса[i])
Эти наборы значений сдвига QP цветности, затем, обеспечивают для энтропийного кодера 1820, для обеспечения кодирования в битовом потоке 1895. В некоторых вариантах осуществления, модуль 1835 управления скоростью составляет таблицу возможных сдвигов уровня группы квантования и обеспечивает составленную таблицу для энтропийного кодера 1820.
Модуль 1820 энтропийного кодера является модулем, который выполняет энтропийное кодирование (например, CABAC), на основании квантованных коэффициентов преобразования, параметров, и другой информации, и упаковывает их в битовом потоке 1895. В некоторых вариантах осуществления, модуль 1820 энтропийного кодера принимает значения сдвига QP цветности от модуля 1835 контроллера скорости и кодирует их по энтропии в битовом потоке. В некоторых вариантах осуществления, энтропийный кодер 1820 кодирует значения сдвига QP цветности в области PPS изображения в виде таблицы, описанной в Секции I.b выше. В некоторых вариантах осуществления, энтропийный кодер кодирует значения сдвига QP цветности в отдельных группах квантования, как описано выше в Секции I.a.
Модуль 1840 деблокирования является модулем контурного фильтра, который улучшает визуальное качество и производительность предсказаний системы кодирования/ декодирования видеосигналов, посредством сглаживания резких границ, которые могут образоваться между блоками кодирования. В некоторых вариантах осуществления, модуль 1840 деблокирования использует общее значение QP цветности, вычисленное на основании всех применяемых сдвигов QP цветности, для выполнения своих операций деблокирования (т.е. посредством включения сдвигов QP цветности группы квантования и изображения/PPS). В некоторых других вариантах осуществления, модуль 1840 деблокирования учитывает только некоторые из заданных сдвигов QP цветности, или учитывает только сдвиги QP цветности из заголовков PPS или слайса. Некоторые из этих вариантов осуществления управляют процессом деблокирования на основе значений сдвига QP цветности, которые являются сигналами. Например, некоторые варианты осуществления настраивают параметры деблокирования для компенсации значений сдвига QP цветности. Деблокирование может быть также выполнено вне контура и в виде постобработки. В некоторых вариантах осуществления, общее вычисленное значение QP цветности или некоторые из сдвигов QP цветности используются другими типами внутриконтурной или внеконтурной постобработки, такими как SAO (например, SAO-фильтр 1845), адаптивный контурный фильтр (adaptive loop filter - ALF), или добавление шума.
Фиг. 19 показывает обобщенный декодер 1900 видеосигналов (например, декодер HEVC) для некоторых вариантов осуществления данного изобретения. Декодер 1900 принимает битовый поток 1905 и декодирует его для отображения посредством модуля 1965 отображения. Декодер 1900 включает в себя энтропийный декодер 1910, модуль 1920 обратного квантования, модуль 1930 обратного преобразования, модуль 1950 внутреннего предсказания, модуль 1980 внешнего предсказания, модуль 1960 деблокирования, SAO-модуль 1970, и кадровый буфер 1975.
Модуль 1910 энтропийного декодера является модулем, который выполняет энтропийное декодирование на основании входного битового потока и извлекает коэффициенты преобразования, а также параметры для других модулей в декодере 1900. Конкретно, информацию о квантовании цветности, содержащуюся во входном битовом потоке 1905, извлекают посредством энтропийного декодера 1910 и отправляют к модулю 1920 обратного квантования. В некоторых вариантах осуществления, информация о квантовании цветности включает в себя дополнительные значения сдвига QP цветности, которые извлекаются из таблицы в PPS, заголовке слайса, или из самих групп квантования.
Модуль 1960 деблокирования декодера 1900 выполняет подобную функцию, как модуль 1840 деблокирования кодера 1800. Конкретно, модуль 1960 деблокирования также использует конечное значение QP цветности, вычисленное на основании применяемых сдвигов QP цветности, для выполнения своих операций деблокирования (т.е. посредством включения сдвигов QP цветности группы квантования и изображения/ слайса). В некоторых других вариантах осуществления, модуль 1960 деблокирования учитывает только некоторые из заданных сдвигов QP цветности, или учитывает только сдвиги QP цветности из заголовков PPS или слайсов. В некоторых вариантах осуществления, общее вычисленное значение QP цветности или некоторые из сдвигов QP цветности используются другими типами внутриконтурной или внеконтурной постобработки, такими как SAO (например, SAO-фильтр 1970), ALF, или добавление шума.
IV. ЭЛЕКТРОННАЯ СИСТЕМА
Многие из описанных выше признаков и применений реализованы в виде программных процессов, которые заданы в виде набора команд, записанных на компьютерно-читаемом запоминающем носителе (также называемом компьютерно-читаемым носителем). Когда эти команды исполняются одним или более вычислительными или обрабатывающими устройствами (например, одним или более процессорами, ядрами процессоров, или другими обрабатывающими устройствами), они обеспечивают выполнение обрабатывающим устройством (устройствами) действий, указанных в этих командах. Примеры компьютерно-читаемых носителей включают в себя, но не ограничены этим, CD-ROM, флэш-накопители, микросхемы памяти с произвольным доступом (random access memory - RAM), твердотельные накопители, стираемые программируемые постоянные запоминающие устройства (erasable programmable read only memories - EPROMs), электрически стираемые программируемые постоянные запоминающие устройства (electrically erasable programmable read-only memories - EEPROMs), и т.д. Компьютерно-читаемые носители не включают в себя несущие сигналы и электронные сигналы, распространяющиеся беспроводным способом или по проводным соединениям.
В этом описании изобретения предполагается, что термин «программное обеспечение» включает в себя аппаратно-программное обеспечение, находящееся в постоянном запоминающем устройстве, или приложения, хранящихся в магнитном запоминающем устройстве, которые могут быть считаны в память для обработки посредством процессора. Также, в некоторых вариантах осуществления, многочисленные программные изобретения могут быть реализованы в виде субчастей больших программ, оставаясь, в то же время, отдельными программными изобретениями. В некоторых вариантах осуществления, многочисленные программные изобретения могут быть также реализованы в виде отдельных программ. Наконец, любая комбинация отдельных программ, которые вместе реализуют программное изобретение, описанное здесь, находится в пределах объема данного изобретения. В некоторых вариантах осуществления, программы программного обеспечения, при инсталляции для функционирования на одной или более электронных системах, определяют одну или более конкретных машинных реализаций, которые исполняют и выполняют операции программ программного обеспечения.
Фиг. 20 концептуально показывает электронную систему 2000, с использованием которой реализованы некоторые варианты осуществления данного изобретения. Электронная система 2000 может быть компьютером (например, настольным компьютером, персональным компьютером, планшетным компьютером, и т.д.), телефоном, PDA, или любым другим видом электронного устройства. Такая электронная система включает в себя различные типы компьютерно-читаемых запоминающих носителей и интерфейсов для различных других типов компьютерно-читаемых носителей. Электронная система 2000 включает в себя шину 2005, обрабатывающее устройство (устройства) 2010, графическое обрабатывающее устройство (graphics processing unit - GPU) 2015, системную память 2020, сеть 2025, постоянную память 2030, постоянное запоминающее устройство 2035, устройства 2040 ввода данных, и устройства 2045 вывода данных.
Шина 2005 совместно представляет все системные, периферийные и микросхемные шины, которые соединяют с возможностью связи многочисленные внутренние устройства электронной системы 2000. Например, шина 2005 соединяет с возможностью связи обрабатывающее устройство (устройства) 2010 с постоянной памятью 2030, GPU 2015, системной памятью 2020, и постоянным запоминающим устройством 2035.
Из этих различных запоминающих устройств, обрабатывающее устройство (устройства) 2010 считывает команды для исполнения и данные для обработки, для исполнения процессов данного изобретения. Обрабатывающее устройство (устройства) может быть единственным процессором или многоядерным процессором, в разных вариантах осуществления. Некоторые команды поступают к GPU 2015 и исполняются им. GPU 2015 может сбрасывать различные вычисления или дополнять обработку изображений, обеспечиваемую обрабатывающим устройством (устройствами) 2010.
Память 2030 только для считывания (ROM) хранит статические данные и команды, которые необходимы обрабатывающему устройству (устройствам) 2010 и другим модулям электронной системы. Постоянное запоминающее устройство 2035, с другой стороны, является запоминающим устройством для считывания и записи. Это устройство является энергонезависимым запоминающим устройством, которое хранит команды и данные, даже когда электронная система 2000 выключена. Некоторые варианты осуществления данного изобретения используют массовое запоминающее устройство (такое как магнитный или оптический диск и соответствующий ему дисковод) в качестве постоянного запоминающего устройства 2035.
Другие варианты осуществления используют съемное запоминающее устройство (такое как гибкий диск, флэш-память, и т.д. и соответствующий ему дисковод) в качестве постоянного запоминающего устройства. Подобно постоянному запоминающему устройству 2035, системная память 2020 является запоминающим устройством для считывания и записи. Однако, в отличие от запоминающего устройства 2035, системная память 2020 является энергозависимой памятью для считывания и записи, такой как память с произвольным доступом. Системная память 2020 хранит некоторые из команд и данных, которые необходимы процессору во время выполнения. В некоторых вариантах осуществления, процессы данного изобретения хранятся в системной памяти 2020, постоянном запоминающем устройстве 2035, и/или памяти 2030 только для считывания. Например, различные запоминающие устройства включают в себя команды для обработки клипов мультимедиа, согласно некоторым вариантам осуществления. Из этих различных запоминающих устройств, обрабатывающее устройство (устройства) 2010 считывает команды для исполнения и данные для обработки, для исполнения процессов некоторых вариантов осуществления.
Шина 2005 также соединяется с устройствами 2040 и 2045 ввода и вывода данных. Устройства 2040 ввода данных обеспечивают пользователю возможность передачи информации и выбора команд для электронной системы. Устройства 2040 ввода данных включают в себя буквенно-цифровые клавиатуры и указывающие устройства (также называемые «устройствами управления курсором»), камеры (например, Web-камеры), микрофоны или подобные устройства для приема речевых команд, и т.д. Устройства 2045 вывода данных отображают изображения, генерируемые электронной системой или иные выходные данные. Устройства 2045 вывода данных включают в себя принтеры и устройства отображения, такие как катодно-лучевые трубки (cathode ray tubes - CRT) или жидкокристаллические дисплеи (liquid crystal displays - LCD), а также громкоговорители или подобные устройства вывода звука. Некоторые варианты осуществления включают в себя устройства, такие как сенсорный экран, которые функционируют как в качестве устройства ввода данных, так и в качестве устройства вывода данных.
Наконец, как показано на фиг. 20, шина 2005 также соединяет электронную систему 2000 с сетью 2025 через сетевой адаптер (не показан). Таким образом, компьютер может быть частью сети из компьютеров (такой как локальная сеть (local area network - “LAN”), глобальная сеть (wide area network - “WAN”), или интрасеть, или сетью из сетей, такой как интернет). Любые или все компоненты электронной системы 2000 могут быть использованы совместно с данным изобретением.
Некоторые варианты осуществления включают в себя электронные компоненты, такие как микропроцессоры, запоминающее устройство и память, которые хранят команды компьютерных программ в машиночитаемом или компьютерно-читаемом носителе (альтернативно называемом считываемым компьютерами запоминающим носителем, компьютерно-читаемым носителем, или компьютерно-читаемым запоминающим носителем). Некоторые примеры таких компьютерно-читаемых носителей включают в себя RAM, ROM, компакт-диски только для считывания (read-only compact discs - CD-ROM), записываемые компакт-диски (recordable compact discs - CD-R), перезаписываемые компакт-диски (rewritable compact discs - CD-RW), универсальные цифровые диски только для считывания (например, DVD-ROM, двухслойный DVD-ROM), множество записываемых/ перезаписываемых DVD (например, DVD-RAM, DVD-RW, DVD+RW, и т.д.), флэш-память (например, SD-карты, мини-SD-карты, микро-SD-карты, и т.д.), магнитные и/или твердотельные накопители, диски Blu-Ray только для считывания или перезаписываемые диски Blu-Ray, оптические диски сверхвысокой плотности записи, или другие оптические или магнитные носители, и гибкие диски. Компьютерно-читаемые носители могут хранить компьютерную программу, которая является исполняемой посредством по меньшей мере одного обрабатывающего устройства и включает в себя наборы команд для выполнения различных операций. Примеры компьютерных программ или компьютерного кода включают в себя машинный код, такой как машинный код, например, создаваемый компилятором, и файлы, включающие в себя код более высокого уровня, которые исполняются компьютером, электронным компонентом, или микропроцессором, с использованием интерпретатора.
В то время как приведенное выше описание, в первую очередь, относится к микропроцессору или к многоядерным процессорам, которые исполняют программное обеспечение, некоторые варианты осуществления выполнены посредством одной или более интегральных схем, таких как специализированные интегральные схемы (application specific integrated circuits - ASICs) или матрицы программируемых логических вентилей (field programmable gate arrays - FPGAs). В некоторых вариантах осуществления, такие интегральные схемы исполняют команды, которые хранятся в самой схеме. Дополнительно, некоторые варианты осуществления исполняют программное обеспечение, хранящееся в программируемых логических устройствах (programmable logic devices - PLDs), ROM, или устройствах RAM.
При использовании в этом описании и любых пунктах формулы изобретения данной заявки, каждый из терминов «компьютер», «сервер», «процессор», и «память» относится к электронным или другим технологическим устройствам. Эти термины не включают в себя людей или группы людей. Для целей этого описания, термины «показ» или «отображение» означают отображение на электронном устройстве. При использовании в этом описании и любых пунктах формулы изобретения данной заявки, термины «считываемый компьютером носитель», «считываемые компьютерами среды», и «компьютерно-читаемый носитель» являются полностью ограниченными материальными, физическими объектами, которые хранят информацию в форме, которая считывается компьютером. Эти термины не включают в себя никакие беспроводные сигналы, загружаемые по проводам сигналы, и никакие другие эфемерные сигналы.
В то время как данное изобретение было описано со ссылкой на многочисленные конкретные подробности, специалистам в данной области техники будет понятно, что данное изобретение может быть осуществлено в других конкретных формах, не выходя за рамки сущности данного изобретения. Дополнительно, некоторые фигуры (включая фигуры 7, 13, и 17) концептуально показывают процессы. Конкретные операции этих процессов не обязательно должны быть выполнены в точном порядке, который показан или описан. Конкретные операции не обязательно должны быть выполнены с использованием одной непрерывной последовательности операций, и другие конкретные операции могут быть выполнены в других вариантах осуществления. Кроме того, процесс может быть реализован с использованием нескольких подпроцессов, или в виде части большего макропроцесса. Таким образом, специалистам в данной области техники будет понятно, что данное изобретение не должно быть ограничено предшествующими примерными подробностями, и напротив, должно быть ограничено приложенной формулой изобретения.