ВИДЕОКОДИРОВАНИЕ ИНТРА-РЕЖИМА Российский патент 2016 года по МПК H04N19/11 

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

Эта заявка испрашивает приоритет предварительной заявки на патент США №61/556,029, поданной 4 ноября 2011 года, содержание которой включено в настоящий документ по ссылке во всей своей полноте.

ОБЛАСТЬ ТЕХНИКИ

Раскрытие имеет отношение к видеокодированию и, в частности, к способам и устройству для кодирования и декодирования видеоданных.

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

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

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

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

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

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

В одном примере раскрытие описывает способ кодирования видеоданных. Способ содержит этапы, на которых определяют интра-режим для предсказания текущего блока видеоданных, определяют наиболее вероятные режимы (MPM) для предсказания текущего блока видеоданных, определяют индекс для каждого из MPM на основе порядка, в котором интра-режим для предсказания текущего блока сравнивается с MPM, и, когда один из MPM для предсказания текущего блока совпадает с интра-режимом для предсказания текущего блока, сигнализируют индекс совпадающего MPM.

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

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

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

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

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

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

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

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

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

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

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

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

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

Фиг. 5 - концептуальная схема, иллюстрирующая предсказание интра-режима.

Фиг. 6 - другая концептуальная схема, иллюстрирующая предсказание интра-режима.

Фиг. 7 - блок-схема, иллюстрирующая кандидатов наиболее вероятных интра-режимов, в соответствии с аспектами этого раскрытия.

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

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

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

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

В примере аспекты этого раскрытия направлены на сортировку наиболее вероятных режимов (MPM) интра-предсказания. Например, в соответствии с некоторыми методиками видеокодирования, устройство видеокодирования (например, видеокодер или видеодекодер) может сортировать MPM перед определением и сигнализацией MPM для текущего кодируемого блока. Аспекты этого раскрытия имеют отношение к удалению такой сортировки, что может уменьшить сложность устройства видеокодирования.

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

В примере в целях иллюстрации устройство видеокодирования может сначала проверить, является ли интра-режим блока, расположенного слева от текущего кодируемого блока (упоминается здесь как "соседний блок слева"), таким же, как интра-режим текущего блока. Затем устройство видеокодирования может проверить, является ли интра-режим блока, расположенного сверху от текущего кодируемого блока (упоминается здесь как "соседний блок сверху"), таким же, как интра-режим текущего блока. В этом примере, в соответствии с аспектами этого раскрытия, интра-режим соседнего блока слева может иметь индекс 0 в списке MPM, поддерживаемых устройством видеокодирования, и интра-режим соседнего блока сверху может иметь индекс 1 в списке. В соответствии с этим видеокодер может сигнализировать индекс интра-режима соседнего блока слева как 0 и индекс соседнего блока сверху как 1, независимо от того, является ли фактический номер интра-режима (например, предопределенный номер режима, как назначено стандартом видеокодирования) соседнего блока слева больше, чем у соседнего блока сверху. В качестве альтернативы, если устройство видеокодирования проверяет интра-режим соседнего блока сверху перед соседним блоком слева, устройство видеокодирования может сигнализировать индекс соседнего блока сверху как 0 и индекс соседнего блока слева как 1. В любом случае, в соответствии с этими примерам и аспектами этого раскрытия, видеокодер может сигнализировать индекс для интра-режима без переупорядочивания или сортировки интра-режимов в списке. В некоторых примерах сортировка может быть применена для кодирования интра-режима, если интра-режим не является одним из MPM. Таким образом, видеокодер может отсортировать или иным образом изменить список интра-режимов при сигнализации интра-режима, который не является режимом MPM. В соответствии с аспектами этого раскрытия, порядок, в котором устройство видеокодирования проверяет интра-режим соседних блоков (упоминается здесь как "порядок проверки"), может являться неявно полученным из интра-режимов в соответствии с собранной статистикой интра-режимов ранее закодированных блоков. В других примерах устройство видеокодирования может получить порядок проверки на основе доступности соседних блоков. В других примерах видеокодер может сигнализировать (и видеодекодер может получить из закодированного битового потока) явное указание порядка проверки.

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

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

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

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

В примере на фиг. 1 устройство 12 источника включает в себя источник 18 видеоинформации, видеокодер 20 и выходной интерфейс 22. В некоторых случаях выходной интерфейс 22 может включать в себя модулятор/демодулятор (модем) и/или передатчик. В устройстве 12 источника источник 18 видеоинформации может включать в себя источник, такой как устройство видеосъемки, например, видеокамера, видеоархив, содержащий ранее отснятую видеоинформацию, интерфейс видеоканала для приема видеоинформации от провайдера видеоконтента и/или систему компьютерной графики для формирования данных компьютерной графики в качестве видеоинформации источника или комбинацию таких источников. В качестве одного примера, если источник 18 видеоинформации является видеокамерой, устройство 12 источника и устройство 14 адресата могут формировать так называемые телефоны с камерой или видеотелефоны. Однако методики, описанные в этом раскрытии, могут быть применимыми к видеокодированию вообще и могут быть применены к приложениям беспроводной и/или проводной связи.

Снимаемая, предварительно отснятая или сформированная с помощью компьютера видеоинформация может быть закодирована видеокодером 20. Закодированные видеоданные могут быть переданы непосредственно устройству 14 адресата через выходной интерфейс 22 устройства 12 источника. Закодированные видеоданные также (или в качестве альтернативы) могут быть сохранены на устройстве 24 хранения для более позднего доступа посредством устройства 14 адресата или других устройств для декодирования и/или воспроизведения.

Устройство 14 адресата включает в себя входной интерфейс 28, видеодекодер 30 и устройство 32 отображения. В некоторых случаях входной интерфейс 28 может включать в себя приемник и/или модем. Входной интерфейс 28 устройства 14 адресата принимает закодированные видеоданные по линии 16 связи. Закодированные видеоданные, переданные по линии 16 связи или обеспеченные на устройстве 24 хранения, могут включать ряд синтаксических элементов, сформированных видеокодером 20 для использования видеодекодером, таким как видеодекодер 30, при декодировании видеоданных. Такие синтаксические элементы могут быть включены вместе с закодированными видеоданными, передаваемыми по среде связи, сохраненными на носителе или сохраненными на файловом сервере.

Устройство 32 отображения может быть интегрированным с устройством 14 адресата или быть внешним по отношению к нему. В некоторых примерах устройство 14 адресата может включать в себя интегрированное устройство отображения и также может быть выполнено с возможностью взаимодействовать через интерфейс с внешним устройством отображения. В других примерах устройство 14 адресата может являться устройством отображения. В целом, устройство 32 отображения отображает декодированные видеоданные пользователю, и может содержать любое из ряда устройств отображения, таких как жидкокристаллический дисплей (LCD), плазменный дисплей, органический светодиодный (OLED) дисплей или устройство отображения другого типа.

Видеокодер 20 и видеодекодер 30 могут работать в соответствии со стандартом сжатия видео, таким как стандарт высокоэффективного видеокодирования (HEVC), разрабатываемый в настоящее время, и может соответствовать тестовой модели стандарта HEVC (HM). В качестве альтернативы видеокодер 20 и видеодекодер 30 могут работать в соответствии с другими частными или промышленными стандартами, такими как стандарт ITU-T H.264, по-другому называемый MPEG 4 часть 10, усовершенствованное видеокодирование (AVC) или расширения таких стандартов. Однако методики этого раскрытия не ограничены каким-либо конкретным стандартом кодирования. Другие примеры стандартов сжатия видео включают в себя MPEG 2 и ITU-T H.263.

Хотя это не показано на фиг. 1, в некоторых аспектах каждый из видеокодера 20 и видеодекодера 30 может быть интегрирован со аудиокодером и декодером и может включать в себя соответствующие модули мультиплексора-демультиплексора (MUX-DEMUX) или другое аппаратное и программное обеспечение для обработки кодирования как аудиоинформации, так и видеоинформации в общем потоке данных или отдельных потоках данных. В соответствующих случаях в некоторых примерах модули мультиплексора-демультиплексора могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских датаграмм (UDP).

Видеокодер 20 и видеодекодер 30 могут быть реализован как любая из ряда подходящих схем кодера, например, один или более микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FGPA), дискретных логических схем, программного обеспечения, аппаратных средств, программируемого оборудования или любой их комбинации. Когда методики реализованы частично в программном обеспечении, устройство может хранить инструкции для программного обеспечения в подходящем не временном считываемом компьютером носителе и исполнять инструкции в аппаратных средствах с использованием одного или более процессоров, чтобы выполнить методики этого раскрытия. Каждый из видеокодера 20 и видеодекодера 30 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть объединенного видеокодера/видеодекодера (кодека; CODEC) в соответствующем устройстве.

Это раскрытие может в целом ссылаться на то, что видеокодер 20 "сигнализирует" некоторую информацию другому устройству, такому как видеодекодер 30. Однако следует понимать, что видеокодер 20 может сигнализировать информацию посредством, привязки некоторых синтаксических элементов к различным закодированным слайсам видеоданных. Таким образом, видеокодер 20 может "сигнализировать" данные посредством сохранения некоторых синтаксических элементов в заголовках различных закодированных слайсов видеоданных. В некоторых случаях такие синтаксические элементы могут быть закодированы и сохранены (например, сохранены на носителе 34 или файловом сервере 36) перед тем, как они будут приняты и декодированы видеодекодером 30. Таким образом, термин "сигнализация" может в целом относиться к передаче синтаксиса или других данных для декодирования сжатых видеоданных, происходит ли такая передача в (почти) реальном времени, или через промежуток времени, как может произойти, когда синтаксические элементы сохраняются на носителе во время кодирования, и затем они могут быть извлечены устройством декодирования в любое время после сохранения на носителе.

Совместная группа по видеокодированию (JCT-VC) работает над разработкой стандарта HEVC. Работы по стандартизации HEVC основаны на развивающейся модели устройства видеокодирования, называемой тестовой моделью HEVC (HM). Последний рабочий проект (WD) стандарта HEVC, называемый в дальнейшем HEVC WD7, доступен по адресу http://phenix.int-evry.fr/jct/doc_end_user/documents/9_Geneva/wgll/JCTVC-I1003-v5.zip, более свежая версия доступна по адресу http://phenix.int-evry.fr/jct/doc_end_user/documents/9_Geneva/wgll/JCTVC-I1003-v6.zip, оба документа тем самым включены по ссылке в настоящий документ во всей своей полноте. Модель HM предполагает несколько дополнительных возможностей устройств видеокодирования относительно существующих устройств в соответствии, например, со стандартом ITU-T H.264/AVC. Например, тогда как стандарт H.264 обеспечивает девять режимов кодирования с интра-предсказанием, модель HM может обеспечить целых тридцать три режима кодирования с интра-предсказанием.

