Построение списка слияний в треугольном предсказании

Изобретение относится к средствам для кодирования видео. Технический результат заключается в повышении эффективности кодирования видео. Принимают первый элемент синтаксиса в кодированном битовом видеопотоке, при этом первый элемент синтаксиса указывает максимально допустимое количество кандидатов на слияние в наборе блоков кодирования в кодированном битовом видеопотоке. Задают максимально допустимое число кандидатов режима треугольного предсказания (ТРМ) для набора блоков кодирования на основе второго элемента синтаксиса, если принят второй элемент синтаксиса, а в противном случае задают максимально допустимое число кандидатов ТРМ на основе первого элемента синтаксиса. Если текущий блок кодирования в наборе блоков кодирования кодирован в режиме треугольного предсказания, осуществляют построение списка кандидатов треугольного предсказания для текущего блока кодирования на основе некоторого числа кандидатов ТРМ, причем упомянутое число кандидатов ТРМ в списке кандидатов треугольного предсказания меньше или равно максимально допустимому числу кандидатов ТРМ. 3 н. и 17 з.п. ф-лы, 19 ил., 4 табл.

 

ВКЛЮЧЕНИЕ ПОСРЕДСТВОМ ССЫЛКИ

[0001] Настоящее изобретение испрашивает приоритет патентной заявки США №16/528,019, "Merge List Construction in Triangular Prediction", которая испрашивает приоритет предварительной заявки США №62/816,058, "Merge List Construction in Triangular Prediction", поданной 8 марта 2019 года. Содержание предыдущих заявок, таким образом, включено посредством ссылки в полном объеме.

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

[0001] В настоящей заявке описаны варианты осуществления, в целом относящиеся к видеокодированию.

ПРЕДПОСЫЛКИ ИЗОБРЕТЕНИЯ

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

[0003] Кодирование и декодирование видеосигнала может осуществляться с использованием предсказания между изображениями с компенсацией движения. Цифровое видео без сжатия может включать в себя последовательность изображений, каждое из которых имеет пространственный размер, например, 1920×1080 отсчетов яркости и связанных с ними отсчетов цветности. Последовательность изображений может иметь фиксированную или переменную частоту смены изображений (неформально также называемую частотой кадров), например, 60 изображений в секунду, или 60 Гц. Видео без сжатия предъявляет значительные требования к битовой скорости. Например, видео 1080р60 4:2:0 с 8 битами на отсчет (разрешение отсчетов яркости 1920×1080 при частоте кадров 60 Гц) требует полосы около 1,5 Гбит/с. Час такого видео требует объема памяти более 600 ГБ.

[0004] Одной из целей кодирования и декодирования видеосигнала может являться снижение избыточности во входном видеосигнале путем сжатия. Сжатие может способствовать смягчению вышеупомянутых требований к полосе или объему памяти, в ряде случаев на два порядка величины или более. Можно использовать как сжатие без потерь, так и сжатие с потерями, а также их комбинацию. Сжатие без потерь относится к методам реконструкции точной копии исходного сигнала из сжатого исходного сигнала. При использовании сжатия с потерями реконструированный сигнал может быть не идентичен исходному сигналу, но расхождение между исходным и реконструированным сигналами достаточно мало, так чтобы реконструированный сигнал можно было использовать для намеченного применения. Сжатие с потерями широко применяется для видео. Допустимая степень искажения зависит от применения; например, пользователи некоторых заказных потоковых приложений могут мириться с более высокими искажениями, чем пользователи телевещательных приложений. Достижимая степень сжатия может указывать на то, что более высокое разрешенное/допустимое искажение может давать более высокую степень сжатия.

[0005] Компенсация движения может представлять собой метод сжатия с потерями и может относиться к методам, в которых блок данных отсчетов из ранее восстановленного изображения или его части (опорного изображения) после пространственного сдвига в направлении, указанном вектором движения (далее MV), используется для предсказания реконструированного изображения или его части. В некоторых случаях опорное изображение может совпадать с реконструируемым изображением. Векторы движения могут иметь две координаты X и Y или три координаты, третья из которых является указанием используемого опорного изображения (последнее, косвенно, может быть временным измерением).

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

[0007] Различные механизмы предсказания MV описаны в Н. 265/HEVC (ITU-T Rec. Н.265, "High Efficiency Video Coding", декабрь 2016 г.). Из многих механизмов предсказания MV, которые предлагаются в Н.265, здесь описан метод, далее именуемый "пространственным слиянием".

[0008] В соответствии с фиг. 1 текущий блок (101) содержит отсчеты, найденные кодером в процессе поиска движения для возможности предсказания из смещенного в пространстве предыдущего блока того же размера. Вместо непосредственного кодирования, MV может быть получен из метаданных, связанных с одним или несколькими опорными изображениями, например, из самого последнего (в порядке декодирования) опорного изображения, с использованием MV, связанного с одним из пяти окружающих отсчетов, обозначенных А0, А1, и В0, B1, В2 (с 102 по 106, соответственно). В Н.265 для предсказания MV могут использоваться предсказатели из того же опорного изображения, которое использует соседний блок.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

[0009] Аспекты изобретения предусматривают способы и устройства для кодирования/декодирования видео. В некоторых примерах устройство для видеодекодирования включает в себя схему обработки.

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

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

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

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

[0013] Дополнительные особенности, характер и различные преимущества раскрытого изобретения будут понятны из нижеследующего подробного описания и прилагаемых чертежей, на которых:

[0014] Фиг. 1 представляет собой схематическую иллюстрацию текущего блока и окружающих его кандидатов на пространственное слияние в соответствии с Н.265.

[0015] Фиг. 2 представляет собой схематическую иллюстрацию упрощенной блок-схемы системы связи (200) в соответствии с вариантом осуществления.

[0016] Фиг. 3 представляет собой схематическую иллюстрацию упрощенной блок-схемы системы связи (300) в соответствии с вариантом осуществления.

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

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

[0019] На фиг. 6 показана блок-схема кодера в соответствии с другим вариантом осуществления.

[0020] На фиг. 7 показана блок-схема декодера в соответствии с другим вариантом осуществления.

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

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

[0023] На фиг. 10 показан пример пар кандидатов в расширенном списке слияния для процесса проверки избыточности в соответствии с вариантом осуществления.

[0024] На фиг. 11 показан пример получения временного кандидата на слияние в расширенном списке слияний на текущем изображении в соответствии с вариантом осуществления.

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

[0026] На фиг. 13 показаны примеры разделения блока кодирования на два блока треугольного предсказания в соответствии с вариантом осуществления.

[0027] На фиг. 14 показан пример пространственных и временных соседних блоков, используемых для построения списка кандидатов одинарного предсказания для режима треугольного предсказания в соответствии с вариантом осуществления.

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

[0029] На фиг. 16 показан пример блока кодирования, применяющего набор весовых коэффициентов в процессе адаптивного смешивания в соответствии с вариантом осуществления.

[0030] На фиг. 17 показан пример блока кодирования, применяющего другой набор весовых коэффициентов в процессе адаптивного смешивания в соответствии с вариантом осуществления.

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

[0032] На фиг. 19 представлена схематическая иллюстрация компьютерной системы в соответствии с вариантом осуществления.

ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ

[0033] I. Кодер и декодер видеосигнала

[0034] На фиг. 2 показана упрощенная блок-схема системы связи (200) согласно варианту осуществления настоящего изобретения. Система связи (200) включает в себя множество оконечных устройств, которые могут осуществлять связь друг с другом, например, через сеть (250). Например, система связи (200) включает в себя первую пару оконечных устройств (210) и (220), соединенных между собой через сеть (250). В примере, приведенном на фиг. 3, первая пара оконечных устройств (210) и (220) осуществляет однонаправленную передачу данных. Например, оконечное устройство (210) может кодировать видеоданные (например, поток видеоизображений, захваченных оконечным устройством (210)) для передачи на другое оконечное устройство (220) через сеть (250). Кодированные видеоданные могут передаваться в форме одного или более битовых потоков кодированного видео. Оконечное устройство (220) может принимать кодированные видеоданные из сети (250), декодировать кодированные видеоданные для восстановления видеоизображений и отображения видеоизображений согласно восстановленным видеоданным. Однонаправленная передача данных может быть свойственна приложениям служб массовой информации и т.п.

[0035] В другом примере система связи (200) включает в себя вторую пару оконечных устройств (230) и (240), осуществляющих двунаправленную передачу кодированных видеоданных, которые могут возникать, например, в ходе видеоконференцсвязи. Для двунаправленной передачи данных, в порядке примера, каждое оконечное устройство из оконечных устройств (230) и (240) может кодировать видеоданные (например, поток видеоизображений, захваченных оконечным устройством) для передачи в другое оконечное устройство из оконечных устройств (230) и (240) через сеть (250). Каждое оконечное устройство из оконечных устройств (230) и (240) также может принимать также может принимать кодированные видеоданные, передаваемые другим оконечным устройством из оконечных устройств (230) и (230), и может декодировать кодированные видеоданные для восстановления видеоизображений и отображать видеоизображения на доступном устройстве отображения согласно восстановленным видеоданным.

[0036] В примере на фиг. 2 оконечные устройства (210), (220), (230) и (240) могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны, но это не ограничивает принципы настоящего изобретения. Варианты осуществления настоящего изобретения находят применение для портативных компьютеров, планшетных компьютеров, медиаплееров и/или специального оборудования для видеоконференцсвязи. Сеть (250) представляет любое количество сетей, которые переносят кодированные видеоданные между оконечными устройствами (210), (220), (230) и (240), включая, например, проводные и/или беспроводные сети связи. Сеть связи (250) позволяет обмениваться данными в режиме канальной коммутации и/или пакетной коммутации. Репрезентативные сети включают в себя

телекоммуникационные сети, локальные сети, глобальные сети и/или интернет. В целях настоящего рассмотрения, архитектура и топология сети (250) могут не иметь отношения к настоящему изобретению, если конкретно не указаны ниже.

[0037] На фиг. 3 показано, в порядке примера применения раскрытого изобретения, размещение видеокодера и видеодекодера в окружении потоковой передачи. Раскрытое изобретение может быть в равной степени применимо к другим применениям обработки видео, включая, например, видеоконференцсвязь, цифровое телевидение, хранение сжатого видео на цифровых носителях, в том числе CD, DVD, карте памяти и т.п., и т.д.

