Включение посредством ссылки
[1] Настоящая заявка испрашивает приоритет по патентной заявке США №17/097 415 «СПОСОБ И УСТРОЙСТВО ДЛЯ РЕЖИМА КОДИРОВАНИЯ НА ОСНОВЕ ПАЛИТРЫ ПОД ЛОКАЛЬНОЙ ДВОЙСТВЕННОЙ СТРУКТУРОЙ ДЕРЕВА», поданной 13 ноября 2020 г., в которой испрашивался приоритет по предварительной заявке США №62/963,216, "УПРОЩЕННОЕ КОДИРОВАНИЕ ПАЛИТРЫ С ЛОКАЛЬНОЙ СТРУКТУРОЙ КОДИРОВАНИЯ ДВОЙСТВЕННОГО ДЕРЕВА" поданной 20 января 2020. Полное раскрытие предшествующих заявок полностью включено в настоящее описание посредством ссылки.
Область техники, к которой относится изобретение
[2] Настоящее раскрытие описывает варианты осуществления, в основном относящиеся к кодированию видео.
Уровень техники
[3] Описание уровня техники, представленное в данном документе, предназначено для общего представления контекста раскрытия. Работа названных здесь изобретателей, в той мере, в какой она описана в этом разделе описания уровня техники, и аспекты описания, которые в противном случае не могут считаться предшествующим уровнем техники на момент подачи заявки, ни прямо, ни косвенно не признаются в качестве предшествующего уровня техники в отношении настоящего раскрытия.
[4] Кодирование и декодирование видео могут выполняться с использованием интер-кадрового предсказания с компенсацией движения. Несжатое цифровое видео может включать в себя серию изображений, при этом каждое изображение имеет пространственный размер, например, 1920×1080 отсчетов сигнала яркости и связанных отсчетов сигнала цветности. Серия изображений может иметь фиксированную или переменную частоту изображений (неофициально также известную как частота кадров), например, 60 изображений в секунду или 60 Гц. Несжатое видео имеет определенные требования к битрейту. Например, для видео 1080р60 4:2:0 с частотой 8 бит на отсчет (разрешение 1920×1080 отсчетов яркости при частоте кадров 60 Гц) требуется полоса пропускания, близкая к 1,5 Гбит/с. Час такого видео требует более 600 ГБ дискового пространства.
[5] Одной из целей кодирования и декодирования видео может быть уменьшение избыточности входного видеосигнала посредством сжатия. Сжатие может помочь снизить вышеупомянутые требования к пропускной способности и/или пространству памяти, в некоторых случаях на два порядка или более. Могут использоваться как сжатие без потерь, так и сжатие с потерями, а также их комбинация. Сжатие без потерь относится к методам, при которых из сжатого исходного сигнала может быть восстановлена точная копия исходного сигнала. При использовании сжатия с потерями восстановленный сигнал может не быть идентичным исходному сигналу, но искажение между исходным и восстановленным сигналами достаточно мало, чтобы сделать восстановленный сигнал полезным для предполагаемого применения. В случае видео широко применяется сжатие с потерями. Допустимая степень искажения зависит от приложения; например, пользователи определенных потребительских приложений потоковой передачи могут допускать более высокие искажения, чем пользователи приложений распределения телевидения. Достижимая степень сжатия может отражать следующее: более высокое разрешаемое/допустимое искажение может привести к более высокой степени сжатия.
[6] Видеокодер и видеодекодер могут использовать методы из нескольких широких категорий, включая, например, компенсацию движения, преобразование, квантование и энтропийное кодирование.
[7] Технологии видеокодеков могут включать в себя методы, известные как интра-кодирование. При интра-кодировании значения отсчетов представлены без ссылки на отсчеты или другие данные из ранее восстановленных опорных изображений. В некоторых видеокодеках изображение пространственно разделяется на блоки отсчетов. Когда все блоки отсчетов кодируются в интра-режиме, это изображение может быть интра-изображением. Интра-изображения и их производные, такие как изображения обновления независимого декодера, могут использоваться для сброса состояния декодера и, следовательно, могут использоваться в качестве первого изображения в кодированном потоке битов видео и сеанса видео или как неподвижное изображение. Осчеты интра-блока могут подвергаться преобразованию, а коэффициенты преобразования могут квантоваться перед энтропийным кодированием. Интра-предсказание может быть методом, который минимизирует значения отсчетов в области до преобразования. В некоторых случаях, чем меньше значение DC после преобразования и чем меньше коэффициенты АС, тем меньше битов требуется при заданном размере шага квантования для представления блока после энтропийного кодирования.
[8] Традиционное интра-кодирование, известное, например, из технологий кодирования поколения MPEG-2, не использует интра-предсказание. Однако некоторые новые технологии сжатия видео включают в себя методы, которые пытаются, например, из окружающих данных отсчетов и/или метаданных, полученных во время кодирования/декодирования пространственно соседних и предшествующих в порядке декодирования блоков данных. Такие методы в дальнейшем называются методами «интра-предсказания». Следует обратить внимание, что по меньшей мере в некоторых случаях интра-предсказание использует опорные данные только из текущего восстанавливаемого изображения, а не из опорных изображений.
[9] Может быть много разных форм интра-предсказания. Когда в данной технологии кодирования видео можно использовать более одного из таких методов, используемый метод может быть закодирован в режиме интра-предсказания. В некоторых случаях режимы могут иметь подрежимы и/или параметры, и они могут быть закодированы индивидуально или включены в кодовое слово режима. Выбор, какое кодовое слово использовать для данной комбинации режима/подрежима/параметра, может повлиять на повышение эффективности кодирования за счет интра-предсказания, как и технология энтропийного кодирования, используемая для преобразования кодовых слов в поток битов.
[10] Определенный режим интра-предсказания был введен в Н.264, усовершенствован в Н.265 и дополнительно усовершенствован в новых технологиях кодирования, таких как совместная модель исследования (JEM), универсальное кодирование видео (VVC) и набор тестов (BMS). Блок предиктора может быть сформирован с использованием значений соседних отсчетов, принадлежащих уже доступным отсчетам. Значения отсчетов соседних отсчетов копируются в блок предсказания в соответствии с направлением. Ссылка на используемое направление может быть закодирована в потоке битов или сама может быть предсказана.
[11] На фиг. 1 в правом нижнем углу изображено подмножество девяти направлений предсказания, известных из 33 возможных направлений предсказания Н.265 (соответствующих 33 угловым режимам из 35 интра-режимов). Точка, где сходятся стрелки (101), представляет собой предсказываемый отсчет. Стрелки указывают направление, в котором предсказывается отсчет. Например, стрелка (102) указывает, что отсчет (101) предсказывается на основе отсчета или отсчетов в правом верхнем углу под углом 45 градусов от горизонтали. Аналогично, стрелка (103) указывает, что отсчет (101) предсказывается из отсчета или отсчетов в нижнем левом углу отсчета (101) под углом 22,5 градуса от горизонтали.
[12] В верхнем левом углу фиг. 1 изображен квадратный блок (104) из 4x4 отсчетов (обозначен пунктирной жирной линией). Квадратный блок (104) включает в себя 16 отсчетов, каждый из которых помечен буквой «S», его положение в измерении Y (например, индекс строки) и его положение в измерении X (например, индекс столбца). Например, отсчет S21 - это второй отсчет в измерении Y (сверху) и первый (слева) отсчет в измерении X. Аналогично, отсчет S44 является четвертым отсчетом в блоке (104) как по Y, так и по X измерениям. Поскольку размер блока 4x4 отсчета, S44 находится внизу справа. Далее показаны опорные отсчеты, которые следуют аналогичной схеме нумерации. Опорный отсчет помечается буквой R, его положением Y (например, индекс строки) и положением X (индекс столбца) относительно блока (104). И в Н.264, и в Н.265 отсчеты предсказания соседствуют с восстанавливаемым блоком; поэтому нет необходимости использовать отрицательные значения.
[13] Интра-предсказание изображения может работать путем копирования значений опорных отсчетов из соседних отсчетов в соответствии с сигнальным направлением предсказания. Например, предположим, что кодированный поток битов видео включает в себя сигнализацию, которая для этого блока указывает направление предсказания, соответствующее стрелке (102), то есть отсчеты предсказываются из отсчета предсказания или отсчетов в правом верхнем углу под углом 45 градусов от горизонтали. В этом случае отсчеты S41, S32, S23 и S14 предсказываются на основе одного и того же опорного отсчета R05. Отсчет S44 затем предсказывается на основе опорного отсчета R08.
[14] В некоторых случаях значения нескольких опорных отсчетов могут быть объединены, например, посредством интерполяции, чтобы вычислить опорный отсчет; особенно когда направления не делятся на 45 градусов без остатка.
[15] Количество возможных направлений увеличивалось по мере развития технологии кодирования видео. В Н.264 (2003 год) может быть представлено девять различных направлений. Это число увеличилось до 33 в Н.265 (2013 год), а JEM/VVC/BMS на момент данного раскрытия может поддерживать до 65 направлений. Были проведены эксперименты для определения наиболее вероятных направлений, и определенные методы энтропийного кодирования используются для представления этих вероятных направлений в небольшом количестве битов, принимая определенный штраф за менее вероятные направления. Кроме того, сами направления иногда могут быть предсказаны из соседних направлений, используемых в соседних, уже декодированных блоках.
[16] Фиг. 2 иллюстрирует схему (201), которая изображает 65 направлений интра-предсказания согласно JEM, чтобы проиллюстрировать увеличивающееся количество направлений предсказания с течением времени.
[17] Отображение битов направлений интра-предсказания в кодированном битовом потоке видео, которые представляют направление, может отличаться от технологии кодирования видео к технологии кодирования видео; и может варьироваться, например, от простых прямых отображений направления предсказания в режим интра-предсказания, в кодовые слова, в сложные адаптивные схемы, включающие наиболее вероятные режимы, и аналогичные методы. Однако во всех случаях могут быть определенные направления, которые статистически менее вероятны в видеоконтенте, чем некоторые другие направления. Поскольку целью сжатия видео является уменьшение избыточности, эти менее вероятные направления в хорошо работающей технологии кодирования видео будут представлены большим числом битов, чем более вероятные направления.
Раскрытие сущности изобретения
[18] Аспекты раскрытия относятся к способам и устройствам для кодирования/декодирования видео. В некоторых примерах устройство для декодирования видео включает в себя схему приема и схему обработки. Например, схема обработки декодирует информацию предсказания блока из кодированного битового потока видео, определяет, разрешить ли режим кодирования на основе палитры для блока, на основе сравнения размера блока с пороговым значением, и определяет, находится ли блок под структурой локального двойственного дерева на основе информации предсказания. Кроме того, схема обработки декодирует блок на основе определения, разрешить ли режим кодирования на основе палитры для блока, и определения, находится ли блок под структурой локального двойственного дерева.
[19] В некоторых вариантах осуществления схема обработки запрещает режим кодирования на основе палитры для блока в ответ на то, что размер блока меньше порогового значения. В некоторых примерах пороговое значение определяется так, чтобы запретить структуру локального двойственного дерева в ответ на блок, превышающий пороговое значение. В одном примере схема обработки запрещает режим кодирования на основе палитры для блока в ответ на то, что блок является блоком цветности и размер блока цветности меньше порогового значения. В некоторых примерах схема обработки запрещает режим кодирования на основе палитры для блока на основе комбинации типа режима и типа дерева блока, которая указывает, что блок является блоком цветности под структурой локального двойственного дерева.
[20] В некоторых вариантах осуществления, в ответ на разрешение режима кодирования на основе палитры, схема обработки декодирует из кодированного битового потока видео флаг, указывающий, используется ли в блоке режим кодирования на основе палитры, и декодирует блок с использованием режима кодирования на основе палитры в ответ на флаг, указывающий на использование в блоке режима кодирования на основе палитры. Кроме того, в некоторых примерах, в ответ на то, что блок находится под структурой локального двойственного дерева, схема обработки пропускает обновление списка предикторов палитры. В одном примере схема обработки обновляет, в ответ на отсутствие инициирования структуры локального двойственного дерева, список предикторов палитры на основе палитры, используемой в декодировании блока.
[21] В некоторых других вариантах осуществления, в ответ на разрешение режима кодирования на основе палитры, схема обработки декодирует из кодированного битового потока видео флаг, указывающий, используется ли в блоке режим кодирования на основе палитры, и декодирует блок на основе палитры, имеющий уменьшенный максимальный размер, в ответ на флаг, указывающий на использование режима кодирования на основе палитры для блока и на то, что блок находится под структурой локального двойственного дерева. Кроме того, схема обработки может обновлять список предикторов палитры на основе палитры, используемой в декодировании блока, и размер списка предикторов палитры ограничивается уменьшенным максимальным размером.
[22] Аспекты раскрытия также относятся к невременному машиночитаемому носителю, на котором хранятся инструкции, которые при исполнении компьютером для декодирования видео побуждают компьютер выполнять способ декодирования видео.
Краткое описание чертежей
[23] Дополнительные признаки, сущность и различные преимущества раскрытого объекта раскрытия будут более понятны из следующего подробного описания и прилагаемых чертежей, на которых изображено следующее:
[24] На фиг. 1 показана схематическая иллюстрация примерного подмножества режимов интра-предсказания.
[25] На фиг. 2 показана иллюстрация примерных направлений интра-предсказания.
[26] На фиг. З показана схематическая иллюстрация упрощенной блок-схемы системы (300) связи в соответствии с вариантом осуществления;
[27] Фиг. 4 - схематическая иллюстрация упрощенной блок-схемы системы (400) связи в соответствии с вариантом осуществления.
[28] На фиг. 5 показана схематическая иллюстрация упрощенной блок-схемы декодера в соответствии с вариантом осуществления.
[29] На фиг. 6 показана схематическая иллюстрация упрощенной блок-схемы кодера в соответствии с вариантом осуществления.
[30] На фиг. 7 показана блок-схема кодера в соответствии с другим вариантом осуществления.
[31] На фиг. 8 показана блок-схема декодера в соответствии с другим вариантом осуществления;
[32] На фиг. 9 показан пример синтаксиса для обновления списка предсказаний палитры в некоторых примерах.
[33] На фиг. 10 показан пример синтаксиса для определения в битовом потоке существования флага режима палитры в некоторых примерах.
[34] На фиг. 11 показана блок-схема, описывающая пример процесса согласно некоторым вариантам осуществления раскрытия.
[35] На фиг. 12 показана схематическая иллюстрация компьютерной системы в соответствии с одним вариантом осуществления. Осуществление изобретения
[36] На фиг. 3 проиллюстрирована упрощенная блок-схема системы (300) связи согласно варианту осуществления настоящего раскрытия. Коммуникационная система (300) включает в себя множество терминальных устройств, которые могут коммуницировать друг с другом, например, через сеть (350). Например, система (300) связи включает в себя первую пару оконечных устройств (410) и (3320), соединенных между собой через сеть (350). В примере с фиг. 3 первая пара оконечных устройств (3410) и (320) выполняет однонаправленную передачу данных. Например, оконечное устройство (310) может кодировать видеоданные (например, поток видеоизображений, которые захватываются оконечным устройством (310)) для передачи другому оконечному устройству (320) через сеть (350). Кодированные видеоданные могут быть переданы в форме одного или более кодированных битовых потоков видео. Оконечное устройство (320) может принимать кодированные видеоданные из сети (350), декодировать кодированные видеоданные для восстановления видеоизображений и отображать видеоизображения в соответствии с восстановленными видеоданными. Однонаправленная передача данных может быть обычным явлением в приложениях обслуживания мультимедиа и т.п.
[37] В другом примере система (300) связи включает в себя вторую пару оконечных устройств (330) и (340), которые выполняют двунаправленную передачу кодированных видеоданных, которая может происходить, например, во время видеоконференц-связи. Для двунаправленной передачи данных, в примере, каждое оконечное устройство из оконечных устройств (330) и (340) может кодировать видеоданные (например, поток видеоизображений, которые захватываются оконечным устройством) для передачи на другое оконечное устройство из оконечных устройств (330) и (340) через сеть (350). Каждое оконечное устройство из оконечных устройств (330) и (340) также может принимать кодированные видеоданные, переданные другим оконечным устройством из оконечных устройств (330) и (340), и может декодировать кодированные видеоданные для восстановления видеоизображений и может отображать видеоизображения на доступном устройстве отображения в соответствии с восстановленными видеоданными.
[38] В примере с фиг. 3 оконечные устройства (310), (320), (330) и (340) могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны, но принципы настоящего раскрытия не могут быть ограничены этим. Варианты осуществления настоящего раскрытия находят применение в портативных компьютерах, планшетных компьютерах, медиаплеерах и/или специализированном оборудовании для видеоконференц-связи. Сеть (350) представляет собой любое количество сетей, которые передают кодированные видеоданные между оконечными устройствами (310), (320), (330) и (340), включая, например, проводные (соединенные проводами) и/или беспроводные сети связи. Сеть (350) связи может обмениваться данными в каналах с коммутацией каналов и/или с коммутацией пакетов. Характерные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или Интернет. Для целей настоящего описания архитектура и топология сети (350) могут быть несущественными для работы настоящего раскрытия, если это не объясняется в данном документе ниже.
[39] На фиг. 4 проиллюстрировано, в качестве примера применения для раскрытого объекта раскрытия, размещение видеокодера и видеодекодера в среде потоковой передачи. Раскрытый объект раскрытия может быть в равной степени применим к другим приложениям с поддержкой видео, включая, например, видеоконференц-связь, цифровое телевидение, хранение сжатого видео на цифровых носителях, включая CD, DVD, карту памяти и т.п., и так далее.
[40] Система потоковой передачи может включать в себя подсистему (413) захвата, которая может включать в себя источник (401) видео, например цифровую камеру, создающий, например, поток видеоизображений (402), которые не сжаты. В примере поток видеоизображений (402) включает в себя отсчеты, снятые цифровой камерой. Поток видеоизображений (402), изображенный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с кодированными видеоданными (404) (или кодированными битовыми потоками видео), может обрабатываться электронным устройством (420), которое включает в себя видео кодер (403), подключенный к источнику (401) видео. Кодер (403) видео может включать в себя аппаратное обеспечение, программное обеспечение или их комбинацию для включения или реализации аспектов раскрытого объекта раскрытия, как более подробно описано ниже. Кодированные видеоданные (404) (или кодированный битовый поток видео (404)), изображенные тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком видеоизображений (402), могут быть сохранены на сервере потоковой передачи (405) для будущего использования. Одна или более клиентских подсистем потоковой передачи, таких как клиентские подсистемы (406) и (408) на фиг. 4, могут получить доступ к потоковому серверу (405) для извлечения копий (407) и (409) кодированных видеоданных (404). Клиентская подсистема (406) может включать в себя видеодекодер (410), например, в электронном устройстве (430). Видеодекодер (410) декодирует входящую копию (407) кодированных видеоданных и создает исходящий поток видеоизображений (411), которые могут быть визуализированы на дисплее (412) (например, экране дисплея) или другом устройстве визуализации (не показано). В некоторых системах потоковой передачи кодированные видеоданные (404), (407) и (409) (например, битовые потоки видео) могут кодироваться в соответствии с определенными стандартами кодирования/сжатия видео. Примеры этих стандартов включают Рекомендацию МСЭ-Т Н.265. В одном примере разрабатываемый стандарт кодирования видео неофициально известен как универсальное кодирование видео (VVC). Раскрытый объект раскрытия может использоваться в контексте VVC.
[41] Следует отметить, что электронные устройства (420) и (430) могут включать в себя другие компоненты (не показаны). Например, электронное устройство (420) может включать в себя видеодекодер (не показан), а электронное устройство (430) также может включать в себя видео кодер (не показан).
[42] На фиг. 5 показана блок-схема видеодекодера (510) согласно варианту осуществления настоящего раскрытия. Видеодекодер (510) может быть включен в электронное устройство (530). Электронное устройство (530) может включать в себя приемник (531) (например, приемную схему). Видеодекодер (510) может использоваться вместо видеодекодера (410) в примере с фиг. 4.
[43] Приемник (531) может принимать одну или более кодированных видеопоследовательностей, которые должны быть декодированы видеодекодером (510); в том же или другом варианте осуществления - по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может быть принята из канала (501), который может быть аппаратным/программным соединением с устройством хранения, в котором хранятся кодированные видеоданные. Приемник (531) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или потоками вспомогательных данных, которые могут быть отправлены их соответствующим использующим объектам (не изображены). Приемник (531) может отделять кодированную видеопоследовательность от других данных. Для борьбы с сетевым шумом буферная память (515) может быть подключена между приемником (531) и энтропийным декодером/анализатором (520) (далее «синтаксический анализатор (520)»). В некоторых приложениях буферная память (515) является частью видеодекодера (510). В других случаях она может находиться снаружи видеодекодера (510) (не показано). В других случаях может иметься буферная память (не изображена) снаружи видеодекодера (510), например, для борьбы с дрожанием сети, и, кроме того, другая буферная память (515) внутри видеодекодера (510), например, для обработки времени воспроизведения. Когда приемник (531) принимает данные от устройства хранения/пересылки с достаточной полосой пропускания и управляемостью или из изосинхронной сети, буферная память (515) может не понадобиться или может быть небольшой. Для использования в пакетных сетях наилучшего качества, таких как Интернет, может потребоваться буферная память (515), которая может быть сравнительно большой и может быть предпочтительно адаптивного размера, и может по меньшей мере частично быть реализована в операционной системе или аналогичных элементах (не изображены) снаружи видеодекодера (510).
[44] Видеодекодер (510) может включать в себя парсер (520) для восстановления символов (521) из кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой видеодекодера (510), и потенциально информацию для управления устройством визуализации, таким как устройство визуализации (512) (например, экран дисплея), которое не является неотъемлемой частью электронного устройство (530), но может быть подключено к электронному устройству (530), как показано на фиг. 5. Управляющая информация для устройства (устройств) визуализации может быть в форме фрагментов набора параметров дополнительной расширенной информации (сообщения SEI) или информации о пригодности видео (VUI) (не изображены). Синтаксический анализатор (520) может анализировать/энтропийно декодировать полученную кодированную видеопоследовательность. Кодирование закодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом видео кодирования и может следовать различным принципам, включая кодирование переменной длины, кодирование Хаффмана, арифметическое кодирование с контекстной чувствительностью или без нее и так далее. Синтаксический анализатор (520) может извлекать из кодированной видеопоследовательности набор параметров подгруппы по меньшей мере для одной из подгрупп пикселей в видеодекодере на основе по меньшей мере одного параметра, соответствующего группе. Субгруппы могут включать в себя группы изображений (GOP), изображения, тайлы, слайсы, макроблоки, единицы кодирования (CU), блоки, единицы преобразования (TU), единицы предсказания (PU) и так далее. Синтаксический анализатор (520) также может извлекать из кодированной видеопоследовательности информацию, такую как коэффициенты преобразования, значения параметров квантователя, векторы движения и так далее.
[45] Синтаксический анализатор (520) может выполнять операцию энтропийного декодирования/синтаксического анализа видеопоследовательности, полученной из буферной памяти (515), чтобы создавать символы (521).
[46] Восстановление символов (521) может задействовать множество различных модулей в зависимости от типа кодированного видеоизображения или его частей (таких как: интер и интра изображение, интер и интра блок) и других факторов. Какие модули задействованы и как, можно контролировать с помощью управляющей информации субгруппы, синтаксический анализ которой был выполнен из кодированной видеопоследовательности с помощью синтаксического анализатора (520). Поток такой информации управления подгруппой между синтаксическим анализатором (520) и множеством модулей ниже не показан для ясности.
[47] Помимо уже упомянутых функциональных блоков, видеодекодер (510) может быть концептуально подразделен на ряд функциональных модулей, как описано ниже. В практическом осуществлении, работающем в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут быть, по меньшей мере частично, интегрированы друг в друга. Однако для целей описания раскрытого объекта раскрытия уместно концептуальное подразделение на функциональные модули, приведенные ниже.
[48] Первым модулем является модуль (551) масштабирования/обратного преобразования. Модуль (551) масштабирования/обратного преобразования принимает квантованный коэффициент преобразования, а также управляющую информацию, включая то, какое преобразование использовать, размер блока, коэффициент квантования, матрицы масштабирования квантования и так далее, в виде символа(ов) (521) от синтаксического анализатора (520). Модуль (551) масштабирования/обратного преобразования может выводить блоки, содержащие значения отсчетов, которые могут быть введены в агрегатор (555).
[49] В некоторых случаях выходные отсчеты модуля (551) масштабирования/обратного преобразования могут относиться к интра-кодированному блоку; то есть к блоку, который не использует информацию предсказания из ранее восстановленных изображений, но может использовать информацию предсказания из ранее восстановленных частей текущего изображения. Такая информация предсказания может быть предоставлена модулем (5452) внутрикадрового предсказания. В некоторых случаях модуль (552) внутрикадрового предсказания генерирует блок того же размера и формы, что и восстанавливаемый блок, используя окружающую уже восстановленную информацию, извлеченную из текущего буфера (558) изображения. Буфер (558) текущего изображения буферизует, например, частично восстановленное текущее изображение и/или полностью восстановленное текущее изображение. Агрегатор (555) в некоторых случаях добавляет для каждого отсчета информацию предсказания, сгенерированную модулем (552) интра-предсказания, к информации выходных отсчетов, предоставляемой модулем (551) масштабирования/обратного преобразования.
[50] В других случаях выходные отсчеты модуля (551) масштабирования/обратного преобразования могут относиться к блоку с интеркодированием и потенциально с компенсацией движения. В таком случае модуль (553) предсказания с компенсацией движения может обращаться к памяти (557) опорных изображений, чтобы извлекать отсчеты, используемые для предсказания. После компенсации движения выбранных отсчетов в соответствии с символами (521), относящимися к блоку, эти отсчеты могут быть добавлены агрегатором (555) к выходу модуля (551) масштабирования/обратного преобразования (в данном случае называемые остаточными отсчетами или остаточным сигналом), чтобы генерировать информацию о выходных отсчетах. Адреса в памяти (557) опорных изображений, откуда модуль (553) предсказания с компенсацией движения выбирает отсчеты предсказания, могут управляться векторами движения, доступными модулю (553) предсказания с компенсацией движения в форме символов (521), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти (557) опорных изображений, когда используются точные векторы движения под-отсчетов, механизмы предсказания вектора движения и так далее.
[51] Выходные отсчеты агрегатора (555) могут подвергаться различным методам петлевой фильтрации в модуле (556) петлевого фильтра. Технологии сжатия видео могут включать в себя технологии внутрипетлевой фильтрации, которые управляются параметрами, включенными в кодированную видеопоследовательность (также называемую битовым потоком кодированного видео) и предоставляемые модулю (556) петлевой фильтрации как символы (521) из синтаксического анализатора (520), но также может реагировать на метаинформацию, полученную во время декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее восстановленные и отфильтрованные петлей значения отсчетов.
[52] Выходной сигнал модуля (556) петлевого фильтра может быть потоком отсчетов, который может быть выведен на устройство (512) визуализации, а также сохранен в памяти (557) опорных изображений для использования в будущем межкадровом предсказании.
[53] Определенные кодированные изображения после полного восстановления могут использоваться в качестве опорных изображений для будущего предсказания. Например, после того, как кодированное изображение, соответствующее текущему изображению, полностью восстановлено, и кодированное изображение было идентифицировано как опорное изображение (например, синтаксическим анализатором (520)), буфер (558) текущего изображения может стать частью памяти (557) опорных изображений, и буфер свежего текущего изображения может быть перераспределен перед началом восстановления следующего кодированного изображения.
[54] Видеодекодер (510) может выполнять операции декодирования согласно заранее определенной технологии сжатия видео в стандарте, таком как ITU-T Rec. Н.265. Кодированная видеопоследовательность может соответствовать синтаксису, заданному используемой технологией или стандартом сжатия видео, в том смысле, что кодированная видеопоследовательность соответствует как синтаксису технологии или стандарту сжатия видео, так и профилям, задокументированным в технологии или стандарте сжатия видео. В частности, профиль может выбирать определенные инструменты как единственные инструменты, доступные для использования в этом профиле, из всех инструментов, доступных в технологии или стандарте сжатия видео. Также для соответствия может быть необходимым, чтобы сложность кодированной видеопоследовательности находилась в пределах границ, определенных уровнем технологии или стандарта сжатия видео. В некоторых случаях уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту дискретизации восстановления (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и так далее. Пределы, установленные уровнями, в некоторых случаях могут быть дополнительно ограничены с помощью спецификаций гипотетического эталонного декодера (HRD) и метаданных для управления буфером HRD, сигнализируемых в кодированной видео последовательности.
[55] В варианте осуществления приемник (531) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (510) для правильного декодирования данных и/или для более точного восстановления исходных видеоданных. Дополнительные данные могут быть в форме, например, временных, пространственных слоев или слоев улучшения отношения сигнал/шум (SNR), избыточных слайсов, избыточных изображений, кодов прямого исправления ошибок и так далее.
[56] На фиг. 6 показана блок-схема видеодекодера (603) согласно варианту осуществления настоящего раскрытия. Видеокодер (603) включен в электронное устройство (620). Электронное устройство (620) включает в себя передатчик (640) (например, передающую схему). Видеокодер (603) может использоваться вместо видеокодера (603) в примере с фиг. 4.
[57] Видеокодер (603) может принимать отсчеты видео от источника (601) видео (который не является частью электронного устройства (620) в примере с фиг. 6), который может захватывать видеоизображение(я) для кодирования с помощью видеокодера (603). В другом примере источник (601) видео является частью электронного устройства (620).
[58] Источник (601) видео может предоставить исходную видеопоследовательность для кодирования видео кодером (603) в форме цифрового потока отсчетов видео, который может иметь любую подходящую битовую глубину (например: 8 бит, 10 бит, 12 бит, …), любое цветовое пространство (например, ВТ.601 Y CrCB, RGB, …) и любую подходящую структуру дискретизации (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе обслуживания мультимедиа источник (601) видео может быть запоминающим устройством, хранящим предварительно подготовленное видео. В системе видеоконференц-связи источник (601) видео может быть камерой, которая захватывает информацию о локальном изображении в виде видеопоследовательности. Видеоданные могут быть предоставлены как множество отдельных изображений, которые при последовательном просмотре передают движение. Сами изображения могут быть организованы как пространственный массив пикселей, в котором каждый пиксель может содержать один или более отсчетов в зависимости от используемой структуры дискретизации, цветового пространства и т.д. Специалист в данной области техники может легко понять взаимосвязь между пикселями и отсчетами. Описание ниже ориентировано на отсчеты.
[59] Согласно варианту осуществления кодер (603) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (643) в реальном времени или с любыми другими временными ограничениями, как того требует приложение. Обеспечение соответствующей скорости кодирования - одна из функций контроллера (650). В некоторых вариантах осуществления контроллер (650) управляет другими функциональными модулями, как описано ниже, и функционально связан с другими функциональными модулями. Связь не изображена для ясности. Параметры, устанавливаемые контроллером (650), могут включать в себя параметры, относящиеся к управлению скоростью (пропуск изображения, квантователь, значение лямбда методов оптимизации скорость-искажение, …), размеру изображения, макету группы изображений (GOP), максимальному диапазону поиска вектора движения и так далее. Контроллер (650) может быть конфигурирован так, чтобы иметь другие подходящие функции, которые относятся к видеокодеру (603), оптимизированному для определенной конструкции системы.
[60] В некоторых вариантах осуществления видеокодер (603) конфигурирован для работы в контуре кодирования. В качестве упрощенного описания, в примере контур кодирования может включать в себя кодер (630) источника (например, ответственный за создание символов, таких как поток символов, на основе входного изображения для кодирования, и опорного изображения (изображений), и (локальный) декодер (633), встроенный в видеокодер (603). Декодер (633) восстанавливает символы для создания данных отсчетов аналогично тому, как (удаленный) декодер также может создавать (поскольку любое сжатие между символами и кодированным битовым потоком видео не имеет потерь в технологиях сжатия видео, рассматриваемых в раскрытом объекте раскрытия). Восстановленный поток отсчетов (данные отсчетов) вводится в память опорных изображений (634). Поскольку декодирование потока символов приводит к результатам с точностью до бита, независимо от местоположения декодера (локально или удаленно), содержимое в памяти опорных изображений (634) также является точным до бита между локальным кодером и удаленным кодером. Другими словами, часть предсказания кодера «видит» в качестве отсчетов опорного изображения точно такие же значения отсчетов, которые бы «видел» декодер при использовании предсказания во время декодирования. Этот фундаментальный принцип синхронности опорного изображения (и результирующего дрейфа, если синхронность не может поддерживаться, например, из-за ошибок канала) также используется в некоторых смежных областях техники.
[61] Работа «локального» декодера (633) может быть такой же, как у «удаленного» декодера, такого как видеодекодер (510), который уже был подробно описан выше в связи с фиг. 5. Кратко ссылаясь также на фиг. 5, однако, поскольку символы доступны, и кодирование/декодирование символов в закодированную видеопоследовательность энтропийным кодером (645) и синтаксическим анализатором (520) может быть без потерь, части энтропийного декодирования видеодекодера (510), включая буферную память (515), синтаксический анализатор (520), не могут быть полностью реализованы в локальном декодере (633).
[62] На этом этапе можно сделать наблюдение, что любая технология декодирования, кроме синтаксического анализа (парсинга) /энтропийного декодирования, которая присутствует в декодере, также обязательно должна присутствовать в, по существу, идентичной функциональной форме в соответствующем кодере. По этой причине раскрытый объект раскрытия фокусируется на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются инверсией полностью описанных технологий декодирования. Только в некоторых областях требуется более подробное описание, которое приводится ниже.
[63] Во время работы в некоторых примерах исходный кодер (630) может выполнять кодирование с предсказанием с компенсацией движения, которое кодирует входное изображение с предсказанием со ссылкой на одно или более ранее кодированных изображений из видеопоследовательности, которые были обозначены как «опорные изображения». Таким образом, механизм (632) кодирования кодирует различия между блоками пикселей входного изображения и блоками пикселей опорного изображения (изображений), которые могут быть выбраны в качестве эталона(ов) предсказанием для входного изображения.
[64] Локальный видеодекодер (633) может декодировать кодированные видеоданные изображений, которые могут быть обозначены как опорные изображения, на основе символов, созданных кодером (630) источника. Операции механизма (632) кодирования могут быть предпочтительно процессами с потерями. Когда кодированные видеоданные могут быть декодированы в видеодекодере (не показан на фиг. 6), восстановленная видеопоследовательность обычно может быть копией исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (633) копирует процессы декодирования, которые могут выполняться видеодекодером на опорных изображениях, и может вызывать сохранение восстановленных опорных изображений в кэше (734) опорных изображений. Таким образом, видеокодер (603) может локально хранить копии восстановленных опорных изображений, которые имеют общий контент, в качестве восстановленных опорных изображений, которые будут получены видеодекодером на дальнем конце (при отсутствии ошибок передачи).
[65] Предиктор (635) может выполнять поиски с предсказанием для механизма (632) кодирования. То есть, для нового изображения, которое должно быть кодировано, предиктор (635) может искать в памяти (634) опорных изображений данные отсчетов (в качестве кандидатов блоков опорных пикселей) или определенные метаданные, такие как векторы движения опорных изображений, формы блоков и так далее, которые могут служить подходящим эталоном предсказания для новых изображений. Предиктор (635) может работать на основе блока отсчетов "блок-за-пикселем", чтобы найти соответствующие эталоны предсказания. В некоторых случаях, как определено результатами поиска, полученными предиктором (635), входное изображение может иметь эталоны предсказания, взятые из множества опорных изображений, сохраненных в памяти (6734) опорных изображений.
[66] Контроллер (650) может управлять операциями кодирования исходного кодера (630), включая, например, установку параметров и параметров субгруппы, используемых для кодирования видеоданных.
[67] Выходные сигналы всех вышеупомянутых функциональных модулей могут подвергаться энтропийному кодированию в энтропийном кодере (645). Энтропийный кодер (645) переводит символы, сгенерированные различными функциональными модулями, в закодированную видеопоследовательность путем сжатия без потерь символов согласно таким технологиям, как кодирование Хаффмана, кодирование с переменной длиной, арифметическое кодирование и так далее.
[68] Передатчик (640) может буферизовать кодированную видеопоследовательность(и), созданную энтропийным кодером (645), чтобы подготовиться к передаче через канал (660) связи, который может быть аппаратным/программным соединением с устройством хранения, которое будет хранить кодированные видеоданные. Передатчик (640) может объединять кодированные видеоданные из видеокодера (630) с другими данными, подлежащими передаче, например, кодированными аудиоданными и/или потоками вспомогательных данных (источники не показаны).
[69] Контроллер (650) может управлять работой видеокодера (603). Во время кодирования контроллер (650) может назначить каждому кодированному изображению определенный тип кодированного изображения, что может повлиять на методы кодирования, которые могут быть применены к соответствующему изображению. Например, изображения часто могут быть отнесены к одному из следующих типов изображений:
[70] Интра-изображение (I-изображение) может быть таким, которое можно кодировать и декодировать без использования какого-либо другого изображения в последовательности в качестве источника предсказания. Некоторые видеокодеки допускают различные типы интра-изображений, включая, например, изображения с независимым обновлением декодера («IDR»). Специалисту в области техники известны эти варианты 1-изображений и их соответствующие применения и особенности.
[71] Изображение с предсказанием (Р-изображение) может быть таким, которое может быть кодировано и декодировано с использованием интра-предсказания или интер-предсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.
[72] Изображение с двунаправленным предсказанием (В-изображение) может быть таким, которое может быть кодировано и декодировано с использованием интра-предсказания или интер-предсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Аналогично, изображения с множественным предсказанием могут использовать более двух опорных изображений и связанных метаданных для восстановления одного блока.
[73] Исходные изображения обычно могут быть пространственно разделены на множество блоков отсчетов (например, блоки из 4x4, 8x8, 4x8 или 16x16 отсчетов каждый) и закодированы на поблочной основе. Блоки могут кодироваться с предсказанием со ссылкой на другие (уже кодированные) блоки, как определено назначением кодирования, применяемым к соответствующим изображениям блоков. Например, блоки I-изображений могут кодироваться без предсказания или они могут кодироваться с предсказанием со ссылкой на уже кодированные блоки одного и того же изображения (пространственное предсказание или интра-предсказание). Пиксельные блоки Р-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.
[74] Видеокодер (603) может выполнять операции кодирования в соответствии с заранее определенной технологией или стандартом кодирования видео, такой как ITU-T Rec. Н.265. В своей работе видеокодер (603) может выполнять различные операции сжатия, включая операции кодирования с предсказанием, которые используют временную и пространственную избыточность во входной видеопоследовательности. Кодированные видеоданные, следовательно, могут соответствовать синтаксису, заданному используемой технологией или стандартом кодирования видео.
[75] В варианте осуществления передатчик (640) может передавать дополнительные данные с кодированным видео. Кодер (630) источника может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные слои/слои улучшения SNR, другие формы избыточных данных, такие как избыточные изображения и слайсы, сообщения SEI, фрагменты набора параметров VUI и так далее.
[76] Видео может быть захвачено как множество исходных изображений (видеоизображений) во временной последовательности. Внутрикадровое предсказание (часто сокращенно называемое интра-предсказанием) использует пространственную корреляцию в данном изображении, а межкадровое предсказание использует (временную или другую) корреляцию между изображениями. В примере конкретное изображение при кодировании/декодировании, называемое текущим изображением, разделяется на блоки. Когда блок в текущем изображении подобен опорному блоку в ранее кодированном и все еще буферизованном опорном изображении в видео, блок в текущем изображении может быть кодирован вектором, который называется вектором движения. Вектор движения указывает на опорный блок в опорном изображении и может иметь третье измерение, идентифицирующее опорное изображение, в случае использования множества опорных изображений.
[77] В некоторых вариантах осуществления при межкадровом предсказании может использоваться метод двойного предсказания. Согласно методу двойного предсказания, используются два опорных изображения, такие как первое опорное изображение и второе опорное изображение, которые оба предшествуют в порядке декодирования текущему изображению в видео (но могут быть в прошлом и будущем, соответственно, в порядке отображения). Блок в текущем изображении может быть кодирован первым вектором движения, который указывает на первый опорный блок в первом опорном изображении, и вторым вектором движения, который указывает на второй опорный блок во втором опорном изображении. Блок может быть предсказан комбинацией первого опорного блока и второго опорного блока.
[78] Кроме того, в межкадровом предсказании может использоваться метод режима слияния для повышения эффективности кодирования.
[79] Согласно некоторым вариантам осуществления раскрытия, предсказания, такие как межкадровые предсказания и внутрикадровые предсказания, выполняются в единице блоков. Например, в соответствии со стандартом HEVC, изображение в последовательности видеоизображений разделяется на единицы дерева кодирования (CTU) для сжатия, причем CTU в изображении имеют одинаковый размер, например 64x64 пикселей, 32x32 пикселей или 16x16 пикселей. В общем, CTU включает в себя три блока дерева кодирования (СТВ), которые представляют собой один СТВ яркости и два СТВ цветности. Каждая CTU может быть рекурсивно разделена на квадродерево на одну или множество единиц кодирования (CU). Например, CTU размером 64x64 пикселей можно разделить на одну CU из 64x64 пикселей, или 4 CU из 32x32 пикселей, или 16 CU из 16x16 пикселей. В примере каждая CU анализируется для определения типа предсказания для CU, такого как тип интер-предсказания или тип интра-предсказания. CU разделяется на одну или более единиц предсказания (PU) в зависимости от временной и/или пространственной предсказуемости. Обычно каждая PU включает в себя блок предсказания яркости (РВ) и два РВ цветности. В варианте осуществления операция предсказания при кодировании (кодировании/декодировании) выполняется в единицах блоков предсказания. Используя блок предсказания яркости в качестве примера блока предсказания, блок предсказания включает в себя матрицу значений (например, значений яркости) для пикселей, такую как 8x8 пикселей, 16x16 пикселей, 8x16 пикселей, 16x8 пикселей и т.п.
[80] На фиг. 7 показана схема видеокодера (703) согласно другому варианту осуществления раскрытия. Видеокодер (703) конфигурирован для приема блока обработки (например, блока предсказания) из значений отсчетов в текущем видеоизображении в последовательности видеоизображений и кодирования блока обработки в кодированное изображение, которое является частью кодированной видеопоследовательности. В одном примере видеокодер (703) используется вместо видеокодера (403) на примере с фиг. 4.
[81] В примере HEVC видеокодер (703) принимает матрицу значений отсчетов для блока обработки, такого как блок предсказания из 8x8 отсчетов и т.п. Видеокодер (703) определяет, кодируется ли блок обработки лучше всего при использовании интра-режима, интер-режима или режима двойного предсказания, использующего, например, оптимизацию скорости-искажения. Когда блок обработки должен быть кодирован в интра-режиме, видеокодер (703) может использовать метод интра-предсказания для кодирования блока обработки в кодированное изображение; а когда блок обработки должен быть кодирован в интер-режиме или режиме двойного предсказания, видеокодер (703) может использовать метод интер-предсказания или двойного предсказания, соответственно, для кодирования блока обработки в кодированное изображение. В некоторых технологиях кодирования видео, режим слияния может быть субрежимом межкадрового предсказания, в котором вектор движения выводят из одного или более предикторов вектора движения без преимущества кодированного компонента вектора движения вне предикторов. В некоторых других технологиях кодирования видео может присутствовать компонент вектора движения, применимый к рассматриваемому блоку. В одном примере видеокодер (703) включает в себя другие компоненты, такие как модуль выбора режима (не показан), для определения режима блоков обработки.
[82] На примере с фиг. 7 видеокодер (703) включает в себя интер-кодер (730), интра-кодер (722), вычислитель (723) остатка, переключатель (726), кодер (724) остатка, общий контроллер (721) и энтропийный кодер (725), соединенные вместе, как показано на фиг. 7.
[83] Интер-кодер (730) конфигурирован для приема отсчетов текущего блока (например, блока обработки), сравнения блока с одним или более опорными блоками в опорных изображениях (например, блоков в предыдущих изображениях и последующих изображениях), генерации информации интер-предсказания (например, описания избыточной информации согласно методу интер-кодирования, векторов движения, информации режима слияния) и вычисления результатов интер-предсказания (например, предсказанный блок) на основе информации интер-предсказания с использованием любого подходящего метода. В некоторых примерах опорные изображения являются декодированными опорными изображениями, которые декодируются на основе кодированной видеоинформации.
[84] Интра-кодер (722) конфигурирован для приема отсчетов текущего блока (например, блока обработки), в некоторых случаях сравнения блока с блоками, уже кодированными в том же изображении, генерации квантованных коэффициентов после преобразования, а в некоторых случаях также информации интра-предсказания (например, информации направления интра-предсказания согласно одному или более методов интра-кодирования). В одном примере интра-кодер (722) также вычисляет результаты интра-предсказания (например, предсказанный блок) на основе информации интра-предсказания и опорных блоков в одном и том же изображении.
[85] Общий контроллер (721) конфигурирован для определения общих данных управления и управления другими компонентами видеокодера (703) на основе общих данных управления. В одном примере общий контроллер (721) определяет режим блока и подает управляющий сигнал на переключатель (726) на основе режима. Например, когда режим является интра-режимом, общий контроллер (721) управляет переключателем (726), чтобы выбрать результат интра-режима для использования вычислителем (723) остатка, и управляет энтропийным кодером (725), чтобы выбрать информацию интра-предсказания и включить информацию интра-предсказания в битовый поток; и когда режимом является интер-режим, общий контроллер (721) управляет переключателем (726), чтобы выбрать результат интер-предсказания для использования вычислителем (723) остатка, и управляет энтропийным кодером (725), чтобы выбрать информацию интер-предсказания и включить информацию интер-предсказания в битовый поток.
[86] Вычислитель (723) остатка конфигурирован для вычисления разницы (данных остатка) между принятым блоком и результатами предсказания, выбранными из интра-кодера (722) или интер-кодера (730). Кодер (724) остатка конфигурирован для работы на основе данных остатка, чтобы кодировать данные остатка, чтобы генерировать коэффициенты преобразования. В одном примере кодер (724) остатка конфигурирован для преобразования данных остатка из пространственной области в частотную область и генерации коэффициентов преобразования. Коэффициенты преобразования затем подвергаются обработке квантования для получения квантованных коэффициентов преобразования. В различных вариантах осуществления видеокодер (703) также включает в себя декодер (728) остатка. Декодер (728) остатка конфигурирован для выполнения обратного преобразования и генерации декодированных данных остатка. Декодированные данные остатка могут подходящим образом использоваться интра-кодером (722) и интер-кодером (730). Например, интер-кодер (730) может генерировать декодированные блоки на основе декодированных данных остатка и информации интер-предсказания, а интра-кодер (722) может генерировать декодированные блоки на основе декодированных данных остатка и информации интра-предсказания. Декодированные блоки соответствующим образом обрабатываются для генерирования декодированных изображений, и декодированные изображения могут быть буферизованы в схеме памяти (не показана) и использоваться в качестве опорных изображений в некоторых примерах.
[87] Энтропийный кодер (725) конфигурирован для форматирования битового потока, чтобы включить в него кодированный блок. Энтропийный кодер (725) конфигурирован для включения различной информации в соответствии с подходящим стандартом, таким как стандарт HEVC. В одном примере энтропийный кодер (725) конфигурирован для включения общих данных управления, выбранной информации предсказания (например, информации интра-предсказания или информации интер-предсказания), информации остатка и другой подходящей информации в битовом потоке. Следует отметить, что согласно раскрытому объекту раскрытия при кодировании блока в субрежиме слияния либо интер-режима, либо режима двойного предсказания информация остатка отсутствует.
[88] На фиг. 8 показана схема видеодекодера (9810) согласно другому варианту осуществления раскрытия. Видеодекодер (810) конфигурирован для приема кодированных изображений, которые являются частью кодированной видеопоследовательности, и декодирования кодированных изображений для создания восстановленных изображений. В одном примере видеодекодер (810) используется вместо видеодекодера (410) в примере с фиг. 4.
[89] В примере с фиг. 8 видеодекодер (810) включает в себя энтропийный декодер (871), интердекодер (880), декодер (873) остатка, модуль (874) восстановления и интрадекодер (872), соединенные вместе, как показано на фиг. 8.
[90] Энтропийный декодер (871) может быть конфигурирован для восстановления из кодированного изображения определенных символов, которые представляют элементы синтаксиса, из которых состоит кодированное изображение. Такие символы могут включать в себя, например, режим, в котором кодируется блок (такой как, например, интра-режим, интер-режим, режим двойного предсказания, причем последние два в субрежиме слияния или другом субрежиме), информацию предсказания (такую как, например, информация интра-предсказания или информация интер-предсказания), которая может идентифицировать определенный отсчет или метаданные, которые используются для предсказания интра-декодером (872) или интер-декодером (880), соответственно, остаточную информацию в форме, например, квантованных коэффициентов преобразования и т.п. В одном примере, когда режимом предсказания является интер-режим или режим двунаправленного предсказания, информация интер-предсказания предоставляется в интер-декодер (880); а когда тип предсказания является типом интра-предсказания, информация интра-предсказания предоставляется в интра-декодер (872). Остаточная информация может подвергаться обратному квантованию и предоставляется декодеру (873) остатка.
[91] Интер-декодер (880) конфигурирован для приема информации интер-предсказания и генерации результатов интер-предсказания на основе информации интер-предсказания.
[92] 8Интра-декодер (772) конфигурирован для приема информации интра-предсказания и генерации результатов предсказания на основе информации интра-предсказания.
[93] Декодер (873) остатка конфигурирован для выполнения обратного квантования для извлечения деквантованных коэффициентов преобразования, и обработки деквантованных коэффициентов преобразования для преобразования остатка из частотной области в пространственную область. Декодер (873) остатка может также потребовать определенную управляющую информацию (чтобы включить параметр квантователя (QP)), и эта информация может быть предоставлена энтропийным декодером (871) (путь данных не показан, поскольку это может быть только управляющая информация малого объема).
[94] Модуль (874) восстановления конфигурирован для объединения в пространственной области остатка, выводимого декодером (873) остатка, и результатов предсказания (выводимых модулями интер- или интра-предсказания, в зависимости от случая) для формирования восстановленного блока, который может быть частью восстановленного изображения, которое, в свою очередь, может быть частью восстановленного видео. Следует отметить, что другие подходящие операции, такие как операция деблокирования и т.п., могут выполняться для улучшения визуального качества.
[95] Следует отметить, что видеокодеры (403), (603) и (703) и видеодекодеры (410), (510) и (810) могут быть реализованы с использованием любого подходящего метода. В варианте осуществления видеокодеры (403), (603) и (703) и видеодекодеры (410), (510) и (810) могут быть реализованы с использованием одной или более интегральных схем. В другом варианте осуществления видеокодеры (403), (603) и (603) и видеодекодеры (410), (510) и (810) могут быть реализованы с использованием одного или более процессоров, которые выполняют программные инструкции.
[96] Согласно некоторым аспектам раскрытия, режим кодирования, который называется режимом кодирования на основе палитры, может использоваться в дополнение к режиму интер-предсказания и режиму интра-предсказания. Настоящее раскрытие предоставляет методы для упрощения режима кодирования на основе палитры со структурой кодирования локального двойственного дерева.
[97] В некоторых примерах содержимое экрана имеет определенные характеристики, и для кодирования экрана могут быть разработаны инструменты кодирования. Инструменты кодирования для кодирования экрана могут значительно повысить эффективность кодирования. Режим кодирования на основе палитры может представлять блок пикселей с использованием индексов палитры, которая включает основные цвета блока. Палитру и индексы можно кодировать, используя пространственную избыточность.
[98] В частности, в некоторых вариантах осуществления палитра определяется как справочная таблица записей, которая может ассоциировать индексы со значениями пикселей. В некоторых примерах значение пикселя включает в себя одно или более значений, соответствующих компонентам цвета. В одном примере значение пикселя может включать в себя три значения, соответственно представляющих три цветовых компонента. В другом примере для монохромной палитры значение пикселя включает в себя значение, представляющее один компонент цвета.
[99] В некоторых вариантах осуществления блок пикселей может кодироваться на основе палитры, и режим кодирования с использованием палитры называется режимом кодирования на основе палитры. Режим кодирования на основе палитры принят в некоторых стандартах кодирования видео, таких как VVC и т.п.
[100] Согласно некоторым вариантам осуществления режим кодирования на основе палитры является отдельным режимом кодирования. В варианте осуществления режим кодирования на основе палитры реализован как модуль кодирования (например, кодер на основе палитры, декодер на основе палитры и т.п.), который является отдельным от интра-кодера (722), интер-кодера (730), интра-декодера (872), интер-декодера (870). В одном примере режим кодирования на основе палитры реализован как аппаратная схема отдельная от интра-кодера (722), интер-кодера (730), интра-декодера (872), интер-декодера (870). В другом примере режим кодирования на основе палитры реализован как программный модуль отдельный от программных модулей для интра-кодера (722), интер-кодера (730), интра-декодера (872), интер-декодера (870). Программный модуль для режима кодирования на основе палитры и другие программные модули могут выполняться одним и тем же процессором или разными процессорами.
[101] Согласно некоторым аспектам раскрытия, режим кодирования на основе палитры обычно включает в себя две части: первую часть способов кодирования для палитры и вторую часть способов кодирования для отсчетов, использующих палитру. Первая часть может включать в себя выбор основного цвета и кодирование палитры. Вторая часть может включать в себя кодирование индекса палитры, кодирование длины серии и кодирование выпадающих пикселей.
[102] В некоторых примерах кодер на основе палитры может кодировать блок видеоданных, определяя палитру для блока (например, явно кодируя палитру, предсказывая палитру, комбинация сигнализирования и предсказания и т.п.), размещая запись в палитре для представления одного или более значений пикселей и кодирование блока с помощью значений индексов, которые указывают записи в палитре, используемой для представления значений пикселей блока. В некоторых примерах кодер на основе палитры может сигнализировать палитру и/или значения индексов в кодированном битовом потоке. В свою очередь, декодер на основе палитры может получать из кодированного битового потока палитру для блока, и значения индексов для отдельных пикселей блока. В некоторых других примерах палитра может предсказываться, и кодер на основе палитры может сигнализировать значения индексов в кодированном битовом потоке, без сигнализирования палитры, и кодер на основе палитры может предсказывать палитру и получать значения индексов в кодированном битовом потоке. Затем декодер на основе палитры может связать значения индексов пикселей с записями палитры, которые предоставляют значения пикселей. Декодер на основе палитры может восстанавливать различные пиксели блока на основе значений пикселей, ассоциированных со значениями индексов.
[103] Согласно некоторым вариантам осуществления палитра может включать в себя наиболее доминирующие значения пикселей в данном блоке. Например, наиболее доминирующие значения пикселей могут включать в себя одно или более значений пикселей, которые наиболее часто встречаются в данном блоке. Кроме того, в некоторых примерах пороговое значение (например, количества пикселей, имеющих указанное значение пикселя) может использоваться для определения, следует ли значение пикселя включить в качестве одного из наиболее доминирующих значений пикселя в блоке.
[104] В некоторых вариантах осуществления алгоритм на основе гистограммы используется для классификации значений пикселей для пикселей в блоке с целью формирования палитры. В некоторых примерах L наиболее значительных пиковые значений на гистограмме могут быть выбраны в качестве основных цветов (L - положительное целое число). В примере значения пикселей, близкие к основному цвету, можно квантовать до основного цвета. В некоторых примерах пиксели, которые не принадлежат ни к одному из основных цветов, называются выпадающими пикселями. Выпадающие пиксели перехода можно квантовать перед кодированием. В некоторых вариантах осуществления для кодирования без потерь процессы квантования не выполняются.
[105] Кроме того, в некоторых вариантах осуществления для каждого пикселя назначается индекс цвета, чтобы указать, какому цвету принадлежит пиксель. В некоторых примерах, если используются L основных цветов, от 0 до (L-1) можно использовать как индексы цвета для основных цветов, и от 0 до (L-1) можно называть основным набором цветов. Для тех пикселей, чьи основные цветовые индексы не существуют, им присваивается специальный индекс (например, индекс N, отличный от 0 до (L-1)), и эти пиксели называются «выпавшими пикселями».
[106] В целом, палитра реализована в виде справочной таблицы цветов. Справочная таблица цветов включает в себя множество записей. Каждая запись ассоциирует индекс цвета с цветом (например, основным цветом). В некоторых примерах для кодирования компонентов яркости и цветности используется одна палитра. Каждая запись может представлять определенный цвет RGB (YUV) с использованием трех цветовых компонентов. Например, палитра может иметь запись 1 с (R, G, В) = (0, 0, 0), которая представляет чистый черный цвет, и может иметь запись 0 с (R, G, В) = (2, 10, 200), который представляет собой голубоватый цвет. Следует отметить, что, когда видеоформат соответствует 420, плоскость цветности подвергается повышающей дискретизации для создания справочной таблицы цветов для палитры.
[107] В некоторых вариантах осуществления кодирование на основе палитры выполняется на основе CU. В примере для текущего CU выводится справочная цветовая таблица, которая включает в себя наиболее доминирующие значения пикселей в текущем CU. В некоторых примерах могут передаваться размер и элементы справочной таблицы цветов. В некоторых других примерах размер и элементы справочной таблицы цветов могут быть кодированы с предсказанием с использованием размера и/или элементов справочной таблицы цветов других CU.
[108] Согласно некоторым аспектам раскрытия, предсказание палитры может выполняться на основе списка предикторов палитры. В примере список предикторов палитры может включать в себя несколько палитр, которые используются для других CU. Для кодирования текущей палитры с использованием списка предикторов палитры в качестве ссылки используется двоичный вектор, чтобы указать, используется ли повторно в текущей палитре каждая запись в списке предикторов палитры.
[109] В некоторых примерах (например, HEVC SCC) список предикторов палитры хранит ранее закодированные записи палитры в качестве ссылок для предсказания текущей палитры. Список предикторов палитры обновляется после каждого CU режима палитры. В одном примере список предикторов палитры работает аналогично кэшу с вытеснением по давности использования. Самая последняя палитра может быть вставлена в начало списка предикторов палитры, и записи из самых дальних CU в порядке сканирования отбрасываются, если размер списка превышает пороговое значение. В некоторых примерах максимально допустимый размер предиктора палитры и размер палитры либо сигнализируются в синтаксисе высокого уровня, либо как определенные значения, согласованные как кодером, так и декодерами. В варианте осуществления верхняя граница размера списка предикторов палитры (прямо или косвенно) сигнализируется в SPS. Например, список предикторов палитры может иметь размер примерно в два раза больше предельного размера палитры. В некоторых примерах список предикторов палитры также называется ретроспективным списком предикторов палитры (HPPL). В примере, в SPS максимальный размер предикторов палитры сигнализируется равным 63, максимальный размер палитры сигнализируется равным 31. В другом примере эти два значения принимаются кодером и декодером без сигнализирования.
[110] В некоторых вариантах осуществления записи в списке предсказаний палитры могут иметь соответственно флаги повторного использования. Когда флаг повторного использования для записи истинен (то есть, «1»), запись называется повторно используемой записью. Компоненты цвета повторно используемых записей в списке предсказаний палитры могут быть скопированы в справочную таблицу цветов текущей палитры. Повторно используемые записи помещаются в начало текущей палитры таким образом, чтобы сохранить их порядок в списке предикторов палитры. За повторно используемыми записями в текущей палитре могут следовать новые записи палитры, которых нет в списке предикторов палитры. Новые записи палитры можно сигнализировать. Каждая новая запись палитры может включать, например, три цветовых компонента.
[111] В некоторых вариантах осуществления для инициализации списка предикторов палитры может использоваться инициализатор палитры с предопределенными записями. Использование инициализатора палитры может привести к повышению эффективности кодирования в некоторых сценариях. Инициализатор палитры можно сигнализироваться, например, в наборе параметров изображения (PPS), в наборе параметров последовательности (SPS) и т.п.
[112] Индексы цвета можно кодировать, как показано ниже. После классификации пиксели блока могут быть преобразованы в индексы цвета в соответствии с выбранным основным набором цветов. В некоторых примерах способ кодирования с предсказанием может быть применен к индексам цвета, где линия пикселей может предсказываться несколькими различными режимами (например, тремя различными режимами), включая горизонтальный режим (например, режим копирования индексов), вертикальный режим (например, режим копирования сверху) и нормальный режим (например, режим с выпадением). В некоторых примерах два порядка сканирования индекса (например, сканирование горизонтального хода и сканирование вертикального хода) используются при кодировании индексов цвета. Флаг поворота индекса может сигнализировать, чтобы указать, какой из двух порядков сканирования индекса используется.
[113] В режиме копирования индексов, начиная с первого пикселя, один или более последовательных индексов могут быть скопированы из первого пикселя. Может сигнализироваться индекс цвета первого пикселя.
[114] В режиме копирования сверху один или более последовательных индексов цвета могут быть скопированы из верхней линии пикселей, например из линии пикселей, которая находится над текущей линией пикселей.
[115] В режиме с выпадением, когда встречается выпадающий пиксель, например, сигнализируемый наибольшим индексом (например, N) в основном наборе цветов, соответствующее значение пикселя может быть закодировано после наибольшего индекса (например, N). В CU может быть несколько выпадающий пикселей с разными цветовыми значениями. Для разных местоположений выпадающих пикселей значения пикселей для выпадающих пикселей могут быть разными.
[116] Для каждого режима копирования индексов может сигнализироваться значение индекса. Сигнализация индекса может быть сгруппирована спереди (или в начале), например, для повышения пропускной способности контекстно-адаптивного двоичного арифметического кодирования (САВАС). Точно так же значения пикселей выпадающих пикселей могут сигнализироваться сзади, например, для повышения пропускной способности САВАС. Режим копирования индексов и режим копирования сверху могут сигнализироваться между кодированием индексов и кодированием с выпадением.
[117] В варианте осуществления схема дерева кодирования поддерживает возможность для компонента яркости и соответствующего компонента (компонентов) цветности иметь отдельные структуры дерева блоков. В примере для секций Р и В СТВ яркости и цветности в CTU совместно используют одну и ту же структуру дерева кодирования (например, одно дерево). Для I-слайсов СТВ яркости и цветности в CTU могут иметь отдельные структуры дерева блоков (например, двойственное дерево), а случай разделения CTU с использованием отдельных структур блочного дерева называется разделением двойственного дерева. В примере, когда применяется разделение двойственного дерева, СТВ яркости может быть разделен на CU яркости посредством структуры дерева кодирования яркости, а СТВ цветности может быть разделен на CU цветности посредством структуры дерева кодирования цветности.
[118] В некоторых примерах, таких как JVET, отсчеты компонента цветности могут иметь независимую или отдельную структуру дерева разделения (или структуру дерева кодирования) по сравнению с компонентом яркости. Отдельная структура дерева кодирования может начинаться с уровня CTU, а структура двойственного дерева с уровня CTU в некоторых примерах называется структурой глобального двойственного дерева. В примере CU цветности (например, CU, которая включает только два компонента цветности) больше, чем аналогичная CU цветности в соответствующем местоположении отсчета.
[119] В некоторых примерах двойственного дерева уровня CTU (структура глобального двойственного дерева) максимально допустимый размер предиктора палитры и размер палитры уменьшаются, например, вдвое, так что для каждого канала (яркости или цветности) уменьшается сложность. Например, в случае кодирования с одиночным деревом, блоки яркости и цветности, кодируемые при помощи палитры, кодируются совместно, и максимально разрешенный размер предиктора палитры составляет 63 записи, а максимально разрешенный размер палитры составляет 31 запись. В случае кодирования с двойственным деревом, для блоков яркости, кодированных при помощи палитры, максимально допустимый размер предиктора палитры составляет 31 запись, а максимально допустимый размер палитры - 15 записей; и для блоков цветности, кодированных при помощи палитры, максимально допустимый размер предиктора палитры составляет 31 запись, а максимально допустимый размер палитры - 15 записей.
[120] Согласно некоторым аспектам раскрытия, метод, который упоминается как локальное двойственное дерево, используется, чтобы избежать использования небольших блоков цветности (например, таких как CU меньше 4x4 отсчетов цветности). В одном примере, когда выполняются некоторые условия (например, размер родительской CU меньше или равен некоторому пороговому значению, что может привести к тому, что блок цветности имеет меньше 4x4 отсчетов), может быть инициирован метод локального двойственного дерева. С этого момента кодирование яркости и цветности может быть разделено для CU аналогично двойственному дереву на уровне CTU.
[121] Согласно аспекту раскрытия, когда используются структуры дерева разделения, компоненты яркости могут быть кодированы в одном из режима интра-предсказания, режима IBC и режима кодирования на основе палитры, а компоненты цветности могут быть кодированы в одном из режима интра-предсказания и режим кодирования на основе палитры. Однако использование локального двойственного дерева усложняет операции в режиме кодирования на основе палитры. Например, блок структуры локального двойственного дерева может иметь соседние блоки в структуре одиночного дерева. Один и тот же список предикторов палитры может использоваться блоком структуры локального двойственного дерева и соседними блоками в структуре одиночного дерева. Обновление списка предикторов палитры может быть сложным.
[122] Аспекты раскрытия предусматривают методы, которые упрощают кодирование на основе палитры с помощью структуры локального двойственного дерева кодирования.
[123] Согласно аспекту раскрытия, когда некоторые условия истинны, процесс обновления списка предикторов палитры отключается или пропускается для кодирования режима палитры. В некоторых примерах, когда может быть инициировано локальное двойственное дерево, и блоки структуры локального двойственного дерева кодируются в режиме кодирования на основе палитры, процесс обновления списка предикторов палитры может быть отключен. Таким образом, под структурой локального двойственного дерева для блоков яркости, которые кодируются в режиме кодирования на основе палитры, и/или блоков цветности, которые кодируются в режиме кодирования на основе палитры, записи палитры этих блоков не используются для обновления записей палитры в списке предикторов палитры.
[124] В варианте осуществления может быть обнаружен инициатор локального двойственного дерева. В примере, когда инициируется локальное двойственное дерево, список предикторов палитры не обновляется на основе блоков цветности, которые кодируются в режиме кодирования на основе палитры в локальной структуре двойственного дерева, и не обновляется на основе блоков яркости, которые кодируются в режиме кодирования на основе палитры под структурой локального двойственного дерева. В другом примере, когда инициируется локальное двойственное дерево, список предикторов палитры не обновляется на основе блоков яркости, которые кодированы в режиме кодирования на основе палитры в соответствии с локальной двойственной структурой дерева, и может обновляться на основе блоков цветности, которые кодируются в режиме кодирования на основе палитры в соответствии со структурой локального двойственного дерева. В другом примере, когда инициируется локальное двойственное дерево, список предикторов палитры не обновляется на основе блоков цветности, которые кодируются в режиме кодирования на основе палитры в локальной структуре двойственного дерева, и может обновляться на основе блоков яркости, которые кодируются в режиме кодирования на основе палитры под структурой локального двойственного дерева.
[125] В частности, в примере, переменная, обозначенная localDualTree, используется для определения, может ли быть инициировано локальное двойственное дерево. В примере переменная localDualTree получается в соответствии с (Ур. 1):
где treeType обозначает тип структуры дерева разделения (например, SINGLE_TREE, DUAL_TREE_LUMA, DUAL_TREE_CHROMA и т.п.), slice_type обозначает тип (например, I, Р или В) текущего слайса, a qtbtt_dual_tree_intra_flag обозначает флаг для глобального двойственного дерева. Когда переменная localDualTree равна 1, может быть инициировано и обнаружено локальное двойственное дерево; когда переменная localDualTree равна 0, локальное двойственное дерево не инициируется.
[126] На фиг. 9 показан пример (900) синтаксиса для обновления списка предсказаний палитры в некоторых примерах. В некоторых примерах, когда localDualtree равно 0, список предсказаний палитры может обновляться согласно примеру (900) синтаксиса; и когда localDualtree равно 1, процесс обновления согласно примеру (900) синтаксиса пропускается.
[127] В примере, для блока, кодированного палитрой под структурой единого дерева, список предсказаний палитры может обновляться на основе блока. Например, treeType равно SINGLE_TREE, поэтому localDualtree равно 0. Кроме того, переменная startComp (например, начальный компонент цвета) установлена в 0, а переменная numComps (например, количество компонентов цвета) установлена в 1, когда кодируется только компонент яркости, и установлена в 3, когда кодируются и компонент яркости и компоненты цветности. Затем размер списка предикторов палитры (например, обозначенный PredictorPaletteSize) и записи списка предикторов палитры (например, обозначенные predictorPaletteEntries) могут быть обновлены согласно синтаксису (900).
[128] В другом примере для блока яркости с кодированием палитры под глобальным двойственным деревом список предсказаний палитры может обновляться на основе блока. Например, в случаях двойственного дерева уровня CTU (глобальное двойственное дерево) treeType равно DUAL_TREE_LUMA, slice_type равно I, флаг глобального двойственного дерева qtbtt_dual_tree_intra_flag равен 1, таким образом, localDualtree равно 0. Кроме того, для переменной startComp установлено значение 0, а для numComps установлено значение 1. Затем размер списка предикторов палитры (например, обозначенный PredictorPaletteSize) и записи списка предикторов палитры (например, обозначенные predictorPaletteEntries) могут быть обновлены согласно синтаксису (900).
[129] В другом примере для блока цветности, кодированного палитрой под глобальным двойственным деревом, список предсказаний палитры может обновляться на основе блока. Например, в случаях двойственного дерева уровня CTU (глобальное двойственное дерево) treeType равно DUAL_TREE_CHROMA, slice_type равно I, флаг глобального двойственного дерева qtbtt_dual_tree_intra_flag равен 1, таким образом, localDualtree равно 0. Кроме того, для переменной startComp установлено значение 1, а для numComps установлено значение 2. Затем размер списка предикторов палитры (например, обозначенный PredictorPaletteSize) и записи списка предикторов палитры (например, обозначенные predictorPaletteEntries) могут быть обновлены согласно синтаксису (900).
[130] В другом примере для блока цветности, кодированного палитрой под локальным двойственным деревом, обновление списка предсказаний палитры может быть пропущено. Например, treeType равен DUAL TREE CHROMA, slice_type равен I, флаг глобального двойственного дерева qtbtt_dual_tree_intra_flag равен 0, таким образом, localDualtree равен 1. Затем процесс обновления согласно примеру синтаксиса (900) пропускается.
[131] Согласно другому аспекту раскрытия, когда используются конфигурации кодирования, которые могут инициировать использование локального двойственного дерева, режим кодирования на основе палитры запрещен для небольших блоков. Таким образом, можно избежать усложнения обновления списка предикторов палитры в случае локального двойственного дерева.
[132] В примере, когда slice_type не равен I или, когда slice_type равен I, но флаг уровня слайса для включения (глобального) двойственного дерева (например, qtbtt_dual_tree_intra_flag) равен 0, локальное двойственное дерево может быть инициировано (например, localDualTree равно 1). Когда инициируется локальное двойственное дерево, небольшие блоки, такие как единица кодирования с шириной × высота < порогового значения, и т.п. не могут быть кодированы в режиме кодирования на основе палитры. В варианте осуществления пороговое значение определяется таким образом, что локальное двойственное дерево не используется, когда размер блока текущего дерева кодирования выше этого порогового значения. В некоторых примерах режим кодирования на основе палитры запрещен для небольших блоков яркости и небольших блоков цветности в структуре локального двойственного дерева. В некоторых примерах режим кодирования на основе палитры запрещен только для небольших блоков цветности под структурой локального двойственного дерева.
[133] На фиг. 10 показан пример синтаксиса для определения в битовом потоке наличия флага (pred_mode_plt_flag), который указывает, используется ли режим кодирования на основе палитры для текущего блока. На фиг. 10, часть (1001) используется для применения ограничения размера, а часть (1002) используется для применения блока цветности и ограничения локального двойственного дерева. Например, когда блок маленький (например, ширина × высота меньше 16 для блока яркости или ширина × высота меньше 16 × SubWidthC × SubHeightC для блока цветности), часть (1001) может быть 0, таким образом в битовом потоке нет pre_mode_plt_flag для блока, и для блока запрещен режим кодирования на основе палитры.
[134] В примере для блока цветности в структуре локального двойственного дерева modeType равен MODE_TYPE_INTRA, a treeType равен DUAL_TREE_CHROMA, таким образом, часть (1002) может привести к 0. Таким образом, в битовом потоке отсутствует pred_mode_plt_flag для блока цветности, и, таким образом, режим кодирования на основе палитры запрещен для блока цветности. В другом примере для блока цветности глобального двойственного дерева modeType равен MODE_TYPE_ALL, а treeType равен DUAL_TREE_CHROMA, поэтому часть (1002) может привести к 1. Таким образом, блок цветности в структуре глобального двойственного дерева может быть закодирован в режиме кодирования на основе палитры. В другом примере для блока яркости в структуре локального двойственного дерева modeType равен MODE_TYPE_INTRA, a treeType равен DUAL_TREE_LUMA, таким образом, часть (1002) может привести к 1. Таким образом, блок яркости в структуре локального двойственного дерева может быть закодирован в режиме кодирования на основе палитры.
[135] Согласно другому аспекту раскрытия, когда используется локальное двойственное дерево, максимально разрешенный размер палитры предиктора и размер палитры уменьшаются, например, вдвое. Уменьшение размера предикторов палитры и размера палитры может снизить сложность обновления. В некоторых примерах для каждой локальной области (меньше CTU), которая позволяет кодировать блоки яркости и цветности по отдельности (например, локальное двойственное дерево), максимально допустимый размер предиктора палитры и размер палитры устанавливаются равными половине размера для случая объединенной палитры (с использованием палитры, содержащей компоненты яркости и цветности).
[136] В варианте осуществления максимально допустимый размер предиктора палитры и размер палитры составляют 63 и 31 соответственно для случая объединенной палитры. Затем при структуре локального двойственного дерева максимально допустимый размер предиктора палитры и размер палитры для режима кодирования блоков яркости на основе палитры устанавливаются равными 31 и 15 соответственно; и максимально допустимый размер предиктора палитры и размер палитры для режима кодирования блоков цветности на основе палитры установлены равными 31 и 15 соответственно.
[137] На фиг. 11 показана блок-схема, описывающая процесс (1100) согласно варианту осуществления раскрытия. Процесс (1100) может использоваться при восстановлении блока. В различных вариантах осуществления процесс (1100) выполняется схемой обработки, например схемой обработки в оконечных устройствах (310), (320), (330) и (340), причем схема обработки выполняет функции видеокодера (403), схема обработки выполняет функции видеодекодера (410), схема обработки выполняет функции видеодекодера (510), схема обработки выполняет функции видеокодера (603), и т.п. В некоторых вариантах осуществления процесс (1100) реализован в программных инструкциях, таким образом, когда схема обработки выполняет программные инструкции, схема обработки выполняет процесс (1100). Процесс начинается с (S1101) и переходит к (S1110).
[138] На этапе (S1110) информация предсказания блока декодируется из кодированного битового потока видео.
[139] На этапе (S1120) определяется, разрешить ли режим кодирования на основе палитры для блока, на основе сравнения размера блока с пороговым значением.
[140] На этапе (S1130) определяется, находится ли блок под структурой локального двойственного дерева.
[141] На этапе (S1140) блок декодируется на основе определения, разрешить ли режим кодирования на основе палитры для блока, и определения, находится ли блок под структурой локального двойственного дерева.
[142] В некоторых вариантах осуществления режим кодирования на основе палитры для блока запрещается в ответ на то, что размер блока меньше порогового значения. Например, когда условие (1001) не удовлетворяется для блока, режим кодирования на основе палитры запрещается. В некоторых примерах пороговое значение определяется таким образом, что структура локального двойственного дерева не используется, когда размер блока превышает пороговое значение.
[143] В варианте осуществления режим кодирования на основе палитры для блока запрещается в ответ на то, что блок является блоком цветности и размер блока цветности меньше порогового значения. В одном примере режим кодирования на основе палитры может использоваться в маленьких блоках яркости, но не в маленьких блоках цветности.
[144] В другом варианте осуществления режим кодирования на основе палитры запрещается для блока на основе комбинации типа режима и типа дерева блока, которая указывает, что блок является блоком цветности под структурой локального двойственного дерева. В примере для декодирования блока, когда тип режима равен MODE_TYPE_INTRA, а тип дерева равен DUAL_TREE_CHROMA, так что значение условия (1002) равно 0, тогда режим кодирования на основе палитры для блока запрещен.
[145] В некоторых вариантах осуществления, когда разрешен режим кодирования на основе палитры, декодируется флаг (например, pred_mode_plt_flag), указывающий, используется ли режим кодирования на основе палитры в блоке. В ответ на флаг, указывающий на использование режима кодирования на основе палитры в блоке, блок декодируется с использованием режима кодирования на основе палитры. В некоторых вариантах осуществления, в ответ на то, что блок находится под структурой локального двойственного дерева, обновление списка предикторов палитры может быть опущено или пропущено.
[146] В некоторых примерах список предикторов палитры обновляется на основе палитры, используемой при декодировании обновления блока, в ответ на отсутствие инициатора структуры локального двойственного дерева. В примере переменная localDualTree используется для определения, инициировано ли локальное двойственное дерево. Например, когда переменная localDualTree равна 0, может быть выполнено обновление списка предикторов палитры на основе текущей палитры блока. В примере, когда переменная localDualTree равна 1, обновление списка предикторов палитры на основе текущей палитры блока пропускается. В другом примере, когда переменная localDualTree равна 1, список предикторов палитры может обновляться, когда блок является блоком яркости, и пропускается, когда блок является блоком цветности.
[147] В другом варианте осуществления в случае блоков в структуре локального двойственного дерева максимальный размер палитры и максимальный размер списка предикторов палитры уменьшено, например, вдвое. В некоторых примерах, когда для блока разрешен режим кодирования на основе палитры, декодируется флаг, указывающий, используется ли в блоке режим кодирования на основе палитры. Затем, когда флаг указывает использование режима кодирования на основе палитры в блоке и блок находится в структуре локального двойственного дерева, блок декодируется на основе палитры, имеющей уменьшенный максимальный размер палитры. Например, обычный максимальный размер палитры - 31, а уменьшенный максимальный размер палитры - 15. Кроме того, список предикторов палитры обновляется на основе палитры, используемой при декодировании блока, и размер списка предикторов палитры ограничивается уменьшенным максимальным размером для списка предикторов палитры. Например, обычный максимальный размер списка предикторов палитры - 63, а уменьшенный максимальный размер списка предикторов палитры - 31.
[148] Затем процесс переходит к (S1199) и завершается.
[149] Методы, описанные выше, могут быть реализованы в виде компьютерного программного обеспечения с использованием машиночитаемых инструкций и физически сохранены на одном или более машиночитаемых носителях. Например, на фиг. 12 показана компьютерная система (1200), подходящая для реализации определенных вариантов осуществления раскрытого объекта раскрытия.
[150] Компьютерное программное обеспечение может быть кодировано с использованием любого подходящего машинного кода или компьютерного языка, который может быть объектом сборки, компиляции, связывания или подобных механизмов для создания кода, содержащего инструкции, которые могут выполняться напрямую или посредством интерпретации, выполнения микрокода и и т.п., одним или более центральными процессорами компьютера (CPU), графическими процессорами (GPU) и т.п.
[151] Инструкции могут исполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства Интернета вещей и т.п.
[152] Компоненты, показанные на фиг. 12 для компьютерной системы (1200), являются примерными по своей сущности и не предназначены для предложения каких-либо ограничений в отношении объема использования или функциональных возможностей компьютерного программного обеспечения, реализующего варианты осуществления настоящего раскрытия. Конфигурация компонентов также не должна интерпретироваться как имеющая какую-либо зависимость или требование, относящееся к любому одному или комбинации компонентов, проиллюстрированных в примерном варианте осуществления компьютерной системы (1200).
[153] Компьютерная система (1200) может включать в себя определенные устройства ввода с человеко-машинным интерфейсом. Такое устройство ввода с человеко-машинным интерфейсом может реагировать на ввод одним или более пользователями-людьми посредством, например, тактильного ввода (например, нажатия клавиш, смахивания, движения управляющей перчатки), звукового ввода (например, голоса, хлопков в ладоши), визуального ввода (например: жестов), обонятельного ввода (не изображен). Устройства с человеко-машинным интерфейсом также могут использоваться для захвата определенных носителей, не обязательно напрямую связанных с сознательным вводом человеком, таких как звук (например, речь, музыка, окружающий звук), изображения (например, сканированные изображения, фотографические изображения, полученные из камеры для неподвижных изображений), видео (например, двухмерное видео, трехмерное видео, включая стереоскопическое видео).
[154] Устройства ввода с человеко-машинным интерфейсом могут включать в себя одно или более из следующих элементов (только по одному из каждого изображено): клавиатура (1201), мышь (1202), трекпад (1203), сенсорный экран (1210), управляющая перчатка (не показана), джойстик (1205), микрофон (1206), сканер (1207), камера (12308).
[155] Компьютерная система (1200) также может включать в себя определенные устройства вывода с человеко-машинным интерфейсом. Такие устройства вывода с человеко-машинным интерфейсом могут стимулировать чувства одного или более пользователей-людей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода с человеко-машинным интерфейсом могут включать в себя тактильные устройства вывода (например, тактильную обратную связь от сенсорного экрана (1210), управляющей перчатки (не показана) или джойстика (1205), но также могут иметься устройства тактильной обратной связи, которые не служат в качестве устройств ввода), устройства вывода звука (например: динамики (1209), наушники (не показаны)), устройства вывода изображения (например, экраны (1210), включая ЭЛТ-экраны, ЖК-экраны, плазменные экраны, OLED-экраны, каждое из которых имеет или не имеет возможности ввода с сенсорного экрана, каждое с возможностью тактильной обратной связи или без нее - некоторые из которых могут быть способны выводить двухмерный визуальный вывод или более, чем трехмерный вывод с помощью таких средств, как стереографический вывод; очки виртуальной реальности (не изображены), голографические дисплеи и дымовые баки (не изображены)) и принтеры (не изображены).
[156] Компьютерная система (1200) также может включать в себя доступные для человека устройства хранения и связанные с ними носители, такие как оптические носители, включая CD/DVD ROM/RW (1220) с CD/DVD или подобными носителями (1221), флэш-накопитель (1222), съемный жесткий диск или твердотельный накопитель (1223), ранее разработанные магнитные носители, такие как лента и дискета (не изображены), специализированные устройства на основе ROM/ASIC/PLD, такие как защитные ключи (не изображены) и т.п.
[157] Специалисты в данной области также должны понимать, что термин «машиночитаемый носитель», используемый в связи с раскрытым в настоящем документе объектом раскрытия, не охватывает среды передачи, несущие волны или другие временные сигналы.
[158] Компьютерная система (1200) также может включать в себя интерфейс к одной или более коммуникационным сетям. Сети могут быть, например, беспроводными, проводными, оптическими. Кроме того, сети могут быть локальными, глобальными, городскими, автомобильными и промышленными, работающими в реальном времени, устойчивыми к задержкам и т.д. Примеры сетей включают в себя локальные сети, такие как Ethernet, беспроводные LAN, сотовые сети, включая GSM, 3G, 4G, 5G, LTE и т.п., проводные телевизионные или беспроводные глобальные цифровые сети, включая кабельное телевидение, спутниковое телевидение и наземное телевещание, автомобильное и промышленное оборудование, включая CAN-шину и т.д. Некоторым сетям обычно требуются внешние сетевые интерфейсные адаптеры, которые подключены к определенным портам данных общего назначения или периферийным шинам (1249) (например, к портам USB компьютерной системы (1200)); другие обычно интегрированы в ядро компьютерной системы (1200) путем присоединения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему ПК или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система (1200) может связываться с другими объектами. Такая связь может быть однонаправленной, только для приема (например, широковещательное телевидение), однонаправленной только для отправки (например, CAN-шина на определенные устройства с CAN-шиной) или двунаправленной, например, для других компьютерных систем, использующих локальную или глобальную цифровую сеть. В каждой из этих сетей и сетевых интерфейсов могут использоваться определенные протоколы и стеки протоколов, как описано выше.
[159] Вышеупомянутые устройства человеко-машинного интерфейса, доступные человеку устройства хранения и сетевые интерфейсы могут быть присоединены к ядру (1240) компьютерной системы (1200).
[160] Ядро (1240) может включать в себя один или более центральных процессоров (CPU) (1241), графических процессоров (GPU) (1242), специализированных программируемых процессоров в виде программируемых вентильных областей (FPGA) (1243), аппаратного обеспечения (1244), и т.д. Эти устройства, наряду с постоянной памятью (ROM) (1245), памятью с произвольным доступом (1246), внутренними запоминающими устройствами, такими как внутренние жесткие диски, не доступные пользователю, твердотельные накопители и т.п. (1247), могут быть подключены через системную шину (1248). В некоторых компьютерных системах системная шина (1248) может быть доступна в виде одного или более физических разъемов для обеспечения возможности расширения за счет дополнительных CPU, GPU и т.п. Периферийные устройства могут быть подключены либо непосредственно к системной шине (1248) ядра, либо через периферийную шину (1249). Архитектуры для периферийной шины включают PCI, USB и т.п.
[161] CPU (1241), GPU (1242), FGPA (1243) и ускорители (1244) могут исполнять определенные инструкции, которые в сочетании могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ROM (1245) или RAM (1246). Переходные данные также могут храниться в RAM (1246), тогда как постоянные данные могут храниться, например, во внутреннем ЗУ большой емкости (1247). Быстрое хранение и извлечение на любое из запоминающих устройств могут быть разрешены за счет использования кэш-памяти, которая может быть тесно связана с одним или более CPU (1241), GPU (1242), ЗУ большой емкости (1247), ROM (1245), RAM (1246) и т.п.
[162] Машиночитаемый носитель может содержать компьютерный код для выполнения различных операций, реализуемых компьютером. Носители и компьютерный код могут быть специально спроектированными и сконструированными для целей настоящего раскрытия, или они могут быть хорошо известными и доступными для специалистов в области компьютерного программного обеспечения.
[163] В качестве примера, но не ограничения, компьютерная система, имеющая архитектуру (1200) и, в частности, ядро (1240), может обеспечивать функциональность за счет процессора(ов) (включая CPU, GPU, FPGA ускорители и т.п.), исполняющего программное обеспечение, воплощенное на одном или более материальных машиночитаемых носителях. Такие машиночитаемые носители могут быть носителями, связанными с доступным для пользователя ЗУ большой емкости, как описано выше, и определенным хранилищем ядра (1240), которые имеют невременной характер, например, внутренним ЗУ (1247) большой емкости ядра или ROM (1245). Программное обеспечение, реализующее различные варианты осуществления настоящего раскрытия, может храниться в таких устройствах и выполняться ядром (1240). Машиночитаемый носитель может включать в себя одно или более запоминающих устройств или микросхем в соответствии с конкретными потребностями. Программное обеспечение может побуждать ядро (1240) и, в частности, процессоры в нем (включая CPU, GPU, FPGA и т.п.) выполнять определенные процессы или определенные части конкретных процессов, описанных в данном документе, включая определение структур данных, хранящихся в RAM (1246) и изменение таких структур данных в соответствии с процессами, определенными программным обеспечением. В дополнение или в качестве альтернативы, компьютерная система может обеспечивать функциональность в результате логики, встроенной в аппаратную схему или иным образом воплощенной в схеме (например, ускоритель (1244)), которая может работать вместо или вместе с программным обеспечением для выполнения определенных процессов или отдельных частей конкретных процессов, описанных в данном документе. Ссылка на программное обеспечение может включать в себя логику и наоборот, где это применимо. Ссылка на машиночитаемый носитель может включать в себя схему (например, интегральную схему (IC)), хранящую программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или и то, и другое, где это применимо. Настоящее раскрытие включает в себя любую подходящую комбинацию аппаратного и программного обеспечения.
Приложение А: Сокращения
JEM: объединенная исследовательская модель
VVC: универсальное кодирование видео
BMS: набор тестов
MV: вектор движения
HEVC: высокоэффективное видеокодирование
SEI: дополнительная расширенная информация
VUI: информация о свойствах видео
GOPs: группы изображений
TUs: единицы преобразования,
PUs: единицы предсказания
CTUs: единицы дерева кодирования
CTBs: блоки дерева кодирования
PBs: блоки предсказания
HRD: гипотетический эталонный декодер
SNR: соотношение сигнал-шум
CPUs (ЦП): центральные процессоры
GPUs (ГП): графические процессоры
CRT (ЭЛТ): электронно-лучевая трубка
LCD (ЖКД): жидкокристаллический дисплей
OLED: органический светоизлучающий диод
CD: компакт-диск
DVD: Цифровой видеодиск
ROM (ПЗУ): постоянное запоминающее устройство
RAM (ОЗУ): оперативное запоминающее устройство
ASIC: специализированная интегральная схема
PLD: программируемое логическое устройство
LAN: локальная сеть
GSM: глобальная система мобильной связи
LTE: долгосрочное развитие
CANBus (CAN-шина): шина локальной сети контроллера
USB: универсальная последовательная шина
PCI: соединение периферийных компонентов
FPGA (ППВМ): программируемые пользователем вентильные матрицы
SSD: твердотельный накопитель
IC: интегральная схема
CU: единица кодирования.
[164] Хотя это описание раскрывает несколько примерных вариантов осуществления, существуют изменения, перестановки и различные заменяющие эквиваленты, которые попадают в объем раскрытия. Таким образом, будет принято во внимание, что специалисты в данной области техники смогут разработать многочисленные системы и способы, которые, хотя явно не показаны или не описаны здесь, воплощают принципы раскрытия и, таким образом, находятся в рамках его сущности и объема.
Изобретение относится к области кодирования и декодирования видео. Техническим результатом является повышение эффективности кодирования изображения/видео. Предложено устройство для декодирования видео, которое включает в себя схему приема и схему обработки, которая декодирует информацию предсказания блока из кодированного битового потока видео, определяет, разрешить ли режим кодирования на основе палитры для блока, на основе сравнения размера блока с пороговым значением, и определяет, находится ли блок под структурой локального двойственного дерева, на основе информации предсказания. Кроме того, схема обработки декодирует блок на основе определения, разрешить ли режим кодирования на основе палитры для блока, и определения, находится ли блок под структурой локального двойственного дерева. 6 н. и 35 з.п. ф-лы, 12 ил.
1. Способ декодирования видео в декодере, содержащий:
декодирование, посредством процессора, информации предсказания блока из кодированного битового потока видео;
определение, посредством процессора, разрешить ли для блока режим кодирования на основе палитры, на основе сравнения размера блока с пороговым значением;
определение, посредством процессора, находится ли блок под структурой локального двойственного дерева, на основе информации предсказания; и
декодирование, посредством процессора, блока на основе определения, разрешить ли режим кодирования на основе палитры для блока, и определения, находится ли блок под структурой локального двойственного дерева.
2. Способ по п. 1, дополнительно содержащий:
запрещение режима кодирования на основе палитры для блока в ответ на то, что размер блока меньше порогового значения.
3. Способ по п. 1, в котором пороговое значение определяется так, чтобы запрещать структуру локального двойственного дерева в ответ на то, что размер блока превышает пороговое значение.
4. Способ по п. 1, дополнительно содержащий:
запрещение режима кодирования на основе палитры для блока в ответ на то, что блок является блоком цветности и размер блока цветности меньше порогового значения.
5. Способ по п. 1, дополнительно содержащий:
запрещение режима кодирования на основе палитры для блока на основе комбинации типа режима и типа дерева блока, которая указывает, что блок является блоком цветности под структурой локального двойственного дерева.
6. Способ по п. 1, дополнительно содержащий:
декодирование, из кодированного битового потока видео, флага, указывающего, используется ли режим кодирования на основе палитры в блоке, в ответ на разрешение режима кодирования на основе палитры;
декодирование блока с использованием режима кодирования на основе палитры в ответ на флаг, указывающий на использование режима кодирования на основе палитры в блоке; и
пропуск обновления списка предикторов палитры в ответ на то, что блок находится под структурой локального двойственного дерева.
7. Способ по п. 6, дополнительно содержащий:
обновление, в ответ на отсутствие инициирования структуры локального двойственного дерева, списка предикторов палитры на основе палитры, используемой в декодировании блока.
8. Способ по п. 1, дополнительно содержащий:
декодирование, из кодированного битового потока видео, флага, указывающего, используется ли режим кодирования на основе палитры в блоке, в ответ на разрешение режима кодирования на основе палитры; и
декодирование блока на основе палитры, имеющей уменьшенный максимальный размер, в ответ на флаг, указывающий на использование в блоке режима кодирования на основе палитры и нахождение блока под структурой локального двойственного дерева.
9. Способ по п. 8, дополнительно содержащий:
обновление списка предикторов палитры на основе палитры, используемой при декодировании блока, причем размер списка предикторов палитры ограничивается уменьшенным максимальным размером.
10. Устройство для декодирования видео, содержащее:
схему обработки, конфигурированную для:
декодирования информации предсказания блока из кодированного битового потока видео;
определения, разрешить ли для блока режим кодирования на основе палитры, на основе сравнения размера блока с пороговым значением;
определения, находится ли блок под структурой локального двойственного дерева, на основе информации предсказания; и
декодирования блока на основе определения, разрешить ли режим кодирования на основе палитры для блока, и определения, находится ли блок под структурой локального двойственного дерева.
11. Устройство по п. 10, в котором схема обработки конфигурирована для:
запрещения режима кодирования на основе палитры для блока в ответ на то, что размер блока меньше порогового значения.
12. Устройство по п. 10, в котором пороговое значение определяется так, чтобы запрещать структуру локального двойственного дерева в ответ на то, что размер блока превышает пороговое значение.
13. Устройство по п. 10, в котором схема обработки конфигурирована для: запрещения режима кодирования на основе палитры для блока в ответ на то, что блок является блоком цветности и размер блока цветности меньше порогового значения.
14. Устройство по п. 10, в котором схема обработки конфигурирована для:
запрещения режима кодирования на основе палитры для блока на основе комбинации типа режима и типа дерева блока, которая указывает, что блок является блоком цветности под структурой локального двойственного дерева.
15. Устройство по п. 10, в котором схема обработки конфигурирована для:
декодирования, из кодированного битового потока видео, флага, указывающего, используется ли режим кодирования на основе палитры в блоке, в ответ на разрешение режима кодирования на основе палитры;
декодирования блока с использованием режима кодирования на основе палитры в ответ на флаг, указывающий на использование режима кодирования на основе палитры в блоке; и
пропускания обновления списка предикторов палитры в ответ на то, что блок находится под структурой локального двойственного дерева.
16. Устройство по п. 15, в котором схема обработки конфигурирована для:
обновления, в ответ на отсутствие инициирования структуры локального двойственного дерева, списка предикторов палитры на основе палитры, используемой в декодировании блока.
17. Устройство по п. 10, в котором схема обработки конфигурирована для:
декодирования, из кодированного битового потока видео, флага, указывающего, используется ли режим кодирования на основе палитры в блоке, в ответ на разрешение режима кодирования на основе палитры; и
декодирования блока на основе палитры, имеющей уменьшенный максимальный размер, в ответ на флаг, указывающий на использование в блоке режима кодирования на основе палитры и нахождение блока под структурой локального двойственного дерева.
18. Устройство по п. 17, в котором схема обработки конфигурирована для:
обновления списка предикторов палитры на основе палитры, используемой при декодировании блока, причем размер списка предикторов палитры ограничивается уменьшенным максимальным размером.
19. Невременный машиночитаемый носитель, хранящий инструкции, которые при исполнении компьютером для декодирования видео предписывают компьютеру выполнять:
декодирование информации предсказания блока из кодированного битового потока видео;
определение, разрешить ли для блока режим кодирования на основе палитры, на основе сравнения размера блока с пороговым значением;
определение, находится ли блок под структурой локального двойственного дерева, на основе информации предсказания; и
декодирование блока на основе определения, разрешить ли режим кодирования на основе палитры для блока, и определения, находится ли блок под структурой локального двойственного дерева.
20. Невременный машиночитаемый носитель по п. 19, причем инструкции предписывают компьютеру выполнять:
запрещение режима кодирования на основе палитры для блока на основе комбинации типа режима и типа дерева блока, которая указывает, что блок является блоком цветности под структурой локального двойственного дерева.
21. Способ кодирования видео в кодере, содержащий:
определение, посредством процессора, находится ли блок под структурой локального двойственного дерева;
определение, посредством процессора, является ли размер блока меньше заранее определенного порогового значения; и
разрешение, посредством процессора, режима кодирования на основе палитры для кодирования блока в ответ на то, что блок не находится под структурой локального двойственного дерева и размер блока меньше заранее определенного порогового значения.
22. Способ по п. 21, дополнительно содержащий:
запрещение режима кодирования на основе палитры для кодирования блока в ответ на то, что блок находится под структурой локального двойственного дерева и размер блока меньше заранее определенного порогового значения.
23. Способ по п. 21, дополнительно содержащий:
запрещение режима кодирования на основе палитры для кодирования блока в ответ на то, что блок является конкретным цветовым компонентом и находится под структурой локального двойственного дерева.
24. Способ по п. 23, дополнительно содержащий:
запрещение режима кодирования на основе палитры для кодирования блока в ответ на то, что блок является компонентом цветности и находится под структурой локального двойственного дерева.
25. Способ по п. 23, дополнительно содержащий:
запрещение режима кодирования на основе палитры для кодирования блока в ответ на то, что блок является компонентом яркости и находится под структурой локального двойственного дерева.
26. Способ по п. 21, дополнительно содержащий:
кодирование блока на основе определения, разрешить ли режим кодирования на основе палитры для кодирования блока, и определения, находится ли блок под структурой локального двойственного дерева.
27. Способ по п. 21, в котором заранее определенное пороговое значение определяется так, чтобы запрещать структуру локального двойственного дерева в ответ на то, что размер блока превышает заранее определенное пороговое значение.
28. Способ по п. 21, дополнительно содержащий:
определение, является ли область блока меньше заранее определенного порогового значения.
29. Способ по п. 21, дополнительно содержащий:
запрещение режима кодирования на основе палитры для кодирования блока на основе комбинации типа режима и типа дерева блока, которая указывает, что блок является блоком цветности под структурой локального двойственного дерева.
30. Способ по п. 21, дополнительно содержащий:
кодирование флага в битовом потоке видео, который несет кодированный блок, соответствующий блоку, для указания того, используется ли в блоке режим кодирования на основе палитры, в ответ на разрешение режима кодирования на основе палитры.
31. Устройство для кодирования видео, содержащее:
схему обработки, конфигурированную для:
определения, находится ли блок под структурой локального двойственного дерева;
определения, является ли размер блока меньше заранее определенного порогового значения; и
разрешения режима кодирования на основе палитры для кодирования блока в ответ на то, что блок не находится под структурой локального двойственного дерева и размер блока меньше заранее определенного порогового значения.
32. Устройство по п. 31, в котором схема обработки конфигурирована для:
запрещения режима кодирования на основе палитры для кодирования блока в ответ на то, что блок находится под структурой локального двойственного дерева и размер блока меньше заранее определенного порогового значения.
33. Устройство по п. 31, в котором схема обработки конфигурирована для:
запрещения режима кодирования на основе палитры для кодирования блока в ответ на то, что блок является конкретным цветовым компонентом и находится под структурой локального двойственного дерева.
34. Устройство по п. 33, в котором схема обработки конфигурирована для:
запрещения режима кодирования на основе палитры для кодирования блока в ответ на то, что блок является компонентом цветности и находится под структурой локального двойственного дерева.
35. Устройство по п. 33, в котором схема обработки конфигурирована для:
запрещения режима кодирования на основе палитры для кодирования блока в ответ на то, что блок является компонентом яркости и находится под структурой локального двойственного дерева.
36. Устройство по п. 31, в котором схема обработки конфигурирована для:
кодирования блока на основе определения, разрешить ли режим кодирования на основе палитры для кодирования блока, и определения, находится ли блок под структурой локального двойственного дерева.
37. Устройство по п. 31, в котором схема обработки конфигурирована для:
определения, является ли область блока меньше заранее определенного порогового значения.
38. Устройство по п. 31, в котором заранее определенное пороговое значение определяется так, чтобы запрещать структуру локального двойственного дерева в ответ на то, что размер блока превышает заранее определенное пороговое значение.
39. Устройство по п. 31, в котором схема обработки конфигурирована для:
запрещения режима кодирования на основе палитры для кодирования блока на основе комбинации типа режима и типа дерева блока, которая указывает, что блок является блоком цветности под структурой локального двойственного дерева.
40. Устройство по п. 31, в котором схема обработки конфигурирована для:
кодирования флага в битовом потоке видео, который несет кодированный блок, соответствующий блоку, для указания, используется ли в блоке режим кодирования на основе палитры, в ответ на разрешение режима кодирования на основе палитры.
41. Невременный машиночитаемый носитель, хранящий инструкции, которые при исполнении компьютером для кодирования видео предписывают компьютеру выполнять способ по любому из пп. 21-30.
JING YE et al | |||
Прибор для нагревания перетягиваемых бандажей подвижного состава | 1917 |
|
SU15A1 |
YUNG-HSUAN CHAO et al., CE8-2.1: Palette mode in HEVC, Joint Video Experts Team (JVET) of ITU-T SG 16 WP3 and ISO/IEC JTC 1/SC 29/WG 11, |
Авторы
Даты
2023-08-10—Публикация
2021-01-13—Подача