ОГРАНИЧЕНИЕ СОГЛАСОВАННОСТИ ДЛЯ СОВМЕЩЕННОГО ОПОРНОГО ИНДЕКСА В КОДИРОВАНИИ ВИДЕО Российский патент 2020 года по МПК H04N19/52 H04N19/70 H04N19/513 H04N19/105 

Описание патента на изобретение RU2733267C2

[0001] По данной заявке испрашивается приоритет Предварительной Заявки США № 62/322,160, поданной 13 апреля 2016г., и Предварительной Заявки США № 62/323,467, поданной 15 апреля 2016г., полное содержимое как той, так и другой включено в настоящее описание посредством ссылки.

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

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

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

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

[0004] Методики сжатия видео выполняют пространственное (внутри-картинки (интра-)) предсказание и/или временное (между-картинками (интер-)) предсказание, чтобы сокращать или удалять избыточность, свойственную видеопоследовательностям. Применительно к основанному на блоках кодированию видео, слайс видео (т.е., кадр видео или участок кадра видео) может быть разбит на блоки видео, которые также могут именоваться блоками дерева, единицами кодирования (CU) и/или узлами кодирования. Блоки видео в интра-кодированном (I) слайсе картинки кодируется, используя пространственное предсказание по отношению к опорным выборкам в соседних блоках в той же самой картинке. Блоки видео в интер-кодированном (P или B) слайсе картинки могут использовать пространственное предсказание по отношению к опорным выборкам в соседних блоках в той же самой картинке или временное предсказание по отношению к опорным выборкам в других опорных картинках. Пространственное или временное предсказание приводит к предсказывающему блоку для блока, который будет кодироваться. Остаточные данные представляют собой пиксельные разности между исходным блоком, который будет кодироваться, и предсказывающим блоком. Интер-кодированный блок кодируется в соответствии с вектором движения, который указывает на блок опорных выборок, формирующих предсказывающий блок, и остаточными данными, указывающими разность между кодированным блоком и предсказывающим блоком. Интра-кодированный блок кодируется в соответствии с режимом интра-кодирования и остаточными данными. Для дополнительного сжатия, остаточные данные могут быть преобразованы из области пикселей в область преобразования, приводя к остаточным коэффициентам преобразования, которые затем могут быть квантованы.

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

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

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

[0007] Методики данного раскрытия могут быть применены к кодекам видео, которые согласуются со стандартом (ITU-T H.265) высокоэффективного кодирования видео (HEVC), и его расширениями, такими как Кодирование Контента Экрана (SCC). Тем не менее, методики данного раскрытия могут быть использованы в соответствии с любыми методиками кодирования видео, включая будущие стандарты кодирования видео, методики кодирования видео поддерживающие более высокие битовые глубины (например, более 8 бит), отличные форматы выборки цветности, такие как 4:4:4, 4:2:2, 4:2:0, 4:0:0, и подобное.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0020] Методики данного раскрытия могут быть применены к кодекам видео, которые согласуются со стандартом (ITU-T H.265) высокоэффективного кодирования видео (HEVC), и его расширениями, такими как Кодирование Контента Экрана (SCC). Тем не менее, методики данного раскрытия могут быть использованы в соответствии с любыми методиками кодирования видео, включая будущие стандарты кодирования видео, методики кодирования видео поддерживающие более высокие битовые глубины (например, более 8 бит), отличные форматы выборки цветности, такие как 4:4:4, 4:2:2, 4:2:0, 4:0:0, и подобное.

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

[0022] Методики предсказания для блока видеоданных, обычно, классифицируются как интра-предсказание и интер-предсказание. Интра-предсказание, или пространственное предсказание, обычно, включает предсказание блока из значений пикселя соседних, ранее кодированных блоков в той же самой картинке. Интер-предсказание, или временное предсказание, обычно включает предсказание блока из значений пикселя одной или более ранее кодированных картинок. Другие методики предсказания, включая основанные на палитре методики кодирования, и методики интра Копирования Блока, могут быть использованы для кодирования контента экрана (например, кодирования контента экрана (SCC)).

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

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

[0025] Иллюстрируемая система 10 на Фиг. 1 является лишь одним примером. Методики для обработки видеоданных могут быть выполнены посредством любого цифрового устройства кодирования и/или декодирования видео. Несмотря на то, что в целом методики данного раскрытия выполняются посредством устройства кодирования видео, методики также могут быть выполнены посредством кодера/декодера видео, обычно именуемого «КОДЕК». Устройство-источник 12 и устройство-получатель 14 являются лишь примерами таких устройств кодирования, в которых устройство-источник 12 генерирует кодированные видеоданные для передачи устройству-получателю 14. В некоторых примерах, устройство-источник 12 и устройство-получатель 14 могут работать по сути симметричным образом так, что каждое из устройства-источника 12 и устройства-получателя 14 включает в себя компоненты кодирования и декодирования видео. Следовательно, система 10 может поддерживать одностороннюю или двухстороннюю передачу видео между устройством-источником 12 и устройством-получателем 14, например, применительно к потоковой передаче видео, воспроизведению видео, видеовещанию, или видеотелефонии.

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

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

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

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

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

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

[0032] Кодер 20 видео и декодер 30 видео каждый может быть реализован в качестве любой из многообразия подходящей схемы кодера или декодера, такой как один или более микропроцессоры, цифровые сигнальные процессоры (DSP), проблемно-ориентированные интегральные микросхемы (ASIC), программируемые вентильные матрицы (FPGA), дискретная логика, программное обеспечение, аппаратное обеспечение, встроенное программное обеспечение или любое их сочетание. Когда методики реализуются частично в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем, долговременном машиночитаемом носителе информации и исполнять инструкции в аппаратном обеспечении, используя один или более процессоры, чтобы выполнять методики данного раскрытия. Каждый из кодера 20 видео и декодера 30 видео может быть включен в один или более кодеры или декодеры, любой из которых может быть интегрирован как часть комбинированного кодера/декодера (КОДЕКА) в соответствующем устройстве.

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

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

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

[0036] Данное раскрытие может использовать понятие «единица видео» или «блок видео» или «блок» для обращения к одному или более блокам выборок и структурам синтаксиса, используемым чтобы кодировать выборки одного или более блоков выборок. Примерные типы единиц видео могут включать в себя CTU, CU, PU, единицы преобразования (TU), макроблоки, фрагменты макроблока, и т.д. В некоторых контекстах, обсуждение PU может быть взаимно заменено с обсуждением макроблоков или фрагментов макроблока. Примерные типы блоков видео могут включать в себя блоки дерева кодирования, блоки кодирования, и другие типы блоков видеоданных.

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

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

[0039] Кодер 20 видео может использовать интра предсказание или интер предсказание, чтобы генерировать предсказывающие блоки для PU. Если кодер 20 видео использует интра предсказание, чтобы генерировать предсказывающие блоки у PU, кодер 20 видео может генерировать предсказывающие блоки у PU на основании декодированных выборок картинки, которая включает в себя PU.

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

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

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

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

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

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

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

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

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

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

[0050] Режим AMVP является сходным с режимом слияния в том, что кодер 20 видео может генерировать список кандидатов и может выбирать кандидата из списка кандидатов. Тем не менее, когда кодер 20 видео сигнализирует информацию движения списка опорных картинок (RefPicListX) у текущей PU используя режим AMVP, кодер 20 видео может сигнализировать RefPicListX MVD для текущей PU и опорный индекс RefPicListX для текущей PU в дополнение к сигнализации флага RefPicListX MVP для текущей PU. Флаг RefPicListX MVP для текущей PU может указывать позицию выбранного кандидата AMVP в списке кандидатов AMVP. RefPicListX MVD для текущей PU может указывать разность между вектором движения RefPicListX у текущей PU и вектором движения выбранного кандидата AMVP. Таким образом, кодер 20 видео может сигнализировать информацию движения RefPicListX у текущей PU посредством сигнализации флага RefPicListX MVP, значения опорного индекса RefPicListX, и RefPicListX MVD. Другими словами, данные в битовом потоке, представляющие собой вектор движения для текущей PU, могут включать в себя данные, представляющие собой опорный индекс, индекс в списке кандидатов, и MVD.

[0051] Кроме того, когда информация движения для текущей PU сигнализируется используя режим AMVP, декодер 30 видео может получать, из битового потока, MVD для текущей PU и флаг MVP. Декодер 30 видео может генерировать точно такой же список кандидатов AMVP и может определять, на основании флага MVP, выбранного кандидата AMVP. Декодер 30 видео может восстанавливать вектор движения текущей PU посредством сложения MVD с вектором движения, указанным посредством выбранного кандидата AMVP. Т.е., декодер 30 видео может определять, на основании вектора движения, указанного посредством выбранного кандидата AMVP, и MVD, вектор движения у текущей PU. Декодер 30 видео затем может использовать восстановленный вектор движения или векторы движения у текущей PU, чтобы генерировать предсказывающие блоки для текущей PU.

[0052] Кандидат в списке кандидатов слияния или списке кандидатов AMVP, который основан на информации движения у PU, которая временным образом соседствует с текущей PU (т.е., PU которая находится в экземпляре времени отличном от текущей PU), может именоваться временным предсказателем вектора движения (TMVP). Чтобы определить TMVP, кодировщик видео (например, кодер 20 видео и/или декодер 30 видео) может сначала идентифицировать опорную картинку, которая включает в себя PU, которая является совмещенной с текущей PU. Другими словами, кодировщик видео может идентифицировать совмещенную картинку. Если текущий слайс у текущей картинки является B слайсом (т.е., слайсом, для которого допускается включение двунаправленно интер предсказанных PU), кодер 20 видео может сигнализировать, в заголовке слайса, элемент синтаксиса (например, collocated_from_l0_flag), который указывает из какого списка опорных картинок является совмещенная картинка (например, RefPicList0 или RefPicList1). После того, как декодер 30 видео идентифицирует список опорных картинок, который включает в себя совмещенную картинку, декодер 30 видео может использовать другой элемент синтаксиса (например, collocated_ref_idx), который может быть просигнализирован в заголовке слайса, чтобы идентифицировать совмещенную опорную картинку в идентифицированном списка опорных картинок.

