Использование информации о яркости для предсказания цветности с отдельной структурой яркости-цветности в кодировании видео

Изобретение относится к кодированию и декодированию видеоданных. Технический результат заключается в повышении эффективности декодирования, в возможности получения информации о цветности из информации об яркости блоков, секционированных с использованием отдельного и/или независимого секционирования яркости и цветности. Способ декодирования видеоданных содержит прием битового потока закодированных видеоданных, закодированные видеоданные представляют секционированные блоки яркости и секционированные блоки цветности, причем блоки цветности секционированы независимо от блоков яркости, определение соответственного режима кодирования, соответствующего соответственным секционированным блокам яркости, декодирование соответственных секционированных блоков яркости в соответствии с определенными соответственными режимами кодирования, декодирование первого синтаксического элемента, указывающего, что соответственные режимы кодирования, ассоциированные с соответственными секционированными блоками яркости, должны использоваться для декодирования первого секционированного блока цветности, причем первый секционированный блок цветности выровнен с двумя или более секционированными блоками яркости, определение режима кодирования цветности для первого секционированного блока цветности в соответствии с функцией соответственных режимов кодирования двух или более секционированных блоков яркости и декодирование первого секционированного блока цветности в соответствии с определенным режимом кодирования цветности. 4 н. и 36 з.п. ф-лы, 14 ил.

 

[0001] Настоящая заявка испрашивает приоритет предварительной заявки США 62/311,265, поданной 21 марта 2016, полное содержание которой включено в настоящий документ посредством ссылки.

ОБЛАСТЬ ТЕХНИКИ

[0002] Настоящее раскрытие относится к кодированию видео и декодированию видео.

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ

[0003] Возможности цифрового видео могут быть включены в широкий спектр устройств, включая цифровые телевизоры, системы цифрового прямого вещания, беспроводные широковещательные системы, персональные цифровые помощники (PDA), портативные или настольные компьютеры, планшетные компьютеры, электронные книги, цифровые камеры, устройства цифровой записи, цифровые медиаплееры, видеоигровые устройства, игровые приставки, сотовые или спутниковые радиотелефоны, так называемые «смартфоны», устройства видеоконференцсвязи, устройства потоковой передачи видео и т.п. Цифровые видеоустройства реализуют методы кодирования видео, такие как те, которые описаны в стандартах, определенных MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, часть 10, Усовершенствованное кодирование видео (AVC), стандарте Высокоэффективное кодирование видео (HEVC) и расширениях таких стандартов. Видеоустройства могут более эффективно передавать, принимать, кодировать, декодировать и/или сохранять цифровую видеоинформацию путем реализации таких методов кодирования видео.

[0004] Методы кодирования видео включают в себя пространственное (внутрикадровое, «внутри картинки») предсказание и/или временное (межкадровое, «между картинками») предсказание для уменьшения или удаления избыточности, присущей видеопоследовательностям. Для блочного кодирования видео, видео вырезка (т.е. видеокадр или часть видеокадра) может быть разделена на видеоблоки, которые также могут упоминаться как древовидные блоки, единицы кодирования (CU) и/или узлы кодирования. Картинки могут упоминаться как кадры. Опорные картинки могут упоминаться как опорные кадры.

[0005] Пространственное или временное предсказание приводит к блоку предсказания для блока, подлежащего кодированию. Остаточные данные представляют пиксельные разности между исходным блоком, подлежащим кодированию, и блоком предсказания. Для дальнейшего сжатия, остаточные данные могут быть преобразованы из пиксельной области в область преобразования, приводя в результате к остаточным коэффициентам преобразования, которые затем могут быть квантованы. Энтропийное кодирование может применяться для достижения еще большего сжатия.

КРАТКОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ

[0006] Данное раскрытие описывает методы для кодирования видеоданных, которые были разбиты (секционированы) с использованием независимой структуры секционирования яркости и цветности. В некоторых примерах, это раскрытие описывает методы для определения того, как повторно использовать информацию кодирования из блоков яркости для блоков цветности, когда имеется два или более блоков яркости, которые соответствуют блоку цветности (например, когда два или более блоков яркости расположены совместно с блоком цветности).

[0007] В других примерах, это раскрытие описывает методы для определения параметров для режима позиционно-зависимого сравнения интра-предсказания (PDPC), когда блоки видеоданных могут быть секционированы на неквадратные блоки. В некоторых примерах, параметры PDPC могут быть определены с использованием нескольких таблиц поиска, включая отдельные таблицы для вертикально-связанных параметров и горизонтально-связанных параметров.

[0008] В одном примере раскрытия, способ декодирования видеоданных содержит прием битового потока закодированных видеоданных, закодированные видеоданные представляют секционированные блоки яркости и секционированные блоки цветности, причем блоки цветности секционированы независимо от блоков яркости, определение соответственного режима кодирования, соответствующего соответственным секционированным блокам яркости, декодирование соответственных секционированных блоков яркости в соответствии с определенными соответственными режимами кодирования, декодирование первого синтаксического элемента, указывающего, что соответственные режимы кодирования, ассоциированные с соответственными секционированными блоками яркости, должны использоваться для декодирования первого секционированного блока цветности, причем первый секционированный блок цветности выровнен с двумя или более секционированными блоками яркости, определение режима кодирования цветности для первого секционированного блока цветности в соответствии с функцией соответственных режимов кодирования двух или более секционированных блоков яркости и декодирование первого секционированного блока цветности в соответствии с определенным режимом кодирования цветности.

[0009] В другом примере раскрытия, устройство, сконфигурированное для декодирования видеоданных, содержит память, сконфигурированную для хранения битового потока закодированных видеоданных, и один или нескольких процессоров, сконфигурированных, чтобы принимать битовый поток закодированных видеоданных, закодированные видеоданные представляют секционированные блоки яркости и секционированные блоки цветности, причем блоки цветности секционированы независимо от блоков яркости, определять соответственный режим кодирования, соответствующий соответственным секционированным блокам яркости, декодировать соответственные секционированные блоки яркости в соответствии с определенными соответственными режимами кодирования, декодировать первый синтаксический элемент, указывающий, что соответственные режимы кодирования, ассоциированные с соответственными секционированными блоками яркости, должны использоваться для декодирования первого секционированного блока цветности, причем первый секционированный блок цветности выровнен с двумя или более секционированными блоками яркости, определять режим кодирования цветности для первого секционированного блока цветности в соответствии с функцией соответственных режимов кодирования двух или более секционированных блоков яркости и декодировать первый секционированный блок цветности в соответствии с определенным режимом кодирования цветности.

[0010] В другом примере раскрытия, устройство, сконфигурированное для декодирования видеоданных, содержит средство для приема битового потока закодированных видеоданных, закодированные видеоданные представляют секционированные блоки яркости и секционированные блоки цветности, причем блоки цветности секционированы независимо от блоков яркости, средство для определения соответственного режима кодирования, соответствующего соответственным секционированным блокам яркости, средство для декодирования соответственных секционированных блоков яркости в соответствии с определенными соответственными режимами кодирования, средство для декодирования первого синтаксического элемента, указывающее, что соответственные режимы кодирования, ассоциированные с соответственными секционированными блоками яркости, должны использоваться для декодирования первого секционированного блока цветности, причем первый секционированный блок цветности выровнен с двумя или более секционированными блоками яркости, средство для определения режима кодирования цветности для первого секционированного блока цветности в соответствии с функцией соответственных режимов кодирования двух или более секционированных блоков яркости и средство для декодирования первого секционированного блока цветности в соответствии с определенным режимом кодирования цветности.

[0011] В другом примере, настоящее раскрытие описывает долговременный считываемый компьютером носитель, хранящий инструкции, которые, при исполнении, побуждают один или несколько процессоров, сконфигурированных для декодирования видеоданных, принимать битовый поток закодированных видеоданных, закодированные видеоданные представляют секционированные блоки яркости и секционированные блоки цветности, причем блоки цветности секционированы независимо от блоков яркости, определять соответственный режим кодирования, соответствующий соответственным секционированным блокам яркости, декодировать соответственные секционированные блоки яркости в соответствии с определенными соответственными режимами кодирования, декодировать первый синтаксический элемент, указывающий, что соответственные режимы кодирования, ассоциированные с соответственными секционированными блоками яркости, должны использоваться для декодирования первого секционированного блока цветности, причем первый секционированный блок цветности выровнен с двумя или более секционированными блоками яркости, определять режим кодирования цветности для первого секционированного блока цветности в соответствии с функцией соответственных режимов кодирования двух или более секционированных блоков яркости и декодировать первый секционированный блок цветности в соответствии с определенным режимом кодирования цветности.

[0012] В другом примере раскрытия, способ декодирования видеоданных содержит прием блока видеоданных, закодированных с использованием режима позиционно-зависимой комбинации интра-предсказания (PDPC), блок видеоданных имеет неквадратную форму, определяемую шириной и высотой, определение одного или нескольких параметров PDPC на основе одного или более из ширины или высоты блока видеоданных и декодирование блока видеоданных с использованием режима PDPC и определенных параметров PDPC.

[0013] В другом примере раскрытия, устройство, сконфигурированное для декодирования видеоданных, содержит память, сконфигурированную, чтобы хранить блок видеоданных, закодированных с использованием режима PDPC, блок видеоданных имеет неквадратную форму, определяемую шириной и высотой, и один или несколько процессоров, сконфигурированных, чтобы принимать блок видеоданных, определять один или несколько параметров PDPC на основе одного или более из ширины или высоты блока видеоданных и декодировать блок видеоданных с использованием режима PDPC и определенных параметров PDPC.

[0014] В другом примере раскрытия, устройство, сконфигурированное для декодирования видеоданных, содержит средство для приема блока видеоданных, закодированных с использованием режима PDPC, блок видеоданных имеет неквадратную форму, определяемую шириной и высотой, средство для определения одного или нескольких параметров PDPC на основе одного или более из ширины или высоты блока видеоданных и средство для декодирования блока видеоданных с использованием режима PDPC и определенных параметров PDPC.

[0015] В другом примере, настоящее раскрытие описывает долговременный считываемый компьютером носитель, хранящий инструкции, которые, при исполнении, побуждают один или несколько процессоров устройства, сконфигурированного для декодирования видеоданных, принимать блок видеоданных, закодированных с использованием режима PDPC, причем блок видеоданных имеет неквадратную форму, определяемую шириной и высотой, определять один или несколько параметров PDPC на основе одного или более из ширины или высоты блока видеоданных и декодировать блок видеоданных с использованием режима PDPC и определенных параметров PDPC.

[0016] В другом примере раскрытия, способ кодирования видеоданных содержит прием блока видеоданных, причем блок видеоданных имеет неквадратную форму, определяемую шириной и высотой, определение одного или нескольких параметров PDPC на основе одного или более из ширины или высоты блока видеоданных и кодирование блока видеоданных с использованием режима PDPC и определенных параметров PDPC.

[0017] В другом примере раскрытия, устройство, сконфигурированное для кодирования видеоданных, содержит память, сконфигурированную для хранения блока видеоданных, блок видеоданных имеет неквадратную форму, определяемую шириной и высотой, и один или несколько процессоров, сконфигурированных, чтобы принимать блок видеоданных, определять один или несколько параметров PDPC на основе одного или более из ширины или высоты блока видеоданных и кодировать блок видеоданных с использованием режима PDPC и определенных параметров PDPC.

[0018] Подробности одного или нескольких аспектов раскрытия представлены на прилагаемых чертежах и в описании ниже. Другие признаки, цели и преимущества методов, описанных в настоящем раскрытии, будут очевидны из описания и чертежей и из формулы изобретения.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0019] Фиг. 1 - блок-схема, иллюстрирующая примерную систему кодирования и декодирования видео, сконфигурированную для реализации методов раскрытия.

[0020] Фиг. 2A - концептуальная диаграмма, иллюстрирующая пример разбиения (секционирования) на блоки с использованием структуры «квадродерева плюс двоичного дерева» (QTBT).

[0021] Фиг. 2B - концептуальная диаграмма, иллюстрирующая примерную древовидную структуру, соответствующую секционированию на блоки с использованием структуры QTBT, показанной на фиг. 2A.

[0022] Фиг. 3 - концептуальная диаграмма, иллюстрирующая пример относительного секционирования яркости и цветности в соответствии с методами настоящего раскрытия.

[0023] Фиг. 4 - концептуальная диаграмма, иллюстрирующая другой пример относительного секционирования яркости и цветности в соответствии с методами настоящего раскрытия.

[0024] Фиг. 5А иллюстрирует предсказание блока 4х4 с использованием нефильтрованной опоры в соответствии с методами настоящего раскрытия.

[0025] Фиг. 5B иллюстрирует предсказание блока 4х4 с использованием отфильтрованной опоры в соответствии с методами настоящего раскрытия.

[0026] Фиг. 6 - концептуальная диаграмма, иллюстрирующая использование вложенных таблиц для определения набора параметров предсказания, используемых в прямоугольном блоке, в соответствии с одним примером раскрытия.

[0027] Фиг. 7 - блок-схема, иллюстрирующая пример видеокодера, сконфигурированного для реализации методов раскрытия.

[0028] Фиг. 8 - блок-схема, иллюстрирующая пример видеодекодера, сконфигурированного для реализации методов раскрытия.

[0029] Фиг. 9 представлена блок-схема последовательности операций, иллюстрирующая примерную операцию устройства кодирования видео в соответствии с методом настоящего раскрытия.

[0030] Фиг. 10 представлена блок-схема последовательности действий, иллюстрирующая примерную операцию видеодекодера в соответствии с методом настоящего раскрытия.

[0031] Фиг. 11 - блок-схема последовательности действий, иллюстрирующая примерную операцию видеокодера в соответствии с методом настоящего раскрытия.

[0032] Фиг. 12 представлена блок-схема последовательности действий, иллюстрирующая примерную операцию видеодекодера в соответствии с методом настоящего раскрытия.

ПОДРОБНОЕ ОПИСАНИЕ

[0033] В соответствии с некоторыми методами секционирования видеоблоков, блоки цветности видеоданных секционируются независимо от блоков яркости видеоданных, так что некоторые блоки цветности могут быть не выровнены напрямую с одним соответствующим блоком яркости. Таким образом, становится трудно повторно использовать синтаксические элементы, связанные с блоками яркости, для блоков цветности, поскольку может не быть взаимно однозначного соответствия между блоками яркости и блоками цветности. Настоящее раскрытие описывает методы для кодирования блока цветности видеоданных с использованием информации (например, синтаксических элементов), соответствующей блоку яркости видеоданных, в ситуациях, когда блоки яркости и цветности секционированы независимо.

[0034] В настоящем раскрытии также описаны методы определения параметров кодирования для режима кодирования позиционно-зависимой комбинации интра-предсказания (PDPC). В одном примере, настоящее раскрытие описывает методы для определения параметров PDPC для видеоблоков, секционированных на неквадратные блоки (например, неквадратные прямоугольные блоки).

[0035] Фиг. 1 является блок-схемой, иллюстрирующей примерную систему 10 кодирования и декодирования видео, которая может быть сконфигурирована, чтобы выполнять методы настоящего раскрытия. Как показано на фиг. 1, система 10 включает в себя устройство-источник 12, которое предоставляет закодированные видеоданные, которые позднее будут декодированы устройством-получателем 14. В частности, устройство-источник 12 предоставляет видеоданные устройству-получателю 14 посредством считываемого компьютером носителя 16. Устройство-источник 12 и устройство-получатель 14 могут содержать любое из широкого спектра устройств, включая настольные компьютеры, ноутбуки (например, портативные компьютеры), планшетные компьютеры, телевизионные приставки, телефонные трубки, например, так называемые «смартфоны» (или, более обобщенно, мобильные станции), планшетные компьютеры, телевизоры, камеры, устройства отображения, цифровые медиаплееры, видеоигровые консоли, устройство потоковой передачи видео и т.п. Мобильная станция может быть любым устройством, способным осуществлять связь в беспроводной сети. В некоторых случаях, устройство-источник 12 и устройство-получатель 14 могут быть оснащены средствами беспроводной связи. Таким образом, устройство-источник 12 и устройство-получатель 14 могут быть устройствами беспроводной связи (например, мобильными станциями). Устройство-источник 12 является примерным устройством кодирования видео (т.е., устройством для кодирования видеоданных). Устройство-получатель 14 является примерным устройством декодирования видео (т.е., устройством для декодирования видеоданных).

[0036] В примере на фиг. 1, устройство-источник 12 включает в себя источник 18 видео, носитель 20 данных, сконфигурированный, чтобы хранить видеоданные, видеокодер 22 и интерфейс 24 вывода. Устройство-получатель 14 включает в себя интерфейс 26 ввода, носитель 28 данных, сконфигурированный, чтобы хранить закодированные видеоданные, видеодекодер 30 и устройство 32 отображения. В других примерах, устройство-источник 12 и устройство-получатель 14 включают в себя другие компоненты или компоновки. Например, устройство-источник 12 может принимать видеоданные от внешнего источника видео, например, внешней камеры. Аналогично, устройство-получатель 14 может взаимодействовать с внешним устройством отображения, а не включать в себя встроенное устройство 32 отображения.

[0037] Проиллюстрированная система 10 на фиг. 1 является всего лишь одним примером. Методы для обработки и/или кодирования (например, кодирования и/или декодирования) видеоданных могут выполняться любым цифровым устройством кодирования и/или декодирования видео. Хотя, в общем, методы настоящего раскрытия выполняются устройством кодирования видео и/или устройством декодирования видео, эти методы также могут выполняться видеокодером/декодером, обычно упоминаемым как «кодек». Устройство-источник 12 и устройство-получатель 14 являются просто примерами таких устройств кодирования, в которых устройство-источник 12 генерирует кодированные видеоданные для передачи в устройство-получатель 14. В некоторых примерах, устройство-источник 12 и устройство-получатель 14 могут работать по существу симметричным образом, так что каждое из устройства-источника 12 и устройства-получателя 14 включают в себя компоненты кодирования и декодирования видео. Следовательно, система 10 может поддерживать однонаправленную или двунаправленную передачу видео между устройством-источником 12 и устройством-получателем 14, например, для потоковой передачи видео, воспроизведения видео, видеовещания или видеотелефонии.