[0038] Система потоковой передачи может включать в себя подсистему (313) захвата, которая может включать в себя источник (301) видеосигнала, например, цифровую камеру, создающую, например, поток (302) видеоизображений, не подвергнутых сжатию. Например, поток (302) видеоизображений включает в себя отсчеты, взятые цифровой камерой. Поток (302) видеоизображений, изображенный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с кодированными видеоданными (304) (или битовыми потоками кодированного видео), может обрабатываться электронным устройством (320), которое включает в себя видеокодер (303), подключенный к источнику (301) видеосигнала. Видеокодер (303) может включать в себя оборудование, программное обеспечение или их комбинацию для обеспечения или реализации аспектов раскрытого изобретения, как более подробно описано ниже. Кодированные видеоданные (304) (или битовый поток (304) кодированного видео), изображенные тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком (302) видеоизображений, могут храниться на потоковом сервере (305) для использования в будущем. Одна или более клиентских подсистем потоковой передачи, например, клиентские подсистемы (306) и (308) на фиг. 3, могут осуществлять доступ к потоковому серверу (305) для извлечения копий (307) и (309) кодированных видеоданных (304). Клиентская подсистема (306) может включать в себя видеодекодер (310), например, в электронном устройстве (330). Видеодекодер (310) декодирует входящую копию (307) кодированных видеоданных и создает исходящий поток (311) видеоизображений, который может визуализироваться на дисплее (312) (например, отображающем экране) или другом устройстве визуализации (не показано). В некоторых системах потоковой передачи, кодированные видеоданные (304), (307) и (309) (например, битовые потоки видео) могут кодироваться согласно тем или иным стандартам кодирования/сжатия видео. Примеры этих стандартов включают в себя ITU-T Recommendation Н.265. Например, разрабатывается стандарт видеокодирования под официальным названием "универсальное видеокодирование" (VVC, Versatile Video Coding). Раскрытое изобретение может использоваться в контексте VVC.

[0039] Заметим, что электронные устройства (320) и (330) могут включать в себя другие компоненты (не показаны). Например, электронное устройство (320) может включать в себя видеодекодер (не показан), и электронное устройство (330) также может включать в себя видеокодер (не показан).

[0040] На фиг. 4 показана блок-схема видеодекодера (410) согласно варианту осуществления настоящего изобретения. Видеодекодер (410) может входить в состав электронного устройства (430). Электронное устройство (430) может включать в себя приемник (431) (например, приемные схемы). Видеодекодер (410) может использоваться вместо видеодекодера (310) в примере, приведенном на фиг. 3.

[0041] Приемник (431) может принимать одну или более кодированных видеопоследовательностей для декодирования видеодекодером (410); в том же или другом варианте осуществления, по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может приниматься из канала (401), который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Приемник (431) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или вспомогательными потоками данных, которые могут ретранслироваться на соответствующие использующие и объекты (не показаны). Приемник (431) может отделять кодированную видеопоследовательность от других данных. Для борьбы с джиттером сети, буферная память (415) может быть подключена между приемником (431) и энтропийным декодером / анализатором (420) (далее "анализатором (420)"). В некоторых вариантах применения буферная память (415) входит в состав видеодекодера (410). В других она может не входить в состав видеодекодера (410) (не показан). В прочих вариантах может существовать буферная память (не показана) вне видеодекодера (410), например, для борьбы с джиттером сети, помимо другой буферной памяти (415) в составе видеодекодера (410), например, для управления хронированием доигрывания. Когда приемник (431) принимает данные от устройства хранения/ретрансляции с достаточной полосой и управляемостью или из изосинхронной сети, буферная память (415) может быть не нужна или может быть мала. Для использования в пакетных сетях наилучшей попытки, например, Интернете, буферная память (415) может требоваться, может быть сравнительно большой и может иметь преимущественно адаптивный размер, и по меньшей мере частично может быть реализована в операционной системе или аналогичных элементах (не показаны) вне видеодекодера (410).

[0042] Видеодекодер (410) может включать в себя анализатор (420) для реконструкции символов (421) из кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой видеодекодера (410), и возможно информацию для управления устройством визуализации, например, устройством (412) визуализации (например, отображающим экраном), которое не является неотъемлемой частью электронного устройства (430), но может быть подключено к электронному устройству (430), как показано на фиг. 4. Информация управления для устройств(а) визуализации может представлять собой сообщения информации дополнительного улучшения (SEI, Supplemental Enhancement Information) или фрагменты набора параметров информации пригодности видео (VUI, Video Usability Information) (не показаны). Анализатор (420) может анализировать / энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом видеокодирования и может следовать различным принципам, в том числе кодированию с переменной длиной серии, кодированию по Хаффману, арифметическому кодированию с контекстной чувствительностью или без нее и т.д. Анализатор (420) может извлекать из кодированной видеопоследовательности набор параметров подгруппы для по меньшей мере одной из подгрупп пикселей в видеодекодере на основании по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать в себя группы изображений (GOP, Groups of Pictures), изображения, тайлы, слайсы, макроблоки, единицы кодирования (CU, Coding Units), блоки, единицы преобразования (TU, Transform Units), единицы предсказания (PU, Prediction Units) и т.д. Анализатор (420) также может извлекать из кодированной видеопоследовательности информацию, например, коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.

[0043] Анализатор (420) может осуществлять операцию энтропийного декодирования / анализа видеопоследовательности, принятой из буферной памяти (415), для создания символов (421).

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

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

[0046] Первым модулем является модуль (451) масштабирования / обратного преобразования. Модуль (451) масштабирования / обратного преобразования принимает квантованный коэффициент преобразования, а также информацию управления, включающую в себя используемое преобразование, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д. в качестве символа(ов) (421) от анализатора (420). Модуль (451) масштабирования / обратного преобразования может выводить блоки, содержащие значения отсчетов, которые можно вводить в агрегатор (455).

[0047] В ряде случаев, выходные отсчеты блока (451) масштабирования / обратного преобразования могут относиться к внутренне-кодированному блоку; то есть блоку, который не использует предсказанную информацию из ранее реконструированных изображений, но может использовать предсказанную информацию из ранее реконструированных частей текущего изображения. Такая предсказанная информация может обеспечиваться модулем (452) предсказания внутри изображения. В ряде случаев модуль (452) предсказания внутри изображения генерирует блок такого же размера и формы, как блок, подлежащий реконструкции, с использованием информации ранее реконструированного окружения, извлеченной из буфера (458) текущего изображения. Буфер (458) текущего изображения буферизует, например, частично реконструированное текущее изображение и/или полностью реконструированное текущее изображение. Агрегатор (455) в ряде случаев добавляет, для каждого отсчета, информацию предсказания, сгенерированную модулем (552) внутреннего предсказания, в информацию выходных отсчетов, обеспеченную модулем (551) масштабирования / обратного преобразования.

[0048] В других случаях выходные отсчеты модуля (451) масштабирования / обратного преобразования могут относиться к внутренне кодированному блоку, возможно, с компенсацией движения. В таком случае, модуль (453) предсказания с компенсацией движения может осуществлять доступ к памяти (457) опорных изображений для извлечения отсчетов, используемых для предсказания. После применения компенсации движения к извлеченным отсчетам в соответствии с символами (421), относящимися к блоку, эти отсчеты могут добавляться агрегатором (455) к выходному сигналу модуля (451) масштабирования / обратного преобразования (в этом случае именуемому остаточными отсчетами или остаточным сигналом) для генерации информации выходных отсчетов. Адреса в памяти (457) опорных изображений, откуда модуль (453) предсказания с компенсацией движения извлекает предсказанные отсчеты, могут регулироваться векторами движения, доступными модулю (453) предсказания с компенсацией движения, в форме символов (421), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти (457) опорных изображений, когда используются точные векторы движения под-отсчетов, механизмы предсказания векторов движения и т.д.

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

[0050] Модуль (456) контурного фильтра может выдавать поток отсчетов, который может поступать на устройство (412) визуализации, а также сохраняться в памяти (457) опорных изображений для использования в будущем предсказании между изображениями.

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

[0052] Видеодекодер (410) может осуществлять операции декодирования согласно заранее заданной технологии сжатия видео, например, по стандарту ITU-T Rec. Н.265. Кодированная видеопоследовательность может согласовываться с синтаксисом, заданным используемой/ым технологией или стандартом сжатия видео, в том смысле, что кодированная видеопоследовательность может придерживаться как синтаксиса технологии или стандарта сжатия видео, так и профилей, документированных в технологии или стандарте сжатия видео. В частности, профиль может выбирать некоторые инструменты как инструменты, доступные для использования только под этим профилем, из всех инструментов, доступных в технологии или стандарте сжатия видео. Также для согласованности может быть необходимо, чтобы сложность кодированной видеопоследовательности оставалась в границах, заданных уровнем технологии или стандарта сжатия видео. В ряде случаев, уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов для реконструкции (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и т.д. Пределы, установленные уровнями, в ряде случаев могут дополнительно ограничиваться спецификациями гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) и метаданными для управления буфером HRD, сигнализируемого в кодированной видеопоследовательности.

[0053] Согласно варианту осуществления, приемник (431) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной(ых) видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (410) для правильного декодирования данных и/или более точной реконструкции исходных видеоданных. Дополнительные данные могут представлять собой, например, слои улучшения во времени, пространстве или отношения сигнал/шум (SNR, signal noise ratio), избыточные слайсы, избыточные изображения, коды прямой коррекции ошибок и т.д.

[0054] На фиг. 5 показана блок-схема видеокодера (503) согласно варианту осуществления настоящего изобретения. Видеокодер (503) входит в состав электронного устройства (520). Электронное устройство (520) включает в себя передатчик (540) (например, передающую схему). Видеокодер (503) может использоваться вместо видеокодера (303) в примере, приведенном на фиг. 3.

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