В целом рабочая модель HM описывает, что видеокадр или изображение могут быть разделены на последовательность иерархических блоков или наибольших элементов кодирования (элементов LCU), которые включают в себя и элементы дискретизации яркости, и элементы дискретизации цветности. Иерархический блок имеет цель, аналогичную макроблоку стандарта H.264. Слайс включает в себя несколько последовательных иерархических блоков в порядке кодирования. Видеокадр или изображение могут быть разделены на один или более слайсов. Каждый иерархический блок может быть разбит на элементы кодирования (CU) в соответствии с деревом квадрантов. Например, иерархический блок как корневой узел дерева квадрантов может быть разбит на четыре дочерних узла, и каждый дочерний узел в свою очередь может являться родительским узлом и быть разбит еще на четыре дочерних узла. Заключительный, неразбитый дочерний узел как листовой узел дерева квадрантов содержит узел кодирования, например, закодированный видеоблок. Данные синтаксиса, связанные с закодированным битовым потоком, могут определять максимальное количество разбиений иерархического блока, а также может определять минимальный размер узлов кодирования.

Элемент кодирования (CU) включает в себя узел кодирования и элементы предсказания (PU) и элементы преобразования (TU), связанные с узлом кодирования. Размер CU соответствует размеру узла кодирования и должен быть квадратным по форме. Размер CU может находиться в диапазоне от 8×8 пикселей до размера иерархического блока с максимальным размером 64×64 пикселей или больше. Каждый CU может содержать один или более PU и один или более TU. Данные синтаксиса, связанные с CU, могут описывать, например, разделение CU на один или более PU. Режимы разделения может отличаться в том, является ли CU закодированным в режиме пропуска или в прямом режиме, закодированным в режиме интра-предсказания, или закодированным в режиме интер-предсказания. При разделении PU могут являться не квадратными по форме. Данные синтаксиса, связанные с CU, также могут описывать, например, разделение CU на один или более TU в соответствии с деревом квадрантов. TU может являться квадратным или не квадратным по форме.

Стандарт HEVC учитывает преобразования в соответствии с TU, которые могут отличаться для разных элементов CU. TU обычно измеряются на основе размера PU в пределах данного CU, заданного для разделенного LCU, хотя это не всегда может иметь место. TU обычно имеют такой же или меньший размер, как PU. В некоторых примерах остаточные элементы дискретизации, соответствующие CU, могут быть подразделены на меньшие элементы с использованием структуры дерева квадрантов, известной как "остаточное дерево квадрантов" (RQT). Листовые узлы дерева RQT могут называться элементами преобразования (TU). Значения разности пикселей, связанные с TU, могут быть преобразованы для получения коэффициентов преобразования, которые могут быть квантованы.

В целом PU включает в себя данные, относящиеся к процессу предсказания. Например, когда PU является закодированным в интра-режиме, PU может включать в себя данные, описывающие режим интра-предсказания для PU. В качестве другого примера, когда PU является закодированным в интер-режим, PU может включать в себя данные, определяющие вектор движения для PU. Данные, определяющие вектор движения для PU, могут описывать, например, горизонтальную компоненту вектора движения, вертикальную компоненту вектора движения, разрешения для вектора движения (например, с точностью до четверти пикселя или до одной восьмой пикселя), опорное изображение, на которое указывает вектор движения, и/или список опорных изображений (например, список 0, список 1 или список C) для вектора движения.

В целом TU используется для процессов преобразования и квантования. Заданный CU, имеющий один или более PU, также может включать в себя один или более элементов преобразования (TU). Следуя предсказанию, видеокодер 20 может вычислять остаточные значения, соответствующие элементу PU. Остаточные значения содержат значения разности пикселей, которые могут быть преобразованы в коэффициенты преобразования, квантованы и просканированы с использованием TU, чтобы произвести сериализированные коэффициенты преобразования для энтропийного кодирования. Это раскрытие обычно использует термин "видеоблок", чтобы называть узел кодирования CU. В некоторых конкретных случаях это раскрытие также может использовать термин "видеоблок", чтобы называть иерархический блок, например, LCU или CU, который включает в себя узел кодирования и PU и TU.

Последовательность видеокадров обычно включает в себя последовательность видеокадров или изображений. Группа изображений (GOP) обычно содержит последовательность из одного или более видеоизображений. Группа GOP может включать в себя данные синтаксиса в заголовок группы GOP, заголовок одного или более изображений или иное описание некоторого числа изображений, включенных в группу GOP. Каждый слайс изображения может включать в себя данные синтаксиса слайса, которые описывают режим кодирования для соответствующего слайса. Видеокодер 20 обычно работает над видеоблоками в пределах отдельного видеослайса, чтобы закодировать видеоданные. Видеоблок может соответствовать узлу кодирования в пределах CU. Видеоблоки могут иметь фиксированные или переменные размеры и могут отличаться по размеру в соответствии с указанным стандартом кодирования.

В качестве примера, модель НМ поддерживает предсказание с различными размерами PU. Предполагая, что размер конкретного CU составляет 2N×2N, модель НМ поддерживает интра-предсказание с размерами PU, составляющими 2N×2N или N×N, и интер-предсказание с симметричными размерами PU, составляющими 2N×2N, 2N×N, N×2N или N×N. Модель HM также поддерживает асимметричное разделение для интер-предсказания с размерами PU, составляющими 2N×nU, 2N×nD, nL×2N и nR×2N. При асимметричном разделении одно направление CU не разделяется, в то время как другое направление разделено в пропорции 25% и 75%. Часть CU, соответствующая разделу с размером 25%, обозначена буквой "n", за которой следует показатель Up (вверх), Down (вниз), Left (налево) или Right (направо). Таким образом, например, "2N×nU" указывает на CU с размером 2N×2N, который разделен горизонтально с PU с размером 2N×0.5N сверху и PU с размером 2N×1.5N снизу.

В этом раскрытии "N×N" и "N на N" могут использоваться взаимозаменяемо для обозначения размерностей пикселей видеоблока с точки зрения вертикальной и горизонтальной размерностей, например, 16×16 пикселей или 16 на 16 пикселей. В общем случае блок с размером 16×16 будет иметь 16 пикселей в вертикальном направлении (y=16) и 16 пикселей в горизонтальном направлении (x=16). Аналогичным образом блок с размером N×N обычно имеет N пикселей в вертикальном направлении и N пикселей в горизонтальном направлении, где N представляет неотрицательное целочисленное значение. Пиксели в блоке могут быть скомпонованы в строках и столбцах. Кроме того, блоки не обязательно должны иметь одинаковое количество пикселей в горизонтальном направлении и в вертикальном направлении. Например, блоки могут содержать N×M пикселей, где М не обязательно равно N.

После кодирования с интра-предсказанием или интер-предсказанием с использованием PU из CU, видеокодер 20 может вычислить остаточные данные для TU из CU. PU могут содержать пиксельные данные в пространственной области (также называемой пиксельной областью), и TU могут содержать коэффициенты в области преобразования после применения преобразования, например, дискретного косинусного преобразования (DCT), целочисленного преобразования, вейвлетного преобразования или концептуально подобного преобразования к остаточным видеоданным. Остаточные данные могут соответствовать разностям между пикселями незакодированного изображения и значениями предсказания, соответствующими PU. Видеокодер 20 может сформировать TU, включающие в себя остаточные данные для CU, и затем преобразовать TU для получения коэффициентов преобразования для CU.

После какого-либо преобразования для получения коэффициентов преобразования видеокодер 20 может выполнить квантование коэффициентов преобразования. Квантованием обычно называется процесс, в котором коэффициенты преобразования квантуются для возможного уменьшения объема данных, используемых для представления коэффициентов, обеспечивая дополнительное сжатие. Процесс квантования может уменьшить битовую глубину, связанную с некоторыми или всеми коэффициентами. Например, во время квантования n-битовое значение может быть округлено в меньшую сторону до m-битового значения, где n больше m.

В некоторых примерах видеокодер 20 может использовать предопределенный порядок сканирования для сканирования квантованных коэффициентов преобразования для получения сериализованного вектора, который может быть энтропийно закодирован. В других примерах видеокодер 20 может выполнить адаптивное сканирование. После сканирования квантованных коэффициентов преобразования для формирования одномерного вектора видеокодер 20, может энтропийно закодировать одномерный вектор, например, в соответствии с контекстно-адаптивным кодированием с переменной длиной слова (CAVLC), контекстно-адаптивным двоичным арифметическим кодированием (CABAC), основанным на синтаксисе контекстно-адаптивным двоичным арифметическим кодированием (SBAC), энтропийным кодированием с разделением на интервалы вероятности (PIPE) или другой методологией энтропийного кодирования. Видеокодер 20 также может выполнять энтропийное кодирование синтаксических элементов, связанных с закодированными видеоданными, для использования видеодекодером 30 при декодировании видеоданных.

Для выполнения CABAC видеокодер 20 может присвоить контекст в пределах контекстной модели символу, который должен быть передан. Контекст может относится, например, к тому, являются ли соседние значения символа ненулевыми. Для выполнения CAVLC видеокодер 20 может выбрать неравномерный код для символа, который должен быть передан. Кодовые слова при кодировании с переменной длиной слова (VLC) могут быть созданы так что относительно более короткие коды соответствуют более вероятным символам, в то время как более длинные коды соответствуют менее вероятным символам. Таким образом, использование кодирования VLC может достигнуть экономии битов, например, с использованием кодовых слов равной длины для каждого символа, который должен быть передан. Определение вероятности может быть основано на контексте, присвоенном символу.