[0053] Кодер видео может идентифицировать совмещенную PU посредством проверки опорной картинки, идентифицированной посредством индекса опорной картинки (например, как указано посредством элемента синтаксиса collocated_ref_idx). TMVP может указывать либо информацию движения правой нижней PU у CU, содержащей совмещенную PU, либо информацию движения правой нижней PU внутри центральных PU у CU, содержащей данную PU. Правая нижняя PU у CU, содержащей совмещенную PU, может быть PU, которая охватывает местоположение непосредственно ниже и справа от нижней правой выборки блока предсказания у PU. Другими словами, TMVP может указывать информацию движения у PU, которая находится в опорной картинке и которая охватывает местоположение, которое является совмещенным с нижним правым углом текущей PU, или TMVP может указывать информацию движения у PU, которая находится в опорной картинке и которая охватывает местоположение, которое является совмещенным с центром текущей PU.

[0054] Когда векторы движения идентифицированные посредством вышеуказанного процесса используются чтобы генерировать кандидата движения для режима слияния или режима AMVP, векторы движения могут быть отмасштабированы на основании временного местоположения (отраженного посредством значения счетчика очередности картинки (POC)). Например, кодировщик видео может увеличивать величину вектора движения на большую величину, когда разность между значениями POC у текущей картинки и опорной картинки больше, чем когда разность между значениями POC у текущей картинки и опорной картинки меньше. В HEVC, набор параметров последовательности (SPS) включает в себя элемент синтаксиса sps_enable_temporal_mvp_flag. Элемент синтаксиса sps_enable_temporal_mvp_flag указывает, могут или нет быть использованы временные предсказатели вектора движения.

[0055] Многие приложения, такие как удаленный рабочий стол, удаленная игра, беспроводные дисплеи, автоматическая информационно-развлекательная среда, облачные вычисления, или подобное, становятся обычным делом в повседневной личной жизни. Видеоконтент в этих приложениях является, как правило, сочетанием естественного контента, текста, искусственной графики, и подобного. В тексте и искусственной графике, одна или более области контента могут включать в себя повторяющиеся шаблоны (такие как буквы, пиктограммы, и символы, чтобы представить несколько примеров) часто существуют. Интра копирование блока (BC) является методикой, которая обеспечивает удаление данного вида избыточности, тем самым потенциально улучшая эффективности кодирования внутри-картинки. Процесс интра BC был принят в стандарте Расширения Диапазона HEVC (который с тех пор был перемещен в расширение Кодирование Контента Экрана (SCC) у HEVC).

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

[0057] Применительно к текущей единице кодирования (CU), кодированной используя Интра BC, кодер 20 видео может получать сигнал предсказания (который также может именоваться «блоком предсказания») из области поиска в той же самой картинке. В некоторых случаях, кодер 20 видео может кодировать вектор, например, вектор 106 блока, который указывает позицию блока предсказания, перемещенного от текущей CU. В некоторых примерах, вектор блока может указывать позицию верхнего левого угла блока предсказания относительно позиции верхнего левого угла текущей CU. Вектор блока, в некоторых случаях, также может именоваться вектором смещения, вектором перемещения, или вектором движения. Кодер 20 видео также может кодировать остаточные данные, указывающие разности между значениями пикселя текущего блока видео и предсказывающими выборками в предсказывающем блоке.

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

[0059] В предыдущей версии спецификации HEVC SCC, R. Joshi, и другие, «High Efficiency Video Coding (HEVC) Screen Content Coding: Draft 6», Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 23rd Meeting: Сан-Диего, США, 19-26 февраля 2016г. (далее «JCTVC-W1005-v1»), заголовок сегмента слайса может включать в себя элемент синтаксиса slice_temporal_mvp_enabled_flag и элемент синтаксиса collocated_ref_idx. Значение slice_temporal_mvp_enabled_flag указывает, включает ли заголовок сегмента слайса конкретные элементы синтаксиса, включая элемент синтаксиса collocated_ref_idx, как показано в нижеследующей части таблицы синтаксиса для заголовка сегмента слайса.

if( slice_temporal_mvp_enabled_flag) { if( slice_type== B ) collocated_from_l0_flag u(1) if(( collocated_from_l0_flag && num_ref_idx_l0_active_minus1 > 0 )||
( !collocated_from_l0_flag && num_ref_idx_l1_active_minus1 > 0 ))
collocated_ref_idx ue(v) }

[0060] Нижеследующий текст из раздела 7.4.7.1. документа JCTVC-W1005-v1 описывает slice_temporal_mvp_enabled_flag:

slice_temporal_mvp_enabled_flag указывает, могут ли временные предсказатели вектора движения быть использованы для интер предсказания. Если slice_temporal_mvp_enabled_flag является равным 0, элементы синтаксиса текущей картинки должны быть ограничены так, что не используется временной предсказатель вектора движения при декодировании текущей картинки. В противном случае (slice_temporal_mvp_enabled_flag является равным 1), временные предсказатели вектора движения могут быть использованы при декодировании текущей картинки. Когда не присутствует, значение slice_temporal_mvp_enabled_flag, оно подразумевается равным 0.

Пусть currLayerId будет равным nuh_layer_id у текущей единицы NAL. Когда как slice_temporal_mvp_enabled_flag, так и TemporalId равны 0, элементы синтаксиса для всех кодированных картинок с nuh_layer_id равным currLayerId, которые следуют за текущей картинкой в очередности декодирования, должны быть ограничены так, что никакой временной вектор движения из любой картинки с nuh_layer_id равным currLayerId, которая предшествует текущей картинке в очередности декодирования не используется при декодировании любой кодированной картинки, которая следует за текущей картинкой в очередности декодирования.

ПРИМЕЧАНИЕ 1 - Когда slice_temporal_mvp_enabled_flag является равным 0 в I слайсе, он не оказывает влияние на нормативный процесс декодирования картинки, а лишь выражает ограничение битового потока.

ПРИМЕЧАНИЕ 2 - Когда slice_temporal_mvp_enabled_flag является равным 0 в слайсе с TemporalId равным 0, декодеры могут освобождать «хранилище вектора движения» для всех опорных картинок с nuh_layer_id равным currLayerId в буфере декодированной картинки.

[0061] Нижеследующий текст из документа JCTVC-W1005-v1 описывает элемент синтаксиса collocated_from_l0_flag и элемент синтаксиса collocated_ref_idx:

collocated_from_l0_flag равный 1 указывает, что совмещенная картинка, используемая для временного предсказания вектора движения, извлекается из списка 0 опорных картинок. collocated_from_l0_flag равный 0 указывает, что совмещенная картинка, используемая для временного предсказания вектора движения, извлекается из списка 1 опорной картинки. Когда collocated_from_l0_flag не присутствует, он подразумевается равным 1.

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

Когда slice_type является равным P или когда slice_type является равным B и collocated_from_l0_flag является равным 1, collocated_ref_idx относится к картинке в списке 0, и значение collocated_ref_idx должно быть в диапазоне от 0 до num_ref_idx_l0_active_minus1, включительно.

Когда slice_type является равным B и collocated_from_l0_flag является равным 0, collocated_ref_idx относится к картинке в списке 1, и значение collocated_ref_idx должно быть в диапазоне от 0 до num_ref_idx_l1_active_minus1, включительно.

Когда collocated_ref_idx не присутствует, значение collocated_ref_idx подразумевается равным 0.

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

[0062] В целом, slice_temporal_mvp_enabled_flag указывает, разрешено или нет использование временных предсказателей вектора движения для слайса. Если временные предсказатели вектора движения разрешены для слайса, значение элемента синтаксиса collocated_ref_idx является индексом для опорной картинки, используемой для временного предсказания вектора движения.

[0063] Статья 7.4.7.1 документа JCTVC-W1005-v1 определяет семантику элемента синтаксиса collocated_ref_idx, включая предположения значения и ограничение согласованности битового потока следующим образом:

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

[0064] Данное ограничение согласованности битового потока возможно вызывает некоторые ненужные ограничения в отношении битовых потоков, возможно затрагивая эффективность кодирования. В качестве примера, рассмотрим, что слайсы в текущей картинке используют две временные опорные картинки T0 и T1 (где T0 и/или T1 могут или могут не быть самой текущей картинкой). Также рассмотрим, что присутствует два слайса в текущей картинке. Как определено документом JCTVC-W1005-v1, если slice_temporal_mvp_enabled_flag принимает значение 0 для каждого слайса, тогда значение collocated_ref_idx подразумевается 0 для каждого слайса. В данном случае, следующая организация списков опорных картинок (RPL) для слайсов является запрещенной ограничением согласованности битовой картинки документа JCTVC-W1005-v1:

Список опорных картинок slice_temporal_mvp_enabled_flag=0 слайс 0 T0, T1 слайс 1 T1, T0

[0065] Это происходит потому, что collocated_ref_idx в виде 0 указывает на T0 для слайса 0 и T1 для слайса 1. Следовательно, может быть необходимым использовать переупорядочение опорных картинок или некоторый другой механизм, чтобы сделать первую запись в RPL обоих слайсов одинаковой. Это потенциальное ненужно и может напрасно расходовать биты, когда значение slice_temporal_mvp_enabled_flag является 0 (т.е., временные предсказатели не используются для слайса). В данном случае, collocated_ref_idx и картинки, на которые ссылаются посредством collocated_ref_idx, не оказывают влияние на воссозданные картинки, поскольку временные предсказатели не используются, и раз так, индекс для опорных картинок, содержащих такие временные предсказатели, не используется для тех конкретных слайсов.