[0056] Источник (501) видеосигнала может обеспечивать исходную видеопоследовательность, подлежащую кодированию видеокодером (503), в форме потока отсчетов цифрового видео любой подходящей битовой глубины (например, 8 бит, 10 бит, 12 бит, …), любого цветового пространства (например, ВТ.601 Y CrCB, RGB, …), и любой подходящей структуры дискретизации (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе службы массовой информации источником (501) видеосигнала может быть запоминающее устройство, где хранится ранее подготовленное видео. В системе видеоконференцсвязи источником (501) видеосигнала может быть камера, которая захватывает информацию локального изображения как видеопоследовательность. Видеоданные могут обеспечиваться как множество отдельных изображений, которые создают ощущение движения при наблюдении в последовательности. Сами изображения могут быть организованы как пространственный массив пикселей, где каждый пиксель может содержать один или более отсчетов в зависимости от используемых структуры дискретизации, цветового пространства и т.д. Специалисту в данной области техники нетрудно понять соотношение между пикселями и отсчетами. Нижеследующее описание посвящено отсчетам.

[0057] Согласно варианту осуществления, видеокодер (503) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (543) в реальном времени или с учетом любых других временных ограничений, налагаемых применением. Установление надлежащей скорости кодирования является одной из функций контроллера (550). В некоторых вариантах осуществления контроллер (550) управляет другими функциональными модулями, как описано ниже, и функционально подключен к другим функциональным модулям. Подключение для простоты не показано. Параметры, установленные контроллером (550), могут включать в себя параметры, связанные регулировкой частоты (пропуск изображения, квантователь, значение лямбда, применяемое при оптимизации скорости-искажения, …), размер изображения, схему групп изображений (GOP, group of pictures), максимальную зону поиска вектора движения и т.д. Контроллер (550) может быть выполнен с возможностью иметь другие подходящие функции, относящиеся к видеокодеру (503), оптимизированному для той или иной конструкции системы.

[0058] В некоторых вариантах осуществления видеокодер (503) выполнен с возможностью работать в петле кодирования. В качестве очень упрощенного описания, в порядке примера, петля кодирования может включать в себя исходный кодер (530) (например, отвечающий за создание символов, например, потока символов, на основе входного изображения, подлежащего кодированию, и опорного(ых) изображения(ий)) и (локальный) декодер (533), встроенный в видеокодер (503). Декодер (533) реконструирует символы для создания данных отсчетов, аналогично тому, как это делал бы (удаленный) декодер (поскольку любое сжатие между символами и битовым потоком кодированного видео происходит без потерь в технологиях сжатия видео, рассматриваемых в раскрытом изобретении). Реконструированный поток отсчетов (данные отсчетов) поступает в память (534) опорных изображений. Поскольку декодирование потока символов приводит к результатам, с точностью до бита, не зависящим от положения декодера (локального или удаленного), содержимое памяти (534) опорных изображений также будет одинаковым с точностью до бита для локального кодера и удаленного кодера. Другими словами, предсказывающая часть кодера "видит" в качестве отсчетов опорного изображения точно такие же значения отсчетов, какие "видел" бы декодер при использовании предсказания в ходе декодирования. Этот фундаментальный принцип синхронизма опорного изображения (и, в итоге, дрейф, если синхронизм не удается поддерживать, например, вследствие канальных ошибок) используется также в некоторых связанных областях техники.

[0059] "Локальный" декодер (533) может действовать таким же образом, как "удаленный" декодер, например, видеодекодер (410), подробно вышеописанный со ссылкой на фиг. 4. Однако, опять же, согласно фиг. 4, поскольку символы доступны, и кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером (545) и анализатором (420) может осуществляться без потерь, части энтропийного декодирования видеодекодера (410), включающие в себя буферную память (415) и анализатор (420), могут быть не полностью реализованы в локальном декодере (533).

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

[0061] Согласно некоторым примерам, в ходе работы исходный кодер (530) может осуществлять кодирование с предсказанием и компенсацией движения, при котором входное изображение кодируется с предсказанием на основании одного или более ранее кодированных изображений из видеопоследовательности, указанных как "опорные изображения". Таким образом, машина (532) кодирования кодирует различия между пиксельными блоками входного изображения и пиксельными блоками опорного изображения(й), которое(ые) может(ут) выбираться в качестве предсказанной(ых) ссылки(ок) на входное изображение.

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

[0063] Предсказатель (535) может осуществлять поиски предсказания для машины (532) кодирования. Таким образом, для нового изображения, подлежащего кодированию, предсказатель (535) может искать в памяти (534) опорных изображений данные отсчетов (в качестве кандидатов на роль опорных пиксельных блоков) или те или иные метаданные, например, векторы движения опорного изображения, формы блоков и т.д., которые могут служить надлежащей ссылкой для предсказания новых изображений. Предсказатель (535) может работать на основе "блоки отсчетов × пиксельные блоки" для нахождения надлежащих ссылок для предсказания. В ряде случаев, согласно результатам поиска, полученным предсказателем (535), входное изображение может иметь ссылки для предсказания, извлеченные из множества опорных изображений, хранящихся в памяти (534) опорных изображений.

[0064] Контроллер (550) может управлять операциями кодирования исходного кодера (530), включая, например, установление параметров и параметров подгруппы, используемых для кодирования видеоданных.

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

[0066] Передатчик (540) может буферизовать кодированную(ые) видеопоследовательность(и), созданную энтропийным кодером (545), для подготовки к передаче через канал (560) связи, который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Передатчик (540) может объединять кодированные видеоданные от видеокодера (503) с другими данными, подлежащими передаче, например, кодированными аудиоданными и/или вспомогательными потоками данных (источники не показаны).

[0067] Контроллер (550) может управлять работой видеокодера (503). В ходе кодирования контроллер (550) может назначать каждому кодированному изображению тот или иной тип кодированного изображения, который может определять методы кодирования, применимые к соответствующему изображению. Например, изображениям часто могут назначаться следующие типы изображения:

[0068] Интра-изображение (I-изображение) можно кодировать и декодировать без использования какого-либо другого изображения в последовательности в качестве источника предсказания. Некоторые видеокодеки допускают разные типы интра-изображений, включая, например, изображения в формате независимого обновления декодера ("IDR", Independent Decoder Refresh). Специалисту в данной области техники известны разновидности I-изображений и их соответствующие варианты применения и особенности.

[0069] Предсказанное изображение (Р-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.

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

[0071] Исходные изображения обычно допускают пространственное разделение на множество блоков отсчетов (например, блоки 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и кодирование на поблочной основе (блок за блоком). Блоки могут кодироваться предиктивно со ссылкой на другие (ранее кодированные) блоки, определенные назначением кодирования, применяемым к соответствующим изображениям этих блоков. Например, блоки I-изображений могут кодироваться без предсказания или с предсказанием со ссылкой на ранее кодированные блоки того же изображения (пространственным предсказанием или внутренним предсказанием). Пиксельные блоки Р-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.

[0072] Видеокодер (503) может осуществлять операции кодирования согласно заранее заданной технологии или стандарту видеокодирования, например, ITU-T Rec. Н.265. В своей работе видеокодер (503) может осуществлять различные операции сжатия, в том числе операции предиктивного кодирования, которые используют временные и пространственные избыточности во входной видеопоследовательности. Поэтому кодированные видеоданные могут согласовываться с синтаксисом, заданным используемой технологией или стандартом видеокодирования.

[0073] Согласно варианту осуществления, передатчик (540) может передавать дополнительные данные с кодированным видео. Исходный кодер (530) может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные/SNR слои улучшения, другие формы избыточных данных, например, избыточные изображения и слайсы, сообщения SEI, фрагменты набора параметров VUI и т.д.

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

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

[0076] Дополнительно, метод режима слияния может использоваться в предсказании между изображениями для повышения эффективности кодирования.

[0077] Согласно некоторым вариантам осуществления изобретения, предсказания, например, предсказания между изображениями и предсказания внутри изображения, осуществляются поблочно. Например, согласно стандарту HEVC, изображение в последовательности видеоизображений разбивается на единицы дерева кодирования (CTU, coding tree units) для сжатия, CTU в изображении имеют одинаковый размер, например 64×64 пикселя, 32×32 пикселя или 16×16 пикселей. В общем случае CTU включает в себя три блока дерева кодирования (СТВ, coding tree blocks), а именно, один СТВ яркости и два СТВ цветности. Каждый CTU может рекурсивно делиться квадрадеревом на одну или несколько единиц кодирования (CU). Например, CTU размером 64×64 пикселя может делиться на одну CU размером 64×64 пикселя или 4 CU размером 32×32 пикселя или 16 CU размером 16×16 пикселей. Например, каждая CU анализируется для определения типа предсказания для CU, например, типа внешнего предсказания или типа внутреннего предсказания. CU делится на одну или более единиц предсказания (PU) в зависимости от временной и/или пространственной предсказуемости. В целом, каждая PU включает в себя блок (РВ) предсказания яркости и два РВ цветности. Согласно варианту осуществления, операция предсказания при кодировании (кодировании/декодировании) осуществляется в единице блока предсказания. Используя блок предсказания яркости в качестве примера блока предсказания, блок предсказания включает в себя матрицу значений (например, значений яркости) для пикселей, например, 8×8 пикселей, 16×16 пикселей, 8×16 пикселей, 16×8 пикселей и т.п.

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

[0079] В примере HEVC видеокодер (603) принимает матрицу значений отсчетов для блока обработки, например, блока предсказания 8×8 отсчетов и т.п. Видеокодер (603) определяет, наилучшим ли образом кодируется блок обработки в интра-режиме, интер-режиме или режиме двойного предсказания с использованием, например, оптимизации скорость-искажения. Когда блок обработки подлежит кодированию в интра-режиме, видеокодер (603) может использовать метод внутреннего предсказания для кодирования блока обработки в кодированное изображение; и когда блок обработки подлежит кодированию в интер-режиме или режиме двойного предсказания, видеокодер (603) может использовать метод внешнего предсказания или двойного предсказания, соответственно, для кодирования блока обработки в кодированное изображение. В некоторых технологиях видеокодирования режим слияния может быть подрежимом предсказания между изображениями, где вектор движения выводится из одного или более предсказателей вектора движения без привлечения кодированного компонента вектора движения вне предсказателей. В некоторых других технологиях видеокодирования может присутствовать компонент вектора движения, применимый к данному блоку. В порядке примера, видеокодер (603) включает в себя другие компоненты, например, модуль определения режима (не показан) для определения режима блоков обработки.

[0080] В примере, приведенном на фиг. 6, видеокодер (603) включает в себя интер-кодер (630), интра-кодер (622), вычислитель (623) остатка, переключатель (626), кодер (624) остатка, общий контроллер (621) и энтропийный кодер (625), соединенные друг с другом как показано на фиг. 6.

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

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

[0083] Общий контроллер (621) выполнен с возможностью определения общих данных управления и управления другими компонентами видеокодера (603) на основе общих данных управления. Например, общий контроллер (621) определяет режим блока и выдает сигнал управления на переключатель (626) на основе режима. Например, когда режим является интра-режимом, общий контроллер (621) управляет переключателем (626) для выбора результата интра-режима для использования вычислителем (623) остатка, и управляет энтропийным кодером (625) для выбора информации внутреннего предсказания и включения информации внутреннего предсказания в битовый поток; и когда режим является интер-режимом, общий контроллер (621) управляет переключателем (626) для выбора результата внешнего предсказания для использования вычислителем (623) остатка, и управляет энтропийным кодером (625) для выбора информации внешнего предсказания и включения информации внешнего предсказания в битовый поток.

[0084] Вычислитель (623) остатка выполнен с возможностью вычисления разности (данных остатка) между принятым блоком и результатами предсказания, выбранными из интра-кодера (622) или интер-кодера (630). Кодер (624) остатка выполнен с возможностью действовать на основе данных остатка для кодирования данных остатка для генерации коэффициентов преобразования. Например, кодер (624) остатка выполнен с возможностью преобразования данных остатка из пространственной области в частотную область и генерирования коэффициентов преобразования. Затем коэффициенты преобразования подвергаются обработке квантования для получения квантованных коэффициентов преобразования. В различных вариантах осуществления видеокодер (603) также включает в себя декодер (628) остатка. Декодер (628) остатка выполнен с возможностью осуществления обратного преобразования и генерирования декодированных данных остатка. Декодированные данные остатка могут надлежащим образом использоваться интра-кодером (622) и интер-кодером (630). Например, интер-кодер (630) может генерировать декодированные блоки на основе декодированных данных остатка и информации внешнего предсказания, и интра-кодер (622) может генерировать декодированные блоки на основе декодированных данных остатка и информации внутреннего предсказания. Декодированные блоки надлежащим образом обрабатываются для генерации декодированных изображений, и декодированные изображения могут буферизоваться в схеме памяти (не показана) и в некоторых примерах использоваться в качестве опорных изображений.

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

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

[0087] В примере, приведенном на фиг. 7, видеодекодер (710) включает в себя энтропийный декодер (771), интер-декодер (780), декодер (773) остатка, модуль (774) реконструкции и интра-декодер (772), соединенные друг с другом как показано на фиг. 7.

[0088] Энтропийный декодер (771) может быть выполнен с возможностью реконструкции, из кодированного изображения, некоторых символов, которые представляют синтаксические элементы, образующие кодированное изображение. Такие символы могут включать в себя, например, режим кодирования блока (например, интра-режим, интер-режим, режим двойного предсказания, причем последние два в подрежиме слияния или другом подрежиме), информацию предсказания (например, информацию внутреннего предсказания или информацию внешнего предсказания), которая может идентифицировать определенный отсчет или метаданные, используемые для предсказания интра-декодером (772) или интер-декодером (780), соответственно, информацию остатка в форме, например, квантованных коэффициентов преобразования и т.п.Например, когда режим предсказания является режимом внутреннего или двойного предсказания, информация внешнего предсказания поступает на интер-декодер (780); а когда тип предсказания является типом внутреннего предсказания, информация внутреннего предсказания поступает на интра-декодер (772). Информация остатка может подвергаться обратному квантованию и поступать на декодер (773) остатка.

[0089] Интер-декодер (780) выполнен с возможностью приема информации внешнего предсказания и генерирования результатов внешнего предсказания на основании информации внешнего предсказания.

[0090] Интра-декодер (772) выполнен с возможностью приема информации внутреннего предсказания и генерирования результатов предсказания на основании информации внутреннего предсказания.

[0091] Декодер (773) остатка выполнен с возможностью осуществления обратного квантования для извлечения деквантованных коэффициентов преобразования и обработки деквантованных коэффициентов преобразования для преобразования остатка из частотной области в пространственную область. Декодер (773) остатка также может требовать некоторой информации управления (включать параметр квантователя (QP, Quantizer Parameter)), и эта информация может обеспечиваться энтропийным декодером (771) (путь данных не показан, поскольку это может быть только информация управления малого объема).

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

[0093] Следует отметить, что видеокодеры (303), (503) и (603) и видеодекодеры (310), (410) и (710) могут быть реализованы с использованием любого подходящего метода. Согласно варианту осуществления, видеокодеры (303), (503) и (603) и видеодекодеры (310), (410) и (710) могут быть реализованы с использованием одной или более интегральных схем. В другом варианте осуществления видеокодеры (303), (503) и (503) и видеодекодеры (310), (410) и (710) могут быть реализованы с использованием одного или более процессоров, которые выполняют программные инструкции.

[0094] Аспекты раскрытия предоставляют методы для упрощения компенсации афинного движения с предсказанными смещениями.

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

[0096] Как режим AMVP, так и режим слияния создают список кандидатов во время декодирования.

[0097] II. Способы кодирования с внешним предсказанием

[0098] 1. Режим слияния

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

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

[0101] На фиг. 8 показан пример позиций кандидатов. Из этих позиций кандидатов можно выбрать набор кандидатов на слияние для создания списка кандидатов на слияние. Как показано, текущий блок (810) должен быть обработан в режиме слияния. Набор позиций кандидатов {Al, В1, В0, А0, В2, С0, С1} определен для обработки в режиме слияния. В частности, позиции кандидатов {A1, В1, В0, А0, В2} являются пространственными позициями кандидатов, представляющими позиции блоков-кандидатов, которые находятся в том же изображении, что и текущий блок (810). Напротив, позиции кандидатов {С0, С1} являются временными позициями кандидатов, представляющими позиции блоков-кандидатов, которые находятся в другом кодированном изображении и соседствуют или перекрывают соответственно расположенный блок текущего блока (810). Как показано, позиция С1 кандидата может быть расположена вблизи от центра текущего блока (810) (например, рядом с центром).

[0102] Позиция кандидата в различных примерах может быть представлена блоком отсчетов или отсчетом. На фиг. 8 каждая позиция кандидата представлена блоком отсчетов, например, размером 4×4 отсчета. Размер такого блока отсчетов, соответствующего позиции кандидата, может быть равен или меньше минимально допустимого размера РВ (например, 4×4 отсчета), определенного для древовидной схемы разделения, используемой для генерации текущего блока (810). При такой конфигурации блок, соответствующий позиции кандидата, всегда может находиться в пределах одного соседнего РВ. В альтернативном примере для представления позиции кандидата может использоваться позиция отсчета (например, правого нижнего отсчета в блоке А1 или правого верхнего отсчета в блоке А0). Такой отсчет называется репрезентативным отсчетом, а такая позиция называется репрезентативной позицией.

[0103] В одном из примеров позиции кандидатов {Al, В1, В0, А0, В2, С0, С1}, определенных на фиг. 8, могут использоваться в режиме слияния для выбора кандидатов на слияние из позиций кандидатов {Al, В1, В0, А0, В2, С0, С1} с целью построения списка кандидатов. Список кандидатов может содержать заранее заданное максимальное количество кандидатов на слияние, представленное как Cm. Каждый кандидат на слияние в списке кандидатов может включать набор данных о движении, которые можно использовать для предсказания с компенсацией движения.

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

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

[0106] Например, в соответствии с заранее заданным порядком, первое число кандидатов на слияние, Са, определяется из пространственных позиций кандидатов в соответствии с последовательностью {A1, В1, В0, А0, В2}, а второе число кандидатов на слияние, Cb=Cm-Ca, определяется из временных позиций кандидатов в соответствии с последовательностью {С0, С1}. Цифры Al, В1, В0, А0, В2, С0, С1, представляющие позиции кандидатов, также могут использоваться для указания кандидатов на слияние. Например, кандидат на слияние, полученный из позиции А1 кандидата, называется кандидатом А1 на слияние.

[0107] В некоторых сценариях кандидат на слияние в позиции кандидата может отсутствовать. Например, блок-кандидат в позиции кандидата может быть предсказан внутренне, вне слайса или тайла, включающего текущий блок (810), или не в той же строке блока дерева кодирования (СТВ), что и текущий блок (810). В некоторых сценариях кандидат на слияние в позиции кандидата может быть избыточным. Например, один соседний блок текущего блока (810) может перекрывать две позиции кандидата. Избыточный кандидат на слияние может быть удален из списка кандидатов (например, путем выполнения процесса обрезки ветвей дерева). Если общее число доступных кандидатов на слияние (с удалением избыточных кандидатов) в списке кандидатов меньше максимального числа кандидатов на слияние Cm, могут быть созданы дополнительные кандидаты на слияние (например, в соответствии с заранее заданным правилом) для заполнения списка кандидатов таким образом, чтобы список кандидатов мог иметь фиксированную длину. Например, дополнительные кандидаты на слияние могут включать комбинированных кандидатов с двойным предсказанием и кандидатов с нулевым вектором движения.

[0108] После построения списка кандидатов, в кодере может быть выполнен процесс оценки для выбора кандидата на слияние из списка кандидатов. Например, может быть рассчитана функция скорость-искажения (RD, rate-distortion), соответствующая каждому кандидату на слияние, и может быть выбран кандидат с лучшим значением RD. Соответственно, индекс слияния, связанный с выбранным кандидатом на слияние, может быть определен для текущего блока (810) и передан в декодер.

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

[0110] В некоторых примерах также представлен режим пропуска. Например, в режиме пропуска текущий блок может быть предсказан с использованием режима слияния, как описано выше, для определения набора данных о движении, при этом остаток не генерируется и коэффициенты преобразования не передаются. Флаг пропуска может быть связан с текущим блоком. Флаг пропуска и индекс слияния, указывающие на соответствующую информацию о движении текущего блока, могут быть переданы видеодекодеру. Например, в начале CU в слайсе предсказания между изображениями может быть установлен флаг пропуска, который подразумевает следующее: CU содержит только один PU (2N×2N); режим слияния используется для получения данных о движении; и в битовом потоке нет данных остатка. На стороне декодера, на основе флага пропуска, блок предсказания может быть определен на основе индекса слияния для декодирования соответствующего текущего блока без добавления информации об остатке. Таким образом, различные способы кодирования видеосигнала с режимом слияния, описанные здесь, могут быть использованы в сочетании с режимом пропуска.

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

[0112] 2. Расширенный режим предсказания со слиянием

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

1) Предсказатель вектора пространственного движения (MVP) из блоков кодирования пространственных соседей (CU);

2) Временной MVP от соответственно расположенных CU;

3) MVP на основе истории из буфера истории;