В некоторых примерах видеокодер 20 и/или видеодекодер 30 могут идентифицировать так называемый "наиболее вероятный" режим интра-предсказания во время кодирования с интра-предсказанием. Таким образом, например, видеокодер 20 и/или видеодекодер 30 могут идентифицировать режим интра-предсказания ранее закодированных блоков, которые граничат с текущим кодируемым блоком (называемых "опорными блоками"), и сравнивает такие режимы интра-предсказания с режимом интра-предсказания для текущего кодируемого блока (называемого "текущим блоком"). Интра-режимы таких опорных блоков могут иметь относительно высокую вероятность того, чтобы они являются такими же или аналогичными для текущего блока вследствие пространственной близости соседних блоков к текущему блоку. Как описано более подробно ниже, режим интра-предсказания нескольких опорных блоков может быть рассмотрен при идентификации MPM.

Кроме того, в соответствии с некоторыми примерами видеокодер 20 и/или видеодекодер 30 могут сигнализировать индекс, который идентифицирует MPM. Таким образом, каждый интра-режим может иметь связанный (исходный) индекс интра-режима, который идентифицирует интра-режим как один из множества возможных интра-режимов, как определено в соответствии со стандартом кодирования. Например, предложенный стандарт HEVC может поддерживать до 35 интра-режимов, и каждому интра-режиму присвоено значение индекса (например, значение индекса в поисковой таблице), которое может использоваться для идентификации интра-режимов.

В соответствии с некоторыми стандартами видеокодирования видеокодер 20 и/или видеодекодер 30 могут сортировать MPM в соответствии со значениями исходных индексов интра-режимов. Тогда видеокодер 20 и/или видеодекодер 30 могут присвоить новое значение индекса "0" интра-режиму, имеющему меньший исходный индекс интра-режима (например, более низкое значение исходного индекса), значение индекса "1" интра-режиму, имеющему следующее большее значение исходного индекса интра-режима (например, более высокое значение исходного индекса интра-режима), и так далее. Таким образом, видеокодер 20 может сигнализировать (и видеодекодер 30 может получить из закодированного битового потока) MPM с использованием меньшего количества битов, чем при отправке фактического индекса интра-режима. Однако, несмотря на улучшения, достигаемые посредством указания интра-режима с использованием MPM, сортировка интра-режимов может добавить вычислительную сложность к процессу кодирования.

В соответствии с аспектами этого раскрытия, вместо того, чтобы сортировать MPM на основе значений индексов MPM, видеокодер 20 и/или видеодекодер 30 могут сформировать список MPM, который не требует сортировки. Таким образом, например, видеокодер 20 и/или видеодекодер 30 могут присвоить значения индексов режимам MPM в порядке, в котором MPM сравниваются с интра-режимом текущего блока. В других примерах видеокодер 20 и/или видеодекодер 30 могут присвоить значения индексов в соответствии с порядком, в котором закодированы MPM. Таким образом, если закодированный интра-режим равен одному из MPM, MPM не должны сортироваться в соответствии с их значением исходного индекса интра-режима, и сложность устройства видеокодирования может быть уменьшена. В некоторых примерах сортировка интра-режима может быть применена для кодирования интра-режима, если интра-режим не равен одному из MPM.

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

Дополнительно в примере видеокодер 20 может сигнализировать сформированный список MPM в порядке сравнения. Видеокодер 20 также может определить индекс для каждого из MPM, присваивая значения индексов каждому из MPM в списке в порядке возрастания. В другом примере видеокодер 20 может сигнализировать флаг MPM перед индексом MPM, чтобы указать, что был просигнализирован индекс MPM.

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

В другом примере видеодекодер 30 может формировать список MPM для текущего блока видеоданных. Тогда список MPM может быть скомпонован в порядке сравнения. Этот порядок сравнения может указывать порядок, в котором интра-режим для текущего блока видеоданных сравнивается с одним или более интра-режимами, связанными с одним или более опорными блоками видеоданных во время кодирования текущего блока видеоданных. Видеодекодер 30 может определить индекс MPM, который идентифицирует интра-режим для текущего блока в списке MPM. Затем видеодекодер 30 может идентифицировать интра-режим для текущего блока с использованием индекса MPM и декодировать текущий блок с помощью идентифицированного интра-режима для текущего блока.

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

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

Некоторые аспекты этого раскрытия имеют отношение к присвоению режима по умолчанию в случаях, в которых либо блок A, либо блок B не доступен для кодирования в интра-режиме. Например, устройство видеокодирования, такое как видеокодер 20 или видеодекодер 30, может идентифицировать текущий блок видеоданных. Устройство кодирования может сделать определение относительно того, является ли блок недоступным для использоваться в качестве опорных блоков для определения MPM для текущего блока видеоданных. Устройство видеокодирования может присвоить интра-режим по умолчанию любому блоку, который не доступен для использования в качестве опорного блока. В некоторых примерах интра-режим по умолчанию может являться планарным режимом, режимом DC и т.д. Устройство кодирования может определить интра-режим для текущего блока видеоданных на основе интра-режимов одного или более блоков видеоданных. Дополнительно устройство кодирования может закодировать текущий блок с использованием определенного интра-режима.

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

В примере на фиг. 2 видеокодер 20 включает в себя модуль 35 разделения, модуль 41 предсказания, память 64 опорных изображений, сумматор 50, модуль 52 обработки преобразования, модуль 54 квантования и модуль 56 энтропийного кодирования. Модуль 41 предсказания включает в себя модуль 42 оценки движения, модуль 44 компенсации движения и модуль 46 интра-предсказания. Для воссоздания видеоблока видеокодер 20 также включает в себя модуль 58 обратного квантования, модуль 60 обратного преобразования и сумматор 62. Фильтр удаления блочности (не показан на фиг. 2) также может быть включен в состав для фильтрации границ блока, чтобы удалять артефакты блочности из воссозданной видеоинформации. Фильтр удаления блочности обычно фильтрует вывод сумматора 62. Дополнительные контурные фильтры (в цикле или после цикла) также могут использоваться в дополнение к фильтру удаления блочности.

Как показано на фиг. 2, видеокодер 20 принимает видеоданные, и модуль 35 разделения разделяет данные на видеоблоки. Это разделение также может включать в себя разделение на слайсы, элементы мозаичного изображения или другие большие блоки, а также разделение видеоблоков, например, согласно структуре дерева квадрантов LCU и CU. Видеокодер 20 обычно иллюстрирует компоненты, которые кодируют видеоблоки в пределах видео слайса, который должен быть закодирован. В целом, слайс может быть разделен на несколько видеоблоков (и, возможно, на наборы видеоблоков, называемые элементами мозаичного изображения).

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

Модуль 42 оценки движения и модуль 44 компенсации движения в модуле 41 предсказания выполняют кодирование с интер-предсказанием текущего видеоблока относительно одного или более блоков предсказания в одном или более опорных изображениях для обеспечения временного сжатия. Модуль 42 оценки движения может быть выполнен с возможностью определять режим интер-предсказания для видеослайса согласно предопределенному шаблону для последовательности видеокадров. Предопределенный шаблон может назначить видеослайс в последовательности как P-слайс, B-слайс или GPB-слайс. Модуль 42 оценки движения и модуль 44 компенсации движения могут быть в значительной степени интегрированы, но проиллюстрированы отдельно в концептуальных целях. Оценка движения, выполняемая модулем 42 оценки движения, является процессом формирования векторов движения, которые оценивают движение для видеоблоков. Вектор движения, например, может указывать смещение PU видеоблока в пределах текущего видеокадра или изображения относительно блока предсказания в пределах опорного изображения.

Блок предсказания представляет собой блок, который оказывается близко сопоставимым с PU видеоблока, который должен быть закодирован, с точки зрения различия пикселей, что может быть определено посредством суммы абсолютных разностей (SAD), суммы разностей квадратов (SSD) или других метрик различия. В некоторых примерах видеокодер 20 может вычислить значения для дробных позиций пикселя опорных изображений, сохраненных в памяти 64 опорных изображений. Например, видеокодер 20 может интерполировать значения позиций одной четверти пикселя, позиций одной восьмой пикселя или других дробных позиций пикселя опорного изображения. Таким образом, модуль 42 оценки движения может выполнить поиск движения относительно позиций целых пикселей и позиций дробных пикселей и выдать вектор движения с точностью до дробного пикселя.

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

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

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

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

Аспекты этого раскрытия в целом имеют отношение к интра-кодированию. Также некоторые методики этого раскрытия могут быть выполнены посредством модуля 46 интра-предсказания. Таким образом, например, модуль 46 интра-предсказания может выполнить методики этого раскрытия, описанные со ссылкой на фиг. 4-10. В других примерах один или более других блоков видеокодера 20 дополнительно или в качестве альтернативы могут быть ответственными за выполнение методик этого раскрытия.

Например, модуль 46 интра-предсказания может определить интра-режим для текущего кодируемого блока (например, в соответствии с анализом зависимости искажений от скорости передачи, как описано выше). Модуль 46 интра-предсказания также может определить режим интра-предсказания одного или более ранее закодированных блоков (называемые MPM), которые граничат с блоком, текущего интра-кодируемого блока. Модуль 46 интра-предсказания может указать определенный интра-режим для текущего блока на основе определенных интра-режимов соседних блоков, например, посредством сравнения MPM с интра-режимом для текущего блока, как описано более подробно ниже.

В соответствии с аспектами этого раскрытия модуль 46 интра-предсказания может формировать список MPM в порядке, в котором MPM сравниваются с интра-режимом текущего блока. Затем модуль 46 интра-предсказания может присвоить значения индексов режимам MPM в порядке, в котором MPM сравниваются с интра-режимом текущего блока. Таким образом, модуль 46 интра-предсказания может указать конкретный MPM без сортировки MPM в соответствии с их значением исходного индекса интра-режима (например, в соответствии со стандартом видеокодирования).

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

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

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

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

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

Фиг. 3 является блок-схемой, показывающей иллюстративный видеодекодер 30, который может реализовать методики, описанные в этом раскрытии. В примере на фиг. 3 видеодекодер 30 включает в себя модуль 80 энтропийного декодирования, модуль 81 предсказания, модуль 86 обратного квантования, модуль 88 обратного преобразования, сумматор 90 и память 92 опорных изображений. Модуль 81 предсказания включает в себя модуль 82 компенсации движения и модуль 84 интра-предсказания. Видеодекодер 30 в некоторых примерах может выполнять проход декодирования в целом как обратный по отношению к проходу кодирования, описанному относительно видеокодера 20 на фиг. 2.

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

