ОБРАБОТКА ИНСТРУМЕНТА КОДИРОВАНИЯ ДВУНАПРАВЛЕННОГО ОПТИЧЕСКОГО ПОТОКА (BIO) ДЛЯ ПЕРЕДИСКРЕТИЗАЦИИ ОПОРНОГО ИЗОБРАЖЕНИЯ ПРИ КОДИРОВАНИИ ВИДЕО Российский патент 2024 года по МПК H04N19/00 

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

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

[0001] Настоящая заявка на выдачу патента испрашивает приоритет по предварительной патентной заявке США №. 62/848409, поданной 15 мая 2019 г. авторства Jianle Chen и др. и озаглавленной «Обработка инструмента кодирования двунаправленного оптического потока (BIO) для передискретизации опорного изображения при кодировании видео», которая настоящим включена посредством ссылки.

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

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

УРОВЕНЬ ТЕХНИКИ

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

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

[0004] Первый аспект относится к способу декодирования кодированного битового потока видео, реализованному видеодекодером. Способ включает в себя определение посредством видеодекодера, совпадает ли разрешение декодируемого текущего изображения с разрешением опорных изображений, идентифицированных списком опорных изображений, ассоциированным с текущим изображением; включение посредством видеодекодера двунаправленного оптического потока (BDOF, bi-direction optical flow) для текущего блока текущего изображения, когда разрешение текущего изображения определено как совпадающее с разрешением каждого из опорных изображений; отключение посредством видеодекодера BDOF для текущего блока текущего изображения, когда разрешение текущего изображения определено как отличное от разрешения любого из опорных изображений; и уточнение посредством видеодекодера векторов движения, соответствующих текущему блоку, с использованием BDOF, когда BDOF включен для текущего блока.

[0005] Способ обеспечивает способы, которые позволяют выборочно отключать BDOF, когда пространственное разрешение текущего изображения отличается от пространственного разрешения опорных изображений, вместо необходимости отключать BDOF для всей CVS, когда включена передискретизация опорного изображения (RPR, reference picture resampling). Имея возможность выборочно отключать BDOF таким образом, эффективность кодирования может быть улучшена. Таким образом, использование процессора, памяти и/или сетевых ресурсов может быть уменьшено как в кодере, так и в декодере. Таким образом, кодер/декодер (он же «кодек») при кодировании видео улучшен по сравнению с текущими кодеками. На практике улучшенный процесс кодирования видео предлагает пользователю лучший пользовательский опыт при отправке, получении и/или просмотре видео.

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

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

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

[0009] Возможно, в любом из предшествующих аспектов, другая реализация аспекта обеспечивает возможность передискретизации опорного изображения (RPR) для всей кодированной видеопоследовательности (CVS, coded video sequence), содержащей текущее изображение, когда BDOF отключен.

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

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

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

[0013] Способ обеспечивает способы, которые позволяют выборочно отключать BDOF, когда пространственное разрешение текущего изображения отличается от пространственного разрешения опорных изображений, вместо необходимости отключать BDOF для всего CVS, когда включена передискретизация опорного изображения (RPR). Имея возможность выборочно отключать BDOF таким образом, эффективность кодирования может быть улучшена. Таким образом, использование процессора, памяти и/или сетевых ресурсов может быть уменьшено как в кодере, так и в декодере. Таким образом, кодер/декодер (он же «кодек») при кодировании видео улучшен по сравнению с текущими кодеками. На практике улучшенный процесс кодирования видео предлагает пользователю лучший пользовательский опыт при отправке, получении и/или просмотре видео.

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

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

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

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

[0018] Возможно, в любом из предшествующих аспектов, другая реализация аспекта обеспечивает возможность передискретизации опорного изображения (RPR) для всей кодированной видеопоследовательности (CVS), содержащей текущее изображение, даже когда BDOF отключен.

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

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

[0021] Устройство декодирования обеспечивает способы, которые позволяют выборочно отключать BDOF, когда пространственное разрешение текущего изображения отличается от пространственного разрешения опорных изображений, вместо необходимости отключать BDOF для всей CVS, когда включена передискретизация опорного изображения (RPR). Имея возможность выборочно отключать BDOF таким образом, эффективность кодирования может быть улучшена. Таким образом, использование процессора, памяти и/или сетевых ресурсов может быть уменьшено как в кодере, так и в декодере. Таким образом, кодер/декодер (он же «кодек») при кодировании видео улучшен по сравнению с текущими кодеками. На практике улучшенный процесс кодирования видео предлагает пользователю лучший пользовательский опыт при отправке, получении и/или просмотре видео.

[0022] Возможно, в любом из предшествующих аспектов, другая реализация аспекта обеспечивает возможность передискретизации опорного изображения (RPR) для всей кодированной видеопоследовательности (CVS), содержащей текущее изображение, когда BDOF отключен.

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

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

[0025] Устройство кодирования обеспечивает способы, которые позволяют выборочно отключать BDOF, когда пространственное разрешение текущего изображения отличается от пространственного разрешения опорных изображений, вместо необходимости отключать BDOF для всей CVS, когда включена передискретизация опорного изображения (RPR). Имея возможность выборочно отключать BDOF таким образом, эффективность кодирования может быть улучшена. Таким образом, использование процессора, памяти и/или сетевых ресурсов может быть уменьшено как в кодере, так и в декодере. Таким образом, кодер/декодер (он же «кодек») при кодировании видео улучшен по сравнению с текущими кодеками. На практике улучшенный процесс кодирования видео предлагает пользователю лучший пользовательский опыт при отправке, получении и/или просмотре видео.

[0026] Возможно, в любом из предшествующих аспектов, другая реализация аспекта обеспечивает возможность передискретизации опорного изображения (RPR) для всей кодированной видеопоследовательности (CVS), содержащей текущее изображение, даже когда BDOF отключен.

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

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

[0029] Оборудование кодирования обеспечивает способы, которые позволяют выборочно отключать BDOF, когда пространственное разрешение текущего изображения отличается от пространственного разрешения опорных изображений, вместо необходимости отключать BDOF для всей CVS, когда включена передискретизация опорного изображения (RPR). Имея возможность выборочно отключать BDOF таким образом, эффективность кодирования может быть улучшена. Таким образом, использование процессора, памяти и/или сетевых ресурсов может быть уменьшено как в кодере, так и в декодере. Таким образом, кодер/декодер (он же «кодек») при кодировании видео улучшен по сравнению с текущими кодеками. На практике улучшенный процесс кодирования видео предлагает пользователю лучший пользовательский опыт при отправке, получении и/или просмотре видео.

[0030] Шестой аспект относится к системе. Система включает кодер; и декодер, соединенный с кодером, причем кодер или декодер включает в себя устройство декодирования, устройство кодирования или оборудование кодирования, раскрытые в данном документе.

[0031] Система обеспечивает способы, которые позволяют выборочно отключать BDOF, когда пространственное разрешение текущего изображения отличается от пространственного разрешения опорных изображений, вместо необходимости отключать BDOF для всей CVS, когда включена передискретизация опорного изображения (RPR). Имея возможность выборочно отключать BDOF таким образом, эффективность кодирования может быть улучшена. Таким образом, использование процессора, памяти и/или сетевых ресурсов может быть уменьшено как в кодере, так и в декодере. Таким образом, кодер/декодер (он же «кодек») при кодировании видео улучшен по сравнению с текущими кодеками. На практике улучшенный процесс кодирования видео предлагает пользователю лучший пользовательский опыт при отправке, получении и/или просмотре видео.

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

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

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

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

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

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

[0037] Фиг. 5 иллюстрирует пример многоуровневого кодирования для пространственной масштабируемости.

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

[0039] Фиг. 7 - схематическая диаграмма, иллюстрирующая пример двунаправленного межкадрового предсказания.

[0040] Фиг. 8 иллюстрирует битовый поток видео.

[0041] Фиг. 9 иллюстрирует способ разделения изображения.

[0042] Фиг. 10 - вариант осуществления способа декодирования кодированного битового потока видео.

[0043] Фиг. 11 - вариант осуществления способа кодирования битового потока кодированного видео.

[0044] Фиг. 12 - схематическая диаграмма устройства кодирования видео.

[0045] Фиг. 13 - схематическая диаграмма варианта осуществления средства кодирования.

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

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

[0047] Используемое здесь разрешение описывает количество пикселей в видеофайле. То есть разрешение - это ширина и высота проецируемого изображения, измеряемая в пикселях. Например, видео может иметь разрешение 1280 (пикселей по горизонтали) × 720 (пикселей по вертикали). Обычно это записывается просто как 1280 × 720 или сокращенно до 720p. BDOF - это процесс, алгоритм или инструмент кодирования, используемый для уточнения движения или векторов движения для предсказанного блока. BDOF позволяет находить векторы движения для блоков субкодирования на основе градиента разницы между двумя опорными изображениями. Функция RPR - это возможность изменять пространственное разрешение кодированных изображений в середине битового потока без необходимости внутреннего (внутрикадрового) кодирования изображения в месте изменения разрешения.

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

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

[0050] В некоторых примерах закодированные данные могут выводиться через интерфейс 22 вывода на устройство хранения. Точно так же к закодированным данным можно получить доступ с запоминающего устройства через интерфейс ввода. Запоминающее устройство может включать в себя любой из множества распределенных или локально доступных носителей данных, таких как жесткий диск, диски Blu-ray, цифровые видеодиски (DVD, digital video disks), компакт-диски с постоянным доступом для чтения (CD-ROM, Compact Disc Read-Only Memories), флэш-память, энергозависимая или энергонезависимая память или любой другой подходящий цифровой носитель для хранения кодированных видеоданных. В дополнительном примере запоминающее устройство может соответствовать файловому серверу или другому промежуточному запоминающему устройству, которое может хранить кодированное видео, сформированное исходным устройством 12. Целевое устройство 14 может получить доступ к сохраненным видеоданным с устройства хранения посредством потоковой передачи или загрузки. Файловый сервер может быть сервером любого типа, способным хранить закодированные видеоданные и передавать эти закодированные видеоданные на целевое устройство 14. Примеры файловых серверов включают веб-сервер (например, для веб-сайта), сервер протокола передачи файлов (FTP, file transfer protocol), сетевые устройства хранения (NAS, network attached storage) или локальный диск. Целевое устройство 14 может получить доступ к кодированным видеоданным через любое стандартное соединение для передачи данных, включая соединение с Интернетом. Это может включать в себя беспроводной канал (например, соединение Wi-Fi), проводное соединение (например, цифровую абонентскую линию (DSL, digital subscriber line), кабельный модем и т.д.) или их комбинацию, которая подходит для доступа к сохраненным закодированным видеоданным на файловом сервере. Передача закодированных видеоданных с запоминающего устройства может быть потоковой передачей, загрузкой или их комбинацией.

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

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