[0066] Другим примером, где ограничение битового потока документа JCTVC-W1005-v1 может быть ненужным, является, когда, по меньшей мере, один I-слайс присутствует в картинке. Обратите внимание, что в некоторых примерах HEVC, I-слайс не разрешает использование текущей картинки в качестве опорной, поскольку I-слайс являться кодированным используя только интра предсказание:

тип слайса slice_temporal_mvp_enabled_flag=0 слайс 0 I-слайс слайс 1 P-слайс

[0067] Вновь, в данном случае, значение collocated_ref_idx будет подразумеваться 0. Применительно к I-слайсу, поскольку отсутствует список опорных картинок, картинка, на которую указывает collocated_ref_idx даже не определена, и является, конечно, не используемой. Таким образом, проверка согласованности ограничения согласованности битового потока является невозможной в данном примере.

[0068] Другой пример, где ограничение битового потока документа JCTVC-W1005-v1 может быть ненужным, является для картинки, где присутствует, по меньшей мере, один I-слайс (тип интра слайса), и slice_temporal_mvp_enabled_flag является равным 1 (т.е., разрешены временные предсказатели), следующим образом:

тип слайса slice_temporal_mvp_enabled_flag=1 слайс 0 I-слайс слайс 1 P-слайс

[0069] В данном случае, совмещенная картинка (например, как указано значением collocated_ref_idx) извлекается для типа P-слайса (тип P интер слайса) и является неопределенной для типа I-слайса, так что невозможно выполнить проверку согласованности. Тип P-слайса является слайсом, который может быть кодирован, используя однонаправленное интер предсказание и/или интра предсказание. Тип B-слайса (тип B интер слайса) является слайсом, который может быть кодирован используя однонаправленное интер предсказание, двунаправленное интер предсказание, и/или интра предсказание.

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

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

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

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

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

[0074] В данном примере, кодер 20 видео и/или декодер 30 видео могут выполнять проверку согласованности битового потока по значению collocated_ref_idx, только когда временные предсказатели вектора движения разрешены для слайса. Кодер 20 видео и/или декодер 30 видео не выполняют проверку согласованности, когда временные предсказатели вектора движения не разрешены для слайса. Кодер 20 видео и/или декодер 30 видео могут выполнять проверку согласованности битового потока, чтобы верифицировать, что значение collocated_ref_idx для конкретного слайса указывает на ту же самую картинку, что и collocated_ref_idx для всех других слайсов. Отметим, что из-за процессов администрирования списка опорных картинок, collocated_ref_idx может иметь разные значения для разных слайсов, но по-прежнему может указывать на одну и ту же опорную картинку. Т.е., разные слайсы могут назначать значения индекса опорным картинкам в разных очередностях. Проверка согласованности битового потока также верифицирует, что значение collocated_ref_idx не является ссылающимся на саму текущую картинку.

[0075] Кодер 20 видео может быть выполнен с возможностью выполнения проверки согласованности битового потока после генерирования значения collocated_ref_idx для каждого заголовка слайса. Другими словами, кодер 20 видео может быть выполнен с возможностью выполнения проверки согласованности битового потока, чтобы верифицировать то, что значение, которое кодер 20 видео назначил collocated_ref_idx, отвечает критериям предварительно определенной согласованности битового потока. Такой процесс может быть использован для ограничения согласованности битового потока определенного выше, или для любых из примеров, описанных ниже.

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

[0077] В другом примере, данное раскрытие предлагает модифицировать ограничение согласованности битового потока так, что кодер 20 видео и/или декодер 30 видео учитывают как тип слайса (например, значение элемента синтаксиса типа слайса), так и значение slice_temporal_mvp_enabled_flag, следующим образом:

Требование согласованности битового потока состоит в том, что картинка, на которую ссылается collocated_ref_idx, должна быть одной и той же для всех слайсов кодированной картинки для которых значение slice_temporal_mvp_enabled_flag является равным 1 и slice_type не равен 2. Кроме того, когда значение slice_temporal_mvp_enabled_flag является равным 1, картинка, на которую ссылается collocated_ref_idx, не должна быть самой текущей картинкой.

[0078] В данном примере, кодер 20 видео и/или декодер 30 видео могут только выполнять проверку согласованности битового потока по значению collocated_ref_idx, когда временные предсказатели вектора движения разрешены для слайса и когда тип слайса не является типом интра слайса. Кодер 20 видео и/или декодер 30 видео не выполняют проверку согласованности, когда временные предсказатели вектора движения не разрешены для слайса и когда тип слайса является типом интра слайса. Как определено в документе JCTVC-W1005-v1 элемент синтаксиса slice_type с значением 2 указывает тип интра слайса (I-слайс). Таким образом, кодер 20 видео накладывает ограничение в том, что collocated_ref_idx должен ссылаться на одну и ту же картинку только для слайсов, которые являются типа P или B слайса (например, не-Интра) и для которых значение slice_temporal_mvp_enabled_flag является равным 1 (т.е., временные предсказатели вектора движения являются разрешенными). Как обсуждалось выше, декодер 30 видео может выполнять точно такую же проверку согласованности над принятым битовым потоком кодирования видео.

[0079] Когда значение slice_temporal_mvp_enabled_flag является равным 0 (т.е., временные предсказатели вектора движения не разрешены), картинка, на которую ссылается collocated_ref_idx, не затрагивает воссозданные картинки. Таким образом, картинка, на которую ссылается collocated_ref_idx, не должна быть текущей картинкой только когда значение slice_temporal_mvp_enabled_flag является равным 1.

[0080] Как обсуждалось выше, в документе JCTVC-W1005-v1, в статье 7.4.7.1 в семантике collocated_ref_idx, присутствует ограничение согласованности битового потока, в котором говориться:

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

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

[0082] В некоторых примерах HEVC, если TemporalId для картинки является 0, в соответствии с семантикой slice_temporal_mvp_enabled_flag, картинки позже в очередности декодирования в том же самом слое не должны использовать временные предсказатели вектора движения из картинок до текущих картинок в очередности декодирования. Это может позволить декодерам (например, декодеру 30 видео) сбрасывать информацию вектора движения более ранних картинок в очередности декодирования. Ранее (в соответствии с более ранней версией стандарта HEVC) кодер видео мог управлять тем, разрешать ли сброс информации вектора движения в целях устойчивости к ошибкам и обеспечивать оптимальный компромисс между эффективностью кодирования и устойчивостью к ошибкам. С помощью предложенных методик документа JCTVC-W1005-v1, данная гибкость теряется всякий раз, когда текущая картинка содержит, по меньшей мере один слайс с только текущей картинкой в (итоговом) списке опорных картинок (RPL). Для того чтобы сохранить гибкость, кодер видео должен будет включать некоторую картинку отличную от текущей картинки в RPL. В случаях, где желательно иметь только активный опорный индекс, указывающий на саму текущую картинку, добавление некоторой другой картинки в RPL будет неизбежно требовать сигнализации опорного индекса на уровне блока и, вследствие этого, приводить к значительным потерям кодирования.

[0083] Ввиду вышеизложенного, данное раскрытие предлагает следующие дополнительные методики. Ограничение согласованности битового потока в статье 7.4.7.1 документа JCTVC-W1005-v1, в семантике collocated_ref_idx, может быть модифицировано следующим образом. Нижеследующий текст показывает пример изменений по отношению к спецификации HEVC SCC документа JCTVC-W1005-v1 и/или изменений по отношению к некоторым из методик, описанных выше. Вставленный текст показан между тэгами <вставить> и </вставить>. Удаленный текст показан между тэгами <удалить> и </удалить>.

<вставить> Когда slice_temporal_mvp_enabled_flag является равным 1</вставить>, требование согласованности битового потока состоит в том, что картинка, на которую ссылается collocated_ref_idx, должна быть одной и той же для всех слайсов кодированной картинки <удалить> и не должна быть самой текущей картинкой</удалить>.

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

Требование согласованности битового потока состоит в том, что картинка, на которую ссылается collocated_ref_idx, должна быть одной и той же для всех слайсов кодированной картинки, для которых значение slice_temporal_mvp_enabled_flag является равным 1 и slice_type не равен 2 <удалить> и кроме того, когда значение slice_temporal_mvp_enabled_flag является равным 1, картинка, на которую ссылается collocated_ref_idx, не должна быть самой текущей картинкой</удалить>.

[0085] В дополнение, если collocated_ref_idx ссылается на текущую картинку, кандидат временного предсказания вектора движения рассматривается как недоступный. Это может быть выполнено посредством следующего изменения в документе JCTVC-W1005-v1:

8.5.3.2.8 Процесс извлечения для временного предсказания вектора движения яркости

Входными данными для данного процесса являются:

- местоположение яркости ( xPb, yPb ), указывающее верхнюю левую выборку текущего блока предсказания яркости по отношению к верхней левой выборки яркости текущей картинки,

- две переменные nPbW и nPbH, указывающие ширину и высоту блока предсказания яркости,

- опорный индекс refIdxLX, c X являющимся 0 или 1.

Выходными данными данного процесса являются:

- предсказание вектора движения mvLXCol,

- флаг доступности availableFlagLXCol.

Переменная currPb указывает текущий блок предсказания яркости в местоположении яркости ( xPb, yPb ).

Переменные mvLXCol и availableFlagLXCol извлекаются следующим образом:

- Если slice_temporal_mvp_enabled_flag является равным 0, оба компонента mvLXCol устанавливаются равными 0 и availableFlagLXCol устанавливается равным 0.

<вставить> В противном случае, если опорная картинка является текущей картинкой, оба компонента mvLXCol устанавливаются равными 0 и availableFlagLXCol устанавливается равным 0 </вставить>.

- В противном случае (slice_temporal_mvp_enabled_flag является равным 1), применяются следующие упорядоченные этапы:

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

[0087] В одном примере, определение элемента синтаксиса collocated_ref_idx может быть модифицировано в документе JCTVC-W1005-v1, чтобы излагать: <вставить> Когда не присутствует и slice_type является не равным 2, значение collocated_ref_idx подразумевается равным 0</вставить>.