Когда видеослайс закодирован как интра-кодированный (I) слайс, модуль 84 интра-предсказания модуля 81 предсказания может сформировать данные предсказания для видеоблока текущего видеослайса на основе просигнализированного режима интра-предсказания и данных из ранее декодированных блоков текущего кадра или изображения.

Как отмечено выше, аспекты этого раскрытия в целом имеют отношение к интра-кодированию. Таким образом, некоторые методики этого раскрытия могут быть выполнены модулем 84 интра-предсказания. Таким образом, например, модуль 84 интра-предсказания может выполнить методики этого раскрытия, описанные со ссылкой на фиг. 4-7 ниже. В других примерах один или более других блоков видеодекодера 30 дополнительно или в качестве альтернативы могут быть ответственными за выполнение методик этого раскрытия.

Например, модуль 84 интра-предсказания может получить индекс в списке MPM для декодирования текущего блока видеоданных из модуля 80 энтропийного декодирования. Модуль 84 интра-предсказания может сформировать список, которому принадлежит индекс, посредством включения MPM в список таким же образом, как видеокодер 20, в порядке, в котором MPM сравниваются с интра-режимом текущего блока. Затем модуль 84 интра-предсказания может определить подходящий интра-режим для декодирования текущего блока видеоданных на основе полученного индекса. Таким образом, модуль 84 интра-предсказания может определить подходящий MPM для декодирования текущего блока без сортировки MPM в соответствии с их значением исходного индекса интра-режима (например, в соответствии со стандартом видеокодирования).

Когда видеоизображение закодировано как интер-кодированный (например. B, P или GPB) слайс, модуль 82 компенсации движения модуля 81 предсказания производит блоки предсказания для видеоблока текущего видеослайса на основе векторов движения и других синтаксических элементов, принятых от модуля 80 энтропийного декодирования. Блоки предсказания могут быть произведены из одного из опорных изображений в пределах одного из списков опорных изображений. Видеодекодер 30 может создать списки опорных изображений, список 0 и список 1, с использованием методики построения по умолчанию на основе опорных изображений, сохраненных в памяти 92 опорных изображений.

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

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

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

После того, как модуль 82 компенсации движения формирует блок предсказания для текущего видеоблока на основе векторов движения и других синтаксических элементов, видеодекодер 30 формирует декодированный видеоблок посредством суммирования остаточных блоков от модуля 88 обработки обратного преобразования с соответствующими блоками предсказания, сформированными модулем 82 компенсации движения. Сумматор 90 представляет компонент или компоненты, которые выполняют эту операцию суммирования. При желании также может быть применен фильтр удаления блочности для фильтрации декодированных блоков, чтобы удалить артефакты блочности изображения. Другие контурные фильтры (либо в цикле кодирования, либо после цикла кодирования) также могут использоваться, чтобы сгладить переходы пикселей или иным образом улучшить качество видеоизображения. Декодированные видеоблоки в данном кадре или изображении затем сохраняются в памяти 92 опорных изображений, которая хранит опорные изображения, используемые для последующей компенсации движения. Память 92 опорных изображений также хранит декодированную видеоинформацию для более позднего представления на устройстве отображения, таком как устройство 32 отображения на фиг. 1.

Как отмечено выше, методики этого раскрытия в целом имеют отношение к интра-кодированию. Следует понимать, что методики этого раскрытия могут быть выполнены любым из устройств видеокодирования, описанных в этом раскрытии, в том числе, например, видеокодером 20 и видеодекодером 30, показанными и описанными со ссылкой на фиг. 1-3. Таким образом, в примере модуль 46 интра-предсказания, описанный со ссылкой на фиг. 2, может выполнить некоторые описанные ниже методики, выполняя интра-предсказание во время кодирования блока видеоданных. В другом примере модуль 84 интра-предсказания, описанный со ссылкой на фиг. 3, может выполнить некоторые описанные ниже методики, выполняя интра-предсказание во время декодирования блока видеоданных. В соответствии с этим ссылки на универсальное "устройство видеокодирования" могут включать в себя видеокодер 20, видеодекодер 30 или другой модуль кодирования или декодирования видеоинформации.

В некоторых примерах устройство видеокодирования может идентифицировать так называемый "наиболее вероятный" режим интра-предсказания во время кодирования с интра-предсказанием. Таким образом, например, видеокодер (например, такой как видеокодер 20) может идентифицировать режим интра-предсказания ранее закодированных блоков (например, опорных блоков) и сравнить такие режимы интра-предсказания с режимом интра-предсказания для текущего блока. Интра-режимы таких опорных блоков могут иметь относительно высокую вероятность того, что они являются такими же или аналогичными текущему блоку вследствие пространственной близости блоков к текущему блоку. Как описано более подробно ниже, режим интра-предсказания нескольких опорных блоков может быть рассмотрен при идентификации MPM.

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

Фиг. 4 показывает пример текущего блока, например, элемента кодирования ("текущего CU") и двух опорных блоков (например, "A" и "B"), которые могут быть рассмотрены во время интра-кодирования. Например, видеокодер (например, такой как видеокодер 20) может рассмотреть интра-режимы, соответствующие опорному блоку A (расположенному слева от текущего блока), и опорному блоку B (расположенному сверху от текущего блока), в качестве MPM текущего блока. В некоторых примерах, если любой из кандидатов на MPM (например, блок A или блок B) не использует интра-режим или иным образом недоступен (например, блок еще не был закодирован), видеокодер 20 может присвоить интра-режим по умолчанию блоку, например, режим DC. Кроме того, в некоторых примерах количество MPM может быть больше двух. Например, видеокодер 20 может сформировать дополнительные MPM на основе интра-режимов более чем двух опорных блоков.

Если фактический интра-режим для текущего блока (например, вычисленный модулем 46 интра-предсказания) является таким же, как либо у опорного блока A, либо у опорного блока B, видеокодер 20 может сигнализировать однобитовый флаг, указывающий, что MPM используется для кодирования текущего блока (например, флаг MPM установлен равный 1).

Кроме того, в соответствии с некоторыми примерами видеокодер 20 может сигнализировать индекс, который идентифицирует MPM. Таким образом, каждый интра-режим может иметь связанный (исходный) индекс интра-режима, который идентифицирует интра-режим как один из множества возможных интра-режимов, как определено в соответствии со стандартом кодирования. Например, предложенный стандарт HEVC может поддерживать до 35 интра-режимов, и каждому интра-режиму присвоено стандартное точно определенное значение исходного индекса, как показано в таблице 1 ниже:

Таблица 1 РЕЖИМЫ ИНТРА-ПРЕДСКАЗАНИЯ И ИНДЕКСЫ Режим интра-предсказания Соответствующее название 0 Intra_Planar 1 Intra_DC (2-34) Intra_Anguar

В примере таблицы 1 планарный интра-режим имеет значение исходного индекса 0, интра-режим DC имеет значение исходного индекса 1, и различные угловые интра-режимы имеют значения исходных индексов между 2 и 34.

Традиционно при интра-кодировании текущего блока на основе MPM видеокодер 20 сортирует MPM в соответствии со значениями исходных индексов интра-режимов. В примере с двумя MPM видеокодер 20 может затем присвоить новое значение индекса "0" интра-режиму, имеющему меньший исходный индекс интра-режима (например, более низкое значение исходного индекса). Кроме того, видеокодер 20 присваивает новое значение индекса "1" интра-режиму, имеющему большее значение исходного индекса интра-режима (например, более высокое значение исходного индекса интра-режима). Таким образом, видеокодер 20 может сигнализировать MPM с использованием меньшего количества битов, чем при отправке фактического индекса интра-режима. В некоторых примерах, если интра-режим опорного блока A является таким же, как интра-режим опорного блока B, видеокодер 20 не отправляет дополнительное значение индекса. В некоторых примерах, если количество MPM больше двух, могут быть сделаны аналогичные присвоения индексов.

Если интра-режим текущего блока не равен MPM, видеокодер 20 может интра-кодировать текущий блок, например, с использованием таблицы кодирования с фиксированной длиной слова или другим способом.

Видеодекодер, такой как видеодекодер 30, может принять флаг MPM и индекс MPM. Затем видеодекодер 30 может выполнить процесс, аналогичный описанному относительно видеокодера 20, чтобы определить, к какому интра-режиму относится индекс MPM. Таким образом, видеодекодер 30 может отсортировать интра-режимы в порядке возрастания первоначальных индексов. Видеодекодер 30 может присвоить значение индекса "0" меньшему первоначальному индексу интра-режима и значение индекса "1" большему первоначальному индексу интра-режима. Затем видеодекодер 30 может использовать просигнализированный индекс MPM, чтобы выбрать один из отсортированных интра-режимов. Затем видеодекодер 30 может декодировать интра-кодированный блок видеоданных.

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

Кроме того, некоторые аспекты этого раскрытия также имеют отношение к присвоению режима по умолчанию в случаях, в которых либо блок A, либо блок B не доступен для кодирования в интра-режиме. Например, видеокодер 20 может присвоить предварительно выбранный режим, такой как планарный режим или режим DC, в качестве режима по умолчанию.

Фиг. 5 является концептуальной схемой кодирования в интра-режиме, как описано выше со ссылкой на фиг. 4. Например, как показано в примере на фиг. 5, если интра-режим текущего блока совпадает с одним из MPM (например, ветвь "да"), видеокодер 20 может установить флаг MPM равным "1". Кроме того, видеокодер 20 может отсортировать MPM в соответствии с их значением исходного индекса ("Сортировать MPM"). Таким образом, видеокодер 20 присваивает MPM, имеющему меньший исходный индекс интра-режима, значение 0 ("Меньший MPM") и присваивает MPM, имеющему больший первоначальный индекс интра-режима, значение 1 ("Другой MPM"). Затем видеокодер 20 может сигнализировать интра-режим для текущего блока на основе MPM. Таким образом, видеокодер 20 может отправить флаг "1", чтобы указать, что используется MPM, и либо флаг "0", либо флаг "1", чтобы идентифицировать подходящий MPM.

Если интра-режим текущего блока не совпадает с одним из MPM (например, ветвь "нет"), видеокодер 20 может установить флаг MPM равным "0". Кроме того, видеокодер 20 может закодировать интра-режим, например, с использованием таблицы фиксированной длины или другого способа ("Остальное кодирование в интра-режиме").