[0053] Иллюстрированная система 10 кодирования на фиг. 1 - всего лишь один пример. Способы кодирования видео могут осуществляться любым цифровым устройством кодирования и/или декодирования видео. Хотя способы настоящего изобретения обычно осуществляются устройством видео кодирования, способы также могут осуществляться видеокодером/декодером, обычно называемым «КОДЕК». Более того, способы настоящего изобретения также могут осуществляться препроцессором видео. Видеокодер и/или декодер могут быть графическим процессором (GPU, graphics processing unit) или аналогичным устройством.

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

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

[0056] В некоторых случаях, когда видеоисточник 18 является видеокамерой, исходное устройство 12 и целевое устройство 14 могут образовывать так называемые телефоны с камерой или видеотелефоны. Однако, как упомянуто выше, способы, описанные в настоящем изобретении, могут быть применимы к кодированию видео в целом и могут применяться к беспроводным и/или проводным приложениям. В каждом случае захваченное, предварительно захваченное или сгененрированное компьютером видео может быть закодировано видеокодером 20. Затем закодированная видеоинформация может выводиться через интерфейс 22 вывода на считываемый компьютером носитель 16.

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

[0058] Интерфейс 28 ввода целевого устройства 14 принимает информацию с считываемого компьютером носителя 16. Информация считываемого компьютером носителя 16 может включать в себя синтаксическую информацию, определенную видеокодером 20, которая также используется видеодекодером 30, которая включает в себя элементы синтаксиса, которые описывают характеристики и/или обработку блоков и других кодированных единиц, например группу изображений (GOP, group of pictures). Устройство 32 отображения отображает декодированные видеоданные пользователю и может содержать любое из множества устройств отображения, таких как электронно-лучевая трубка (ЭЛТ, CRT, cathode ray tube), жидкокристаллический дисплей (ЖКД, LCD, liquid crystal display), плазменный дисплей, органический светоизлучающий диод (OLED, organic light emitting diode) или другое устройство отображения.

[0059] Видеокодер 20 и видеодекодер 30 могут работать в соответствии со стандартом видеокодирования, таким как разрабатываемый в настоящее время стандарт высокоэффективного видеокодирования (HEVC, High Efficiency Video Coding), и могут соответствовать тестовой модели HEVC (HM). В качестве альтернативы видеокодер 20 и видеодекодер 30 могут работать в соответствии с другими частными или отраслевыми стандартами, такими как стандарт H.264 Сектора стандартизации электросвязи Международного союза электросвязи (ITU-T), альтернативно называемый группой экспертов по движущимся изображениям (MPEG) - 4, часть 10, усовершенствованное видеокодирование (AVC, Advanced Video Coding), H.265/HEVC или расширения таких стандартов. Однако способы настоящего изобретения не ограничиваются каким-либо конкретным стандартом кодирования. Другие примеры стандартов кодирования видео включают MPEG-2 и ITU-T H.263. Хотя это не показано на фиг. 1, в некоторых аспектах видеокодер 20 и видеодекодер 30 могут быть интегрированы с аудиокодером и декодером и могут включать в себя соответствующие блоки мультиплексора-демультиплексора (MUX-DEMUX) или другое аппаратное и программное обеспечение, чтобы обрабатывать кодирование как аудио, так и видео сигналовв общем потоке данных или в отдельных потоках данных. Если применимо, блоки MUX-DEMUX могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP, user datagram protocol).

[0060] Видеокодер 20 и видеодекодер 30 каждый может быть реализован как любая из множества подходящих схем кодера, таких как один или более микропроцессоров, процессоров цифровых сигналов (DSP, digital signal processor), специализированных интегральных схем (ASIC, application specific integrated circuit), программируемых вентильных матриц (FPGA, field programmable gate array), дискретная логика, программное обеспечение, аппаратное обеспечение, микропрограммное обеспечение или любые их комбинации. Когда способы частично реализованы в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем энергонезависимом считываемом компьютером носителе и выполнять инструкции в аппаратных средствах, используя один или более процессоров для осуществления способов настоящего изобретения. Каждый из видеокодера 20 и видеодекодера 30 может быть включен в один или более кодеров или декодеров, каждый из которых может быть интегрирован как часть комбинированного кодера/декодера (CODEC) в соответствующем устройстве. Устройство, включающее в себя видеокодер 20 и/или видеодекодер 30, может содержать интегральную схему, микропроцессор и/или устройство беспроводной связи, такое как сотовый телефон.

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

[0062] Как показано на фиг. 2, видеокодер 20 принимает текущий видеоблок в видеокадре, который должен быть кодирован. В примере на фиг. 2, видеокодер 20 включает в себя блок 40 выбора режима, память 64 опорных кадров, сумматор 50, блок 52 обработки преобразования, блок 54 квантования и блок 56 энтропийного кодирования. Блок 40 выбора режима, в свою очередь, включает в себя блок 44 компенсации движения, блок 42 оценки движения, блок 46 внутреннего предсказания (также известный как внутреннее предсказание) и блок 48 разделения. Для восстановления видеоблока видеокодер 20 также включает в себя блок 58 обратного квантования, блок 60 обратного преобразования и сумматор 62. Фильтр удаления блочности (не показан на фиг. 2) также может быть включен для фильтрации границ блоков для удаления артефактов блочности из восстановленного видео. При необходимости фильтр удаления блочности обычно фильтрует выходной сигнал сумматора 62. Дополнительные фильтры (в цикле или после цикла) также могут использоваться в дополнение к фильтру удаления блочности. Такие фильтры не показаны для краткости, но при желании могут фильтровать выходной сигнал сумматора 50 (как внутриконтурный фильтр).

[0063] Во время процесса кодирования видеокодер 20 принимает видеокадр или фрагмент, подлежащий кодированию. Кадр или фрагмент можно разделить на множество видеоблоков. Блок 42 оценки движения и блок 44 компенсации движения осуществляют кодирование с межкадровым предсказанием принятого видеоблока относительно одного или нескольких блоков в одном или более опорных кадрах, чтобы обеспечить временное предсказание. Блок 46 внутреннего предсказания может альтернативно осуществлять кодирование с внутренним предсказанием принятого видеоблока относительно одного или более соседних блоков в том же кадре или фрагменте, что и блок, который должен быть кодирован, для обеспечения пространственного предсказания. Видеокодер 20 может осуществлять множество проходов кодирования, например, чтобы выбрать соответствующий режим кодирования для каждого блока видеоданных.

[0064] Кроме того, блок 48 разделения может разбивать блоки видеоданных на подблоки на основе оценки предыдущих схем разделения в предыдущих проходах кодирования. Например, блок 48 разделения может первоначально разделить кадр или фрагмент на наибольшие блоки кодирования (LCU, largest coding units) и разделить каждый из LCU на блоки субкодирования (sub-CU, sub-coding units) на основе анализа искажения скорости (например, оптимизации искажения скорости). Блок 40 выбора режима может дополнительно формировать структуру данных дерева квадратов, указывающую разделение LCU на суб-CU. CU конечных узлов дерева квадрантов могут включать в себя один или более блоков предсказания (PU) и один или более блоков преобразования (TU, transform unit).

[0065] В настоящем изобретении термин «блок» используется для обозначения любого из CU, PU или TU в контексте HEVC или аналогичных структур данных в контексте других стандартов (например, макроблоков и их суб-блоков в H. 264/AVC). CU включает в себя узел кодирования, PU и TU, связанные с узлом кодирования. Размер CU соответствует размеру узла кодирования и имеет квадратную форму. Размер CU может варьироваться от 8 × 8 пикселей до размера древовидного блока с максимумом 64 × 64 пикселей или больше. Каждый CU может содержать один или более PU и один или более TU. Данные синтаксиса, связанные с CU, могут описывать, например, разделение CU на один или более PU. Режимы разделения могут различаться в зависимости от того, кодируется ли CU в режиме пропуска или в прямом режиме, в режиме внутреннего предсказания или в режиме межкадрового предсказания (также известного как межкадровое предсказание). PU могут быть разделены на части, чтобы иметь неквадратную форму. Данные синтаксиса, связанные с CU, также могут описывать, например, разделение CU на один или более TU в соответствии с деревом квадратов. TU может иметь квадратную или неквадратную (например, прямоугольную) форму.

[0066] Блок 40 выбора режима может выбрать один из режимов кодирования, внутри- или между-, например, на основе результатов ошибок, и обеспечивает результирующий блок с внутренним или межкадровым кодированием сумматору 50 для формирования данных остаточного блока и сумматору 62 для восстановления закодированного блока для использования в качестве опорного кадра. Блок 40 выбора режима также обеспечивает элементы синтаксиса, такие как векторы движения, внутрирежимные индикаторы, информацию о разделах и другую такую информацию синтаксиса, в блок 56 энтропийного кодирования.

[0067] Блок 42 оценки движения и блок 44 компенсации движения могут быть сильно интегрированы, но для концептуальных целей проиллюстрированы отдельно. Оценка движения, осуществляемая блоком 42 оценки движения, представляет собой процесс формирования векторов движения, которые оценивают движение для видеоблоков. Вектор движения, например, может указывать смещение PU видеоблока в текущем видеокадре или изображении относительно блока предсказания в опорном кадре (или другого кодируемого блока) относительно текущего блока, кодируемого в текущем кадре (или другой кодированный блок). Блок предсказания - это блок, который, как установлено, близко соответствует блоку, который должен быть кодирован, с точки зрения разности пикселей, которая может определяться суммой абсолютной разности (SAD, sum of absolute difference), суммой разности квадратов (SSD, sum of square difference) или другими показателями разности. В некоторых примерах видеокодер 20 может вычислять значения для положений субцелочисленных пикселей опорных изображений, сохраненных в памяти 64 опорных кадров. Например, видеокодер 20 может интерполировать значения положений четверти пикселя, положений одной восьмой пикселя или других положений дробных пикселей опорного изображения. Следовательно, блок 42 оценки движения может осузществлять поиск движения относительно положений полного пикселя и положений дробного пикселя и выводить вектор движения с точностью до дробного пикселя.

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

[0069] Компенсация движения, выполняемая блоком 44 компенсации движения, может включать в себя выборку или формирование блока предсказания на основе вектора движения, определенного блоком 42 оценки движения. Опять же, в некоторых примерах блок 42 оценки движения и блок 44 компенсации движения могут быть функционально интегрированы. После приема вектора движения для PU текущего видеоблока блок 44 компенсации движения может найти блок предсказания, на который указывает вектор движения, в одном из списков опорных изображений. Сумматор 50 формирует остаточный видеоблок, вычитая значения пикселей блока предсказания из значений пикселей текущего кодируемого видеоблока, формируя значения разности пикселей, как обсуждается ниже. В общем, блок 42 оценки движения выполняет оценку движения относительно компонентов яркости, а блок 44 компенсации движения использует векторы движения, вычисленные на основе компонентов яркости как для компонентов цветности, так и для компонентов яркости. Блок 40 выбора режима также может формировать элементы синтаксиса, связанные с видеоблоками и видеофрагментами, для использования видеодекодером 30 при декодировании видеоблоков видеофрагмента.

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