Когда тип слайса является I (т.е., slice_type является равным 2), кодер 20 видео и/или декодер 30 видео не подразумевают совмещенный опорный индекс и проверка согласованности не выполняется для совмещенного опорного индекса. Другими словами, кодер 20 видео и/или декодер 30 видео выполнены с возможностью выполнения проверки согласованности, когда тип слайса для слайса не является интра слайсом.

[0088] В другом примере раскрытия, кодер 20 видео и/или декодер 30 видео выполнены с возможностью только выполнения проверки согласованности для значения элемента синтаксиса collocated_ref_idx, когда совмещенная картинка требуется или является релевантной в процессе декодирования. Кодер 20 видео и/или декодер 30 видео выполнены с возможностью извлечения значения элемента синтаксиса collocated_ref_idx для слайсов таким образом, что элемент синтаксиса collocated_ref_idx способен пройти проверку согласованности. Например, кодер 20 видео и/или декодер 30 видео могут быть выполнены с возможностью извлечения определенной совмещенной картинки, извлеченной для I-слайсов в картинке. Такая совмещенная картинка не требуется для I-слайсов, но она будет одной и той же для всех слайсов, и, следовательно, выполняется проверка согласованности. Совмещенная картинка не требуется для I-слайсов независимо от значения slice_temporal_mvp_enabled_flag, и не требуется для не-I-слайсов, когда slice_temporal_mvp_enabled_flag является равным 0 (т.е., временные предсказатели вектора движения не разрешены).

[0089] В другом примере раскрытия, кодер 20 видео и/или декодер 30 видео могут быть выполнены с возможностью выполнения проверки согласованности по collocated_ref_idx только для случаев, когда slice_temporal_mvp_enabled_flag является равным 1 (т.е., временные предсказатели вектора движения разрешены) и тип слайса у слайса картинки является отличным от типа I-слайса (например, slice_type не является равным 2).

[0090] В другом примере раскрытия, кодер 20 видео и/или декодер 30 видео могут быть выполнены с возможностью выполнения проверки согласованности по collocated_ref_idx только для случаев, когда slice_temporal_mvp_enabled_flag является равным 1 (т.е., временные предсказатели вектора движения разрешены) и тип слайса у слайса картинки является отличным от типа I-слайса (например, slice_type не является равным 2), и слайс имеет опорные картинки отличные от текущей картинки. Если текущая картинка является единственной опорной картинкой, она не может быть совмещенной картинкой, независимо от значения slice_temporal_mvp_enabled_flag. В данном случае, кодер 20 видео и/или декодер 30 видео могут быть выполнены с возможностью не выполнения проверки согласованности по collocated_ref_idx для таких слайсов.

[0091] В другом примере раскрытия, кодер 20 видео и/или декодер 30 видео могут быть выполнены с возможностью проверки согласованности по collocated_ref_idx только для случаев, когда совмещенная картинка используется в процессе декодирования слайса, или имеет влияние на вывод декодирования слайса. Если кодер 20 видео и/или декодер 30 видео выполнены с возможностью извлечения совмещенной картинки, но не используют совмещенную картинку в слайсе, кодер 20 видео и/или декодер 30 видео могут быть выполнены с возможностью пропуска проверки согласованности для опорного индекса (например, collocated_ref_idx) для такой картинки.

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

[0093] В другом примере раскрытия, кодер 20 видео и/или декодер 30 видео могут быть выполнены с возможностью выполнения проверки согласованности по collocated_ref_idx только для слайсов, когда slice_temporal_mvp_enabled_flag является равным 1 (т.е., когда временные предсказатели вектора движения разрешены).

[0094] В документе JCTVC-W1005-v1, некоторые слайсы внутри картинки могут использовать только текущую картинку в качестве опорной, тогда как другие слайсы в той же самой картинке могут использовать временные картинки, как впрочем и текущую картинку в качестве ссылок. Для слайсов использующих картинку(и) отличные от текущей картинки в качестве опорной, может быть желательным (с точки зрения эффективности кодирования) разрешить использование кандидата временного предсказания вектора движения (mvp) (например, временного предсказателя вектора движения). Это означает, что элемент синтаксиса slice_temporal_mvp_enabled_flag должен иметь значение равное 1 для такого слайса (т.е., временные предсказатели вектора движения разрешены). В соответствии с документом JCTVC-W1005-v1, нормативным требованием является то, что значение slice_temporal_mvp_enabled_flag должно быть одним и тем же для всех заголовков сегмента слайса у кодированной картинки. Таким образом, если один слайс кодированной картинки использует кандидата временного mvp, slice_temporal_mvp_enabled_flag должен иметь значение 1 для всех заголовков сегмента слайса той кодированной картинки.

[0095] С другой стороны, документ JCTVC-W1005-v1 указывает, что collocated_ref_idx указывает опорный индекс совмещенной картинки, используемой для временного предсказания вектора движения. Как обсуждалось выше, документ JCTVC-W1005-v1 указывает, что требование согласованности битового потока состоит в том, что картинка, на которую ссылается collocated_ref_idx, должна быть одной и той же для всех слайсов кодированной картинки и не должна быть самой текущей картинкой.

[0096] На основании ограничений на элементы синтаксиса slice_temporal_mvp_enabled_flag и collocated_ref_idx, документ JCTVC-W1005-v1 подразумевает, что если один из слайсов имеет только текущую картинку в качестве опорной, нормативным требованием является то, что временное предсказание вектора движения запрещено для того слайса, или эквивалентно, что slice_temporal_mvp_enabled_flag для слайса имеет значение 0. Это в свою очередь означает, что slice_temporal_mvp_enabled_flag имеет значение 0 для всех заголовков сегмента слайса той картинки.

[0097] Таким образом, в соответствии с документом JCTVC-W1005-v1, если один из слайсов картинки использует только текущую картинку в качестве опорной, нормативным требованием является то, что временное предсказание вектора движения запрещено для всех слайсов в той картинке. Т.е., slice_temporal_mvp_enabled_flag имеет значение 0 для всех заголовков сегмента слайса у той картинки. Как отмечалось выше, это может привести к потере эффективности кодирования.

[0098] Альтернативное решение, но менее эффективное с точки зрения эффективности кодирования, состоит в том, что для слайса, использующего только текущую картинку в качестве опорной, вводится дополнительная временная опорная, чтобы удовлетворять текущим ограничениям документа JCTVC-W1005-v1. Кодер видео может избежать использования дополнительной временной опорной не оказывая влияния на возможность сигнализации любых векторов движения как в текущей спецификации. Тем не менее, в данном сценарии, требуется сигнализировать опорный индекс вместо того, чтобы подразумевать, тем самым приводя к потере эффективности кодирования.

[0099] Методики данного раскрытия обеспечивают использование временного предсказания вектора движения для слайсов, которые используют временные опорные картинки. Таким образом, данное раскрытие описывает то, что решение об использовании временного MVP может быть принято на основе слайс-за-слайсом, и что кодер 20 видео и/или декодер 30 видео могут осуществлять определение об использовании временного MVP по-разному для разных слайсов одной и той же картинки. Кроме того, данное раскрытие описывает, что для слайсов внутри одной и той же картинки, которые имеют slice_temporal_mvp_enabled_flag равный 1, collocated_ref_idx должен быть одним и тем же. Нормативные требования в отношении slice_temporal_mvp_enabled_flag и collocated_ref_idx модифицируются как описано ниже.

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

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

[0102] Когда временное предсказание вектора движения разрешено для слайса, кодировщик видео (например, кодер 20 видео или декодер 30 видео) может использовать временное предсказание вектора движения, чтобы определять параметры движения (например, один или более векторы движения и опорные индексы) текущего блока (например, PU) у слайса текущей картинки. Например, кодировщик видео может определять кандидата (например, кандидата режима слияния или AMVP), указывающего параметры движения блока во временной опорной картинке (например, картинке со значением счетчика очередности картинки (POC) отличным от текущей картинки, или картинки в единице доступа, отличной от текущей картинки). Как описано выше, кодировщик видео может использовать выбранного кандидата в списке предсказателей движения (например, списке кандидатов слияния или AMVP), чтобы определять параметры движения текущего блока. Кодировщик видео может использовать параметры движения текущего блока, чтобы определять предсказывающий блок для текущего блока. Как часть кодирования текущего блока, кодер 20 видео может использовать предсказывающий блок, чтобы генерировать остаточные данные. Как описано в любом месте в данном раскрытии, кодер 20 видео может включать, в битовый поток, данные основанные на остаточных данных. Как часть декодирования текущего блока, декодер 30 видео может использовать предсказывающий блок и остаточные данные, чтобы воссоздавать выборки текущего блока. Таким образом, на основании элемента синтаксиса, указывающего, что временное предсказание вектора движения разрешено для слайса, декодер 30 видео может использовать временное предсказание вектора движения, чтобы декодировать блок слайса. Когда временное предсказание вектора движения не разрешено (т.е., запрещено) для слайса, кодировщик видео не может использовать временное предсказание вектора движения чтобы кодировать (т.е., кодировать или декодировать) любой блок слайса.

[0103] Пример 1

[0104] Нижеследующий текст показывает пример изменения в документе JCTVC-W1005-v1 в соответствии с одной или более методиками данного раскрытия. Вставленный текст показан между тэгами <вставить> и </вставить>. Удаленный текст показан между тэгами <удалить> и </удалить>.

7.4.7.1 Общая семантика заголовка сегмента слайса

Когда присутствует, значение элементов синтаксиса заголовка сегмента слайса slice_pic_parameter_set_id, pic_output_flag, no_output_of_prior_pics_flag, slice_pic_order_cnt_lsb, short_term_ref_pic_set_sps_flag, short_term_ref_pic_set_idx, <вставить>и</вставить> num_long_term_sps, num_long_term_pics <удалить>, и slice_temporal_mvp_enabled_flag</удалить> должно быть одним и тем же во всех заголовках сегмента слайса кодированной картинки. Когда присутствует, значение элементов синтаксиса заголовка сегмента слайса lt_idx_sps[i], poc_lsb_lt[i], used_by_curr_pic_lt_flag[i], delta_poc_msb_present_flag[i], и delta_poc_msb_cycle_lt[i] должно быть одним и тем же во всех заголовках сегмента слайса у кодированной картинки, для каждого возможного значения i.