Фиг.6 является концептуальной схемой кодирования в интра-режиме в соответствии с аспектами этого раскрытия. Например, как показано в примере на фиг. 6, если интра-режим текущего блока совпадает с одним из MPM (например, ветвь "да"), видеокодер 20 может установить флаг MPM равным "1". В соответствии с аспектами этого раскрытия, вместо того, чтобы сортировать MPM на основе значений индексов MPM, видеокодер 20 может сформировать список MPM, который не требует сортировки ("Сформировать список MPM"). Таким образом, например, некоторые методики этого раскрытия имеют отношение присваиванию значений индексов режимам MPM в порядке, в котором MPM сравниваются с интра-режимом текущего блока. Таким образом, MPM не должны сортироваться в соответствии с их значением исходного индекса интра-режима. Если интра-режим текущего блока не является одним из MPM, видеокодер 20 может установить флаг MPM равным "0", и дополнительная сортировка MPM может быть применена перед выполнением остальной части кодирования в интра-режиме. Таким образом, например, видеокодер 20 может отсортировать список оставшихся интра-режимов (который не включает в себя MPM) перед идентификацией интра-режимов в списке для текущего блока.

В примере в целях объяснения видеокодер 20 может сравнить интра-режим, связанный с текущим блоком видеоданных, с интра-режимами, связанными с одним или более опорными блоками, таким как интра-режимы одного или более соседних блоков (например, блоков, которые пространственно граничат с текущим блоком), чтобы определить один из MPM, который совпадает с фактическим интра-режимом для текущего блока. Как отмечено выше относительно фиг. 4 и 5, видеокодер 20 может сравнить интра-режим текущего блока с двумя соседними блокам, хотя можно рассмотреть интра-режимы большего или меньшего количества опорных блоков (например, одного, трех, пяти и т.п.), дополнительно MPM могут быть сформированы на основе соседних интра-режимов.

В соответствии с аспектами этого раскрытия видеокодер 20 может присвоить значение индекса режимам MPM в порядке, в котором MPM сравниваются с текущим интра-режимом. В примере с двумя MPM видеокодер 20 может сначала сравнить интра-режим текущего блока с интра-режимом соседнего блока слева и затем сравнить интра-режим текущего блока с интра-режимом соседнего блока сверху (см., например, схему расположения, показанную на фиг. 4). В соответствии с этим видеокодер 20 может присвоить значение индекса 0 интра-режиму соседнего блока слева ("Первое сравнение") и значение индекса 1 интра-режиму соседнего блока сверху ("Второе сравнение"). Хотя пример, показанный на фиг. 6, включает в себя только два MPM, дополнительные значения индексов могут быть присвоены другим режимам MPM, если такие MPM рассматриваются.

Если интра-режим текущего блока не соответствует одному из MPM (например, ветвь "нет"), видеокодер 20 может установить флаг MPM равным "0". Кроме того, видеокодер 20 может закодировать интра-режим, например, с использованием таблицы фиксированной длины или другим способом ("Остальное кодирование в интра-режиме"). Дополнительно в некоторых примерах и как отмечено выше видеокодер 20 может отсортировать оставшиеся интра-режимы в соответствии с процессом сортировки MPM.

В целях объяснения предположим, что 35 интра-режимов доступны для интра-кодирования блока видеоданных. Предположим далее, что эти 35 интра-режимов могут быть идентифицированы с помощью номера режима, который может быть включен в таблицу, идентифицирующую доступные интра-режимы. В примере, в котором текущий режим не является режимом MPM, когда MPM, например, являются режимы 15, 2 и 31, и текущий режим является режимом 16, устройство видеокодирования (например, видеодекодер 30 или видеокодер 20) может первоначально отсортировать MPM в порядке по возрастанию. В соответствии с этим список MPM 15, 2 и 31 становится списком 2, 15 и 31 после сортировки. Затем устройство видеокодирования может устранить MPM из оставшихся интра-режимов, поскольку известно, что текущий режим не является режимом MPM. Оставшиеся 32 режима тогда могут быть повторно отображены на 32 пятибитовых кодовых слова. Некоторые примеры могут использовать таблицу из оставшихся 32 режимов, устраняя режимы 2, 15, 31. Однако другие примеры не используют таблицу.

Что касается отображения, например, поскольку текущий режим (например, режим 16) больше чем или равен первому из отсортированных MPM (режим 2), устройство видеокодирования может вычесть 1 из текущего режима (16-1=15). Значение после первого вычитания (15) также больше чем или равно второму из сортированных MPM (15), таким образом, устройство видеокодирования снова вычитает 1 (15-1=14). Значение после второго вычитания (14) является меньше 31, таким образом устройство видеокодирования не выполняет другое вычитание. В соответствии с этим, текущий режим отображается на четырнадцатый элемент в новой таблице, как вычислено посредством выполнения двух вычитаний для текущего режима 16 (16-2=14). В других примерах режимы могут быть отображены другими способами.

В другом примере, в котором текущий режим не является режимом MPM, когда, например, MPM являются режимы 5, 4 и 6, и текущий режим является режимом 15, устройство видеокодирования может отсортировать MPM в порядке по возрастанию. В соответствии с этим список 5, 4, 6 становится списком 4, 5, 6. Тогда устройство видеокодирования может создать список или таблицу оставшихся 32 режимов, устраняя режимы 4, 5 и 6. Как обсуждено выше, следует понимать, что не все примеры используют таблицу.

В приведенных выше примерах предполагается, что текущий режим не является режимом MPM. Напротив, для случая, когда текущий режим является режимом MPM, например, когда MPM являются 5, 4, и 6, и текущий режим является режимом 4, устройство видеокодирования может установить флаг MPM равным "1". Кроме того, устройство видеокодирования может установить индекс для MPM равным "1". Например, индекс может отображать MPM на основе порядка в списке. Таким образом, в примере выше устройство видеокодирования может отобразить 5 на индекс 0, 4 на индекс 1, 6 на индекс 2.

В некоторых примерах, как отмечено выше, видеокодер 20 может формировать список MPM в порядке, в котором MPM сравниваются с интра-режимом текущего блока. Таким образом, индекс может идентифицировать соответствующий MPM на основе порядка сравнения. Тогда видеокодер 20 может присвоить значения индексов каждому из MPM в списке. Например, видеокодер 20 может присвоить значения индексов каждому из MPM в списке в порядке возрастания так что первый MPM, который сравнивается с текущим интра-режимом, имеет самое низкое относительное значение индекса, и последний MPM, который сравнивается с текущим интра-режимом, имеет самое высокое относительное значение индекса. Напротив, каждый интра-режим может иметь исходный связанный индекс интра-режима, который идентифицирует интра-режим как один из множества возможных интра-режимов (таких, как один из 35 интра-режимов), как определено в соответствии со стандартом кодирования. Этот исходный индекс может отличаться от индекса, просигнализированного в битовом потоке, в соответствии с аспектами этого раскрытия.

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

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

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

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

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

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

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

Методики этого раскрытия также имеют отношение к рассмотрению более двух MPM. Например, как показано в примере на фиг. 7, устройство видеокодирования может рассмотреть интра-режимы, связанные с множеством соседних блоков, в качестве MPM. Таким образом, устройство видеокодирования может рассмотреть интра-режим, связанный с любым опорным блоком, который граничит с текущим кодируемым блоком, как MPM для текущего блока. Устройство видеокодирования может сформировать список MPM и присвоить значения индексов каждому MPM в списке. Затем устройство видеокодирования может интра-кодировать текущий блок на основе MPM, как описано выше.

В примере, показанном на фиг. 7, устройство видеокодирования рассматривает интра-режимы, связанные с каждым блоком, который граничит с текущим блоком, в том числе соседний блок "сверху слева" (AL), а также соседний блок "первый сверху" (A1), соседний блок "второй сверху" A2 (не показан), соседний блок "N-й сверху" AN и т.д. до соседнего блока "сверху справа" (AR) при определении MPM. Кроме того, в примере, показанном на фиг. 7, устройство видеокодирования может рассмотреть интра-режимы, связанные с соседним блоком "первым слева" (L1), соседним блоком "вторым слева" L2 (не показан), соседним блоком "N-м слева" LN и т.д. до соседнего блока "снизу слева" (BL).

В соответствии с некоторыми аспектами этого раскрытия, устройство видеокодирования может рассмотреть только опорные блоки, которые являются интра-кодированными, при определении MPM. В другом примере устройство видеокодирования может рассмотреть все блоки (например, в том числе интер-кодированные блоки и/или иным образом недоступные блоки). В таком примере устройство видеокодирования может присвоить интра-режим по умолчанию (например, планарный режим или режим DC) недоступным блокам перед определением MPM, как описано выше.

В некоторых примерах порядок сравнения (например, порядок, в котором текущий интра-режим сравнивается с интра-режимом опорных блоков) кодером или декодером может быть слева направо и затем сверху вниз. Например, как проиллюстрировано на фиг. 7, порядок сравнения может следовать слева направо в направлении от AL до AR и затем сверху вниз в направлении от AL до BL. В другом примере порядок сравнения может быть справа налево и затем снизу вверх. Например, как проиллюстрировано на фиг. 7, порядок сравнения может следовать справа налево в направлении от AR до AL и затем снизу вверх в направлении от BL до AL. В других примерах может использоваться любая другая комбинация порядков сравнения (например, снизу вверх и затем слева направо, справа налево и затем сверху вниз и т.п.).

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

Опорные блоки, которые рассматриваются при определении MPM, могут быть фиксированными или сигнализироваться. Таким образом, например, видеокодер 20 и видеодекодер 30 могут оба быть выполнены с возможностью определять MPM, сравнивая интра-режимы одних и тех же соседних опорных блоков. Кроме того, видеокодер 20 и видеодекодер 30 могут оба быть выполнены с возможностью определять один и тот же порядок сравнения (например, порядок, в котором текущий интра-режим сравнивается с интра-режимами опорных блоков).

В качестве альтернативы, видеокодер 20 может сигнализировать, какие опорные блоки следует рассматривать во время интра-кодирования в режиме MPM, и/или порядок сравнения. В этом примере видеодекодер 30 может выполнить кодирование в режиме MPM на основе принятой сигнализации, обеспеченной видеокодером 20.

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

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