[0071] Например, блок 46 внутреннего предсказания может вычислять значения скоростного искажения, используя анализ скорости-искажения для различных тестируемых режимов внутреннего предсказания, и выбирать режим внутреннего предсказания, имеющий лучшие характеристики скорости-искажения среди тестируемых режимов. Анализ искажения скорости обычно определяет величину искажения (или ошибки) между закодированным блоком и исходным некодированным блоком, который был закодирован для создания закодированного блока, а также битрейт (скорость потока?)(то есть количество битов), используемый для создания закодированного блока. Блок 46 внутреннего предсказания может вычислять отношения из искажений и скоростей для различных кодированных блоков, чтобы определить, какой режим внутреннего предсказания показывает наилучшее значение искажения скорости для блока.

[0072] Кроме того, блок 46 внутреннего предсказания может быть выполнен с возможностью кодирования блоков глубины карты глубины с использованием режима моделирования глубины (DMM, depth modeling mode). Блок 40 выбора режима может определять, дает ли доступный режим DMM лучшие результаты кодирования, чем режим внутреннего предсказания и другие режимы DMM, например, с использованием оптимизации скорости-искажения (RDO, rate-distortion optimization). Данные для изображения текстуры, соответствующего карте глубины, могут храниться в памяти 64 опорных кадров. Блок 42 оценки движения и блок 44 компенсации движения также могут быть выполнены с возможностью межкадрового предсказания блоков глубины карты глубины.

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

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

[0075] Блок 52 обработки преобразования применяет преобразование, такое как дискретное косинусное преобразование (DCT, discrete cosine transform) или концептуально аналогичное преобразование, к остаточному блоку, создавая видеоблок, содержащий значения коэффициентов остаточного преобразования. Блок 52 обработки преобразования может выполнять другие преобразования, которые концептуально аналогичны DCT. Также можно использовать вейвлет-преобразования, целочисленные преобразования, преобразования поддиапазонов или другие типы преобразований.

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

[0077] После квантования блок 56 энтропийного кодирования энтропийно кодирует квантованные коэффициенты преобразования. Например, блок 56 энтропийного кодирования может осуществлять контекстно-адаптивное кодирование переменной длины (CAVLC, context adaptive variable length coding), контекстно-адаптивное двоичное арифметическое кодирование (CABAC, context adaptive binary arithmetic coding), контекстно-адаптивное двоичное арифметическое кодирование на основе синтаксиса (SBAC, syntax-based context-adaptive binary arithmetic coding), энтропийное кодирование с интервалом вероятности (PIPE, probability interval partitioning entropy) или другое способ энтропийного кодирования. В случае энтропийного кодирования на основе контекста контекст может быть основан на соседних блоках. После энтропийного кодирования блоком 56 энтропийного кодирования закодированный битовый поток может быть передан на другое устройство (например, видеодекодер 30) или заархивирован для последующей передачи или поиска.

[0078] Блок 58 обратного квантования и блок 60 обратного преобразования применяют обратное квантование и обратное преобразование, соответственно, для восстановления остаточного блока в области пикселей, например, для последующего использования в качестве опорного блока. Блок 44 компенсации движения может вычислять опорный блок, добавляя остаточный блок к предсказательному блоку одного из кадров памяти 64 опорных кадров. Блок 44 компенсации движения также может применять один или более фильтров интерполяции к восстановленному остаточному блоку для вычисления значений субцелочисленных пикселей для использования при оценке движения. Сумматор 62 добавляет восстановленный остаточный блок к блоку предсказания с компенсацией движения, созданному блоком 44 компенсации движения, чтобы создать восстановленный видеоблок для хранения в памяти 64 опорных кадров. Восстановленный видеоблок может использоваться блоком 42 оценки движения и блоком 44 компенсации движения в качестве опорного блока для межкадрового кодирования блока в последующем видеокадре.

[0079] Фиг. 3 является блок-схемой, иллюстрирующей пример видеодекодера 30, который может реализовывать способы кодирования видео. В примере на фиг. 3, видеодекодер 30 включает в себя блок 70 энтропийного декодирования, блок 72 компенсации движения, блок 74 внутреннего предсказания, блок 76 обратного квантования, блок 78 обратного преобразования, память 82 опорных кадров и сумматор 80. Видеодекодер 30 может, в некоторых примерах, осуществлять этап декодирования, в целом обратный этапу кодирования, описанному в отношении видеокодера 20 (фиг. 2). Блок 72 компенсации движения может формировать данные предсказания на основе векторов движения, принятых из блока 70 энтропийного декодирования, в то время как блок 74 внутреннего предсказания может формировать данные предсказания на основе индикаторов режима внутреннего предсказания, принятых из блока 70 энтропийного декодирования.

[0080] Во время процесса декодирования видеодекодер 30 принимает закодированный битовый поток видео, который представляет видеоблоки закодированного фрагмента видео и связанные элементы синтаксиса от видеокодера 20. Блок 70 энтропийного декодирования видеодекодера 30 энтропийно декодирует битовый поток для формирования квантованных коэффициентов, векторов движения или индикаторов режима внутреннего предсказания и других элементов синтаксиса. Блок 70 энтропийного декодирования пересылает векторы движения и другие элементы синтаксиса в блок 72 компенсации движения. Видеодекодер 30 может принимать элементы синтаксиса на уровне видеофрагмента и/или уровне видеоблока.

[0081] Когда видеофрагмент кодируется как внутренне кодированный (I) фрагмент, блок 74 внутреннего предсказания может сформировать данные предсказания для видеоблока текущего видеофрагмента на основе сигнализированного режима внутреннего предсказания и данных из ранее декодированных блоков текущего кадра или изображения. Когда видеокадр кодируется как межкадрово кодированный (например, B, P или GPB) фрагмент, блок 72 компенсации движения создает блоки предсказания для видеоблока текущего видеофрагмента на основе векторов движения и других элементов синтаксиса, полученных от блока 70 энтропийного декодирования. Блоки предсказания могут быть созданы из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может создавать списки опорных кадров, Список 0 и Список 1, используя способы построения по умолчанию на основе опорных изображений, сохраненных в памяти 82 опорных кадров.

[0082] Блок 72 компенсации движения определяет информацию предсказания для видеоблока текущего видео фрагмента путем анализа векторов движения и других элементов синтаксиса и использует информацию предсказания для создания блоков предсказания для текущего декодируемого видеоблока. Например, блок 72 компенсации движения использует некоторые из принятых элементов синтаксиса для определения режима предсказания (например, внутреннее или межкадровое предсказание), используемого для кодирования видеоблоков видеофрагмента, типа фрагмента с межкадровым предсказанием (например, B фрагмент, P фрагмент или GPB фрагмент), информация о построении для одного или более списков опорных изображений для фрагмента, векторы движения для каждого межкадрово кодированного видеоблока фрагмента, статус межкадрового предсказания для каждого межкадрово кодированного видеоблока фрагмента и другую информацию для декодирования видеоблоков в текущем фрагменте.

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

[0084] Данные для изображения текстуры, соответствующего карте глубины, могут храниться в памяти 82 опорных кадров. Блок 72 компенсации движения также может быть выполнен с возможностью межкадрового предсказания блоков глубины карты глубины.

[0085] В варианте осуществления видеодекодер 30 включает в себя пользовательский интерфейс (UI, user interface) 84. Пользовательский интерфейс 84 выполнен с возможностью приема ввода от пользователя видеодекодера 30 (например, сетевого администратора). Через пользовательский интерфейс 84 пользователь может управлять настройками видеодекодера 30 или изменять их. Например, пользователь может ввести или иным образом обеспечить значение параметра (например, флага), чтобы управлять конфигурацией и/или работой видеодекодера 30 в соответствии с предпочтениями пользователя. Пользовательский интерфейс 84 может быть, например, графическим пользовательским интерфейсом (GUI, graphical user interface), который позволяет пользователю взаимодействовать с видеодекодером 30 посредством графических значков, раскрывающихся меню, флажков и так далее. В некоторых случаях пользовательский интерфейс 84 может получать информацию от пользователя через клавиатуру, мышь или другое периферийное устройство. В варианте осуществления пользователь может получить доступ к пользовательскому интерфейсу 84 через смартфон, планшет, персональный компьютер, расположенный удаленно от видеодекодера 30, и так далее. Используемый здесь пользовательский интерфейс 84 может называться внешним вводом или внешним средством.

[0086] Принимая во внимание вышеизложенное, способы сжатия видео осуществляют пространственное (внутрикадровое) предсказание и/или временное (межкадровое) предсказание для уменьшения или удаления избыточности, присущей видеопоследовательностям. Для блочного кодирования видео видеофрагмент (то есть видеоизображение или часть видеоизображения) может быть разделен на видеоблоки, которые также могут называться древовидными блоками, блоками дерева кодирования (CTB, coding tree block), единицами дерева кодирования (CTU, coding tree unit), единицы кодирования (CU, coding unit) и/или узлы кодирования. Видеоблоки во внутренне кодированном (I) фрагменте изображения кодируются с использованием пространственного предсказания относительно опорных выборок в соседних блоках в одном и том же изображении. Видеоблоки в межкадрово кодированном (P или B) фрагменте изображения могут использовать пространственное предсказание относительно опорных выборок в соседних блоках в одном и том же изображении или временное предсказание относительно опорных выборок в других опорных изображениях. Изображения могут называться кадрами, а опорные изображения могут называться опорными кадрами.

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

[0088] Сжатие изображений и видео быстро растет, что привело к появлению различных стандартов кодирования. К таким стандартам кодирования видео относятся ITU-T H.261, Международная организация по стандартизации/Международная электротехническая комиссия (ISO/IEC) MPEG-1 Part 2, ITU-T H.262 или ISO/IEC MPEG-2 Part 2, ITU-T H.263, ISO/IEC MPEG-4 Part 2, Advanced Video Coding (AVC), также известное как ITU-T H.264 или ISO/IEC MPEG-4 Part 10, и High Efficiency Video Coding (HEVC), также известное как ITU-T H.265 или MPEG-H Part 2. AVC включает такие расширения, как масштабируемое кодирование видео (SVC, Scalable Video Coding), кодирование видео с множеством ракурсов (MVC, Multiview Video Coding) и кодирование видео с несколькими ракурсами плюс глубина (MVC+D, Multiview Video Coding plus Depth) и 3D AVC (3D-AVC). HEVC включает в себя такие расширения, как Scalable HEVC (SHVC), Multiview HEVC (MV-HEVC) и 3D HEVC (3D-HEVC).