[0038] Источник 18 видео устройства-источника 12 может включать в себя устройство захвата (съемки) видео, такое как видеокамера, архив видео, содержащий ранее снятое видео, и/или интерфейс потока видео для приема видеоданных от поставщика видеоконтента. В качестве дополнительной альтернативы, источник 18 видео может генерировать данные на основе компьютерной графики в качестве исходного видео или комбинацию видео в реальном времени, архивированного видео и генерируемого компьютером видео. Устройство-источник 12 может содержать один или несколько носителей данных (например, носитель 20), сконфигурированных для хранения видеоданных. Методы, описанные в настоящем раскрытии, могут быть применены к кодированию видео в общем и могут применяться к беспроводным и/или проводным приложениям. В каждом случае, захваченное, предварительно захваченное или генерируемое компьютером видео может быть закодировано видеокодером 22. Интерфейс 24 вывода может выводить информацию закодированного видео на считываемый компьютером носитель 16.

[0039] Устройство-получатель 14 может принимать закодированные видеоданные, подлежащие декодированию, посредством считываемого компьютером носителя 16. Считываемый компьютером носитель 16 может содержать любой тип носителя или устройства, способного перемещать закодированные видеоданные от устройства-источника 12 в устройство-получатель 14. В некоторых примерах, считываемый компьютером носитель 16 содержит среду связи, чтобы позволять устройству-источнику 12 передавать закодированные видеоданные непосредственно в устройство-получатель 14 в реальном времени. Закодированные видеоданные могут модулироваться в соответствии со стандартом связи, таким как протокол беспроводной связи, и передаваться на устройство-получатель 14. Среда связи может содержать любую беспроводную или проводную среду связи, такую как радиочастотный (RF) спектр или одна или более физических линий передачи. Среда связи может быть частью пакетной сети, такой как локальная сеть, сеть широкого охвата или глобальная сеть, такая как Интернет. Среда связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть полезным, чтобы способствовать связи от устройства-источника 12 к устройству-получателю 14. Устройство-получатель 14 может содержать один или несколько носителей данных, сконфигурированных для хранения закодированных видеоданных и декодированных видеоданных.

[0040] В некоторых примерах, закодированные данные могут выводиться из интерфейса 24 вывода на устройство хранения. Аналогичным образом, закодированные данные могут быть доступны из устройства хранения через интерфейс 26 ввода. Устройство хранения может включать в себя любой из множества распределенных или локально доступных носителей данных, таких как накопитель на жестких дисках, Blu-ray диски, DVD, CD-ROM, флэш-память, энергозависимая или энергонезависимая память или любые другие подходящие цифровые носители для хранения закодированных видеоданных. В другом примере, устройство хранения может соответствовать файловому серверу или другому промежуточному устройству хранения, которое может хранить закодированное видео, сгенерированное устройством-источником 12. Устройство-получатель 14 может осуществлять доступ к сохраненным видеоданным с устройства хранения посредством потоковой передачи или загрузки. Файловым сервером может быть любой тип сервера, способный хранить закодированные видеоданные и передавать эти закодированные видеоданные на устройство-получатель 14. Примерные файловые серверы включают в себя веб-сервер (например, для веб-сайта), FTP-сервер, устройства хранения, подключенные к сети (например, NAS), или накопитель на локальном диске. Устройство-получатель 14 может осуществлять доступ к закодированным видеоданным через любое стандартное соединение передачи данных, включая Интернет-соединение. Это может включать в себя беспроводной канал (например, соединение Wi-Fi), проводное соединение (например, DSL, кабельный модем и т.д.) или комбинацию того и другого, подходящую для доступа к закодированным видеоданным, сохраненным на файловом сервере. Передача закодированных видеоданных с устройства хранения может быть потоковой передачей, передачей загрузки или их комбинацией.

[0041] Методы настоящего раскрытия могут быть применены к кодированию видео для поддержки любого из множества мультимедийных приложений, таких как эфирные телевизионные передачи, передачи кабельного телевидения, передачи спутникового телевидения, передачи потокового видео в Интернете, такие как динамическая адаптивная потоковая передача по HTTP (DASH), цифровое видео, которое кодируется на носитель данных, декодирование цифрового видео, сохраненного на носителе данных, или другие приложения. В некоторых примерах, система 10 может быть сконфигурирована, чтобы поддерживать однонаправленную или двунаправленную передачу видео для поддержки таких приложений, как потоковое видео, воспроизведение видео, видеовещание и/или видеотелефония.

[0042] Считываемый компьютером носитель 16 может включать в себя кратковременные носители, такие как беспроводная широковещательная передача или проводная сетевая передача, или носители данных (то есть долговременные носители данных), такие как жесткий диск, флэш-накопитель, компакт-диск, цифровой видеодиск, Blu-ray диск или другие считываемые компьютером носители. В некоторых примерах, сетевой сервер (не показан) может принимать закодированные видеоданные из устройства-источника 12 и предоставлять закодированные видеоданные устройству-получателю 14, например, посредством сетевой передачи. Аналогичным образом, вычислительное устройство оборудования по производству носителей, такое как оборудование штамповки дисков, может принимать закодированные видеоданные от устройства-источника 12 и производить диск, содержащий закодированные видеоданные. Следовательно, считываемый компьютером носитель 16 можно понимать как включающий один или несколько считываемых компьютером носителей различных форм в различных примерах.