Фиг. 8 является блок-схемой последовательности операций, показывающей иллюстративный способ кодирования видеоданных в соответствии с одним или более примерами, описанными в этом раскрытии. В иллюстративном способе кодирования видеоданных на фиг. 8 видеокодер 20 определяет интра-режим для предсказания текущего блока видеоданных (этап 800). Например, видеокодер 20 может выполнить интра-кодирование видеоблоков в пределах видеослайса. Интра-кодирование может полагаться на пространственное предсказание, чтобы уменьшить или удалить пространственную избыточность в видеоинформации в пределах данного видеокадра или изображения, Интра-режимом может называться любой из нескольких режимов сжатия на основе пространственной избыточности.

Видеокодер 20 определяет потенциальные MPM для предсказания текущего блока видеоданных (этап 802). Таким образом, например, видеокодер 20 может идентифицировать режим интра-предсказания ранее закодированных блоков (например, опорных блоков) и сравнить такие режимы интра-предсказания с режимом интра-предсказания для текущего блока (например, фактическим интра-режимом для кодирования текущего блока, выбранным, например, с использованием анализа зависимости искажений от скорости передачи, описанного выше со ссылкой на фиг. 2). Интра-режимы таких опорных блоков могут иметь относительно высокую вероятность, что они являются такими же или аналогичны текущему блоку вследствие пространственной близости блоков к текущему блоку. Может быть рассмотрен режим интра-предсказания нескольких опорных блоков при идентификации MPM.

В некоторых примерах видеокодер 20 сравнивает интра-режим с каждым из MPM в порядке сравнения. Как обсуждено выше, порядок сравнения - это порядок, в котором текущий интра-режим сравнивается с интра-режимом опорных блоков видеокодером 20. Порядок сравнения может быть слева направо и затем сверху вниз. В другом примере порядок сравнения может быть справа налево и затем снизу вверх. В других примерах может использоваться любая другая комбинация порядков сравнения (например, снизу вверх и затем слева направо, справа налево и затем сверху вниз и т.п.).

Как обсуждено выше, в других примерах порядок сравнения может быть определен некоторым правилом, и правило может быть просигнализировано (например, просигнализировано видеокодером 20 для использования видеодекодером 30). В других примерах в соответствии с аспектами этого раскрытия видеокодер 20 может рассмотреть поднабор соседних блоков, например, через один блок, каждый третий блок или другой поднабор блоков, сравнивая текущий интра-режим с интра-режимами соседних блоков.

Видеокодер 20 определяет индекс для каждого из MPM на основе порядка сравнения (этап 804). Например, как обсуждено выше со ссылкой на фиг. 6, видеокодер 20 может присвоить значение индекса 0 интра-режиму соседнего блока слева ("Первое сравнение") и значение индекса 1 интра-режиму соседнего блока сверху ("Второе сравнение"). Хотя пример, показанный на фиг. 6, включает в себя только два MPM, дополнительные значения индексов могут быть присвоены другим режимам MPM, если такие MPM рассматриваются.

Видеокодер 20 сигнализирует индекс MPM, который совпадает с интра-режимом для предсказания текущего блока данных, в битовом потоке (этап 806). Например, как отмечено выше, индекс может идентифицировать соответствующий MPM на основе порядка сравнения. Напротив, каждый интра-режим может иметь исходный связанный индекс интра-режима, который идентифицирует интра-режим как один из множества возможных интра-режимов (например, один из 35 интра-режимов), как определено в соответствии со стандартом кодирования. Этот исходный индекс может отличаться от индекса, просигнализированного в битовом потоке, в соответствии с аспектами этого раскрытия. Например, как отмечено выше, видеокодер 20 может присвоить значения индексов MPM на основе порядка сравнения в порядке возрастания, такой MPM, сравниваемый с текущим интра-режимом относительно раньше в процессе сравнения, может иметь более низкое значение индекса, чем MPM, сравниваемый с текущим интра-режимом относительно позже в процессе сравнения. В соответствии с этим, ранее сравниваемый MPM может иметь более низкое значение индекса, чем позже сравниваемый MPM, независимо от исходного индекса интра-режима раньше сравниваемого MPM. Таким образом, в некоторых примерах, ранее сравниваемый MPM может иметь более высокое значение исходного индекса, чем позже сравниваемый MPM.

Фиг. 9 является блок-схемой последовательности операций, показывающей иллюстративный способ декодирования видеоданных в соответствии с одним или более примерами, описанными в этом раскрытии. В иллюстративном способе декодирования видеоданных на фиг. 9 видеодекодер 30 формирует список MPM для текущего блока видеоданных (этап 900). Например, видеодекодер 30 может сформировать список MPM и присвоить значения индексов каждому MPM в списке. Список MPM может быть скомпонован в порядке сравнения, который указывает порядок, в котором интра-режим для текущего блока видеоданных сравнивался с одним или более интра-режимами, связанными с одним или более опорными блоками видеоданных, во время кодирования текущего блока видеоданных.

Видеодекодер 30 определяет индекс MPM, который идентифицирует интра-режим для текущего блока в списке MPM (этап 902). Видеодекодер 30 может определить индекс MPM, который идентифицирует интра-режим для текущего блока в списке MPM. Затем видеодекодер 30 может идентифицировать интра-режим для текущего блока с использованием индекса MPM и декодировать текущий блок с помощью идентифицированного интра-режима для текущего блока. В одном примере видеодекодер 30 может определить индекс MPM на основе сигнализации, включенной в закодированный битовый поток. Видеокодер 20 может сигнализировать режим интра-предсказания с использованием однобитового флага MPM. Таким образом, видеокодер 20 может сигнализировать, что режим интра-предсказания для текущего блока такой же, как MPM, не имея необходимости явно идентифицировать режим интра-предсказания для текущего блока. Затем видеодекодер может принять флаг, указывающий, что интра-режим для текущего блока такой же, как MPM.

Видеодекодер 30 идентифицирует интра-режим для текущего блока с использованием индекса MPM (этап 904). Например, видеодекодер 30 может идентифицировать MPM с использованием тех же блоков, рассмотренных видеокодером 20 во время кодирования. Тогда видеодекодер 30 может использовать просигнализированный индекс MPM, чтобы выбрать один из отсортированных интра-режимов. Видеодекодер 30 декодирует текущий блок с помощью идентифицированного интра-режима для текущего блока (этап 906).

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

Фиг. 10 является блок-схемой последовательности операций, показывающей иллюстративный способ кодирования видеоданных в соответствии с одним или более примерами, описанными в этом раскрытии. В иллюстративном способе кодирования видеоданных на фиг. 10 устройство видеокодирования, такое как видеокодер 20 или видеодекодер 30, может идентифицировать один или более блоков видеоданных для определения MPM для текущего блока видеоданных (этап 1000). Устройство видеокодирования может определить, является ли какой-либо один или более блоков недоступным для использования для опоры блоков для определения MPM для текущего блока видеоданных (этап 1002). Например, опорный блок можно считать "недоступным", если опорный блок еще не был закодирован (и, таким образом, его режим предсказания неизвестен), если опорный блок закодирован с использованием интер-предсказания (описано выше), или если опорный блок не существует (блок расположен в левом верхнем углу изображения, или слайс может не иметь соседних блоков слева и/или сверху).

Устройство видеокодирования присваивает интра-режим по умолчанию любому одному или более блокам, которые не доступны для использования для опоры блоков. В одном примере интра-режим по умолчанию может являться планарным режимом (этап 1004). Пленарный интра-режим (также называемый плоским интра-режимом) может включать в себя линейную плоскую функцию, которая подходит блоку в целях предсказания и может обеспечить точное предсказание в областях с плавно изменяющейся яркостью. В других примерах интра-режимом по умолчанию может являться режим DC или другой интра-режим.

Устройство видеокодирования определяет интра-режим для текущего блока видеоданных на основе интра-режимов одного или более блоков (этап 1006). Например, что касается видеокодера 20, как описано относительно примера на фиг. 4 выше, если фактический интра-режим для текущего блока (например, вычисленный модулем 46 интра-предсказания) является таким же, как для опорного блока A или опорного блока B, видеокодер 20 может сигнализировать однобитный флаг, указывающий, что MPM используется для кодирования текущего блока (например, флаг MPM установлен равным 1). В качестве альтернативы, что касается видеодекодера 30, как описано выше, видеодекодер 30 может получить флаг MPM из закодированного битового потока и использовать флаг MPM, чтобы определить интра-режим для декодирования текущего блока.

Устройство видеокодирования кодирует текущий блок с использованием определенного интра-режима (этап 1008). Например, видеокодер 20 кодирует текущий блок посредством предсказания текущего блока с использованием определенного интра-режима, чтобы сформировать опорный видеоблок. Видеокодер 20 также может определить остаточный блок, включающий в себя разность между опорным блоком и текущим блоком, и включить остаточный блок в битовый поток. В качестве альтернативы, видеодекодер 30 декодирует текущий блок с идентифицированным режимом MPM для текущего блока. Например, видеодекодер 30 может получить из закодированного битового потока остаточный видеоблок, связанный с текущим блоком. Видеодекодер 30 может сформировать опорный блок посредством предсказания текущего блока с использованием идентифицированного интра-режима для текущего блока. Дополнительно, видеодекодер 30 может определить значения для текущего блока из комбинации опорного блока и принятого остаточного видеоблока.

Хотя некоторые аспекты этого раскрытия были описаны относительно видеокодера 20 и видеодекодера 30, следует понимать, что методики этого раскрытия могут быть применены посредством многих других модулей кодирования и/или декодирования видеоинформации, процессорами, блоками обработки, основанные на аппаратных средствах блоками кодирования, такими как кодеры/декодеры (CODEC), и т.п. Кроме того, следует понимать что этапы, показанные и описанные со ссылкой на фиг. 8-10, обеспечены лишь как примеры. Таким образом, этапы, показанные в примерах на фиг. 8-10 не обязательно должны выполняться в порядке, показанном на фиг. 8-10, может быть выполнено меньше этапов, и могут быть выполнены дополнительные или альтернативные этапы.

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

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

Таким образом, считываемые компьютером носители обычно могут соответствовать (1) материальным считываемым компьютером запоминающим носителям, которые являются не временными, или (2) среде связи, такой как сигнал или несущая. Запоминающие носители данных могут быть любыми доступными носителями, к которым могут получить доступ один или более компьютеров или один или более процессоров для извлечения инструкций, кода и/или структур данных для реализации методик, описанных в этом раскрытии. Компьютерный программный продукт может включать в себя считываемый компьютером носитель.