[0089] Существует также новый стандарт кодирования видео, называемый универсальным кодированием видео (VVC, Versatile Video Coding), который разрабатывается совместной группой экспертов по видео (JVET) ITU-T и ISO/IEC. Хотя стандарт VVC имеет несколько рабочих проектов, в частности, один рабочий проект (WD, Working Draft) VVC, а именно Б. Бросс, Дж. Чен и С. Лю, «Универсальное кодирование видео (проект 5)», JVET-N1001-v3, 13-е совещание JVET, 27 марта 2019 г. (Проект 5 VVC), полностью включено в настоящий документ посредством ссылки.

[0090] Описание способов, раскрытых в данном документе, основано на разрабатываемом стандарте универсального кодирования видео Versatile Video Coding (VVC) объединенной группой экспертов по видео (JVET) ITU-T и ISO/IEC. Однако эти способы также применимы к другим спецификациям видеокодеков.

[0091] Фиг. 4 является представлением 400 взаимосвязи между изображением 402 внутренней точки произвольного доступа (IRAP, intra random access point) относительно ведущих изображений 404 и замыкающих изображений 406 в порядке 408 декодирования и порядке 410 представления. В варианте осуществления изображение 402 IRAP упоминается как изображение чистого произвольного доступа (CRA, clean random access) или как изображение мгновенного обновления декодера (IDR, instantaneous decoder refresh) с изображением, декодируемым произвольным доступом (RADL). В HEVC изображения IDR, изображения CRA и изображения доступа с нарушенным соединением (BLA, Broken Link Access) считаются изображениями 402 IRAP. Что касается VVC, во время 12-го заседания JVET в октябре 2018 года было решено использовать как изображения IDR, так и изображения CRA в качестве изображений IRAP. В варианте осуществления изображения доступа к нарушенному каналу связи (BLA) и постепенного обновления декодера (GDR, Gradual Decoder Refresh) также могут рассматриваться как изображения IRAP. Процесс декодирования кодированной видеопоследовательности всегда начинается с IRAP.

[0092] Как показано на фиг. 4, начальные изображения 404 (например, изображения 2 и 3) следуют за изображением 402 IRAP в порядке 408 декодирования, но предшествуют изображению 402 IRAP в порядке 410 представления. Завершающее изображение 406 следует за изображением 402 IRAP как в порядке 408 декодирования, так и в порядке 410 представления. Хотя два ведущих изображения 404 и одно замыкающее изображение 406 изображены на фиг. 4, специалисты в данной области техники поймут, что больше или меньше ведущих изображений 404 и/или замыкающих изображений 406 могут присутствовать в порядке 408 декодирования и порядке 410 представления в практических приложениях.

[0093] Ведущие изображения 404 на фиг. 4 были разделены на два типа: произвольный доступ с пропущенным ведущим (RASL, random access skipped leading) и RADL. Когда декодирование начинается с изображения 402 IRAP (например, изображения 1), изображение RADL (например, изображение 3) может быть правильно декодировано; однако изображение RASL (например, изображение 2) не может быть правильно декодировано. Таким образом, изображение RASL отбрасывается. В свете различия между изображениями RADL и RASL тип ведущего изображения 404, связанного с изображением 402 IRAP, должен быть идентифицирован как RADL или RASL для эффективного и правильного кодирования. В HEVC, когда присутствуют изображения RASL и RADL, ограничено, что для изображений RASL и RADL, которые связаны с одним и тем же изображением 402 IRAP, изображения RASL должны предшествовать изображениям RADL в порядке 410 представления.

[0094] Изображение 402 IRAP обеспечивает следующие две важные функции/преимущества. Во-первых, наличие изображения 402 IRAP указывает, что процесс декодирования может начинаться с этого изображения. Эта функция позволяет использовать функцию произвольного доступа, в которой процесс декодирования начинается в этой позиции в битовом потоке , не обязательно в начале битового потока, пока изображение 402 IRAP присутствует в этой позиции. Во-вторых, наличие изображения 402 IRAP обновляет процесс декодирования, так что кодированное изображение, начинающееся с изображения 402 IRAP, исключая изображения RASL, кодируется без какой-либо ссылки на предыдущие изображения. Наличие изображения 402 IRAP, присутствующего в битовом потоке, следовательно, остановит любую ошибку, которая может произойти во время декодирования кодированных изображений до изображения 402 IRAP для распространения на изображение 402 IRAP и те изображения, которые следуют за изображением 402 IRAP в порядке 408 декодирования.