4) Попарно усредненный MVP; и

5) Нулевые MV.

Термин "единица кодирования" может относиться к блоку предсказания или блоку кодирования, выделенному из изображения.

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

[0115] Ниже описаны процессы генерации различных типов кандидатов на слияние в расширенном списке кандидатов на слияние.

[0116] 2.1. Определение пространственных кандидатов

[0117] В одном из вариантов осуществления определение кандидатов на пространственное слияние в расширенном списке слияния аналогично определению кандидатов на пространственное слияние, как описано в разделе "II. 1 Режим слияния". На фиг. 9 показаны возможные позиции пространственного слияния текущего блока (910) в соответствии с вариантом осуществления. Среди позиций кандидатов, показанных на фиг. 9, можно выбрать и определить до четырех кандидатов на слияние. Например, последовательность определения может быть следующей: Al, В1, В0, А0 и В2. В примере позиция В2 рассматривается только тогда, когда любая CU позиции А1, В1, В0, А0 недоступна (например, потому что принадлежит другому слайсу или тайлу) или кодирована внутренне.

[0118] После добавления кандидата позиции А1 в расширенный список кандидатов добавление других кандидатов может быть подвергнуто проверке на избыточность. При проверке избыточности кандидаты на слияние с одинаковой информацией о движении исключаются из расширенного списка слияния, чтобы повысить эффективность кодирования. Чтобы уменьшить вычислительную сложность, в примере проверки избыточности рассматриваются не все возможные пары кандидатов. Вместо этого рассматриваются только пары, связанные стрелкой на фиг. 10. Кандидат не добавляется в список слияния, в некоторых примерах, если другой элемент пары, указанный на фиг. 10, находится в списке слияния и имеет ту же или аналогичную информацию о движении, что и добавляемый кандидат.

