Способ и устройство для внутреннего предсказания

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

 

Область техники, к которой относится изобретение

Настоящее изобретение относится к технической области кодирования и декодирования изображений и/или видео и, в частности, к способу и устройству для внутреннего предсказания.

Уровень техники

С момента появления DVD-дисков цифровое видео получило широкое распространение. Перед передачей видео кодируется и передается с использованием среды передачи. Зритель принимает видео и использует устройство для декодирования и просмотра видео. С годами качество видео повысилось, например, за счет более высоких разрешений, глубины цвета и частоты кадров. Это привело к увеличению потоков данных, которые в настоящее время обычно передаются через интернет и сети мобильной связи.

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

Высокоэффективное кодирование видео (HEVC) является примером стандарта кодирования видео, который обычно известен специалистам в данной области техники. В HEVC для разделения блока кодирования (CU) на блоки предсказания (PUs) или блоки преобразования (TUs). Стандарт следующего поколения универсального кодирования видео (VVC) является последним совместным проектом видео, созданный группой экспертов по кодированию видео ITU-T (VCEG) и организациями по стандартизации ISO/IEC группой экспертов по движущимся изображений (MPEG), которые работают вместе в известном партнерстве, как объединенная группа исследования видео (JVET). VVC также называют стандартом ITU-T H.266/кодирование видео следующего поколения (NGVC). В VVC удаляют концепции множества типов разделов, т.е. удаляет концепции разделения CU, PU и TU, за исключением случаев, когда это необходимо для CUs, размер которых слишком велик для максимальной длины преобразования, и поддерживает большую гибкость для форм разделов CU.

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

ITU-T VCEG (Q6/16) и ISO/IEC MPEG (JTC 1/SC 29/WG 11) изучают потенциальную потребность в стандартизации будущей технологии кодирования видео с возможностью сжатия, которая значительно превосходит возможности текущего стандарта HEVC (включающий в себя его текущие расширения и краткосрочные расширения для кодирования контента экрана и кодирования с высоким динамическим диапазоном). Группы работают вместе над этой исследовательской деятельностью в рамках совместной работы, известной как совместная группа по исследованию видео (JVET), для оценки проектов технологий сжатия, предложенных их экспертами в этой области.

Стандарт VTM (универсальная тестовая модель) использует 35 внутренних режимов, тогда как BMS (набор опорных задач) использует 67 внутренних режимов.

Схема режима внутреннего кодирования, описанная в настоящее время в BMS, считается сложной, и недостатком невыбранного набора режимов является то, что список индексов всегда постоянен и не адаптивен на основании свойств текущего блока (например, для INTRA режимов соседних блоков).

Сущность изобретения

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

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

В одном из вариантов смещение равно -1 или +1:

В варианте осуществления способ дополнительно содержит: если в MPM списке отсутствует планарный режим, добавление планарного режима в MPM список; и, если DC режим отсутствует в MPM списке, добавление DC режима в MPM список.

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

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

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

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

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

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

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

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

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

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

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

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

Краткое описание чертежей

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

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

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

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

фиг. 4 показывает схему, иллюстрирующую 67 режимов внутреннего предсказания;

фиг. 5 показывает схему, иллюстрирующую соседние блоки для получения MPM;

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

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

фиг. 8 показывает схему, иллюстрирующую пример способа декодирования видео;

фиг. 9 показывает другую схему, иллюстрирующую пример способа декодирования видео;

фиг. 10 показывает блок-схему устройства.

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

Подробное описание вариантов осуществления

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

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

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

Кодирование видео (или кодирование в целом) содержит две части: кодирования видео и декодирования видео. Кодирование видео выполняется на стороне источника, обычно содержащее обработку (например, путем сжатия) исходных видеоизображений для уменьшения объема данных, необходимых для представления видеоизображений (для более эффективного хранения и/или передачи). Декодирование видео выполняется на стороне назначения и обычно содержит обратную обработку по сравнению с кодером для восстановления видеоизображений. Варианты осуществления, относящиеся к «кодированию» видеоизображений (или изображений в целом), следует понимать как относящиеся к «кодированию» или «декодированию» видеоизображений или соответствующих видеопоследовательностей. Комбинация части кодирования и части декодирования также называется CODEC (Coding and Decoding).

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

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

Фиг. 1 представляет собой концептуальную или схематическую блок-схему, иллюстрирующую пример системы кодирования, например, система кодирования видео, которая может использовать способы настоящего изобретения (present disclosure). Кодер 20 (например, видеокодер 20) и декодер 30 (например, видеодекодер 30) системы кодирования видео представляют примеры устройств, которые могут быть выполнены с возможностью выполнять способы в соответствии с различными примерами, описанными в настоящем изобретении. Как показано на фиг. 1, система кодирования содержит устройство 12 источника, выполненное с возможностью предоставлять закодированные данные 13, например, закодированное изображение 13, например, в устройство 14 назначения для декодирования закодированных данных 13.

Устройство 12 источника содержит кодер 20 и может дополнительно, т.е. возможно, содержать источник 16 изображения, блок 18 предварительной обработки, например, блок 18 предварительной обработки изображения и интерфейс связи или блок 22 связи.

Источник 16 изображения может содержать или быть устройством захвата изображения любого типа, например, для захвата реального изображения и/или любого вида изображения или комментария (для кодирования содержимого экрана некоторые тексты на экране также считаются как часть изображения или кадра, которое должно быть закодировано), устройство генерирования, например, процессор компьютерной графики для генерирования компьютерного анимированного изображения, или любое устройство для получения и/или предоставления реального изображения, компьютерного анимированного изображения (например, содержимое экрана, изображение виртуальной реальности (VR)) и/или любую их комбинацию (например, изображение дополненной реальности (AR)).

(Цифровое) изображение представляет собой или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности. Выборка в массиве также может называться пикселем (сокращенная форма элемента изображения) или pel. Количество выборок в горизонтальном и вертикальном направлении (или по оси) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовых компонента, то есть, изображение может быть представлено или включать в себя три массива выборок. В формате RBG или цветовом пространстве изображение содержит соответствующий массив выборок красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель обычно представлен в формате яркости/цветности или цветовом пространстве, например YCbCr, который содержит компонент яркости, обозначенный Y (иногда вместо него также используется L), и два компонента цветности, обозначенные Cb и Cr. Компонент Y яркости (сокращенно от luma) представляет яркость или интенсивность уровня серого (например, как в полутоновом изображении), в то время как два компонента цветности (сокращенно, Cb и Cr) представляют компоненты информации цветности или цвета. Соответственно, изображение в формате YCbCr содержит массив выборки яркости из значений выборки яркости (Y) и два массива выборки цветности значений цветности (Cb и Cr). Изображения в формате RGB могут быть преобразованы или преобразованы в формат YCbCr, и наоборот, этот процесс также известен как преобразование цвета или преобразование. Если изображение является монохромным, оно может содержать только массив выборки яркости.

Источник 16 изображения (например, источник 16 видео) может быть, например, камерой для захвата изображения, памятью, например память изображения, содержащая или хранящая ранее захваченное или сгенерированное изображение, и/или интерфейс любого типа (внутренний или внешний) для получения или приема изображения. Камера может быть, например, локальной или интегрированной камерой, интегрированной в устройство источника, память может быть локальной или интегрированной памятью, например, интегрировано в устройство источника. Интерфейс может быть, например, внешним интерфейсом для приема изображения от внешнего источника видео, например, внешнего устройства захвата изображения, такого как камера, внешней памяти или внешнего устройства формирования изображения, например, внешнего компьютерного графического процессора, компьютер или сервер. Интерфейс может быть любым, например, проводной или беспроводной интерфейс, оптический интерфейс в соответствии с любым проприетарным или стандартизованным протоколом интерфейса. Интерфейс для получения данных 17 изображения может быть тем же интерфейсом, что и интерфейс 22 связи, или его частью.

В отличие от блока 18 предварительной обработки и обработки, выполняемой блоком 18 предварительной обработки, изображение или данные 17 изображения (например, видеоданные 16) также могут называться необработанным изображением или данными 17 исходного изображения.

Блок 18 предварительной обработки выполнен с возможностью принимать (необработанные) данные 17 изображения и выполнять предварительную обработку данных 17 изображения для получения предварительно обработанного изображения 19 или предварительно обработанных данных 19 изображения. Предварительная обработка, выполняемая блоком 18 предварительной обработки, может, например, включать в себя обрезку, преобразование цветового формата (например, из RGB в YCbCr), цветокоррекцию или устранение шумов. Можно понять, что блок 18 предварительной обработки может быть возможным компонентом.

Кодер 20 (например, видеокодер 20) выполнен с возможностью принимать предварительно обработанные данные 19 изображения и предоставления кодированных данных 21 изображения (дополнительные подробности будут описаны ниже, например, со ссылкой на фиг. 2).

Интерфейс 22 связи устройства 12 источника может быть выполнен с возможностью принимать данные 21 закодированного изображения и для их передачи другому устройству, например, в устройство 14 назначения или любое другое устройство для хранения или прямого восстановления или для обработки данных 21 закодированного изображения соответственно перед сохранением кодированных данных 13 и/или передачей кодированных данных 13 в другое устройство, например, устройство 14 назначение или любое другое устройство для декодирования или сохранения.

Устройство 14 назначения содержит декодер 30 (например, видеодекодер 30) и может дополнительно, то есть, возможно, содержать интерфейс связи или блок 28 связи, блок 32 постобработки и устройство 34 отображения.

Интерфейс 28 связи устройства 14 назначения выполнен с возможностью принимать кодированные данные 21 изображения или кодированные данные 13, например, непосредственно из устройства 12 источника или из любого другого источника, например, запоминающего устройства, например, устройство хранения данных закодированного изображения.

Интерфейс 22 связи и интерфейс 28 связи могут быть выполнены с возможностью передавать или принимать кодированные данные 21 изображения или закодированные данные 13 через прямую линию связи между устройством 12 источника и устройством 14 назначения, например, прямое проводное или беспроводное соединение или через любую сеть, например, проводную или беспроводную сеть или любую их комбинацию, или любую частную и общественную сеть, или любую их комбинацию.

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

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

Как интерфейс 22 связи, так и интерфейс 28 связи могут быть выполнены с возможностью как однонаправленные интерфейсы связи, как указано стрелкой для данных 13 закодированного изображения на фиг. 1, указывающей из устройства 12 источника в устройство 14 получения, или как интерфейсы двунаправленной связи, и может быть выполнен с возможностью, например, отправлять и принимать сообщения, например, устанавливать соединение, подтверждение и обмен любой другой информацией, относящейся к линии связи и/или передаче данных, например, передача данных закодированного изображения.

Декодер 30 выполнен с возможностью принимать данные 21 кодированного изображения и предоставления данных 31 декодированного изображения или декодированного изображения 31 (дополнительные подробности будут описаны ниже, например, на основе фиг. 3).

Постпроцессор 32 устройства 14 источника выполнен с возможностью пост-обработки данных 31 декодированного изображения (также называемых данными восстановленного изображения), например, декодированное изображение 31 для получения данных 33 изображения после обработки, например, пост обработанное изображение 33. Постобработка, выполняемая блоком 32 постобработки, может включать в себя, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекция, обрезка или повторная выборка, или любая другая обработка, например, для подготовки данных 31 декодированного изображения для отображения, например, с помощью устройства 34 отображения.

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

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