<вставить> Требование согласованности битового потока состоит в том, что если слайс содержит только текущую картинку в качестве опорной, slice_temporal_mvp_enabled_flag должен быть равен нулю.</вставить>

В семантике collocated_ref_idx:

Требование согласованности битового потока состоит в том, что картинка, на которую ссылается collocated_ref_idx, должна быть одной и той же для всех слайсов кодированной картинки <вставить>которые имеют slice_temporal_mvp_enabled_flag равный 1</вставить> и не должна быть самой текущей картинкой.

[0105] [конец отрывка спецификации]

[0106] Это наиболее общий случай в том, что отсутствует ограничение на значение slice_temporal_mvp_enabled_flag, за исключение случая, когда слайс содержит только текущую картинку в качестве опорной.

[0107] Пример 2

[0108] В данном втором примере, дополнительное ограничение накладывается на элемент синтаксиса slice_temporal_mvp_enabled_flag.

7.4.7.1 Общая семантика заголовка сегмента слайса

Когда присутствует, значение элементов синтаксиса заголовка сегмента слайса slice_pic_parameter_set_id, pic_output_flag, no_output_of_prior_pics_flag, slice_pic_order_cnt_lsb, short_term_ref_pic_set_sps_flag, short_term_ref_pic_set_idx, <вставить>и</вставить> num_long_term_sps, num_long_term_pics <удалить>, и slice_temporal_mvp_enabled_flag</удалить> должно быть одним и тем же во всех заголовках сегмента слайса кодированной картинки. Когда присутствует, значение элементов синтаксиса заголовка сегмента слайса lt_idx_sps[i], poc_lsb_lt[i], used_by_curr_pic_lt_flag[i], delta_poc_msb_present_flag[i], и delta_poc_msb_cycle_lt[i] должно быть одним и тем же во всех заголовках сегмента слайса у кодированной картинки, для каждого возможного значения i.

<вставить> Когда присутствует, значение элемента синтаксиса заголовка сегмента слайса slice_temporal_mvp_enabled_flag должно быть одним и тем же во всех заголовках сегмента слайса у слайсов кодированной картинки, которые используют опорную картинку отличную от текущей картинки.</вставить>

<вставить> Требование согласованности битового потока состоит в том, что если слайс содержит только текущую картинку в качестве опорной, slice_temporal_mvp_enabled_flag должен быть равен нулю.</вставить>

В семантике collocated_ref_idx:

Требование согласованности битового потока состоит в том, что картинка, на которую ссылается collocated_ref_idx, должна быть одной и той же для всех слайсов кодированной картинки <вставить>которые имеют slice_temporal_mvp_enabled_flag равный 1</вставить> и не должна быть самой текущей картинкой.

[0109] Пример 3

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

<вставить> Когда присутствует, значение элемента синтаксиса заголовка сегмента слайса slice_temporal_mvp_enabled_flag должно быть одним и тем же во всех заголовках сегмента слайса у слайсов, которые не являются типом I-слайса, у кодированной картинки.</вставить>

[0111] В другом альтернативном примере,

<вставить> Когда присутствует, значение элемента синтаксиса заголовка сегмента слайса slice_temporal_mvp_enabled_flag должно быть одним и тем же во всех заголовках сегмента слайса у слайсов кодированной картинки, для которых slice_temporal_mvp_enabled_flag явно сигнализируется (не подразумевается).</вставить>

[0112] Пример 4

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

slice_segment_header() { Дескриптор first_slice_segment_in_pic_flag u(1) ……… if( sps_temporal_mvp_enabled_flag <вставить>&&
sliceContainsTemporalRefPic</вставить> )
slice_temporal_mvp_enabled_flag u(1) …… byte_alignment() }

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

[0115] Фиг. 2 является структурной схемой, иллюстрирующей примерный кодер видео, который может реализовывать любое сочетание методик проверки ограничения согласованности, описанных в данном раскрытии. Кодер 20 видео может выполнять интра- и интер-кодирование блоков видео внутри слайсов видео. Интра кодирование основано на пространственной избыточности, чтобы уменьшать или удалять пространственную избыточность в видео, внутри заданного кадра видео или картинки. Интер-кодирование основано на временном или интер-видовом предсказании, чтобы уменьшать или удалять избыточность в видео в рамках смежных кадров или картинок видеопоследовательности. Интра-режим (I режим) может относиться к любому из нескольких основанных на пространстве режимов сжатия. Интер-режимы, такие как однонаправленное предсказание (P режим) или двунаправленное (B режим), могут включать в себя любой из нескольких основанных на времени режимов сжатия. Кодер 20 видео также может быть выполнен с возможностью использования режима для интра предсказания блоков видеоданных из предсказывающих блоков видеоданных внутри одной и той же картинки, например, режим Интра BC, как описано в данном документе.

[0116] В примере Фиг. 2, кодер 20 видео включает в себя модуль 35 разбиения, модуль 41 обработки предсказания, память 64 воссозданной области, модуль 66 обработки фильтра, память 68 опорной картинки, модуль 50 генерирования остатка, модуль 52 обработки преобразования, модуль 54 обработки квантования, и модуль 56 энтропийного кодирования. Модуль 41 обработки предсказания включает в себя модуль 42 оценки движения, модуль 44 компенсации движения, модуль 46 обработки интра предсказания, и модуль 48 Интра Копирования Блока (Интра BC). Для воссоздания блока видео, кодер 20 видео также включает в себя модуль 58 обработки обратного квантования, модуль 60 обработки обратного преобразования, и сумматор 62.

[0117] В разнообразных примерах, модулю кодера 20 видео может быть поставлена задача выполнить методики данного раскрытия. Также, в некоторых примерах, методики данного раскрытия могут быть разделены между одним или более модулями кодера 20 видео. Например, модуль 41 обработки предсказания может выполнять методики данного раскрытия, отдельно, или в сочетании с другими модулями кодера видео, такими как модуль 42 оценки движения, модуль 44 компенсации движения, модуль 46 обработки интра предсказания, память 64 воссозданной области, и модуль 56 энтропийного кодирования.

[0118] Как описано выше, кодер 20 видео может быть выполнен с возможностью выполнения проверки согласованности битового потока после генерирования значения collocated_ref_idx для каждого заголовка слайса. Другими словами, кодер 20 видео может быть выполнен с возможностью выполнения проверки согласованности битового потока, чтобы верифицировать то, что значение, которое кодер 20 видео назначил collocated_ref_idx, отвечает критериям предварительно определенной согласованности битового потока. Такой процесс может быть использован для ограничения согласованности битового потока определенной выше.

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

[0120] Как показано на Фиг. 2, кодер 20 видео принимает видеоданные, и модуль 35 разбиения разбивает видеоданные на блоки видео. Данное разбиение также может включать в себя разбиение на слайсы, тайлы, или другие большие единицы, как впрочем разбиение блока видео, например, в соответствии со структурой квадродерева у LCU и CU. Кодер 20 видео в целом иллюстрирует компоненты, которые кодируют блоки видео внутри слайса видео, который должен быть закодирован. Слайс может быть разделен на несколько блоков видео (и возможно на наборы блоков видео, именуемые тайлами).

[0121] Модуль 41 обработки предсказания может выбирать один из множества возможных режимов кодирования, такой как один из множества режимов интра кодирования, один из множества режимов интер кодирования, или режим Интра BC в соответствии с методиками, описанными в данном раскрытии, для текущего блока видео на основании результатов скорости-к-искажению (например, битовой скорости кодирования и уровня искажения). Модуль 41 обработки предсказания может предоставлять результирующий предсказывающий блок модулю 50 генерирования остатка, чтобы генерировать данные остаточного блока, и сумматору 62, чтобы воссоздавать текущий блок для использования в предсказании других блоков видео, например, в качестве опорной картинки.

[0122] Модуль 46 обработки интра предсказания внутри модуля 41 обработки предсказания может выполнять интра-предсказывающее кодирование текущего блока видео по отношению к одному или более соседним блокам в той же самой картинке или слайсе в качестве текущего блока, который должен быть закодирован, чтобы обеспечивать пространственное сжатие. Модуль 42 оценки движения и модуль 44 компенсации движения внутри модуля 41 обработки предсказания выполняют интер-предсказывающее кодирование текущего блока видео по отношению к одному или более предсказывающим блокам в одной или более опорных картинках, например, чтобы обеспечивать временное сжатие.

[0123] Модуль 42 оценки движения может быть выполнен с возможностью определения режима интер-предсказания для слайса видео в соответствии с предварительно определенным шаблоном для видеопоследовательности. Модуль 42 оценки движения и модуль 44 компенсации движения могут быть высоко интегрированными, но иллюстрируются раздельно в концептуальных целях. Оценка движения, выполняемая модулем 42 оценки движения, является процессом генерирования векторов движения, который оценивает движение для блоков видео. Вектор движения, например, может указывать перемещение PU у блока видео в текущей картинке видео по отношению к предсказывающему блоку в опорной картинке. Сходным образом, вектор блока, используемый для Интра BC в соответствии с методиками данного раскрытия указывает перемещение PU у блока видео в текущем кадре видео или картинке по отношению к предсказывающему блоку в том же самом кадре или картинке. Модуль 48 Интра BC может определять векторы, например, векторы блока, для кодирования Интра BC образом сходным с определением векторов движения посредством модуля 42 оценки движения для интер предсказания, или может использовать модуль 42 оценки движения, чтобы определять вектор блока.