[0043] Интерфейс 26 ввода устройства-получателя 14 принимает информацию от считываемого компьютером носителя 16. Информация считываемого компьютером носителя 16 может включать в себя синтаксическую информацию, определенную видеокодером 22, видеокодера 22, которая также используется видеодекодером 30, которая включает в себя синтаксические элементы, которые описывают характеристики и/или обработку блоков и других кодированных единиц, например групп картинок (GOP). Носитель 28 может сохранять закодированные видеоданные, принятые интерфейсом 26 ввода. Устройство 32 отображения отображает декодированные видеоданные пользователю и может содержать любое из множества устройств отображения, таких как электронно-лучевая трубка (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светоизлучающих диодах (OLED) или другой тип устройства отображения.

[0044] Видеокодер 22 и видеодекодер 30, каждый, могут быть реализованы как любая из множества подходящих схем видеокодера или видеодекодера, таких как один или несколько микропроцессоров, процессоры цифровых сигналов (DSP), специализированные интегральные схемы (ASIC), программируемые вентильные матрицы (FPGA), дискретная логика, программное обеспечение, аппаратные средства, встроенное программное обеспечение или любые их комбинации. Когда методы частично реализованы в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем, долговременном считываемом компьютером носителе и может исполнять инструкции на аппаратных средствах с использованием одного или нескольких процессоров для выполнения методов настоящего раскрытия. Каждый из видеокодера 22 и видеодекодера 30 может быть включен в один или несколько кодеров или декодеров, каждый из которых может быть интегрирован как часть комбинированного кодека в соответствующем устройстве.

[0045] В некоторых примерах, видеокодер 22 и видеодекодер 30 могут работать в соответствии со стандартом кодирования видео. Примеры стандартов кодирования видео включают в себя, без ограничения указанным, ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 или ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual и ITU-T H.264 (также известный как ISO/IEC MPEG-4 AVC), включая его расширения для масштабируемого кодирования видео (SVC) и многовидового кодирования видео (MVC). Кроме того, новый стандарт кодирования видео, а именно, «Высокоэффективное кодирование видео» (HEVC) или ITU-T H.265, включая расширения для кодирования диапазона и экранного контента, 3D кодирование видео (3D-HEVC) и многовидовые расширения (MV-HEVC) и масштабируемое расширение (SHVC), был разработан Объединенной командой по сотрудничеству в области кодирования видео (JCT-VC) ITU-T Экспертной группы по кодированию видео (VCEG) и ISO/IEC Экспертной группы по движущемуся изображению (MPEG).

[0046] В других примерах, видеокодер 22 и видеодекодер 30 могут быть сконфигурированы для работы в соответствии с другими способами и/или стандартами кодирования видео, включая новые методы кодирования видео, которые изучаются Совместной группой по исследованию видео (JVET). В некоторых примерах раскрытия, видеокодер 22 и видеодекодер 30 могут быть сконфигурированы для работы в соответствии с методами кодирования видео, которые используют независимое секционирование яркости и цветности, так что блоки яркости и цветности видеоданных не обязательно должны быть выровнены. Такие методы секционирования могут приводить к ситуации, когда блок цветности не выровнен, в конкретном местоположении картинки, с одним блоком яркости. В других примерах раскрытия, видеокодер 22 и видеодекодер 30 могут быть сконфигурированы для работы в соответствии с методами видеокодирования, которые используют структуры секционирования, которые допускают неквадратные блоки.

[0047] В соответствии с методами настоящего раскрытия, как будет описано более подробно ниже, видеодекодер 30 может быть сконфигурирован, чтобы принимать битовый поток закодированных видеоданных, причем закодированные видеоданные представляют секционированные блоки яркости и секционированные блоки цветности, причем блоки цветности секционированы независимо от блоков яркости, определять соответственный режим кодирования, соответствующий соответственным секционированным блокам яркости, декодировать соответственные секционированные блоки яркости в соответствии с определенными соответственными режимами кодирования, декодировать первый синтаксический элемент, указывающий, что соответственные режимы кодирования, ассоциированные с соответственными секционированными блоками яркости, должны использоваться для декодирования первого секционированного блока цветности, причем первый секционированный блок цветности выровнен с двумя или более секционированными блоками яркости, определять режим кодирования цветности для первого секционированного блока цветности в соответствии с функцией соответственных режимов кодирования двух или более секционированных блоков яркости, и декодировать первый секционированный блок цветности в соответствии с определенным режимом кодирования цветности. Видеокодер 22 может быть сконфигурирован, чтобы выполнять методы, взаимно обратные методам видеодекодера 30. В некоторых примерах, видеокодер 22 может быть сконфигурирован для генерирования синтаксического элемента, который указывает, должен ли блок цветности повторно использовать информацию о режиме кодирования из двух или более блоков яркости на основе функции соответственных режимов кодирования двух или более секционированных блоков яркости.

[0048] В HEVC и других спецификациях кодирования видео, видеопоследовательность обычно включает в себя серию картинок (изображений). Картинки также могут упоминаться как «кадры». Картинка может включать в себя три массива выборок, обозначаемых SL, SСb и SСr. SL представляет собой двумерный массив (т.е. блок) выборок яркости. SСb представляет собой двумерный массив выборок цветоразностного сигнала Cb. SСr представляет собой двумерный массив выборок цветоразностного сигнала Cr. Выборки цветоразностного сигнала также могут упоминаться здесь как выборки «цветности». В других случаях, картинка может быть монохромной и может содержать только массив выборок яркости.

[0049] Для генерации закодированного представления картинки (например, битового потока закодированного видео), видеокодер 22 может генерировать набор единиц дерева кодирования (CTU). Каждая из CTU может содержать блок выборок яркости дерева кодирования, два соответствующих блока выборок цветности дерева кодирования и синтаксические структуры, используемые для кодирования выборок блоков дерева кодирования. В монохромных картинках или картинках, имеющих три отдельные цветовые плоскости, CTU может содержать один блок дерева кодирования и синтаксические структуры, используемые для кодирования выборок блока дерева кодирования. Блок дерева кодирования может быть блоком NхN выборок. CTU также может упоминаться как «блок дерева» или «наибольшая единица кодирования» (LCU). CTU в HEVC могут быть в широком смысле аналогичны макроблокам в других стандартах, таких как H.264/AVC. Однако CTU не обязательно ограничивается конкретным размером и может включать в себя одну или несколько единиц кодирования (CU). Вырезка может включать в себя целое число CTU, упорядоченных последовательно в порядке растрового сканирования.

[0050] Чтобы сгенерировать кодированную CTU, видеокодер 22 может рекурсивно выполнять секционирование квадродерева на блоки дерева кодирования CTU, чтобы разделить блоки дерева кодирования на блоки кодирования, отсюда название «единицы дерева кодирования». Блок кодирования представляет собой блок NхN выборок. CU может содержать блок кодирования выборок яркости и два соответствующих блока кодирования выборок цветности картинки, которая имеет массив выборок яркости, массив выборок Cb и массив выборок Cr, а также синтаксические структуры, используемые для кодирования выборок блоков кодирования. В монохромных картинках или картинках, имеющих три отдельные цветовые плоскости, CU может содержать один блок кодирования и синтаксические структуры, используемые для кодирования выборок блока кодирования.

[0051] Видеокодер 22 может секционировать блок кодирования CU на один или несколько блоков предсказания. Блок предсказания представляет собой прямоугольный (т.е. квадратный или неквадратный) блок выборок, на котором применяется одно и то же предсказание. Единица предсказания (PU) из CU может содержать блок предсказания выборок яркости, два соответствующих блока предсказания выборок цветности и синтаксические структуры, используемые для предсказания блоков предсказания. В монохромных картинках или картинках, имеющих три отдельные цветовые плоскости, PU может содержать один блок предсказания и синтаксические структуры, используемые для предсказания блока предсказания. Видеокодер 22 может генерировать блоки предсказания (например, блоки предсказания яркости, Cb и Cr) для блоков предсказания (например, блоков предсказания яркости, Cb и Cr) каждой PU из CU.

[0052] Видеокодер 22 может использовать интра-предсказание или интер-предсказание для генерации блоков предсказания для PU. Если видеокодер 22 использует интра-предсказание для генерации блоков предсказания PU, видеокодер 22 может генерировать блоки предсказания PU на основе декодированных выборок картинки, которая включает в себя PU.

[0053] После того, как видеокодер 22 генерирует блоки предсказания (например, блоки предсказания яркости, Cb и Cr) для одной или нескольких PU из CU, видеокодер 22 может генерировать один или несколько остаточных блоков для CU. Например, видеокодер 22 может генерировать остаточный блок яркости для CU. Каждая выборка в остаточном блоке яркости CU указывает разность между выборкой яркости в одном из блоков предсказания яркости CU и соответствующей выборкой в исходном блоке кодирования яркости CU. Кроме того, видеокодер 22 может генерировать остаточный блок Cb для CU. В одном примере предсказания цветности, каждая выборка в остаточном блоке Cb из CU может указывать разность между выборкой Cb в одном из блоков Cb предсказания из CU и соответствующей выборкой в исходном блоке кодирования Cb из CU. Видеокодер 22 может также генерировать остаточный блок Cr для CU. Каждая выборка в остаточном блоке Cr из CU может указывать разность между выборкой Cr в одном из блоков Cr предсказания CU и соответствующей выборкой в исходном блоке кодирования Cr из CU. Однако должно быть понятно, что для предсказания цветности могут быть использованы другие методы.

[0054] Кроме того, видеокодер 22 может использовать секционирование квадродерева для декомпозиции остаточных блоков (например, остаточных блоков яркости, Cb и Cr) из CU в один или несколько блоков преобразования (например, блоков преобразования яркости, Cb и Cr). Блок преобразования представляет собой прямоугольный (например, квадратный или неквадратный) блок выборок, на котором применяется одно и то же преобразование. Единица преобразования (TU) из CU может содержать блок преобразования выборок яркости, два соответствующих блока преобразования выборок цветности и синтаксические структуры, используемые для преобразования блока выборок преобразования. Таким образом, каждая TU из CU может иметь блок преобразования яркости, блок преобразования Cb и блок преобразования Cr. Блок преобразования яркости TU может быть подблоком остаточного блока яркости CU. Блок преобразования Cb может быть подблоком остаточного блока Cb CU. Блок преобразования Cr может быть подблоком остаточного блока Cr CU. В монохромных картинках или картинках, имеющих три отдельные цветовые плоскости, TU может содержать один блок преобразования и синтаксические структуры, используемые для преобразования выборок блока преобразования.

[0055] Видеокодер 22 может применять одно или несколько преобразований блока преобразования TU для генерации блока коэффициентов для TU. Например, видеокодер 22 может применять одно или несколько преобразований к блоку преобразования яркости TU для генерации блока коэффициентов яркости для TU. Блок коэффициентов может быть двумерным массивом коэффициентов преобразования. Коэффициент преобразования может быть скалярной величиной. Видеокодер 22 может применять одно или несколько преобразований к блоку преобразования Cb TU для генерации блока коэффициентов Cb для TU. Видеокодер 22 может применять одно или несколько преобразований к блоку преобразования Cr TU для генерации блока коэффициентов Cr для TU.

[0056] После генерации блока коэффициентов (например, блока коэффициентов яркости, блока коэффициентов Cb или блока коэффициентов Cr), видеокодер 22 может квантовать блок коэффициентов. Квантование обычно относится к процессу, в котором коэффициенты преобразования квантуются, чтобы уменьшить количество данных, используемых для представления коэффициентов преобразования, обеспечивая дальнейшее сжатие. После того как видеокодер 22 квантует блок коэффициентов, видеокодер 22 может энтропийно кодировать синтаксические элементы, указывающие квантованные коэффициенты преобразования. Например, видеокодер 22 может выполнять контекстно-адаптивное двоичное арифметическое кодирование (CABAC) на синтаксических элементах, указывающих квантованные коэффициенты преобразования.

[0057] Видеокодер 22 может выводить битовый поток, который включает в себя последовательность битов, которая формирует представление кодированных картинок и ассоциированных данных. Таким образом, битовый поток содержит кодированное представление видеоданных. Битовый поток может содержать последовательность единиц уровня абстракции сети (NAL). Единица NAL представляет собой синтаксическую структуру, содержащую указание типа данных в единице NAL и байты, содержащие эти данные в форме полезной нагрузки исходной байтовой последовательности (RBSP), распределенные, как необходимо, с битами предотвращения эмуляции. Каждая из единиц NAL может включать в себя заголовок единицы NAL и инкапсулирует RBSP. Заголовок единицы NAL может включать в себя синтаксический элемент, который указывает код типа единицы NAL. Код типа единицы NAL, указанный в заголовке единицы NAL, указывает тип единицы NAL. RBSP может представлять собой синтаксическую структуру, содержащую целое число байтов, которое инкапсулировано в единице NAL. В некоторых случаях, RBSP включает в себя нуль битов.

[0058] Видеодекодер 30 может принимать битовый поток закодированного видео, сгенерированный видеокодером 22. Кроме того, видеодекодер 30 может синтаксически анализировать битовый поток для получения синтаксических элементов из битового потока. Видеодекодер 30 может восстанавливать картинки видеоданных, основываясь, по меньшей мере частично, на синтаксических элементах, полученных из битового потока. Процесс восстановления видеоданных может быть, в общем, обратным процессу, выполняемому видеокодером 22. Например, видеодекодер 30 может использовать векторы движения PU для определения блоков предсказания для PU текущей CU. Кроме того, видеодекодер 30 может осуществлять обратное квантование блоков коэффициентов TU текущей CU. Видеодекодер 30 может выполнять обратные преобразования на блоках коэффициентов для восстановления блоков преобразования TU текущей CU. Видеодекодер 30 может восстанавливать блоки кодирования текущей CU путем суммирования выборок блоков предсказания для PU текущей CU с соответствующими выборками блоков преобразования TU текущей CU. Путем восстановления блоков кодирования для каждой CU картинки, видеодекодер 30 может восстановить картинку.

[0059] В некоторых примерных структурах кодека видео, таких как структура секционирования квадродерева HEVC, секционирование видеоданных в блоки для цветовых компонентов (например, блоки яркости и блоки цветности) выполняется совместно. То есть, в некоторых примерах, блоки яркости и блоки цветности секционированы таким образом, что не более одного блока яркости соответствует блоку цветности в конкретном местоположении внутри картинки. В одном примере, секция блока видеоданных может быть дополнительно разделена на подблоки. Информация (например, значения выборок и синтаксические элементы, указывающие, как должен быть кодирован видеоблок), относящаяся к видеоблоку или секции (разделу) видеоблока, сохраняется на уровне подблока. Или, в более общем плане, информация, относящаяся к видеоблокам или секциям видеоблока, может храниться в связи с одним или несколькими репрезентативными местоположениями (например, соответствующими любой(ым) выборке(ам) или подвыборке(ам)) блока видеоданных. Например, если секция имеет размер 16х16 пикселов, а каждый подблок в секции - 4х4 пикселов, то в секции имеется 16 подблоков. Информация хранится с гранулярностью подблоков, 4х4 в этом примере, и все 16 подблоков могут иметь одинаковую информацию.

[0060] В контексте этого раскрытия, термины «секция», «блок» и «секционированный блок» могут использоваться взаимозаменяемо. В общем, блок представляет собой группу выборок (например, выборок яркости или цветности), на которых выполняется видеокодирование. В контексте этого раскрытия, «подблок» представляет собой раздел блока, имеющего ассоциированную ячейку памяти, которая хранит информацию о режиме кодирования для блока.

[0061] Видеокодер 22 и видеодекодер 30 могут выделять местоположения в памяти для хранения информации для каждого репрезентативного местоположения (например, подблока). В некоторых примерах, значения информации (например, значения конкретных синтаксических элементов для конкретного режима кодирования) могут храниться в отдельной ячейке памяти, ассоциированной с каждым репрезентативным местоположением (например, подблоком). В других примерах, информация может быть сохранена однократно для одного из множества репрезентативных местоположений (например, подблоков) секции. Ячейки памяти других подблоков секции могут включать в себя указатели на ячейку памяти, в которой хранятся фактические значения информации. Методы настоящего раскрытия будут описаны ниже со ссылкой на подблоки, хотя следует понимать, что может использоваться любое репрезентативное местоположение блока.

[0062] Как упоминалось выше, информация, сохраненная на уровне подблока, может представлять собой любую информацию, которая используется для выполнения процессов кодирования над секцией. Такая информация может быть сигнализированной синтаксической информацией или производной дополнительной информацией. Одним примером производной дополнительной информации может быть информация, используемая для кодирования блоков цветности, которая получена из информации, относящейся к кодированию блоков яркости. Одним примером производной дополнительной информации для использования в HEVC является информация прямого режима, где информация интра-предсказания яркости (например, направление интра-предсказания) используется для предсказания цветности без сигнализации самого направления интра-предсказания для блоков цветности. Другими примерами информации могут быть решения о режиме, такие как интра-предсказание или интер-предсказание, направление интра-предсказания, информация о движении и тому подобное.

[0063] Когда сравниваются размеры секции яркости и цветности, цветовой формат цветности (например, формат субдискретизации цветности), такой как 4:4:4, 4:2:2, 4:2:0, может приниматься во внимание. Например, если секция яркости составляет 16х16 пикселов, соответствующая или совмещенная секция цветности составляет 8х8 пикселов для цветового формата 4:2:0 и составляет 16х16 пикселов для цветового формата цветности 4:4:4. Секции не обязательно являются квадратными и могут быть, например, прямоугольными по форме. Таким образом, для формата субдискретизации цветности 4:2:0, секции яркости и цветности не будут одинакового размера. Однако, когда блоки яркости и цветности секционированы совместно, результирующее секционирование по-прежнему приводит к тому, что только один блок яркости соответствует какому-либо конкретному блоку цветности.

[0064] Совместная группа по исследованию видео (JVET) в настоящее время изучает структуру секционирования квадродерева плюс двоичного дерева (QTBT). В публикации J. An et al., «Block partitioning structure for next generation video coding», International Telecommunication Union, COM16-C966, Sep. 2015 (далее, «предложение VCEG COM16-C966») были описаны методы секционирования QTBT для будущего стандарта кодирования видео после HEVC. Моделирование показало, что предложенная структура QTBT может быть более эффективной, чем структура квадродерева, используемая в HEVC.

[0065] В структуре QTBT, описанной в предложении VCEG COM16-C966, CTB сначала секционируется с использованием методов секционирования квадродерева, где разделение квадродерева одного узла может выполняться итерацией до тех пор, пока узел не достигнет минимально разрешенного размера листового узла квадродерева. Минимальный разрешенный размер листового узла квадродерева может указываться видеодекодеру 30 значением синтаксического элемента MinQTSize. Если размер листового узла квадродерева не больше максимального разрешенного размера корневого узла двоичного дерева (например, как обозначается синтаксическим элементом MaxBTSize), листовой узел квадродерева может дополнительно секционироваться с использованием секционирования двоичного дерева. Секционирование двоичного дерева одного узла может выполняться итерацией до тех пор, пока узел не достигнет минимально разрешенного размера листового узла двоичного дерева (например, как обозначается синтаксическим элементом MinBTSize) или максимально разрешенной глубины двоичного дерева (например, как обозначается синтаксическим элементом MaxBTDepth). Предложение VCEG COM16-C966 использует термин «CU» для ссылки на листовые узлы двоичного дерева. В предложении VCEG COM16-C966, CU используются для предсказания (например, интра-предсказания, интер-предсказания и т.д.) и преобразования без дальнейшего секционирования. В общем, согласно методам QTBT, существует два типа разделения для разделения двоичного дерева: симметричное горизонтальное разделение и симметричное вертикальное разделение. В каждом случае, блок разделяется путем деления блока посредине, горизонтально или вертикально. Это отличается от секционирования квадродерева, которое делит блок на четыре блока.

[0066] В одном примере структуры секционирования QTBT, размер CTU устанавливается как 128х128 (например, блок яркости 128х128 и два соответствующих блока цветности 64х64), MinQTSize устанавливается как 16х16, MaxBTSize устанавливается как 64х64, MinBTSize (как для ширины, так и для высоты) устанавливается как 4, и MaxBTDepth устанавливается как 4. Разбиение квадродерева применяется к CTU сначала для генерации листовых узлов квадродерева. Листовые узлы квадродерева могут иметь размер от 16х16 (т.е. MinQTSize равно 16х16) до 128х128 (т.е. до размера CTU). Согласно одному примеру секционирования QTBT, если листовой узел квадродерева составляет 128х128, листовой узел квадродерева не может далее разбиваться по двоичному дереву, так как размер листового узла квадродерева превышает MaxBTSize (то есть 64х64). В противном случае, листовой узел квадродерева далее разбивается по двоичному дереву. Таким образом, листовой узел квадродерева также является корневым узлом для двоичного дерева и имеет глубину двоичного дерева 0. Глубина двоичного дерева, достигающая MaxBTDepth (например, 4), подразумевает, что дальнейшее разделение отсутствует. Узел двоичного дерева, имеющий ширину, равную MinBTSize (например, 4), подразумевает, что дальнейшее горизонтальное разделение отсутствует. Аналогично, узел двоичного дерева, имеющий высоту, равную MinBTSize, не предполагает дальнейшего вертикального разделения. Листовые узлы двоичного дерева (CU) дополнительно обрабатываются (например, путем выполнения процесса предсказания и процесса преобразования) без дальнейшего секционирования.

[0067] Фиг. 2А показывает пример блока 50 (например, CTB), секционированного с использованием методов секционирования QTBT. Как показано на фиг. 2А, с использованием методов секционирования QTBT, каждый из результирующих блоков разделяется симметрично через центр каждого блока. Фиг. 2B иллюстрирует древовидную структуру, соответствующую секционированию блоков согласно фиг. 2A. Сплошные линии на фиг. 2B показывают разделение квадродерева, и пунктирные линии показывают разделение двоичного дерева. В одном примере, в каждом разделяющемся (то есть не-листовом) узле двоичного дерева, синтаксический элемент (например, флаг) сигнализируется, чтобы указывать тип выполняемого разделения (например, горизонтальное или вертикальное), где 0 указывает горизонтальное разделение, а 1 указывает вертикальное разделение. Для разделения квадродерева, нет необходимости указывать тип разделения, так как разделение квадродерева всегда разделяет блок по горизонтали и по вертикали на 4 подблока с равным размером.

[0068] Как показано на фиг. 2B, в узле 70, блок 50 разделен на четыре блока 51, 52, 53 и 54, показанные на фиг. 2A, с использованием секционирования квадродерева. Блок 54 далее не разделяется и, следовательно, является листовым узлом. В узле 72, блок 51 далее разделяется на два блока с использованием секционирования двоичного дерева. Как показано на фиг. 2B, узел 72 маркирован посредством 1, что указывает на вертикальное разделение. Таким образом, разделение в узле 72 приводит к блоку 57 и блоку, включающему в себя блоки 55 и 56. Блоки 55 и 56 созданы путем дальнейшего вертикального разделения в узле 74. В узле 76, блок 52 далее разделяется на два блока 58 и 59 с использованием секционирования двоичного дерева. Как показано на фиг. 2B, узел 76 маркирован посредством 1, что указывает на горизонтальное разделение.

[0069] В узле 78, блок 53 разделяется на 4 блока равного размера с использованием секционирования квадродерева. Блоки 63 и 66 созданы из этого секционирования квадродерева и далее не разделяются. В узле 80, верхний левый блок сначала разделяется с использованием вертикального разделения двоичного дерева, что приводит к блоку 60 и правому вертикальному блоку. Правый вертикальный блок затем разделяется с использованием горизонтального разделения двоичного дерева на блоки 61 и 62. Нижний правый блок, созданный из разделения квадродерева в узле 78, разделяется в узле 84 с использованием горизонтального разделения двоичного дерева на блоки 64 и 65.

[0070] В одном примере секционирования QTBT, секционирование яркости и цветности может выполняться независимо друг от друга для I-срезов, в противоположность, например, HEVC, где секционирование квадродерева выполняется совместно для блоков яркости и цветности. То есть, в некоторых исследованных примерах, блоки яркости и блоки цветности могут быть секционированы отдельно, так что блоки яркости и блоки цветности не перекрываются напрямую. Таким образом, в некоторых примерах секционирования QTBT, блоки цветности могут быть секционированы таким образом, что по меньшей мере один секционированный блок цветности не выровнен пространственно с одним секционированным блоком яркости. То есть выборки яркости, которые расположены совместно с конкретным блоком цветности, могут находиться в двух или более разных секциях яркости.

[0071] Как описано выше, в некоторых примерах, информация, относящаяся к тому, как должен кодироваться блок цветности, может быть получена из информации, относящейся к соответствующему блоку яркости. Однако если секционирование яркости и цветности выполняется независимо, блоки яркости и цветности могут быть не выровненными (например, блоки яркости и цветности могут не соответствовать одному и тому же набору пикселов). Например, секционирование цветности может быть таким, что блоки цветности больше или меньше, чем соответствующая секция яркости. Кроме того, блоки цветности могут пространственно перекрывать два или более блоков яркости. Как объяснено выше, если секционированный блок цветности больше, чем секционированный блок яркости, может быть случай, когда имеется более одного блока яркости, который пространственно соответствует конкретному блоку цветности и, следовательно, более чем одному набору информации яркости (например, синтаксических элементов и т.п.), ассоциированной с секциями яркости, соответствующими размеру секции цветности. В таких случаях неясно, как выводить информацию о цветности из информации о яркости. Следует понимать, что такая ситуация может возникнуть с любой структурой секционирования, где блоки яркости и цветности секционированы независимо, а не только с примерами структур секционирования QTBT, изучаемыми JVET.

[0072] С учетом этих недостатков, настоящее раскрытие описывает способы и устройства для получения информации о цветности из информации о яркости для картинок, секционированных с использованием отдельного и/или независимого секционирования яркости и цветности. Как описано выше, секционирование яркости и цветности может быть не выровненным, например, ввиду разных размеров или форм. Полученная информация (например, определенная информация о режиме кодирования) из блока яркости может использоваться как предиктор (предсказатель) для информации о цветности (например, режиме кодирования, подлежащем использованию для блока цветности) или может использоваться для кодирования блока цветности видеоданных. Альтернативно или дополнительно, информация о яркости может использоваться для моделирования контекста в контекстном кодировании информации о цветности. Опционально, моделирование контекста может сочетаться с информацией предсказания. Следует понимать, что каждый из описанных ниже методов может использоваться независимо или может быть объединен с другими методами в любой комбинации.

[0073] В качестве одного примера раскрытия, видеокодер 22 кодирует блок яркости видеоданных, используя конкретный режим кодирования (например, конкретный режим интра-предсказания, конкретный режим интер-предсказания, конкретный режим фильтрации, конкретный режим предсказания вектора движения и т.д.). В некоторых примерах, видеокодер 22 может дополнительно кодировать синтаксические элементы, которые указывают, какой режим(ы) кодирования использовался для кодирования конкретного блока яркости. Видеодекодер 30 может быть сконфигурирован, чтобы декодировать синтаксические элементы для определения режима(ов) кодирования, используемого для декодирования блока яркости. В других примерах, видеодекодер 30 может не принимать синтаксические элементы, которые явно указывают конкретный режим кодирования. Вместо этого видеодекодер 30 может быть сконфигурирован для получения конкретного режима кодирования для блока яркости на основе различных характеристик видео (например, размера блока, информации из соседних блоков и т.д.) и набора предопределенных правил. В других примерах, видеодекодер 30 может определять режимы кодирования на основе комбинации явно сигнализированных синтаксических элементов и предопределенных правил.

[0074] В одном примере, видеокодер 22 может опционально кодировать блоки цветности (например, блок Cr и/или блок Cb), используя тот же режим кодирования, что и соответствующий блок яркости. Вместо видеокодера 22, просто сигнализирующего синтаксические элементы и/или другую информацию, указывающую режим кодирования для блоков цветности, видеокодер 22 может сигнализировать синтаксический элемент (например, флаг), который указывает видеодекодеру 30 повторно использовать любую сигнализированную или производную информацию для определения режима(ов) кодирования для блока яркости в качестве предсказателя для режима(ов) кодирования одного или нескольких соответствующих блоков цветности. Например, флаг может кодироваться для одного или нескольких блоков цветности, чтобы указывать, закодированы ли блоки цветности с тем же режимом кодирования, что и соответствующий блок яркости. Если нет, то видеокодер 22 генерирует синтаксические элементы, указывающие режим кодирования для блока цветности независимо, где видеокодер 22 может принимать во внимание, что режим цветности не одинаков с режимом яркости. То есть, видеокодер 22 и видеодекодер могут быть в состоянии определить, что режим кодирования для блока цветности не совпадает с режимом кодирования для блока яркости, и поэтому режим кодирования блока яркости может быть исключен как возможность для блока цветности. В другом примере, отдельный контекст может использоваться для кодирования флага, который указывает, закодирован ли компонент цветности с использованием того же режима, что и компонент яркости.

[0075] В примере, описанном выше, предполагается, что видеокодер 22 и видеодекодер 30 сначала кодируют блок яркости с последующим кодированием одного или нескольких блоков цветности. В этом примере, информация о яркости уже доступна, когда кодируется блок цветности. Если видеокодер 22 и видеодекодер 30 сконфигурированы для кодирования блоков в другом порядке (например, сначала кодируется блок цветности), то термины «яркость» и «цветность» могут быть просто переставлены в следующих примерах.

[0076] В одном примере раскрытия, видеодекодер 30 может быть сконфигурирован для приема битового потока закодированных видеоданных и сохранения закодированных видеоданных в памяти (например, на носителе 28 согласно фиг. 1). Закодированные видеоданные могут представлять как секционированные блоки яркости, так и секционированные блоки цветности. В некоторых примерах, секционированные блоки цветности могут включать в себя как блоки цветности Cr, так и блоки цветности Cb. Как используется в раскрытии, термин «блок цветности» может относиться к любому типу блока, который включает в себя любой тип информации о цветности. В примерах этого раскрытия, блоки цветности секционированы независимо от блоков яркости. То есть видеокодер 22 может быть сконфигурирован для кодирования видеоданных с использованием отдельной структуры секционирования для блоков яркости и блоков цветности.

[0077] Такая отдельная структура секционирования может приводить к тому, что по меньшей мере один секционированный блок цветности не выровнен с одним секционированным блоком яркости. Таким образом, для конкретного пространственного местоположения картинки, видеокодер 22 может секционировать один блок цветности, но секционировать несколько блоков яркости. Однако следует понимать, что для других пространственных местоположений картинки, может иметься соответствие 1 к 1 между блоками яркости и цветности, или может иметься несколько блоков цветности для одного блока яркости. Структура секционирования QTBT, описанная выше, представляет собой тип структуры секционирования, в которой блоки яркости и цветности секционированы независимо/отдельно. Однако методы этого раскрытия могут быть применены к видеоданным, секционированным в соответствии с любой структурой секционирования, где блоки яркости и цветности секционированы независимо.

[0078] Видеодекодер 30 может быть дополнительно сконфигурирован для определения режима кодирования для соответственных секционированных блоков яркости, принятых в закодированном битовом потоке видео, и декодирования соответственных секционированных блоков яркости в соответствии с определенными соответственными режимами кодирования. Видеодекодер 30 может быть сконфигурирован для определения режима кодирования из информации, указанной синтаксическими элементами, принятыми в закодированном битовом потоке видео. Такие синтаксические элементы могут явно указывать режимы кодирования. В других примерах, видеодекодер 30 может быть сконфигурирован, чтобы неявно определять режим кодирования блоков яркости из характеристик видеоданных и некоторых предопределенных правил. В других примерах, видеодекодер 30 может определять режимы кодирования блоков яркости с использованием комбинации явно сигнализированных синтаксических элементов и неявно определенных режимов кодирования из предопределенных правил и характеристик видеоданных.

[0079] В контексте этого раскрытия, режимы кодирования могут представлять собой любую информацию, которая указывает видеодекодеру 30, как видеокодер 22 закодировал закодированные видеоданные и как видеодекодер 30 должен декодировать видеоданные. Примерные режимы кодирования могут включать в себя прямой режим для интра-предсказания цветности, флаг позиционно-зависимой комбинации интра-предсказания (PDPC) (например, указывающий, используется ли режим PDPC), параметры PDPC, установки вторичного преобразования для неразделяемых вторичных преобразований (NSST), расширенного множественного преобразования (EMT), адаптивных множественных преобразований (AMT) и контексты для выбора моделей энтропийного кодирования данных. Выше приведены примеры режимов кодирования цветности, которые могут быть получены из режимов кодирования яркости (режимов кодирования, используемых для кодирования блоков яркости), определенных видеодекодером 30, и которые были использованы в тестовой модели JEM, изученной в JVET. Однако следует понимать, что режимы кодирования могут включать в себя любой режим кодирования, используемый для кодирования блоков яркости, которые могут быть повторно использованы для кодирования блоков цветности или использованы для предсказания режима кодирования для блока цветности.

[0080] Независимо от типа режима кодирования или способа определения режима кодирования, видеодекодер 30 может быть сконфигурирован для сохранения определенного режима кодирования для конкретных секционированных блоков яркости во множестве различных ячеек памяти, ассоциированных с конкретным секционированным блоком яркости. Как будет объяснено более подробно ниже со ссылкой на фиг. 3, конкретный секционированный блок яркости может быть разделен на подблоки, и видеодекодер 30 может сохранять режим кодирования, определенный для всего конкретного секционированного блока яркости, в ячейках памяти, соответствующих каждому из подблоков. Соответственно, для конкретного секционированного блока яркости, разделенного на N подблоков, режим кодирования сохраняется в N разных ячейках памяти, причем каждая ячейка памяти соответствует конкретному пространственно локализованному подблоку в секционированном блоке яркости. Подблоки могут быть прямоугольным или квадратным блоком любого размера. В некоторых примерах, подблоком может быть только одна выборка, т.е. блок размера 1х1. В некоторых примерах, каждая ячейка памяти может хранить данные, которые явно указывают режим кодирования для конкретного секционированного блока яркости. В других примерах, одна или несколько ячеек памяти, ассоциированных с конкретным секционированным блоком яркости, явно хранят информацию, указывающую режим кодирования, тогда как другие ячейки памяти, ассоциированные с конкретным секционированным блоком яркости, хранят указатели на ячейку(и) памяти, которая явно хранит режим кодирования.

[0081] В соответствии с некоторыми примерами раскрытия, видеодекодер 30 может быть сконфигурирован для повторного использования информации режима кодирования, принятой для блока яркости, для использования при декодировании блока цветности. В некоторых примерах, видеодекодер 30 может принимать и декодировать первый синтаксический элемент, указывающий, должны ли использоваться режимы кодирования, ассоциированные с соответственными секционированными блоками яркости, для декодирования конкретного секционированного блока цветности. Как описано выше, секционированный блок цветности может быть пространственно выровнен с двумя или более различными секционированными блоками яркости. Таким образом, может быть трудно определить, как повторно использовать режимы кодирования яркости для такого блока цветности, поскольку неясно, из какого блока яркости наследовать (например, повторно использовать) информацию о режиме кодирования. Путем сохранения информации о режиме кодирования яркости в нескольких ячейках памяти, соответствующих нескольким местоположениям подблоков, видеодекодер 30 может быть сконфигурирован для определения, какую информацию о режиме кодирования из блока яркости повторно использовать для конкретного блока цветности, с использованием функции информации о режиме кодирования, сохраненной для подблоков, которые соответствуют пространственному местоположению конкретного блока цветности. В этом контексте, функция может представлять собой набор предопределенных правил и методов анализа, которые использует видеодекодер 30 для определения, какой режим(ы) кодирования двух или более совместно расположенных секционированных блоков яркости повторно использовать для секционированного блока цветности. Как только режим кодирования яркости для повторного использования определен, видеодекодер 30 может декодировать конкретный секционированный блок цветности с определенным режимом кодирования.

[0082] Видеодекодер 30 может быть сконфигурирован для определения, какой режим кодирования повторно использовать из двух или более пространственно выровненных блоков яркости, на основе функции информации о режиме кодирования, сохраненной в ячейках памяти, ассоциированных с подблоками секционированных блоков яркости. Можно использовать несколько различных функций. В одном примере раскрытия, видеодекодер 30 может быть сконфигурирован для выполнения статистического анализа информации о режиме кодирования яркости, соответствующей двум или более секциям яркости, которые размещены совместно с секцией цветности. Определенная информация о режиме кодирования яркости из блока яркости для использования блоком цветности может быть функцией всей информации о режиме кодирования яркости (например, информацией о режиме кодирования, содержащейся в каждом подблоке яркости, который совместно расположен с блоком цветности) и о том, как информация о режиме кодирования яркости изменяется (например, в какой степени информация аналогична или различна) по совместно расположенным подблокам в блоке яркости. Одно отличие от предыдущих методов для повторного использования режима кодирования и методов этого раскрытия состоит в том, что информация о режиме кодирования яркости может быть связана с более чем одним блоком (или секцией) яркости ввиду отдельного секционирования яркости и цветности.

[0083] Примеры функции, которая может использоваться для определения того, какая информация о режиме кодирования яркости из двух или более секционированных блоков яркости может быть повторно использована для совместно расположенного блока цветности, могут включать в себя (без ограничения указанным) одну или несколько функций, описанных ниже. В одном примере, видеодекодер 30 может выполнять функцию, которая включает в себя статистический анализ информации о режиме кодирования, указывающей определенный соответственный режим кодирования из двух или более секционированных блоков яркости. Информация о режиме кодирования сохраняется в соответственных ячейках памяти, ассоциированных с соответственными подблоками двух или более секционированных блоков яркости. В одном примере, видеодекодер 30 может анализировать информацию о режиме кодирования и возвращать (например, определять, чтобы использовать и получать из памяти) информацию о режиме кодирования, которая наиболее часто встречается для совместно расположенных подблоков двух или более секционированных блоков яркости. То есть, функция возвращает большую часть информации о яркости, используемой в соответствующих блоках яркости. Таким образом, эта функция указывает, что конкретная информация о режиме кодирования яркости, из двух или более секционированных блоков яркости, должна быть повторно использована для совместно расположенного блока цветности.

[0084] В других примерах, видеодекодер 30 может использовать функцию, выполняющую анализ информации о режиме кодирования для подблоков двух или более секционированных блоков яркости, анализ включает в себя измерение градиента или высших производных информации о режиме кодирования яркости для измерения гладкости этой информации. Например, некоторая экстремальная информация о режиме кодирования (например, выброс) в двух или более блоках яркости, которая может сильно отличаться от большей части информации о режиме кодирования, относящейся к двум или более блокам яркости, может игнорироваться и не использоваться повторно для блоков цветности. В других примерах, видеодекодер 30 может назначать разные веса для информации о режиме кодирования яркости, сохраненной для соответственных подблоков, и использовать взвешенное среднее значение режимов кодирования для определения того, какой режим повторно использовать для блока цветности. Веса могут быть назначены на основе относительных местоположений подблоков яркости, которые совместно расположены с блоком цветности.

[0085] В других примерах, функции, используемые для определения того, какой режим(ы) кодирования яркости повторно использовать для блока цветности, могут включать в себя одну или несколько из следующих характеристик кодирования видео. Функции, которые видеодекодер 30 может использовать для определения того, какой режим(ы) кодирования яркости повторно использовать для блока цветности, могут включать в себя форму блока (прямоугольник, квадрат), ориентацию блока (вертикально или горизонтально ориентированный прямоугольный блок), форму блока цветности, форму блока яркости, содержащего репрезентативное местоположение, ширину или высоту блоков яркости и/или цветности, более часто используемый режим яркости области, соответствующей блоку цветности. В других примерах, эта функция может быть основана на режиме предсказания или информации о яркости в репрезентативном местоположении. Например, если видеодекодер 30 сконфигурирован для повторного использования интра-режима яркости для блока цветности, но блок яркости в репрезентативном местоположении закодирован в интер-режиме, видеодекодер 30 может конфигурироваться, чтобы выбирать другое репрезентативное местоположение для определения интра-режима яркости для повторного использования для блока цветности. В более общем случае, если видеодекодер 30 определяет, какую информацию о яркости повторно использовать для кодирования блока цветности, но информация о яркости может быть недействительной для этого блока цветности, видеодекодер 30 может рассматривать информацию о яркости из другого репрезентативного местоположения в блоке яркости или в противном случае может использовать некоторую информацию о яркости по умолчанию.

[0086] В другом примере раскрытия, видеодекодер 30 может повторно использовать информацию о режиме кодирования на основе предопределенного местоположения подблока. Например, видеодекодер 30 может просто повторно использовать информацию о режиме кодирования, сохраненную для конкретного местоположения подблока, который совместно расположен (совмещен) с блоком цветности. В качестве одного примера, видеодекодер 30 может повторно использовать информацию о режиме кодирования, сохраненную в подблоке яркости, который совмещен с конкретным углом секционированного блока цветности. Любой угловой подблок может использоваться. В качестве еще одного примера, видеодекодер 30 может повторно использовать информацию о режиме кодирования, сохраненную в подблоке яркости, который совмещен с центром секционированного блока цветности. В других примерах, видеодекодер 30 может выполнять статистический анализ (например, как описано выше) информации о режиме кодирования, сохраненной для некоторого предопределенного количества местоположений подблоков яркости. То есть, видеодекодер 30 может использовать функцию, которая анализирует определенные подблоки секции яркости и выводит информацию о цветности на основе информации о яркости, содержащейся в ней.

[0087] В другом примере, видеодекодер 30 может разделить секционированный блок цветности на несколько подблоков, например, 1х1, 2х2, 4х4 или подблоков другого размера. Затем, для каждого подблока, видеодекодер 30 может наследовать (например, повторно использовать) информацию о режиме кодирования яркости, сохраненную для конкретного подблока яркости, для совмещенного подблока цветности. Таким образом, различная информация кодирования из соответствующего блока яркости может применяться в одном блоке цветности.

[0088] Как обсуждалось выше, видеодекодер 30 может использовать одну из множества предопределенных функций для определения того, как повторно использовать информацию о режиме кодирования яркости для блоков цветности. В некоторых примерах, видеодекодер 30 может быть сконфигурирован для использования одной предопределенной функции и использовать эту функцию для всех картинок. В других примерах, видеодекодер 30 может определять, какую функцию использовать, на основе некоторых характеристик кодирования видео. В других примерах видеокодер 22 может быть сконфигурирован, чтобы сигнализировать синтаксический элемент, который указывает видеодекодеру 30, какую функцию использовать, чтобы определить, как повторно использовать информацию о режиме кодирования яркости. Такой синтаксический элемент может сигнализироваться на любом уровне, например, на уровне последовательности, уровне картинки, уровне среза, уровне мозаики, уровне CTB и т.д.

[0089] Фиг. 3 является концептуальной диаграммой, иллюстрирующей пример относительного секционирования яркости и цветности в соответствии с методами настоящего раскрытия. Как показано на фиг. 3, информация хранится для каждой секции (например, секционированных блоков яркости) в подблоках секций (пунктирные прямоугольники). Подблоки могут быть любого размера, вплоть до размера отдельной выборки. Фиг. 3 показывает, что одна секция цветности, будь то в формате субдискретизации 4:4:4 или 4:2:0, может иметь более одной ассоциированной секции яркости. Таким образом, одна секция цветности может иметь более одного соответствующего набора информации о яркости. Определенные репрезентативные местоположения (например, подблоки) секций яркости могут использоваться для анализа информации о яркости (например, режимов кодирования), чтобы получить информацию о цветности для соответствующей секции цветности, как описано выше.

[0090] Фиг. 4 является концептуальной диаграммой, иллюстрирующей другой пример относительного секционирования яркости и цветности в соответствии с методами настоящего раскрытия. Как показано на фиг. 4, информация сохранена по каждой секции в подблоках (пунктирные прямоугольники) секции яркости. Фиг. 4 показывает, что каждый подблок в одной секции цветности может иметь один ассоциированный подблок яркости, и информация о яркости ассоциированного одного подблока яркости может анализироваться для получения информации о цветности для соответствующего подблока цветности.

[0091] В следующем разделе описаны некоторые примеры, которые могут использовать методы раскрытия. В прямом режиме цветности, внутреннее (интра-) направление яркости используется для интра-предсказания цветности. Пример этого режима использовался в HEVC. В соответствии с одним примерным методом этого раскрытия, когда структура цветности и яркости не выровнена (например, из-за независимого секционирования цветности и яркости), центральный репрезентативный подблок яркости выбирается так, чтобы получить режим интра-предсказания яркости, который затем применяется для секционирования цветности как прямой режим. Другие подблоки яркости соответствующей секции яркости могут иметь другие внутренние направления, отличные от выбранного подблока. Другие функции вместо использования центрального репрезентативного подблока, как объяснялось выше, также могут быть использованы.

[0092] В другом примере, в прямом режиме цветности, когда структура цветности и яркости не выровнена, интра-предсказание цветности выполняется в единицах подблоков 2х2 (или 4х4). Для каждого подблока 2х2 (или 4х4) цветности идентифицируется один ассоциированный подблок 4х4 яркости, и режим интра-предсказания этого идентифицированного подблока 4х4 яркости применяется для текущего подблока 2х2 (или 4х4) цветности.

[0093] В другом примере, применяется флаг управления PDPC цветности (т.е., режим PDPC применяется или нет), и параметры PDPC выводятся, например, из центрального репрезентативного подблока яркости и применяются для секции цветности. Другие функции вместо использования центрального репрезентативного подблока, как объяснялось выше, также могут быть использованы.

[0094] В другом примере, набор вторичного преобразования (NSST) выбирается видеодекодером 30 из центрального репрезентативного подблока яркости и применяется для секции цветности. Другие функции вместо использования центрального репрезентативного подблока, как объяснялось выше, также могут быть использованы.

[0095] Аналогичные методы могут применяться видеодекодером 30 к любой информации о цветности, которая выводится из информации о яркости.

[0096] Вышеприведенные примеры были описаны со ссылкой на видеодекодер 30. Однако видеокодер 22 может использовать те же методы для определения того, как повторно использовать информацию, генерируемую, выводимую и/или сигнализируемую для блоков яркости, для блоков цветности. В частности, видеокодер 22 может определять, следует ли сигнализировать синтаксический элемент, который указывает, следует ли повторно использовать информацию о режиме кодирования яркости для блоков цветности на основе функции, которую будет использовать видеодекодер, для определения того, какую информацию о режиме кодирования яркости следует повторно использовать.

[0097] В следующих разделах описаны методы для определения параметров для режима кодирования позиционно-зависимой комбинации интра-предсказания (PDPC) для блоков видеоданных, которые могут быть секционированы на неквадратные, прямоугольные секции. Структура секционирования QTBT, описанная выше, является примером структуры секционирования, которая позволяет использовать неквадратные, прямоугольные блоки. Однако методы этого раскрытия могут быть использованы с любой структурой секционирования, которая создает неквадратные, прямоугольные блоки.

[0098] При кодировании видеоданных с использованием режима кодирования PDPC, видеокодер 22 и/или видеодекодер 30 могут использовать одно или несколько параметризованных уравнений, которые определяют, как комбинировать предсказания на основе отфильтрованных и нефильтрованных опорных значений и на основе положения предсказанного пиксела. Настоящее раскрытие описывает несколько наборов параметров, так что видеокодер 22 может быть сконфигурирован, чтобы тестировать наборы параметров (например, с использованием анализа скорости-искажения) и сигнализировать в видеодекодер 30 оптимальные параметры (например, параметры, приводящие к наилучшей характеристике скорость-искажение среди тех параметров, которые тестируются). В других примерах, видеодекодер 30 может быть сконфигурирован для определения параметров PDPC по характеристикам видеоданных (например, размер блока, высота блока, ширина блока и т.д.).

[0099] Фиг. 5А иллюстрирует предсказание 4х4 блока (p) с использованием нефильтрованного опорного значения (r) в соответствии с методами настоящего раскрытия. Фиг. 5B иллюстрирует предсказание 4х4 блока (q) с использованием отфильтрованного опорного значения (s) в соответствии с методами настоящего раскрытия. Хотя фиг. 5А и 5В иллюстрируют 4х4 блок пикселов и 17 (4х4+1) соответствующих опорных значений, способы настоящего раскрытия могут применяться к любому размеру блока и количеству опорных значений.

[0100] Видеокодер 22 и/или видеодекодер 30, при выполнении режима кодирования PDPC, могут использовать комбинацию между отфильтрованными (q) и нефильтрованными (p) предсказаниями, так что предсказанный блок для текущего блока, который должен быть закодирован, может вычисляться с использованием значений пикселов из отфильтрованных (s) и нефильтрованных (r) опорных массивов.

[0101] В одном примере методов PDPC, учитывая любые два набора предсказаний пикселов pr[x, y] и qs[x, y], вычисленных с использованием только нефильтрованных и отфильтрованных опорных значений r и s, соответственно, комбинированное предсказанное значение пиксела, обозначаемое v[x, y], определяется формулой

v[x, y]=c[x, y]pr[x, y]+(1-c[x, y])qs[x, y] (1)

где c[x, y] - набор параметров комбинации. Значение веса c[x, y] может быть значением от 0 до 1. Сумма весов c[x, y] и (1- c[x, y]) может быть равна единице.

[0102] В некоторых примерах может оказаться нецелесообразным иметь набор параметров такой величины, как количество пикселов в блоке. В таких примерах c[x, y] может быть определено гораздо меньшим набором параметров, плюс уравнением для вычисления всех значений комбинации из этих параметров. В таком примере может быть использована следующая формула:

(2)

где и являются параметрами предсказания, N - размер блока, и являются значениями предсказания, вычисленными в соответствии со стандартом HEVC, для конкретного режима, используя соответственно нефильтрованные и отфильтрованные опорные значения, и

(3)

является коэффициентом нормализации (т.е., чтобы сделать все веса, назначенные для и , суммируемыми до 1), определяемым параметрами предсказания.

[0103] Формула 2 может быть обобщена для любого стандарта кодирования видео в формуле 2А:

(2A)

где и являются параметрами предсказания, N - размер блока, представляют собой значения предсказания, вычисленные в соответствии со стандартом кодирования видео (или схемой или алгоритмом кодирования видео) для конкретного режима с использованием соответственно нефильтрованных и отфильтрованных опорных значений, и

(3A)

является коэффициентом нормализации (т.е., чтобы сделать все веса, назначенные для и, суммируемыми до 1), определяемым параметрами предсказания.

[0104] Эти параметры предсказания могут включать в себя веса для обеспечения оптимальной линейной комбинации предсказанных членов в соответствии с типом используемого режима предсказания (например, DC, планарного и 33 направленных режимов HEVC). Например, HEVC содержит 35 режимов предсказания. Таблица поиска может быть построена со значениями для каждого из параметров предсказания и для каждого из режимов предсказания (т.е. 35 значений и для каждого режима предсказания). Такие значения могут быть закодированы в битовом потоке с видео или могут быть постоянными значениями, известными кодеру и декодеру заранее, и, возможно, их не нужно передавать в файле или битовом потоке. Значения и могут быть определены алгоритмом обучения оптимизации путем нахождения значений параметров предсказания, которые дают наилучшее сжатие для набора обучающих видео.

[0105] В другом примере, существует множество предопределенных наборов параметров предсказания для каждого режима предсказания (например, в таблице поиска), и выбранный набор параметров предсказания (но не сами параметры) передается в декодер в закодированном файле или битовом потоке. В другом примере, значения для и могут генерироваться «на лету» видеокодером и передаваться в декодер в закодированном файле или битовом потоке.

[0106] В другом примере, вместо использования предсказания HEVC, устройство кодирования видео, выполняющее эти методы, может использовать модифицированную версию HEVC, например, такую, которая использует 65 направленных предсказаний вместо 33 направленных предсказаний. Фактически, любой тип внутрикадрового предсказания может быть использован.

[0107] В другом примере, формула может быть выбрана для облегчения вычислений. Например, мы можем использовать следующий тип предсказателя:

(4)

где

(5)

и

(6)

[0108] Такой подход может использовать линейность предсказания HEVC (или другого предсказания). Определяя h как импульсный отклик фильтра k из предопределенного набора, если мы имеем

(7)

где «*» представляет свертку, то

(8)

т.е., линейно комбинированное предсказание может быть вычислено из линейно комбинированного опорного значения.

[0109] Формулы 4, 6 и 8 могут быть обобщены для любого стандарта кодирования видео в формулах 4А, 6А и 8А:

(4A)

где

(5А)

и

(6A)

Такой подход может использовать линейность предсказания стандарта кодирования. Определяя h как импульсный отклик фильтра k из предопределенного набора, если мы имеем

(7A)

где «*» представляет свертку, то

(8A)

т.е. линейно комбинированное предсказание может быть вычислено из линейно комбинированного опорного значения.

[0110] В одном примере, функции предсказания могут использовать опорный вектор (например, r и s) только в качестве ввода. В этом примере, поведение опорного вектора не изменяется, если опорное значение было отфильтровано или не было отфильтровано. Если r и s равны (например, некоторое нефильтрованное опорное значение r оказывается совпадающим с другим отфильтрованным опорным значением s), то функции предсказания, например pr[x, y] (также записывается как p(x, y, r)) равна ps[x, y] (также записывается как p(x, y, s))), применяемые к фильтрованным и нефильтрованным опорным значениям, равны. Кроме того, пиксельные предсказания p и q могут быть эквивалентными (например, производить один и тот же выход при одном и том же входе). В таком примере, формулы (1)-(8) можно переписать с пиксельным предсказанием p[x, y], заменяющим пиксельное предсказание q[x, y].