[0119] 2.2. Определение временных кандидатов

[0120] В варианте осуществления в расширенный список слияния добавляется только один временной кандидат. На фиг. 11 показан пример получения временного кандидата на слияние (1131) текущего блока (1111) на текущем изображении (1101) в соответствии с вариантом осуществления. Кандидат на временное слияние (1131) получен путем масштабирования вектора движения (1132) соответственно расположенного блока (1112) текущего блока (1111) в изображении (1102) (называемом соответственно расположенным изображением). В примере индекс опорного изображения соответственно расположенного изображения передается явно, например, в заголовке слайса. В примере индекс опорного изображения кандидата на временное слияние (1131) установлен равным 0. В одном из вариантов осуществления операция масштабирования основана на расстояниях между счетчиками последовательностей изображений (РОС), Tb (1141) и Td (1142). Например, Tb (1141) определяется как расстояние РОС между опорным изображением (1103) текущего блока (1111) и текущим изображением (1101), в то время как Td (1142) определяется как расстояние РОС между опорным изображением (1104) соответственно расположенного блока (1112) и соответственно расположенным изображением (1102).

[0121] На фиг. 12 показаны позиции кандидатов, С1 и С0, из которых может быть выбран кандидат на временное слияние текущего блока 1210 в соответствии с вариантом осуществления. В одном из вариантов осуществления позиция С0 сначала проверяется для получения кандидата на временное слияние. Если кандидат на слияние в позиции С0 недоступен, например, когда соседний блок в С0 недоступен, кодирован внутри или находится за пределами текущей строки CTU, используется позиция С1.

[0122] 2.3. Определение кандидатов на слияние на основе истории

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

[0124] В одном из вариантов осуществления размер таблицы HMVP, обозначаемой S, устанавливается равным 6. Соответственно, в таблицу может быть добавлено до 6 кандидатов HMVP. При вставке нового кандидата на движение в таблицу в одном из вариантов осуществления может использоваться принудительное правило "первым вошел - первым вышел" (FIFO). Кроме того, при добавлении нового кандидата HMVP может быть применена проверка избыточности, чтобы определить наличие идентичного HMVP в таблице. В случае обнаружения идентичный кандидат HMVP удаляется из таблицы, и все кандидаты HMVP, следующие за удаленным кандидатом HMVP, перемещаются вперед. Затем новый кандидат HMVP может быть добавлен в конец таблицы.

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

[0126] Чтобы уменьшить количество операций проверки избыточности, в одном из вариантов осуществления введены следующие упрощения:

(i) Количество кандидатов HMPV, используемых для генерации расширенного списка слияния, задается как N<=4 и М=(8-N), где N означает количество существующих кандидатов в расширенном списке слияния, а М означает количество доступных кандидатов HMVP в таблице истории.

(ii) Как только общее число доступных кандидатов на слияние в расширенном списке слияния достигнет числа максимально допустимых кандидатов на слияние минус 1, процесс построения списка кандидатов на слияние из HMVP завершается.

[0127] 2.4. Определение попарно усредненных кандидатов на слияние

[0128] В некоторых вариантах осуществления попарно усредненные кандидаты могут быть сгенерированы путем усреднения заранее заданных пар кандидатов в текущем списке кандидатов на слияние. Например, в одном из вариантов осуществления заранее заданные пары определяются как {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3)}, где числа обозначают индексы слияния в списке кандидатов на слияние. Например, усредненные векторы движения рассчитываются отдельно для каждого списка опорных изображений. Если оба усредненных вектора движения доступны в одном списке, эти два вектора движения усредняются, даже если они указывают на разные опорные изображения. Если доступен только один вектор движения, доступный вектор можно использовать непосредственно. Если вектор движения недоступен, в одном примере соответствующая пара пропускается.

[0129] 2.5. Нулевые предсказатели вектора движения

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

[0131] 3. Режим треугольного предсказания (ТРМ)

[0132] Режим треугольного предсказания (ТРМ) может использоваться для взаимного предсказания в некоторых вариантах осуществления. В одном из вариантов осуществления ТРМ применяется к CU, размер которых составляет 8×8 отсчетов или больше и которые кодируются в режиме пропуска или слияния. В варианте осуществления для CU, удовлетворяющей этим условиям (размером 8×8 отсчетов или больше и кодированной в режиме пропуска или слияния), передается флаг уровня CU, указывающий, применяется ТРМ или нет.

[0133] При использовании ТРМ, в некоторых вариантах осуществления, CU разделяется поровну на две секции в форме треугольника с использованием диагонального либо антидиагонального разделения, как показано на фиг. 13. На фиг. 13 первая CU (1310) разделена от верхнего левого угла до нижнего правого угла, что позволяет получить два блока треугольного предсказания, PU1 и PU2. Вторая CU (1320) разделена от верхнего правого угла до нижнего левого угла, что позволяет получить две единицы треугольного предсказания, PU1 и PU2. Внешнее предсказание каждой единицы треугольного предсказания PU1 или PU2 в CU (1310) или CU (1320) осуществляется с использованием ее собственной информации о движении. В некоторых вариантах осуществления для каждой единицы треугольного предсказания допускается только одно предсказание. Соответственно, каждая единица треугольного предсказания имеет один вектор движения и один индекс опорного изображения. Ограничение движения с одинарным предсказанием может быть применено для обеспечения того, чтобы, подобно обычному методу двойного предсказания, для каждой CU выполнялось не более двух предсказаний с компенсацией движения. Таким образом, сложность обработки может быть снижена. Информация о движении с одинарным предсказанием для каждой единицы треугольного предсказания может быть получена из списка кандидатов на слияние с одинарным предсказанием. В некоторых других вариантах осуществления для каждой единицы треугольного предсказания допускается двойное предсказание. Соответственно, информация о движении с двойным предсказанием для каждой единицы треугольного предсказания может быть получена из списка кандидатов на слияние с двойным предсказанием.

[0134] В некоторых вариантах осуществления, когда флаг уровня CU указывает, что текущая CU кодирована с использованием ТРМ, дополнительно передается индекс, называемый индексом треугольного разделения. Например, индекс треугольного разделения может иметь значение в диапазоне [0, 39]. Используя этот индекс треугольного разделения, с помощью таблицы поиска на стороне декодера можно определить направление треугольного разделения (диагональное или антидиагональное), а также информацию о движении для каждого из разделов (например, индексы слияния (или называемые индексами ТРМ) в соответствующем списке кандидатов для одного предсказания). В одном из вариантов осуществления, после предсказания каждого из треугольных блоков на основе полученной информации о движении, значения отсчетов вдоль диагонального или антидиагонального края текущей CU корректируются путем процесса смешивания с адаптивными весами. В результате процесса смешивания может быть получен сигнал предсказания для всей CU. Впоследствии процесс преобразования и квантования может быть применен ко всей CU способом, аналогичным другим режимам предсказания. Наконец, поле движения CU, предсказанное с использованием режима треугольного разделения, может быть создано, например, путем хранения информации о движении в наборе из 4×4 отсчетов, выделенных из CU. Поле движения может быть использовано, например, в последующем процессе предсказания вектора движения для построения списка кандидатов на слияние.

[0135] 3.1. Построение списка кандидатов одинарного предсказания

[0136] В некоторых вариантах осуществления список кандидатов на слияние для предсказания двух блоков треугольного предсказания для блока кодирования, обработанного в режиме ТРМ, может быть построен на основе набора пространственных и временных соседних блоков блока кодирования. Такой список кандидатов на слияние может называться списком кандидатов ТРМ или списком кандидатов режима треугольного слияния с перечисленными в нем кандидатами для ТРМ. В одном из вариантов осуществления список кандидатов на слияние представляет собой список кандидатов одинарного предсказания. В одном из вариантов осуществления список кандидатов одинарного предсказания включает в себя пять кандидатов вектора движения одинарного предсказания. Например, пять кандидатов вектора движения одинарного предсказания могут быть получены из семи соседних блоков, включая пять пространственных соседних блоков (помеченных номерами от 1 до 5 на фиг. 14) и два временных соответственно расположенных блока (помечены номерами от 6 до 7 на фиг. 14).

[0137] В примере векторы движения семи соседних блоков собирают и включают в список кандидатов одинарного предсказания в следующем порядке: сначала векторы движения соседних блоков с одинарным предсказанием; затем, для соседних блоков с двойным предсказанием, векторы движения L0 (то есть часть вектора движения L0 MV с двойным предсказанием), векторы движения L1 (то есть часть вектора движения L1 MV с двойным предсказанием) и усредненные векторы движения векторов движения L0 и L1 MV с двойным предсказанием. В одном из вариантов осуществления, если число кандидатов меньше пяти, в конец списка добавляют нулевые векторы движения. В некоторых других вариантах осуществления список кандидатов на слияние может включать менее 5 или более 5 кандидатов на слияние одинарного или двойного предсказания, выбираемых из позиций кандидатов, которые совпадают с показанными на фиг. 14 или отличаются от них.

[0138] 3.2. Таблица соответствия и индексы таблиц

[0139] В одном из вариантов осуществления, CU кодируется в режиме треугольного разделения со списком кандидатов ТРМ (или слияния), включающим пять кандидатов ТРМ. Соответственно, если для каждого треугольного PU используется 5 кандидатов на слияние, существует 40 возможных способов предсказания CU. Другими словами, может существовать 40 различных комбинаций направлений разделения и индексов слияния (или ТРМ): 2 (возможные направления разделения) × (5 (возможные индексы слияния для первой единицы треугольного предсказания) × 5 (возможные индексы слияния для второй единицы треугольного предсказания) - 5 (число возможностей того, что пара из первой и второй единиц предсказания имеет один и тот же индекс слияния)). Например, когда для двух единиц треугольного предсказания определяется один и тот же индекс слияния, CU может обрабатываться с использованием обычного режима слияния вместо режима треугольного предсказания.

[0140] Соответственно, в одном из вариантов осуществления индекс треугольного разделения в диапазоне [0, 39] может использоваться для представления того, какая из 40 комбинаций используется, на основе таблицы соответствия. На фиг. 15 показан пример таблицы соответствия (1500), используемой для получения индексов направления разделения и слияния на основе индекса треугольного разделения. Как показано в таблице соответствия (1500), первая строка (1501) содержит индексы треугольного разделения в диапазоне от 0 до 39; вторая строка (1502) содержит возможные направления разделения, представленные значением 0 или 1; третья строка (1503) содержит возможные первые индексы слияния, соответствующие первой единице треугольного предсказания в диапазоне от 0 до 4; и четвертая строка 1504 содержит возможные вторые индексы слияния, соответствующие второй единице треугольного предсказания в диапазоне от 0 до 4.