Как будет очевидно для специалиста на основе описания, наличие и (точное) разделение функциональных возможностей различных модулей или функций в устройстве 12 источника и/или устройстве 14 назначения, как показано на фиг. 1, может варьироваться в зависимости от фактического устройства и приложения.

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

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

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

На фиг. 2 показана схематическая/концептуальная блок-схема примерного видеокодера 20, который выполнен с возможностью реализации способов настоящего изобретения. В примере на фиг. 2 видеокодер 20 содержит блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования и блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, блок 220 контурной фильтрации, буфер 230 декодированных изображений (DPB), блок 260 обработки предсказания и блок 270 энтропийного кодирования. Блок 260 обработки предсказания может включать в себя блок 244 внешнего предсказания, блок 254 внутреннего предсказания и блок 262 выбора режима. Блок 244 внешнего предсказания может включать в себя блок оценки движения и блок компенсации движения (не показаны). Видеокодер 20, показанный на фиг. 2, также может называться гибридным видеокодером или видеокодером согласно гибридному видеокодеку.

Например, блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 260 обработки предсказания и блок 270 энтропийного кодирования образуют прямой тракт сигнала кодера 20, тогда как, например, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 декодированных изображений (DPB), блок 260 обработки предсказания формируют обратный тракт сигнала кодера, в котором обратный тракт сигнала кодера соответствует тракту сигнала декодера (см. декодер 30 на фиг. 3).

Кодер 20 выполнен с возможностью принимать, например, посредством ввода 202 изображения 201 или блока 203 изображения 201, например, изображения последовательности изображений, образующих видео или видеопоследовательность. Блок 203 изображения также может называться блоком текущего изображения или блоком изображения, подлежащим кодированию, и изображение 201 является текущим изображением или изображением, которое должно быть кодировано (в частности, при кодировании видео, чтобы отличать текущее изображение от других изображений, например, ранее закодированных и/или декодированные изображения одной и той же видеопоследовательности, т.е. видеопоследовательности, которая также включает в себя текущее изображение).

Блок 260 обработки предсказания, также называемый блоком 260 обработки предсказания блока, выполнен с возможностью принимать или получать блок 203 (текущий блок 203 текущего изображения 201) и данные восстановленного изображения, например, опорных выборок одного и того же (текущего) изображения из буфера 216 и/или данных 231 опорного изображения из одного или множества ранее декодированных изображений из буфера 230 декодированных изображений и обрабатывать эти данные для предсказания, то есть, обеспечить блок 265 предсказания, который может быть блоком 245 внешнего предсказания или блоком 255 внутреннего предсказания.

Блок 262 выбора режима может быть выполнен с возможностью выбирать режим предсказания (например, режима внутреннего или внешнего предсказания) и/или соответствующий блок 245 или 255 предсказания, который будет использоваться в качестве блока 265 предсказания для вычисления остаточного блока 205 и для восстановления восстановленного блока 215.

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

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

Варианты осуществления видеокодера 20 могут содержать блок разделения изображения (не показан на фиг. 2), выполненный с возможностью разделять изображение на множество (обычно не перекрывающихся) блоков изображения. Эти блоки также могут называться корневыми блоками, макроблоками (H.264/AVC) или блоками дерева кодирования (CTB) или блоками дерева кодирования (CTU) (H.265/HEVC и VVC). Блок разделения изображений может быть выполнен с возможностью использовать один и тот же размер блока для всех изображений видеопоследовательности и соответствующей сетки, определяющей размер блока, или изменять размер блока между изображениями, или подмножествами, или группами изображений, и разделять каждое изображение на соответствующие блоки.

Подобно изображению, блок изображения снова является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности (значениями выборок), хотя и меньшего размера, чем изображение. Другими словами, блок может содержать, например, один массив выборок (например, массив яркости в случае монохромного изображения или массив яркости или цветности в случае цветного изображения) или три массива выборок (например, яркость и два массива цветности. массивы в случае цветного изображения) или любое другое количество и/или вид массивов в зависимости от применяемого цветового формата. Количество выборки в горизонтальном и вертикальном направлении (или оси) блока определяет размер блока. Соответственно, блок может, например, представлять собой массив выборок MxN (M-столбец на N-строк) или массив MxN коэффициентов преобразования.

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

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

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

Фиг. 3 показывает примерный видеодекодер 30, который выполнен с возможностью выполнять способы настоящего изобретения. Видеодекодер 30, выполненный с возможностью принимать кодированные данные 21 изображения (например, кодированного битового потока), например, кодируемые кодером 100, чтобы получить декодированное изображение 131. Во время процесса декодирования видеодекодер 30 принимает видеоданные, например, закодированный битовый поток видео, который представляет блоки изображения кодированного сегмента видео и ассоциированные элементы синтаксиса, из видеокодера 100.

В примере на фиг. 3, декодер 30 содержит блок 304 энтропийного декодирования, блок 310 обратного квантования, блок 312 обработки обратного преобразования, блок 314 восстановления (например, сумматор 314), буфер 316, контурный фильтр 320 , буфер 330 декодированного изображения и блок 360 обработки предсказания. Блок 360 обработки предсказания может включать в себя блок 344 внешнего предсказания, блок 354 внутреннего предсказания и блок 362 выбора режима. Видеодекодер 30 может, в некоторых примерах, выполнять этап декодирования, как правило, обратный этапу кодирования, описанному применительно к видеокодеру 20 на фиг. 2.

Блок 304 энтропийного декодирования выполнен с возможностью выполнять энтропийное декодирование кодированных данных 21 изображения для получения, например, квантованных коэффициентов 309 и/или декодированных параметров кодирования (не показаны на фиг. 3), например, (декодированный) любой или все параметры внешнего предсказания, параметр внутреннего предсказания, параметры контурного фильтра и/или другие элементы синтаксиса. Блок 304 энтропийного декодирования дополнительно выполнен с возможностью пересылать параметры внешнего предсказания, параметр внутреннего предсказания и/или другие элементы синтаксиса в блок 360 обработки предсказания. Видеодекодер 30 может принимать элементы синтаксиса на уровне сегмента видео и/или уровне блока видео.

Блок 310 обратного квантования может быть идентичен по функциям блоку 110 обратного квантования, блок 312 обработки обратного преобразования может быть идентичен по функциям блоку 112 обработки обратного преобразования, блок 314 восстановления может быть идентичным блоку 114 восстановления, буфер 316 может быть идентичен по функциям буферу 116, контурный фильтр 320 может быть идентичен по функциям контурному фильтру 120, и буфер 330 декодированного изображения может быть идентичен по функции буферу 130 декодированного изображения.

Блок 360 обработки предсказания может содержать блок 344 внешнего предсказания и блок 354 внутреннего предсказания, в котором блок 344 внешнего предсказания может аналогичен блоку 144 внешнего предсказания по функциям, и блок 354 внутреннего предсказания может функционально соответствовать блоку 154 внутреннего предсказания. Блок 360 обработки предсказания обычно выполнен с возможностью выполнять предсказание блока и/или получать блок 365 предсказания из закодированных данных 21, а также для приема или получения (явно или неявно) ассоциированных с предсказанием параметров и/или информации о выбранном режиме предсказания, например, из блока 304 энтропийного декодирования.

Когда сегмент видео кодируется как сегмент с внутренним кодированием (I), блок 354 внутреннего предсказания блока 360 обработки предсказания выполнен с возможностью генерировать блок 365 предсказания для блока изображения текущего сегмента видео на основании сигнального режима внутреннего предсказания и данных из ранее декодированных блоков текущего кадра или изображения. Когда видеокадр кодируется как кодированный в режиме внешнего предсказания (то есть, B или P) сегмент, блок 344 внешнего предсказания (например, блок компенсации движения) блока 360 обработки предсказания выполнен с возможностью генерировать блок 365 предсказания для блока видео текущего сегмента видео на основании векторов движения и других элементов синтаксиса, принятых из блока 304 энтропийного декодирования. Для внешнего предсказания блоки предсказания могут быть сгенерированы из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может составить списки опорных кадров, список 0 и список 1, используя способы построения по умолчанию на основе опорных изображений, хранящихся в DPB 330.

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

Блок 310 обратного квантования выполнен с возможностью обратного квантования, то есть, деквантования квантованных коэффициентов преобразования, предоставленных в битовом потоке и декодированных блоком 304 энтропийного декодирования. Процесс обратного квантования может включать в себя использование параметра квантования, вычисленного видеокодером 100 для каждого блока видео в сегменте видео для определения степени квантования и, аналогично, степени обратного квантования, которое должно применяться.

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

Блок 314 восстановления (например, сумматор 314) выполнен с возможностью добавлять блок 313 обратного преобразования (т.е. восстановленного остаточного блока 313) к блоку 365 предсказания для получения восстановленного блока 315 в области выборки, например, путем сложения значений выборок восстановленного остаточного блока 313 и значений выборок блока 365 предсказания.

Блок 320 контурного фильтра (либо в контуре кодирования, либо после контура кодирования) выполнен с возможностью фильтрации восстановленного блока 315 для получения отфильтрованного блока 321, например, для сглаживания переходов пикселей или иного улучшения качества видео. В одном примере блок 320 контурного фильтра может быть выполнен с возможностью выполнять любую комбинацию способов фильтрации, описанных ниже. Блок 320 контурного фильтра предназначен для представления одного или нескольких контурных фильтров, таких как фильтр деблокинга, фильтр с адаптивным смещением (SAO) или другие фильтры, например, двусторонний фильтр или адаптивный контурный фильтр (ALF), или фильтры повышения резкости или сглаживания, или коллаборативные фильтры. Хотя блок 320 контурного фильтра показан на фиг. 3 как контурный фильтр, в других конфигурациях блок 320 контурного фильтра может быть реализован как постконтурный фильтр.

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

Декодер 30 выполнен с возможностью выводить декодированное изображение 331, например, через выход 332 для представления или просмотра пользователю.

Другие варианты видеодекодера 30 могут использоваться для декодирования сжатого битового потока. Например, декодер 30 может формировать выходной видеопоток без блока 320 контурного фильтра. Например, декодер 30 без преобразования может выполнять обратное квантование остаточного сигнала непосредственно без блока 312 обработки обратного преобразования для определенных блоков или кадров. В другой реализации видеодекодер 30 может иметь блок 310 обратного квантования и блок 312 обработки обратного преобразования, объединенные в один блок.

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

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

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

Согласно стандарту HEVC/H.265 доступно 35 режимов внутреннего предсказания. Как показано на фиг. 4, этот набор содержит следующие режимы: планарный режим (индекс режима внутреннего предсказания равен 0), режим DC (индекс режима внутреннего предсказания равен 1) и направленные (угловые) режимы, которые охватывают диапазон 180° и имеют диапазон значений индекса режима внутреннего предсказания от 2 до 34, как показано черными стрелками на фиг. 4. Для захвата произвольных направлений краев, присутствующих в естественном видео, количество направленных внутренних режимов расширено с 33, как используется в HEVC, до 65. Дополнительный направленный режимы обозначены пунктирными стрелками на фиг. 4, и планарный режим и DC режим остаются неизменными. Стоит отметить, что диапазон, охватываемый режимами внутреннего предсказания, может быть шире 180°. В частности, 62 режима направленности со значениями индекса от 3 до 64 покрывают диапазон приблизительно 230°, т.е. несколько пар режимов имеют противоположную направленность. В случае опорной модели HEVC (HM) и платформ JEM только одна пара угловых режимов (а именно, режимы 2 и 66) имеет противоположную направленность, как показано на фиг. 4. Для построения предиктора обычные угловые режимы используют опорные выборки и (при необходимости) фильтруют их для получения предиктора выборки. Количество опорных выборок, необходимых для построения предиктора, зависит от длины фильтра, используемого для интерполяции (например, билинейные и кубические фильтры имеют длину 2 и 4, соответственно).