[0111] В другом примере, предсказание (например, набор функций) может изменяться в зависимости от информации, что опорное значение было отфильтровано. В этом примере, различные наборы функций могут быть обозначены (например, рr[х, у] и qs[x, y]). В этом случае, даже если r и s равны, рr[х, у] и qs[x, y] могут быть не равными. Другими словами, один и тот же вход может создавать разный выход в зависимости от того, был ли вход отфильтрован или нет. В таком примере p[x, y] может оказаться невозможным заменить на q[x, y].

[0112] Преимущество приведенных уравнений предсказания состоит в том, что с параметризованной формулировкой могут быть определены наборы оптимальных параметров (т.е. те, которые оптимизируют точность предсказания), для различных типов текстур видео, используя такие методы, как обучение. Этот подход, в свою очередь, может быть расширен в некоторых примерах путем вычисления нескольких наборов параметров предсказания, для некоторых типовых типов текстур, и использования схемы сжатия, в которой кодер тестирует предсказатели из каждого набора и кодирует в качестве побочной информации тот, который дает лучшее сжатие.

[0113] В некотором примере описанных выше методов, когда задействован режим кодирования PDPC, параметры PDPC, используемые для взвешивания и управления интра-предсказанием, например, с использованием отфильтрованных или нефильтрованных выборок режима PDPC, предварительно вычисляются и сохраняются в таблице поиска (LUT). В одном примере, видеодекодер 30 определяет параметры PDPC в соответствии с размером блока и направлением интра-предсказания. Предыдущие методы для режима кодирования PDPC предполагали, что интра-предсказанные блоки всегда являются квадратными.