[0141] Например, когда индекс треугольного разделения, имеющий значение 1, принимается декодером на основе столбца (1520) таблицы соответствия (1500), можно определить, что направление разделения представлено значением 1, а первый и второй индексы слияния равны 0 и 1, соответственно. Поскольку индексы треугольного разделения связаны с таблицей соответствия, индекс треугольного разделения также упоминается в этом описании как индекс таблицы.

[0142] 3.3. Адаптивное смешивание вдоль края треугольного разделения

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

(1) 1-я группа весовых коэффициентов: {7/8, 6/8, 4/8, 2/8, 1/8} для отсчетов компонента яркости и {7/8, 4/8, 1/8} для отсчетов компонента цветности; и

(2) 2-я группа весовых коэффициентов: {7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1/8} для отсчетов компонента яркости и {6/8, 4/8, 2/8} для отсчетов компонента цветности.

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

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

[0145] На фиг. 16 показан пример CU, применяющей первую группу весовых коэффициентов. Как показано, первый блок кодирования (1601) включает отсчеты яркости, а второй блок кодирования (1602) включает отсчеты цветности. Набор пикселей вдоль диагонального края в блоке кодирования (1601) или (1602) помечен номерами 1, 2, 4, 6 и 7, соответствующими весовым коэффициентам 7/8, 6/8, 4/8, 2/8 и 1/8 соответственно. Например, для пикселя, помеченного числом 2, значение отсчета пикселя после операции смешивания может быть получено в соответствии с:

значением смешанных отсчетов = 2/8 × Р1 + 6/8 × Р2, где Р1 и Р2 представляют значения отсчетов в соответствующем пикселе, но принадлежат предсказаниям первой единицы треугольного предсказания и второй единицы треугольного предсказания, соответственно.

[0146] На фиг. 17 показан пример CU, применяющей вторую группу весовых коэффициентов. Как показано, первый блок кодирования (1701) включает отсчеты яркости, а второй блок кодирования (1702) включает отсчеты цветности. Набор пикселей вдоль диагонального края в блоке кодирования (1701) или (1702) помечен цифрами 1, 2, 3, 4, 5, 6 и 7, соответствующими весовым коэффициентам 7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1/8. Например, для пикселя, помеченного числом 3, значение отсчетов пикселя после операции смешивания может быть получено в соответствии со:

значением смешанных отсчетов = 2/8 × Р1 + 6/8 × Р2, где Р1 и Р2 представляют значения отсчетов в соответствующем пикселе, но принадлежат предсказаниям первой единицы треугольного предсказания и второй единицы треугольного предсказания, соответственно.

[0147] 3.4. Элементы синтаксиса для передачи параметров треугольного предсказания

[0148] В некоторых вариантах осуществления режим единицы треугольного предсказания применяется к CU в режиме пропуска или слияния. Размер блока CU не может быть меньше 8×8. Для CU, кодированной в режиме пропуска или слияния, передается флаг уровня CU, указывающий, применяется режим единицы треугольного предсказания или нет для текущей CU. В одном из вариантов осуществления, когда режим блока треугольного предсказания применяется к CU, передается табличный индекс, указывающий направление для разделения CU на два блока треугольного предсказания, и векторы движения (или соответствующие индексы слияния) двух блоков треугольного предсказания. Индекс таблицы варьируется в диапазоне от 0 до 39. Для получения направления разделения и векторов движения из индекса таблицы используется таблица соответствия, аналогичная таблице, показанной на фиг. 15.

[0149] Как описано выше, три параметра, направление разделения, первый индекс слияния (индекс ТРМ), соответствующий первому блоку треугольного предсказания, и второй индекс слияния (индекс ТРМ), соответствующий второму блоку треугольного предсказания, генерируются, когда ТРМ применяется к блоку кодирования. Как описано в некоторых примерах, три параметра треугольного предсказания передаются от кодера декодеру посредством табличного индекса. На основе таблицы соответствия (например, таблицы соответствия (1500) в примере на фиг. 15) можно определить три параметра треугольного предсказания с использованием индекса таблицы, полученного на стороне декодера. Однако для хранения таблицы соответствия в декодере требуется дополнительное пространство памяти, что может стать обременительным в некоторых реализациях декодера. Например, дополнительная память может привести к увеличению стоимости и энергопотребления декодера.

[0150] Для решения вышеуказанной проблемы в некоторых вариантах осуществления вместо передачи индекса таблицы и использования таблицы соответствия для интерпретации индекса таблицы от кодера декодеру передаются три элемента синтаксиса. Три параметра треугольного предсказания (направление разделения и два индекса слияния или ТРМ) могут быть выведены или определены на стороне декодера на основе трех элементов синтаксиса без использования таблицы соответствия. В одном из вариантов осуществления три элемента синтаксиса могут передаваться в любом порядке для соответствующего блока кодирования.

[0151] В варианте осуществления три элемента синтаксиса включают элемент синтаксиса направления разделения, первый элемент синтаксиса индекса и второй элемент синтаксиса индекса. Элемент синтаксиса направления разделения может использоваться для определения параметра направления разделения. Первый и второй элементы синтаксиса индекса в сочетании могут использоваться для определения параметров первого и второго индексов слияния или ТРМ.

[0152] Для элемента синтаксиса направления разделения, в варианте осуществления, элемент синтаксиса направления разделения принимает значение 0 или 1, чтобы указать, является ли направление разделения направлением от верхнего левого угла до нижнего правого угла или направлением от верхнего правого угла до нижнего левого угла.

[0153] Для первого и второго элементов синтаксиса индекса, в варианте осуществления, первый элемент синтаксиса индекса имеет значение параметра первого индекса слияния, в то время как второй элемент синтаксиса индекса имеет значение второго индекса слияния, когда второй индекс слияния меньше первого индекса слияния, и значение второго индекса слияния минус один, когда второй индекс слияния больше первого индекса слияния (предполагается, что второй и первый индексы слияния принимают разные значения, как описано выше, поэтому второй и первый индексы слияния не совпадают).

[0154] В качестве примера, в одном из вариантов осуществления список кандидатов на слияние содержит 5 кандидатов на слияние. Соответственно, первый элемент синтаксиса индекса принимает значение 0, 1, 2, 3 или 4, в то время как второй элемент синтаксиса индекса принимает значение 0, 1, 2 или 3. Например, в случае, если первый параметр индекса слияния имеет значение 2, а второй параметр индекса слияния имеет значение 4, при передаче первого и второго индекса слияния первый и второй элементы синтаксиса индекса будут иметь значение 2 и 3, соответственно.

[0155] В одном из вариантов осуществления блок кодирования расположен в позиции, имеющей координаты (xCb, yCb) относительно опорной точки на текущем изображении, где xCb и yCb представляют горизонтальные и вертикальные координаты текущего блока кодирования, соответственно. В некоторых вариантах осуществления xCb и yCb выровнены по горизонтальным и вертикальным координатам с гранулярностью 4×4. Соответственно, элемент синтаксиса направления разделения представлен как split_dir[xCb][yCb]. Первый элемент синтаксиса индекса представлен как merge_triangle_idx0[XCB][YCB], а второй элемент синтаксиса индекса представлен как merge_triangle_idx1[ХСВ] [YCB].

[0156] Например, в рабочем проекте VVC 4 (JVET-M1001) синтаксис режима слияния и ТРМ, а также связанная с ними семантика, являются такими, как описаны в таблице 1.

[0157] В таблице 1, если значение merge_triangle_flag[х0][у0] равно 1, это указывает, что для текущего блока кодирования при декодировании группы тайлов для генерации отсчетов предсказания текущего блока кодирования используется компенсация движения на основе треугольной формы. Если значение merge_triangle_flag[х0] [у0] равно 0, это указывает, что единица кодирования не предсказывается компенсацией движения на основе треугольной формы. Если merge_triangle_flag[х0][у0] отсутствует, предполагается, что он равен 0. Кроме того, merge_triangle_split_dir[х0][у0] определяет направление разделения в режиме треугольного слияния. Индексы массива х0, у0 определяют местоположение (х0, у0) отсчета яркости верхнего левого угла блока кодирования относительно отсчета яркости верхнего левого угла изображения. Если merge_triangle_split_dir[х0][у0] отсутствует, предполагается, что он равен 0. Кроме того, merge_triangle_idx0[х0][у0] задает первый индекс кандидата на слияние списка кандидатов компенсации движения на основе треугольной формы, где х0, у0 определяют местоположение (х0, у0) отсчета яркости верхнего левого угла блока кодирования относительно отсчета яркости верхнего левого угла изображения. Если merge_triangle_idx0[х0][у0] отсутствует, предполагается, что он равен 0. Кроме того, merge_triangle_idx1[х0][у0] задает первый индекс кандидата на слияние списка кандидатов компенсации движения на основе треугольной формы, где х0, у0 определяют местоположение (х0, у0) отсчета яркости верхнего левого угла блока кодирования относительно отсчета яркости верхнего левого угла изображения. Если merge_triangle_idx1[х0][у0] отсутствует, предполагается, что он равен 0.

[0158] III. Гибкое максимально допустимое количество кандидатов ТРМ

[0159] Как описано выше, в некоторых примерах список кандидатов ТРМ может включать фиксированное число кандидатов (5) для ТМР. Однако в определенных ситуациях желательно, чтобы максимально допустимое количество кандидатов для ТМР было гибким для достижения лучшего компромисса между сложностью и эффективностью кодирования. Соответственно, в некоторых вариантах осуществления в битовом потоке может быть передано максимально допустимое количество кандидатов ТРМ для кодирования набора блоков с использованием ТРМ. Например, максимально допустимое количество кандидатов ТРМ может быть указано в наборе параметров последовательности (SPS), наборе параметров изображения (PPS), заголовке слайса, заголовке тайла, заголовке группы тайлов и т.п. В некоторых вариантах осуществления максимально допустимое количество кандидатов для ТМР обозначается как MaxNumTriangleMergeCand.

[0160] В варианте осуществления максимально допустимое число кандидатов ТРМ ограничено целым числом от 0 до максимально допустимого числа кандидатов на слияние в режиме слияния. Режим слияния может быть режимом слияния, описанным в разделе II. 1, или расширенным режимом предсказания слияния, описанным в разделе II. 2. Например, в варианте осуществления режим слияния, который обеспечивает основу для ограничения максимально допустимого числа кандидатов ТРМ, может включать следующие типы кандидатов на слияние: (i) Предсказатель вектора пространственного движения (MVP) из соседних пространственных блоков кодирования (CU); (ii) Временной MVP из соответственно расположенных CU; (iii) MVP на основе истории из буфера истории; или (iv) Попарно усредненный MVP, и может не включать аффинных кандидатов на слияние или кандидатов на слияние на основе подблоков.

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

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