В качестве примера, но без ограничения, такие считываемые компьютером носители могут содержать оперативное запоминающее устройство (ОЗУ; RAM), постоянное запоминающее устройство (ПЗУ; ROM), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ; EEPROM), компакт-диск (CD-ROM) или другую память на оптическом диске, память на магнитном диске или другие магнитные устройства хранения, флэш-память или любой другой носитель, который может использоваться для хранения желаемого программного кода в виде инструкций или структур данных, и к которому может получить доступ компьютер. Кроме того, любое соединение правильно называть считываемым компьютером носителем. Например, если инструкции переданы с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, волоконно-оптического кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводной технологии, такой как инфракрасное, радиочастотное и микроволновое излучение, то коаксиальный кабель, волоконно-оптический кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасное, радиочастотное и микроволновое излучение включены в определение носителя.

Однако следует понимать, что считываемые компьютером запоминающие носители данных не включают в себя соединения, несущие, сигналы или другие переходные носители, но вместо этого направлены на не временные, материальные носители. Используемый здесь термин "диск" включает в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), гибкий диск и диск Blu-ray, причем диски обычно воспроизводят данные магнитным способом или оптическим способом с помощью лазера. Комбинации упомянутого выше также должны быть включены в контекст машиночитаемых носителей.

Инструкции могут быть исполнены одним или более процессорами, такими как один или более процессоров цифровых сигналов (DSP), микропроцессоров общего назначения, специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA) или других эквивалентных интегрированных или дискретных логических схем. В соответствии с этим используемый здесь термин "процессор" может относиться к любой упомянутой структуре или любой другой структуре, подходящей для реализации описанных здесь методик. Кроме того, в некоторых аспектах описанная здесь функциональность может быть обеспечена в пределах специализированных аппаратных средств и/или программных модулей, сконфигурированных для кодирования и декодирования или встроенных в объединенный кодек. Кроме того, методики могут быть полностью реализованы в одной или более схемах или логических элементах.

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

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

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

название год авторы номер документа
КОДЕР, ДЕКОДЕР И СООТВЕТСТВУЮЩИЕ СПОСОБЫ ДЛЯ ИНТРА-ПРЕДСКАЗАНИЯ 2020
  • Ван, Бяо
  • Эсенлик, Семих
  • Котра, Ананд Меер
  • Гао, Хань
  • Чен, Цзянле
RU2821012C2
Упрощенный способ сигнализации для режима аффинного линейного взвешенного внутреннего предсказания 2020
  • Чжао Лян
  • Чжао Синь
  • Ли Сян
  • Лю Шань
RU2780794C1
ФИЛЬТР АДАПТИВНОГО СМЕЩЕНИЯ ЦЕНТРАЛЬНОЙ ПОЛОСЫ ДЛЯ ВИДЕОКОДИРОВАНИЯ 2012
  • Чонг Ин Сук
  • Кумар Санджив
  • Карчевич Марта
RU2575418C2
СИГНАЛИЗАЦИЯ ВНУТРЕННЕГО РЕЖИМА ЯРКОСТИ 2019
  • Котра, Ананд Меер
  • Чен, Цзянле
  • Эсенлик, Семих
  • Чжао, Чжицзе
  • Гао, Хань
  • Ван, Бяо
  • Краснов, Иван
RU2787010C2
МНОГОРАКУРСНОЕ ВИДЕОКОДИРОВАНИЕ 2012
  • Чэнь Ин
  • Карчевич Марта
RU2589347C2
ОГРАНИЧЕНИЕ ОДНОНАПРАВЛЕННЫМ ИНТЕР-ПРЕДСКАЗАНИЕМ ДЛЯ БЛОКОВ ПРЕДСКАЗАНИЯ В В-СЛАЙСАХ 2013
  • Ван Сянлинь
  • Серегин Вадим
  • Карчевич Марта
RU2620723C2
ЭФФЕКТИВНОЕ ПО ПАМЯТИ МОДЕЛИРОВАНИЕ КОНТЕКСТА 2012
  • Чиэнь Вэй-Цзюн
  • Карчевич Марта
  • Ван Сянлинь
RU2580066C2
ПОЛУЧЕНИЕ КОНТЕКСТА ДЛЯ КОДИРОВАНИЯ ПОСЛЕДНЕЙ ПОЗИЦИИ ПРИ ВЫПОЛНЕНИИ ВИДЕОКОДИРОВАНИЯ 2013
  • Го Ливэй
  • Карчевич Марта
  • Чиэнь Вэй-Цзюн
RU2629437C2
КОДЕР, ДЕКОДЕР И СООТВЕТСТВУЮЩИЕ СПОСОБЫ ИНТРА-ПРЕДСКАЗАНИЯ 2020
  • Ван, Бяо
  • Эсенлик, Семих
  • Котра, Ананд Меер
  • Гао, Хань
  • Чен, Цзянле
RU2822448C2
ВЫВЕДЕНИЕ ВЕКТОРА ДВИЖЕНИЯ ПРИ ВИДЕОКОДИРОВАНИИ 2016
  • Ли, Сян
  • Чэнь, Ин
  • Чжан, Ли
  • Лю, Хонгбинь
  • Чэнь, Цзяньлэ
  • Карчевич, Марта
RU2742298C2

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

Реферат патента 2016 года ВИДЕОКОДИРОВАНИЕ ИНТРА-РЕЖИМА

Изобретение относится к вычислительной технике. Технический результат заключается в увеличении вычислительной эффективности устройства видеокодирования за счет уменьшения сложности процесса кодирования. Способ кодирования видеоданных, в котором определяют интра-режим для предсказания текущего блока видеоданных; определяют наиболее вероятные режимы (МРМ) для предсказания текущего блока видеоданных, при этом МРМ являются интра-режимами, связанными с соответствующими соседними блоками видеоданных, кодируемыми перед текущим блоком; генерируют список МРМ на основе позиции соответствующих соседних блоков видеоданных, связанных с МРМ; назначают индекс каждому из МРМ в списке без пересортировки МРМ в списке на основе индекса режима МРМ; и кодируют данные интра-режима текущего блока, в том числе, когда один из МРМ согласуется с интра-режимом для предсказания текущего блока, кодируют данные, которые представляют индекс согласующегося МРМ в списке, в кодируемом битовом потоке. 8 н. и 53 з.п. ф-лы, 10 ил., 1 табл.

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

1. Способ кодирования видеоданных, способ содержит этапы, на которых:
определяют интра-режим для предсказания текущего блока видеоданных;
определяют наиболее вероятные режимы (МРМ) для предсказания текущего блока видеоданных, при этом МРМ являются интра-режимами, связанными с соответствующими соседними блоками видеоданных, кодируемыми перед текущим блоком;
генерируют список МРМ на основе позиции соответствующих соседних блоков видеоданных, связанных с МРМ;
назначают индекс каждому из МРМ в списке без пересортировки МРМ в списке на основе индекса режима МРМ; и
кодируют данные интра-режима текущего блока, в том числе кодируют, когда один из МРМ согласуется с интра-режимом для предсказания текущего блока, данные, которые представляют индекс согласующегося МРМ в списке, в кодируемом битовом потоке.

2. Способ по п. 1, в котором кодирование данных интра-режима текущего блока содержит этапы, на которых, когда один из МРМ не согласуется с интра-режимом для предсказания текущего блока:
кодируют флаг МРМ, который указывает, что интра-режим для предсказания текущего блока не является МРМ;
генерируют модифицированный список интра-режимов; и
кодируют данные, которые представляют индекс интра-режима текущего блока в модифицированном списке.

3. Способ по п. 2, в котором генерирование модифицированного списка содержит удаление МРМ из модифицированного списка интра-режимов.

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

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

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

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

8. Способ по п. 1, в котором назначение индекса каждому из МРМ содержит назначение индексов интра-режимам соседних блоков текущего блока на основе порядка, в котором кодируются соседние блоки.

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

10. Способ по п. 1, дополнительно содержащий кодирование данных, которые представляют порядок, в котором индексы назначаются МРМ.

11. Способ по п. 1, в котором МРМ содержат более двух МРМ, связанных с более чем двумя опорными блоками.

12. Способ по п. 1, в котором определение МРМ для предсказания текущего блока видеоданных дополнительно содержит этапы, на которых:
идентифицируют один или более блоков, которые не могут быть использованы для ссылки во время интра-кодирования; и
назначают упомянутому одному или более блокам интра-режим по умолчанию.

13. Способ по п. 12, в котором режимом по умолчанию является планарный интра-режим.

14. Способ по п. 12, в котором режимом по умолчанию является интра-режим DC.

15. Устройство для кодирования видеоданных, устройство содержит:
память, выполненную с возможностью хранения текущего блока видеоданных; и
один или более процессоров, выполненных с возможностью:
определения интра-режима для предсказания текущего блока видеоданных;
определения наиболее вероятных режимов (МРМ) для предсказания текущего блока видеоданных, при этом МРМ являются интра-режимами, связанными с соответствующими соседними блоками видеоданных, кодируемыми перед текущим блоком;
генерирования списка МРМ на основе позиции соответствующих соседних блоков видеоданных, связанных с МРМ;
назначения индекса каждому из МРМ в списке без пересортировки МРМ в списке на основе индекса режима МРМ; и
кодирования данных интра-режима текущего блока, в том числе кодирования, когда один из МРМ согласуется с интра-режимом для предсказания текущего блока, данных, которые представляют индекс согласующегося МРМ в списке, в кодируемом битовом потоке.

16. Устройство по п. 15, в котором для кодирования данных интра-режима текущего блока, когда один из МРМ не согласуется с интра-режимом для предсказания текущего блока, упомянутый один или более процессоров дополнительно выполнены с возможностью:
кодирования флага МРМ, который указывает, что интра-режим для предсказания текущего блока не является МРМ;
генерирования модифицированного списка интра-режимов; и
кодирования данных, которые представляют индекс интра-режима текущего блока в модифицированном списке.

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

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

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

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

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

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

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

24. Устройство по п. 15, в котором упомянутый один или более процессоров дополнительно выполнены с возможностью кодирования данных, которые представляют порядок, в котором индексы назначаются МРМ.

25. Устройство по п. 15, в котором МРМ содержат более двух МРМ, связанных с более чем двумя опорными блоками.