Схемы кодирования видео, такие как H.264 / AVC и HEVC, разработаны на основе успешного принципа гибридного кодирования видео на основе блоков. Используя этот принцип, изображение сначала разделяется на блоки и затем каждый блок предсказывается с использованием внутреннего или внешнего предсказания.

Несколько стандартов кодирования видео, начиная с H.261, принадлежат к группе «гибридных видеокодеков с потерями» (т.е. объединяют пространственное и временное предсказание в области выборки и кодирование с двумерным преобразованием для применения квантования в области преобразования). Каждое изображение видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Другими словами, в кодере видео обычно обрабатывается, т.е. кодируется, на уровне блока (блока изображения), например, используя пространственное (внутреннее изображение) предсказание и временное (внешнее изображение) предсказание для генерирования блока предсказания, вычитание блока предсказания из текущего блока (блок, который в настоящее время обрабатывается / должен быть обработан) для получения остаточного блока, преобразование остаточного блока и квантование остаточного блока в области преобразования для уменьшения объема данных, которые должны быть переданы (сжаты), тогда как для восстановления текущего блока для представления в декодере частично применяется обратная обработка по сравнению с кодером к закодированному или сжатому блоку. Кроме того, кодер дублирует цикл обработки декодера, так что оба будут генерировать идентичные предсказания (например, внутреннее и внешнее предсказание) и/или восстановления для обработки, то есть, кодирование последующих блоков.

Используемый в настоящем описании термин «блок» может относиться к части изображения или кадра. Для удобства описания варианты осуществления настоящего изобретения описаны здесь со ссылкой на высокоэффективное кодирование видео (HEVC) или опорное программное обеспечение универсального кодирования видео (VVC), разработанное объединенной группой сотрудничества по кодированию видео (JCT-VC) группы экспертов ITU-T по кодированию видео (VCEG) и группы экспертов ISO/IEC по движущимся изображениям (MPEG). Обычный специалист в данной области техники поймет, что варианты осуществления настоящего изобретения не ограничиваются HEVC или VVC. Оно может относиться к CU, PU и TU. В HEVC CTU разделяется на CUs с использованием структуры дерева квадратов, обозначаемой как дерево кодирования. Решение о том, кодировать ли область изображения с использованием внешнего (временного) или внутреннего (пространственного) предсказания, принимается на уровне CU. Каждый CU может быть дополнительно разделен на один, два или четыре PUs в соответствии с типом разделения PU. Внутри одного PU применяется тот же процесс предсказания, и соответствующая информация передается в декодер на основе PU. После получения остаточного блока путем применения процесса предсказания на основе типа разделения PU, CU может быть разделен на блоки преобразования (TUs) в соответствии с другой структурой дерева квадрантов, аналогичной дереву кодирования для CU. В новейших разработках технологии сжатия видео для разделения блока кодирования используется кадр разделения с использованием четырехугольного и двоичного дерева (QTBT). В блочной структуре QTBT CU может иметь квадратную или прямоугольную форму. Например, блок дерева кодирования (CTU) сначала разделяется структурой дерева квадрантов. Листовые узлы дерева квадрантов дополнительно разделяются структурой двоичного дерева. Листовые узлы двоичного дерева называются блоками кодирования (CU), и эта сегментация используется для предсказания и обработки преобразования без какого-либо дальнейшего разделения. Это означает, что CU, PU и TU имеют одинаковый размер блока в структуре блока кодирования QTBT. Параллельно с блочной структурой QTBT было предложено также использовать множественное разделение, например, разделение на тройное дерево.

ITU-T VCEG (Q6/16) и ISO/IEC MPEG (JTC 1/SC 29/WG 11) изучают потенциальную потребность в стандартизации будущей технологии кодирования видео с возможностью сжатия, которая значительно превосходит возможности текущего стандарта HEVC (включающего в себя его текущие расширения и краткосрочные расширения для кодирования содержимого экрана и кодирования с высоким динамическим диапазоном). Группы работают вместе над этой исследовательской деятельностью в рамках совместной работы, известной как Joint Video Exploration Team (JVET), для оценки проектов технологий сжатия, предложенных их экспертами в этой области.

VTM (универсальная тестовая модель) использует 35 внутренних режимов, тогда как BMS (набор опорных значений) использует 67 внутренних режимов. Для кодирования 67 внутренних режимов текущая схема кодирования внутреннего режима в BMS использует следующий способ:

вместить увеличенное количество направленных внутренних режимов в BMS, используется способ кодирования внутреннего режима с 6 наиболее вероятными режимами (MPMs). Используются два основных технических аспекта:

1) получение 6 MPMs, и

2) энтропийное кодирование 6 MPMs и не-MPM режимов.

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

Для формирования MPM списка используются пять соседних режимов внутреннего предсказания. Эти местоположения 5 соседних блоков такие же, как и те, которые используются в режиме слияния, то есть, слева (L), вверху (A), внизу слева (BL), вверху справа (AR) и вверху слева (AL), как показано на фиг. 5. Исходный MPM список формируется путем вставки 5 внутренних режимов соседа, планарного режима и DC режима в MPM список. Для удаления дублированных режимов используется процесс сокращения, так что в MPM список включаются только уникальные режимы. Порядок включения исходных режимов: левый, верхний, плоский, DC, нижний левый, верхний правый и верхний левый.

Если MPM список не полон (т.е. имеет менее 6 кандидатов MPMs в списке), добавляются полученные режимы, эти внутренние режимы получаются путем добавления -1 или +1 к угловым режимам, которые уже находятся в MPM списке. Операция получения применяется к неугловым режимам, то есть, DC или планарным.

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

Для энтропийного кодирования 6 MPMs используется усеченная унарная бинаризация MPMs. Первые три бина кодируются контекстами, которые зависят от MPM режима, связанного с переедаемым в данный момент времени бином. MPM режим подразделяется на одну из трех категорий: (a) относится ли режим к горизонтальному (MPM режим меньше или равен диагональному направлению), (b) вертикальному (MPM режим больше, чем диагональное направление) или (с) неугловому (DC и планарный) классу. Соответственно, для сигнализации MPM индекса используются три контекста.

Кодирование оставшегося 61 не-MPMs выполняется следующим образом. 61 не-MPMs сначала делятся на два набора: набор выбранных режимов и набор невыбранных режимов. Набор выбранных режимов содержит 16 режимов и остальные (45 режимов) назначены набору невыбранных режимов. Набор режимов, которому принадлежит текущий режим, указывается в битовом потоке с помощью флага. Затем режим из выбранного набора сигнализируется 4-битным кодом фиксированной длины и режим из невыбранного набора кодируется усеченным двоичным кодом. Набор выбранных режимов генерируется путем подвыборкой всего 61 не-MPM режимов со следующими индексами:

Набор выбранных режимов = {0, 4, 8, 12, 16, 20… 60}

Набор невыбранных режимов = {1, 2, 3, 5, 6, 7, 9, 10… 59}

В таблице 1 представлен обзор различных механизмов сигнализации в INTRA режиме.

Таблица 1. Текущая сигнализация LUMA в режиме Intra в BMS

Режимы внутреннего предсказания MPM флаг Выбранный флаг Бин-строка
MPM режимы (6) 1 0
10
110
1110
11110
11111
Выбранные режимы (16) 0 1 4-битовый код фиксированной длины
Невыбранные режимы (45) 0 0 Усеченный двоичный код

В другом примере используется способ кодирования в INTRA режиме с 3 наиболее вероятными режимами (MPMs). В примере элементы синтаксиса intra_luma_mpm_flag [x0] [y0], intra_luma_mpm_idx [x0] [y0] и intra_luma_mpm_remainder [x0] [y0] определяют режим внутреннего предсказания для выборок яркости. Индексы x0, y0 массива определяют местоположение (x0, y0) верхней левой выборки яркости рассматриваемого блока предсказания относительно верхней левой выборки яркости изображения. Когда intra_luma_mpm_flag [x0] [y0] равно 1, режим внутреннего предсказания выводится из соседнего блока внутреннего предсказания.

Внутренне предсказание для текущего блока (IntraPredModeY [xPb] [yPb]) получается с помощью следующих упорядоченных этапов:

• Соседние местоположения (xNbA, yNbA) и (xNbB, yNbB) устанавливаются равными (xPb - 1, yPb) и (xPb, yPb - 1), соответственно.

• Если X заменяется либо на A или B, переменные candIntraPredModeX выводятся следующим образом:

• Процесс определения доступности для блока выполняется с использованием местоположения (xCurr, yCurr), установленным равным (xPb, yPb), и соседним местоположением (xNbY, yNbY), установленным равным (xNbX, yNbX), в качестве входных данных, и выводные данные указывают доступность availableX.

• Кандидат режима внутреннего предсказания candIntraPredModeX выводится следующим образом:

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

o Переменная availableX равна FALSE.

o CuPredMode [xNbX] [yNbX] не равно MODE_INTRA.

o X равен B и yPb - 1 меньше, чем ((yPb >> CtbLog2SizeY) << CtbLog2SizeY).

В противном случае CandIntraPredModeX устанавливается равным IntraPredModeY [xNbX] [yNbX].

• CandModeList [x] с x = 0..2 выводится следующим образом:

Если CandIntraPredModeB равен candIntraPredModeA, применяется следующее:

o Если candIntraPredModeA меньше 2 (т.е. равно INTRA_PLANAR или INTRA_DC), candModeList [x] с x = 0..2 выводится следующим образом:

candModeList [0] = INTRA_PLANAR

candModeList [1] = INTRA_DC

candModeList [2] = INTRA_ANGULAR50

o В противном случае candModeList [x] с x = 0..2 получается следующим образом:

candModeList [0] = candIntraPredModeA

candModeList [1] = 2 + ((candIntraPredModeA + 61)% 64)

candModeList [2] = 2 + ((candIntraPredModeA - 1)% 64)

В противном случае (candIntraPredModeB не равно candIntraPredModeA) применяется следующее:

o candModeList [0] и candModeList [1] выводятся следующим образом:

o candModeList [0] = candIntraPredModeA

o candModeList [1] = candIntraPredModeB

Если ни один из candModeList [0] и candModeList [1] не равен INTRA_PLANAR, candModeList [2] устанавливается равным INTRA_PLANAR,

В противном случае, если ни один из candModeList [0] и candModeList [1] не равен INTRA_DC, candModeList [2] устанавливается равным INTRA_DC,

В противном случае candModeList [2] устанавливается равным INTRA_ANGULAR50.

• IntraPredModeY [xPb] [yPb] получается путем применения следующей процедуры:

Если intra_luma_mpm_flag [xPb] [yPb] равно 1, IntraPredModeY [xPb] [yPb] устанавливается равным candModeList [intra_luma_mpm_idx [xPb] [yPb]].

В противном случае IntraPredModeY [xPb] [yPb] получается путем выполнения следующих упорядоченных этапов:

• Массив candModeList [x], x = 0..2 модифицируется следующим образом:

Когда candModeList [0] больше, чем candModeList [1], оба значения меняются местами следующим образом:

o (candModeList [0], candModeList [1]) = Swap (candModeList [0], candModeList [1])

o Когда candModeList [0] больше, чем candModeList [2], оба значения меняются местами следующим образом:

o (candModeList [0], candModeList [2]) = Swap (candModeList [0], candModeList [2])

Когда candModeList [1] больше, чем candModeList [2], оба значения меняются местами следующим образом:

o (candModeList [1], candModeList [2]) = Swap (candModeList [1], candModeList [2]) (8 11)

• IntraPredModeY [xPb] [yPb] выводится с помощью следующих упорядоченных этапов:

IntraPredModeY [xPb] [yPb] устанавливается равным intra_luma_mpm_remainder [xPb] [yPb].

Для i, равного от 0 до 2 включительно, когда IntraPredModeY [xPb] [yPb] больше или равно candModeList [i], значение IntraPredModeY [xPb] [yPb] увеличивается на единицу.

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

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

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

Как проиллюстрировано на фиг. 5, левый блок L текущего блока кодирования (текущий блок кодирования) является соседним блоком текущего блока. Например, он расположен рядом с текущим блоком в нижней левой части текущего блока. Кроме того, верхний блок A текущего блока кодирования (текущий блок кодирования) является соседним блоком текущего блока. Например, он расположен рядом с текущим блоком в правой верхней части текущего блока.

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

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

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

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

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

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

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

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

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

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

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

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

В дополнительном варианте осуществления способ содержит: (а) проверку доступности левого блока текущих блоков кодирования. Позиция левого блока показана на фиг. 5, где левый блок обозначен буквой «L».

Левый блок недоступен, если из левого блока не может быть получена информация внутреннего предсказания (т.е. режим внутреннего предсказания). Что включает в себя следующие случаи:

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

• Левый блок отсутствует, например, текущий блок является блоком кодирования, расположенным в самой левой стороне кадра;

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

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

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

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

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

(c) Проверить доступность верхнего блока текущего блока кодирования. Позиция верхнего блока проиллюстрирована на фиг. 5, где верхний блок помечен буквой «A».

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

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

• Верхний блок отсутствует. Например, текущий блок является блоком кодирования, расположенным в самой верхней стороне кадра;

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

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

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

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

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

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

В противном случае (т.е. верхний блок доступен), (d) включить режим внутреннего предсказания верхнего (то есть верхнего) блока в MPM список с 6 записями.

(e) проверить, был ли планарный (PLANAR_IDX = 0) режим вставлен в MPM список (т.е. проверить, что внутренний режим левого или верхнего (т.е. верхнего) блока является планарным режимом), только, если планарный режим не был вставлен в MPM список, затем вставить планарный режим в MPM список. (f) Проверить, был ли вставлен режим DC (DC_IDX = 1) в MPM список (т.е. проверить, что режимы внутри левого или верхнего (т.е. выше) блока являются режимом DC), только если режим DC не был вставлен в MPM список, затем вставить режим DC в MPM список.

(g) Если левый блок доступен и его режим внутреннего предсказания является угловым режимом, то есть, (mode > DC_IDX, и считается, что его режим angularLeft), получить два его ближайших угловых режима, выполнив angularLeft-1, angularLeft + 1. Обратите внимание, что при выполнении -1 или +1 это может включать в себя операцию увеличения и уменьшения. Например, если angularLeft равно 2, тогда angularLeft-1 будет 66 (случай увеличения), или если angularLeft равно 66, то angularLeft + 1 будет 2 (случай уменьшения).

В другом примере, если angularLeft равно 2, тогда angularLeft-1 будет 65 (случай увеличения) или, если angularLeft равен 66, то angulaLeft + 1 будет 3. Это может быть выбрано увеличение, поскольку режимы 2 и 66 указывают (анти) параллельные направления. В этом случае, ближайшие два угловые режимы angularLeft могут быть вычислены как angularLeft-1 = 2 + ((angularLeft + 61)% 64); и

angularLeft + 1 = 2 + ((angularLeft -1)% 64).

Эти правила расчета соответствуют добавлению смещения -1 или +1, соответственно, с увеличением и режимами 0 и 1, не являющимися режимами углового предсказания. % отображает операцию по модулю.

(h) Если режим предсказания angularLeft-1 не был вставлен в MPM список, вставить его (angularLeft-1) в MPM список.

(i) Если режим предсказания angularLeft + 1 не был вставлен в MPM список, вставить его (angularLeft-1) в MPM список.

(j) Если MPM список не полон, если верхний блок доступен и если его (верхний блок) режим внутреннего предсказания является угловым режимом, то есть, (mode> DC_IDX, и считается, что режим является angularAbove), получить его ближайшие два угловых режима выполняя angularAbove-1, angularAbove + 1. Обратите внимание, что при выполнении -1 или +1 это может включать в себя операцию увеличения и уменьшения.

В примере, если angularAbove равно 2, тогда angularAbove-1 будет 66 (случай увеличения), или если angularAbove равен 66, тогда angularAbove + 1 будет 2 (случай уменьшения).

В другом примере, если angularAbove равно 2, то angularAbove-1 будет 65 (случай увеличения) или, если angularAbove равен 66, то angulaAbove + 1 будет 3. Это увеличение может быть выбрано, поскольку режимы 2 и 66 указывают (анти) параллельные направления. В этом случае ближайшие два угловых режима angularAbove могут быть рассчитаны как

angularAbove-1 = 2 + ((angularAbove + 61)% 64); и

angularAbove + 1 = 2 + ((angularAbove -1)% 64).

Эти правила расчета соответствуют добавлению смещения -1 или +1, соответственно, с увеличением и режимами 0 и 1, не являющимися режимами углового предсказания. % отображает операцию по модулю.

(k) Если режим предсказания angularAbove-1 не был вставлен в MPM список, вставить его (angularAbove-1) в MPM список.

(l) Если MPM список не полон (например, количество режимов предсказания в MPM списке меньше 6) и, если режим предсказания angularAbove + 1 не был вставлен в MPM список, вставить его (angularAbove + 1) в MPM список.

(m) Если MPM список не заполнен, вставить следующие режимы в MPM список, пока он не будет заполнен (например, количество режимов предсказания в MPM списке равно 6):

• вертикальный режим (VER_IDX),

• горизонтальный режим (HOR_IDX),

• внутренний режим 2 (2),

• режим вертикальной диагонали (VDIA_IDX) или режим диагонали (DIA_IDX);

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

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

Ниже приводится краткое описание вариантов предоставленного способа:

Доступность левого блока должна учитывать как поддержку, так и не поддержку параллельной обработки.

Доступность верхнего блока должна учитывать как поддержку, так и не поддержку параллельной обработки.

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

Последним кандидатом в MPM списке может быть VIDA_IDX или DIA_IDX, как, например, проиллюстрировано на фиг. 6.

Порядок вставки также может быть левым, верхним, планарным, DC и режимами по умолчанию (VER_IDX, HOR_IDX, 2, VDIA_IDX или DIA_IDX).

Для сигнализации mpm_idx используется усеченная унарная бинаризация. Первым трем бинам mpm_idx разрешено использовать три разных независимых контекста, или все бины mpm_idx закодированы проходом CABAC.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В примере, где смещение равно -1.

В примере, где смещение равно +1.

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

В примере, где смещение равно -1.

В примере, где смещение равно +1.

В примере способ дополнительно содержит: добавление вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) или диагонального режима (DIA_IDX) в MPM список.

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

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

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

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

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

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

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

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

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

В одной форме реализации настоящего приложения количество множества режимов внутреннего предсказания для блока изображения составляет 67, множество режимов внутреннего предсказания из 67 режимов внутреннего предсказания, содержащих: планарный режим (значение 0), DC режим (значение 1 ) и угловые режимы со значениями от 2 до 66. Количество множества режимов внутреннего предсказания для блока изображения может быть другими значениями, такими как 35, 48, 71 и так далее.

В примере количество набора MPMs равно 6, количество набора не-MPM равно 61, количество первого набора режимов внутреннего предсказания равно 3 и количество второго набора режимов внутреннего предсказания равно 58.

В другом примере количество набора MPMs равно 3, количество набора не-MPM равно 64, количество первого набора режимов внутреннего предсказания равно 3 или 6 и количество второго набора режимов внутреннего предсказания равно - 61 или 58.

В примере N = 5, M = 6; в другом примере N = 2, M = 6.

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

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

В одной форме реализации настоящего приложения указание, указывающая режим внутреннего предсказания для блока изображения, находится в наборе MPMs или нет, является флагом, когда значение флага равно 1, может указывать, что режим внутреннего предсказания для блока изображения находится в наборе MPMs, когда значение флага равно 0, может указывать на то, что режим внутреннего предсказания для блока изображения не входит в набор MPMs. Например, на стороне кодера, если MPM список представляет собой набор внутренних режимов, скажем: [20,40, 60] и текущее значение внутреннего режима блоков равно 40, тогда указание флага MPM устанавливается на 1 как внутренний режим для текущего блока находится во второй записи MPM списка. Если, например, текущий внутренний режим блоков равен 41 вместо 40, тогда указание флага MPM устанавливается на 0, флаг MPM отправляется на сторону декодирования в закодированных данных.

В одном примере, если указание, указывающая режим внутреннего предсказания для блока изображения, находится в наборе MPMs. Процесс получения режима внутреннего предсказания для блока (IntraPredModeY [xPb] [yPb]) изображения определяется следующим образом:

Если intra_luma_mpm_flag [xPb] [yPb] равно 1 (что указывает на то, что режим внутреннего предсказания для блока изображения находится в наборе MPMs), IntraPredModeY [xPb] [yPb] устанавливается равным candModeList [intra_luma_mpm_idx [xPb] [ yPb]], где (xPb, yPb) указывает верхнюю левую выборку текущего блока предсказания яркости относительно верхней левой выборки яркости текущего изображения, и candModeList является фактическим MPM списком, декодирующий закодированные данные для получения MPM индекса, получение режима внутреннего предсказания блока изображения согласно MPM индексу и MPM списку.

В конкретном примере набор MPMs равен (15, 0, 20), значение MPM индекса равно 2, поэтому режим внутреннего предсказания блока изображения является планарным режимом (значение 0). В другом конкретном примере набор MPMs равен (15, 36, 0, 1, 21, 19), значение MPM индекса равно 5, поэтому режим внутреннего предсказания блока изображения представляет собой угловой режим 21.

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

В примере режимы предсказания в первом наборе режимов внутреннего предсказания являются (17, 25, 6) и отображенные режимы предсказания в наборе не-MPM являются (2, 3, 4), 172, 253, 64.

В другом примере режимы предсказания в первом наборе режимов внутреннего предсказания являются (2, 16, 28) и отображенные режимы предсказания в наборе не-MPM являются (2, 3, 4), 22, 163, 284.

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

В одной форме реализации настоящего изобретения, в котором отношение отображения генерируется согласно набору MPMs.

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

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

В примере, 5 категорий режима углового внутреннего предсказания, а именно, DC режим (DC_IDX), вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (2), вертикальный диагональный режим (VDIA_IDX) и диагональный режим DIA_IDX, в котором режим углового внутреннего предсказания списка наиболее вероятных режимов, попадающих в каждую категорию режима углового внутреннего предсказания, например, соответствует ассоциированию каждого из режимов углового внутреннего предсказания списка наиболее вероятных режимов с категорией режима углового внутреннего предсказания, наиболее близкой к соответствующему угловому режиму внутреннего предсказания списка наиболее вероятных режимов. В другом примере повторение этого этапа со второй по рангу категории режима углового внутреннего предсказания.

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