[0124] Предсказывающий блок, например, идентифицированный посредством модуля 42 оценки движения и/или модуля 48 Интра BC для интер предсказания или предсказания Интра BC, является блоком, который включает в себя выборки, которые найдены как близко совпадающие с выборками в блоке предсказания у PU блока видео, который должен быть кодирован, исходя из пиксельной разности. В некоторых примерах, модуль 42 оценки движения и/или модуль 48 Интра BC может определять пиксельную разность на основании суммы абсолютной разности (SAD), суммы квадратов разности (SSD), и/или других метрик разности. В некоторых примерах, кодер 20 видео может вычислять значения для суб-целочисленных позиций пикселя у опорных картинок, хранящихся в памяти 68 опорной картинки или воссозданной области текущей картинки, хранящейся в памяти 64 воссозданной области. Например, кодер 20 видео может интерполировать значения одной четвертой позиций пикселя, одной восьмой позиций пикселя, или других дробных позиций пикселя у опорной картинки. Вследствие этого, модуль 42 оценки движения и/или модуль 48 Интра BC могут выполнять поиск предсказывающего блока относительно полных позиций пикселя и дробных позиций пикселя и выводить вектор с дробной точностью пикселя.

[0125] Модуль 42 оценки движения может вычислять вектор движения для PU у блока видео в интер-кодированном слайсе посредством сравнения позиции PU с позицией предсказывающего блока опорной картинки. Опорная картинка может быть выбрана из первого списка опорных картинок (Список 0 или RefPicList0) или второго списка опорных картинок (Список 1 или RefPicList1), каждый из которых идентифицирует одну или более опорные картинки, хранящиеся в памяти 68 опорной картинки. Модуль 42 оценки движения отправляет вычисленный вектор движения модулю 56 энтропийного кодирования и модулю 44 компенсации движения.

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

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

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

[0129] Модуль 48 Интра BC и/или модуль 44 компенсации движения также могут генерировать элементы синтаксиса, ассоциированные с блоками видео и слайсом видео для использования декодером видео, таким как декодер 30 видео, при декодировании блоков видео слайса видео. Элементы синтаксиса могут включать в себя, например, элементы синтаксиса, определяющие вектор, используемый чтобы идентифицировать предсказывающий блок, любые флаги, указывающие режим предсказания, или любой другой синтаксис, описанный в отношении методик данного раскрытия.

[0130] Модуль 46 обработки интра предсказания может интра-предсказывать текущий блок, в качестве альтернативы интер-предсказанию, выполняемому модулем 42 оценки движения и модем 44 компенсации движения, или предсказанию Интра BC, выполняемому модулем 48 Интра BC, как описано выше. В частности, модуль 46 обработки интра предсказания может определять режим интра-предсказания для использования, чтобы кодировать текущий блок. В некоторых примерах, модуль 46 обработки интра предсказания может кодировать блок видео, используя разнообразные режимы интра-предсказания, например, во время отдельных проходов кодирования, и модуль 46 обработки интра предсказания (или модуль 41 обработки предсказания, в некоторых примерах) может выбирать подходящий режим интра-предсказания для использования из протестированных режимов. Например, модуль 46 обработки интра предсказания может вычислять значение скорости-к-искажению, используя анализ скорости-к-искажению для разнообразных тестируемых режимов интра-предсказания, и выбирать режим интра-предсказания с наилучшими характеристиками скорости-к-искажению из протестированных режимов. Анализ скорости-к-искажению в целом определяет величину искажения (или ошибки) между закодированным блоком и исходным, незакодированным блоком, который был закодирован, чтобы создать закодированный блок, как впрочем и скорость передачи битов (т.е., число битов), использованную чтобы создавать закодированный блок. Модуль 46 обработки интра предсказания может вычислять соотношения из искажений и скоростей для разнообразных закодированных блоков, чтобы определять, какой режим интра-предсказания показывает наилучшее значение скорости-к-искажению для блока.

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

[0132] После того, как модуль 41 обработки предсказания генерирует предсказывающий блок для текущего блока видео через интер-предсказание, интра-предсказание, или предсказание Интра BC, кодер 20 видео формирует остаточный блок видео посредством вычитания предсказывающего блока из текущего блока видео, например, через модуль 50 генерирования остатка. Остаточные видеоданные в остаточном блоке могут быть включены в одну или более TU и применены к модулю 52 обработки преобразования. Модуль 52 обработки преобразования преобразует остаточные видеоданные в остаточные коэффициенты преобразования используя преобразование, такое как дискретное косинусное преобразование (DCT) или концептуально сходное преобразование. Модуль 52 обработки преобразования может преобразовывать остаточные видеоданные из области пикселей в область преобразования, такую как частотная область.

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

[0134] Вслед за квантованием, модуль 56 энтропийного кодирования энтропийно кодирует квантованные коэффициенты преобразования. Например, модуль 56 энтропийного кодирования может выполнять контекстно-зависимое адаптивное кодирование переменной длины (CAVLC), контекстно-зависимое адаптивное бинарное арифметическое кодированием (CABAC), основанное на синтаксисе контекстно-зависимое адаптивное бинарное арифметическое кодирование (SBAC), энтропийное кодирование с разбиением на интервалы вероятности (PIPE) или другую методологию или методику энтропийного кодирования. Модуль 56 энтропийного кодирования может выполнять любую из методик, описанных в данном документе, для преобразования в двоичное представление и кодирования элементов синтаксиса, включая компоненты вектора, флаги, и другие элементы синтаксиса, для предсказания в соответствии с режимом Интра BC. Вслед за энтропийным кодированием посредством модуля 56 энтропийного кодирования, закодированный битовый поток видео может быть передан декодеру 30 видео, или заархивирован для передачи позже или извлечения посредством декодера 30 видео.

[0135] Модуль 58 обработки обратного квантования и модуль 60 обработки обратного преобразования применяют обратное квантование и обратное преобразование, соответственно, чтобы воссоздать остаточный блок в области пикселей для использования позже в качестве опорного блока для предсказания других блоков видео. Модуль 44 компенсации движения и модуль 48 Интра BC могут вычислять опорный блок посредством сложения остаточного блока с предсказывающим блоком одной из опорных картинок в списках опорных картинок. Модуль 44 компенсации движения и/или модуль 48 Интра BC могут также применять один или более фильтры интерполяции к воссозданному остаточному блоку, чтобы вычислять суб-целочисленные значения пикселя для использования в оценке движения.

[0136] Сумматор 62 складывает воссозданный остаточный блок с блоком предсказания после компенсации движения, созданным посредством модуля 44 компенсации движения и/или модуля 48 Интра BC, чтобы создать воссозданный блок видео. Память 64 воссозданной области хранит воссозданные блоки видео в соответствии с определением воссозданной области для Интра BC текущего блока видео посредством кодера 20 видео, например, модуля 48 Интра BC, как описано в данном документе. Память 64 воссозданной области может хранить воссозданные блоки видео, которые не были подвергнуты фильтрации в цикле посредством модуля 66 обработки фильтра. Сумматор 62 может предоставлять воссозданные блоки видео модулю 66 обработки фильтра параллельно с памятью 64 воссозданной области, или память 64 воссозданной области может высвобождать воссозданные блоки видео для модуля 66 обработки фильтра, когда они более не требуются для воссозданной области применительно к Интра BC. В любом случае, модуль 48 Интра BC может осуществлять поиск воссозданных блоков видео в памяти 64 воссозданной области в отношении предсказывающего блока видео в той же самой картинке, что и текущий блок видео, чтобы предсказывать текущий блок видео.

[0137] Модуль 66 обработки фильтра может выполнять фильтрацию в цикле над воссозданными блоками видео. Фильтрация в цикле может включать в себя фильтрацию устранения блочности, чтобы фильтровать границы блока, чтобы удалять артефакты блочности из воссозданного видео. Фильтрация в цикле также может включать в себя фильтрацию SAO, чтобы улучшать воссозданное видео. Воссозданные блоки, некоторые из которых могут быть отфильтрованы в цикле, могут быть сохранены в памяти 68 опорной картинки в качестве опорных картинок. Опорные картинки могут включать в себя воссозданные блоки, которые могут быть использованы модулем 42 оценки движения и модулем 44 компенсации движения в качестве предсказывающего блока, чтобы интер-предсказывать блок в последующем кадре или картинке видео.

[0138] Фиг. 3 является структурной схемой, иллюстрирующей примерный декодер 30 видео, который может реализовывать любое сочетание методик проверки ограничения согласованности, описанных в данном раскрытии. В примере Фиг. 3, декодер 30 видео включает в себя модуль 80 энтропийного декодирования, модуль 81 обработки предсказания, модуль 86 обработки обратного квантования, модуль 88 обработки обратного преобразования, сумматор 90, память 92 воссозданной области, модуль 94 обработки фильтра, и память 96 опорной картинки. Модуль 81 обработки предсказания включает в себя модуль 82 компенсации движения, модуль 84 обработки интра предсказания, и модуль 85 Интра Копирования Блока (Интра BC). Декодер 30 видео может, в некоторых примерах, выполнять проход декодирования в целом обратный проходу кодирования, описанному в отношении кодера 20 видео с Фиг. 2.

[0139] В разнообразных примерах, модулю декодера 30 может быть поставлена задача выполнения методик данного раскрытия. Также, в некоторых примерах, методики данного раскрытия могут быть разделены между одним или более модулями декодера 30 видео. Например, модуль 85 Интра BC может выполнять методики данного раскрытия, в одиночку, или в сочетании с другими модулями декодера 30 видео, таким как модуль 82 компенсации движения, модуль 84 обработки интра предсказания, память 92 воссозданной области, и модуль 80 энтропийного декодирования.

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

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