26. Устройство по п. 15, в котором для определения МРМ для предсказания текущего блока видеоданных, упомянутый один или более процессоров выполнены с возможностью:
идентификации одного или более блоков, которые не могут быть использованы для ссылки во время интра-кодирования; и
назначения упомянутому одному или более блокам интра-режима по умолчанию.

27. Устройство по п. 26, в котором режимом по умолчанию является планарный интра-режим.

28. Устройство по п. 26, в котором режимом по умолчанию является интра-режим DC.

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

30. Считываемый компьютером носитель данных, хранящий инструкции, которые при их исполнении заставляют один или более процессоров:
определять интра-режим для предсказания текущего блока видеоданных;
определять наиболее вероятные режимы (МРМ) для предсказания текущего блока видеоданных, при этом МРМ являются интра-режимами, связанными с соответствующими соседними блоками видеоданных, кодируемыми перед текущим блоком;
генерировать список МРМ на основе позиции соответствующих соседних блоков видеоданных, связанных с МРМ;
назначать индекс каждому из МРМ в списке без пересортировки МРМ в списке на основе индекса режима МРМ; и
кодировать данные интра-режима текущего блока, в том числе кодировать, когда один из МРМ согласуется с интра-режимом для предсказания текущего блока, данные, которые представляют индекс согласующегося МРМ в списке, в кодируемом битовом потоке.

31. Считываемый компьютером носитель данных по п. 30, в котором для кодирования данных интра-режима текущего блока, когда один из МРМ не согласуется с интра-режимом для предсказания текущего блока, инструкции заставляют упомянутый один или более процессоров:
кодировать флаг МРМ, который указывает, что интра-режим для предсказания текущего блока не является МРМ;
генерировать модифицированный список интра-режимов; и
кодировать данные, которые представляют индекс интра-режима текущего блока в модифицированном списке.

32. Считываемый компьютером носитель данных по п. 31, в котором для генерирования модифицированного списка, инструкции заставляют упомянутый один или более процессоров удалять МРМ из модифицированного списка интра-режимов.

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

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

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

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

37. Устройство для кодирования видеоданных, содержащее:
средство для определения интра-режима для предсказания текущего блока видеоданных;
средство для определения наиболее вероятных режимов (МРМ) для предсказания текущего блока видеоданных, при этом МРМ являются интра-режимами, связанными с соответствующими соседними блоками видеоданных, кодируемыми перед текущим блоком;
средство для генерирования списка МРМ на основе позиции соответствующих соседних блоков видеоданных, связанных с МРМ;
средство для назначения индекса каждому из МРМ в списке без пересортировки МРМ в списке на основе индекса режима МРМ; и
средство для кодирования, когда один из МРМ согласуется с интра-режимом для предсказания текущего блока, данных, которые представляют индекс согласующегося МРМ в списке, в кодируемом битовом потоке.

38. Способ декодирования видеоданных, способ содержит этапы, на которых:
определяют наиболее вероятные режимы (МРМ) для предсказания текущего блока видеоданных, при этом МРМ являются интра-режимами, связанными с соответствующими соседними блоками видеоданных, декодируемыми перед текущим блоком;
генерируют список определенных МРМ для предсказания текущего блока видеоданных на основе позиции соответствующих соседних блоков видеоданных, связанных с МРМ;
назначают индекс каждому из МРМ в списке без пересортировки МРМ в списке на основе индекса режима МРМ; и
декодируют данные интра-режима текущего блока, в том числе декодируют, когда один из МРМ согласуется с интра-режимом для текущего блока, данные, которые представляют индекс согласующегося МРМ в списке, из закодированного битового потока;
идентифицируют интра-режим для предсказания текущего блока с использованием упомянутого индекса; и
декодируют текущий блок с идентифицированным интра-режимом для текущего блока.

39. Способ по п. 38, в котором декодирование данных интра-режима текущего блока содержит этапы, на которых, когда один из МРМ не согласуется с интра-режимом для предсказания текущего блока:
декодируют флаг МРМ, который указывает, что интра-режим для предсказания текущего блока не является МРМ;
генерируют модифицированный список интра-режимов; и
декодируют данные, которые представляют индекс интра-режима текущего блока в модифицированном списке.

40. Способ по п. 39, в котором генерирование модифицированного списка содержит удаление МРМ из модифицированного списка интра-режимов.

41. Способ по п. 39, в котором генерирование модифицированного списка содержит сортировку модифицированного списка интра-режимов по возрастанию согласно значению режима интра-режимов.

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

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

44. Способ по п. 38, в котором назначение индекса каждому из МРМ содержит назначение индексов интра-режимам соседних блоков текущего блока на основе порядка, в котором декодируются соседние блоки.

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

46. Способ по п. 38, дополнительно содержащий декодирование данных, которые представляют порядок, в котором индексы назначаются МРМ.

47. Устройство для декодирования видеоданных, содержащее:
память, выполненную с возможностью хранения текущего блока видеоданных; и
один или более процессоров, выполненных с возможностью:
определения наиболее вероятных режимов (МРМ) для предсказания текущего блока видеоданных, при этом МРМ являются интра-режимами, связанными с соответствующими соседними блоками видеоданных, декодируемыми перед текущим блоком;
генерирования списка определенных МРМ для предсказания текущего блока видеоданных на основе позиции соответствующих соседних блоков видеоданных, связанных с МРМ;
назначения индекса каждому из МРМ в списке без пересортировки МРМ в списке на основе индекса режима МРМ; и
декодирования данных интра-режима текущего блока, в том числе декодирования, когда один из МРМ согласуется с интра-режимом для текущего блока, данных, которые представляют индекс согласующегося МРМ в списке, из закодированного битового потока;
идентификации интра-режима для предсказания текущего блока с использованием упомянутого индекса; и
декодирования текущего блока с идентифицированным интра-режимом для текущего блока.

48. Устройство по п. 47, в котором для декодирования данных интра-режима, упомянутый один или более процессоров дополнительно выполнены с возможностью, когда один из МРМ не согласуется с интра-режимом для предсказания текущего блока:
декодирования флага МРМ, который указывает, что интра-режим для предсказания текущего блока не является МРМ;
генерирования модифицированного списка интра-режимов; и
декодирования данных, которые представляют индекс интра-режима текущего блока в модифицированном списке.

49. Устройство по п. 48, в котором для генерирования модифицированного списка, упомянутый один или более процессоров выполнены с возможностью удаления МРМ из модифицированного списка интра-режимов.

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

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

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

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

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

55. Устройство по п. 47, в котором упомянутый один или более процессоров дополнительно выполнены с возможностью декодирования данных, которые представляют порядок, в котором индексы назначаются МРМ.

56. Устройство по п. 47, в котором устройство содержит видеодекодер, и при этом для декодирования текущего блока упомянутый один или более процессоров дополнительно выполнены с возможностью:
получения, из закодированного битового потока, остаточного видеоблока, связанного с текущим блоком;
генерирования опорного блока посредством предсказания текущего блока с использованием идентифицированного интра-режима для текущего блока;
определения значений для текущего блока из комбинации опорного блока и принятого остаточного видеоблока; и
при этом устройство дополнительно содержит устройство отображения, выполненное с возможностью отображения текущего блока.

57. Считываемый компьютером носитель данных, хранящий инструкции, которые при их исполнении заставляют один или более процессоров:
определять наиболее вероятные режимы (МРМ) для предсказания текущего блока видеоданных, при этом МРМ являются интра-режимами, связанными с соответствующими соседними блоками видеоданных, декодируемыми перед текущим блоком;
генерировать список определенных МРМ для предсказания текущего блока видеоданных на основе позиции соответствующих соседних блоков видеоданных, связанных с МРМ;
назначать индекс каждому из МРМ без пересортировки МРМ в списке на основе индекса режима МРМ; и
декодировать данные интра-режима текущего блока, в том числе декодировать, когда один из МРМ согласуется с интра-режимом для текущего блока, данные, которые представляют индекс согласующегося МРМ в списке, из закодированного битового потока;
идентификации интра-режима для предсказания текущего блока с использованием упомянутого индекса; и
декодирования текущего блока с идентифицированным интра-режимом для текущего блока.

58. Считываемый компьютером носитель данных по п. 57, в котором для декодирования данных интра-режима текущего блока, когда один из МРМ не согласуется с интра-режимом для предсказания текущего блока, инструкции дополнительно заставляют упомянутый один или более процессоров:
декодировать флаг МРМ, который указывает, что интра-режим для предсказания текущего блока не является МРМ;
генерировать модифицированный список интра-режимов; и
декодировать данные, которые представляют индекс интра-режима текущего блока в модифицированном списке.

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

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

61. Устройство для декодирования видеоданных, устройство содержит:
средство для определения наиболее вероятных режимов (МРМ) для предсказания текущего блока видеоданных, при этом МРМ являются интра-режимами, связанными с соответствующими соседними блоками видеоданных, декодируемыми перед текущим блоком;
средство для генерирования списка определенных МРМ для предсказания текущего блока видеоданных на основе позиции соответствующих соседних блоков видеоданных, связанных с МРМ;
средство для назначения индекса каждому из МРМ в списке без пересортировки МРМ в списке на основе индекса режима МРМ; и
средство для декодирования, когда один из МРМ согласуется с интра-режимом для текущего блока, данных интра-режима текущего блока, в том числе декодирования данных, которые представляют индекс согласующегося МРМ в списке, из закодированного битового потока;
средство для идентификации интра-режима для предсказания текущего блока с использованием упомянутого индекса; и
средство для декодирования текущего блока с идентифицированным интра-режимом для текущего блока.

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

Способ приготовления лака 1924
  • Петров Г.С.
SU2011A1
Колосоуборка 1923
  • Беляков И.Д.
SU2009A1
T-D CHUANG et al
''Luma Intra Prediction Mode Coding'', JCTVC-F062, опубл
Прибор для нагревания перетягиваемых бандажей подвижного состава 1917
  • Колоницкий Е.А.
SU15A1
ВНУТРЕННЕЕ КОДИРОВАНИЕ, ОСНОВАННОЕ НА ПРОСТРАНСТВЕННОМ ПРОГНОЗИРОВАНИИ 2003
  • Карчевич Марта
RU2314656C2
Способ приготовления лака 1924
  • Петров Г.С.
SU2011A1

RU 2 584 498 C2

Авторы

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

Чиэнь Вей-Дзунг

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

Даты

2016-05-20Публикация

2012-11-02Подача