В одной форме реализации настоящего изобретения, в которой исходный набор режимов внутреннего предсказания генерируется согласно добавлению смещения -1, + 1, +2, -2, +3, -3, +4 или -4 к множеству значений, соответствующих набору MPMs.

В одной форме реализации настоящего изобретения, в котором отношение отображения генерируется согласно заранее определенному списку режимов по умолчанию, содержащему или состоящему из планарного режима (PLANAR_IDX), DC режима (DC_IDX), вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) и диагонального режима (DIA_IDX).

На фиг. 6 показан пример 67 режимов внутреннего предсказания, например, как предложено для VVC, множество режимов внутреннего предсказания из 67 режимов внутреннего предсказания, содержащих: планарный режим (индекс 0), DC режим (индекс 1) и угловые режимы с индексами 2-66, в котором левый нижний угловой режим на фиг. 6 относится к индексу 2, и нумерация индексов увеличивается до тех пор, пока индекс 66 не станет самым верхним правым угловым режимом на фиг. 6.

В примере предлагается схема сигнализации внутренних режимов с 6 MPMs и оставшимся 61 режимами, в которой оставшиеся 61 режимы кодируется с использованием схемы усеченной бинаризации. Остающиеся 61 внутренние режимы также могут быть закодированы с использованием кода фиксированной длины из 6 бит, но недостатком кода фиксированной длины из 6 битов является то, что из 64 возможных кодовых слов используется только 61 кодовое слово, и оставшиеся 3 кодовых слова не используются. Вместо кода фиксированной длины предлагается усеченная бинаризация, которая будет использовать только 5 битов для сигнализации первых 3 оставшихся режимов и остальные 58 режимов затем кодируются с использованием 6 бит.

Усеченная бинаризация всегда позволяет передавать меньшие кодовые слова с использованием меньшего количества битов по сравнению с более крупными кодовыми словами. Например, как показано на фиг. 6, горизонтальные режимы, начинающиеся с «внутренних режимов 2, 3, 4…», чаще всего передаются с использованием 5 битов. Следовательно, для эффективной сигнализации оставшихся режимов (режимы не-MPM) первые несколько кодовых слов не-MPM отображаются на полученные режимы, которые более вероятны. Например, размер MPM списка равен 6, и внутренние режимы, которые включены в MPM список, равны [18, 30, 0, 1, 66, 24], затем первые три режима в режимах не-MPM, для которых требуется только 5 бит для сигнализации, представляют собой режимы [2,3,4]. Скажем, режимы [2, 3, 4] названы «внутренними режимами кодового слова». Поскольку режимы 2, 3, 4 не всегда могут быть режимами с высокой вероятностью, эти режимы отображаются на представления трех других внутренних режимов, которые более вероятны. Например, скажем, после 6 наиболее вероятных режимов в MPMs, три других режима, которые более вероятны, имеют номера режимов [19, 17, 21]. Допустим, режимы [19, 17, 21] названы «полученными режимами не-MPM». Тогда простой способ убедиться, что режимы 19, 17, 21 используют только 5 бит, представляет собой отображение внутренних режимов [2, 3, 4] с внутренними режимами [19, 17, 21]. По сути, кодер выполняет отображение и сигнализирует о внутренних режимах 19 с внутренним режимом 2, и затем декодер выполняет обратное отображение и отображает внутренний режим 2 с внутренним режимом 19. Более того, это простое отображение сокращает количество операций отсечения для сигнализации не-MPM режимов по сравнению с сигнализацией режимов не-MPM с использованием списка и указанием индекса в списке. В особом случае, если «полученные не-MPM режимы» и «внутренние режимы кодового слова» с наименьшим кодовым словом имеют перекрытие, то гарантируется, что общий внутренний режим для обоих списков отображается вместе. Например, если «внутренние режимы кодового слова» являются [2, 3, 4] и список «полученных не-MPM режимов» является [2, 4, 17], то внутренний режим 2 отображается на внутренний режим 2, режим 3 отображается на режим 17 и режим 4 отображается на режим 4.

Предложено несколько решений для заполнения первых трех режимов списка оставшихся режимов.

Первые три режима в оставшемся списке режимов можно заполнить несколькими способами.

Во-первых, используя режимы из заранее определенного списка режимов по умолчанию, который включает в себя {планарный режим (PLANAR_IDX), DC режим (DC_IDX), вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (2), режим вертикальной диагонали (VDIA_IDX), диагональный режим (DIA_IDX)} (термины в скобках показывают соответствующие термины на фиг. 6, более подробная информация о фиг. 6 приведена ниже);

Во-вторых, с помощью смещения угловых режимов, которые уже присутствуют в MPM списке. Здесь смещение может быть +/- N, где N является возможное целочисленное значение, значение которого равно {1, 2, 3, 4}. Смещения можно было добавить только к первым двум угловым режимам из MPM списка.

В-третьих, внутренние режимы несмежных соседей также могут использоваться для заполнения трех режимов. Как показано на фиг. 7, могут использоваться внутренние режимы соседей второго уровня.

В-четвертых, как показано на фиг. 6, на первом этапе выбирается данный режим из MPM списка и проверяется, находится ли он «рядом» с одной из следующих категорий режимов {DC_IDX, HOR_IDX, DIA_IDX, VER_IDX, VDIA_IDX}, на втором этапе категории режимов затем «сортируются» на основе «большинства» режимов, которые им близки. На третьем этапе генерируется список оставшихся режимов путем вставки режимов, которые находятся рядом с категорией выигрышных режимов из этапа 2.

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

В одной из форм реализации настоящего изобретения сторона декодера сначала получает набор MPM для текущего блока, процесс генерирования может ссылаться на соответствующую часть в ITU H.264, ITU H.265 или приведенное выше описание построения candModeList. После получения набора MPM сторона декодера выбирает наименьшее значение режима предсказания в наборе не-MPM как одно значение в первом наборе значений.

В примере, первый набор значений содержит три наименьших значения в наборе не-MPM, если значения режимов предсказания в наборе MPM равны (0, 1, 3, 5, 8, 10), то первый набор значений равен (2, 4, 6).

В другом примере первый набор значений содержит два наименьших значения в наборе не-MPM, если значения режимов предсказания в наборе MPM равны (0, 1, 3, 5, 8, 10), то первый набор значений равен (2, 4).

В одном примере смещение -1, +1, +2, -2, +3, -3, +4 или -4 добавляется к множеству значений, соответствующих набору MPMs.

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

В примере смещение -1, +1, +2, -2, +3, -3, +4 или -4 добавляется, по меньшей мере, к одному значению, соответствующему, по меньшей мере, одному режиму углового предсказания в наборе MPMs.

В другом примере смещение -1, +1, +2, -2, +3, -3, +4 или -4 добавляется к значениям, соответствующим двум режимам углового предсказания в наборе MPMs.

В одной форме реализации настоящего изобретения количество режимов предсказания во множестве режимов внутреннего предсказания для блока изображения равно 67, количество режимов предсказания в наборе MPMs равно 6, количество режимов предсказания в первом наборе режимов внутреннего предсказания в наборе не-MPM равно 3, и количество режимов предсказания во втором наборе режимов внутреннего предсказания в наборе не-MPM равно 58, в котором генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, в одном режиме внутреннего предсказания в наборе не-MPM, содержащий: получение трех наименьших значений трех режимов предсказания в наборе не-MPM согласно значениям режимов предсказания в наборе МРМs; получение двух значений двух режимов углового предсказания в наборе MPMs, добавление смещения к двум значениям для получения значений смещения; получение второго набора значений согласно значениям режимов предсказания в наборе MPMs и значениям смещения; генерирование отношения отображения согласно первому набору значений и второму набору значений.

В одной форме реализации настоящего изобретения, в котором генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM, содержащий: набор значений в соответствии со значениями режимов предсказания в наборе MPMs, одно значение в первом наборе значений является наименьшим значением режима предсказания в наборе не-MPM; генерирование второго набора значений в соответствии с предварительно определенным списком режимов по умолчанию, содержащим или состоящий из вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) и диагонального режима (DIA_IDX); генерирование отношения отображения согласно первому набору значений и второму набору значений.

В примере смещение -1, +1, +2, -2, +3, -3, +4 или -4 добавляется, по меньшей мере, к одному значению, соответствующему, по меньшей мере, одному режиму предсказания в заранее определенном списке режимов по умолчанию.

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

В одном примере смещение -1, +1, +2, -2, +3, -3, +4 или -4 добавляется к двум значениям, соответствующим двум режимам углового предсказания в заранее определенном списке режимов по умолчанию.

В одной форме реализации настоящего изобретения, в котором генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM, содержащий: набор значений в соответствии со значениями режимов предсказания в наборе MPMs, одно значение в первом наборе значений является наименьшим значением режима предсказания в наборе не-MPM; генерирование второго набора значений в соответствии с заранее определенным списком режимов по умолчанию, содержащим или состоящий из планарного режима (PLANAR_IDX), DC режима (DC_IDX), вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикально-диагонального режима (VDIA_IDX) и диагонального режима (DIA_IDX); генерирование отношения отображения согласно первому набору значений и второму набору значений.

В одной форме реализации настоящего изобретения, в которой кодовое слово режима внутреннего предсказания кодируется с использованием 5 битов, и кодовое слово режима внутреннего предсказания является одним из 00000, 00001 или 00010.

В примере сторона декодирования декодирует кодовое слово для получения исходного значения, например, если кодовое слово равно 00001, тогда исходное значение равно 1.

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

Например, скорректировать значения, соответствующие набору MPMs в порядке возрастания, скорректированные значения, соответствующие набору MPMs, будут равны (0, 1, 4, 6, 8, 10); кодовое слово является 00001, на первом этапе, поскольку 1 больше первого значения, соответствующего набору MPMs, это исходное значение 1 увеличивается на единицу и значение поправки равно 2; на втором этапе, поскольку 2 больше, чем во втором значении, соответствующем набору MPMs, другое значение поправки 3 получается согласно приращению от одного до 2; и поскольку 3 меньше третьего значения, соответствующего набору MPMs, получается окончательное значение 3. И, если конечное значение 3 отсутствует в наборе отображения, конечное значение 3 является значением, соответствующим режиму внутреннего предсказания блока изображения, поэтому режим внутреннего предсказания блока изображения представляет собой угловой режим 3.

Если конечное значение 3 находится в наборе отображения, отображаемое значение (например, 17) является значением, соответствующим режиму внутреннего предсказания блока изображения, поэтому режим внутреннего предсказания блока изображения является угловым режимом 17. В некоторых примерах, отображаемое значение может быть таким же, как конечное значение, например, если конечное значение 3 находится в наборе отображения, то отображаемое значение также присутствует, поэтому режим внутреннего предсказания блока изображения является угловым режимом 3.

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

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

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

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

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

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

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

Кодирование режима внутреннего предсказания блока изображения для получения кодового слова режима внутреннего предсказания согласно отношению отображения.

В одной форме реализации настоящего изобретения процесс получения режима внутреннего предсказания блока изображения может относиться к относительному изобретению в приведенном ниже подробном описании части вариантов осуществления или к относительному изобретению в области технологии кодирования видео, такой как в ITU-T H.264, ITU-T H.265.

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

Процесс генерирования набора MPM может относиться к относительному изобретению в части описания или относительному изобретению в области технологии кодирования видео, например, в ITU-T H.264, ITU-T H.265.

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

В одной из форм реализации настоящего изобретения первый набор режимов внутреннего предсказания кодируется с использованием 5 битов и второй набор режимов внутреннего предсказания кодируется с использованием 6 битов.

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

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

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

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

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

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

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