[0114] Тестовая модель JVET включает в себя режим кодирования PDPC. Как обсуждалось выше, тестовая модель JVET использует секционирование QTBT, которое позволяет использовать неквадратные прямоугольные блоки. В следующем разделе рассматриваются примерные методы расширения кодирования PDPC для прямоугольных блоков. Однако следует понимать, что методы этого раскрытия могут использоваться для определения параметров режима предсказания для любого режима предсказания, который использует неквадратные блоки, включая режимы предсказания, которые применяют взвешенное среднее значение к предсказателю и опорные выборки в соответствии с местоположением выборок.

[0115] Предлагается модифицировать структуру LUT, используемую для определения параметров PDPC, или методы, используемые для получения параметров из LUT, таким образом, что для горизонтально-связанных параметров ширина блока используется для хранения или доступа к параметрам PDPC из LUT, а также для вертикально-связанных параметров высота блока используется для хранения или доступа к параметрам PDPC из LUT. Для других параметров, которые не имеют горизонтальной или вертикальной связи, можно использовать функцию ширины и высоты блока для хранения или доступа к этим параметрам из LUT.

[0116] Видеодекодер 30 может принимать блок видеоданных, который был закодирован с использованием режима PDPC. В этом примере, блок видеоданных может иметь неквадратную, прямоугольную форму, определяемую шириной и высотой. Видеодекодер 30 может определять горизонтально-связанные параметры PDPC как функцию режима интра-предсказания и ширины блока. Видеодекодер 30 может определять вертикально-связанные параметры PDPC как функцию режима интра-предсказания и высоты блока. Кроме того, видеодекодер 30 может определять ненаправленные параметры PDPC (например, параметры PDPC, которые не являются ни горизонтально-связанными, ни вертикально-связанными) на основе режима интра-предсказания и функции высоты и ширины блока. Примерные вертикально-связанные параметры указаны выше с верхним индексом v. Примерные горизонтально-связанные параметры указаны выше с верхним индексом h. Функция, например, может быть, но не ограничивается, максимальным или минимальным значением ширины и высоты блока или взвешенным средним значением высоты и ширины блока, где взвешивание может зависеть от того, насколько одно измерение блока больше, чем другое измерение блока. Например, больший размер (ширина или высота) может иметь больший вес, чем другой размер во взвешенном среднем значении.

[0117] Поскольку разрешено только определенное количество форм блоков (ширина и высота), эта функция также может быть явно представлена для всех возможных значений ширины и высоты блока или подкомбинаций. Например, если имеется Nw и Nh возможных значений ширины и высоты блоков, таблицы размера NwхNh могут хранить данные, которые будут использоваться в процессе интра-предсказания, для каждого прямоугольного или квадратного блока.

[0118] На фиг. 6 представлена концептуальная диаграмма, иллюстрирующая использование вложенных таблиц для определения набора параметров предсказания, используемых в прямоугольном блоке, в соответствии с одним примером раскрытия. Видеодекодер 30 может определять параметры PDPC с использованием одной или нескольких LUT, записи которых индексированы как по ширине, так и по высоте блока. Как показано на фиг. 6, ширина (W) и/или высота (H) могут использоваться в качестве входов в таблицу 90 размера к параметру. Таблица 90 размера к параметру может быть сконфигурирована как (LUT), которая содержит индексы, которые указывают на записи в таблице 92 параметров предсказания. Как обсуждалось выше, таблица 90 размера к параметру может иметь размер NwхNh для учета Nw и Nh возможных значений ширины и высоты блоков. В этом примере, таблица 90 размера к параметру может использоваться для одного режима интра-предсказания (например, DC, планарного или других направлений предсказания). В других примерах, таблица 90 размера к параметру может содержать записи для всех режимов интра-предсказания и использовать высоту блока, ширину блока и режим интра-предсказания в качестве записей в таблице. В общем, чтобы минимизировать память, видеодекодер 30 и видеокодер 22 могут быть сконфигурированы для объединения записей таблицы в строках и столбцах, что приводит к уменьшению размера таблиц (например, таблицы 90 размера к параметру) и, возможно, созданию нескольких таблиц разных размеров.

[0119] В качестве одного примера, предполагая конкретный режим интра-предсказания, видеодекодер 30 может использовать ширину блока видеоданных, подлежащих декодированию, для доступа к записи в таблице 90 размера к параметру для определения одного или нескольких горизонтально-связанных параметров PDPC. Основываясь на ширине блока, соответствующая запись в таблице 90 размера к параметру может использоваться как вход для таблицы 92 параметров предсказания. Таблица 92 параметров предсказания имеет размер NрхNe и содержит записи фактических параметров PDPC. Таким образом, запись, полученная из таблицы 90 размера к параметру, является индексом, который указывает на фактический горизонтально-связанный параметр PDPC в таблице 92 параметров предсказания, который затем используется в блоке 94 декодирования.

[0120] Аналогичным образом, видеодекодер 30 может использовать высоту блока видеоданных, подлежащих декодированию, для доступа к записи в таблице 90 размера к параметру, для определения одного или нескольких вертикально-связанных параметров PDPC. Основываясь на ширине блока, соответствующая запись в таблице 90 размера к параметру может использоваться как вход для таблицы 92 параметров предсказания для получения фактического вертикально-связанного параметра PDPC в таблице 92 параметров предсказания, который затем используется в блоке 94 декодирования. Тот же процесс может применяться для ненаправленных параметров PDPC, которые являются индексами, основанными на функции высоты и ширины блока.

[0121] Фиг. 7 является блок-схемой, иллюстрирующей примерный видеокодер 22, который может реализовывать методы этого раскрытия. Фиг. 7 приведена в качестве пояснений и не должна рассматриваться как ограничение методов, которые в целом иллюстрируются и описаны в этом раскрытии. Методы этого раскрытия могут быть применимы к различным стандартам или способам кодирования.

[0122) В примере на фиг. 7, видеокодер 22 включает в себя модуль 100 обработки предсказания, память 101 видеоданных, модуль 102 генерации остатка, модуль 104 обработки преобразования, модуль 106 квантования, модуль 108 обратного квантования, модуль 110 обработки обратного преобразования, модуль 112 восстановления, модуль 114 фильтрации, буфер 116 декодированных картинок и модуль 118 энтропийного кодирования. Модуль 100 обработки предсказания включает в себя модуль 120 обработки интер-предсказания и модуль 126 обработки интра-предсказания. Модуль 120 обработки интер-предсказания может включать в себя модуль оценки движения и модуль компенсации движения (не показаны).

[0123] Память 101 видеоданных может быть сконфигурирована для хранения видеоданных, подлежащих кодированию компонентами видеокодера 22. Видеоданные, сохраненные в памяти 101 видеоданных, могут быть получены, например, от источника 18 видео. Буфер 116 декодированных картинок может представлять собой память опорных картинок, которая хранит опорные видеоданные для использования при кодировании видеоданных с помощью видеокодера 22, например, в режимах интра- или интер-кодирования. Память 101 видеоданных и буфер 116 декодированных картинок могут быть сформированы с помощью любого из множества устройств памяти, таких как динамическая память с произвольным доступом (DRAM), включая синхронную DRAM (SDRAM), магниторезистивную RAM (MRAM), резистивную RAM (RRAM) или другие типы устройств памяти. Память 101 видеоданных и буфер 116 декодированных картинок могут быть обеспечены одним и тем же устройством памяти или отдельными устройствами памяти. В различных примерах, память 101 видеоданных может быть интегрирована в чип с другими компонентами видеокодера 22 или находиться вне чипа относительно этих компонентов. Память 101 видеоданных может быть представлена носителем 20 данных согласно фиг. 1 или его частью.

[0124] Видеокодер 22 принимает видеоданные. Видеокодер 22 может кодировать каждую CTU в вырезке картинки видеоданных. Каждая из CTU может быть ассоциирована с блоками дерева кодирования (CTB) яркости одинакового размера и соответствующими CTB картинки. В рамках кодирования CTU, модуль 100 обработки предсказания может выполнять секционирование для разделения CTB из CTU на все меньшие блоки. В некоторых примерах, видеокодер 22 может секционировать блоки с использованием структуры QTBT. Меньшие блоки могут представлять собой блоки кодирования в CU. Например, блок 100 обработки предсказания может секционировать CTB, ассоциированный с CTU, в соответствии с древовидной структурой. В соответствии с одним или несколькими методами настоящего раскрытия, для каждого соответственного не-листового узла древовидной структуры на каждом уровне глубины древовидной структуры, существует множество разрешенных шаблонов разделения для соответственного не-листового узла, и видеоблок, соответствующий соответственному не-листовому узлу, секционируется на видеоблоки, соответствующие дочерним узлам соответственного не-листового узла, в соответствии с одним из множества разрешенных шаблонов разделения.

[0125] Видеокодер 22 может кодировать CU из CTU для генерации закодированных представлений CU (т.е. кодированных CU). В рамках кодирования CU, модуль 100 обработки предсказания может секционировать блоки кодирования, ассоциированные с CU, среди одной или нескольких PU из CU. Таким образом, каждая PU может быть ассоциирована с блоком предсказания яркости и соответствующими блоками предсказания цветности. Видеокодер 22 и видеодекодер 30 могут поддерживать PU, имеющие различные размеры. Как указано выше, размер CU может относиться к размеру блока кодирования яркости CU, и размер PU может относиться к размеру блока предсказания яркости PU. Предполагая, что размер конкретного CU равен 2Nх2N, видеокодер 22 и видеодекодер 30 могут поддерживать размеры PU 2Nх2N или NхN для интра-предсказания и симметричные размеры PU 2Nх2N, 2NхN, Nх2N, NхN или аналогичные для интер-предсказания. Видеокодер 22 и видеодекодер 30 могут также поддерживать асимметричное секционирование для размеров PU 2NхnU, 2NхnD, nLх2N и nRх2N для интер-предсказания.

