Способ и устройство для кодирования видео
METHOD AND APPARATUS FOR VIDEO ENCODING

ВКЛЮЧЕНИЕ ПОСРЕДСТВОМ ССЫЛКИ
[1] В настоящей заявке испрашивается приоритет по заявке на патент США № 17/035,051 «СПОСОБ И УСТРОЙСТВО ДЛЯ ВИДЕО КОДИРОВАНИЯ», поданной 28 сентября 2020 г., в которой испрашивается приоритет по предварительной заявке США № 62/912,764», Управление синтаксисом высокого уровня для кодирования видео», поданной 9 октября 2019 г. Полное содержание предшествующих заявок полностью включено в настоящее описание посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[2] Настоящее раскрытие описывает варианты осуществления, в основном относящиеся к кодированию видео.
УРОВЕНЬ ТЕХНИКИ
[3] Описание уровня техники, представленное в данном документе, предназначено для общего представления контекста изобретения. Работа названных в настоящее время изобретателей, в той мере, в какой она описана в этом разделе «Уровень техники», а также аспекты изобретения, которые в противном случае не могут считаться предшествующим уровнем техники на момент подачи заявки, ни прямо, ни косвенно не признаются в качестве известного уровня техники в отношении настоящего изобретения.
[4] Кодирование и декодирование видео могут выполняться с использованием межкадрового предсказания с компенсацией движения. Несжатое цифровое видео может включать в себя серию изображений, при этом каждое изображение имеет пространственный размер, например, 1920 × 1080 отсчетов сигнала яркости и связанных отсчетов сигнала цветности. Серия изображений может иметь фиксированную или переменную частоту изображения (в разговорной речи также известную как частота кадров), например, 60 изображений в секунду или 60 Гц. Несжатое видео имеет определенные требования к битрейту. Например, для видео 1080p60 4: 2: 0 с частотой 8 бит на сэмпл (разрешение сэмпла сигнала яркости 1920x1080 при частоте кадров 60 Гц) требуется полоса пропускания, близкая к 1,5 Гбит/с. Час такого видео требует более 600 ГБ пространства памяти.
[5] Одной из целей кодирования и декодирования видео может быть уменьшение избыточности входного видеосигнала посредством сжатия. Сжатие может помочь снизить вышеупомянутые требования к пропускной способности и/или пространству памяти, в некоторых случаях на два порядка или более. Могут использоваться как сжатие без потерь, так и сжатие с потерями, а также их комбинация. Сжатие без потерь относится к техникам, в которых из сжатого исходного сигнала может быть восстановлена точная копия исходного сигнала. При использовании сжатия с потерями восстановленный сигнал может не быть идентичным исходному сигналу, но искажение между исходным и восстановленным сигналами достаточно мало, чтобы сделать восстановленный сигнал пригодным для предполагаемого применения. В случае видео широко используется сжатие с потерями. Допустимая степень искажения зависит от приложения; например, для пользователей определенных потребительских стриминговых приложений допустимы более высокие искажения, чем для пользователи приложений вещательного телевидения. Достижимая степень сжатия может отражать следующее: более высокое допустимое/приемлемое искажение может давать более высокую степень сжатия.
[6] Видеокодер и декодер могут использовать техники из нескольких широких категорий, включая, например, компенсацию движения, преобразование, квантование и энтропийное кодирование.
[7] Технологии видеокодеков могут включать в себя методы, известные как интра- кодирование. При интра-кодировании значения выборок представлены без ссылки на сэмплы или другие данные из ранее восстановленных референтных изображений. В некоторых видеокодеках изображение пространственно разбивается на блоки сэмплов. Когда все блоки сэмплов кодируются во интра-режиме, это изображение может быть интра-изображением. Интра-изображения и их производные, такие как изображения обновления независимого декодера, могут использоваться для сброса состояния декодера и, следовательно, могут использоваться в качестве первого изображения в кодированном потоке битов видео и сеанса видео или как неподвижное изображение. Сэмплы интра-блока могут подвергаться преобразованию, а коэффициенты преобразования могут квантоваться перед энтропийным кодированием. Интра-предсказание может быть техникой, которая минимизирует значения сэмплов в области до преобразования. В некоторых случаях, чем меньше значение DC после преобразования, и чем меньше коэффициенты AC, тем меньше битов требуется при заданном размере шага квантования для представления блока после энтропийного кодирования.
[8] Традиционное интра-кодирование, известное, например, из технологий кодирования поколения MPEG-2, не использует интра-предсказание. Однако некоторые новые технологии сжатия видео включают в себя техники, которые пытаются, например, из окружающих данных сэмпла и/или метаданных, полученных во время кодирования/декодирования пространственно соседних и предшествующих в порядке декодирования блоков данных. Такие техники в дальнейшем называются техниками «интра-предсказания». Следует отметить, что по меньшей мере в некоторых случаях интра-предсказание использует опорные данные только из текущего восстанавливаемого изображения, а не из референтных изображений.
[9] Может быть много разных форм интра-предсказания. Когда в данной технологии кодирования видео можно использовать более одной из таких техник, используемая техника может быть закодирована в режиме интра-предсказания. В некоторых случаях режимы могут иметь подрежимы и/или параметры, и они могут быть закодированы индивидуально или включены в кодовое слово режима. Выбор кодового слова для использования для данной комбинации режима/подрежима/параметра может повлиять на повышение эффективности кодирования за счет интра-предсказания, как и технология энтропийного кодирования, используемая для преобразования кодовых слов в поток битов.
[10] Определенный режим интра-предсказания был введен в H.264, усовершенствован в H.265 и дополнительно усовершенствован в новых технологиях кодирования, таких как совместная модель исследования (JEM), универсальное кодирование видео (VVC) и набор тестов (BMS). Блок предсказателя может быть сформирован с использованием значений соседних сэмплов, принадлежащих уже доступным сэмплам. Значения сэмплов соседних сэмплов копируются в блок предсказателя в соответствии с направлением. Ссылка на используемое направление может быть закодирована в потоке битов или сама может быть предсказана.
[11] Как показано на фиг. 1A, изображенный в правом нижнем углу является подмножеством девяти направлений предсказания, известных из 33 возможных направлений предсказания H.265 (соответствующих 33 угловым режимам из 35 внутренних режимов). Точка, где сходятся стрелки (101), представляет собой предсказываемый сэмпл. Стрелки указывают направление, в котором предсказывается сэмпл. Например, стрелка (102) указывает, что сэмпл (101) предсказывается на основе сэмпла или сэмплов в правом верхнем углу под углом 45 градусов от горизонтали. Точно так же стрелка (103) указывает, что сэмпл (101) предсказывается из сэмпла или сэмплов в нижнем левом углу сэмпла (101) под углом 22,5 градуса от горизонтали.
[12] Как также показано на фиг.1А, в верхнем левом углу изображен квадратный блок (104) из 4 × 4 сэмплов (обозначен пунктирной жирной линией). Квадратный блок (104) включает в себя 16 сэмплов, каждый из которых помечен буквой «S», его положение в измерении Y (например, индекс строки) и его положение в измерении X (например, индекс столбца). Например, сэмпл S21 - это второй сэмпл в измерении Y (сверху) и первый (слева) сэмпл в измерении X. Аналогично, сэмпл S44 является четвертым сэмплом в блоке (104) как по Y, так и по X измерениям. Поскольку размер блока равен 4 x 4 сэмплов, S44 находится внизу справа. Далее показаны исходные сэмплы, которые следуют аналогичной схеме нумерации. Исходный сэмпл помечается буквой R, его положением Y (например, индекс строки) и положением X (индекс столбца) относительно блока (104). И в H.264, и в H.265 сэмплы предсказания соседствуют с восстанавливаемым блоком; поэтому нет необходимости использовать отрицательные значения.
[13] Предсказание интра-изображения может работать путем копирования значений исходных сэмплов из соседних сэмплов в соответствии с сигнальным направлением предсказания. Например, предположим, что кодированный поток битов видео включает в себя сигнализацию, которая для этого блока указывает направление предсказания, соответствующее стрелке (102), то есть сэмплы предсказываются из сэмпла предсказания или сэмплов в правом верхнем углу под углом 45 градусов от горизонтали. В этом случае сэмплы S41, S32, S23 и S14 предсказываются на основе одного и того же исходного сэмпла R05. Сэмпл S44 затем предсказывается на основе исходного сэмпла R08.
[14] В некоторых случаях значения нескольких исходных сэмплов могут быть объединены, например, посредством интерполяции, чтобы вычислить исходный сэмпл; особенно когда направления не делятся на 45 градусов без остатка.
[15] Количество возможных направлений увеличивалось по мере развития технологии кодирования видео. В H.264 (2003 год) может быть представлено девять различных направлений. Это число увеличилось до 33 в H.265 (2013 год), а JEM/VVC/BMS на данный момент может поддерживать до 65 направлений. Были проведены эксперименты для определения наиболее вероятных направлений, и определенные методы энтропийного кодирования используются для представления этих вероятных направлений в небольшом количестве битов, принимая определенный штраф за менее вероятные направления. Кроме того, сами направления иногда могут быть предсказаны из соседних направлений, используемых в соседних, уже декодированных блоках.
[16] На фиг. 1B показана схема (180), которая изображает 65 направлений интра-предсказания согласно JEM, чтобы проиллюстрировать возрастающее количество направлений предсказания с течением времени.
[17] Отображение битов направлений интра-предсказания в кодированном потоке битов видео, которые представляют направление, может отличаться от технологии кодирования видео к технологии кодирования видео; и может варьироваться, например, от простых прямых отображений направления предсказания в режим интра-предсказания, в кодовые слова, в сложные адаптивные схемы, включающие наиболее вероятные режимы, и аналогичные техники. Однако во всех случаях могут быть определенные направления, которые статистически менее вероятны в видеоконтенте, чем некоторые другие направления. Поскольку целью сжатия видео является уменьшение избыточности, эти менее вероятные направления в хорошо работающей технологии кодирования видео будут представлены большим числом битов, чем более вероятные направления.
[18] Компенсация движения может представлять собой технологию сжатия с потерями и может относиться к технологиям, в которых блок данных сэмплов из ранее восстановленного изображения или его части (исходное изображение) после пространственного сдвига в направлении, указанном при помощи вектора движения (далее ВД), используется для предсказания нового реконструированного изображения или части изображения. В некоторых случаях исходное изображение может быть таким же, как восстанавливаемое в настоящий момент изображение. ВД могут иметь два измерения X и Y или три измерения, третье из которых является показателем используемого референтного изображения (последнее, косвенно, может быть измерением времени).
[19] В некоторых технологиях сжатия видео ВД, применимый к определенной области отсчетных данных, может быть предсказан из других ВД, например, из тех, которые относятся к другой области отсчетных данных, пространственно смежных с восстанавливаемой областью, и предшествующих этому ВД в порядке декодирования. Это может существенно уменьшить объем данных, необходимых для кодирования ВД, тем самым устраняя избыточность и увеличивая степень сжатия. Предсказание ВД может работать эффективно, например, за счет того, что при кодировании входного видеосигнала, полученного с камеры (известного как естественное видео), существует статистическая вероятность того, что области, которые больше области, к которой применим один ВД, перемещаются в аналогичном направлении и, следовательно, в некоторых случаях могут быть предсказаны с использованием аналогичного вектора движения, полученного из векторов движения соседней области. Это приводит к тому, что ВД, найденный для данной области, похож или совпадает с ВД, предсказанным из окружающих ВД, и который, в свою очередь, может быть представлен после статистического кодирования в меньшем количестве битов, чем то, которое было бы использовано при кодировании ВД напрямую. В некоторых случаях предсказание ВД может быть примером сжатия без потерь сигнала (а именно: ВД), полученного из исходного сигнала (а именно: потока отсчетов). В других случаях само предсказание ВД может быть с потерями, например, из-за ошибок округления при вычислении параметра предсказания из нескольких окружающих ВД.
[20] Различные механизмы предсказания ВД описаны в H.265/HEVC (ITU-T Rec. H.265, «Высокоэффективное кодирование видео», декабрь 2016 г.). Из множества механизмов предсказания ВД, которые предлагает H.265, здесь описывается технология, далее именуемая «пространственным слиянием».
[21] Как показано на фиг. 2, текущий блок (201) содержит сэмплы, которые были обнаружены кодером в процессе поиска движения, в качестве предсказываемых из предыдущего блока того же размера, который был пространственно сдвинут. Вместо того, чтобы кодировать этот ВД напрямую, ВД может быть получен из метаданных, связанных с одним или несколькими референтными изображениями, например, из самого последнего (в порядке декодирования) референтного изображения, с использованием ВД, связанного с одним из пяти окружающих сэмплов, обозначенных A0, A1 и B0, B1, B2 (202 - 206 соответственно). В H.265 предсказание ВД может использовать параметры предсказания из того же референтного изображения, что и соседний блок.
РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[22] Аспекты раскрытия относятся к способам и устройствам для кодирования/декодирования видео. В некоторых примерах устройство декодирования видео включает схему обработки. Схема обработки может принимать из кодированного битового потока видео информацию кодирования для текущего изображения. По меньшей мере один флаг в информации кодирования может указывать один или более допустимых типов кодирования для подразделов в текущем изображении. Один или более допустимых типов кодирования могут включать в себя по меньшей мере одно из интра-кодирования и интер-кодирования для подразделов. Схема обработки может определять, на основе по меньшей мере одного флага, декодировать ли элементы интра-синтаксиса, используемые только для кодирования интра-подразделов, и декодировать ли элементы интер-синтаксиса, используемые только для кодирования интер-подразделов; Схема обработки может декодировать элементы интра-синтаксиса в информации кодирования на основе элементов интра-синтаксиса, которые должны быть декодированы. Схема обработки может декодировать элементы интер-синтаксиса в информации кодирования на основе элементов интер-синтаксиса, определенных как подлежащие декодированию.
[23] В варианте осуществления по меньшей мере один флаг включает по меньшей мере один из первого флага, указывающего, разрешен ли интер-кодированный подраздел в текущем изображении, и второго флага, указывающего, разрешен ли интра-кодированный подраздел в текущем изображении.
[24] В примере по меньшей мере один флаг включает только первый флаг. Первый флаг может указывать на то, что в текущем изображении не разрешены подразделы с интер-кодированием. Один или более типов кодирования могут быть интра-кодированием для подразделов. Схема обработки может определять, что для текущего изображения не должен быть декодирован никакой элемент интра-синтаксиса, и определять, что элементы интра-синтаксиса должны быть декодированы для подразделов.
[25] В примере по меньшей мере один флаг включает первый флаг и второй флаг. Первый флаг может указывать на то, что в текущем изображении не разрешены подразделы с интер-кодированием. Второй флаг может указывать на то, что в текущем изображении не разрешены подразделы с интра-кодированием. Схема обработки может определять, что элементы интер-синтаксиса должны быть декодированы для подразделов с помощью интер-кодирования. Схема обработки может определять, что для текущего изображения не должен быть декодирован ни один элемент интра-синтаксиса.
[26] В примере по меньшей мере один флаг включает первый флаг и второй флаг. Первый флаг может указывать на то, что в текущем изображении не разрешены подразделы с интер-кодированием. Второй флаг может указывать на то, что в текущем изображении не разрешены подразделы с интра-кодированием. Схема обработки может определять, что для текущего изображения не должен быть декодирован никакой элемент интер-синтаксиса, и определять, что элементы интра-синтаксиса должны быть декодированы для подразделов.
[27] В примере по меньшей мере один флаг может включать первый флаг и второй флаг. Первый флаг может указывать на то, что в текущем изображении разрешены подразделы с интер-кодированием. Второй флаг может указывать на то, что в текущем изображении разрешены подразделы с интра-кодированием. Схема обработки может определять, что элементы интер-синтаксиса должны быть декодированы для по меньшей мере одного из подразделов с помощью интер-кодирования. Схема обработки может определять, что элементы интра-синтаксиса должны быть декодированы для по меньшей мере одного из подразделов с помощью интра-кодирования.
[28] В примере по меньшей мере один флаг передается в наборе (PPS) параметров изображения для одного или более изображений, включая текущее изображение, или в заголовке изображения для текущего изображения.
[29] В примере подразделы включают по меньшей мере один слайс, по меньшей мере один фрагмент или по меньшей мере одну группу фрагментов в текущем изображении.
[30] Аспекты изобретения также относятся к невременному машиночитаемому носителю, хранящему инструкции, которые при исполнении компьютером для декодирования видео побуждаю компьютер выполнять любой из способов декодирования видео.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[31] Дополнительные признаки, природа и различные преимущества раскрытого предмета изобретения будут более очевидны из следующего подробного описания и прилагаемых чертежей, на которых:
[32] Фиг. 1A -схематическая иллюстрация примерного подмножества режимов интра-предсказания.
[33] Фиг. 1B - иллюстрация примерных направлений интра-предсказания.
[34] Фиг. 2 - схематическая иллюстрация текущего блока и окружающих его кандидатов пространственного слияния в одном примере.
[35] Фиг. 3 - схематическая иллюстрация упрощенной блок-схемы системы связи (300) согласно варианту осуществления.
[36] Фиг. 4 - схематическая иллюстрация упрощенной блок-схемы системы связи (400) согласно варианту осуществления.
[37] Фиг. 5 - схематическая иллюстрация упрощенной блок-схемы декодера согласно варианту осуществления.
[38] Фиг. 6 - схематическая иллюстрация упрощенной блок-схемы кодера согласно варианту осуществления.
[39] Фиг. 7 - блок-схема кодера согласно другому варианту осуществления.
[40] Фиг. 8 - блок-схема декодера согласно другому варианту осуществления.
[41] Фиг. 9 - пример разделения изображения (900) на слайс при растровом сканировании согласно варианту осуществления.
[42] Фиг. 10 - пример прямоугольного разделения изображения (1000) на слайс согласно варианту осуществления.
[43] Фиг. 11 - пример изображения (1100), разделенного на плитки, кирпичи (1101) - (1111) и прямоугольные слайсы (1121) - (1124) согласно варианту осуществления.
[44] Фиг. 12 - пример разделения субизображения изображения (1200) согласно варианту осуществления.
[45] Фиг. 13A-13D - пример структуры синтаксиса высокого уровня согласно варианту осуществления.
[46] Фиг. 14A-14B - примерные таблицы 1-2 синтаксиса, относящиеся только к интра-флагу и интер-флагу, соответственно, согласно варианту осуществления.
[47] Фиг. 15 - блок-схема, описывающую процесс (1500) согласно варианту осуществления.
[48] Фиг. 16 - схематическая иллюстрация компьютерной системы согласно варианту осуществления.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[49] На фиг. 3 проиллюстрирована упрощенная блок-схема системы (300) связи согласно варианту осуществления настоящего изобретения. Система (300) связи включает в себя множество оконечных устройств, которые могут связываться друг с другом, например, через сеть (350). Например, система (300) связи включает в себя первую пару оконечных устройств (310) и (320), соединенных между собой через сеть (350). На фиг. 3, например, первая пара оконечных устройств (310) и (320) выполняет однонаправленную передачу данных. Например, оконечное устройство (310) может кодировать видеоданные (например, поток видеоизображений, которые захватываются оконечным устройством (310)) для передачи другому оконечному устройству (320) через сеть (350). Кодированные видеоданные могут быть переданы в форме одного или более кодированных битовых потоков видео. Оконечное устройство (320) может принимать кодированные видеоданные из сети (350), декодировать кодированные видеоданные для восстановления видеоизображений и отображать видеоизображения в соответствии с восстановленными видеоданными. Однонаправленная передача данных может быть обычным явлением в приложениях обслуживания мультимедиа и т.п.
[50] В другом примере система (300) связи включает в себя вторую пару оконечных устройств (330) и (340), которые выполняют двунаправленную передачу кодированных видеоданных, которые могут происходить, например, во время видеоконференцсвязи. Для двунаправленной передачи данных, в примере, каждое оконечное устройство из оконечных устройств (330) и (340) может кодировать видеоданные (например, поток видеоизображений, захваченных оконечным устройством) для передачи на другое оконечное устройство из оконечных устройств (330) и (340) через сеть (350). Каждое оконечное устройство из оконечных устройств (330) и (340) также может принимать кодированные видеоданные, переданные другим оконечным устройством из оконечных устройств (330) и (340), и может декодировать кодированные видеоданные для восстановления видеоизображения и может отображать видеоизображения на доступном устройстве отображения в соответствии с восстановленными видеоданными.
[51] На примере с фиг. 3 оконечные устройства (310), (320), (330) и (340) могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны, но принципы настоящего изобретения этим не ограничены. Варианты осуществления настоящего изобретения находят применение в портативных компьютерах, планшетных компьютерах, медиаплеерах и/или специализированном оборудовании для видеоконференцсвязи. Сеть (350) представляет любое количество сетей, которые передают кодированные видеоданные между оконечными устройствами (310), (320), (330) и (340), включая, например, проводные (кабельные) и/или беспроводные сети связи. Сеть (350) связи может обмениваться данными в каналах с коммутацией каналов и/или с коммутацией пакетов. Репрезентативные сети включают телекоммуникационные сети, локальные сети, глобальные сети и/или Интернет. Для целей настоящего изобретения архитектура и топология сети (350) могут быть несущественными для работы настоящего изобретения, если это не объясняется ниже в данном документе.
[52] На фиг. 4 проиллюстрировано, в качестве примера приложения для раскрытого предмета изобретения, размещение видеокодера и видеодекодера в потоковой среде. Раскрытый предмет изобретения может быть в равной степени применим к другим приложениям с поддержкой видео, включая, например, видеоконференцсвязь, цифровое телевидение, хранение сжатого видео на цифровых носителях, включая CD, DVD, карту памяти и т.п., и так далее.
[53] Система потоковой передачи может включать в себя подсистему (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) (например, потоки видеобитов) могут кодироваться в соответствии с определенными стандартами кодирования/сжатия видео. Примеры этих стандартов включают Рекомендацию ITU-T H.265. В одном примере разрабатываемый стандарт кодирования видео неофициально известен как универсальное кодирование видео (VVC). Настоящее изобретение может использоваться в контексте VVC.
[54] Следует отметить, что электронные устройства (420) и (430) могут включать в себя другие компоненты (не показаны). Например, электронное устройство (420) может включать в себя видеодекодер (не показан), а электронное устройство (430) также может включать в себя видеокодер (не показан).
[55] Фиг. 5 иллюстрирует блок-схему видеодекодера (510) согласно варианту осуществления настоящего изобретения. Видеодекодер (510) может быть включен в электронное устройство (530). Электронное устройство (530) может включать в себя приемник (531) (например, приемную схему). Видеодекодер (510) может использоваться вместо видеодекодера (410) на примере с фиг. 4.
[56] Приемник (531) может принимать одну или более кодированных видеопоследовательностей, которые должны быть декодированы видеодекодером (510); в том же или другом варианте осуществления - по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может быть получена из канала (501), который может быть аппаратной/программной связью с устройством хранения, в котором хранятся кодированные видеоданные. Приемник (531) может принимать закодированные видеоданные с другими данными, например, закодированные аудиоданные и/или потоки вспомогательных данных, которые могут быть отправлены их соответствующим объектам использования (не изображены). Приемник (531) может отделять кодированную видеопоследовательность от других данных. Для борьбы с дрожанием в сети буферная память (515) может быть подключена между приемником (531) и энтропийным декодером/анализатором (520) (далее «синтаксический анализатор (520)»). В некоторых приложениях буферная память (515) является частью видеодекодера (510). В других случаях оно может находиться вне видеодекодера (510) (не показан). В других случаях буферная память (не изображена) может быть предусмотрена вне видеодекодера (510), например, для борьбы с дрожанием сети, и, кроме того, может быть предусмотрена другая буферная память (515) внутри видеодекодера (510), например, для обработки времени воспроизведения. Когда приемник (531) принимает данные от устройства хранения/пересылки с достаточной полосой пропускания и управляемостью или от изосинхронной сети, буферная память (515) может не понадобиться или может быть небольшой. Для использования в пакетных сетях наилучшего качества, таких как Интернет, может потребоваться буферная память (515), она может быть сравнительно большой и может быть преимущественно адаптивного размера и может быть по меньшей мере частично реализована в операционной системе или аналогичных элементах (не изображены) вне видеодекодера (510).
[57] Видеодекодер (510) может включать в себя синтаксический анализатор (520) для восстановления символов (521) из кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой видеодекодера (510), и потенциально информацию для управления устройством визуализации, таким как устройство визуализации (512) (например, экран дисплея), которое не является неотъемлемой частью электронного устройства (530), но может быть соединено с электронным устройством (530), как показано на фиг. 5. Управляющая информация для устройства (устройств) визуализации может быть в форме фрагментов набора параметров дополнительной информации расширения (сообщения SEI) или информации о пригодности видео (VUI) (не изображены). Синтаксический анализатор (520) может анализировать/энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование закодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом видеокодирования и может следовать различным принципам, включая кодирование переменной длины, кодирование Хаффмана, арифметическое кодирование с контекстной чувствительностью или без нее и так далее. Синтаксический анализатор (520) может извлекать из кодированной видеопоследовательности набор параметров подгруппы для по меньшей мере одной из подгрупп пикселей в видеодекодере на основе по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать в себя группы изображений (GOP), изображения, фрагменты, слайсы, макроблоки, единицы кодирования (CU), блоки, единицы преобразования (TU), единицы предсказания (PU) и так далее. Синтаксический анализатор (520) может также извлекать из кодированной видеопоследовательности информацию, такую как коэффициенты преобразования, значения параметров квантователя, векторы движения и так далее.
[58] Синтаксический анализатор (520) может выполнять операцию энтропийного декодирования/анализа видеопоследовательности, принятой из буферной памяти (515), чтобы создавать символы (521).
[59] Реконструкция символов (521) может включать в себя множество различных единиц в зависимости от типа кодированного видеоизображения или его частей (таких как: внутреннее и внутреннее изображение, внутреннее и внутреннее изображение) и других факторов. Какие блоки задействованы и как, можно контролировать с помощью управляющей информации подгруппы, которая была проанализирована из кодированной видеопоследовательности анализатором (520). Поток такой информации управления подгруппой между анализатором (520) и множеством модулей ниже не показан для ясности.
[60] Помимо уже упомянутых функциональных блоков, видеодекодер (510) может быть концептуально подразделен на ряд функциональных блоков, как описано ниже. В практической реализации, работающей в условиях коммерческих ограничений, многие из этих устройств тесно взаимодействуют друг с другом и могут, по меньшей мере частично, быть интегрированы друг в друга. Однако для целей описания раскрытого изобретения уместно концептуальное подразделение на функциональные блоки, приведенные ниже.
[61] Первым блоком является блок масштабирования/обратного преобразования (551). Блок (551) масштабирования/обратного преобразования принимает квантованный коэффициент преобразования, а также управляющую информацию, в том числе, какое преобразование использовать, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д. в виде символа (символов) (521) от анализатора (520). Блок (551) масштабирования/обратного преобразования может выводить блоки, содержащие значения сэмплов, которые могут быть введены в агрегатор (555).
[62] В некоторых случаях выходные сэмплы блока (551) масштабирования/обратного преобразования могут относиться к блоку с внутренним кодированием; то есть: блоку, который не использует информацию предсказания из ранее реконструированных изображений, но может использовать информацию предсказания из ранее восстановленных частей текущего изображения. Такая информация предсказания может быть предоставлена блоком (552) предсказания интра-изображения. В некоторых случаях блок (552) интра-предсказания изображения генерирует блок того же размера и формы, что и восстанавливаемый блок, используя окружающую уже восстановленную информацию, извлеченную из текущего буфера (558) изображения. Буфер (558) текущего изображения буферизует, например, частично восстановленное текущее изображение и/или полностью восстановленное текущее изображение. Агрегатор (555) в некоторых случаях добавляет для каждого сэмпла информацию предсказания, сгенерированную блоком (552) интра-предсказания, к информации выходных сэмплов, предоставляемой блоком (551) масштабирования/обратного преобразования.
[63] В других случаях выходные сэмплы модуля (551) масштабирования/обратного преобразования могут относиться к блоку интра-кодирования и, возможно, с компенсацией движения. В таком случае блок предсказания (553) с компенсацией движения может обращаться к памяти (557) референтных изображений, чтобы извлекать сэмплы, используемые для предсказания. После компенсации движения выбранных сэмплов в соответствии с символами (521), относящимися к блоку, эти сэмплы могут быть добавлены агрегатором (555) к выходу блока (551) масштабирования/обратного преобразования (в данном случае называемыми остаточными сэмплами или остаточным сигналом), чтобы сгенерировать информацию о выходных сэмплах. Адреса в памяти (557) референтных изображений, откуда блок (553) предсказания компенсации движения выбирает сэмплы предсказания, могут управляться векторами движения, доступными блоку (553) предсказания компенсации движения в форме символов (521), которые могут имеют, например, компоненты X, Y и референтного изображения. Компенсация движения также может включать в себя интерполяцию значений сэмплов, полученных из памяти (557) референтных изображений, когда используются точные векторы движения подсэмпла, механизмы предсказания вектора движения и так далее.
[64] Выходные сэмплы агрегатора (555) могут подвергаться различным техникам контурной фильтрации в блоке (556) контурной фильтрации. Технологии сжатия видео могут включать в себя технологии внутриконтурной фильтрации, которые управляются параметрами, включенными в кодированную видеопоследовательность (также называемую битовым потоком кодированного видео) и предоставляемые блоку (556) контурной фильтрации как символы (521) из анализатора (520), но также может реагировать на метаинформацию, полученную во время декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее восстановленные и отфильтрованные по петле значения сэмпла.
[65] Выходной сигнал блока (556) контурной фильтрации может быть потоком сэмплов, который может быть выведен на устройство (512) рендеринга, а также сохранен в памяти (557) референтных изображений для использования в будущем предсказании интер-изображений.
[66] Определенные кодированные изображения после полной реконструкции могут использоваться в качестве референтных изображений для будущего предсказания. Например, после того, как кодированное изображение, соответствующее текущему изображению, полностью восстановлено, и кодированное изображение было идентифицировано как референтное изображение (например, синтаксическим анализатором (520)), текущий буфер (558) изображения может стать частью памяти (557) референтных изображений, и буфер свежих текущих изображений может быть перераспределен перед началом восстановления следующего кодированного изображения.
[67] Видеодекодер (510) может выполнять операции декодирования согласно предварительно определенной технологии сжатия видео в стандарте, например ITU-T Rec. H.265 Кодированная видеопоследовательность может соответствовать синтаксису, заданному используемой технологией или стандартом сжатия видео, в том смысле, что кодированная видеопоследовательность соответствует как синтаксису технологии или стандарту сжатия видео, так и профилям, задокументированным в технологии сжатия видео или стандарте. В частности, профиль может выбирать определенные инструменты как единственные инструменты, доступные для использования в этом профиле из всех инструментов, доступных в технологии или стандарте сжатия видео. Также для соответствия может быть необходимым, чтобы сложность кодированной видеопоследовательности находилась в пределах, определенных уровнем технологии или стандарта сжатия видео. В некоторых случаях уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту дискретизации восстановления (измеряемую, например, в мегасэмплах в секунду), максимальный размер референтного изображения и так далее. Пределы, установленные уровнями, в некоторых случаях могут быть дополнительно ограничены с помощью спецификаций гипотетического эталонного декодера (HRD) и метаданных для управления буфером HRD, передаваемых в кодированной видеопоследовательности.
[68] В варианте осуществления приемник (531) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной видеопоследовательности (видеопоследовательностей). Дополнительные данные могут использоваться видеодекодером (510) для правильного декодирования данных и/или для более точного восстановления исходных видеоданных. Дополнительные данные могут быть в форме, например, временных, пространственных уровней или уровней улучшения отношения сигнал/шум (SNR), избыточных слайсов, избыточных изображений, кодов прямого исправления ошибок и так далее.
[69] Фиг. 6 иллюстрирует блок-схему видеодекодера (603) согласно варианту осуществления настоящего изобретения. Видеокодер (603) включен в электронное устройство (620). Электронное устройство (620) включает в себя передатчик (640) (например, передающую схему). Видеокодер (603) может использоваться вместо видеокодера (403) из примера с фиг. 4.
[70] Видеокодер (603) может принимать сэмплы видео от источника (601) видео (который не является частью электронного устройства (620) в примере с фиг.6), который может захватывать видеоизображение(я) для кодирования с помощью видеокодера (603). В другом примере источник (601) видео является частью электронного устройства (620).
[71] Источник (601) видео может предоставлять исходную видеопоследовательность для кодирования видеокодером (603) в форме потока дискретных цифровых видео, который может иметь любую подходящую битовую глубину (например: 8 бит, 10 бит, 12 бит). bit,…), любое цветовое пространство (например, BT.601 Y CrCB, RGB,…) и любую подходящую структуру сэмплирования (например, Y CrCb 4: 2: 0, Y CrCb 4: 4: 4). В системе обслуживания мультимедиа источник (601) видео может быть запоминающим устройством, хранящим предварительно подготовленное видео. В системе видеоконференцсвязи видеоисточник (601) может быть камерой, которая фиксирует информацию локального изображения в виде видеопоследовательности. Видеоданные могут быть предоставлены как множество отдельных изображений, которые при последовательном просмотре передают движение. Сами изображения могут быть организованы как пространственный массив пикселей, причем каждый пиксель может содержать один или более сэмплов в зависимости от используемой структуры сэмпла, цветового пространства и т.д. Специалист в данной области техники может легко понять взаимосвязь между пикселями и образцами. Описание ниже ориентировано на сэмплов.
[72] Согласно варианту осуществления видеокодер (603) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (643) в реальном времени или с любыми другими временными ограничениями, как того требует приложение. Обеспечение соответствующей скорости кодирования - одна из функций контроллера (650). В некоторых вариантах осуществления контроллер (650) управляет другими функциональными блоками, как описано ниже, и функционально связан с другими функциональными блоками. Для ясности сопряжение не изображено. Параметры, устанавливаемые контроллером (650), могут включать в себя параметры, относящиеся к управлению скоростью (пропуск изображения, квантователь, значение лямбда методов оптимизации скорости-искажения, …), размер изображения, макет группы изображений (GOP), максимальный диапазон поиска вектора движения и так далее. Контроллер (650) может быть конфигурирован так, чтобы иметь другие подходящие функции, которые относятся к видеокодеру (603), оптимизированному для определенной конструкции системы.
[73] В некоторых вариантах осуществления видеокодер (603) конфигурирован для работы в цикле кодирования. В качестве упрощенного описания, в примере, цикл кодирования может включать в себя исходный кодер (630) (например, ответственный за создание символов, таких как поток символов, на основе входного изображения, которое должно быть кодировано, и референтного изображения (изображений)), и (локальный) декодер (633), встроенный в видеокодер (603). Декодер (633) реконструирует символы для создания данных сэмплов аналогично тому, как это может создать (удаленный) декодер (поскольку любое сжатие между символами и кодированным битовым потоком видео не имеет потерь в технологиях сжатия видео, рассматриваемых в раскрытом изобретении). Восстановленный поток сэмплов (данные сэмплов) вводится в память референтных изображений (634). Поскольку декодирование потока символов приводит к результатам с точностью до бита, независимо от местоположения декодера (локального или удаленного), содержимое в памяти референтных изображений (634) также является точным по битам между локальным кодером и удаленным кодером. Другими словами, часть предсказания кодера «видит» в качестве сэмплов референтного изображения точно такие же значения сэмплов, которые декодер «видел» при использовании предсказания во время декодирования. Данный фундаментальный принцип синхронности референтного изображения (и результирующего дрейфа, если синхронность не может поддерживаться, например, из-за ошибок канала) также используется в некоторых смежных областях техники.
[74] Работа «локального» декодера (633) может быть такой же, как у «удаленного» декодера, такого как видеодекодер (510), который уже был подробно описан выше в описании фиг. 5. Кратко ссылаясь также на фиг. 5, однако, поскольку символы доступны, и кодирование/декодирование символов в закодированную видеопоследовательность энтропийным кодером (645) и анализатором (520) может быть без потерь, части энтропийного декодирования видеодекодера (510), включая буферную память (515) и анализатор (520) не могут быть полностью реализованы в локальном декодере (633).
[75] На этом этапе можно сделать наблюдение, что любая технология декодирования, кроме синтаксического/энтропийного декодирования, которая присутствует в декодере, также обязательно должна присутствовать в по существу идентичной функциональной форме в соответствующем кодере. По этой причине раскрытое изобретение фокусируется на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются инверсией полностью описанных технологий декодирования. Только в некоторых областях требуется более подробное описание, которое приводится ниже.
[76] Во время работы, в некоторых примерах, исходный кодер (630) может выполнять кодирование с предсказанием с компенсацией движения, которое кодирует входное изображение с предсказанием со ссылкой на одно или более ранее кодированных изображений из видеопоследовательности, которые были обозначены как «референтные изображения». Таким образом, механизм (632) кодирования кодирует различия между блоками пикселей входного изображения и блоками пикселей референтного изображения (изображений), которые могут быть выбраны в качестве эталона(ов) предсказания для входного изображения.
[77] Локальный видеодекодер (633) может декодировать кодированные видеоданные изображений, которые могут быть обозначены как референтные изображения, на основе символов, созданных исходным кодером (630). Операции механизма (632) кодирования могут быть преимущественно процессами с потерями. Когда кодированные видеоданные могут быть декодированы в видеодекодере (не показан на фиг. 6), восстановленная видеопоследовательность обычно может быть копией исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (633) копирует процессы декодирования, которые могут выполняться видеодекодером на референтных изображениях, и может вызывать сохранение восстановленных референтных изображений в кэше референтных изображений (634). Таким образом, видеокодер (603) может локально хранить копии восстановленных референтных изображений, которые имеют общий контент, в качестве восстановленных референтных изображений, которые будут получены видеодекодером на дальнем конце (при отсутствии ошибок передачи).
[78] Аредсказатель (635) может выполнять поиски предсказания для механизма (632) кодирования. То есть для нового изображения, которое должно быть закодировано, предсказатель (635) может выполнять поиск в памяти (634) референтных изображений для выборочных данных (в качестве возможных блоков референтных пикселей) или определенных метаданных, таких как векторы движения референтных изображений, формы блоков и т.д., это может служить подходящим референтным средством для предсказания для новых изображений. Предсказатель (635) может работать на поблочной основе сэмплов, чтобы найти соответствующие референтные средства для предсказания. В некоторых случаях, как определено результатами поиска, полученными предсказателем (635), входное изображение может иметь референтные средства предсказания, взятые из множества референтных изображений, сохраненных в памяти (634) референтных изображений.
[79] Контроллер (650) может управлять операциями кодирования исходного кодера (630), включая, например, установку параметров и параметров подгруппы, используемых для кодирования видеоданных.
[80] Выходные данные всех вышеупомянутых функциональных блоков могут подвергаться энтропийному кодированию в энтропийном кодере (645). Энтропийный кодер (645) переводит символы, сгенерированные различными функциональными блоками, в закодированную видеопоследовательность путем сжатия символов без потерь в соответствии с такими технологиями, как кодирование Хаффмана, кодирование с переменной длиной, арифметическое кодирование и так далее.
[81] Передатчик (640) может буферизовать закодированные видеопоследовательности, созданные энтропийным кодером (645), для подготовки к передаче через канал (660) связи, который может быть аппаратным/программным соединением с устройством хранения, которое будет хранить закодированные видеоданные. Передатчик (640) может объединять кодированные видеоданные из видеокодера (603) с другими данными, которые должны быть переданы, например, кодированными аудиоданными и/или потоками вспомогательных данных (источники не показаны).
[82] Контроллер (650) может управлять работой видеокодера (603). Во время кодирования контроллер (650) может назначить каждому кодированному изображению определенный тип кодированного изображения, что может повлиять на техники кодирования, которые могут быть применены к соответствующему изображению. Например, изображения часто могут быть отнесены к одному из следующих типов изображений:
[83] Интра-изображение (I-изображение) может быть таким, которое можно кодировать и декодировать без использования какого-либо другого изображения в последовательности в качестве источника предсказания. Некоторые видеокодеки допускают различные типы интра-изображений, включая, например, изображения с обновлением независимого декодера («IDR»). Специалисту известны такие варианты I-изображений и их соответствующие приложения и особенности.
[84] Предсказываемое изображение (P-изображение) может быть таким, которое может быть кодировано и декодировано с использованием интра-предсказания или интер-предсказания с использованием не более одного вектора движения и референтного индекса для предсказания значений сэмпла каждого блока.
[85] Изображение с двунаправленным предсказанием (B-изображение) может быть таким, которое может быть закодировано и декодировано с использованием интра-предсказания или интер-предсказания с использованием не более двух векторов движения и референтных индексов для предсказания значений сэмпла каждого блока. Точно так же изображения с множественным предсказанием могут использовать более двух референтных изображений и связанных метаданных для восстановления одного блока.
[86] Исходные изображения обычно могут быть пространственно разделены на множество блоков сэмпла (например, блоки из 4x4, 8x8, 4x8 или 16x16 отсчетов каждый) и закодированы на поблочной основе. Блоки могут кодироваться с предсказанием со ссылкой на другие (уже кодированные) блоки, как определено назначением кодирования, применяемым к соответствующим изображениям блоков. Например, блоки из I-изображений могут кодироваться без предсказания или они могут кодироваться с предсказанием со ссылкой на уже кодированные блоки одного и того же изображения (пространственное предсказание или интра-предсказание). Пиксельные блоки P-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки B-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно или два ранее кодированных референтных изображения.
[87] Видеокодер (603) может выполнять операции кодирования в соответствии с предварительно определенной технологией или стандартом кодирования видео, например ITU-T Rec. H.265 В своей работе видеокодер (603) может выполнять различные операции сжатия, включая операции кодирования с предсказанием, которые используют временную и пространственную избыточность во входной видеопоследовательности. Кодированные видеоданные, следовательно, могут соответствовать синтаксису, заданному используемой технологией или стандартом кодирования видео.
[88] В варианте осуществления передатчик (640) может передавать дополнительные данные с кодированным видео. Исходный кодер (630) может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные уровни/уровни улучшения SNR, другие формы избыточных данных, такие как избыточные изображения и слайсы, сообщения SEI, фрагменты набора параметров VUI и так далее.
[89] Видео может быть захвачено как множество исходных изображений (видеоизображений) во временной последовательности. Интра-кадровое предсказание изображения (часто сокращенно называемое интра-предсказанием) использует пространственную корреляцию в данном изображении, а интер-кадровое предсказание использует (временную или другую) корреляцию между изображениями. В примере конкретное изображение при кодировании/декодировании, которое упоминается как текущее изображение, разбивается на блоки. Когда блок в текущем изображении подобен референтному блоку в ранее кодированном и все еще буферизованном референтном изображении в видео, блок в текущем изображении может быть закодирован вектором, который называется вектором движения. Вектор движения указывает на референтный блок в референтном изображении и может иметь третье измерение, идентифицирующее референтое изображение, в случае использования нескольких референтных изображений.
[90] В некоторых вариантах осуществления при интер-кадровом предсказании может использоваться техника двойного предсказания. Согласно технике двойного предсказания, два референтных изображения, такие как первое референтное изображение и второе референтное изображение, которые оба предшествуют в порядке декодирования текущему изображению в видео (но могут быть в прошлом и будущем, соответственно, в порядке отображения). Блок в текущем изображении может быть закодирован первым вектором движения, который указывает на первый референтный блок в первом референтном изображении, и вторым вектором движения, который указывает на второй референтный блок во втором референтном изображении. Блок может быть предсказан комбинацией первого референтного блока и второго референтного блока.
[91] Кроме того, техника режима слияния может использоваться в интер-кадровом предсказании для повышения эффективности кодирования.
[92] Согласно некоторым вариантам осуществления изобретения, предсказания, такие как интер-кадровые предсказания и интра-кадровые предсказания выполняются в единице блоков. Например, в соответствии со стандартом HEVC изображение в последовательности видеоизображений разделяется на единицы дерева кодирования (CTU) для сжатия, единицы CTU в изображении имеют одинаковый размер, например 64x64 пикселей, 32x32 пикселей или 16x16 пикселей. В общем, CTU включает в себя три блока дерева кодирования (CTB), которые представляют собой один CTB яркости и два CTB цветности. Каждая CTU может быть рекурсивно разделена на квадродерево на одну или более единиц кодирования (CU). Например, CTU размером 64x64 пикселей можно разделить на одну CU размером 64x64 пикселей, или 4 CU из 32x32 пикселей, или 16 CU из 16x16 пикселей. В примере каждый CU анализируется для определения типа предсказания для CU, такого как тип интер-предсказания или тип интра-предсказания. CU разделяется на одну или более единиц (PU) предсказания в зависимости от временной и/или пространственной предсказуемости. Обычно каждый PU включает в себя блок (PB) предсказания яркости и два PB цветности. В варианте осуществления операция предсказания при кодировании (кодировании/декодировании) выполняется в единице блока предсказания. Используя блок предсказания яркости в качестве примера блока предсказания, блок предсказания включает в себя матрицу значений (например, значений яркости) для пикселей, таких как 8x8 пикселей, 16x16 пикселей, 8x16 пикселей, 16x8 пикселей и т.п.
[93] На фиг. 7 показана схема видеокодера (703) согласно другому варианту осуществления. Видеокодер (703) конфигурирован для приема блока обработки (например, блока предсказания) значений сэмплов в текущем видеоизображении в последовательности видеоизображений и кодирования блока обработки в кодированное изображение, которое является частью кодированного видеоряда. В одном примере видеокодер (703) используется вместо видеокодера (403) на примере с фиг. 4.
[94] В примере HEVC видеокодер (703) принимает матрицу значений сэмплов для блока обработки, такого как блок предсказания из 8x8 выборок и т.п. Видеокодер (703) определяет, лучше ли закодирован блок обработки, используя внутренний режим, внешний режим или режим двойного предсказания, используя, например, оптимизацию искажения скорости. Когда блок обработки должен быть закодирован во внутреннем режиме, видеокодер (703) может использовать технику интра-предсказания для кодирования блока обработки в кодированное изображение; и когда блок обработки должен быть закодирован во внешнем режиме или режиме двойного предсказания, видеокодер (703) может использовать технику интер-предсказания или двойного предсказания, соответственно, для кодирования блока обработки в кодированное изображение. В некоторых технологиях кодирования видео режим слияния может быть подрежимом интер-кадрового предсказания, в котором вектор движения выводится из одного или более предикторов вектора движения без преимущества кодированной компоненты вектора движения вне предикторов. В некоторых других технологиях кодирования видео может присутствовать компонент вектора движения, применимый к рассматриваемому блоку. В одном примере видеокодер (703) включает в себя другие компоненты, такие как модуль выбора режима (не показан), для определения режима блоков обработки.
[95] На примере с фиг. 7, видеокодер (703) включает интер-кодер (730), интра-кодер (722), вычислитель (723) остатка, переключатель (726), кодер (724) остатка, общий контроллер (721) и энтропийный кодер (725), соединенные вместе, как показано на фиг. 7.
[96] Интер-кодер (730) конфигурирован для приема сэмплов текущего блока (например, блока обработки), сравнения блока с одним или более референтными блоками в референтных изображениях (например, блоков в предыдущих изображениях и последующих изображениях), генерации информации интер-предсказания (например, описание избыточной информации согласно технике внешнего кодирования, векторам движения, информации режима слияния) и вычисление результатов интер-предсказания (например, предсказанный блок) на основе информации интер-предсказания с использованием любой подходящей техники. В некоторых примерах референтные изображения являются декодированными референтными изображениями, которые декодируются на основе кодированной видеоинформации.
[97] Внутренний кодер (722) конфигурирован для приема сэмплов текущего блока (например, блока обработки), в некоторых случаях сравнивать блок с блоками, уже закодированными в том же изображении, генерировать квантованные коэффициенты после преобразования, а в некоторых случаях также информацию интра-предсказания (например, информация направления интра-предсказания согласно одной или более техник интра-кодирования). В одном примере интра-кодер (722) также вычисляет результаты интра-предсказания (например, предсказанный блок) на основе информации интра-предсказания и опорных блоков в одном и том же изображении.
[98] Общий контроллер (721) конфигурирован для определения общих данных управления и управления другими компонентами видеокодера (703) на основе общих данных управления. В одном примере общий контроллер (721) определяет режим блока и подает управляющий сигнал на переключатель (726) на основе режима. Например, когда режим является интра-режимом, общий контроллер (721) управляет переключателем (726), чтобы выбрать результат внутреннего режима для использования вычислителем (723) остатка, и управляет кодером (725) энтропии, чтобы выбрать информацию интра-предсказания и включают информацию интра-предсказания в поток битов; и когда режимом является интер-режим, общий контроллер (721) управляет переключателем (726), чтобы выбрать результат интер-предсказания для использования вычислителем (723) остатка и управляет кодером (725) энтропии, чтобы выбрать информацию интер-предсказания и включают информацию интер-предсказания в поток битов.
[99] Вычислитель (723) остатка конфигурирован для вычисления разницы (данных остатка) между принятым блоком и результатами предсказания, выбранными из интра-кодера (722) или интер-кодера (730). Кодер (724) остатка конфигурирован для работы на основе данных остатка, чтобы кодировать данные остатка, чтобы генерировать коэффициенты преобразования. В одном примере кодер (724) остатка конфигурирован для преобразования данных остатка из пространственной области в частотную область и генерирования коэффициентов преобразования. Коэффициенты преобразования затем подвергаются обработке квантования для получения квантованных коэффициентов преобразования. В различных вариантах осуществления видеокодер (703) также включает в себя декодер (728) остатка. Декодер (728) остатка конфигурирован для выполнения обратного преобразования и генерации декодированных данных остатка. Декодированные данные остатка могут надлежащим образом использоваться интра-кодером (722) и интер-кодером (730). Например, интер-кодер (730) может генерировать декодированные блоки на основе декодированных данных остатка и информации интер-предсказания, а интра-кодер (722) может генерировать декодированные блоки на основе декодированных данных остатка и информации интра-предсказания. Декодированные блоки соответствующим образом обрабатываются для создания декодированных изображений, и декодированные изображения могут быть буферизованы в схеме памяти (не показана) и использоваться в качестве референтных изображений в некоторых примерах.
[100] Кодер (725) энтропии конфигурирован для форматирования потока битов, чтобы включить в него закодированный блок. Кодер (725) энтропии конфигурирован для включения различной информации в соответствии с подходящим стандартом, таким как стандарт HEVC. В примере кодер (725) энтропии кконфигурирован для включения в поток битов общих данных управления, выбранной информации предсказания (например, информации интра-предсказания или информации интер-предсказания), информации остатка и другой подходящей информации. Следует отметить, что согласно раскрытому изобретению при кодировании блока в подрежиме слияния либо интер-режиме, либо режима двойного предсказания информация остатка отсутствует.
[101] Фиг. 8 иллюстрирует схему видеодекодера (810) согласно другому варианту осуществления. Видеодекодер (810) конфигурирован для приема кодированных изображений, которые являются частью кодированной видеопоследовательности, и декодирования кодированных изображений для создания восстановленных изображений. В одном примере видеодекодер (810) используется вместо видеодекодера (410) на примере с фиг. 4.
[102] На примере с фиг. 8 видеодекодер (810) включает в себя декодер (871) энтропии, внешний декодер (880), декодер (873) остатка, модуль (874) восстановления и интра- декодер (872), соединенные вместе, как показано на фиг. 8.
[103] Декодер (871) энтропии может быть конфигурирован для восстановления из кодированного изображения определенных символов, которые представляют элементы синтаксиса, из которых состоит кодированное изображение. Такие символы могут включать в себя, например, режим, в котором кодируется блок (такой как, например, интра-режим, интер-режим, режим двойного предсказания, последние два в подрежиме слияния или другом подрежиме), информацию предсказания (такую как (например, информация интра-предсказания или информация интер-предсказания), которая может идентифицировать определенный сэмпл или метаданные, которые используются для предсказания интра-декодером (872) или интер-декодером (880), соответственно, остаточной информации в форме, например, квантованных коэффициентов преобразования и т.п. В одном примере, когда режимом предсказания является режим интер или двойного предсказания, информация интер-предсказания предоставляется в интер-декодер (880); и когда тип предсказания является типом интра-предсказания, информация интра-предсказания предоставляется интра-декодеру (872). Информация остатка может подвергаться обратному квантованию и предоставляется декодеру (873) остатка.
[104] Интер-декодер (880) конфигурирован для приема информации интер-предсказания и генерации результатов интер-предсказания на основе информации интер-предсказания.
[105] Интра-декодер (872) конфигурирован для приема информации интра-предсказания и генерации результатов предсказания на основе информации интра-предсказания.
[106] Декодер (873) остатка конфигурирован для выполнения обратного квантования для извлечения деквантованных коэффициентов преобразования и обработки деквантованных коэффициентов преобразования для преобразования остатка из частотной области в пространственную область. Декодер (873) остатка может также потребовать определенную управляющую информацию (чтобы включить параметр квантователя (QP)), и эта информация может быть предоставлена декодером (871) энтропии (тракт данных не показан, поскольку это может быть только управляющая информация с низким объемом).
[107] Модуль (874) реконструкции конфигурирован для объединения в пространственной области остатка, выводимого декодером (873) остатка, и результатов предсказания (выводимых модулями интер- или интра-предсказания, в зависимости от случая) для формирования восстановленного блока, который может быть частью восстановленного изображения, которое, в свою очередь, может быть частью восстановленного видео. Следует отметить, что другие подходящие операции, такие как операция удаления блоков и т.п., могут выполняться для улучшения визуального качества.
[108] Следует отметить, что видеокодеры (403), (603) и (703) и видеодекодеры (410), (510) и (810) могут быть реализованы с использованием любой подходящей техники. В варианте осуществления видеокодеры (403), (603) и (703) и видеодекодеры (410), (510) и (810) могут быть реализованы с использованием одной или более интегральных схем. В другом варианте осуществления видеокодеры (403), (603) и (603) и видеодекодеры (410), (510) и (810) могут быть реализованы с использованием одного или более процессоров, которые выполняют программные инструкции.
[109] Изображение может быть разделено на подразделы в изображении, такие как субизображения, слайсы, мозаичные элементы, группы мозаичных элементов, блоки и/или тому подобное. Изображение можно разделить на одну или более строк мозаики и один или более столбцов плитки. Плитка может быть последовательностью CTU, покрывающей прямоугольную область изображения. Плитка может быть разделена на один или более блоков, каждый из которых может включать в себя ряд строк CTU в плитке. Плитка, которая не разделена на несколько кирпичей, также может называться кирпичом. Однако кирпич, который является истинным подмножеством плитки, не называется плиткой.
[110] Слайс может включать в себя несколько плиток на изображении или несколько кирпичей в плитке. Могут поддерживаться два режима слайсов, например, режим слайса с растровым сканированием и режим прямоугольного слайса. В режиме слайса с растровым сканированием слайс может включать в себя последовательность элементов мозаичного изображения в растровом сканировании изображения. В режиме прямоугольного слайса слайс может включать в себя несколько блоков изображения, которые вместе могут образовывать прямоугольную область изображения. Кирпичи в прямоугольном слайсе расположены в порядке растрового сканирования слайса кирпича.
[111] Изображение может быть разделено на плитки и слайсы растрового сканирования. Фиг. 9 иллюстрирует пример разделения изображения (900) на слайсы при растровом сканировании согласно варианту осуществления. Изображение (900) может быть разделено на 12 плиток (901) - (912) (например, 12 плиток в 3 столбцах (или столбцах плиток) и 4 строках (или строках плиток)) и 3 слайса растрового сканирования (921) - (923). Например, слайс (921) растрового сканирования включает в себя плитки (901) - (902), слайс растрового сканирования (922) включает в себя плитки (903) - (907), а слайс (923) растрового сканирования включает плитки (908) - (912). В примере подразделы в изображении (900) включают в себя слайсы (921) - (923) растрового сканирования. В примере подразделы в изображении (900) включают в себя плитки (901) - (912). В качестве альтернативы, подразделы в изображении (900) включают в себя группы плиток.
[112] Картинку можно разбить на плитки и прямоугольные слайсы. Фиг. 10 иллюстрирует пример прямоугольного разделения изображения (1000) на слайсы согласно варианту осуществления. Изображение (1000) можно разделить на 24 плитки (1001) - (1024) (например, 24 плитки в 6 столбцах (или столбцах плиток) и 4 строках (или строках плиток)) и 9 прямоугольных слайсов (1031) - (1039). Например, прямоугольный слайс (1031) включает в себя плитки (1001) - (1002); прямоугольный слайс (1032) включает в себя плитки (1003) - (1004); прямоугольный слайс (1033) включает плитки (1005) - (1006); прямоугольный слайс (1034) включает в себя плитки (1007), (1008), (1013) и (1014); прямоугольный слайс (1035) включает в себя плитки (1009), (1010), (1015) и (1016); прямоугольный слайс (1036) включает в себя плитки (1011), (1012), (1017) и (1018); прямоугольный слайс (1037) включает плитки (1019) - (1020); прямоугольный слайс (1038) включает плитки (1021) - (1022); и прямоугольный слайс (1039) включает в себя плитки (1023) - (1024). В примере подразделы в изображении (1000) включают в себя прямоугольные слайсы (1031) - (1039). В примере подразделы в изображении (1000) включают в себя плитки (1001) - (1024).
[113] Изображение можно разбить на плитки, кирпичи и прямоугольные слайсы. Фиг. 11 иллюстрирует пример изображения (1100), разделенного на плитки, кирпичи (1101) - (1111) и прямоугольные слайсы (1121) - (1124) согласно варианту осуществления. Изображение (1100) может быть разделено на четыре плитки (например, два столбца плитки и две строки плитки), одиннадцать кирпичей (1101) - (1111) и четыре прямоугольных слайса (1121) - (1124). Верхняя левая плитка включает один кирпич (1101), верхняя правая плитка включает пять кирпичей (1102) - (1106), нижняя левая плитка включает два кирпича (1107) - (1108), а нижняя правая плитка включает три кирпича (1109) - (1111). Прямоугольный слайс (1121) включает в себя кирпичи (1101), (1107) и (1108); прямоугольный слайс (1122) включает в себя кирпичи (1102) и (1103); прямоугольный слайс (1123) включает в себя кирпичи (1104) - (1106); и прямоугольный слайс (1124) включает в себя кирпичи (1109) - (1111). В примере подразделы в изображении (1100) включают в себя прямоугольные слайсы (1121) - (1124).
[114] Фиг. 12 иллюстрирует пример разделения субизображения изображения (1200) согласно варианту осуществления. Изображение (1200) может быть разделено на 18 плиток, 24 слайса и 24 субизображения. В примере с фиг. 12 каждый из 24 слайсов соответствует и идентичен другому из 24 субизображений. Каждая из 12 плиток на левой стороне изображения (1200) покрывает слайс, включающий 4 на 4 CTU, и каждая из 6 плиток на правой стороне изображения (1200) покрывает два вертикально уложенных слайса, включая 2 на 2 CTU.. 24 слайса, а также 24 субизображения имеют разные размеры.
[115] Изобретение включает в себя варианты осуществления, относящиеся к управлению синтаксисом высокого уровня (HLS) для видеокодирования.
[116] Синтаксис высокого уровня или структура синтаксиса высокого уровня для уровня кодирования высокого уровня может определять параметры, которые могут совместно использоваться уровнями кодирования более низкого уровня. Например, размер CTU или максимальный размер блока кодирования указывается на уровне последовательности или в наборе параметров последовательности (SPS) и не изменяется от одного изображения к другому. Примерный HLS может включать в себя SPS, набор параметров изображения (PPS), заголовок изображения, заголовок слайса, адаптивный набор параметров (APS) и т.п.
[117] Каждый HLS может иметь определенный диапазон покрытия, например пространственный диапазон. PPS может определять общие элементы синтаксиса, которые могут совместно использоваться одним или более изображений. Заголовок изображения может определять общие элементы синтаксиса, используемые в изображении. HLS более низкого уровня может иметь приоритет перед тем, что предоставляется в HLS более высокого уровня, к которому относится более низкий уровень. Например, заголовок текущего изображения может иметь приоритет над тем, что предоставляется в PPS, к которому относится текущее изображение. Заголовок слайса, который принадлежит текущему изображению, может переопределить один или более элементов синтаксиса (также называемых параметрами), которые назначены в заголовке изображения текущего изображения.
[118] В общем, элементы общего синтаксиса, о которых сообщается в заголовке каждого слайса, могут быть помещены в заголовок изображения, если общие элементы синтаксиса не изменяются от одного слайса к другому.
[119] В некоторых примерах с использованием заголовков изображений и заголовков фрагментов определенные элементы синтаксиса в заголовке фрагмента или в заголовке изображения являются специфическими для определенных инструментов кодирования. Определенные элементы синтаксиса могут использоваться при использовании определенных инструментов кодирования. В некоторых сценариях определенные элементы синтаксиса не нужны, когда не используются определенные инструменты кодирования. Таким образом, определенные элементы синтаксиса могут использоваться не все время. Сигнализация о неиспользуемых элементах синтаксиса в заголовке (например, заголовке слайса, заголовке изображения) может не потребоваться. Разработка правильной структуры синтаксиса в HLS, где элементы синтаксиса на каждом уровне HLS правильно структурированы, полезно, например, для повышения эффективности кодирования за счет отказа от отправки элементов синтаксиса, которые не будут использоваться при кодировании видео.
[120] Согласно аспектам изобретения, флаг высокого уровня (также называемый флагом управления высокого уровня) может сигнализироваться, но не ограничивается сигнализацией, на одном или более уровней, включая уровень (например, SPS, PPS), соответствующий одному или более изображений, уровню изображения (например, заголовку изображения) и/или уровню подраздела, соответствующему подразделу в изображении. Подраздел может включать в себя слайс (например, заголовок слайса), плитку, группу плиток и т.п., и, таким образом, уровень подраздела может включать в себя уровень слайса, уровень плитки, уровень группы плиток или т.п. В варианте осуществления флаг высокого уровня сигнализируется на одном или более из следующих уровней: SPS, PPS, заголовок изображения, заголовок слайса, плитка, группа плиток и любой подходящий уровень субизображения.
[121] В некоторых вариантах осуществления инструменты кодирования включают в себя интер-кодирование для кодирования подразделов в изображении, и подразделы с интер-кодированием могут называться интер-кодированными подразделами. В одном примере интер-кодированные подразделы включают в себя интер-кодированные слайсы, плитки с интер-кодированием и т.п. Инструменты кодирования включают в себя только интра-кодирование для кодирования подразделов в изображении, а подразделы только с интра-кодированием могут называться интра-кодированными подразделами. В одном примере интра-кодированные подразделы включают в себя интра-кодированные слайсы, интра-кодированные плитки и т.п. Следует отметить, что интер-кодированные подразделы или подразделы с интер-кодированием могут включать или не включать в себя интра-кодирование или интра-предсказание.
[122] Определенные элементы или параметры синтаксиса (например, набор элементов или параметров синтаксиса) используются или рассматриваются только для инте-кодирования или для интер-предсказания интер-кодированных подразделов (например, интер-кодированных слайсов), и, таким образом, определенные элементы синтаксиса могут упоминаться как элементы интер-синтаксиса, которые используются только для интер-кодирования или существуют только в интер-кодированных подразделах. Об элементах интер-синтаксиса можно сигнализировать на любом подходящем уровне. Согласно аспектам изобретения, элементы интер-синтаксиса могут сигнализироваться на высоком уровне, например, в HLS. Элементы интер-синтаксиса могут включать в себя любые подходящие элементы синтаксиса, например, используемые или рассматриваемые только для интер-предсказания. Элементы интер-синтаксиса могут включать в себя, помимо прочего, один или более из следующих элементов синтаксиса: максимальное количество кандидатов на слияние, максимальное количество кандидатов на слияние на основе аффинных или субблоков, максимальное количество треугольных кандидатов на слияние, количество индекса или индексов референтного изображения в Списке 0 референтных изображений (L0), количество индексов или индексов референтных изображений в Списке 1 референтных изображений (L1), флаг включения временного предсказания вектора движения (TMVP) и референтный индекс, указывающий на совмещенное изображение, уточнение вектора движения на стороне декодера уровня слайса (DMVR) и флаг включения двунаправленного оптического потока (BDOF), флаг отключения дробного пикселя уровня слайса для режима слияния с разностью векторов движения (MMVD), mvd_l1_zero_flag, a cabac_init_flag, temporal_mvp_enabled_flag, collocated_from_l0_flag, collocated_ref_idx и/или тому подобное. В некоторых примерах, дополнительно определяется, например, дополнительным флагом (ами), сигнализируются ли элементы интер-синтаксиса или подмножество элементов интер-синтаксиса.
[123] В варианте осуществления определенные элементы или параметры синтаксиса (например, набор элементов или параметров синтаксиса) используются или учитываются только для интра-кодирования или для интра-предсказания интра-кодированных подразделов (например, интра-кодированных слайсов), и таким образом, определенные элементы синтаксиса могут упоминаться как элементы интра-синтаксиса, которые используются только для интра-кодирования или существуют только в интра-кодированных подразделах. Об элементах интер-синтаксиса можно сигнализировать на любом подходящем уровне. Согласно аспектам изобретения, элементы интер-синтаксиса могут сигнализироваться на высоком уровне, например, в HLS. Элементы интер-синтаксиса могут включать в себя любые подходящие элементы синтаксиса, например, используемые или рассматриваемые только для интер-предсказания. Элементы интра-синтаксиса могут включать в себя, помимо прочего, один или более из следующих элементов синтаксиса: элементы синтаксиса, связанные с двойным деревом (например, все элементы синтаксиса, связанные с двойным деревом), которые могут применяться только к интра-кодированным слайсам, такие как log2_diff_min_qt_min_cb_chroma (например, slice_log2_diff_min_qt_min_cb_chroma на уровне среза), в max_mtt_hierarchy_depth_chroma (например, slice_max_mtt_hierarchy_depth_chroma на уровне среза), log2_diff_max_bt_min_qt_chroma (например, pic_log2_diff_max_bt_min_qt_chroma на уровне изображения), log2_diff_max_tt_min_qt_chroma (например, pic_log2_diff_max_tt_min_qt_chroma). В некоторых примерах, дополнительно определяется, например, дополнительным флагом (ами), сигнализируются ли элементы интер-синтаксиса или подмножество элементов интер-синтаксиса.
[124] Согласно аспектам изобретения информация кодирования для одного или более изображений, включая текущее изображение, может быть получена из кодированного битового потока видео. По меньшей мере один флаг в информации кодирования может указывать один или более допустимых типов кодирования для подразделов в текущем изображении. Один или более допустимых типов кодирования могут включать в себя по меньшей мере одно из интра-кодирования и интер-кодирования для подразделов. На основе по меньшей мере одного флага можно определить, следует ли декодировать элементы интра-синтаксиса, используемые только для кодирования интра-подразделов, и следует ли декодировать элементы интер-синтаксиса, используемые только для кодирования интер-подразделов. Элементы интра-синтаксиса в информации кодирования могут быть декодированы на основе элементов интра-синтаксиса, которые должны быть декодированы. Элементы интер-синтаксиса в информации кодирования могут быть кодированы на основе элементов интер-синтаксиса, определенных как подлежащие декодированию. В примере по меньшей мере один флаг передается в PPS для одного или более изображений, включая текущее изображение. В примере по меньшей мере один флаг сообщается в заголовке изображения для текущего изображения. Подразделы могут включать в себя любые подходящие разделы в текущем изображении, такие как слайс(ы), плитка(и) и/или группа(ы) плиток в текущем изображении.
[125] По меньшей мере один флаг может включать в себя первый флаг, указывающий, разрешен ли интер-кодированный подраздел в текущем изображении, и/или второй флаг, указывающий, разрешен ли интра-кодированный подраздел в текущем изображении.
[126] Первый флаг может быть флагом разрешения между подразделами для текущего изображения, таким как флаг разрешения между слайсами или ph_inter_slice_allowed_flag. Первый флаг, равный 0 (или ложь), может указывать на то, что все кодированные подразделы (например, слайсы) текущего изображения имеют тип кодирования интра-кодирования, например, все кодированные слайсы являются I слайсами или типом слайса (например, sh_slice_type), равным 2, и, таким образом, в текущем изображении не допускается интер-кодированный подраздел. Первый флаг, равный 1 (или истина), может указывать на то, что тип кодирования интер-кодирования разрешен в текущем изображении. Таким образом, в текущем изображении может быть или не быть один или более интер-кодированных подразделов (например, слайсов). Интер-кодированный подраздел(ы) может включать B-слайс (ы) (например, тип слайса, равный 0) и/или P-слайс(ы) (например, тип слайса, равный 1). Когда первый флаг равен 1, подразделы интра-кодирования могут быть разрешены или не разрешены в текущем изображении.
[127] Второй флаг может быть флагом разрешения внутри подраздела для текущего изображения, таким как флаг разрешения интра-сегмента или ph_ intra_slice_allowed_flag. Второй флаг, равный 0 (или ложь), может указывать на то, что все кодированные подразделы (например, слайсы) текущего изображения имеют тип кодирования интер-кодирования, например, все кодированные слайсы являются B- и/или P-слайсами, и, таким образом, в текущем изображении не допускаются интра-кодированные подразделы. Первый флаг, равный 1 (или истина), может указывать на то, что тип кодирования интра-кодирования разрешен в текущем изображении. Таким образом, в текущем изображении может быть или не быть один или более интра-кодированных подразделов (например, слайсов). Интра-кодированный подраздел(ы) может включать в себя I слайс. Когда первый флаг равен 1, подразделы интер-кодирования могут быть разрешены или не разрешены в текущем изображении.
[128] В примере, когда второй флаг (например, ph_intra_slice_allowed_flag) отсутствует, например, когда второй флаг не сигнализируется, значение второго флага может быть выведено равным 1. В примере, когда второй флаг не сигнализируется, предполагается, что значение второго флага равно 1, и интер-кодирование не разрешено в текущем изображении.
[129] В варианте осуществления первый флаг является ложным, указывая на то, что в текущем изображении не разрешен интер-кодированный подраздел. Следовательно, по меньшей мере один флаг может включать в себя только первый флаг и не должен включать второй флаг. Фиг. 13A-13D - пример структуры синтаксиса высокого уровня согласно варианту осуществления. Например, по меньшей мере один флаг включает в себя только первый флаг, как указано прямоугольником (1310) на фиг. 13А. Хотя второй флаг не сигнализируется, значение второго флага может быть выведено равным 1, как описано выше. Один или более допустимых типов кодирования соответствуют интра-кодированию для подразделов. Таким образом, все кодированные подразделы (например, слайсы) текущего изображения интра-кодируются. Например, все кодированные слайсы - это I слайсы. Соответственно, не требуется сигнализировать элемент интер-синтаксиса, и, таким образом, не требуется декодировать элемент интер-синтаксиса для текущего изображения. Кроме того, элементы интра-синтаксиса могут сигнализироваться в HLS и, таким образом, могут быть определены для декодирования для подразделов, как указано прямоугольниками (1311) - (1312) на фиг. 13B и 13C. О том, какой из элементов интра-синтаксиса сигнализируется, и который должен быть декодирован, можно дополнительно определить на основе дополнительных флагов, как показано прямоугольниками (1311) - (1312) на фиг. 13B и 13C.
[130] В варианте осуществления по меньшей мере один флаг может включать первый флаг и второй флаг. Первый флаг может указывать на то, что в текущем изображении не разрешены подразделы с интер-кодированием. Второй флаг может указывать на то, что в текущем изображении не разрешены подразделы с интра-кодированием. Соответственно, один или более допустимых типов кодирования соответствуют интра-кодированию для подразделов. Таким образом, все кодированные подразделы (например, слайсы) текущего изображения являются интра-кодированными или интра-подразделами. В одном примере для текущего изображения не должен декодироваться никакой элемент интер-синтаксиса. Кроме того, элементы интра-синтаксиса могут быть декодированы для подразделов.
[131] В варианте осуществления первый флаг является истинным и указывает, что интер-кодированный подраздел разрешен в текущем изображении. По меньшей мере один флаг может включать первый флаг и второй флаг. Об элементах интер-синтаксиса можно сигнализировать в HLS, и, таким образом, можно определить, что они должны быть декодированы по меньшей мере для одного из подразделов с помощью интер-кодирования, как показано прямоугольником (1313) на фиг. 13C. О том, какой из элементов интер-синтаксиса сигнализируется, и который должен быть декодирован, может быть дополнительно определено на основе дополнительных флагов, как показано прямоугольником (1313) на фиг. 13C. Если второй флаг является ложным, что указывает на то, что в текущем изображении не разрешено никакое интра-кодирование подраздела, один или более допустимых типов кодирования определяется как интер-кодирование для подразделов, и никакой элемент интра-синтаксиса не должен быть декодируется для текущего изображения. Если второй флаг является истинным, указывая, что интра-кодированный подраздел разрешен в текущем изображении, один или более допустимых типов кодирования могут включать в себя интер-кодирование и интра-кодирование для подразделов. Об элементах интра-синтаксиса можно сигнализировать в HLS, как указано прямоугольниками (1311) - (1312) на фиг. 13B и 13C. Элементы интра-синтаксиса могут быть декодированы для по меньшей мере одного из подразделов с помощью интра-кодирования. О том, какой из элементов интра-синтаксиса сигнализируется, и который должен быть декодирован, можно дополнительно определить на основе дополнительных флагов, как показано прямоугольниками (1311) - (1312) на фиг. 13B и 13C.
[132] Согласно аспектам изобретения, флаг высокого уровня (или флаг управления высокого уровня), связанный с уровнем кодирования высокого уровня, может указывать, что набор параметров (например, элементы интра-синтаксиса или элементы интер-синтаксиса) для конкретного инструмента кодирования (например, интра-кодирование или интер-кодирование) должно использоваться для одного или более уровней кодирования низкого уровня, соответствующих уровню кодирования высокого уровня. В некоторых примерах набор параметров используется только для определенных разделов нижнего уровня (например, подразделов в изображении) или применим к ним только в разделе верхнего уровня (например, в изображении, которое включает в себя подразделы), когда конкретный инструмент кодирования используется или применим к определенным разделам низкого уровня в разделе высокого уровня. Таким образом, набор параметров может сигнализироваться в HLS (например, заголовок изображения, PPS) для раздела высокого уровня (например, изображения) только тогда, когда конкретный инструмент кодирования используется по меньшей мере для одного из определенных разделов низкого уровня. Когда конкретный инструмент кодирования не используется или неприменим к какому-либо из определенных разделов низкого уровня, набор параметров не передается в HLS для раздела высокого уровня, и, таким образом, может повысить эффективность кодирования за счет сокращения количества элементов синтаксиса, сигнализированных в HLS. Кроме того, кодеру и/или декодеру не нужно кодировать набор параметров. Например, набор параметров должен передаваться в HLS только для раздела высокого уровня, когда конкретный инструмент кодирования используется по меньшей мере для одного из определенных разделов низкого уровня.
[133] В примере, элементы интер-синтаксиса или элементы синтаксиса, связанные с интер-предсказанием, должны сигнализироваться только (например, в заголовке изображения или PPS), когда изображение включает в себя по меньшей мере один интер-кодированный подраздел (например, по меньшей мере один интер-кодированный слайс). В противном случае, когда изображение не включает интер-кодированный подраздел, все элементы интер-синтаксиса не должны сигнализироваться, например, не сигнализируется ни один элемент интер-синтаксиса.
[134] Согласно аспектам изобретения, по меньшей мере один флаг может включать в себя третий флаг, указывающий, включают ли подразделы только интра-кодированные подразделы с интра-кодированием, и/или четвертый флаг, указывающий, включают ли подразделы только интер-кодированные подразделы с интер-кодированием.
[135] Поскольку третий флаг может указывать, включают ли подразделы только интра-кодированные подразделы с интра-кодированием, третий флаг может указывать, разрешен ли интер-кодированный подраздел в текущем изображении. Например, если третий флаг указывает, что подразделы включают только интра-кодированные подразделы, тогда интер-кодированный подраздел не разрешен в текущем изображении. В противном случае, если третий флаг указывает, что подразделы включают не только интра-кодированные подразделы, то в текущем изображении допускается интер-кодированный подраздел. Следовательно, и первый флаг и третий флаг могут указывать, разрешен ли интер-кодированный подраздел в текущем изображении.
[136] Поскольку четвертый флаг может указывать, включают ли подразделы только интер-кодированные подразделы с интер-кодированием, четвертый флаг может указывать, разрешен ли интра-кодированный подраздел в текущем изображении. Например, если третий флаг указывает, что подразделы включают только интер-кодированные подразделы, тогда интра-кодированный подраздел не разрешен в текущем изображении. В противном случае, если третий флаг указывает, что подразделы включают не только интер-кодированные подразделы, то в текущем изображении допускается интра-кодированный подраздел. Следовательно, и второй флаг и четвертый флаг могут указывать, разрешен ли интер-кодированный подраздел в текущем изображении.
[137] В варианте осуществления третий флаг (например, флаг управления высокого уровня в заголовке изображения) упоминается как только интра-флаг (например, pic_intra_only_flag). Только интра-флаг может сигнализироваться, чтобы указать, все ли подразделы (например, слайсы) изображения имеют только интра-кодирование (или интра-предсказание, не интер-предсказание). Соответственно, только интра-флаг сигнализируется, чтобы указать, разрешен ли интер-кодированный подраздел или интер-кодирование в текущем изображении. Когда только интра-флаг имеет значение «истина», все подразделы изображения имеют только интра-кодирование, и в текущем изображении не разрешены никакие интер-кодированные подразделы или интер-кодирование. В противном случае, когда только интра-флаг имеет значение «ложь», тогда не все подразделы изображения имеют интра-кодирование, и в текущем изображении разрешен интер-кодированный подраздел или интер-кодирование.
[138] Когда только интра-флаг имеет значение «истина», только элементы интра-синтаксиса (или элементы синтаксиса, связанные с интра-кодированием) должны сигнализироваться в заголовке изображения. В противном случае, когда только интра-флаг имеет значение «ложь», элементы интра-синтаксиса могут сигнализироваться.
[139] В примере элементы интра-синтаксиса (например, все элементы интра-синтаксиса) или элементы синтаксиса, связанные с интра-предсказанием, используемые только для интра-подразделов, должны сигнализироваться только (например, в заголовке изображения или PPS), когда изображение включает по меньшей мере один интра-кодированный подраздел (например, по меньшей мере один интра-кодированный срез). В противном случае, когда изображение не включает интра-кодированный подраздел, все элементы интра-синтаксиса не должны сигнализироваться, например, не сигнализируется ни один элемент интра-синтаксиса.
[140] В варианте осуществления третий флаг (например, флаг управления высокого уровня в заголовке изображения) упоминается как только интер-флаг (например, pic_inter_only_flag). Только интер-флаг может сигнализироваться, чтобы указать, все ли подразделы (например, слайсы) изображения имеют только интер-кодирование (или интер-предсказание, предсказание, не связанное с интра). Соответственно, только интер-флаг сигнализируется, чтобы указать, разрешен ли интра-кодированный подраздел или интра-кодирование в текущем изображении. Когда только интер-флаг имеет значение «истина», все подразделы изображения имеют только интер-кодирование, и в текущем изображении не допускается интра-кодированный подраздел или интра-кодирование. В противном случае, когда только интер-флаг является ложным, тогда не все подразделы изображения имеют интер-кодирование, и в текущем изображении разрешен интра-кодированный подраздел или интра-кодирование. Когда только интер-флаг имеет значение «истина», элементы интра-синтаксиса не нужно сигнализировать в заголовке изображения. Например, в заголовке изображения необходимо сигнализировать только элементы интер-синтаксиса (или элементы синтаксиса, связанные с интер-кодированием). В противном случае, когда только интер-флаг имеет значение «ложь», в изображении могут использоваться один или более интра-подразделов, и могут передаваться сигналы об элементах интра-синтаксиса.
[141] На фиг. 14A-14B показаны примерные таблицы 1-2 синтаксиса, относящиеся к только интра-флагу (например, pic_intra_only_flag) и только интер-флагу (например, pic_inter_only_flag), соответственно, согласно изобретению. Как показано на фиг. 14A, когда только интра-флаг имеет значение "истина", то элементы синтаксиса (например, pic_temporal_mvp_enabled_flag, mvd_l1_zero_flag, pic_six_minus_max_num_merge_cand, pic_five_minus_max_num_subblock_merge_cand, pic_fpel_mmvd_enabled_flag, pic_disable_bdof_dmvr_flag и pic_max_num_merge_cand_minus_max_num_triangle_cand) не сигнализируются. В противном случае, когда только интра-флаг имеет значение «ложь», элементы интер-синтаксиса могут сигнализироваться. О том, какой из элементов интер-синтаксиса сигнализируется, можно определить на основе дополнительных флагов, таких как показанные на фиг. 14А.
[142] Как показано на фиг. 14B, когда только интер-флаг имеет значение «истина», элементы интра-синтаксиса (например, pic_log2_diff_min_qt_min_cb_chroma, pic_max_mtt_hierarchy_depth_chroma, pic_log2_diff_max_bt_min_qt_chroma, pic_log2_diff_min_max_max_max_max) не сигнализируются. В противном случае, когда только интер-флаг имеет значение «ложь», элементы интра-синтаксиса могут сигнализироваться. О том, какой из элементов интер-синтаксиса сигнализируется, можно определить на основе дополнительных флагов, таких как показанные на фиг. 14B.
[143] На основании описания к фиг. 14A-14B, когда только интра-флаг имеет значение «истина», элементы интер-синтаксиса не сигнализируются, и только элементы интра-синтаксиса могут сигнализироваться. В примере по меньшей мере один флаг включает в себя только третий флаг (или только интра-флаг), а третий флаг указывает, что подразделы в текущем изображении включают только интра-кодированные подразделы. Таким образом, не сигнализируется ни один элемент интер-синтаксиса, и никакой элемент интер-синтаксиса не должен декодироваться для текущего изображения. Элементы интра-синтаксиса могут быть определены для декодирования для интра-кодированных подразделов.
[144] Когда только интер-флаг имеет значение «истина», элементы интра-синтаксиса не сигнализируются, и только элементы интер-синтаксиса могут сигнализироваться. В примере по меньшей мере один флаг включает в себя только четвертый флаг (или только интра-флаг), и четвертый флаг указывает, что подразделы в текущем изображении включают только интер-кодированные подразделы. Таким образом, не сигнализируется ни один элемент интра-синтаксиса, и никакой элемент интра-синтаксиса не должен декодироваться для текущего изображения. Элементы интер-синтаксиса могут быть определены для декодирования для интер-кодированных подразделов.
[145] Когда и только интер-флаг и только интра-флаг являются ложными, элементы интра-синтаксиса и элементы интер-синтаксиса могут сигнализироваться, например, в зависимости от дополнительных условий, перечисленных на фиг. 14A-14B. В примере по меньшей мере один флаг включает в себя третий флаг и четвертый флаг, указывающие, что подразделы в текущем изображении включают в себя по меньшей мере один интра-кодированный подраздел с интра-кодированием и по меньшей мере один интер-кодированный подраздел с интер-кодированием. Элементы интер-синтаксиса могут быть определены для декодирования для по меньшей мере интер-кодированных подразделов. Элементы интра-синтаксиса могут быть определены для декодирования для по меньшей мере интра-кодированных подразделов.
[146] Согласно аспектам изобретения, первый флаг или третий флаг могут указывать, разрешен ли интер-кодированный подраздел в текущем изображении, и включают ли подразделы только интра-кодированные подразделы с интра-кодированием.
[147] В некоторых примерах первый флаг или третий флаг определяют один или более допустимых типов кодирования для подразделов в текущем изображении, и, таким образом, второй флаг и четвертый флаг не нужны. Например, когда первый флаг - ложь или третий флаг - истина, первый флаг или третий флаг указывает, что интер-кодированный подраздел не разрешен в текущем изображении, и подразделы включают в себя только интра-кодированные подразделы с интра-кодированием.
[148] Согласно аспектам изобретения второй флаг или четвертый флаг могут указывать, разрешен ли интра-кодированный подраздел в текущем изображении, и включают ли подразделы только интер-кодированные подразделы с интер-кодированием.
[149] В некоторых примерах второй флаг или четвертый флаг определяют один или более допустимых типов кодирования для подразделов в текущем изображении, и, таким образом, первый флаг и третий флаг не нужны. Например, когда второй флаг - ложь или четвертый флаг - истина, второй флаг или четвертый флаг указывает, что интра-кодированный подраздел не разрешен в текущем изображении, и подразделы включают только интер-кодированные подразделы с интер-кодированием.
[150] Согласно аспектам изобретения, изображение может иметь тип изображения, такой как интра-изображение, интер-изображение и т.п. Таким образом, может не потребоваться сигнализация флагов управления высокого уровня (например, pic_intra_only_flag и pic_inter_only_flag), и соответствующие значения для флагов управления высокого уровня могут быть получены из типа изображения. В примере тип изображения передается в HLS.
[151] В примере, если текущее изображение имеет тип изображения как только интра-изображение (например, все слайсы в текущем изображении являются I-слайсами), тогда pic_intra_only_flag может быть выведено как истинное. В другом примере, если текущее изображение имеет тип изображения как внешнее изображение (например, все слайсы в текущем изображении являются P- или B-слайсами), pic_inter_only_flag может быть выведено как истинное. В другом примере, если текущее изображение имеет тип изображения, указывающий, что в текущем изображении допустимы как внутренний слайс, так и промежуточный слайс, оба pic_intra_only_flag и pic_inter_only_flag могут быть выведены как ложные.
[185] Фиг. 15 - блок-схема, описывающая процесс (1500) согласно варианту осуществления. Процесс (1500) может использоваться для восстановления блока в изображении кодированной видеопоследовательности. Процесс (1500) может использоваться при реконструкции блока, чтобы сгенерировать блок предсказания для восстанавливаемого блока. Термин «блок» можно интерпретировать как блок предсказания, CB, CU и т.п. В различных вариантах осуществления процесс (1500) выполняется схемой обработки, например схемой обработки в оконечных устройствах (310), (320), (330) и (340), схемой обработки, которая выполняет функции видеокодера (403), схему обработки, которая выполняет функции видеодекодера (410), схему обработки, которая выполняет функции видеодекодера (510), схему обработки, которая выполняет функции видеокодера (603), и т.п. В некоторых вариантах осуществления процесс (1500) реализован в программных инструкциях, таким образом, когда схема обработки выполняет программные инструкции, схема обработки выполняет процесс (1500). Процесс начинается на (S1501) и переходит на (S1510).
[186] На этапе (S1510) информация кодирования для текущего изображения может быть принята из кодированного потока битов видео. По меньшей мере один флаг в информации кодирования может указывать один или более допустимых типов кодирования для подразделов в текущем изображении. Один или более допустимых типов кодирования могут включать в себя по меньшей мере одно из интра-кодирования и интер-кодирования для подразделов. По меньшей мере один флаг может быть флагом управления высокого уровня, о котором сигнализирует в HLS, например, PPS для одного или более изображений, включая текущее изображение, заголовок изображения для текущего изображения и т.п. В примере подразделы включают по меньшей мере один слайс, по меньшей мере одну плитку или по меньшей мере одну группу плиток в текущем изображении.
[187] По меньшей мере один флаг может включать в себя первый флаг и/или второй флаг. Первый флаг или третий флаг могут указывать, разрешен ли интер-кодированный подраздел в текущем изображении, и включают ли подразделы только интра-кодированные подразделы с интра-кодированием. Второй флаг или четвертый флаг могут указывать, разрешен ли интра-кодированный подраздел в текущем изображении, и включают ли подразделы только интер-кодированные подразделы с интер-кодированием.
[188] На этапе (S1520) на основе по меньшей мере одного флага можно определить, следует ли декодировать элементы интра-синтаксиса, используемые только для кодирования интра-подразделов, и следует ли декодировать элементы интер-синтаксиса, используемые только для кодирования интер-подразделов. В различных примерах, поскольку один или несколько типов кодирования включают в себя интра-кодирование и/или интер-кодирование, по меньшей мере один из элементов интра-синтаксиса и элементы интер-синтаксиса должен быть декодирован, и, таким образом, на основе по меньшей мере одного флага может быть определено, следует ли декодировать элементы интра-синтаксиса и/или элементы интер-синтаксиса. Когда только элементы интра-синтаксиса определены для декодирования, процесс (1500) переходит к (S1530). Когда только элементы интер-синтаксиса определены как подлежащие декодированию, процесс (1500) переходит к (S1540). Когда элементы интра-синтаксиса и элементы интер-синтаксиса определены как подлежащие декодированию, процесс (1500) переходит к (S1550).
[189] На (S1530) элементы интра-синтаксиса в информации кодирования могут быть декодированы. Процесс (1500) переходит к (S1599) и завершается.
[190] На (S1540) элементы интер-синтаксиса в информации кодирования могут быть декодированы. Процесс (1500) переходит к (S1599) и завершается.
[191] На этапе (S1550) могут быть декодированы как элементы интра-синтаксиса, так и элементы интер-синтаксиса в информации кодирования. Процесс (1500) переходит к (S1599) и завершается.
[192] Процесс (1500) можно соответствующим образом адаптировать. Этап(ы) в процессе (1500) может быть изменен и/или опущен. Могут быть добавлены дополнительные этапы. Может быть использован любой подходящий порядок реализации. Например, блок кодирования в одном из подразделов восстанавливается на основе элементов интра-синтаксиса или элементов интер-синтаксиса, связанных с одним из подразделов.
[193] Варианты осуществления в изобретении могут использоваться по отдельности или комбинироваться в любом порядке. Кроме того, каждый из способов (или вариантов осуществления), кодер и декодер могут быть реализованы схемой обработки (например, одним или более процессоров или одной или более интегральных схем). В одном примере один или более процессоров выполняют программу, которая хранится на невременном машиночитаемом носителе.
[194] Техники, описанные выше, могут быть реализованы в виде компьютерного программного обеспечения с использованием машиночитаемых инструкций и физически сохранены на одном или более машиночитаемых носителей. Например, на фиг. 16 показана компьютерная система (1600), подходящая для реализации определенных вариантов осуществления раскрытого изобретения.
[195] Компьютерное программное обеспечение может быть закодировано с использованием любого подходящего машинного кода или компьютерного языка, который может быть предметом сборки, компиляции, связывания или подобных механизмов для создания кода, содержащего инструкции, которые могут выполняться напрямую или посредством интерпретации, выполнения микрокода и и т.п., одним или более центральных процессоров компьютера (CPU), блоками обработки графики (GPU) и т.п.
[196] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства Интернета вещей и т.п.
[197] Компоненты, показанные на фиг. 16 для компьютерной системы (1600) являются примерными по своей природе и не предназначены для предложения каких-либо ограничений в отношении объема использования или функциональных возможностей компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Конфигурация компонентов также не должна интерпретироваться как имеющая какую-либо зависимость или требование, относящееся к любому одному или комбинации компонентов, проиллюстрированных в примерном варианте осуществления компьютерной системы (1600).
[198] Компьютерная система (1600) может включать в себя определенные устройства ввода с интерфейсом человека. Такое устройство ввода с интерфейсом человека может реагировать на ввод одним или несколькими пользователями-людьми посредством, например, тактильного ввода (например, нажатия клавиш, смахивания, движения перчаток данных), звукового ввода (например, голоса, хлопков в ладоши), визуального ввода (например: жесты), обонятельного ввода (не изображен). Устройства с человеческим интерфейсом также могут использоваться для захвата определенных носителей, не обязательно напрямую связанных с сознательным вводом человеком, таких как звук (например, речь, музыка, окружающий звук), изображения (например, сканированные изображения, фотографические изображения, полученные из камера для неподвижных изображений), видео (например, двухмерное видео, трехмерное видео, включая стереоскопическое видео).
[199] Устройства ввода с человеческим интерфейсом могут включать в себя одно или более из (только по одному из каждого изображенного): клавиатура (1601), мышь (1602), трекпад (1603), сенсорный экран (1610), перчатка для данных (не показана), джойстик (1605), микрофон (1606), сканер (1607), фотоаппарат (1608).
[200] Компьютерная система (1600) может включать в себя определенные устройства ввода с человеческим интерфейсом. Такие устройства вывода с человеческим интерфейсом могут стимулировать чувства одного или нескольких пользователей-людей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода с человеческим интерфейсом могут включать в себя тактильные устройства вывода (например, тактильную обратную связь от сенсорного экрана (1610), перчатку для данных (не показан) или джойстик (1605), но также могут быть устройства тактильной обратной связи, которые не служат в качестве устройств ввода), устройства вывода звука (например: динамики (1609), наушники (не показаны)), устройства вывода изображения (например, экраны (1610), включая ЭЛТ-экраны, ЖК-экраны, плазменные экраны, OLED-экраны, каждое с или без возможности ввода с сенсорного экрана, каждый с возможностью тактильной обратной связи или без нее - некоторые из которых могут быть способны выводить двухмерный визуальный вывод или более трехмерный вывод с помощью таких средств, как стереографический вывод; очки виртуальной реальности (не изображены), голографические дисплеи и дымовые баки (не изображены)) и принтеры (не изображены).
[201] Компьютерная система (1600) также может включать в себя доступные для человека устройства хранения и связанные с ними носители, такие как оптические носители, включая CD/DVD ROM/RW (1620) с CD/DVD или подобные носители (1621), флэш-накопитель (1622), съемный жесткий диск или твердотельный накопитель (1623), более старые магнитные носители, такие как лента и гибкий диск (не показаны), специализированные устройства на основе ROM/ASIC/PLD, такие как защитные ключи (не показаны) и т.п.
[202] Специалисты в данной области также должны понимать, что термин «машиночитаемый носитель», используемый в данном описании, не охватывает среды передачи, несущие волны или другие временные сигналы.
[203] Компьютерная система (1600) также может включать в себя интерфейс (1654) к одной или нескольким коммуникационным сетям (1655). Сети могут быть, например, беспроводными, проводными, оптическими. Кроме того, сети могут быть локальными, глобальными, городскими, автомобильными и промышленными, работающими в реальном времени, устойчивыми к задержкам и т.д. Примеры сетей включают в себя локальные сети, такие как Ethernet, беспроводные LAN, сотовые сети, включая GSM, 3G, 4G, 5G, LTE и т.п., проводные телевизионные или беспроводные глобальные цифровые сети, включая кабельное телевидение, спутниковое телевидение и наземное вещание, телевидение, автомобильное и промышленное оборудование, включая CANBus и т.д. Некоторым сетям обычно требуются адаптеры внешнего сетевого интерфейса, которые подключены к определенным портам данных общего назначения или периферийным шинам (1649) (например, к портам USB компьютерной системы (1600)); другие обычно интегрируются в ядро компьютерной системы (1600) путем присоединения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему ПК или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система (1600) может связываться с другими объектами. Такая связь может быть однонаправленной, только для приема (например, широковещательное телевидение), однонаправленной только для отправки (например, CANbus на определенные устройства CANbus) или двунаправленной, например, для других компьютерных систем, использующих локальную или глобальную территорию цифровых сетей. Определенные протоколы и стеки протоколов могут использоваться в каждой из этих сетей и сетевых интерфейсов, как описано выше.
[204] Вышеупомянутые устройства человеческого интерфейса, доступные человеку устройства хранения и сетевые интерфейсы могут быть присоединены к ядру (1640) компьютерной системы (1600).
[205] Ядро (1640) может включать в себя один или несколько центральных процессоров (ЦП) (1641), графических процессоров (ГП) (1642), специализированных программируемых процессоров в виде программируемых вентильных областей (ПЛИС) (1643), ускорителей аппаратного обеспечения под определенные задачи (1644), графических адаптеров (1650) и т.д. Эти устройства, а также постоянная память (ПЗУ) (1645), оперативная память (1646), внутреннее запоминающее устройство, такое как внутренние жесткие диски, не доступные пользователю, твердотельные накопители и т.п. (1647), могут быть подключены через системную шину (1648). В некоторых компьютерных системах системная шина (1648) может быть доступна в виде одного или нескольких физических разъемов для обеспечения возможности расширения за счет дополнительных процессоров, графических процессоров и т.п. Периферийные устройства могут быть подключены либо непосредственно к системной шине ядра (1648), либо через периферийную шину (1649). Например, дисплей (1610) может быть подключен к графическому адаптеру (1650). Архитектура периферийной шины включает PCI, USB и т.п.
[206] CPU (1641), GPU (1642), FPGA (1643) и ускорители (1644) могут выполнять определенные инструкции, которые в сочетании могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ROM (1645) или RAM (1646). Переходные данные также могут храниться в RAM (1646), тогда как постоянные данные могут храниться, например, во внутреннем запоминающем устройстве (1647). Быстрое хранение и извлечение на любое из устройств памяти могут быть включены за счет использования кэш-памяти, которая может быть тесно связана с одним или несколькими CPU (1641), GPU (1642), запоминающим устройством (1647), ROM (1645), RAM (1646) и тому подобное.
[207] Машиночитаемый носитель может содержать компьютерный код для выполнения различных операций, реализуемых компьютером. Носители и компьютерный код могут быть специально спроектированными и сконструированными для целей настоящего изобретения, или они могут быть хорошо известными и доступными для специалистов в области компьютерного программного обеспечения.
[208] В качестве примера, а не ограничения, компьютерная система, имеющая архитектуру (1600) и, в частности, ядро (1640), может обеспечивать функциональность за счет процессора(ов) (включая CPU, GPU, FPGA, ускорители и т.п.) исполняющего программное обеспечение, воплощенное на одном или нескольких материальных машиночитаемых носителях. Такие машиночитаемые носители могут быть носителями, связанными с доступным для пользователя массовым хранилищем, как описано выше, а также определенным хранилищем ядра (1640), которые имеют невременную природу, например, внутреннее хранилище большой емкости (1647) или ROM (1645). Программное обеспечение, реализующее различные варианты осуществления изобретения, может храниться в таких устройствах и выполняться ядром (1640). Машиночитаемый носитель может включать в себя одно или несколько запоминающих устройств или микросхем в соответствии с конкретными потребностями. Программное обеспечение может побудить ядро (1640) и, в частности, процессоры в нем (включая CPU, GPU, FPGA и т.п.) выполнять определенные процессы или определенные части конкретных процессов, описанных в данном документе, включая определение структур данных, хранящихся в RAM (1646) и изменение таких структур данных в соответствии с процессами, определенными программным обеспечением. Дополнительно или альтернативно, компьютерная система может обеспечивать функциональность в результате логики, встроенной в аппаратную схему или иным образом воплощенной в схеме (например, ускоритель (1644)), которая может работать вместо или вместе с программным обеспечением для выполнения определенных процессов или отдельные части конкретных процессов, описанных здесь. Ссылка на программное обеспечение может включать в себя логику и наоборот, где это уместно. Ссылка на машиночитаемый носитель может охватывать схему (например, интегральную схему (IC)), хранящую программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или и то, и другое, где это необходимо. Настоящее изобретение охватывает любую подходящую комбинацию аппаратного и программного обеспечения.
Приложение A. Сокращения
JEM: joint exploration model
VVC: универсальное кодирование видео
BMS: набор тестов
MV: Вектор движения
HEVC: высокоэффективное кодирование видео
MPM: наиболее вероятный режим
WAIP: широкоугольное внутреннее предсказание
SEI: дополнительная информация о расширении
VUI: информация об удобстве использования видео
GOP: группы изображений
TU: модули преобразования,
PU: единицы предсказания
CTU: единицы дерева кодирования
CTBs: блоки дерева кодирования
PBs: блоки предсказания
HRD: гипотетический референтный декодер
SDR: стандартный динамический диапазон
SNR: отношение сигнал / шум
CPU: центральные процессорные устройства
GPU: графические процессоры
CRT: электронно-лучевая трубка
LCD: жидкокристаллический дисплей;
OLED: органический светоизлучающий диод
CD: Компакт Диски
DVD: Цифровой видеодиск
ROM: Постоянное запоминающее устройство
RAM: запоминающее устройство с произвольным доступом
ASIC: Интегральная схема специального назначения
PLD: программируемое логическое устройство
LAN: локальная компьютерная сеть
GSM: Глобальная система мобильной связи
LTE: долговременное развитие
CANBus: шина сети контроллера
USB: универсальная последовательная шина
PCI: взаимосвязь периферийных компонентов
FPGA: Программируемая пользователем вентильная матрица
SSD: Твердотельный накопитель
IC: Интегральная схема
CU: кодирующая единица
PDPC: комбинация предсказания, зависящая от позиции
ISP: интра-подразделы
SPS: настройка параметров последовательности
[209] Хотя в данном описании раскрыты несколько примерных вариантов осуществления, допустимы изменения, перестановки и различные заменяющие эквиваленты, которые попадают в объем правовой охраны настоящего изобретения. Таким образом, понятно, что специалисты в данной области техники могут разработать многочисленные системы и способы, которые, хотя явно не показаны или не описаны здесь, воплощают принципы настоящего изобретения, которые, таким образом, находятся в рамках его сущности и объема.