Декодирование закодированных данных для получения режима внутреннего предсказания из множества режимов внутреннего предсказания для блока изображения (S801), содержащее:

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

S803: генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM;

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

S805: получение режима внутреннего предсказания для блока изображения в соответствии с соотношением отображения и кодовым словом режима внутреннего предсказания.

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

В одной из форм реализации настоящего изобретения, согласно фиг. 9, настоящее изобретение раскрывает способ декодирования видео, содержащий:

S901: принять закодированные данные блока изображения;

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

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

Указание, указывающее, находится ли режим внутреннего предсказания для блока изображения в наборе MPMs или нет, может быть флагом. Когда значение флага равно 1, может указывать, что режим внутреннего предсказания для блока изображения находится в наборе MPMs, когда значение флага равно 0, может указывать, что режим внутреннего предсказания для блока изображения не находится в набор МРМs. Например, на стороне кодера, если MPM список (набор MPMs) является набором внутренних режимов [25, 42, 63] и текущее значение внутреннего режима блоков равно 42, то указание флага MPM устанавливается на 1 поскольку внутренний режим для текущего блока находится во второй записи списка MPM. Если, например, внутренний режим текущего блока равен 41 вместо 42, тогда указание флага MPM устанавливается на 0, флаг MPM отправляется на сторону декодера в закодированных данных.

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

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

S903: декодировать закодированные данные для получения режима внутреннего предсказания для блока изображения согласно набору MPMs;

В одном примере, если указание, указывающее режим внутреннего предсказания для блока изображения, находится в наборе MPMs. Процесс вывода для режима внутреннего предсказания для блока (IntraPredModeY [xPb] [yPb]) изображения определяется следующим образом:

Если intra_luma_mpm_flag [xPb] [yPb] равно 1 (что указывает, что режим внутреннего предсказания для блока изображения находится в наборе MPMs), IntraPredModeY [xPb] [yPb] устанавливается равным candModeList [intra_luma_mpm_idx [xPb] [yPb]], где (xPb, yPb) указывает верхнюю левую выборку текущего блока предсказания яркости относительно верхней левой выборки яркости текущего изображения, и candModeList является фактическим MPM списком, декодировать кодированные данные для получения MPM индекса, получить режим внутреннего предсказания блока изображения согласно MPM индексу и MPM списку.

В конкретном примере набор MPMs равен (15, 0, 20), значение MPM индекса равно 2, поэтому режим внутреннего предсказания блока изображения является планарным режимом (значение 0). В другом конкретном примере набор MPMs равен (15, 36, 0, 1, 21, 19), значение MPM индекса равно 5, поэтому режим внутреннего предсказания блока изображения является угловым режимом 21. MPM индекс указывает позицию режима внутреннего предсказания для блока изображения в наборе MPMs.

S904: генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM;

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

Например, первый список кодовых слов составляется следующим образом:

1. Найти наименьший режим в MPM списке, предположим, что наименьший режим является Ms.

2. Установить переменную исходного приращения Inc = 1.

3. Установить кандидата режима Mc как (Ms + Inc), проверить, есть ли режим Mc также в MPM списке.

если Mc отсутствует в MPM списке, добавить Mc в список кодовых слов

в противном случае, перейдите к этапу 4.

4. Проверить, заполнены ли вставленные записи в списке кодовых слов (длина вставки равна длине списка кодовых слов):

Если заполнено, завершить выполнение операции;

В противном случае, установить Inc = Inc + 1 и перейдите к этапу 3.

Подводя итог, список кодовых слов будет содержать наименьшие режимы, кроме тех, которые присутствовали в MPM списке. Учитывая, что длина MPM списка равна L, длина списка кодовых слов составляет 64-(67-L) = L-3. Например, если MPM список равен (15, 36, 0, 1, 21, 19), то сформированное кодовое слово представляет собой (2, 3, 4).

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

1. Найти первые две угловые режима в MPM списке, предполагая, что найдены angular0 и angular1.

2. Установить переменную исходного приращения Inc = 1.

3. Получить новый режим M0minus = angular0 - Inc. Примечание M0minus должен быть гарантирован также угловой режим (т.е. 66> = M0minus> = 2). Следовательно, если angular0 равен 2, Inc равен 1; тогда полученное M0minus будет равно 66; если Inc равно 2, тогда M0minus равно 65 и т. д. Операция «минус» завершится до максимального углового режима.

4. Проверить, есть ли M0minus в MPM списке, если нет и, если список полученных режимов не полон, вставить M0minus в список полученных режимов. Иначе,

Если список полученных режимов полон, прекратить.

В противном случае переходить к этапу 5.

5. Получить новый режим M0plus = angular0 + Inc. Обратите внимание, что M0plus также должен быть гарантирован угловой режим (т.е. 66> = M0plus> = 2). Следовательно, если angular0 равно 66, Inc равно 1, то полученное значение M0plus будет равно 2, если Inc равно 2, то M0plus будет равно 3 и т.д. Операция «плюс» завершится до минимального углового режима.

6. Проверить, есть ли M0plus в MPM списке, если нет и, если список полученных режимов не полон, вставить M0plus в список полученных режимов. Иначе,

Если список полученных режимов полон, прекратить.

В противном случае, перейти к этапу 7.

7. Повторить этапы 3-6, заменив angular0 на angular1.

8. Установить Inc = Inc + 1 и повторить этапы 3-7.

Подводя итог, список полученных режимов получает соседние режимы первых двух угловых режимов в MPM списке. Если эти соседние режимы уже включены в MPM список, то они исключаются из списка полученных режимов. Учитывая, что длина MPM списка равна L, длина списка полученных режимов составляет 64- (67-L) = L-3. Например, если MPM список равен (15, 36, 0, 1, 21, 19), то составленный список полученных режимов является (14, 16, 35).

Когда составлены список кодовых слов и список полученных режимов, между ними генерируется отношение двунаправленного отображения. А именно, учитывая приведенные выше примеры списков со списком кодовых слов (2, 3, 4) и списком полученных режимов (14, 16, 35), двунаправленное отображение представляет собой 214, 316 и 335, где представляет собой двунаправленное отображение.

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

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

В примере представлены 5 категорий режимов углового внутреннего предсказания, а именно, вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (2), вертикальный диагональный режим (VDIA_IDX) и диагональный режим DIA_IDX. Режим углового внутреннего предсказания списка наиболее вероятных режимов, попадающих в каждую категорию режима углового внутреннего предсказания, например, соответствует ассоциации каждого из режимов углового внутреннего предсказания из списка наиболее вероятных режимов с категорией режима углового внутреннего предсказания, наиболее близкой к соответствующему угловому режиму внутреннего предсказания списка наиболее вероятных режимов. В другом примере повторение этого этапа со второй по рангу категорией режима углового внутреннего предсказания.

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

В примере исходный набор режимов внутреннего предсказания генерируется согласно добавлению смещения -1, + 1, +2, -2, +3, -3, +4 или -4 к множеству значений, соответствующих набору МРМs.

В примере отношение отображения генерируется согласно заранее определенному списку режимов по умолчанию, содержащему или состоящему из планарного режима (PLANAR_IDX), DC режима (DC_IDX), вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режим 2 (2), вертикального диагонального режима (VDIA_IDX) и режим диагонали (DIA_IDX).

S905: декодировать кодированные данные для получения кодового слова режима внутреннего предсказания для блока изображения;

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

S906: получить режим внутреннего предсказания для блока изображения в соответствии с отношением отображения и кодовым словом режима внутреннего предсказания.

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

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

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

Если проанализированный режим внутреннего предсказания присутствует как в списке кодовых слов, так и в списке полученных режимов, в операцию построения этих двух списков вводится механизм, так что отношение двунаправленного отображения корректируется, и все перекрывающиеся режимы отображаются на себя в другом списке. Пример: MPM список (0 1 2 3 50 66), список кодовых слов является (4 5 6), список полученных режимов (4 65 5). При построении списка полученных режимов или списка кодовых слов мы проверяем 44, 55 и 665.

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

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

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

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

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

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

и, если кодовое слово режима внутреннего предсказания для блока изображения закодировано с использованием M битов, использование исходного режима внутреннего предсказания в качестве идентифицированного режима внутреннего предсказания для блока изображения.

В одной форме реализации настоящего изобретения количество множества режимов внутреннего предсказания для блока изображения составляет 67, множество режимов внутреннего предсказания из 67 режимов внутреннего предсказания, содержащих: планарный режим (значение 0), DC режим (значение 1) и угловые режимы с индексами от 2 до 66.

В примере количество набора MPMs равно 6, количество первого набора режимов внутреннего предсказания равно 3 и количество второго набора режимов внутреннего предсказания равно 58.

В другом примере количество набора MPM равно 3, количество первого набора режимов внутреннего предсказания равно 3 или 6, и количество второго набора режимов внутреннего предсказания равно 61 или 58.

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

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

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

В примере указание, указывающее, что режим внутреннего предсказания для блока изображения находится в наборе MPMs или не является флагом, когда значение флага равно 1, может указывать, что режим внутреннего предсказания для блока изображения находится в наборе MPMs, когда значение флага равно 0, может указывать, что режим внутреннего предсказания для блока изображения не входит в набор MPMs. Например, на стороне кодера, если MPM список представляет собой набор внутренних режимов, скажем: [20,40, 60] и текущее значение внутреннего режима блоков равно 40, тогда указание флага MPM устанавливается на 1, внутренний режим для текущего блока находится во второй записи MPM списка. Если, например, текущий внутренний режим блоков равен 41 вместо 40, тогда указание флага MPM устанавливается на 0.

В одном примере, если указание, указывающее режим внутреннего предсказания для блока изображения, находится в наборе MPMs. Процесс получения определяется следующим образом: IntraPredModeY [xPb] [yPb] получается путем применения следующей процедуры: если intra_luma_mpm_flag [xPb] [yPb] равно 1, IntraPredModeY [xPb] [yPb] устанавливается равным candModeList [ intra_luma_mpm_idx [xPb] [yPb]], где (xPb, yPb) указывает верхнюю левую выборку текущего блока предсказания яркости относительно верхней левой выборки яркости текущего изображения, и candModeList является фактическим MPM списком. Например, декодирование закодированных данных для получения MPM индекса, получение режима внутреннего предсказания блока изображения согласно MPM индексу и MPM набору. В конкретном примере набор MPMs равен (15, 0, 20), значение MPM индекса равно 2, поэтому режим внутреннего предсказания блока изображения является планарным режимом (значение 0). В другом конкретном примере набор MPMs равен (15, 36, 0, 1, 21, 19), значение MPM индекса равно 5, поэтому режим внутреннего предсказания блока изображения является угловым режимом 21.

В одном примере кодовое слово режима внутреннего предсказания для блока изображения соответственно декодирует кодированные данные. Если кодовое слово режима внутреннего предсказания для блока изображения кодируется с использованием M битов, с использованием исходного режима внутреннего предсказания в качестве идентифицированного режима внутреннего предсказания для блока изображения. Например, M равно 6, если кодовое слово режима внутреннего предсказания закодировано как 010011 (например, 6 битов), что соответствует угловому режиму 19, следовательно, идентифицированный режим внутреннего предсказания для блока изображения является угловым режимом 19.

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

Первый список кодовых слов составлен следующим образом:

1. Найти наименьший режим в MPM списке, предположим, что наименьший режим является Ms

2. Установить переменную исходного приращения Inc = 1.