[0163] В варианте осуществления для повышения эффективности кодирования передается разность между максимально допустимым числом кандидатов ТРМ и максимально допустимым числом кандидатов режима слияния. Максимально допустимое количество кандидатов режима слияния может быть указано в заголовке группы тайлов. В одном из вариантов осуществления сначала передается максимально допустимое количество кандидатов режима слияния. Затем передается разница между максимально допустимым числом кандидатов режима слияния и максимально допустимым числом кандидатов ТРМ. Максимально допустимое количество кандидатов ТРМ передается только в том случае, если максимально допустимое количество кандидатов режима слияния не меньше 2. В другом варианте осуществления, если не указано максимально допустимое количество кандидатов режима слияния, максимально допустимое количество кандидатов ТРМ определяется как 0. В другом варианте осуществления максимально допустимое количество кандидатов ТРМ не должно превышать максимально допустимое количество кандидатов режима слияния. В другом варианте осуществления максимально допустимое количество кандидатов ТРМ не передается, а устанавливается на максимально допустимое количество кандидатов режима слияния.

[0164] В одном из вариантов осуществления передается значение max_num_merge_cand_minus_max_num_triangle_cand, которое означает максимально допустимое число кандидатов ТРМ, поддерживаемых в группе тайлов, вычтенное из максимально допустимого числа кандидатов режима слияния, указываемого как MaxNumMergeCand. Таким образом, максимально допустимое количество кандидатов ТРМ, MaxNumTriangleMergeCand, может быть определено в соответствии с: MaxNumTriangleMergeCand=MaxNumMergeCand -max_num_merge_cand_minus_max_num_triangle_cand

[0165] В одном из вариантов осуществления значение MaxNumTriangleMergeCand может либо равняться 0, либо быть целым числом от 2 до максимально допустимого числа кандидатов на слияние. В одном из вариантов осуществления, когда max_num_merge_cand_minus_max_num_triangle_cand не сигнализируется, MaxNumTriangleMergeCand определяется как 0. В одном из вариантов осуществления, когда MaxNumTriangleMergeCand равно 0, ТРМ не разрешается использовать для группы тайлов.

[0166] В таблице 2 показан пример передачи синтаксиса в соответствии с приведенным выше вариантом осуществления. В таблице 2 tile_group_header() указывает на начало синтаксической передачи заголовка группы тайлов. Когда sps_triangle_enable_flag имеет значение true (указывает, что ТРМ включен в SPS, который регулирует текущую группу тайлов), и максимально допустимое количество кандидатов режима слияния больше или равно 2, передается элемент синтаксиса max_num_merge_cand_minus_max_num_triangle_cand.

[0167] В одном из вариантов осуществления использование ТРМ может быть ограничено на основе максимально допустимого числа кандидатов ТРМ (указывается как MaxNumTriangleMergeCand), которое передается в заголовке группы тайлов. Например, ТРМ используется только тогда, когда MaxNumTriangleMergeCand>=N. В противном случае ТРМ не следует использовать. В таблице 3 показана иллюстративная таблица синтаксиса в соответствии с приведенным выше вариантом осуществления, где N=2. В таблице 3 флаг треугольника слияния передается только в том случае, если максимальное число кандидатов режима треугольного слияния больше или равно 2. В результате ТРМ используется только в том случае, если максимально допустимое число кандидатов ТРМ больше или равно 2.

[0168] В одном из вариантов осуществления, когда MaxNumTriangleMergeCand больше 0, могут передаваться индексы кандидатов на слияние, которые будут использоваться для режима треугольного слияния (merge_triangle_idx0 и merge_triangle_idx1). Значение merge_triangle_idx0 и merge_triangle_idx 1 может быть обновлено на основе максимально допустимого числа кандидатов ТРМ. Например, максимальное число merge_triangle_idx0 равно максимально допустимому числу кандидатов ТРМ минус один, а максимальное число merge_triangle_idx1 равно максимально допустимому числу кандидатов ТРМ минус два. Бинаризация merge_triangle_idx0 и merge_triangle_idx1 показана в следующей таблице 4.

[0001] На фиг. 18 показана блок-схема операций процесса (1800) согласно варианту осуществления изобретения. Процесс (1800) может использоваться при реконструкции текущего блока, кодированного в режиме интра-блочного копирования, для генерации опорного блока для блока, подлежащего реконструкции. Процесс (1800) выполняется схемой обработки, например, схемой обработки в оконечных устройствах (210), (220), (230) и (240), схемой обработки, которая осуществляет функции видеокодера (303), схемой обработки, которая осуществляет функции видеодекодера (310), схемой обработки, которая осуществляет функции видеодекодера (410), схемой обработки, которая осуществляет функции модуля внутреннего предсказания (452), схемой обработки, которая осуществляет функции видеокодера (503), схемой обработки, которая осуществляет функции предсказателя (535), схемой обработки, которая осуществляет функции внутреннего кодера (622), схемой обработки, которая осуществляет функции внутреннего декодера (772) и т.п. В некоторых вариантах осуществления процесс (1800) реализован в программных инструкциях, таким образом, когда схема обработки выполняет программные инструкции, схема обработки осуществляет процесс (1800). Процесс начинается на этапе (S1801) и переходит к (S1810).

[0002] В (S1810) принимается первый элемент синтаксиса в кодированном битовом видеопотоке. Первый элемент синтаксиса указывает максимально допустимое количество кандидатов на слияние в наборе блоков кодирования в кодированном битовом видеопотоке. Элемент синтаксиса может быть указан в SPS, PPS, заголовке слайса, заголовке тайла, заголовке группы тайлов или т.п. Соответственно, максимально допустимое количество кандидатов ТРМ может быть применено к набору блоков кодирования, управляемых SPS, PPS, заголовком слайса, заголовком тайла или заголовком группы тайлов, соответственно.

[0003] На этапе (S1820) максимально допустимое количество кандидатов режима треугольного предсказания (ТРМ) для набора блоков кодирования устанавливается на основе второго элемента синтаксиса, когда принимается второй элемент синтаксиса, в противном случае максимально допустимое количество кандидатов ТРМ устанавливается на основе первого элемента синтаксиса.

[0004] На этапе (S1830), когда текущий блок кодирования в наборе блоков кодирования кодируется в режиме треугольного предсказания, список кандидатов треугольного предсказания текущего блока кодирования строится на основе числа кандидатов ТРМ, при этом число кандидатов ТРМ в списке кандидатов треугольного предсказания меньше или равно максимально допустимому числу ТРМ. Процесс (1800) переходит к (S1899) и завершается в (S1899).

[0005] V. Компьютерная система

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

[0007] Компьютерное программное обеспечение может кодироваться с использованием любого подходящего машинного кода или компьютерного языка, который может подвергаться ассемблированию, компиляции, редактированию связей или аналогичной обработке для создания кода, содержащего инструкции, которые могут выполняться непосредственно, или посредством интерпретации, выполнения микрокода и т.п., одним или более компьютерными центральными процессорами (CPU, central processing units), графическими процессорами (GPU, Graphics Processing Units) и т.п.

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

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

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

[0011] Входной человеческий интерфейс устройства может включать в себя один или более из (по одному из изображенных): клавиатуры (1901), мыши (1902), сенсорной панели (1903), сенсорного экрана (1910), информационной перчатки (не показана), джойстика (1905), микрофона (1906), сканера (1907), камеры (1908).

[0012] Компьютерная система также может включать в себя некоторые устройства вывода интерфейса с человеком. Такие устройства вывода могут стимулировать органы чувств одного или более пользователей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода могут включать в себя устройства тактильного вывода (например, тактильной обратной связи посредством сенсорного экрана (1910), информационной перчатки (не показана) или джойстика (1905), но также могут быть устройствами тактильной обратной связи, которые не служат устройствами ввода), устройства вывода аудио (например, громкоговорители (1909), наушники (не показаны)), устройства визуального вывода (например, экраны (1910), в том числе CRT-экраны, LCD-экраны, плазменные экраны, OLED-экраны, каждый с возможностями сенсорного экранного ввода или без них, каждый с возможностями тактильной обратной связи или без них, некоторые из которых способны к двухмерному визуальному выводу или более чем трехмерному выводу посредством, например, стереографического вывода; очков виртуальной реальности (не показаны), голографических дисплеев и дымовых баков (не показаны)) и принтеров (не показаны).

[0013] Компьютерная система также может включать в себя доступные человеку запоминающие устройства и связанные с ними носители, например, оптические носители, включающие в себя CD/DVD ROM/RW (1920) с носителями (1921) CD/DVD и т.п., карты (1922) флэш-памяти, сменный жесткий диск или твердотельный диск (1923), традиционные магнитные носители, например, ленту и флоппи-диск (не показан), специализированные устройства на основе ROM/ASIC/PLD, например, защитные аппаратные ключи (не показаны) и т.п.

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

[0015] Компьютерная система также может включать в себя интерфейс к одной или более сетям связи. Сети могут, например, быть беспроводными, проводными, оптическими. Сети могут быть, дополнительно, локальными, глобальными, городскими, транспортными и промышленными, реального времени, допускающими задержку и т.д. Примеры сетей включают в себя локальные сети, например, Ethernet, беспроводные LAN, сотовые сети, в том числе GSM, 3G, 4G, 5G, LTE и т.п., глобальные цифровые сети проводного или беспроводного телевидения, в том числе кабельное телевидение, спутниковое телевидение и наземное телевещание, транспортные и промышленные включают в себя CANBus и т.д. Некоторые сети обычно требуют внешних адаптеров сетевого интерфейса, которые подключены к некоторым портам данных общего назначения или периферийным шинам (1949) (например, USB-порты компьютерной системы); другие обычно встраиваются в ядро компьютерной системы путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему PC или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система может взаимодействовать с другими объектами. Такая связь может быть однонаправленной с возможностью только приема (например, телевещания), однонаправленной с возможностью только передачи (например, CANbus к некоторым устройствам CANbus) или двунаправленной, например, к другим компьютерным системам с использованием локальной или глобальной цифровой сети. Некоторые протоколы и стеки протоколов могут использоваться в каждой из этих сетей и вышеописанных сетевых интерфейсов.

[0016] Вышеупомянутые устройства человеческого интерфейса, доступные человеку запоминающие устройства и сетевые интерфейсы могут подключаться к ядру (1940) компьютерной системы.