[0126] Модуль 120 обработки интер-предсказания может генерировать данные предсказания для PU, выполняя интер-предсказание на каждой PU из CU. Данные предсказания для PU могут включать в себя блоки предсказания PU и информацию о движении для PU. Модуль 120 обработки интер-предсказания может выполнять различные операции для PU из CU в зависимости от того, находится ли PU в I-вырезке, Р-вырезке или В-вырезке. В I-вырезке, все PU являются интра-предсказываемыми. Следовательно, если PU находится в I-вырезке, модуль 120 обработки интер-предсказания не выполняет интер-предсказание на PU. Таким образом, для блоков, закодированных в I-режиме, предсказанный (предиктивный) блок формируется с использованием пространственного предсказания из ранее закодированных соседних блоков внутри той же самой картинки (кадра). Если PU находится в Р-вырезке, модуль 120 обработки интер-предсказания может использовать однонаправленное интер-предсказание для генерации блока предсказания PU. Если PU находится в В-вырезке, модуль 120 обработки интер-предсказания может использовать однонаправленное или двунаправленное интер-предсказание для генерации блока предсказания PU.

[0127] Модуль 126 обработки интра-предсказания может генерировать данные предсказания для PU посредством выполнения интра-предсказания на PU. Данные предсказания для PU могут включать в себя блоки предсказания для PU и различные синтаксические элементы. Модуль 126 обработки интра-предсказания может выполнять интра-предсказание на PU в I-вырезках, P-вырезках и B-вырезках.

[0128] Для выполнения интра-предсказания на PU, модуль 126 обработки интра-предсказания может использовать несколько режимов интра-предсказания для генерации множества наборов данных предсказания для PU. Модуль 126 обработки интра-предсказания может использовать выборки из блоков выборок соседних PU для генерации блока предсказания для PU. Соседние PU могут быть выше, выше и справа, выше и слева или слева от PU, предполагая порядок кодирования слева направо, сверху-вниз для PU, CU и CTU. Модуль 126 обработки интра-предсказания может использовать различные количества режимов интра-предсказания, например, 33 режима направленного интра-предсказания. В некоторых примерах, количество режимов интра-предсказания может зависеть от размера области, ассоциированной с PU. Кроме того, как будет описано более подробно ниже со ссылкой на фиг. 11, блок 126 обработки интра-предсказания может быть сконфигурирован для определения параметров PDPC для кодирования блока видеоданных в зависимости от высоты и/или ширины блока видеоданных.

[0129] Модуль 100 обработки предсказания может выбирать данные предсказания для PU из CU среди данных предсказания, генерируемых модулем 120 обработки интер-предсказания для PU, или данных предсказания, генерируемых модулем 126 обработки интра-предсказания для PU. В некоторых примерах, модуль 100 обработки предсказания выбирает данные предсказания для PU из CU на основе показателей скорости/искажения наборов данных предсказания. Блоки предсказания выбранных данных предсказания могут упоминаться здесь как выбранные блоки предсказания.

[0130] Модуль 102 генерации остатка может генерировать, на основе блоков кодирования (например, блоков кодирования яркости, Cb и Cr) для CU и выбранных блоков предсказания (например, блоков предсказания яркости, Cb и Cr) для PU из CU, остаточные блоки (например, остаточные блоки яркости, Cb и Cr) для CU. К примеру, модуль 102 генерации остатка может генерировать остаточные блоки CU таким образом, что каждая выборка в остаточных блоках имеет значение, равное разности между выборкой в блоке кодирования CU и соответствующей выборкой в соответствующем выбранном блоке предсказания PU из CU.

[0131] Модуль 104 обработки преобразования может выполнять секционирование квадродерева для секционирования остаточных блоков, ассоциированных с CU, на блоки преобразования, ассоциированные с TU из CU. Таким образом, TU может быть ассоциирована с блоком преобразования яркости и двумя блоками преобразования цветности. Размеры и положения блоков преобразования яркости и цветности TU из CU могут быть или не быть основаны на размерах и положениях блоков предсказания PU из CU. Структура квадродерева, известная как «остаточное квадродерево» (RQT), может включать в себя узлы, ассоциированные с каждой из областей. TU из CU могут соответствовать листовым узлам RQT.

[0132] Модуль 104 обработки преобразования может генерировать блоки коэффициентов преобразования для каждой TU из CU путем применения одного или нескольких преобразований к блокам преобразования TU. Модуль 104 обработки преобразования может применять различные преобразования к блоку преобразования, ассоциированному с TU. Например, модуль 104 обработки преобразования может применять дискретное косинусное преобразование (DCT), направленное преобразование или концептуально подобное преобразование к блоку преобразования. В некоторых примерах, модуль 104 обработки преобразования не применяет преобразований к блоку преобразования. В некоторых примерах, блок 104 обработки преобразования не применяет преобразования к блоку преобразования. В таких примерах, блок преобразования может рассматриваться как блок коэффициентов преобразования.

[0133] Модуль 106 квантования может квантовать коэффициенты преобразования в блоке коэффициентов. Процесс квантования может уменьшить битовую глубину, ассоциированную с некоторыми или всеми из коэффициентов преобразования. Например, n-битовый коэффициент преобразования может быть округлен до m-битового коэффициента преобразования во время квантования, где n больше, чем m. Модуль 106 квантования может квантовать блок коэффициентов, ассоциированный с TU из CU, на основе значения параметра квантования (QP), ассоциированного с CU. Видеокодер 20 может корректировать степень квантования, применяемую к блокам коэффициентов, ассоциированным с CU, путем коррекции значения QP, ассоциированного с CU. Квантование может вносить потерю информации. Таким образом, квантованные коэффициенты преобразования могут иметь меньшую точность, чем исходные.

[0134] Модуль 108 обратного квантования и модуль 110 обработки обратного преобразования могут применять обратное квантование и обратные преобразования к блоку коэффициентов, соответственно, для восстановления остаточного блока из блока коэффициентов. Модуль 112 восстановления может добавить восстановленный остаточный блок к соответствующим выборкам из одного или нескольких блоков предсказания, сгенерированных модулем 100 обработки предсказания, для создания восстановленного блока преобразования, ассоциированного с TU. Таким образом, путем восстановления блоков преобразования для каждой TU из CU, видеокодер 20 может восстанавливать блоки кодирования CU.

[0135] Модуль 114 фильтрации может выполнять одну или несколько операций устранения блочности для уменьшения артефактов блочности в блоках кодирования, ассоциированных с CU. Буфер 116 декодированных картинок может сохранять восстановленные блоки кодирования после того, как модуль 114 фильтрации выполняет одну или несколько операций устранения блочности на восстановленных блоках кодирования. Модуль 120 обработки интер-предсказания может использовать опорную картинку, которая содержит восстановленные блоки кодирования для выполнения интер-предсказания на PU других картинок. Кроме того, модуль 126 обработки интра-предсказания может использовать восстановленные блоки кодирования в буфере 116 декодированных картинок для выполнения интра-предсказания на других PU в той же картинке, что и CU.

[0136] Модуль 118 энтропийного кодирования может принимать данные от других функциональных компонентов видеокодера 20. Например, модуль 118 энтропийного кодирования может принимать блоки коэффициентов из модуля 106 квантования и может принимать синтаксические элементы из модуля 100 обработки предсказания. Модуль 118 энтропийного кодирования может выполнять одну или несколько операций энтропийного кодирования на данных для генерации энтропийно закодированных данных. Например, модуль 118 энтропийного кодирования может выполнять операцию CABAC, операцию контекстно-адаптивного кодирования переменной длины (CAVLC), операцию кодирования от переменной к переменной (V2V) длины, операцию контекстно-адаптивного двоичного арифметического кодирования на основе синтаксиса (SBAC), операцию энтропийного кодирования с разбиением на интервалы вероятностей (PIPE), операцию кодирования на основе экспоненциального кода Голомба (Golomb) или другой тип операции энтропийного кодирования данных. Видеокодер 22 может выводить битовый поток, который включает в себя энтропийно закодированные данные, генерируемые модулем 118 энтропийного кодирования. Например, битовый поток может включать в себя данные, которые представляют RQT для CU.

[0137] Фиг. 8 является блок-схемой, иллюстрирующей примерный видеодекодер 30, который сконфигурирован для реализации методов настоящего раскрытия. Фиг. 8 приведена в целях пояснений и не ограничивает методы, как широко проиллюстрировано и описано в настоящем раскрытии. В целях пояснения, настоящее раскрытие описывает видеодекодер 30 в контексте кодирования HEVC. Однако методы настоящего раскрытия могут применяться к другим стандартам или способам кодирования, включая методы, которые допускают неквадратное секционирование и/или независимое секционирование яркости и цветности.

[0138] В примере на фиг. 8, видеодекодер 30 включает в себя модуль 150 энтропийного декодирования, память 151 видеоданных, модуль 152 обработки предсказания, модуль 154 обратного квантования, модуль 156 обработки обратного преобразования, модуль 158 восстановления, модуль 160 фильтрации и буфер 162 декодированных картинок. Модуль 152 обработки предсказания включает в себя модуль 164 компенсации движения и модуль 166 обработки интра-предсказания. В других примерах, видеодекодер 30 может включать в себя больше или меньше функциональных компонентов или другие функциональные компоненты.

[0139] Память 151 видеоданных может хранить видеоданные, такие как закодированный битовый поток видео, подлежащий декодированию компонентами видеодекодера 30. Видеоданные, хранящиеся в памяти 151 видеоданных, могут быть получены, например, со считываемого компьютером носителя 16, например, из локального источника видео, такого как камера, посредством передачи видеоданных по проводной или беспроводной сети или путем доступа к физическим носителям данных. Память 151 видеоданных может формировать буфер кодированных картинок (CPB), который хранит закодированные видеоданные из закодированного битового потока видео. Буфер 162 декодированных картинок может представлять собой память опорных картинок, которая хранит опорные видеоданные для использования при декодировании видеоданных видеодекодером 30, например, в режимах интра- или интер-кодирования или для вывода. Память 151 видеоданных и буфер 162 декодированных картинок могут быть образованы любым из множества устройств памяти, таких как динамическая память с произвольным доступом (DRAM), включая синхронную DRAM (SDRAM), магниторезистивную RAM (MRAM), резистивную RAM (RRAM) или другие типы устройств памяти. Память 151 видеоданных и буфер 162 декодированных картинок могут быть обеспечены одним и тем же устройством памяти или отдельными устройствами памяти. В различных примерах, память 151 видеоданных может находиться на чипе с другими компонентами видеодекодера 30 или находиться вне чипа относительно этих компонентов. Память 151 видеоданных может быть представлена носителем 28 данных согласно фиг. 1 или его частью.

[0140] Память 151 видеоданных принимает и хранит закодированные видеоданные (например, единицы NAL) битового потока. Модуль 150 энтропийного декодирования может получать закодированные видеоданные (например, единицы NAL) из памяти 151 видеоданных и может анализировать единицы NAL для получения синтаксических элементов. Модуль 150 энтропийного декодирования может энтропийно декодировать энтропийно-закодированные синтаксические элементы в единицах NAL. Модуль 152 обработки предсказания, модуль 154 обратного квантования, модуль 156 обработки обратного преобразования, модуль 158 восстановления и модуль 160 фильтрации могут генерировать декодированные видеоданные на основе синтаксических элементов, извлеченных из битового потока. Модуль 150 энтропийного декодирования может выполнять процесс, в общем, обратный процессу, выполняемому модулем 118 энтропийного кодирования.

[0141] В соответствии с некоторыми примерами настоящего раскрытия, модуль 150 энтропийного декодирования может определять древовидную структуру как часть получения синтаксических элементов из битового потока. Древовидная структура может указывать, как исходный видеоблок, такой как CTB, секционирован на меньшие видеоблоки, такие как единицы кодирования. В соответствии с одним или несколькими методами настоящего раскрытия, для каждого соответствующего не-листового узла древовидной структуры на каждом уровне глубины древовидной структуры, существует множество разрешенных шаблонов разбиения для соответствующего не-листового узла, и видеоблок, соответствующий соответственному не-листовому узлу, секционируется на видеоблоки, соответствующие дочерним узлам соответственного не-листового узла, в соответствии с одним из множества разрешенных шаблонов разбиения.

[0142] Кроме того, как будет объяснено более подробно ниже со ссылкой на фиг. 10, видеодекодер 30 может быть сконфигурирован, чтобы определять, как повторно использовать информацию о режиме кодирования, принятую для блока яркости, для использования при декодировании блоков цветности в ситуациях, когда имеется два или более блоков яркости, которые соответствуют одному блоку цветности.

[0143] В дополнение к получению синтаксических элементов из битового потока, видеодекодер 30 может выполнять операцию восстановления на несекционированной CU. Для выполнения операции восстановления на CU, видеодекодер 30 может выполнить операцию восстановления на каждой TU из CU. Путем выполнения операции восстановления для каждой TU из CU, видеодекодер 30 может восстанавливать остаточные блоки CU.

[0144] В рамках выполнения операции восстановления на TU из CU, модуль 154 обратного квантования может обратно квантовать, то есть деквантовать, блоки коэффициентов, ассоциированные с TU. После того, как модуль 154 обратного квантования выполнит обратное квантование блока коэффициентов, модуль 156 обработки обратного преобразования может применять одно или несколько обратных преобразований к блоку коэффициентов для формирования остаточного блока, ассоциированного с TU. Например, модуль 156 обработки обратного преобразования может применять обратное DCT, обратное целочисленное преобразование, обратное преобразование Карунена-Лоэве (Karhunen-Loeve, KLT), обратное вращательное преобразование, обратное направленное преобразование или другое обратное преобразование к блоку коэффициентов.

[0145] Если PU закодирована с использованием интра-предсказания, модуль 166 обработки интра-предсказания может выполнять интра-предсказание для генерации блоков предсказания PU. Модуль 166 обработки интра-предсказания может использовать режим интра-предсказания для генерации блоков предсказания PU на основе выборок пространственно соседних блоков. Модуль 166 обработки интра-предсказания может определять режим интра-предсказания для PU на основе одного или нескольких синтаксических элементов, полученных из битового потока. Кроме того, как будет описано более подробно ниже со ссылкой на фиг. 12, модуль 166 обработки интра-предсказания может быть сконфигурирован для определения параметров PDPC для кодирования блока видеоданных как функции высоты и/или ширины блока видеоданных.

[0146] Если PU закодирована с использованием интер-предсказания, модуль 150 энтропийного декодирования может определять информацию о движении для PU. Модуль 164 компенсации движения может определять, на основе информации о движении PU, один или несколько опорных блоков. Модуль 164 компенсации движения может генерировать, на основе одного или нескольких опорных блоков, блоки предсказания (например, блоки предсказания яркости, Cb и Cr) для PU.

[0147] Модуль 158 восстановления может использовать блоки преобразования (например, блоки преобразования яркости, Cb и Cr) для TU из CU, и блоки предсказания (например, блоки яркости, Cb и Cr) PU для CU, то есть данные интра-предсказания или данные интер-предсказания, если это применимо, для восстановления блоков кодирования (например, блоков кодирования яркости, Cb и Cr) для CU. Например, модуль 158 восстановления может суммировать выборки блоков преобразования (например, блоков преобразования яркости, Cb и Cr) с соответствующими выборками блоков предсказания (например, блоков предсказания яркости, Cb и Cr) для восстановления блоков кодирования (например, блоков кодирования яркости, Cb и Cr) для CU.

[0148] Модуль 160 фильтрации может выполнять операцию устранения блочности для уменьшения артефактов блочности, ассоциированных с блоками кодирования CU. Видеодекодер 30 может хранить блоки кодирования CU в буфере 162 декодированных картинок. Буфер 162 декодированных картинок может предоставлять опорные картинки для последующей компенсации движения, интра-предсказания, представления на устройстве отображения, таком как устройство 32 отображения на фиг. 1. Например, видеодекодер 30 может выполнять, на основе блоков в буфере 162 декодированных картинок, операции интра-предсказания или интер-предсказания для PU других CU.

[0149] Фиг. 9 является блок-схемой последовательности действий, иллюстрирующей примерную операцию устройства кодирования видео в соответствии с методом настоящего раскрытия. Устройство кодирования видео может быть видеокодером 22 и/или видеодекодером 30. В соответствии с методами этого раскрытия кодер 22 и/или видеодекодер 30 могут быть сконфигурированы, чтобы секционировать видеоданные на секции компонентов яркости (200), секционировать видеоданные на секции компонентов цветности, причем компоненты цветности секционируются независимо от компонентов яркости (202), кодировать первую секцию компонентов яркости (204), кодировать синтаксический элемент, указывающий, следует ли использовать информацию, ассоциированную с кодированием первой секции компонентов яркости, для кодирования второй секции компонентов цветности (206), и кодировать вторую секцию компонентов цветности в соответствии с синтаксическим элементом (208).

[0150] Фиг. 10 является блок-схемой последовательности действий, иллюстрирующую примерную операцию видеодекодера в соответствии с методом настоящего раскрытия. Методы согласно фиг. 10 могут выполняться одной или несколькими аппаратными структурами видеодекодера 30.

[0151] В одном примере раскрытия, видеодекодер 30 может быть сконфигурирован, чтобы принимать битовый поток закодированных видеоданных, причем закодированные видеоданные представляют секционированные блоки яркости и секционированные блоки цветности, причем блоки цветности секционированы независимо от блоков яркости (212). Видеодекодер 30 может быть дополнительно сконфигурирован, чтобы определять соответственный режим кодирования, соответствующий соответственным секционированным блокам яркости (214), и декодировать соответственные секционированные блоки яркости в соответствии с определенными соответственными режимами кодирования (216).