[0142] Во время процесса декодирования, декодер 30 видео принимает закодированный битовый поток видео, который представляет собой блоки видео у закодированного слайса видео и ассоциированные элементы синтаксиса от кодера 20 видео. Модуль 80 энтропийного декодирования декодера 30 видео энтропийно декодирует битовый поток, чтобы сгенерировать квантованные коэффициенты, векторы движения для интер предсказания, векторы блока для предсказания Интра BC, и другие элементы синтаксиса, описанные в данном документе. Модуль 80 энтропийного декодирования может выполнять обратное любой из методик, описанных в данном документе для преобразования в двоичное представление и кодирования элементов синтаксиса, включая компоненты вектора, флаги, и другие элементы синтаксиса, для предсказания в соответствии с режимом Интра BC. Модуль 80 энтропийного декодирования переадресовывает векторы и другие элементы синтаксиса модулю 81 обработки предсказания. Декодер 30 видео может получать элементы синтаксиса на уровне последовательности, уровне картинки, уровне слайса видео и/или уровне блока видео.

[0143] В некоторых примерах, модуль 80 энтропийного декодирования использует процесс, который в целом является обратным процессу кодирования, который используется модулем 56 энтропийного кодирования кодера 20, чтобы кодировать вектор блока. Например, модуль 80 энтропийного декодирования может декодировать компонент вектора блока на основании трех элементов синтаксиса.

[0144] Модуль 80 Интра BC может определять значение вектора блока для текущего блока на основании выбранного кандидата предсказателя вектора блока и разности, указанной посредством элементов синтаксиса (т.е., разности между выбранным предсказателем вектора блока и вектором блока для текущего блока). Таким образом, модуль 80 энтропийного декодирования и модуль 80 Интра BC могут декодировать закодированный вектор блока.

[0145] Когда слайс видео является кодированным как интра-кодированный (I) слайс, модуль 84 обработки интра предсказания модуля 81 обработки предсказания может генерировать данные предсказания для блока видео текущего слайса видео на основании просигнализированного режима интра предсказания и данных из ранее декодированных блоков текущего кадра или картинки. Когда кадр видео является кодированным как интер-кодированный (т.е., B или P) слайс, модуль 82 компенсации движения модуля 81 обработки предсказания создает предсказывающие блоки для блока видео у текущего кадра видео на основании векторов движения и других элементов синтаксиса, принятых от модуля 80 энтропийного декодирования. Предсказывающие блоки могут быть созданы из одной из опорных картинок в одном из списков опорных картинок. Декодер 30 видео может создавать списки опорных картинок, RefPicList0 и RefPicList1, используя методики создания по умолчанию или другую методику, основанную на опорных картинках, хранящихся в памяти 96 опорной картинки. Когда блок видео является кодированным в соответствии с режимом Интра BC, описанным в данном документе, модуль 85 Интра BC модуля 81 обработки предсказания создает предсказывающие блоки для текущего блока видео на основании векторов блока и других элементах синтаксиса, принятых от модуля 80 энтропийного декодирования. Предсказывающие блоки могут быть в воссозданной области в той же самой картинке, что и текущий блок видео, определенный посредством кодера 20 видео, и извлеченной из памяти 92 воссозданной области.

[0146] Модуль 82 компенсации движения и модуль 85 Интра BC определяет информацию предсказания для блока видео у текущего слайса видео посредством анализа векторов и других элементов синтаксиса, и использует информацию предсказания, чтобы создавать предсказывающие блоки для текущего декодируемого блока видео. Например, модуль 82 компенсации движения использует некоторые из принятых элементов синтаксиса, чтобы определять режим предсказания (например, интра- или интер-предсказание), использованный, чтобы кодировать блоки видео у слайса видео, тип слайса интер-предсказания (например, B слайс или P слайс), информацию построения для одного или более из списков опорных картинок для слайса, векторы движения для каждого интер-кодированного блока видео у слайса, статус интер-предсказания для каждого интер-кодированного блока видео у слайса, и другую информацию, чтобы декодировать блоки видео в текущем слайсе видео. Сходным образом, модуль 85 Интра BC может использовать некоторые из принятых элементов синтаксиса, например, флаг, чтобы определять, что текущий блок видео был предсказан используя режим Интра BC, информацию построения, указывающую какие блоки видео у картинки находятся в воссозданной области и должны быть сохранены в памяти 92 воссозданной области, векторы блока для каждого Интра BC предсказанного блока видео у слайса, статус предсказания Интра BC для каждого Интра BC предсказанного блока видео у слайса, и другую информацию, чтобы декодировать блоки видео в текущем слайсе видео.

[0147] Модуль 82 компенсации движения и модуль 85 Интра BC также могут выполнять интерполяцию на основании фильтров интерполяции. Модуль 82 компенсации движения и модуль 85 интра BC могут использовать фильтры интерполяции, как использованные кодером 20 видео во время кодирования блоков видео, чтобы вычислять интерполированные значения для суб-целочисленных пикселей предсказывающих блоков. В данном случае, модуль 82 компенсации движения и модуль 85 Интра BC могут определять фильтры интерполяции, используемые кодером 20 видео из принятых элементов синтаксиса и использовать фильтры интерполяции, чтобы создавать предсказывающие блоки.

[0148] Модуль 86 обработки обратного квантования обратно квантует, т.е., де-квантует, квантованные коэффициенты преобразования, предоставленные в битовом потоке и декодированные модулем 80 энтропийного декодирования. Процесс обратного квантования может включать в себя использование параметра квантования, вычисленного кодером 20 видео для каждого блока видео в слайсе видео, чтобы определять степень квантования и, подобным образом, степень обратного квантования, которая должна быть применена. Модуль 88 обработки обратного преобразования применяет обратное преобразование, например, обратное DCT, обратное целочисленное преобразование, или концептуально сходный обратный процесс преобразования, к коэффициентам преобразования для того, чтобы создать остаточные блоки в области пикселей.

[0149] После того, как модуль 82 компенсации движения или модуль 85 Интра BC генерирует предсказывающий блок для текущего блока видео на основании векторов и других элементов синтаксиса, декодер 30 видео формирует декодированный блок видео посредством суммирования остаточных блоков от модуля 88 обработки обратного преобразования с соответствующими предсказывающими блоками, сгенерированными посредством модуля 82 компенсации движения и модуля 85 Интра BC. Сумматор 90 представляет собой компонент или компоненты, которые выполняют данную операцию суммирования, чтобы создать воссозданные блоки видео.

[0150] Память 92 воссозданной области хранит воссозданные блоки видео в соответствии с определением воссозданной области для Интра BC у текущего блока видео посредством кодера 20 видео, как описано в данном документе. Память 92 воссозданной области может хранить воссозданные блоки видео, которые не были отфильтрованы в цикле посредством модуля 94 обработки фильтра. Сумматор 90 может предоставлять воссозданные блоки видео модулю 94 обработки фильтра параллельно с памятью 92 воссозданной области, или память 92 воссозданной области может высвобождать воссозданные блоки видео модулю 94 обработки фильтра, когда они более не требуются для воссозданной области для Интра BC. В любом случае, модуль 85 Интра BC извлекает предсказывающий блок видео для текущего блока видео из памяти 92 воссозданной области.

[0151] Модуль 94 обработки фильтра может выполнять фильтрацию в цикле над воссозданными блоками видео. Фильтрация в цикле может включать в себя фильтрацию устранения блочности, чтобы фильтровать границы блока, чтобы удалять артефакты блочности из воссозданного видео. Фильтрация в цикле также может включать в себя фильтрацию SAO, чтобы улучшать воссозданное видео. Воссозданные блоки, некоторые из которых могут быть отфильтрованы в цикле, могут быть сохранены в памяти 68 опорной картинки в качестве опорных картинок. Опорные картинки могут включать в себя воссозданные блоки, которые могут быть использованы модулем 82 компенсации движения в качестве предсказывающих блоков, чтобы интер-предсказывать блок в последующем кадре или картинке видео. Память 96 опорной картинки также хранит декодированное видео для представления позже на устройстве отображения, таком как устройство 31 отображения на Фиг. 1.

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

[0153] В одном примере раскрытия, кодер 20 видео может быть выполнен с возможностью кодирования текущей картинки видеоданных (100), и генерирования соответствующего элемента синтаксиса индекса совмещенной опорной картинки для одного или более слайсов текущей картинки (102). Кодер 20 видео может быть дополнительно выполнен с возможностью выполнения проверки согласованности битового потока только для слайсов из одного или более слайсов, которые не имеют тип интра слайса и для которых разрешен временной предсказатель вектора движения (104). В одном примере, проверка согласованности битового потока ограничивает значения соответствующих элементов синтаксиса индекса совмещенной опорной картинки так, что каждый соответствующий элемент синтаксиса индекса совмещенной опорной картинки указывает на некоторую картинку и не ссылается на саму текущую картинку. В дополнительном примере раскрытия, кодер 20 видео может быть выполнен с возможностью определения типа слайса для одного или более слайсов, причем тип слайса включает в себя один из следующих: тип P интер слайса, тип B интер слайса, или тип интра слайса, и определения, разрешен ли временной предсказатель вектора движения для интер предсказания для одного или более слайсов.

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

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

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

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

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

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

[0160] В одном примере раскрытия, декодер 30 видео может быть выполнен с возможностью приема закодированной текущей картинки видеоданных (150), и приема соответствующего элемента синтаксиса индекса совмещенной опорной картинки для одного или более слайсов закодированной текущей картинки (152). Декодер 30 видео может быть дополнительно выполнен с возможностью выполнения проверки согласованности битового потока только для слайсов из одного или более слайсов, которые не имеют тип интра слайса и для которых разрешен временной предсказатель вектора движения (154). В одном примере, проверка согласованности битового потока определяет, указывает ли каждый соответствующий элемент синтаксиса индекса совмещенной опорной картинки на одну и ту же картинку и не ссылается на саму закодированную текущую картинку. В дополнительном примере раскрытия, декодер 30 видео может быть выполнен с возможностью определения типа слайса для одного или более слайсов, причем тип слайса включает в себя один из следующих: тип P интер слайса, тип B интер слайса, или тип интра слайса, определения, разрешен или нет временной предсказатель вектора движения для интер предсказания для одного или более слайсов.

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

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

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

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

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

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

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