[0017] Ядро (1940) может включать один или несколько центральных процессоров (CPU) (1941), графические процессоры (GPU) (1942), специализированные программируемые модули обработки в форме вентильных матриц, программируемых пользователем (FPGA, Field Programmable Gate Arrays) (1943), аппаратные ускорители (1944) для некоторых задач и т.д. Эти устройства, совместно с постоянной памятью (ROM) (1945), оперативной памятью (1946), внутренним хранилищем данных большой емкости, например, внутренними жесткими дисками, недоступными пользователю, SSD и т.п.(1947), могут соединяться посредством системной шины (1948). В некоторых компьютерных системах системная шина (1948) может быть доступна в форме одного или более физических разъемов для обеспечения расширений за счет дополнительных CPU, GPU и т.п. Периферийные устройства могут подключаться либо непосредственно к системной шине (1948) ядра, либо через периферийную шину (1949). Архитектуры периферийной шины включают в себя PCI, USB и т.п.

[0018] CPU (1941), GPU (1942), FPGA (1943) и ускорители (1944) могут выполнять некоторые инструкции, которые совместно могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ROM (1945) или RAM (1946). Переходные данные также могут храниться в оперативной памяти (1946), тогда как постоянные данные могут храниться, например, во внутреннем накопителе (1947). Быстрое сохранение и извлечение из любого запоминающего устройства может обеспечиваться за счет использования кэш-памяти, которая может быть тесно связана с один или более CPU (1941), GPU (1942), хранилищем (1947) данных большой емкости, ROM (1545), RAM (1946) и т.п.

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

[0020] В порядке примера, но не ограничения, компьютерная система, имеющая архитектуру (1900), и, в частности, ядро (1940) может обеспечивать функциональные возможности благодаря выполнению процессором(ами) (включающим(и) в себя CPU, GPU, FPGA, ускорители и т.п.) программного обеспечения, воплощенного в одном или более материальных компьютерно-считываемых носителей. Такие компьютерно-считываемые носители могут быть носителями, связанными с доступным пользователю хранилищем данных большой емкости, представленным выше, а также некоторым хранилищем ядра (1940), носящим долговременный характер, например, внутренним хранилищем (1947) данных большой емкости или ROM (1945). Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром (1940). Компьютерно-считываемый носитель может включать в себя одно или более запоминающих устройств или микросхем, в соответствии с конкретными нуждами. Программное обеспечение может предписывать ядру (1940) и, в частности, его процессорам (включая CPU, GPU, FPGA и т.п.) выполнять конкретные процессы или конкретные части описанных здесь конкретных процессов, включая задание структур данных, хранящихся в RAM (1946), и модификацию таких структур данных согласно процессам, заданным программным обеспечением. Дополнительно или альтернативно, компьютерная система может обеспечивать функциональные возможности благодаря логике, зашитой или иным образом воплощенной в схеме (например, ускоритель (1944)), который может действовать вместо или совместно с программным обеспечением для выполнения конкретных процессов или конкретных частей описанных здесь конкретных процессов. Ссылка на программное обеспечение может охватывать логику, и наоборот, где это уместно. Ссылка на компьютерно-считываемые носители может охватывать схему (например, интегральную схему (IC, integrated circuit)), где хранится программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или обе из них, когда это уместно. Настоящее изобретение охватывает любую подходящую комбинацию оборудования и программного обеспечения.

Приложение А: Сокращения

JEM: модель совместного исследования

VVC: универсальное видеокодирование

BMS: набор эталонов

MV: вектор движения

HEVC: высокоэффективное видеокодирование

SEI: информация дополнительного улучшения

VUI: информация о пригодности видео

GOP: группы изображений

TU: единица преобразования,

PU: единица предсказания

CTU: единица дерева кодирования

СТВ: блок дерева кодирования

РВ: блок предсказания

HRD: гипотетический эталонный декодер

SNR: соотношение сигнал шум

CPU: центральный процессор

GPU: графический процессор

CRT: электронно-лучевая трубка

LCD: жидкокристаллический дисплей

OLED: органический светодиод

CD: компакт-диск

DVD: цифровой видеодиск

ROM: постоянная память

RAM: оперативная память

ASIC: специализированная интегральная схема

PLD: программируемое логическое устройство

LAN: локальная сеть

GSM: глобальная система мобильной связи

LTE: проект долгосрочного развития систем связи

CANBus: шина контроллерной сети

USB: универсальная последовательная шина

PCI: межсоединение периферийных компонентов

FPGA: вентильные матрицы, программируемые пользователем

SSD: твердотельный накопитель

IC: интегральная схема

CU: единица кодирования

HMVP: MVP на основе истории

MVP: предсказатель вектора движения

TMVP: временной MVP

ТРМ: треугольный режим предсказания

VTM: универсальная испытательная модель

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

1. Способ декодирования видео в декодере, содержащий:

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

задание максимально допустимого числа кандидатов режима треугольного предсказания (ТРМ) для набора блоков кодирования на основе второго элемента синтаксиса, если принят второй элемент синтаксиса, а в противном случае задание максимально допустимого числа кандидатов ТРМ на основе первого элемента синтаксиса; и

если текущий блок кодирования в наборе блоков кодирования кодирован в режиме треугольного предсказания, построение списка кандидатов треугольного предсказания для текущего блока кодирования на основе некоторого числа кандидатов ТРМ, причем упомянутое число кандидатов ТРМ в списке кандидатов треугольного предсказания меньше или равно максимально допустимому числу кандидатов ТРМ.

2. Способ по п. 1, дополнительно включающий:

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

3. Способ по п. 1, в котором максимально допустимое число кандидатов ТРМ устанавливают равным 0, когда второй элемент синтаксиса не принят.

4. Способ по п. 1, дополнительно включающий:

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

определение максимально допустимого числа кандидатов ТРМ на основе первого элемента синтаксиса и третьего элемента синтаксиса.

5. Способ по п. 4, в котором

максимально допустимое число кандидатов ТРМ определяют путем вычитания разности между максимально допустимым числом кандидатов на слияние и максимально допустимым числом кандидатов ТРМ из максимально допустимого числа кандидатов на слияние.

6. Способ по п. 1, в котором максимально допустимое число кандидатов ТРМ меньше или равно максимально допустимому числу кандидатов на слияние.

7. Способ по п. 1, в котором максимально допустимое число кандидатов ТРМ задают равным максимально допустимому числу кандидатов на слияние, когда второй элемент синтаксиса не принят.

8. Способ по п. 4, в котором максимально допустимое число кандидатов ТРМ либо равно 0, либо является целым числом от 2 до максимально допустимого числа кандидатов на слияние.

9. Способ по п. 1, в котором максимально допустимое число кандидатов ТРМ определяют равным 0, и режим треугольного предсказания не применяют к набору блоков кодирования, когда третий элемент синтаксиса, указывающий разность между максимально допустимым числом кандидатов на слияние и максимально допустимым числом кандидатов ТРМ, не принят.

10. Способ по п. 1, в котором текущий блок кодирования кодирован в режиме ТРМ только тогда, когда максимально допустимое число кандидатов ТРМ больше или равно заданному числу N, где N - положительное целое число.

11. Способ по п. 1, дополнительно включающий:

если максимально допустимое число кандидатов ТРМ превышает 0, прием четвертого элемента синтаксиса, который указывает первый индекс списка кандидатов треугольного предсказания, и пятого элемента синтаксиса, который указывает второй индекс списка кандидатов треугольного предсказания, при этом

максимальное значение первого индекса равно максимально допустимому числу кандидатов ТРМ минус один, и

максимальное значение второго индекса равно максимально допустимому числу кандидатов ТРМ минус два.

12. Устройство для декодирования видео, содержащее:

схему обработки, выполненную с возможностью:

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

задания максимально допустимого числа кандидатов режима треугольного предсказания (ТРМ) для набора блоков кодирования на основе второго элемента синтаксиса, если принят второй элемент синтаксиса, а в противном случае задания максимально допустимого числа кандидатов ТРМ на основе первого элемента синтаксиса; и

если текущий блок кодирования в наборе блоков кодирования кодирован в режиме треугольного предсказания, построения списка кандидатов треугольного предсказания текущего блока кодирования на основе некоторого числа кандидатов ТРМ, причем упомянутое число кандидатов ТРМ в списке кандидатов треугольного предсказания меньше или равно максимально допустимому числу кандидатов ТРМ.

13. Устройство по п. 12, в котором схема обработки дополнительно выполнена с возможностью приема второго элемента синтаксиса только тогда, когда первый элемент синтаксиса указывает, что максимально допустимое число кандидатов на слияние больше или равно 2.

14. Устройство по п. 12, в котором максимально допустимое число кандидатов ТРМ задается равным 0, когда второй элемент синтаксиса не принят.

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

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

определения максимально допустимого числа кандидатов ТРМ на основе первого элемента синтаксиса и третьего элемента синтаксиса.

16. Устройство по п. 15, в котором максимально допустимое число кандидатов ТРМ определяется путем вычитания разности между максимально допустимым числом кандидатов на слияние и максимально допустимым числом кандидатов ТРМ из максимально допустимого числа кандидатов на слияние.

17. Устройство по п. 15, в котором максимально допустимое число кандидатов ТРМ либо равно 0, либо является целым числом от 2 до максимально допустимого числа кандидатов на слияние.

18. Устройство по п. 12, в котором максимально допустимое число кандидатов ТРМ определяется равным 0, и режим треугольного предсказания не применяется к набору блоков кодирования, когда не принят третий элемент синтаксиса, указывающий разность между максимально допустимым числом кандидатов на слияние и максимально допустимым числом кандидатов ТРМ.

19. Устройство по п. 12, в котором, когда максимально допустимое число кандидатов ТРМ больше 0,

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

максимальное значение первого индекса равно максимально допустимому числу кандидатов ТРМ минус один, и

максимальное значение второго индекса равно максимально допустимому числу кандидатов ТРМ минус два.

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

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

задание максимально допустимого числа кандидатов режима треугольного предсказания (ТРМ) для набора блоков кодирования на основе второго элемента синтаксиса, если принят второй элемент синтаксиса, а в противном случае задание максимально допустимого числа кандидатов ТРМ на основе первого элемента синтаксиса; и

если текущий блок кодирования в наборе блоков кодирования кодирован в режиме треугольного предсказания, построение списка кандидатов треугольного предсказания для текущего блока кодирования на основе некоторого числа кандидатов ТРМ, причем упомянутое число кандидатов ТРМ в списке кандидатов треугольного предсказания меньше или равно максимально допустимому числу кандидатов ТРМ.



 

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

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

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

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

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

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

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

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

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

Изобретение относится к устройству для передачи информации о возможностях переключения точки обзора в приложении виртуальной реальности с охватом 360° (VR360, Virtual Reality 360). Техническим результатом является повышение эффективности передачи и использования информации о возможностях переключения точки обзора в VR360.

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