3. Установить кандидат режима Ms как (Ms + Inc), проверить, есть ли режим Ms также в MPM списке.

если Ms отсутствует в MPM списке, добавить Ms в список кодовых слов;

в противном случае перейти к этапу 4.

4. Проверить, заполнены ли вставленные записи в списке кодовых слов (длина вставки равна длине списка кодовых слов):

Если заполнено, прекратить;

В противном случае установить Inc = Inc + 1 и перейти к этапу 3.

Подводя итог, список кодовых слов будет содержать самые маленькие режимы, кроме тех, которые присутствовали в MPM списке. Учитывая, что длина MPM списка равна L, длина списка кодовых слов составляет 64-(67-L) = L-3. Например, если MPM список равен (15, 36, 0, 1, 21, 19), то построенное кодовое слово будет равно (2, 3, 4).

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

1. Найти первые два угловых режима в MPM списке, предполагая, что найдены angular0 и angular1.

2. Установить переменную исходного приращения Inc = 1

3. Получить новый режим M0minus = angular0 - Inc. Примечание M0minus должен быть гарантирован также угловой режим (т.е. 66> = M0minus> = 2). Следовательно, если M0minus равно 2, Inc равно 1; тогда полученный M0minus будет 66; если Inc равно 2, тогда M0minus будет 65 и т.д. Операция «минус» завершится до максимального углового режима.

4. Проверить, есть ли M0minus в MPM списке, если нет и, если список полученных режимов не полон, вставить M0minus в список полученных режимов. Иначе,

Если список полученных режимов полон, прекратить.

В противном случае перейти к этапу 5.

5. Получить новый режим M0plus = angular0 + Inc. Примечание. M0minus также должен быть гарантирован угловой режим (т.е. 66> = M0minus> = 2). Следовательно, если angular0 равно 66, Inc равно 1, то полученное значение M0minus будет равно 2, если Inc равно 2, то M0minus будет равно 3 и т.д. Операция «плюс» завершится до минимального углового режима.

6. Проверить, есть ли M0minus в MPM списке, если нет и, если список полученных режимов не полон, вставить M0minus в список полученных режимов. Иначе,

Если список полученных режимов полон, прекратить.

В противном случае перейти к этапу 7;

7. Повторить этапы 3-6, заменив angular0 на angular1;

8. Установить Inc = Inc + 1 и повторить этапы 3-7.

Подводя итог, список полученных режимов получает соседние режимы первых двух угловых режимов в MPM списке. Если эти соседние режимы уже включены в MPM список, то они исключаются из списка полученных режимов. Учитывая, что длина MPM списка равна L, длина списка полученных режимов составляет 64-(67-L) = L-3. Например, если MPM список равен (15, 36, 0, 1, 21, 19), то построенный список полученных режимов будет (14, 16, 35).

Когда составлены список кодовых слов и список полученных режимов, между ними строятся отношения двунаправленного отображения. А именно, учитывая приведенные выше примеры списков со списком кодовых слов (2, 3, 4) и списком полученных режимов (14, 16, 35), 214, 316 и 335, где представляет двунаправленный отображение.

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

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

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

Если проанализированный режим внутреннего предсказания присутствует как в списке кодовых слов, так и в списке полученных режимов, в построение этих двух списков вводится механизм, так что отношение двунаправленного отображения корректируется, и все перекрывающиеся режимы отображаются на себя в другом списке. Пример: MPM список равен (0 1 2 3 50 66), список кодовых слов равен (4 5 6), список полученных режимов является (4 65 5). При построении списка полученных режимов или списка кодовых слов убедиться, что 44, 55 и 665.

В одной форме реализации настоящего изобретения кодовое слово режима внутреннего предсказания для блока изображения предоставляется в соответствии с декодированием кодированных данных. Если кодовое слово режима внутреннего предсказания для блока изображения кодируется с использованием N битов, отображение исходного режима внутреннего предсказания для получения отображенного режима внутреннего предсказания с использованием отображенного режима внутреннего предсказания в качестве идентифицированного режима внутреннего предсказания для блока изображения. Например, N равно 5, если кодовое слово режима внутреннего предсказания закодировано как 00011 (например, 5 битов), что соответствует угловому режиму 3, в этом примере исходным режимом внутреннего предсказания является угловой режим 3, отображенный режим внутреннего предсказания может быть DC режимом (предварительно определенное значение 1) или угловым режимом 47; в другом примере, отображенный режим внутреннего предсказания может быть таким же, как режим исходного предсказания, например, отображенный режим внутреннего предсказания также является угловым режимом 3.

В примере представлена схема сигнализации внутреннего режима с 6 MPM и оставшимся 61 режимом, в которой оставшийся 61 режим кодируется с использованием схемы усеченной бинаризации. Остающийся 61 внутренний режим также может быть закодирован с использованием кода фиксированной длины из 6 бит, но недостатком кода фиксированной длины из 6 битов является то, что из 64 возможных кодовых слов используется только 61 кодовое слово, и оставшиеся 3 кодовых слова не используются. Вместо кода фиксированной длины предлагается усеченная бинаризация, которая будет использовать только 5 битов для сигнализации первых 3 оставшихся режимов, и остальные 58 режимов затем кодируются с использованием 6 бит.

Усеченная бинаризация позволяет передавать меньшие кодовые слова с использованием меньшего количества битов по сравнению с более крупными кодовыми словами. Например, как показано на фиг. 4, горизонтальные режимы, начинающиеся с «внутренних режимов 2, 3, 4…», чаще всего передаются с использованием 5 битов. Следовательно, для эффективной сигнализации оставшихся режимов (режимы не-MPM) первые несколько кодовых слов не-MPM отображаются на полученные режимы, которые более вероятны. Например, размер MPM списка равен 6 и внутренние режимы, которые находятся в MPM списке, равны [18, 30, 0, 1, 66, 24], затем первые три режима в режимах не-MPM, для которых требуется только 5 биты для сигнализации, являются режимами [2,3,4]. Режимы [2, 3, 4] называются «внутренними режимами кодового слова». Поскольку режимы 2, 3, 4 не всегда может быть режимами с высокой вероятностью, эти режимы отображаются для представления трех других внутренних режимов, которые более вероятны. Например, после 6 наиболее вероятных режимов в MPM три других режима, которые являются более вероятными, имеют номера режимов [19, 17, 21]. Режимы [19, 17, 21] называются «полученными режимами не-MPM». Тогда простой способ убедиться, что режимы 19, 17, 21 потребляют только 5 бит, заключается в отображении внутренних режимов [2, 3, 4] с внутренними режимами [19, 17, 21]. По сути, кодер выполняет отображение и сигнализирует о режимах 19 с внутренним режимом и режимом 2 с внутренним кодом, и затем декодер выполняет обратное отображение и отображает режим 2 с внутренним режимом 19. Более того, это простое отображение сокращает количество операций сокращения для сигнализации о режимах не-MPM по сравнению с сигнализацией не-MPM режимов с использованием списка и указанием индекса в списке. В особом случае, если «полученные режимы не-MPM» и «внутренние режимы кодового слова» с наименьшим кодовым словом имеют перекрытие, то гарантируется, что общий внутренний режим для обоих списков отображается вместе. Например, если «внутренние режимы кодового слова» являются [2, 3, 4] и список «полученных режимов не-MPM» является [2, 4, 17], то внутренний режим 2 отображается на внутренний режим 2, режим 3 отображается на режим 17 и режим 4 отображается на режим 4.

В другом примере предлагается несколько решений для заполнения первых трех режимов списка оставшихся режимов.

Во-первых, используя режимы из заранее определенного списка режимов по умолчанию, который включает в себя {планарный режим (PLANAR_IDX), DC режим (DC_IDX), вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (2), режим вертикальной диагонали ( VDIA_IDX), диагональный режим (DIA_IDX)} (термины в скобках показывают соответствующие термины на фиг. 6, более подробная информация о фиг. 6 приведена ниже);

Во-вторых, с помощью смещения угловых режимов, которые уже присутствуют в MPM списке. Здесь смещение может быть +/- N, где N является возможным целочисленным значением, значение которого равно {1, 2, 3, 4}. Смещения могут быть добавлены только к первым двум угловым режимам из MPM списка.

В-третьих, внутренние режимы несмежных соседей также могут использоваться для заполнения трех режимов. Как показано на фиг. 7, могут использоваться внутренние режимы соседей второго уровня.

В-четвертых, как показано на фиг. 6, на первом этапе выбирается данный режим из MPM списка и проверяется, находится ли он «рядом» с одной из следующих категорий режимов {DC_IDX, HOR_IDX, DIA_IDX, VER_IDX, VDIA_IDX}. На втором этапе категории режимов затем «сортируются» на основе «большинства» режимов, которые ему близки. На третьем этапе формируется список оставшихся режимов путем вставки режимов, которые находятся рядом с категорией выигрышных режимов из этапа 2.

На фиг. 6 показан пример 67 режимов внутреннего предсказания, например, как предложено для VVC, множество режимов внутреннего предсказания из 67 режимов внутреннего предсказания, содержащих: планарный режим (индекс 0), DC режим (индекс 1) и угловые режимы с индексами с 2 по 66, в котором левый нижний угловой режим на фиг. 6 относится к индексу 2, и нумерация индексов увеличивается до тех пор, пока индекс 66 не станет самым верхним правым угловым режимом на фиг. 6.

Далее приведено описание сетевого устройства, подходящее для реализации раскрытых вариантов осуществления, как описано здесь. Сетевое устройство содержит входные порты и блоки (Rx) приемника для приема данных; процессор, логический блок или центральный процессор (CPU) для обработки данных; блоки 1340 передатчика (Tx) и выходные порты для передачи данных; и память для хранения данных. Сетевое устройство может также содержать оптико-электрические (OE) компоненты и электрические-оптические (EO) компоненты, подключенные к входным портам, блокам приемника, блокам передатчика и выходным портам для выхода или входа оптических или электрических сигналов.

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

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

Фиг. 10 является блок-схемой устройства 1500, которое можно использовать для реализации различных вариантов осуществления. Устройство 1500 может быть устройством 12 источника, как показано на фиг. 1, или видеокодер 20, как показано на фиг. 2, или устройство 14 назначение, как показано на фиг. 1, или видеодекодер 30, как показано на фиг. 3. Кроме того, устройство 1500 может содержать один или несколько описанных элементов. В некоторых вариантах осуществления устройство 1500 оснащено одним или несколькими устройствами ввода/вывода, такими как динамик, микрофон, мышь, сенсорный экран, клавиатура, клавиатура, принтер, дисплей и т.п. Устройство 1500 может включать в себя один или несколько центральных процессоров (CPU) 1510, память 1520, запоминающее устройство 1530 большой емкости, видеоадаптер 1540 и интерфейс 1560 ввода/вывода, подключенный к шине. Шина является одной или несколькими из нескольких шинных архитектур любого типа, включающие в себя шину памяти или контроллер памяти, периферийную шину, видео шину и т.п.

CPU 1510 может иметь любой тип электронного процессора данных. Память 1520 может иметь или быть системной памятью любого типа, такой как статическая память с произвольным доступом (SRAM), динамическая память с произвольным доступом (DRAM), синхронная память DRAM (SDRAM), постоянная память (ROM), их комбинация или тому подобное. В варианте осуществления память 1520 может включать в себя ROM для использования при загрузке и DRAM для хранения программ и данных для использования во время выполнения программ. В вариантах осуществления память 1520 является энергонезависимой. Запоминающее устройство 1530 большой емкости включает в себя любой тип запоминающего устройства, которое хранит данные, программы и другую информацию и делает данные, программы и другую информацию доступными через шину. Запоминающее устройство 1530 большой емкости включает в себя, например, один или несколько из твердотельного накопителя, накопителя на жестком диске, накопителя на магнитном диске, накопителя на оптическом диске и т.п.