[0095] Хотя изображения 402 IRAP обеспечивают важные функции, они снижают эффективность сжатия. Присутствие изображения 402 IRAP вызывает скачок скорости передачи данных. Это снижение эффективности сжатия вызвано двумя причинами. Во-первых, поскольку изображение 402 IRAP является изображением с внутренним предсказанием, само изображение потребует относительно большего количества битов для представления по сравнению с другими изображениями (например, ведущими изображениями 404, замыкающими изображениями 406), которые являются изображениями с мекадровым предсказанием. Во-вторых, поскольку присутствие изображения 402 IRAP нарушает временное предсказание (это потому, что декодер обновляет процесс декодирования, в котором одним из действий процесса декодирования является удаление предыдущих опорных изображений в буфере декодированных изображений (DPB, decoded picture buffer) изображение 402 IRAP приводит к тому, что кодирование изображений, следующих за изображением 402 IRAP в порядке 408 декодирования, становится менее эффективным (то есть, для представления требуется больше битов), потому что они имеют меньше опорных изображений для их кодирования с межкадровым предсказанием.

[0096] Среди типов изображения, которые считаются изображениями 402 IRAP, изображение IDR в HEVC имеет другую сигнализацию и происхождение по сравнению с другими типами изображений. Некоторые отличия заключаются в следующем.

[0097] Для сигнализации и вывода значения счетчика порядка изображений (POC, picture order count) IDR-изображения часть старшего бита (MSB) POC не выводится из предыдущего ключевого изображения, а просто устанавливается равной 0.

[0098] Что касается сигнальной информации, необходимой для управления опорным изображением, заголовок фрагмента IDR-изображения не содержит информации, необходимой для передачи сигналов для содействия в управлении опорным изображением. Для других типов изображений (например, CRA, трейлинг, доступ к временному подуровню (TSA) и т. д.) Информация, такая как набор опорных изображений (RPS, reference picture set), описанная ниже, или другие формы аналогичной информации (например, списки опорных изображений) являются необходимыми для процесса маркировки опорных изображений (т. е. процесса определения статуса опорных изображений в буфере декодированных изображений (DPB), которые используются для справки и не используются для справки). Однако для изображения IDR такую информацию не нужно сообщать, потому что наличие IDR указывает, что процесс декодирования должен просто пометить все опорные изображения в DPB как неиспользуемые для справки.

[0099] В HEVC и VVC изображения 402 IRAP и начальные изображения 404 могут каждое содержаться в одном блоке уровня абстракции сети (NAL). Набор блоков NAL может называться блоком доступа. Изображениям 402 IRAP и ведущим изображениям 404 даются разные типы блоков NAL, чтобы их можно было легко идентифицировать приложениями системного уровня. Например, монтажному устройству видео необходимо понимать типы кодированных изображений без необходимости понимать слишком много деталей элемента синтаксиса в кодированном битовом потоке, в частности, чтобы идентифицировать изображения 402 IRAP из изображений, не относящихся к IRAP, и идентифицировать ведущие изображения 404, включая определение RASL и Изображения RADL из замыкающих изображений 406. Конечные изображения 406 - это те изображения, которые связаны с изображением 402 IRAP и следуют за изображением 402 IRAP в порядке 410 представления. Изображение может следовать за конкретным изображением 402 IRAP в порядке 408 декодирования и предшествовать любому другому изображению 402 IRAP в порядке 408 декодирования. Для этого предоставление изображений 402 IRAP и ведущих изображений 404 их собственного типа блока NAL помогает таким приложениям.

[00100] Для HEVC типы блоков NAL для изображений IRAP включают следующее:

BLA с ведущим изображением (BLA_W_LP): Блок NAL изображения доступа к нарушенному соединению (BLA), за которым может следовать одно или более ведущих изображений в порядке декодирования.

BLA с RADL (BLA_W_RADL): Блок NAL изображения BLA, за которым может следовать одно или более изображений RADL, но не изображение RASL в порядке декодирования.

BLA без ведущего изображения (BLA_N_LP): Блок NAL изображения BLA, за которым не следует ведущее изображение в порядке декодирования.

IDR с RADL (IDR_W_RADL): Блок NAL изображения IDR, за которым может следовать одно или более изображений RADL, но не изображение RASL в порядке декодирования.

IDR без ведущего изображения (IDR_N_LP): Блок NAL изображения IDR, за которым не следует ведущее изображение в порядке декодирования.

CRA: Блок NAL изображения с чистым произвольным доступом (CRA), за которым могут следовать начальные изображения (т. е. Либо изображения RASL, либо изображения RADL, либо и то, и другое).

RADL: Блок NAL изображения RADL.

RASL: Блок NAL изображения RASL.

[00101] Для VVC тип блока NAL для изображений 402 IRAP и ведущих изображений 404 следующий:

IDR с RADL (IDR_W_RADL): Блок NAL изображения IDR, за которым может следовать одно или более изображений RADL, но не изображение RASL в порядке декодирования.

IDR без ведущего изображения (IDR_N_LP): Блок NAL изображения IDR, за которым не следует ведущее изображение в порядке декодирования.

CRA: Блок NAL изображения с чистым произвольным доступом (CRA), за которым могут следовать начальные изображения (т. е. Либо изображения RASL, либо изображения RADL, либо оба изображения).

RADL: Блок NAL изображения RADL.

RASL: Блок NAL изображения RASL.

[00102] Функция передискретизации опорного изображения (RPR) - это способность изменять пространственное разрешение кодированных изображений в середине битового потока без необходимости внутреннего кодирования изображения в месте изменения разрешения. Чтобы сделать это возможным, изображение должно иметь возможность ссылаться для целей межкадрового предсказания на одно или более опорных изображений, для которых пространственное разрешение отличается от разрешения текущего изображения. Следовательно, передискретизация такого опорного изображения или его части необходима для кодирования и декодирования текущего изображения. Таким образом, название RPR. Эта функция также может называться адаптивным изменением разрешения (ARC) или другими названиями. Существуют сценарии использования или сценарии приложений, для которых функция RPR может быть полезной, в том числе следующие.

[00103] Адаптация скорости в видеотелефонии и конференц-связи. Это необходимо для адаптации закодированного видео к изменяющимся условиям сети. Когда состояние сети ухудшается и доступная полоса пропускания становится ниже, кодер может адаптироваться к этому, кодируя изображения с меньшим разрешением.

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

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

[00106] Адаптивное переключение потоков в потоковой передаче. Спецификация динамической адаптивной потоковой передачи через HTTP (DASH) включает функцию с именем @mediaStreamStructureId. Эта функция позволяет переключаться между различными представлениями в точках произвольного доступа с открытой GOP с не декодируемыми ведущими изображениями, например, изображениями CRA со связанными изображениями RASL в HEVC. Когда два разных представления одного и того же видео имеют разные битрейты, но одинаковое пространственное разрешение и одинаковое значение @mediaStreamStructureId, может осуществляться переключение между двумя представлениями в изображении CRA со связанными изображениями RASL, и изображения RASL, связанные с переключающиеся изображения CRA могут быть декодированы с приемлемым качеством, что обеспечивает плавное переключение. С ARC функция @mediaStreamStructureId также может использоваться для переключения между представлениями DASH с различным пространственным разрешением.

[00107] Различные способы упрощают базовые способы поддержки RPR/ARC, такие как сигнализация списков разрешений изображений, некоторые ограничения передискретизации опорных изображений в DPB и т. Д. Кроме того, во время 14-го собрания JVET в Женеве было внесено несколько вкладов, предлагающих ограничения, которые следует применить к VVC для поддержки RPR. Предлагаемые ограничения включают в себя следующее.

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

[00109] Временное предсказание вектора движения (TMVP) и расширенный TMVP (ATMVP, advanced TMVP). Это было предложено JVET-N0118.

[00110] Уточнение вектора движения на стороне декодера (DMVR). Это было предложено JVET-N0279.

[00111] Двунаправленный оптический поток (BIO). Это было предложено JVET-N0279.

[00112] Двойное предсказание блока из опорного изображения с разрешением, отличным от текущего изображения, запрещено. Это было предложено JVET-N0118.

[00113] Для компенсации движения фильтрация выборки должна применяться только один раз, то есть, если требуется передискретизация и интерполяция для получения более точного разрешения (например, разрешение в четверть пикселя), два фильтра необходимо объединить и применить только один раз. Это было предложено JVET-N0118.

[00114] Масштабируемость при кодировании видео обычно поддерживается за счет использования способов многоуровневого кодирования. Многослойный битовый поток включает базовый уровень (BL, base layer) и один или более уровней расширения (EL, enhancement layer). Примеры масштабируемости включают в себя пространственную масштабируемость, масштабируемость качества/отношения сигнал/шум (SNR, signal-to-noise), масштабируемость с несколькими представлениями и т. д. Когда используется способ многоуровневого кодирования, изображение или его часть могут кодироваться (1) без использования опорного изображения, то есть с использованием внутреннего предсказания; (2) путем ссылки на опорные изображения, которые находятся на одном уровне, т. е. с использованием межкадрового предсказания; или (3) путем ссылки на опорные изображения, которые находятся на другом уровне (-ях), т. е. с использованием межуровневого предсказания. Опорное изображение, используемое для межуровневого предсказания текущего изображения, называется межуровневым опорным изображением (ILRP, inter-layer reference picture).

[00115] Фиг. 5 иллюстрирует пример многоуровневого кодирования для пространственной масштабируемости 500. Изображения 502 в слое N имеют другое разрешение (например, более низкое разрешение), чем изображения 504 в слое N+1. В варианте осуществления уровень N считается базовым уровнем, а уровень N+1 считается уровнем расширения, как описано выше. Изображения 502 на уровне N и изображения 504 на уровне N+1 могут быть закодированы с использованием межкадрового предсказания (как показано сплошной стрелкой). Изображения 502 также можно кодировать с использованием межуровневого предсказания (как показано пунктирной стрелкой).

[00116] В контексте RPR опорное изображение может быть повторно дискретизировано либо путем выбора опорного изображения из нижнего уровня, либо путем использования межуровневого предсказания для формирования опорного изображения более высокого уровня на основе опорного изображения нижнего уровня.

[00117] Предыдущие семейства кодирования видео H.26x обеспечивали поддержку масштабируемости в профиле (-ях), отличном от профиля (-ей) для одноуровневого кодирования. Масштабируемое кодирование видео (SVC, scalable video coding) - это масштабируемое расширение AVC/H.264, которое обеспечивает поддержку пространственной, временной масштабируемости и масштабируемости качества. Для SVC в каждом макроблоке (MB, macroblock) в изображениях EL сигнализируется флаг, чтобы указать, предсказывается ли MB EL с использованием совместно размещенного блока с нижнего уровня. Предсказание из совместно размещенного блока может включать в себя текстуру, векторы движения и/или режимы кодирования. Реализации SVC не могут напрямую повторно использовать немодифицированные реализации H.264/AVC в своих проектах. Синтаксис и процесс декодирования макроблока SVC EL отличается от синтаксиса и процесса декодирования H.264/AVC.

[00118] Масштабируемый HEVC (SHVC) - это расширение стандарта HEVC/H.265, которое обеспечивает поддержку пространственной масштабируемости и качества, многоракурсный HEVC (MV-HEVC) - это расширение HEVC/H.265, которое обеспечивает поддержку многовидового масштабирования, а 3D HEVC (3D-HEVC) - это расширение HEVC/H.264, которое обеспечивает поддержку трехмерного (3D) кодирования видео, которое является более продвинутым и более эффективным, чем MV-HEVC. Обратите внимание, что временная масштабируемость включена как неотъемлемая часть однослойного кодека HEVC. В конструкции многоуровневого расширения HEVC используется идея, согласно которой декодированные изображения, используемые для межуровневого предсказания, поступают только из одного и того же блока доступа (AU, access unit) и обрабатываются как долгосрочные опорные изображения (LTRP, long-term reference picture), и им назначаются опорные индексы в списке (-ах) опорных изображений вместе с другими временными опорными изображениями в текущем слое. Межуровневое предсказание (ILP, Inter-Layer Prediction) достигается на уровне блока предсказания (PU, Prediction Unit) путем установки значения опорного индекса для ссылки на межуровневое опорное изображение (-я) в списке (-ах) опорных изображений.

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

[00120] JVET-N0279 предложил отключить BIO для RPR. Точнее, он предлагал отключить использование BIO (также известного как BDOF) для всей кодированной видеопоследовательности (CVS), когда включен RPR. Замечено, что даже когда функция RPR включена, текущее изображение во многих случаях не относится к опорному изображению с другим разрешением. Следовательно, отключение BIO для всей CVS излишне ограничивает и может снизить эффективность кодирования.

[00121] В данном документе раскрыты способы, которые позволяют выборочно отключать BDOF, когда пространственное разрешение текущего изображения отличается от пространственного разрешения опорных изображений, вместо необходимости отключать BDOF для всей CVS, когда включен RPR. Имея возможность выборочно отключать BDOF таким образом, эффективность кодирования может быть улучшена. Таким образом, использование процессора, памяти и/или сетевых ресурсов может быть уменьшено как в кодере, так и в декодере. Таким образом, кодер/декодер (он же «кодек») при кодировании видео улучшен по сравнению с текущими кодеками. На практике улучшенный процесс кодирования видео предлагает пользователю лучший пользовательский опыт при отправке, получении и/или просмотре видео.

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

[00123] Однонаправленное межкадровое предсказание 600 использует опорный кадр 630 с опорным блоком 631 для предсказания текущего блока 611 в текущем кадре 610. Опорный кадр 630 может быть размещен во времени после текущего кадра 610, как показано (например, как последующий опорный кадр), но также может быть временно расположен перед текущим кадром 610 (например, как предыдущий опорный кадр) в некоторых примерах. Текущий кадр 610 представляет собой примерный кадр/изображение, кодируемое/декодируемое в конкретное время. Текущий кадр 610 содержит объект в текущем блоке 611, который соответствует объекту в опорном блоке 631 опорного кадра 630. Опорный кадр 630 - это кадр, который используется в качестве опорного для кодирования текущего кадра 610, а опорный блок 631 - это блок в опорном кадре 630, который содержит объект, также содержащийся в текущем блоке 611 текущего кадра 610.

[00124] Текущий блок 611 - это любая единица кодирования, которая кодируется/декодируется в определенной точке процесса кодирования. Текущий блок 611 может быть целым секционированным блоком или может быть субблоком при использовании режима аффинного межкадрового предсказания. Текущий кадр 610 отделен от опорного кадра 630 некоторым временным расстоянием 633 (TD, temporal distance). TD 633 указывает количество времени между текущим кадром 610 и опорным кадром 630 в видеопоследовательности и может измеряться в единицах кадров. Информация предсказания для текущего блока 611 может ссылаться на опорный кадр 630 и/или опорный блок 631 посредством ссылочного индекса, указывающего направление и временное расстояние между кадрами. В течение периода времени, представленного TD 633, объект в текущем блоке 611 перемещается из позиции в текущем кадре 610 в другую позицию в опорном кадре 630 (например, в позицию опорного блока 631). Например, объект может двигаться по траектории 613 движения, которая является направлением движения объекта во времени. Вектор 635 движения описывает направление и величину движения объекта по траектории 613 движения над TD 633. Соответственно, кодированный вектор 635 движения, опорный блок 631 и остаток, включающий разницу между текущим блоком 611 и опорным блоком 631, предоставляют информацию, достаточную для восстановления текущего блока 611 и размещения текущего блока 611 в текущем кадре 610.

[00125] Фиг. 7 - схематическая диаграмма, иллюстрирующая пример двунаправленного межкадрового предсказания 700. Двунаправленное межкадровое предсказание 700 может использоваться для определения векторов движения для кодированных и/или декодированных блоков, созданных при разделении изображения.

[00126] Двунаправленное межкадровое предсказание 700 аналогично однонаправленному межкадровому предсказанию 600, но использует пару опорных кадров для предсказания текущего блока 711 в текущем кадре 710. Следовательно, текущий кадр 710 и текущий блок 711 по существу аналогичны текущему кадру 610 и текущему блоку 611 соответственно. Текущий кадр 710 позиционируется во времени между предыдущим опорным кадром 720, который возникает перед текущим кадром 710 в видеопоследовательности, и последующим опорным кадром 730, который появляется после текущего кадра 710 в видеопоследовательности. Предыдущий опорный кадр 720 и последующий опорный кадр 730 в остальном по существу аналогичны опорному кадру 630.

[00127] Текущий блок 711 соответствует предыдущему опорному блоку 721 в предыдущем опорном кадре 720 и последующему опорному блоку 731 в последующем опорном кадре 730. Такое совпадение указывает, что в ходе видеопоследовательности объект перемещается из позиции в предыдущем контрольном блоке 721 в позицию в последующем контрольном блоке 731 вдоль траектории 713 движения и через текущий блок 711. Текущий кадр 710 отделен от предыдущего опорного кадра 720 некоторым предыдущим временным расстоянием (TD0) 723 и отделен от последующего опорного кадра 730 некоторым последующим временным расстоянием (TD1) 733. TD0 723 указывает количество времени между предыдущим опорным кадром 720 и текущим кадром 710 в видеопоследовательности в единицах кадров. TD1 733 указывает количество времени между текущим кадром 710 и последующим опорным кадром 730 в видеопоследовательности в единицах кадра. Следовательно, объект перемещается от предыдущего опорного блока 721 к текущему блоку 711 по траектории 713 движения в течение периода времени, указанного TD0 723. Объект также перемещается от текущего блока 711 к последующему опорному блоку 731 по траектории 713 движения в течение периода времени, указанного TD1 733. Информация предсказания для текущего блока 711 может ссылаться на предыдущий опорный кадр 720 и/или предшествующий опорный блок 721 и последующий опорный кадр 730 и/или последующий опорный блок 731 посредством пары опорных индексов, указывающих направление и временное расстояние между кадрами. .

[00128] Предыдущий вектор движения (MV0) 725 описывает направление и величину движения объекта по траектории 713 движения по TD0 723 (например, между предыдущим опорным кадром 720 и текущим кадром 710). Последующий вектор движения (MV1) 735 описывает направление и величину движения объекта по траектории 713 движения по TD1 733 (например, между текущим кадром 710 и последующим опорным кадром 730). По существу, при двунаправленном межкадровым предсказании 700 текущий блок 711 может быть закодирован и восстановлен с использованием предыдущего ссылочного блока 721 и/или последующего ссылочного блока 731, MV0 725 и MV1 735.

[00129] В варианте осуществления межкадровое предсказание и/или двунаправленное межкадровое предсказание может выполняться на основе выборки за выборкой (например, пиксель за пикселем) вместо поблочной основе. То есть вектор движения, указывающий на каждую выборку в предыдущем контрольном блоке 721 и/или последующем контрольном блоке 731, может быть определен для каждой выборки в текущем блоке 711. В таких вариантах осуществления вектор 725 движения и вектор 735 движения, показанные на фиг. 7 представляют множество векторов движения, соответствующих множеству выборок в текущем блоке 711, предыдущем контрольном блоке 721 и последующем контрольном блоке 731.

[00130] Как в режиме слияния, так и в режиме расширенного предсказания вектора движения (AMVP) список кандидатов формируется путем добавления векторов движения кандидатов в список кандидатов в порядке, определенном шаблоном определения списка кандидатов. Такие векторы движения-кандидаты могут включать в себя векторы движения согласно однонаправленному межкадровому предсказанию 600, двунаправленному межкадровому предсказанию 700 или их комбинациям. В частности, векторы движения формируются для соседних блоков, когда такие блоки кодируются. Такие векторы движения добавляются в список кандидатов для текущего блока, и вектор движения для текущего блока выбирается из списка кандидатов. Затем вектор движения может быть передан как индекс выбранного вектора движения в списке кандидатов. Декодер может создать список кандидатов, используя тот же процесс, что и кодер, и может определить выбранный вектор движения из списка кандидатов на основе переданного индекса. Следовательно, векторы движения-кандидаты включают в себя векторы движения, сформированные согласно однонаправленному межкадровому предсказанию 600 и/или двунаправленному межкадровому предсказанию 700, в зависимости от того, какой подход используется при кодировании таких соседних блоков.

[00131] Фиг. 8 иллюстрирует битовый поток 800 видео. В данном контексте битовый поток 800 видео также может называться кодированным битовым потоком видео, битовым потоком или их вариациями. Как показано на фиг. 8, битовый поток 800 содержит набор 802 параметров последовательности (SPS, sequence parameter set), набор 804 параметров изображения (PPS, picture parameter set), заголовок 806 фрагмента и данные 808 изображения.

[00132] SPS 802 содержит данные, общие для всех изображений в последовательности изображений (SOP, sequence of pictures). Напротив, PPS 804 содержит данные, общие для всего изображения. Заголовок 806 фрагмента содержит информацию о текущем фрагменте, такую как, например, тип фрагмента, какое из опорных изображений будет использоваться, и так далее. SPS 802 и PPS 804 в общем могут называться набором параметров. SPS 802, PPS 804 и заголовок 806 фрагмента являются типами блоков уровня абстракции сети (NAL, Network Abstraction Layer). Блок NAL - это синтаксическая структура, содержащая указание типа данных, которым следует следовать (например, кодированные видеоданные). Блоки NAL подразделяются на блоки уровня кодирования видео (VCL, video coding layer) и блоки NAL, не относящиеся к VCL. Блоки VCL NAL содержат данные, которые представляют значения выборок в видеоизображениях, а блоки NAL, не относящиеся к VCL, содержат любую связанную дополнительную информацию, такую как наборы параметров (важные данные заголовка, которые могут применяться к большому количеству блоков NAL VCL) и дополнительная улучшающая информация (информация о синхронизации и другие дополнительные данные, которые могут повысить удобство использования декодированного видеосигнала, но не являются необходимыми для декодирования значений выборок в видеоизображениях). Специалисты в данной области техники поймут, что битовый поток 800 может содержать другие параметры и информацию в практических приложениях.

[00133] Данные 808 изображения на фиг. 8 содержат данные, связанные с изображениями или видео, которые кодируются или декодируются. Данные 808 изображения могут называться просто полезной нагрузкой или данными, переносимыми в битовом потоке 800. В варианте осуществления данные 808 изображения содержат CVS 814 (или CLVS), содержащие множество изображений 810. CVS 814 представляет собой кодированную видеопоследовательность для каждой видеопоследовательности кодированного уровня (CLVS) в битовом потоке 800 видео. Примечательно, что CVS и CLVS одинаковы, когда битовый поток 800 видео включает в себя один уровень. CVS и CLVS отличаются только тогда, когда битовый поток 800 видео включает в себя несколько уровней.

[00134] Как показано на фиг. 8, фрагмент каждого изображения 810 может содержаться в его собственном блоке 812 VCL NAL. Набор блоков 812 VCL NAL в CVS 814 может называться блоком доступа.

[00135] Фиг. 9 иллюстрирует способ 900 разделения для изображения 910. Изображение 910 может быть аналогично любому из изображений 810 на фиг. 8. Как показано, изображение 910 может быть разделено на множество фрагментов 912. Фрагмент - это пространственно отличная область кадра (например, изображения), которая кодируется отдельно от любой другой области в том же кадре. Хотя на фиг. 9 изображены три фрагмента 912, в практических приложениях можно использовать больше или меньше фрагментов. Каждый фрагмент 912 может быть разделен на множество блоков 914. Блоки 914 на фиг. 9 может быть аналогичным текущему блоку 711, предыдущему контрольному блоку 721 и последующему контрольному блоку 731 на фиг. 7. Блок 914 может представлять CU. Хотя на фиг. 9 изображены четыре блока 914, в практических приложениях можно использовать больше или меньше блоков.

[00136] Каждый блок 914 может быть разделен на множество выборок 916 (например, пикселей). В варианте осуществления размер каждого блока 914 измеряется в выборках яркости. Хотя шестнадцать выборок 916 изображены на фиг. 9, в практических приложениях можно использовать больше или меньше выборок.

[00137] Фиг. 10 - вариант осуществления способа 1000 декодирования кодированного битового потока видео, реализованного видеодекодером (например, видеодекодером 30). Способ 1000 может осуществляться после того, как декодированный битовый поток был прямо или косвенно принят от видеокодера (например, видеокодера 20). Способ 1000 улучшает процесс декодирования, позволяя выборочно отключать BDOF, когда пространственное разрешение текущего изображения отличается от пространственного разрешения опорных изображений, вместо необходимости отключать BDOF для всей CVS, когда включен RPR. Имея возможность выборочно отключать BDOF таким образом, эффективность кодирования может быть улучшена. Следовательно, с практической точки зрения производительность кодека улучшается, что приводит к лучшему взаимодействию с пользователем.

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

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

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

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

[00142] В варианте осуществления способ дополнительно содержит включение передискретизации опорного изображения (RPR) для всей кодированной видеопоследовательности (CVS), содержащей текущее изображение, даже когда BDOF отключен.

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

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

[00145] Фиг. 11 - вариант осуществления способа 1100 кодирования битового потока видео, реализованного видеокодером (например, видеокодером 20). Способ 900 может осуществляться, когда изображение (например, из видео) должно быть закодировано в битовый поток видео и затем передано в видеодекодер (например, видеодекодер 30). Способ 1100 улучшает процесс кодирования, позволяя выборочно отключать BDOF, когда пространственное разрешение текущего изображения отличается от пространственного разрешения опорных изображений, вместо необходимости отключать BDOF для всей CVS, когда включен RPR. Имея возможность выборочно отключать BDOF таким образом, эффективность кодирования может быть улучшена. Следовательно, с практической точки зрения производительность кодека улучшается, что приводит к лучшему взаимодействию с пользователем.

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

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

[00148] В варианте осуществления способ включает в себя определение векторов движения для текущего изображения на основе опорных изображений, кодирование текущего изображения на основе векторов движения и декодирование текущего изображения с использованием гипотетического опорного декодера (HRD, hypothetical reference decoder).

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

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

[00151] В варианте осуществления способ дополнительно содержит включение передискретизации опорного изображения (RPR) для всей кодированной видеопоследовательности (CVS), содержащей текущее изображение, даже когда BDOF отключен.

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

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

[00154]

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

[00156] Способ включает в себя анализ набора параметров для получения информации о включении текущего изображения; получение двух списков опорных изображений текущего фрагмента в текущем изображении; определение опорного изображения для декодирования текущего блока кодирования в текущем фрагменте; определение разрешения опорного изображения; принятие решения о том, используется ли двунаправленный оптический поток (BIO, bi-direction optical flow) или включен для декодирования текущего блока кодирования, на основе разрешений текущего изображения и опорного изображения; и декодирование текущего блока кодирования.

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

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

[00159] Способ включает в себя синтаксический анализ набора параметров для получения флага, указывающего, может ли инструмент/способ кодирования двунаправленного оптического потока (BIO) использоваться для декодирования изображений в текущей кодированной видеопоследовательности; получение текущего фрагмента в текущем изображении; когда значение флага, указывает, можно ли использовать инструмент/способ кодирования двунаправленного оптического потока (BIO) для декодирования изображений в текущей кодированной видеопоследовательности, указывает, что BIO может использоваться, анализируя заголовок фрагмента, соединенного с текущим фрагментом, чтобы получить флаг, указывающий, может ли инструмент кодирования BIO использоваться для декодирования блоков кодирования в текущем фрагменте.

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

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

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

[00163] Способ включает в себя определение того, может ли инструмент/способ кодирования двунаправленного оптического потока (BIO) использоваться для кодирования изображений в текущей кодированной видеопоследовательности; анализ набора параметров для получения информации о включении каждого битового потока изображения; получение двух списков опорных изображений текущего фрагмента в текущем изображении; анализ списков опорных изображений текущего фрагмента для получения активных опорных изображений, которые могут использоваться для декодирования блоков кодирования текущего фрагмента; ограничение того, что инструмент кодирования BIO не может использоваться для кодирования блоков кодирования в текущем фрагменте, если выполняется хотя бы одно из следующих условий: Инструмент кодирования BIO не может использоваться для кодирования изображений в текущей кодированной видеопоследовательности, а разрешения текущего изображения и, по меньшей мере, одного из опорных изображений различаются.

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

[00165] Способ включает в себя синтаксический анализ набора параметров для получения флага, указывающего, может ли инструмент/способ кодирования двунаправленного оптического потока (BIO) использоваться для декодирования изображений в текущей кодированной видеопоследовательности; и анализ набора параметров для получения флага, указывающего, может ли инструмент/способ кодирования двунаправленного оптического потока (BIO) использоваться для декодирования изображений, которые относятся к набору параметров, причем набор параметров представляет собой набор параметров изображения (PPS).

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

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

[00168] В варианте осуществления способ включает в себя определение того, может ли инструмент/способ кодирования двунаправленного оптического потока (BIO) использоваться для кодирования изображений в текущей кодированной видеопоследовательности; определение того, может ли инструмент/способ кодирования двунаправленного оптического потока (BIO) использоваться для кодирования изображений со ссылкой на текущий PPS; и ограничение того, что инструмент кодирования BIO не может использоваться для кодирования изображений при обращении к текущему PPS, когда инструмент кодирования BIO не может использоваться для кодирования изображений в текущей кодированной последовательности.

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

[00170] Обновите процесс построения списка опорных изображений следующим образом.

[00171] Списки опорных изображений RefPicList [ 0 ] и RefPicList [ 1 ] составлены следующим образом:

[00172] Вывод флага, определяющего, используется ли BIO или нет.

[00173] Пусть predSamplesL0L, predSamplesL1L и predSamplesIntraL будут (cbWidth)x(cbHeight) ами предсказанных значений выборки яркости и, predSamplesL0Cb, predSamplesL1Cb, predSamplesL0Cr и predSamplesL1Cr, predSamplesIntraCb, и predSamplesIntraCr будут (cbWidth / 2)x(cbHeight / 2) массивами предсказанных значений выборки цветности.

- Переменная currPic определяет текущее изображение, а переменная bdofFlag выводится следующим образом:

- Если все следующие условия верны, bdofFlag устанавливается равным TRUE.

- sps_bdof_enabled_flag равен 1.

- predFlagL0 [xSbIdx] [ySbIdx] и predFlagL1 [xSbIdx] [ySbIdx] оба равны 1.

- DiffPicOrderCnt (currPic, RefPicList [ 0 ] [refIdxL0]) * DiffPicOrderCnt (currPic, RefPicList [ 1 ] [refIdxL1]) меньше 0.

- MotionModelIdc [xCb] [yCb] равен 0.

- merge_subblock_flag [xCb] [yCb] равен 0.

- BcwIdx [xCb] [yCb] равен 0.

- luma_weight_l0_flag [refIdxL0] и luma_weight_l1_flag [refIdxL1] оба равны 0.

- cbHeight больше или равно 8

- cIdx равен 0.

- RefPicSameSizeFlag [ 0 ] [refIdxL0] равен 1

- RefPicSameSizeFlag [ 1 ] [refIdxL1] равен 1.

- В противном случае bdofFlag устанавливается равным FALSE.

[00174] Синтаксис и семантика набора параметров последовательности

seq_parameter_set_rbsp () { Дескриптор ... sps_bdof_enabled_flag u(1) ... }

[00175] sps_bdof_enabled_flag, равный 0, указывает, что межкадровое предсказание двунаправленного оптического потока отключено. sps_bdof_enabled_flag, равный 1, указывает, что межпредсказание двунаправленного оптического потока включено.

[00176] Синтаксис и семантика заголовка фрагмента

slice_header () { Дескриптор ... if (sps_bdof_enabled_flag) slice_bdof_enabled_flag u(1) ... }

[00177] slice_bdof_enabled_flag, равный 0, указывает, что внутреннее предсказание двунаправленного оптического потока отключено для текущего фрагмента. slice_bdof_enabled_flag, равный 1, указывает, что для текущего фрагмента включено внутреннее предсказание двунаправленного оптического потока. Если отсутствует, предполагается, что значение slice_bdof_enabled_flag равно sps_bdof_enabled_flag.

[00178] Вывод флага, определяющего, используется ли BIO.

[00179] Пусть predSamplesL0L, predSamplesL1L и predSamplesIntraL будут (cbWidth)x(cbHeight) arr массивами предсказанных значений выборки яркости и, predSamplesL0Cb, predSamplesL1Cb, predSamplesL0Cr и predSamplesL1Cr, predSamplesIntraCb, и predSamplesIntraCr будут (cbWidth / 2)x(cbHeight / 2) массивами предсказанных значений выборки цветности.

[00180] - Переменная currPic указывает текущее изображение, а переменная bdofFlag выводится следующим образом:

[00181] - Если все следующие условия верны, bdofFlag устанавливается равным TRUE.

[00182] - - sps_bdof_enabled_flag равен 1.

[00183] - - slice_bdof_enabled_flag равен 1.

[00184] - predFlagL0 [xSbIdx] [ySbIdx] и predFlagL1 [xSbIdx] [ySbIdx] оба равны 1.

[00185] - DiffPicOrderCnt (currPic, RefPicList [ 0 ] [refIdxL0]) * DiffPicOrderCnt (currPic, RefPicList [ 1 ] [refIdxL1]) меньше 0.

[00186] - MotionModelIdc [xCb] [yCb] равен 0.

[00187] - merge_subblock_flag [xCb] [yCb] равен 0.

[00188] - BcwIdx [xCb] [yCb] равен 0.

[00189] - luma_weight_l0_flag [refIdxL0] и luma_weight_l1_flag [refIdxL1] оба равны 0.

[00190] - cbHeight больше или равно 8

[00191] - cIdx равен 0.

[00192] - В противном случае bdofFlag устанавливается равным FALSE.

[00193] Синтаксис и семантика набора параметров последовательности

seq_parameter_set_rbsp () { Дескриптор ... sps_bdof_enabled_flag u(1) ... }

[00194] sps_bdof_enabled_flag, равный 0, указывает, что межкадровое предсказание двунаправленного оптического потока отключено. sps_bdof_enabled_flag, равный 1, указывает, что межпредсказание двунаправленного оптического потока включено.

[00195] Синтаксис и семантика набора параметров изображения

pic_parameter_set_rbsp () { Дескриптор ... pps_bdof_enabled_flag u(1) ... }

[00196] pps_bdof_enabled_flag, равное 0, указывает, что межкадровое предсказание двунаправленного оптического потока отключено для изображений, которые относятся к PPS. pps_bdof_enabled_flag, равное 1, указывает, что межкадровое предсказание двунаправленного оптического потока включено для изображений, которые относятся к PPS.

[00197] Для соответствия битового потока требуется, чтобы значение pps_bdof_enabled_flag было равно 0, когда значение sps_bdof_enabled_flag равно 0.

[00198] Вывод флага, определяющего, используется ли BIO или нет.

[00199] Пусть predSamplesL0L, predSamplesL1L и predSamplesIntraL будут (cbWidth)x(cbHeight) массивами предсказанных значений выборки яркости и, predSamplesL0Cb, predSamplesL1Cb, predSamplesL0Cr и predSamplesL1Cr, predSamplesIntraCb, и predSamplesIntraCr будут (cbWidth / 2)x(cbHeight / 2) массивами предсказанных значений выборки цветности.

[00200] - Переменная currPic определяет текущее изображение, а переменная bdofFlag выводится следующим образом:

[00201] - Если все следующие условия верны, bdofFlag устанавливается равным TRUE.

[00202] - - sps_bdof_enabled_flag равен 1.

[00203] - - pps_bdof_enabled_flag равен 1.

[00204] - predFlagL0 [xSbIdx] [ySbIdx] и predFlagL1 [xSbIdx] [ySbIdx] оба равны 1.

[00205] - DiffPicOrderCnt (currPic, RefPicList [ 0 ] [refIdxL0]) * DiffPicOrderCnt (currPic, RefPicList [ 1 ] [refIdxL1]) меньше 0.

[00206] - MotionModelIdc [xCb] [yCb] равен 0.

[00207] - merge_subblock_flag [xCb] [yCb] равен 0.

[00208] - BcwIdx [xCb] [yCb] равен 0.

[00209] - luma_weight_l0_flag [refIdxL0] и luma_weight_l1_flag [refIdxL1] оба равны 0.

[00210] - cbHeight больше или равно 8

[00211] - cIdx равен 0.

[00212] - В противном случае bdofFlag устанавливается равным FALSE.

[00213] Фиг. 12 является схематической диаграммой устройства 1200 видеокодирования (например, видеокодера 20 или видеодекодера 30) согласно варианту осуществления изобретения. Устройство 1200 видеокодирования подходит для реализации раскрытых вариантов осуществления, которые описаны в данном документе. Устройство 1200 видеокодирования содержит входные порты 1210 и приемные блоки (Rx) 1220 для приема данных; процессор, логический блок или центральный процессор (CPU) 1230 для обработки данных; передающие блоки (Tx) 1240 и выходные порты 1250 для передачи данных; и память 1260 для хранения данных. Устройство 1200 видеокодирования также может содержать компоненты преобразования оптических сигналов в электрические (OE, optical-to-electrical) и компоненты преобразования электрических сигналов в оптические (EO, electrical-to-optical), подключенные к входным портам 1210, блокам 1220 приемника, передающим блокам 1240 и выходным портам 1250 для обеспечения входа или выхода оптических или электрических сигналов.

[00214] Процессор 1230 реализуется аппаратным обеспечением и программным обеспечением. Процессор 1230 может быть реализован как одна или более микросхем CPU, ядер (например, как многоядерный процессор), программируемых вентильных матриц (FPGA), специализированных интегральных схем (ASIC) и процессоров цифровых сигналов (DSP). Процессор 1230 поддерживает связь с входными портами 1210, приемными блоками 1220, передающими блоками 1240, выходными портами 1250 и памятью 1260. Процессор 1230 содержит модуль 1270 кодирования. Модуль 1270 кодирования реализует раскрытые варианты осуществления, описанные выше. Например, модуль 1270 кодирования реализует, обрабатывает, подготавливает или обеспечивает различные функции кодека. Следовательно, включение модуля 1270 кодирования обеспечивает существенное улучшение функциональных возможностей устройства 1200 видеокодирования и обеспечивает трансформацию устройства 1200 видеокодирования в другое состояние. В качестве альтернативы модуль 1270 кодирования реализуется как инструкции, хранящиеся в памяти 1260 и исполняемые процессором 1230.

[00215] Устройство 1200 видеокодирования может также включать в себя устройства 1280 ввода и/или вывода (I/O) для передачи данных пользователю и от пользователя. Устройства 1280 ввода-вывода могут включать в себя устройства вывода, такие как дисплей для отображения видеоданных, динамики для вывода аудиоданных и т.д. Устройства 1280 ввода-вывода могут также включать в себя устройства ввода, такие как клавиатура, мышь, трекбол и т.д., и/или соответствующие интерфейсы для взаимодействия с такими устройствами вывода.

[00216] Память 1260 содержит один или более дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных с переполнением, для хранения программ, когда такие программы выбраны для выполнения, и для хранения инструкций и данных, которые считываются. во время выполнения программы. Память 1260 может быть энергозависимой и/или энергонезависимой и может представлять собой постоянную память (ROM), оперативную память (RAM), троичную память с адресацией по содержимому (TCAM) и/или статическую память с произвольным доступом (SRAM).

[00217] Фиг. 13 - схематическая диаграмма варианта осуществления средства 1300 кодирования. В варианте осуществления средство 1300 кодирования реализовано в устройстве 1302 видеокодирования (например, видеокодере 20 или видеодекодере 30). Устройство 1302 видеокодирования включает в себя средство 1301 приема. Средство 1301 приема выполнено с возможностью приема изображения для кодирования или приема битового потока для декодирования. Устройство 1302 видеокодирования включает в себя средство 1307 передачи, соединенное со средством 1301 приема. Средство 1307 передачи выполнено с возможностью передачи битового потока в декодер или передачи декодированного изображения на средство отображения (например, одно из устройств 1280 ввода/вывода).

[00218] Устройство 1302 видеокодирования включает в себя средство 1303 хранения. Средство 1303 хранения соединено по меньшей мере с одним из средств 1301 приема или средства 1307 передачи. Средство 1303 хранения выполнено с возможностью хранения инструкций. Устройство 1302 видеокодирования также включает в себя средство 1305 обработки. Средство 1305 обработки соединено со средством 1303 хранения. Средство 1305 обработки выполнено с возможностью выполнения инструкций, хранящихся в средстве 1303 хранения, для осуществления способов, раскрытых в данном документе.

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

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

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

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

название год авторы номер документа
ОБРАБОТКА МНОЖЕСТВА РАЗМЕРОВ ИЗОБРАЖЕНИЯ И ОКОН СООТВЕТСТВИЯ ДЛЯ ПЕРЕДИСКРЕТИЗАЦИИ ОПОРНОГО ИЗОБРАЖЕНИЯ ПРИ КОДИРОВАНИИ ВИДЕО 2020
  • Чен, Цзянле
  • Хендри, Фну
RU2817618C2
СИГНАЛИЗАЦИЯ ЗАГОЛОВКА ИЗОБРАЖЕНИЯ ПРИ КОДИРОВАНИИ ВИДЕО 2020
  • Хендри, Фну
  • Ван, Е-Куй
  • Чен, Цзянле
RU2819585C1
СИГНАЛИЗАЦИЯ ЗАГОЛОВКА ИЗОБРАЖЕНИЯ ПРИ КОДИРОВАНИИ ВИДЕО 2020
  • Хендри, Фну
  • Ван, Е-Куй
  • Чен, Цзянле
RU2822313C1
УЛУЧШЕННЫЙ ЛОГИЧЕСКИЙ ВЫВОД В ВИДЕОКОДИРОВАНИИ 2014
  • Ван Е-Куй
  • Чэнь Ин
RU2665891C2
УПРАВЛЕНИЕ ОПОРНЫМ ИЗОБРАЖЕНИЕМ ПРИ ВИДЕОКОДИРОВАНИИ 2019
  • Хендри, Фну
  • Ван, Е-Куй
RU2795700C2
ВИДЕОКОДЕР, ВИДЕОДЕКОДЕР И СООТВЕТСТВУЮЩИЙ СПОСОБ 2020
  • Чэнь, Сюй
  • Ян, Хайтао
  • Чжан, Лян
RU2819065C2
СПОСОБЫ И УСТРОЙСТВА ДЛЯ КОДИРОВАНИЯ ВИДЕО С ИСПОЛЬЗОВАНИЕМ ВЕКТОРА ДВИЖЕНИЯ ВРЕМЕННОГО ПРЕДСКАЗАНИЯ НА ОСНОВЕ СУББЛОКОВ 2019
  • Чэнь, И-Вэнь
  • Ван, Сянлинь
RU2757209C1
ОГРАНИЧЕНИЯ ИЗОБРАЖЕНИЙ СМЕШАННЫХ ЕДИНИЦ NAL ПРИ КОДИРОВАНИИ/ДЕКОДИРОВАНИИ ВИДЕО 2020
  • Ван, Е-Куй
  • Хендри, Фну
RU2822452C2
КОДИРОВАНИЕ НАБОРОВ ПАРАМЕТРОВ И ЗАГОЛОВКОВ ЕДИНИЦ NAL ДЛЯ КОДИРОВАНИЯ ВИДЕО 2013
  • Чэнь Ин
  • Ван Е-Куй
RU2633117C2
КОДЕР, ДЕКОДЕР И СООТВЕТСТВУЮЩИЕ СПОСОБЫ 2020
  • Сетураман, Срирам
  • Котеча, Сагар
  • А, Джива Радж
  • Эсенлик, Семих
RU2824186C2

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

Реферат патента 2024 года ОБРАБОТКА ИНСТРУМЕНТА КОДИРОВАНИЯ ДВУНАПРАВЛЕННОГО ОПТИЧЕСКОГО ПОТОКА (BIO) ДЛЯ ПЕРЕДИСКРЕТИЗАЦИИ ОПОРНОГО ИЗОБРАЖЕНИЯ ПРИ КОДИРОВАНИИ ВИДЕО

Изобретение относится к области кодирования видео. Технический результат заключается в улучшении степени сжатия видео с минимальными потерями в качестве изображения. Способ декодирования включает в себя определение посредством видеодекодера, совпадает ли разрешение декодируемого текущего изображения с разрешением опорных изображений, идентифицированных списком опорных изображений, ассоциированным с текущим изображением, включение посредством видеодекодера двунаправленного оптического потока (BDOF) для текущего блока текущего изображения, когда разрешение текущего изображения определено как совпадающее с разрешением каждого из опорных изображений, отключение посредством видеодекодера BDOF для текущего блока текущего изображения, когда разрешение текущего изображения определено как отличное от разрешения любого из опорных изображений и уточнение посредством видеодекодера векторов движения, соответствующих текущему блоку, с использованием BDOF, когда BDOF включен для текущего блока. 10 н. и 17 з.п. ф-лы, 13 ил.

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

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

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

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

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

декодирование посредством видеодекодера текущего блока.

2. Способ по п. 1, в котором включение BDOF содержит установку флага BDOF на первое значение, а отключение BDOF содержит установку флага BDOF на второе значение.

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

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

5. Способ по любому одному из пп. 1-4, дополнительно содержащий включение передискретизации опорного изображения (RPR) для всей кодированной видеопоследовательности (CVS), содержащей текущее изображение, когда BDOF отключен.

6. Способ по любому одному из пп. 1-5, в котором разрешение текущего изображения размещается в наборе параметров кодированного битового потока видео, и в котором текущий блок получают из фрагмента текущего изображения.

7. Способ по любому одному из пп. 1-6, дополнительно содержащий отображение на дисплее электронного устройства изображения, сформированного с использованием текущего блока.

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

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

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

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

кодирование посредством видеокодера текущего блока.

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

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

кодирование видеокодером текущего изображения на основе векторов движения.

10. Способ по любому одному из пп. 8, 9, в котором включение BDOF содержит установку флага BDOF на первое значение, а отключение BDOF содержит установку флага BDOF на второе значение.

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

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

13. Способ по любому одному из пп. 8-12, дополнительно содержащий включение передискретизации опорного изображения (RPR) для всей кодированной видеопоследовательности (CVS), содержащей текущее изображение, даже когда BDOF отключен.

14. Способ по любому одному из пп. 8-13, дополнительно содержащий передачу битового потока видео, содержащего текущий блок, в видеодекодер.

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

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

память, соединенную с приемником, при этом память хранит инструкции; и

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

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

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

отключения BDOF для текущего блока текущего изображения, когда разрешение текущего изображения определено как отличное от разрешения любого из опорных изображений; и

декодирования текущего блока.

16. Устройство декодирования по п. 15, в котором передискретизация опорного изображения (RPR) включена для всей кодированной видеопоследовательности (CVS), содержащей текущее изображение, когда BDOF отключен.

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

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

память, содержащую инструкции;

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

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

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

отключать BDOF для текущего блока текущего изображения, когда разрешение текущего изображения определено как отличное от разрешения любого из опорных изображений; и

кодировать текущий блок; и

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

19. Устройство кодирования по п. 18, в котором передискретизация опорного изображения (RPR) включена для всей кодированной видеопоследовательности (CVS), содержащей текущее изображение, даже когда BDOF отключен.

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

21. Оборудование кодирования, содержащее:

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

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

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

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

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

23. Система для выборочного отключения двунаправленного оптического потока (BDOF), содержащая:

кодер; и

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

24. Средство кодирования, содержащее:

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

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

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

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

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

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

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

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

US 20190132612 A1, 02.05.2019
US 20080247462 A1, 09.10.2008
US 20170324981 A1, 09.11.2017
US 20150382023 A1, 31.12.2015
ПЕРЕНОС ПОТОКОВ БИТОВ РАСШИРЕНИЯ СТАНДАРТА ВЫСОКОЭФФЕКТИВНОГО КОДИРОВАНИЯ ВИДЕО (HEVC) И БУФЕРНОЙ МОДЕЛИ С ПОМОЩЬЮ СИСТЕМ СТАНДАРТА ЭКСПЕРТНОЙ ГРУППЫ ПО ДВИЖУЩИМСЯ ИЗОБРАЖЕНИЯМ (MPEG)-2 2015
  • Чэнь Ин
  • Ван Е-Куй
RU2685233C2

RU 2 820 215 C2

Авторы

Чен, Цзянле

Хендри, Фну

Ван, Е-Куй

Даты

2024-05-30Публикация

2020-05-14Подача