[0152] Видеодекодер 30 может быть дополнительно сконфигурирован, чтобы декодировать первый синтаксический элемент, указывающий, что соответственные режимы кодирования, ассоциированные с соответственными секционированными блоками яркости, должны использоваться для декодирования первого секционированного блока цветности, причем первый секционированный блок цветности выровнен с двумя или более секционированными блоками яркости (218). Видеодекодер 30 может дополнительно определять режим кодирования цветности для первого секционированного блока цветности в соответствии с функцией соответственных режимов кодирования двух или более секционированных блоков яркости (220) и декодировать первый секционированный блок цветности в соответствии с определенным режимом кодирования цветности (222).

[0153] В одном примере раскрытия, блоки цветности секционированы независимо от блоков яркости, так что по меньшей мере один секционированный блок цветности не выровнен с одним секционированным блоком яркости.

[0154] В другом примере раскрытия, для определения соответственного режима кодирования, соответствующего соответственным секционированным блокам яркости, видеодекодер 30 может быть дополнительно сконфигурирован, чтобы принимать вторые синтаксические элементы, соответствующих соответственным секционированным блокам яркости, причем вторые синтаксические элементы указывают соответственный режим кодирования, и декодировать второй синтаксический элемент, соответствующий соответственным секционированным блокам яркости, для определения соответственного режима кодирования.

[0155] В другом примере раскрытия, для определения соответственного режима кодирования, соответствующего соответственным секционированным блокам яркости, видеодекодер 30 дополнительно сконфигурирован, чтобы выбирать один или несколько соответственных режимов кодирования из одного или нескольких репрезентативных местоположений соответственных секционированных блоков яркости. В другом примере, видеодекодер 30 сконфигурирован, чтобы выбирать один или несколько соответственных режимов кодирования в соответствии с функцией.

[0156] В другом примере, одно или несколько репрезентативных местоположений включают в себя центральное репрезентативное местоположение соответственных секционированных блоков яркости, и причем для определения режима кодирования цветности для первого секционированного блока цветности в соответствии с функцией, видеодекодер 30 дополнительно сконфигурирован, чтобы получать информацию, указывающую определенный соответственный режим кодирования, сохраненный для центрального репрезентативного местоположения.

[0157] В другом примере, одно или несколько репрезентативных местоположений включают в себя угловое репрезентативное местоположение соответственных секционированных блоков яркости, и причем для определения режима кодирования цветности для первого секционированного блока цветности в соответствии с функцией, видеодекодер 30 дополнительно сконфигурирован, чтобы получать информацию, указывающую определенный соответственный режим кодирования, сохраненный для углового репрезентативного местоположения. В одном примере, одно или несколько репрезентативных местоположений содержат один или несколько подблоков.

[0158] В другом примере раскрытия, видеодекодер 30 может быть дополнительно сконфигурирован, чтобы разделять соответственные секционированные блоки яркости на соответственные подблоки и сохранять информацию, указывающую определенный соответственный режим кодирования, в соответственных ячейках памяти, ассоциированных с соответственными подблоками.

[0159] В другом примере раскрытия, функция включает в себя местоположение одного или нескольких соответственных подблоков из двух или более секционированных блоков яркости. В другом примере раскрытия, местоположение одного или нескольких соответственных подблоков является центральным подблоком двух или более секционированных блоков яркости, и причем для определения режима кодирования цветности для первого секционированного блока цветности в соответствии с функцией, видеодекодер 30 сконфигурирован, чтобы получать информацию, указывающую определенный соответственный режим кодирования, сохраненный для центрального подблока.

[0160] В другом примере раскрытия, местоположение одного или нескольких соответственных подблоков является угловым подблоком из двух или более секционированных блоков яркости, и причем для определения режима кодирования цветности для первого секционированного блока цветности в соответствии с функцией, видеодекодер 30 сконфигурирован, чтобы получать информацию, указывающую определенный соответственный режим кодирования, сохраненный для углового подблока.

[0161] В другом примере раскрытия, функция включает в себя статистический анализ информации, указывающей определенный соответственный режим кодирования, в соответственных ячейках памяти, ассоциированных с соответственными подблоками.

[0162] В другом примере раскрытия, для определения режима кодирования цветности для первого секционированного блока цветности в соответствии с функцией, видеодекодер 30 дополнительно сконфигурирован, чтобы анализировать информацию, сохраненную в соответственных ячейках памяти, с использованием одного из градиента или более высокой производной.

[0163] В другом примере раскрытия, информация включает в себя одно или несколько из указания прямого режима для предсказания цветности, направления предсказания, информации о движении, флага для режима позиционно-зависимой комбинации интра-предсказания, одного или нескольких параметров для режима позиционно-зависимой комбинации интра-предсказания, одного или нескольких вторых наборов преобразований для неразделяемого преобразования, расширенного множественного преобразования, адаптивного множественного преобразования или одного или нескольких контекстов для определения моделей энтропийного кодирования данных.

[0164] В другом примере раскрытия, видеодекодер 30 может быть сконфигурирован для приема третьего синтаксического элемента, указывающего функцию.

[0165] В другом примере раскрытия, видеодекодер 30 является частью устройства беспроводной связи, причем устройство беспроводной связи дополнительно содержит приемник, сконфигурированный для приема битового потока кодированных видеоданных. В одном примере, устройство беспроводной связи является мобильной станцией, и битовый поток кодированных видеоданных принимается приемником и модулируется в соответствии со стандартом сотовой связи.

[0166] Фиг. 11 является блок-схемой последовательности действий, иллюстрирующей примерную операцию видеокодера 22 в соответствии с методом настоящего раскрытия. Методы согласно фиг. 12 могут выполняться одной или несколькими аппаратными структурами видеокодера 22.

[0167] В одном примере раскрытия, видеокодер 22 может быть сконфигурирован, чтобы принимать блок видеоданных, причем блок видеоданных имеет неквадратную форму, определяемую шириной и высотой (230), определять один или несколько параметров PDPC на основе одного или более из ширины или высоты блока видеоданных (232) и кодировать блок видеоданных с использованием режима PDPC и определенных параметров PDPC (234). Как обсуждалось выше, следует понимать, что методы согласно фиг. 11 могут использоваться для определения параметров режима предсказания для любого режима предсказания, который использует неквадратные блоки, включая режимы предсказания, которые применяют взвешенное среднее значение к предсказателю и опорные выборки в соответствии с положением выборки.

[0168] В одном примере, один или несколько параметров PDPC включают в себя один или несколько горизонтально-связанных параметров PDPC и один или несколько вертикально-связанных параметров PDPC, и причем для определения одного или нескольких параметров PDPC, видеокодер 22 дополнительно сконфигурирован, чтобы определять один или несколько горизонтально-связанных параметров PDPC на основе ширины блока видеоданных и определять один или несколько вертикально-связанных параметров PDPC на основе высоты блока видеоданных.

[0169] В другом примере раскрытия, для определения одного или нескольких горизонтально-связанных параметров PDPC, видеокодер 22 дополнительно сконфигурирован, чтобы извлекать одну или несколько записей из одной или нескольких таблиц поиска как функцию ширины блока видеоданных, и причем для определения одного или нескольких вертикально-связанных параметров PDPC, видеокодер 22 дополнительно сконфигурирован, чтобы извлекать одну или несколько записей из одной или нескольких таблиц поиска как функцию высоты блока видеоданных.

[0170] В другом примере раскрытия, для извлечения одной или нескольких записей из одной или нескольких таблиц поиска как функции ширины блока видеоданных, видеокодер 22 дополнительно сконфигурирован, чтобы извлекать первый индекс в первой таблице поиска на основе ширины блока видеоданных, первый индекс указывает на первую запись во второй таблице поиска, и извлекать один или несколько горизонтально-связанных параметров PDPC во второй таблице поиска на основе извлеченного первого индекса. В другом примере, для извлечения одной или нескольких записей из одной или нескольких таблиц поиска как функции высоты блока видеоданных, видеокодер 22 дополнительно сконфигурирован, чтобы извлекать второй индекс в первой таблице поиска на основе высоты блока видеоданных, второй индекс указывает на вторую запись во второй таблице поиска, и извлекать один или несколько вертикально-связанных параметров PDPC во второй таблице поиска на основе извлеченного второго индекса.

[0171] В другом примере раскрытия, один или несколько параметров PDPC включают в себя один или несколько ненаправленных параметров PDPC, которые не являются горизонтально-связанными и которые не являются вертикально-связанными, и причем для определения одного или нескольких параметров PDPC, видеокодер 22 дополнительно сконфигурирован, чтобы определять один или несколько ненаправленных параметров PDPC на основе функции ширины и высоты блока видеоданных.

[0172] В другом примере раскрытия, функция представляет собой одно или несколько из минимума ширины и высоты блока видеоданных, максимума ширины и высоты блока видеоданных или взвешенного среднего значения ширины и высоты блока видеоданных. В другом примере, для определения одного или нескольких ненаправленных параметров PDPC, видеокодер 22 дополнительно сконфигурирован для доступа к одной или нескольким записям одной или нескольких таблиц поиска как функции ширины и высоты блока видеоданных.

[0173] В другом примере раскрытия, видеокодер 22 включен в устройство беспроводной связи, причем устройство беспроводной связи дополнительно содержит передатчик, сконфигурированный для передачи закодированного блока видеоданных. В другом примере, устройство беспроводной связи является мобильной станцией, и закодированный блок видеоданных передается передатчиком и модулируется в соответствии со стандартом сотовой связи.

[0174] Фиг. 12 является блок-схемой последовательности действий, иллюстрирующей примерную операцию видеодекодера 30 в соответствии с методом настоящего раскрытия. Методы согласно фиг. 12 могут выполняться одной или несколькими аппаратными структурами видеодекодера 30.

[0175] В одном примере раскрытия, видеодекодер 30 сконфигурирован, чтобы принимать блок видеоданных, закодированных с использованием режима PDPC, причем блок видеоданных имеет неквадратную форму, определяемую шириной и высотой (240), определять один или несколько параметров PDPC на основе одного или более из ширины или высоты блока видеоданных (242) и декодировать блок видеоданных с использованием режима PDPC и определенных параметров PDPC (244). Как обсуждалось выше, следует понимать, что методы согласно фиг. 12 могут использоваться для определения параметров режима предсказания для любого режима предсказания, который использует неквадратные блоки, включая режимы предсказания, которые применяют взвешенное среднее значение к предсказателю и опорные выборки в соответствии с положением выборки.

[0176] В одном примере раскрытия, один или несколько параметров PDPC включают в себя один или несколько горизонтально-связанных параметров PDPC и один или несколько вертикально-связанных параметров PDPC, и причем для определения одного или нескольких параметров PDPC, видеодекодер 30 дополнительно сконфигурирован, чтобы определять один или несколько горизонтально-связанных параметров PDPC на основе ширины блока видеоданных и определять один или нескольких вертикально-связанных параметров PDPC на основе высоты блока видеоданных.

[0177] В другом примере раскрытия, для определения одного или нескольких горизонтально-связанных параметров PDPC, видеодекодер 30 дополнительно сконфигурирован, чтобы извлекать одну или несколько записей из одной или нескольких таблиц поиска как функцию ширины блока видеоданных, и причем для определения одного или нескольких вертикально-связанных параметров PDPC, видеодекодер 30 дополнительно сконфигурирован, чтобы извлекать одну или несколько записей из одной или нескольких таблиц поиска как функцию высоты блока видеоданных.

[0178] В другом примере раскрытия, для извлечения одной или нескольких записей из одной или нескольких таблиц поиска как функции ширины блока видеоданных, видеодекодер 30 дополнительно сконфигурирован, чтобы извлекать первый индекс в первой таблице поиска на основе ширины блока видеоданных, причем первый индекс указывает на первую запись во второй таблице поиска, и извлекать один или несколько горизонтально-связанных параметров PDPC во второй таблице поиска на основе извлеченного первого индекса. В другом примере, для извлечения одной или нескольких записей одной или нескольких таблиц поиска как функции высоты блока видеоданных, видеодекодер 30 дополнительно сконфигурирован, чтобы извлекать второй индекс в первой таблице поиска на основе высоты блока видеоданных, причем второй индекс указывает на вторую запись во второй таблице поиска, и извлекать один или несколько вертикально-связанных параметров PDPC во второй таблице поиска на основе извлеченного второго индекса.

[0179] В другом примере, один или несколько параметров PDPC включают в себя один или несколько ненаправленных параметров PDPC, которые не являются горизонтально-связанными и не являются вертикально-связанными, и причем для определения одного или нескольких параметров PDPC, видеодекодер 30 дополнительно сконфигурирован для определения одного или нескольких ненаправленных параметров PDPC на основе функции ширины и высоты блока видеоданных.

[0180] В другом примере, функция представляет собой одну или несколько из минимума ширины и высоты блока видеоданных, максимума ширины и высоты блока видеоданных или взвешенного среднего значения ширины и высоты блока видеоданных.

[0181] В другом примере раскрытия, для определения одного или нескольких ненаправленных параметров PDPC, видеодекодер 30 дополнительно сконфигурирован для доступа к одной или нескольким записям одной или нескольких таблиц поиска как функции ширины и высоты блока видеоданных.

[0182] В другом примере раскрытия, видеодекодер 30 является частью устройства беспроводной связи, причем устройство беспроводной связи дополнительно содержит приемник, сконфигурированный для приема блока видеоданных. В другом примере, устройство беспроводной связи является мобильной станцией, и блок видеоданных принимается приемником и модулируется в соответствии со стандартом сотовой связи.

[0183] Некоторые аспекты настоящего раскрытия были описаны в отношении расширений стандарта HEVC для целей иллюстрации. Однако методы, описанные в настоящем раскрытии, могут быть полезны для других процессов кодирования видео, включая другие стандартные или проприетарные процессы кодирования видео, находящиеся в разработке или еще не разработанные.

[0184] Устройство кодирования видео (video coder), как описано в настоящем раскрытии, может относиться к видеокодеру (video encoder) или видеодекодеру (video decoder). Аналогично, модуль кодирования видео может относиться к видеокодеру или видеодекодеру. Аналогично, кодирование видео (video coding) может относиться к кодированию видео (video encoding) или декодированию видео (video decoding), если это применимо.

[0185] Следует иметь в виду, что, в зависимости от примера, некоторые действия или события любого из описанных здесь методов могут быть выполнены в другой последовательности, могут быть добавлены, объединены или вообще опущены (например, не все описанные действия или события необходимы для практической реализации этих методов). Более того, в некоторых примерах, действия или события могут выполняться одновременно, например, посредством многопоточной обработки, обработки прерываний или несколькими процессорами, а не последовательно.

[0186] В одном или нескольких примерах, описанные функции могут быть реализованы в аппаратных средствах, программном обеспечении, встроенном программном обеспечении или любой их комбинации. При реализации в программном обеспечении, функции могут храниться или передаваться в виде одной или нескольких инструкций или кода на считываемом компьютером носителе и исполняться аппаратным процессором. Считываемые компьютером носители могут включать в себя считываемые компьютером носители данных, которые соответствуют материальному носителю, такому как носители данных, или среды связи, включая любую среду, которая облегчает перенос компьютерной программы из одного места в другое, например, согласно протоколу связи. Таким образом, считываемые компьютером носители, в общем, могут соответствовать (1) материальному считываемому компьютером носителю данных, который является долговременным, или (2) среде связи, такой как сигнал или несущая волна. Носителями данных могут быть любые доступные носители, к которым может получить доступ один или несколько компьютеров или один или несколько процессоров для извлечения инструкций, кода и/или структур данных для реализации методов, описанных в настоящем раскрытии. Компьютерный программный продукт может включать в себя считываемый компьютером носитель.

[0187] В качестве примера, а не ограничения, такие считываемые компьютером носители данных могут содержать RAM, ROM, EEPROM, CD-ROM или другое хранилище на оптических дисках, хранилище на магнитных дисках или другие магнитные устройства хранения, флэш-память или любой другой носитель, который можно использовать для хранения желательного программного кода в форме инструкций или структур данных, и к которому может получать доступ компьютер. Кроме того, любое соединение может надлежащим образом определяться как считываемый компьютером носитель. Например, если инструкции передаются с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, волоконно-оптического кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасная, радио и микроволновая, то коаксиальный кабель, волоконно-оптический кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасная, радио и микроволновая, включаются в определение носителя. Однако следует понимать, что считываемые компьютером носители и носители данных не включают в себя соединения, несущие волны, сигналы или другие временные (переходные) носители, но вместо этого ориентированы на долговременные, материальные носители. Магнитный диск (disk) и оптический диск (disc), как используется здесь, включают в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой многофункциональный диск (DVD), гибкий диск и Blu-ray диск, где магнитные диски (disks) обычно воспроизводят данные магнитным способом, в то время как оптические диски (discs) воспроизводят данные оптически, с помощью лазеров. Комбинации вышеизложенного также должны быть включены в объем считываемых компьютером носителей.

[0188] Инструкции могут исполняться одним или несколькими процессорами, такими как один или несколько процессоров цифровых сигналов (DSP), микропроцессоры общего назначения, специализированные интегральные схемы (ASIC), программируемые вентильные матрицы (FPGA) или другие эквивалентные интегральные или дискретные логические схемы. Соответственно, термин «процессор», используемый здесь, может относиться к любой из вышеперечисленных структур или любой другой структуре, подходящей для реализации описанных здесь методов. Кроме того, в некоторых аспектах, функциональность, описанная здесь, может быть предоставлена в рамках специализированных аппаратных средств и/или программных модулей, сконфигурированных для кодирования и декодирования или интегрированных в объединенный кодек. Кроме того, методы могут быть полностью реализованы в одной или нескольких схемах или логических элементах.