[0168] Были описаны разнообразные примеры. Эти и прочие примеры находятся в рамках объема нижеследующей формулы изобретения.

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

название год авторы номер документа
КОДИРОВАНИЕ ОПОРНОЙ КАРТИНКИ ДЛЯ НАБОРА ОПОРНЫХ КАРТИНОК 2012
  • Ван Е-Куй
  • Чэнь Ин
RU2551815C1
СПОСОБ И УСТРОЙСТВО СИГНАЛИЗАЦИИ ФЛАГОВ РЕЖИМА ПРОПУСКАНИЯ 2021
  • Сюй Сяочжун
  • Ли Гуйчунь
  • Лю Шань
RU2801586C1
ПОСТРОЕНИЕ СПИСКА ОПОРНЫХ КАРТИНОК ДЛЯ КОДИРОВАНИЯ ВИДЕО 2012
  • Ван Е-Куй
  • Чэнь Ин
RU2549162C1
КОДИРОВАНИЕ ВИДЕОДАННЫХ, ИСПОЛЬЗУЯ ИНФРАСТРУКТУРУ ДВУХУРОВНЕВОГО МНОГОТИПНОГО ДЕРЕВА 2017
  • Ли Сян
  • Чэнь Цзяньлэ
  • Чжан Ли
  • Чжао Синь
  • Чуан Сяо-Чиан
  • Цзоу Фэн
  • Карчевич Марта
RU2746935C2
ВЫПОЛНЕНИЕ ПРЕДСКАЗАНИЯ ВЕКТОРА ДВИЖЕНИЯ ДЛЯ КОДИРОВАНИЯ ВИДЕО 2012
  • Чэнь Цзяньлэ
  • Кобан Мухаммед Зейд
  • Ван Е-Куй
  • Ван Сянлинь
  • Карчевич Марта
  • Чиэнь Вей-Дзунг
RU2573227C1
Способ и устройство для кодирования видео 2020
  • Сюй Сяочжун
  • Чой Беондоо
  • Лю Шань
RU2780424C1
КОДИРОВАНИЕ ВЕКТОРА ДВИЖЕНИЯ И БИ-ПРЕДСКАЗАНИЕ В HEVC И ЕГО РАСШИРЕНИЯХ 2013
  • Чэнь Ин
  • Ван Е-Куй
  • Чжан Ли
RU2624560C2
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО 2021
  • Ли Гуйчунь
  • Ли Сян
  • Сюй Сяочжун
  • Лю Шань
RU2820768C2
ВЫБОР ТОЧНОСТИ ВЕКТОРА ДВИЖЕНИЯ 2014
  • Салливан Гари Дж.
  • Чжоу Ю
  • Ли Мин-Чиех
  • Лин Чих-Лунг
RU2682859C1
УСТРОЙСТВО И СИГНАЛИЗАЦИЯ АДАПТИВНОГО КОНТУРНОГО ФИЛЬТРА (ALF) НА БЛОЧНОЙ ОСНОВЕ 2019
  • Карчевич, Марта
  • Гадде, Акшай
  • Серегин, Вадим
  • Чиэнь, Вэй-Цзюн
RU2783335C2

Иллюстрации к изобретению RU 2 733 267 C2

Реферат патента 2020 года ОГРАНИЧЕНИЕ СОГЛАСОВАННОСТИ ДЛЯ СОВМЕЩЕННОГО ОПОРНОГО ИНДЕКСА В КОДИРОВАНИИ ВИДЕО

Изобретение относится к средствам для кодирования видео. Технический результат заключается в повышении эффективности кодирования видео. Кодируют текущую картинку видеоданных. Генерируют соответствующий элемент синтаксиса индекса совмещенной опорной картинки для одного или более слайсов текущей картинки. Выполняют проверку согласованности битового потока только для слайсов из одного или более слайсов, которые не имеют тип интра слайса и для которых разрешен временной предсказатель вектора движения. Причем проверка согласованности битового потока ограничивает значения соответствующих элементов синтаксиса индекса совмещенной опорной картинки так, что каждый соответствующий элемент синтаксиса индекса совмещенной опорной картинки указывает на одну и ту же картинку и не ссылается на саму текущую картинку. Определяют тип слайса для одного или более слайсов, причем тип слайса включает в себя один из следующих: тип P интер слайса, тип B интер слайса, или тип интра слайса. Определяют, разрешен или нет временной предсказатель вектора движения для интер предсказания для одного или более слайсов. 4 н. и 19 з.п. ф-лы, 5 ил.

Формула изобретения RU 2 733 267 C2

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

кодируют текущую картинку видеоданных;

генерируют соответствующий элемент синтаксиса индекса совмещенной опорной картинки для одного или более слайсов текущей картинки; и

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

2. Способ по п. 1, дополнительно содержащий этапы, на которых:

определяют тип слайса для одного или более слайсов, причем тип слайса включает в себя один из следующих: тип P интер слайса, тип B интер слайса или тип интра слайса; и

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

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

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

4. Способ по п. 1, дополнительно содержащий этапы, на которых:

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

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

5. Способ по п. 4, в котором соответствующими элементами синтаксиса индекса совмещенной опорной картинки являются соответствующие элементы синтаксиса collocated_ref_idx, указывающие опорные индексы совмещенных картинок, и

при этом флагом разрешенного временного предсказателя вектора движения является slice_temporal_mvp_enabled_flag.

6. Способ по п. 1, в котором этап, на котором кодируют текущую картинку видеоданных, содержит этап, на котором:

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

7. Способ по п. 1, дополнительно содержащий этапы, на которых:

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

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

8. Способ по п. 1, дополнительно содержащий этапы, на которых:

захватывают текущую картинку видеоданных, которая должна быть закодирована; и

выводят закодированную текущую картинку видеоданных.

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

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

один или более процессоры, выполненные с возможностью:

кодирования текущей картинки видеоданных;

генерирования соответствующего элемента синтаксиса индекса совмещенной опорной картинки для одного или более слайсов текущей картинки; и

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

10. Устройство по п. 9, в котором один или более процессоры дополнительно выполнены с возможностью:

определения типа слайса для одного или более слайсов, причем тип слайса включает в себя один из следующих: тип P интер слайса, тип B интер слайса или тип интра слайса; и

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

11. Устройство по п. 9, в котором один или более процессоры дополнительно выполнены с возможностью:

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

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

генерирования соответствующих элементов синтаксиса индекса совмещенной опорной картинки в соответствующих заголовках слайса для соответствующих слайсов; и

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

13. Устройство по п. 12, в котором соответствующими элементами синтаксиса индекса совмещенной опорной картинки являются соответствующие элементы синтаксиса collocated_ref_idx, указывающие опорные индексы совмещенных картинок, и

при этом флагом разрешенного временного предсказателя вектора движения является slice_temporal_mvp_enabled_flag.

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

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

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

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

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

16. Устройство по п. 9, в котором один или более процессоры дополнительно выполнены с возможностью:

захвата текущей картинки видеоданных, которая должна быть закодирована; и

вывода закодированной текущей картинки видеоданных.

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

кодировать текущую картинку видеоданных;

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

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

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

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

один или более процессоры, выполненные с возможностью:

приема закодированной текущей картинки видеоданных;

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

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

19. Устройство по п. 18, в котором один или более процессоры дополнительно выполнены с возможностью:

определения типа слайса для одного или более слайсов, причем тип слайса включает в себя один из следующих: тип P интер слайса, тип B интер слайса или тип интра слайса; и

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

20. Устройство по п. 18, в котором один или более процессоры дополнительно выполнены с возможностью:

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

21. Устройство по п. 18, в котором один или более процессоры дополнительно выполнены с возможностью:

приема соответствующих элементов синтаксиса индекса совмещенной опорной картинки в соответствующих заголовках слайса для соответствующих слайсов; и

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

22. Устройство по п. 21, в котором соответствующими элементами синтаксиса индекса совмещенной опорной картинки являются соответствующие элементы синтаксиса collocated_ref_idx, указывающие опорные индексы совмещенных картинок, и

при этом флагом разрешенного временного предсказателя вектора движения является slice_temporal_mvp_enabled_flag.

23. Устройство по п. 18, в котором один или более процессоры дополнительно выполнены с возможностью:

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

Документы, цитированные в отчете о поиске Патент 2020 года RU2733267C2

Токарный резец 1924
  • Г. Клопшток
SU2016A1
Устройство для закрепления лыж на раме мотоциклов и велосипедов взамен переднего колеса 1924
  • Шапошников Н.П.
SU2015A1
Устройство для закрепления лыж на раме мотоциклов и велосипедов взамен переднего колеса 1924
  • Шапошников Н.П.
SU2015A1
Устройство для закрепления лыж на раме мотоциклов и велосипедов взамен переднего колеса 1924
  • Шапошников Н.П.
SU2015A1
US 9313519 B2, 12.04.2016
СПОСОБ КОДИРОВАНИЯ С ПРЕДСКАЗАНИЕМ ВЕКТОРА ДВИЖЕНИЯ, СПОСОБ ДЕКОДИРОВАНИЯ С ПРЕДСКАЗАНИЕМ ВЕКТОРА ДВИЖЕНИЯ, УСТРОЙСТВО КОДИРОВАНИЯ ФИЛЬМА, УСТРОЙСТВО ДЕКОДИРОВАНИЯ ФИЛЬМА И ИХ ПРОГРАММЫ 2011
  • Китахара Масаки
  • Симидзу Ацуси
  • Ватанабе Маюко
RU2519526C2
УСТРОЙСТВО ОБРАБОТКИ ИЗОБРАЖЕНИЙ И СПОСОБ ОБРАБОТКИ ИЗОБРАЖЕНИЙ 2012
  • Такахаси
  • Хаттори Синобу
RU2578375C2

RU 2 733 267 C2

Авторы

Джоши Раджан Лаксман

Серегин Вадим

Ван Е-Куй

Рапака Кришнакантх

Карчевич Марта

Даты

2020-10-01Публикация

2017-04-12Подача