Видеоадаптер 1540 и интерфейс 1560 ввода/вывода предоставляют интерфейсы для подключения внешних устройств ввода и вывода к устройству 1500. Например, устройство 1500 может предоставлять клиентам интерфейс команд SQL. Как показано, примеры устройств ввода и вывода включают в себя дисплей 1590, подключенный к видеоадаптеру 1540, и любую комбинацию мыши/клавиатуры/принтера 1570, подключенные к интерфейсу 1560 ввода/вывода. К устройству 1500 могут быть подключены другие устройства, а также дополнительные или может использоваться меньше интерфейсных карт. Например, карта последовательного интерфейса (не показана) может использоваться для обеспечения последовательного интерфейса для принтера.

Устройство 1500 также включает в себя один или несколько сетевых интерфейсов 1550, которые включают в себя проводные линии связи, такие как кабель Ethernet и т.п., и/или беспроводные линии связи с узлами доступа или одной или несколькими сетями 1580. Сетевой интерфейс 1550 позволяет устройству 1500 выполнять обмениваться данными с удаленными устройствами через сети 1580. Например, сетевой интерфейс 1550 может обеспечивать связь с базой данных. В варианте осуществления устройство 1500 подключено к локальной сети или глобальной сети для обработки данных и обмена данными с удаленными устройствами, такими как другие блоки обработки, интернет, удаленные хранилища и т.п.

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

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

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

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

Варианты осуществления содержат, например, 5 категорий режима углового внутреннего предсказания, а именно, вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (2), вертикально-диагональный режим (VDIA_IDX) и диагональный режим DIA_IDX, в котором режим углового внутреннего предсказания списка наиболее вероятных режимов, попадающих в каждую категорию режима углового внутреннего предсказания, например, соответствует ассоциации каждого из режимов углового внутреннего предсказания из списка наиболее вероятных режимов с категорией режима углового внутреннего предсказания, наиболее близкой к соответствующему режиму углового внутреннего предсказания списка наиболее вероятных режимов.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В примере схема обработки дополнительно выполнена с возможностью определять первую часть списка оставшихся режимов из заранее определенного списка режимов по умолчанию, содержащего или состоящего из планарного режима (PLANAR_IDX), DC режима (DC_IDX), вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) и диагонального режима (DIA_IDX).

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

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

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

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

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

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

В примере отображение исходного режима внутреннего предсказания для получения отображенного режима внутреннего предсказания содержит: отображение исходного режима внутреннего предсказания согласно набору MPM для получения отображенного режима внутреннего предсказания.

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

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

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

В одном примере отображение исходного режима внутреннего предсказания для получения отображенного режима внутреннего предсказания содержит: отображение исходного режима внутреннего предсказания в соответствии с заранее определенным списком режимов по умолчанию, содержащим или состоящим из планарного режима (PLANAR_IDX), DC режима (DC_IDX), вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) и диагонального режима (DIA_IDX) для получения отображенного режима внутреннего предсказания.

В некоторых примерах дополнительные аспекты настоящего изобретения резюмируются следующим образом:

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

В варианте осуществления отношение отображения генерируется согласно набору MPMs.

В варианте осуществления генерируется отношение отображения в соответствии с заранее определенным списком режимов по умолчанию, содержащим или состоящий из планарного режима (PLANAR_IDX), DC режима (DC_IDX), вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикально диагонального режима (VDIA_IDX) и режима диагонали (DIA_IDX).

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

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

В варианте осуществления исходный набор режимов внутреннего предсказания генерируется согласно добавлению смещения -1, + 1, +2, -2, +3, -3, +4 или -4 к множеству значений, соответствующих набору MPMs.

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

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

В варианте осуществления количество режимов предсказания во множестве режимов внутреннего предсказания для блока изображения равно 67, количество режимов предсказания в наборе MPM равно 6, количество режимов предсказания в первом наборе режимов внутреннего предсказания в наборе не-MPM равно 3, и количество режимов предсказания во втором наборе режимов внутреннего предсказания в наборе не-MPM равно 58, в котором генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимы внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM, содержит: получение трех наименьших значений трех режимов предсказания в наборе не-MPM согласно значениям режимов предсказания в наборе MPMs; получение двух значений двух режимов углового предсказания в наборе MPMs, добавление смещения к двум значениям для получения значений смещения; получение второго набора значений согласно значениям режимов предсказания в наборе MPMs и значениям смещения; генерирование отношения отображения согласно первому набору значений и второму набору значений.

В варианте осуществления генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM, содержит: генерирование первого набора значений согласно значениям из режимов предсказания в наборе MPMs, одно значение в первом наборе значений является наименьшим значением режима предсказания в наборе не-MPM; генерирование второго набора значений в соответствии с предварительно определенным списком режимов по умолчанию, содержащим или состоящий из вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) и диагонального режима (DIA_IDX); генерирование отношения отображения согласно первому набору значений и второму набору значений.

В варианте осуществления генерирование отношения отображения между, по меньшей мере, одним режимом внутреннего предсказания в первом наборе режимов внутреннего предсказания и, по меньшей мере, одним режимом внутреннего предсказания в наборе не-MPM, содержит: генерирование первого набора значений согласно значениям из режимов предсказания в наборе MPMs, одно значение в первом наборе значений является наименьшим значением режима предсказания в наборе не-MPM; генерирование второго набора значений в соответствии с заранее определенным списком режимов по умолчанию, содержащим или состоящий из планарного режима (PLANAR_IDX), DC режима (DC_IDX), вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 ( 2), вертикально-диагонального режима (VDIA_IDX) и диагонального режима (DIA_IDX); генерирование отношения отображения согласно первому набору значений и второму набору значений.

В варианте осуществления кодовое слово режима внутреннего предсказания кодируется с использованием 5 битов, и кодовое слово режима внутреннего предсказания является одним из 00000, 00001 или 00010.

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

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

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

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

Настоящее изобретение предоставляет способ составления списка наиболее вероятного режима, MPM, причем способ содержит: определение, доступен ли левый блок текущего блока кодирования (coding block) или нет, если левый блок текущего блока кодирования доступен, добавление режима внутреннего предсказания левого блока в MPM список; определение, доступен ли верхний блок текущего блока кодирования или нет, если верхний блок текущего блока кодирования доступен, добавление режима внутреннего предсказания верхнего блока в MPM список; при отсутствии планарного режима в MPM списке, добавление планарного режима в MPM список; при отсутствии DC режима в MPM списке, добавление DC режима в MPM список.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В варианте осуществления смещение равно -1.

В варианте осуществления смещение равно 1.

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

В варианте осуществления смещение равно -1.

В варианте осуществления смещение равно 1.

В одном из вариантов осуществления способ дополнительно содержит:

добавление вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) или диагонального режима (DIA_IDX) в MPM список.

В варианте осуществления, способ дополнительно содержит список кандидатов углового режима, содержащий или состоящий из: вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) или диагонального режима (DIA_IDX) в MPM списке; и способ дополнительно содержит: итеративное определение в соответствии с их порядком в списке, находится ли угловой режим списка в MPM списке и, если соответствующий угловой режим отсутствует в MPM списке, добавление соответствующего углового режима в MPM список .

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

В варианте осуществления способ дополнительно содержит: если левый блок текущего блока кодирования недоступен и доступен другой блок в общем левом направлении (например, BL или AL на фиг. 5), вставку режима внутреннего предсказания другого блока в исходный MPM список, если левый блок доступен, отсутствие вставки режима внутреннего предсказания другого блока в исходный MPM список.

В варианте осуществления способ дополнительно содержит: если верхний блок текущего блока кодирования недоступен и доступен другой блок в общем указанном верхнем направлении (например, AR или AL на фиг. 5), вставку режима внутреннего предсказания другого блока в исходный MPM список, если верхний блок доступен, отсутствие вставки режима внутреннего предсказания другого блока в исходный MPM список.

В варианте осуществления способ дополнительно содержит: добавление вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) или диагонального режима (DIA_IDX) в исходный MPM список, если их еще нет в исходном MPM списке.

В варианте осуществления способ дополнительно содержит: если и левый, и верхний блок текущего блока кодирования не являются угловыми, то дополнительно проверяют еще один соседний блок (например, BL, AL или AR на фиг. 5). Если какой-либо из них (BL, или AL, или AR) является угловым, тогда использовать этот угловой режим в качестве исходного углового режима для процесса получения -1 + 1, как описано ранее;

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

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

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

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

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

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

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

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

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

Процессоры, подходящие для выполнения компьютерной программы, включают в себя, например, микропроцессоры как общего, так и специального назначения, а также любой один или несколько процессоров любого типа цифрового компьютера. Как правило, процессор будет получать инструкции и данные из постоянного запоминающего устройства или из памяти с произвольным доступом, либо из обоих. Существенными элементами компьютера являются процессор для выполнения действий в соответствии с инструкциями и одно или несколько запоминающих устройств для хранения инструкций и данных. Как правило, компьютер также будет включать в себя или быть оперативно подключенным для приема данных или передачи данных на одно или несколько запоминающих устройств большой емкости для хранения данных, например, магнитные, магнитооптические диски или оптические диски. Однако в компьютере такие устройства могут не быть. Кроме того, компьютер может быть встроен в другое устройство, например, мобильный телефон, персональный цифровой помощник (PDA), мобильный аудио- или видеоплеер, игровую консоль, приемник глобальной системы позиционирования (GPS) или портативное хранилище (например, флэш-накопитель с универсальной последовательной шиной (USB)) и многие другие. Устройства, подходящие для хранения инструкций и данных компьютерных программ, включают в себя все формы энергонезависимой памяти, носителей и запоминающих устройств, включающие в себя, например, полупроводниковые запоминающие устройства, например, EPROM, EEPROM и устройства флэш-памяти; магнитные диски, например, внутренние жесткие диски или съемные диски; магнитооптические диски; и диски CD-ROM и DVD-ROM. Процессор и память могут быть дополнены специальной логической схемой или включены в нее.

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

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

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

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

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

Определения сокращений и глоссарий

CTU/CTB - Блок дерева кодирования/Coding Tree Block

CU/CB - Блок кодирования/Coding Block

PU/PB - Блок предсказания/Prediction Block

TU/TB - Блок преобразования/Transform Block

HEVC - Высокоэффективное кодирование видео.

1. Способ составления списка наиболее вероятного режима (MPM) для процесса предсказания, соответствующего блоку видео, содержащий:

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

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

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

или

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

2. Способ по п. 1, в котором смещение равно -1 или +1.

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

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

если DC режим отсутствует в MPM списке, добавление DC режима в MPM список.

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

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

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

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

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

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

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

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

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

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

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



 

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

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

Изобретение относится к средствам для видеодекодирования. Технический результат заключается в повышении эффективности видеодекодирования.

Группа изобретений относится к технологиям обработки видеоданных. Техническим результатом является снижение нагрузки по обработке данных на устройства кодирования/декодирования видеоданных.

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

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

Изобретение относится к средствам для кодирования видео. Технический результат заключается в повышении эффективности кодирования.

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

Группа изобретений относится к технологиям видеокодирования. Техническим результатом является повышение эффективности декодирования видео.

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

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

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