[0189] Методы настоящего раскрытия могут быть реализованы в самых разных приборах или устройствах, включая беспроводную трубку, интегральную схему (IC) или набор IC (например, чипсет). Различные компоненты, модули или блоки описаны в настоящем раскрытии, чтобы подчеркнуть функциональные аспекты устройств, сконфигурированных для выполнения раскрытых методов, но не обязательно требуют реализации различными аппаратными модулями. Скорее, как описано выше, различные модули могут быть объединены в аппаратный модуль кодека или обеспечены набором взаимодействующих аппаратных модулей, включая один или несколько процессоров, как описано выше, в сочетании с подходящим программным обеспечением и/или встроенным программным обеспечением.

[0190] Выше были описаны различные примеры. Эти и другие примеры находятся в пределах объема следующей формулы изобретения.

1. Способ декодирования видеоданных, причем способ содержит:

прием битового потока закодированных видеоданных, причем закодированные видеоданные представляют секционированные блоки яркости и секционированные блоки цветности, причем блоки цветности секционированы независимо от блоков яркости;

определение соответственного режима кодирования, соответствующего соответственным секционированным блокам яркости, при этом соответственный режим кодирования включает в себя один или несколько из прямого режима, режима позиционно-зависимой комбинации интра-предсказания, одного или нескольких вторых наборов преобразований для режима неразделяемого преобразования, режима расширенного множественного преобразования или режима адаптивного множественного преобразования;

декодирование соответственных секционированных блоков яркости в соответствии с определенными соответственными режимами кодирования;

декодирование первого синтаксического элемента, указывающего, что соответственные режимы кодирования, ассоциированные с соответственными секционированными блоками яркости, должны использоваться для декодирования первого секционированного блока цветности, причем первый секционированный блок цветности выровнен с двумя или более секционированными блоками яркости;

определение режима кодирования цветности для первого секционированного блока цветности в соответствии с функцией соответственного режима кодирования подблока яркости из двух или более секционированных блоков яркости; и

декодирование первого секционированного блока цветности в соответствии с определенным режимом кодирования цветности.

2. Способ по п. 1, в котором блоки цветности секционированы независимо от блоков яркости, так что по меньшей мере один секционированный блок цветности не выровнен с одним секционированным блоком яркости.

3. Способ по п. 1, в котором определение соответственного режима кодирования, соответствующего соответственным секционированным блокам яркости, содержит:

прием вторых синтаксических элементов, соответствующих соответственным секционированным блокам яркости, причем вторые синтаксические элементы указывают соответственный режим кодирования; и

декодирование вторых синтаксических элементов, соответствующих соответственным секционированным блокам яркости, для определения соответственного режима кодирования.

4. Способ по п. 1, в котором определение соответственного режима кодирования, соответствующего соответственным секционированным блокам яркости, содержит:

выбор одного или нескольких соответственных режимов кодирования из одного или нескольких репрезентативных местоположений соответственных секционированных блоков яркости.

5. Способ по п. 4, в котором выбор одного или нескольких соответственных режимов кодирования содержит выбор одного или нескольких соответственных режимов кодирования в соответствии с функцией.

6. Способ по п. 4, в котором одно или несколько репрезентативных местоположений включают в себя центральное репрезентативное местоположение соответственных секционированных блоков яркости, и причем определение режима кодирования цветности для первого секционированного блока цветности в соответствии с функцией содержит:

получение информации, указывающей определенный соответственный режим кодирования, сохраненный для центрального репрезентативного местоположения.

7. Способ по п. 4, в котором одно или несколько репрезентативных местоположений включают в себя угловое репрезентативное местоположение соответственных секционированных блоков яркости, и причем определение режима кодирования цветности для первого секционированного блока цветности в соответствии с функцией содержит:

получение информации, указывающей определенный соответственный режим кодирования, сохраненный для углового репрезентативного местоположения.

8. Способ по п. 4, в котором одно или несколько репрезентативных местоположений содержат один или несколько подблоков.

9. Способ по п. 1, дополнительно содержащий:

разделение соответственных секционированных блоков яркости на соответственные подблоки; и

сохранение информации, указывающей определенный соответственный режим кодирования, в соответственных ячейках памяти, ассоциированных с соответственными подблоками.

10. Способ по п. 9, в котором функция включает в себя статистический анализ информации, указывающей определенный соответственный режим кодирования, в соответственных ячейках памяти, ассоциированных с соответственными подблоками.

11. Способ по п. 10, в котором определение режима кодирования цветности для первого секционированного блока цветности в соответствии с функцией содержит:

анализ информации, сохраненной в соответственных ячейках памяти, с использованием одного из градиента или более высокой производной.

12. Способ по п. 11, в котором информация включает в себя одно или несколько из указания прямого режима для предсказания цветности, направления предсказания, информации о движении, флага для режима позиционно-зависимой комбинации интра-предсказания, одного или нескольких параметров для режима позиционно-зависимой комбинации интра-предсказания, одного или нескольких вторых наборов преобразований для неразделяемого преобразования, расширенного множественного преобразования, адаптивного множественного преобразования или одного или нескольких контекстов для определения моделей энтропийного кодирования данных.

13. Способ по п. 1, дополнительно содержащий:

прием третьего синтаксического элемента, указывающего функцию.

14. Способ по п. 1, причем способ выполняется в устройстве беспроводной связи, причем устройство содержит:

память, сконфигурированную для хранения закодированных видеоданных;

процессор, сконфигурированный для исполнения инструкций для обработки закодированных видеоданных, сохраненных в памяти; и

приемник, сконфигурированный для приема битового потока закодированных видеоданных.

15. Способ по п. 14, причем устройство беспроводной связи является мобильной станцией, и битовый поток кодированных видеоданных принимается приемником и модулируется в соответствии со стандартом сотовой связи.

16. Способ по п. 9, в котором функция включает в себя местоположение одного или нескольких соответственных подблоков из двух или более секционированных блоков яркости.

17. Способ по п. 16, в котором местоположение одного или нескольких соответственных подблоков является центральным подблоком из двух или более секционированных блоков яркости, и причем определение режима кодирования цветности для первого секционированного блока цветности в соответствии с функцией содержит:

получение информации, указывающей определенный соответственный режим кодирования, сохраненный для центрального подблока.

18. Способ по п. 16, в котором местоположение одного или нескольких соответственных подблоков является угловым подблоком из двух или более секционированных блоков яркости, и причем определение режима кодирования цветности для первого секционированного блока цветности в соответствии с функцией содержит:

получение информации, указывающей определенный соответственный режим кодирования, сохраненный для углового подблока.

19. Устройство, сконфигурированное для декодирования видеоданных, причем устройство содержит:

память, сконфигурированную для хранения битового потока закодированных видеоданных; и

один или несколько процессоров, сконфигурированных, чтобы:

принимать битовый поток кодированных видеоданных, причем кодированные видеоданные представляют секционированные блоки яркости и секционированные блоки цветности, причем блоки цветности секционированы независимо от блоков яркости;

определять соответственный режим кодирования, соответствующий соответственным секционированным блокам яркости, при этом соответственный режим кодирования включает в себя один или несколько из прямого режима, режима позиционно-зависимой комбинации интра-предсказания, одного или нескольких вторых наборов преобразований для режима неразделяемого преобразования, режима расширенного множественного преобразования или режима адаптивного множественного преобразования;

декодировать соответственные секционированные блоки яркости в соответствии с определенными соответственными режимами кодирования;

декодировать первый синтаксический элемент, указывающий, что соответственные режимы кодирования, ассоциированные с соответственными секционированными блоками яркости, должны использоваться для декодирования первого секционированного блока цветности, причем первый секционированный блок цветности выровнен с двумя или более секционированными блоками яркости;

определять режим кодирования цветности для первого секционированного блока цветности в соответствии с функцией соответственного режима кодирования подблока яркости из двух или более секционированных блоков яркости; и

декодировать первый секционированный блок цветности в соответствии с определенным режимом кодирования цветности.

20. Устройство по п. 19, в котором блоки цветности секционированы независимо от блоков яркости, так что по меньшей мере один секционированный блок цветности не выровнен с одним секционированным блоком яркости.

21. Устройство по п. 19, в котором для определения соответственного режима кодирования, соответствующего соответственным секционированным блокам яркости, один или несколько процессоров дополнительно сконфигурированы, чтобы:

принимать вторые синтаксические элементы, соответствующие соответственным секционированным блокам яркости, причем вторые синтаксические элементы указывают соответственный режим кодирования; и

декодировать вторые синтаксические элементы, соответствующие соответственным секционированным блокам яркости, для определения соответственного режима кодирования.

22. Устройство по п. 19, в котором для определения соответственного режима кодирования, соответствующего соответственным секционированным блокам яркости, один или несколько процессоров дополнительно сконфигурированы, чтобы:

выбирать один или несколько соответственных режимов кодирования из одного или нескольких репрезентативных местоположений соответственных секционированных блоков яркости.

23. Устройство по п. 22, в котором для выбора одного или нескольких соответственных режимов кодирования, один или несколько процессоров дополнительно сконфигурированы, чтобы выбирать один или несколько соответственных режимов кодирования в соответствии с функцией.

24. Устройство по п. 22, в котором одно или несколько репрезентативных местоположений включают в себя центральное репрезентативное местоположение соответственных секционированных блоков яркости, и причем для определения режима кодирования цветности для первого секционированного блока цветности в соответствии с функцией, один или несколько процессоров дополнительно сконфигурированы, чтобы:

получать информацию, указывающую определенный соответственный режим кодирования, сохраненный для центрального репрезентативного местоположения.

25. Устройство по п. 22, в котором одно или несколько репрезентативных местоположений включают в себя угловое репрезентативное местоположение соответственных секционированных блоков яркости, и причем для определения режима кодирования цветности для первого секционированного блока цветности в соответствии с функцией, один или несколько процессоров дополнительно сконфигурированы, чтобы:

получать информацию, указывающую определенный соответственный режим кодирования, сохраненный для углового репрезентативного местоположения.

26. Устройство по п. 22, в котором одно или несколько репрезентативных местоположений содержат один или несколько подблоков.

27. Устройство по п. 22, в котором один или несколько процессоров дополнительно сконфигурированы, чтобы:

разделять соответственные секционированные блоки яркости на соответственные подблоки; и

сохранять информацию, указывающую определенный соответственный режим кодирования, в соответственных ячейках памяти, ассоциированных с соответственными подблоками.

28. Устройство по п. 27, в котором функция включает в себя статистический анализ информации, указывающей определенный соответственный режим кодирования, в соответственных ячейках памяти, ассоциированных с соответственными подблоками.

29. Устройство по п. 28, в котором для определения режима кодирования цветности для первого секционированного блока цветности в соответствии с функцией, один или несколько процессоров дополнительно сконфигурированы, чтобы:

анализировать информацию, сохраненную в соответственных ячейках памяти, с использованием одного из градиента или более высокой производной.

30. Устройство по п. 29, в котором информация включает в себя одно или несколько из указания прямого режима для предсказания цветности, направления предсказания, информации о движении, флага для режима позиционно-зависимой комбинации интра-предсказания, одного или нескольких параметров для режима позиционно-зависимой комбинации интра-предсказания, одного или нескольких вторых наборов преобразований для неразделяемого преобразования, расширенного множественного преобразования, адаптивного множественного преобразования или одного или нескольких контекстов для определения моделей энтропийного кодирования данных.

31. Устройство по п. 22, в котором один или несколько процессоров дополнительно сконфигурированы, чтобы:

принимать третий синтаксический элемент, указывающий функцию.

32. Устройство по п. 22, в котором устройство представляет собой устройство беспроводной связи, причем устройство дополнительно содержит:

приемник, сконфигурированный для приема битового потока кодированных видеоданных.

33. Устройство по п. 32, причем устройство беспроводной связи является мобильной станцией, и битовый поток кодированных видеоданных принимается приемником и модулируется в соответствии со стандартом сотовой связи.

34. Устройство по п. 27, в котором функция включает в себя местоположение одного или нескольких соответственных подблоков двух или более секционированных блоков яркости.

35. Устройство по п. 34, в котором местоположение одного или нескольких соответственных подблоков является центральным подблоком двух или более секционированных блоков яркости, и причем для определения режима кодирования цветности для первого секционированного блока цветности в соответствии с функцией, один или несколько процессоров дополнительно сконфигурированы, чтобы:

получать информацию, указывающую определенный соответственный режим кодирования, сохраненный для центрального подблока.

36. Устройство по п. 34, в котором местоположение одного или нескольких соответственных подблоков является угловым подблоком из двух или более секционированных блоков яркости, и причем для определения режима кодирования цветности для первого секционированного блока цветности в соответствии с функцией, один или несколько процессоров дополнительно сконфигурированы, чтобы:

получать информацию, указывающую определенный соответственный режим кодирования, сохраненный для углового подблока.

37. Устройство, сконфигурированное для декодирования видеоданных, причем устройство содержит:

средство для приема битового потока закодированных видеоданных, причем закодированные видеоданные представляют секционированные блоки яркости и секционированные блоки цветности, причем блоки цветности секционированы независимо от блоков яркости;

средство для определения соответственного режима кодирования, соответствующего соответственным секционированным блокам яркости, при этом соответственный режим кодирования включает в себя один или несколько из прямого режима, режима позиционно-зависимой комбинации интра-предсказания, одного или нескольких вторых наборов преобразований для режима неразделяемого преобразования, режима расширенного множественного преобразования или режима адаптивного множественного преобразования;

средство для декодирования соответственных секционированных блоков яркости в соответствии с определенными соответственными режимами кодирования;

средство для декодирования первого синтаксического элемента, указывающего, что соответственные режимы кодирования, ассоциированные с соответственными секционированными блоками яркости, должны использоваться для декодирования первого секционированного блока цветности, причем первый секционированный блок цветности выровнен с двумя или более секционированными блоками яркости;

средство для определения режима кодирования цветности для первого секционированного блока цветности в соответствии с функцией соответственного режима кодирования подблока яркости из двух или более секционированных блоков яркости; и

средство для декодирования первого секционированного блока цветности в соответствии с определенным режимом кодирования цветности.

38. Устройство по п. 37, в котором блоки цветности секционированы независимо от блоков яркости, так что по меньшей мере один секционированный блок цветности не выровнен с одним секционированным блоком яркости.

39. Долговременный считываемый компьютером носитель, хранящий исполняемый компьютером код, содержащий инструкции, хранящиеся в нем, которые, при исполнении, побуждают один или несколько процессоров, сконфигурированных для декодированных видеоданных, чтобы:

принимать битовый поток закодированных видеоданных, причем закодированные видеоданные представляют секционированные блоки яркости и секционированные блоки цветности, причем блоки цветности секционированы независимо от блоков яркости;

определять соответственный режим кодирования, соответствующий соответственным секционированным блокам яркости, при этом соответственный режим кодирования включает в себя один или несколько из прямого режима, режима позиционно-зависимой комбинации интра-предсказания, одного или нескольких вторых наборов преобразований для режима неразделяемого преобразования, режима расширенного множественного преобразования или режима адаптивного множественного преобразования;

декодировать соответственные секционированные блоки яркости в соответствии с определенными соответственными режимами кодирования;

декодировать первый синтаксический элемент, указывающий, что соответственные режимы кодирования, ассоциированные с соответственными секционированными блоками яркости, должны использоваться для декодирования первого секционированного блока цветности, причем первый секционированный блок цветности выровнен с двумя или более секционированными блоками яркости;

определять режим кодирования цветности для первого секционированного блока цветности в соответствии с функцией соответственного режима кодирования подблока яркости из двух или более секционированных блоков яркости; и

декодировать первый секционированный блок цветности в соответствии с определенным режимом кодирования цветности.

40. Долговременный считываемый компьютером носитель по п. 39, в котором блоки цветности секционированы независимо от блоков яркости, так что по меньшей мере один секционированный блок цветности не выровнен с одним секционированным блоком яркости.



 

Похожие патенты:

Предложен способ для транспортного средства. Обнаруживают изменение в схеме поездки транспортного средства, основываясь на отслеженных данных и схемах поездок, которые хранятся в транспортном средстве.

Изобретение относится к вычислительной технике. Технический результат заключается в обеспечении возможности указывать изображение доступа, или точку доступа, для уровня, который обеспечивает возможность декодирования некоторых из временных уровней.

Изобретение относится к области вычислительной техники. Технический результат заключается в улучшении качества визуализации во время потоковой передачи спланированных по времени мультимедийных данных.

Изобретение относится к средствам для кодирования и декодирования цифрового изображения. Технический результат заключается в повышении эффективности обработки цифрового изображения.

Изобретение относится к области интернет-технологий и, в частности, к способу и системе осуществления совместного использования видео. Техническим результатом является улучшение эффекта совместного использования контента и алгоритма взаимодействия пользователя.

Изобретение относится к кодированию и декодированию видео. Техническим результатом является определение параметров для режима позиционно-зависимого сравнения интрапредсказания (PDPC), когда блоки видеоданных могут быть разделены на неквадратные блоки.

Изобретение относится к области вычислительной техники. Технический результат заключается в повышении эффективности кодирования изображений.

Изобретение относится к вычислительной технике. Технический результат заключается в повышении точности декодирования изображения.

Изобретение относится к вычислительной технике. Технический результат заключается в осуществлении доступа к видеоизображению, которое включает в себя множество изображений, объединенных в одно изображение.

Изобретение относится к области кодирования и декодирования видеоданных. Техническим результатом является повышение эффективности преобразования и сжатия видеоинформации.

Изобретение относится к обработке изображений. Технический результат заключается в повышении точности повторного синтеза изображения на основании входного изображения. Система содержит модуль ввода исходного изображения, модуль прямого деформирования, выполненный с возможностью предсказания для каждого пиксела исходного изображения соответствующего положения в целевом изображении, причем модуль прямого деформирования выполнен с возможностью предсказания поля прямого деформирования, которое выровнено с исходным изображением, и модуль заполнения пропусков, выполненный с возможностью заполнения пропусков, являющихся результатом применения модуля прямого деформирования. 5 н. и 8 з.п. ф-лы, 7 ил.
Наверх