ДЕРИВАЦИЯ РЕЖИМА ВНУТРЕННЕГО ПРЕДСКАЗАНИЯ НА ОСНОВЕ СОСЕДНИХ БЛОКОВ
DERIVATION OF INTERNAL PREDICTION MODE BASED ON NEIGHBORING BLOCKS

Область техники, к которой относится изобретение
Настоящее изобретение относится к области техники кодирования и декодирования изображения и/или видео, и в частности, к способу и аппаратуре для внутреннего предсказания.
Уровень техники
Цифровое видео стало широко использоваться со времени внедрения DVD-дисков. Перед тем, как передать, видео кодируют и затем передают с использованием передающей среды. Зритель принимает это видео и использует просмотровое устройство для декодирования и представления видео на дисплее. С годами качество видео улучшалось, например, вследствие более высоких величин разрешения, глубины цвета и частоты кадров. Это привело к увеличенным объемам потоков данных, которые сегодня обычно транспортируют через сеть интернет и через сети мобильной связи.
Для пропускания видео с более высоким разрешением, однако, обычно требуется более широкая полоса частот, поскольку такое видео содержит больше информации. Для снижения требований к ширине полосы частот были разработаны и внедрены стандарты кодирования видео, использующие сжатие видео. Когда видео кодировано, требования к ширине полосы частот пропускания (или соответствующие требования к объему памяти в случае запоминающих устройств и хранения информации) снижаются. Часто такое снижение происходит за счет качества. Таким образом, стандарты видео кодирования стремятся найти баланс между требованиями к ширине полосы частот и качеством.
Высокоэффективное видео кодирование (High Efficiency Video Coding (HEVC)) представляет собой пример стандарта видео кодирования, который широко известен специалистам в рассматриваемой области. В стандарте кодирования HEVC применяется разбиение единицы кодирования (coding unit (CU)) на единицы предсказания (prediction unit (PU)) или единицы преобразования (transform unit (TU)). Стандарт «Универсальное видео кодирование» (Versatile Video Coding (VVC)), являющийся стандартом следующего поколения, представляет собой самый последний совместный видео проект Группы экспертов по кодированию видео (Video Coding Experts Group (VCEG)) при секторе по стандартизации телекоммуникаций в международном союзе по телекоммуникациям (ITU-T) и Группы экспертов по кинематографии (Moving Picture Experts Group (MPEG)) международной организации стандартизации/международной электротехнической комиссии (ISO/IEC), которые совместно работают в партнерстве, известном как Объединенная группа исследований в области видео (Joint Video Exploration Team (JVET))). Стандарт кодирования VVC также называется Стандартом кодирования видео следующего поколения (ITU-T H.266/Next Generation Video Coding (NGVC)). В стандарте кодирования VVC предполагается исключить концепции несколько типов разбиений, т.е. разделение концепций единиц CU, единиц PU и единиц TU, за исключением той степени, которая необходима для единиц CU, имеющих слишком большой размер для максимальной длины преобразования, и поддерживать больше гибкости для форм разбиения единиц CU.
Характер обработки этих единиц кодирования (CU) (также называемых блоков) зависит от их размера, внутреннего расположения и режима кодирования, специфицированного кодирующим устройством. Режимы кодирования можно классифицировать на две группы в соответствии с типом предсказания: режимы внутреннего предсказания и взаимного предсказания. Режимы внутреннего предсказания используют отсчеты из той же самой картинки (также называемой здесь кадром или изображением) для генерации опорных отсчетов с целью вычисления прогнозируемых величин для отсчетов блока, который в текущий момент реконструируется. Внутреннее предсказание также называется пространственным предсказанием. Режимы взаимного предсказания предназначены для временного предсказания и используют опорные отсчеты из предыдущих или следующих картинок для предсказания блока текущей картинки.
Группы экспертов ITU-T VCEG (Q6/16) и ISO/IEC MPEG (JTC 1/SC 29/WG 11) занимаются сейчас исследованиями в области потенциальной необходимости в стандартизации будущих технологий кодирования видео, способности которых в области сжатия изображения значительно превосходили бы аналогичные способности современного стандарта кодирования HEVC (включая его сегодняшние расширения и расширения близкого будущего для кодирования содержания экрана и кодирования в широком динамическом диапазоне). Эти группы совместно работают над исследованиями в этой области в рамках совместной деятельности в группе, называемой Объединенной группой экспертов в области видео (JVET) для оценки вариантов технологий сжатия, предлагаемых экспертами-членами группы в этой области.
Стандарт «Универсальная испытательная модель» (VTM (Versatile Test Model)) использует 35 режимов внутреннего предсказания, тогда как стандарт «Набор контрольных точек» (BMS (Benchmark Set)) использует 67 режимов внутреннего предсказания.
Схема кодирования в режиме внутреннего предсказания, описываемая сегодня в стандарте BMS, считается сложной, а недостаток набора режимов без выбора состоит в том, что список индексов всегда остается постоянным, а не адаптируется на основе свойств текущего блока (например, для режимов внутреннего предсказания относительно соседних с ним блоков).
Краткое изложение существа изобретения
Предложены аппаратура и способ для внутреннего предсказания. Эти аппаратура и способ используют процедуру отображения для упрощения процедуры вычислений для внутреннего предсказания, чтобы повысить эффективность кодирования. Объем защиты определяется Формулой изобретения.
Краткое описание чертежей
Следующие варианты описаны более подробно со ссылками на прилагаемые чертежи, на которых:
фиг. 1 представляет блок-схему, показывающую пример системы видео кодирования, конфигурированной для осуществления вариантов настоящего изобретения;
фиг. 2 представляет блок-схему, показывающую пример видео кодирующего устройства, конфигурированного для осуществления вариантов настоящего изобретения;
фиг. 3 представляет блок-схему, показывающую пример структуры видео декодирующего устройства, конфигурированного для осуществления вариантов настоящего изобретения;
фиг. 4 показывает упрощенную схему, иллюстрирующую предлагаемые 67 режимов внутреннего предсказания;
фиг. 5 показывает упрощенную схему, иллюстрирующую соседние блоки для деривации режимов MPM;
фиг. 6 показывают упрощенную схему, иллюстрирующую режимы внутреннего предсказания с соседними блоками второго яруса, используемые для определения первых трех режимов в списке остальных режимов;
фиг. 7 показывает упрощенную схему, иллюстрирующую пример первых трех режимов в процессе генерации списка остальных режимов;
фиг. 8 показывает упрощенную схему, иллюстрирующую пример способа декодирования видео;
фиг. 9 показывает другую упрощенную схему, иллюстрирующую пример способа декодирования видео;
фиг. 10 показывает блок-схему аппаратуры.
Подробное описание
В последующем описании ссылки сделаны на прилагаемые чертежи, которые составляют часть настоящего изобретения и на которых показаны, посредством иллюстраций, конкретные аспекты реализации настоящего изобретения.
Например, понятно, что изобретение вместе с описываемым способом может также оставаться действительным для соответствующего устройства или системы, конфигурированных для осуществления этого способа, и наоборот. Например, при описании конкретного этапа способа соответствующее устройство может содержать модуль для осуществления описываемого этапа способа, даже если такой модуль не описан здесь в явном виде или не иллюстрирован на чертежах. Далее, понятно, что признаки различных примеров аспектов, описываемые здесь, могут быть скомбинированы одни с другими, если только специально не указано противное.
Термин «кодирование видео» обозначает обработку последовательности картинок, которые составляют видео или виде последовательность. Термины «картинка», «изображение» или «кадр» в области кодирования видео, равно как и в настоящем описании, могут использоваться/используются как синонимы. Каждое изображение обычно разбивают на множество блоков, не накладывающихся один на другой. Кодирование/декодирование изображения обычно осуществляется на уровне блоков, где, например, используется взаимное предсказание или внутреннее предсказание для генерации прогнозируемого блока с целью вычитания этого прогнозируемого блока из текущего блока (блока, обрабатываемого/подлежащего обработке в текущий момент) для получения остаточного блока, который далее трансформируют и квантуют для уменьшения объема данных, подлежащего передаче, (сжатия), тогда как на стороне декодирующего устройства к кодированному/сжатому блоку применяется обратная процедура с целью реконструкции этого блока для представления.
На фиг. 1 представлена концептуальная или упрощенная блок-схема, иллюстрирующая пример системы 10 кодирования, например, системы 10 кодирования видео, которая может использовать технологию настоящей заявки (настоящего изобретения). Кодирующее устройство 20 (например, видео кодирующее устройство 20) и декодирующее устройство 30 (например, видео декодирующее устройство 30) в системе 10 кодирования видео представляют примеры устройств, которые могут быть конфигурированы для осуществления технологий в соответствии с различными примерами, описываемыми в настоящей заявке. Как показано на фиг. 1, система 10 кодирования содержит устройство-источник 12, конфигурированное для предоставления кодированных данных 13, например, кодированного изображения 13, например, устройству-адресату 14 для декодирования этих кодированных данных 13.
Устройство-источник 12 содержит кодирующее устройство 20, и может дополнительно, т.е. в качестве опции, содержать источник 16 изображения, модуль 18 предварительной обработки, например, модуль 18 предварительной обработки изображения, и интерфейс связи или модуль 22 связи.
Источник 16 изображения может содержать или представлять собой устройство для захвата изображения какого-либо типа, например, для захвата изображения реального мира, и/или какое-либо устройство для генерации изображения или комментария какого-либо типа (для кодирования контента, присутствующего на экране, какой-либо текст на этом экране также считается частью картинки или изображения, подлежащего кодированию), например, компьютерный графический процессор для генерации изображения компьютерной анимации, и/или устройство какого-либо типа для получения и/или для создания изображения реального мира, изображения компьютерной анимации (например, контента экрана, изображения виртуальной реальности (virtual reality (VR))) и/или какой-либо комбинации таких изображений (например, изображения дополненной реальности (augmented reality (AR))).
Изображение (цифровое) представляет собой или может рассматриваться в качестве двумерного массива или матрицы отсчетов, каждый из которых имеет некоторую величину интенсивности. Отсчет в массиве может также называться пикселем (сокращенная форма от элемента изображения) или элементом растра (пел (pel)). Число отсчетов в горизонтальном и вертикальном направлении (или вдоль соответствующих осей) определяет размер и/или разрешение (разрешающую способность) изображения. Для представления цвета обычно используются три цветовых составляющих, т.е. изображение может быть представлено или может содержать три массива отсчетов. В формате или в цветовом пространстве RBG изображение содержит соответствующие массивы красных (red), зеленых (green) и синих (blue) отсчетов. Однако при кодировании видео каждый пиксель обычно представляют в формате или в цветовом пространстве яркость/цветность, например, YCbCr, что содержит яркостную составляющую, обозначенную литерой Y, (иногда вместо нее используется также литера L) и две цветностные составляющие, обозначенные посредством Cb и Cr. Яркостная (или сокращенно «luma») составляющая Y представляет яркость или уровень интенсивности зеленого цвета (например, как в полутоновом (черно-белом) изображении), тогда как две цветностные (или сокращенно chroma) составляющие 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 изображения на фиг. 1A, где эта стрелка указывает от устройства-источника 12 к устройству-адресату 14, либо в качестве двунаправленных интерфейсов связи и могут быть конфигурированы, например, для передачи и приема сообщений, например, с целью установления соединения, для квитирования и обмена какой-либо другой информацией относительно канала связи и/или передачи данных, например, передачи кодированных данных изображения.
Декодирующее устройство 30 конфигурировано для приема кодированных данных 21 изображения и генерации декодированных данных 31 изображения или декодированного изображения 31 (дальнейшие подробности будут описаны ниже, например, на основе фиг. 3).
Постпроцессор 32 в устройстве-адресате 14 конфигурирован для постобработки декодированных данных 31 изображения (также называемых данными реконструированного изображения), например, декодированного изображения 31, с целью получения постобработанных данных 33 изображения, например, постобработанного изображения 33. Постобработка, осуществляемая модулем 32 постобработки, может содержать, например, преобразование цветового формата (например, от формата YCbCr к формату RGB), коррекцию цвета, обрезку по формату или редискретизацию, или какую-либо другую обработку, например, для подготовки декодированных данных 31 изображения для представления на дисплее, например, дисплейным устройством 34.
Дисплейное устройство 34 в устройстве-адресате 14 конфигурировано для приема постобработанных данных 33 изображений с целью представления изображения на дисплее, например, пользователю или зрителю. Дисплейное устройство 34 может представлять собой или может содержать дисплей какого-либо типа для представления реконструированного изображения, например, интегрированный или внешний дисплей, или монитор. Такой дисплей может представлять собой, например, жидкокристаллический дисплей (liquid crystal display (LCD)), дисплей на органических светодиодах (organic light emitting diode (OLED)), плазменный дисплей, проектор, микро светодиодный (LED) дисплей, жидкокристаллический дисплей на кремнии (liquid crystal on silicon (LCoS)), цифровой процессор световых сигналов (digital light processor (DLP)) или дисплей какого-либо другого типа.
Хотя на фиг. 1 устройство-источник 12 и устройство-адресат 14 показаны в качестве раздельных устройств, варианты устройств могут содержать оба устройства или функциональные возможности обоих устройств, а именно, устройство-источник 12 или соответствующие функциональные возможности и устройство-адресат 14 или соответствующие функциональные возможности. В таких вариантах устройство-источник 12 или соответствующие функциональные возможности и устройство-адресат 14 или соответствующие функциональные возможности могут быть реализованы с использованием одной и той же аппаратуры и/или программного обеспечения, либо разной аппаратуры и/или программного обеспечения, или какой-либо комбинации перечисленных компонентов.
Как должно быть понятно специалистам в рассматриваемой области на основе настоящего описания, существование и (точное) разбиение функциональных возможностей различных модулей, либо функциональных возможностей внутри устройства-источника 12 и/или устройства-адресата 14, как показано на фиг. 1, может варьироваться в зависимости от фактического устройства и приложения.
Каждое устройство – кодирующее устройство 20 (например, видео кодирующее устройство 20) и декодирующее устройство 30 (например, видео декодирующее устройство 30), может быть реализовано в виде какой-либо одной из разнообразия подходящих схем, такой как одно или несколько устройств из списка – микропроцессоры, цифровые процессоры сигнала (digital signal processor (DSP)), специализированные интегральные схемы (application-specific integrated circuit (ASIC)), программируемые пользователем вентильные матрицы (field-programmable gate array (FPGA)), дискретные логические устройства, аппаратура или какие-либо комбинации перечисленных компонентов. Когда эти технологии реализуются частично в программном обеспечении, устройство может сохранять команды для программного обеспечения на подходящем энергонезависимом читаемом компьютером носителе для хранения информации и может выполнять команды в аппаратуре с использованием одного или нескольких процессоров для осуществления технологии согласно настоящему изобретению. Что-либо из перечисленного выше (включая аппаратуру, программное обеспечение, комбинацию аппаратуры и программного обеспечения и т.п.) может рассматриваться в качестве одного или нескольких процессоров. Каждое из устройств – видео кодирующее устройство 20 и видео декодирующее устройство 30, может быть включено в одно или несколько кодирующих устройств или декодирующих устройств, где любое такое устройство может быть интегрировано в качестве части комбинированного кодирующего устройства / декодирующего устройства (кодека (CODEC)) в соответствующее устройство.
На фиг. 2 показана упрощенная/концептуальная блок-схема примера видео кодирующего устройства 20, конфигурированного для осуществления технологии согласно настоящему приложению. В примере, показанном на фиг. 2, видео кодирующее устройство 20 содержит модуль вычисления остатка 204, модуль 206 процессора преобразования, модуль 208 квантования, модуль 210 обратного квантования и модуль 212 процессора обратного преобразования, модуль 214 реконструкции, буфер 216, модуль 220 контурного фильтра, буфер 230 декодированного изображения (decoded picture buffer (DPB)), модуль 260 процессора предсказания и модуль 270 энтропийного кодирования. Модуль 260 процессора предсказания может содержать модуль 244 взаимного предсказания, модуль 254 внутреннего предсказания и модуль 262 выбора режима. Модуль 244 взаимного предсказания может содержать модуль оценки движения и модуль компенсации движения (не показано). Видео кодирующее устройство 20, как показано на фиг. 2, может также называться гибридным видео кодирующим устройством или видео кодирующим устройством в соответствии с гибридным видео кодеком.
Например, модуль 204 вычисления остатка, модуль 206 процессора преобразования, модуль 208 квантования, модуль 260 процессора предсказания и модуль 270 энтропийного кодирования образуют тракт прямой передачи сигнала в кодирующем устройстве 20, в то время как, например, модуль 210 обратного квантования, модуль 212 процессора обратного преобразования, модуль 214 реконструкции, буфер 216, контурный фильтр 220, буфер 230 декодированного изображения (DPB) 230, модуль 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 выбора режима может быть конфигурирован для определения режима предсказания на основе оптимизации соотношения между скоростью передачи данных и искажениями (rate distortion optimization (RDO)), т.е. выбора такого режима предсказания, который обеспечит минимальную оптимизацию соотношения между скоростью и искажениями, или для которого ассоциированное соотношение между скоростью и искажениями по меньшей мере удовлетворяет критерию выбора режима предсказания.
Модуль 254 внутреннего предсказания далее конфигурирован для определения блока 255, прогнозируемого во внутреннем режиме, на основе параметра внутреннего предсказания, например, выбранного режима внутреннего предсказания. В любом случае, после выбора режима внутреннего предсказания для блока, модуль 254 внутреннего предсказания также конфигурирован для передачи параметра внутреннего предсказания, т.е. информации, указывающей выбранный режим внутреннего предсказания для этого блока, в модуль 270 энтропийного кодирования. В одном из примеров модуль 254 внутреннего предсказания может быть конфигурирован для осуществления какой-либо комбинации способов внутреннего предсказания, которые будут описаны позднее.
На фиг. 3 представлен пример видео декодирующего устройства 30, конфигурированного для осуществления технологии согласно настоящей заявке. Это видео декодирующее устройство 30 конфигурировано для приема кодированных данных 21 изображения (например, кодированного потока битов данных), например, кодированного посредством кодирующего устройства 100, для получения декодированного изображения 131. В процессе декодирования видео декодирующее устройство 30 принимает видеоданные, например, кодированный поток битов данных видео, представляющий блоки изображения кодированного среза видео и ассоциированные синтаксические элементы, от видео кодирующего устройства 100.
В примере, показанном на фиг. 3, декодирующее устройство 30 содержит модуль 304 энтропийного декодирования, модуль 310 обратного квантования, модуль 312 процессора обратного преобразования, модуль 314 реконструкции (например, сумматор 314), буфер 316, контурный фильтр 320, буфер 330 декодированного изображения и модуль 360 процессора предсказания. Этот модуль 360 процессора предсказания может содержать модуль 344 взаимного предсказания, модуль 354 внутреннего предсказания и модуль 362 выбора режима. Видео декодирующее устройство 30 может, в некоторых примерах, осуществлять поток операций декодирования в основном противоположный потоку операций кодирования, описываемому применительно к видео кодирующему устройству 100, показанному на фиг. 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 (List 0) и Список 1 (List 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 контурного фильтра предназначен для представления одного или нескольких контурных фильтров, таких как деблокирующий фильтр, фильтр с адаптивным сдвигом отсчетов (sample-adaptive offset (SAO)) или другие фильтры, например, двунаправленный фильтр или адаптивный контурный фильтр (adaptive loop filter (ALF)), либо фильтры для повышения резкости или сглаживающие фильтры, или совместные фильтры. Хотя модуль 320 контурного фильтра показан на фиг. 3, как находящийся в контурном фильтре, в других конфигурациях модуль 320 контурного фильтра может быть реализован в виде пост-контурного фильтра.
Декодированные блоки 321 видео в рассматриваемом кадре или изображении затем сохраняют в буфере 330 декодированного изображения, который сохраняет опорные изображения, используемые для последующей компенсации движения.
Декодирующее устройство 30 конфигурировано для вывода декодированного изображения 331, например, через выход 332, для представления пользователю или просмотра им.
Другие вариации видео декодирующего устройства 30 могут быть использованы для декодирования сжатого потока битов данных. Например, декодирующее устройство 30 может генерировать выходной поток видео без использования модуля 320 контурного фильтра. Например, декодирующее устройство 30 без преобразования может осуществлять обратное квантование остаточного сигнала непосредственно без модуля 312 процессора обратного преобразования для определенных блоков или кадров. В другой реализации видео декодирующее устройство 30 может содержать модуль 310 обратного квантования и модуль 312 процессора обратного преобразования 312, объединенные в одном блоке.
Согласно стандарту HEVC/H.265 имеются 35 режимов внутреннего предсказания. Как показано на фиг. 4, это множество содержит следующие режимы: планарный режим (индекс режима внутреннего предсказания равен 0), DC-режим (индекс режима внутреннего предсказания равен 1) и направленные (угловые) режимы, охватывающие угловой диапазон 180°, имеющие диапазон значений индекса режима внутреннего предсказания от 2 до 34 м показанные черными стрелками на фиг. 4. Для захвата произвольных направлений края, присутствующих в естественном видео, число направленных режимов внутреннего предсказания увеличивается от 33, как используется в стандарте кодирования HEVC, до 65. Дополнительные направленные режимы изображены пунктирными стрелками на фиг. 4, а планарный режим и DC-режим остаются теми же самыми. Имеет смысл отметить, что диапазон, охватываемый режимами внутреннего предсказания, может быть шире 180°. В частности, 62 направленных режима со значениями индексов от 3 до 64 охватывают диапазон приблизительно 230°, т.е. несколько пар режимов имеют противоположные направленности. В случае платформ «референсной модели кодирования HEVC» (HEVC Reference Model (HM)) и Совместной исследовательской модели (JEM), только одна пара угловых режимов (а именно, режимы 2 и 66) имеет противоположную направленность, как показано на фиг. 4. Для построения предиктора обычные угловые режимы принимают опорные отсчеты и (когда необходимо) фильтруют их для получения предиктора отсчетов. Число опорных отсчетов, необходимое для построения предиктора, зависит от длины фильтра, используемого для интерполяции (например, билинейные или кубические фильтры имеют длины 2 и 4, соответственно).
На фиг. 7 показан пример 67 режимов внутреннего предсказания, например, как предлагается для кодирования VVC, совокупность режимов внутреннего предсказания, составленная из 67 режимов внутреннего предсказания, содержит: планарный режим (индекс 0), dc-режим (индекс 1) и угловые режимы с индексами 2 – 66, где левый нижний угловой режим, показанный на фиг. 7, имеет индекс 2, и нумерация индексов увеличивается до индекса 66, соответствующего самому крайнему верхнему правому угловому режиму на фиг. 7.
На фиг. 10 представлена упрощенная схема сетевого устройства 1300 согласно одному из вариантов настоящему изобретения. Сетевое устройство 1300 подходит для реализации рассматриваемых вариантов, как описано здесь. Это сетевое устройство 1300 содержит входные порты 1310 и приемные модули (Rx) 1320 для приема данных; процессор, логический модуль или центральный процессор (central processing unit (CPU)) 1330 для обработки данных; передающие модули (Tx) 1340 и выходные порты 1350 для передачи данных; и запоминающее устройство 1360 для сохранения данных. Сетевое устройство 1300 может также содержать оптоэлектрические (optical-to-electrical (OE)) компоненты и электрооптические (electrical-to-optical (EO)), соединенные с входными портами 1310, приемные модули 1320, передающие модули 1340 и выходные порты 1350 для вывода или ввода оптических, или электрических сигналов.
Процессор 1330 реализован посредством аппаратуры и программного обеспечения. Процессор 1330 может быть реализован в виде одного или нескольких кристаллов CPU, ядер (например, как многоядерный процессор), программируемых пользователем вентильных матриц (FPGA), специализированных интегральных схем (ASIC) и цифровых процессоров сигнала (DSP). Процессор 1330 имеет связь с входными портами 1310, приемными модулями 1320, передающими модулями 1340, выходными портами 1350 и запоминающими устройствами 1360. Процессор 1330 содержит кодирующий модуль 1370. Кодирующий модуль 1370 реализует варианты, описанные выше. Например, кодирующий модуль 1370 реализует, обрабатывает, готовит или предоставляет разнообразные сетевые функции. Введение кодирующего модуля 1370 поэтому предоставляет существенное усовершенствование функциональных возможностей сетевого устройства 1300 и осуществляет преобразование сетевого устройства 1300 в другое состояние. В качестве альтернативы, кодирующий модуль реализован в виде команд, сохраняемых в запоминающем устройстве 360 и выполняемых процессором 1330.
Запоминающее устройство 1360 содержит один или несколько дисков, накопителей на магнитной ленте и твердотельных дисков и может быть использовано в качестве переполняемого устройства для хранения данных с целью хранения программ, когда такие программы выбраны для выполнения, и для сохранения команд и данных, считываемых при выполнении программ. Запоминающее устройство 1360 может быть энергозависимым и/или энергонезависимым и может представлять собой постоянное запоминающее устройство (ПЗУ (read-only memory (ROM))), запоминающее устройство с произвольной выборкой (ЗУПВ (random access memory (RAM))), троичное ассоциативное запоминающее устройство (ternary content-addressable memory (TCAM)) и/или статическое ЗУПВ (static random-access memory (SRAM)).
На фиг. 10 представлена блок-схема аппаратуры 1100, которая может быть использована для реализации различных вариантов. Аппаратура 1100 может представлять собой устройство-источник 102, как показано на фиг. 1, или видео кодирующее устройство 200, как показано на фиг. 2, или устройство-адресат 104, как показано на фиг. 1, или видео декодирующее устройство 300, как показано на фиг. 3. В дополнение к этому, аппаратура 1100 может служить хостом для одного или нескольких описываемых элементов. В некоторых вариантах, аппаратура 1100 оснащена одним или несколькими устройствами ввода/вывода, такими как громкоговоритель, микрофон, мышь, сенсорный экран, клавишная панель, клавиатура, принтер, дисплей или другие подобные устройства. Аппаратура 1100 может содержать один или несколько центральных процессоров (CPU) 1510, запоминающее устройство 1520, запоминающее устройство 1530 большой емкости, видео адаптер 1540 и интерфейс 1560 ввода/вывода, соединенные с шиной. Эта шина может иметь одну или несколько архитектур шин различных типов, включая шину памяти или контроллер памяти, периферийную шину, видео шину или другую подобную шину.
Процессор CPU 1510 может иметь электронный процессор данных любого типа. Запоминающее устройство 1520 может иметь или быть системным запоминающим устройством любого типа, таким как статическое запоминающее устройство с произвольной выборкой (SRAM), динамическое запоминающее устройство с произвольной выборкой (DRAM), синхронное устройство DRAM (SDRAM), постоянное запоминающее устройство (ROM), комбинацию таких устройств или другое подобное устройство. В одном из вариантов, запоминающее устройство 1520 может содержать ПЗУ (ROM) для использования при загрузке и устройство DRAM для хранения программ и данных с целью использования при выполнении программ. В некоторых вариантах запоминающее устройство 1520 является энергонезависимым. Запоминающее устройство 1530 большой емкости представляет собой запоминающее устройство какого-либо типа, сохраняющее данные, программы и другую информацию и обеспечивающее доступность этих данных, программ и другой информации через шину. Это запоминающее устройство 1530 большой емкости содержит, например, одно или несколько устройств из группы твердотельный диск, накопитель на жестком диске, накопитель на магнитном диске, оптический дисковод или другое подобное устройство.
Видео адаптер 1540 и интерфейс 1560 ввода/вывода создают интерфейсы для соединения внешних устройств ввода и вывода с аппаратурой 1100. Например, аппаратура 1100 может создать интерфейс для команд на языке структурных запросов (SQL) для клиентов. Как иллюстрируется здесь, к примерам устройств ввода и вывода относятся дисплей 1590, соединенный с видео адаптером 1540, и какая-либо комбинация мыши/клавиатуры/принтера 1570, соединенная с интерфейсом 1560 ввода/вывода. С аппаратурой 1100 могут быть соединены и другие устройства, и могут быть использованы дополнительные платы интерфейсов или меньшее число таких плат. Например, плата последовательного интерфейса (не показана) может быть использована для создания последовательного интерфейса для принтера.
Аппаратура 1100 содержит также один или несколько сетевых интерфейсов 1550, имеющих проводные линии связи, такие как кабель Этернет или другие подобные линии, и/или беспроводные линии связи, ведущие к узлам доступа, либо к одной или нескольким сетям 1580 связи. Сетевой интерфейс 1550 позволяет аппаратуре 1100 осуществлять связь с удаленными устройствами через сети 1580 связи. Например, сетевой интерфейс 1550 может предоставлять связь с базой данных. В одном из вариантов, аппаратура 1100 соединена с локальной сетью связи или с широкомасштабной сетью связи для обработки данных и связи с удаленными устройствами, такими как другие процессорные модули, сеть Интернет, удаленные хранилища данных или другие подобные объекты.
Определения аббревиатур и глоссарий
CTU / CTB – Единица дерева кодирования/Блок дерева кодирования (Coding Tree Unit / Coding Tree Block)
CU / CB – Единица кодирования/Блок кодирования (Coding unit / Coding Block)
PU / PB – Единица предсказания/Прогнозируемый блок (Prediction unit / Prediction block)
TU/TB – Единица преобразования/Блок преобразования (Transform unit / Transform Block)
HEVC – Высокоэффективное видео кодирование (High Efficiency Video Coding)
Схемы видео кодирования, такие как стандарты кодирования H.264/AVC и HEVC разработаны в соответствии с успешными принципами гибридного видео кодирования на блочной основе. Используя эти принципы, изображение (картинку) сначала разбивают на блоки, а затем осуществляют предсказание каждого блока с использованием внутреннего или взаимного предсказания.
Ряд стандартов видео кодирования со времени стандарта H.261 принадлежат к группе «гибридных видео кодеков с потерями» (т.е. комбинируют пространственное и временное предсказание в области отсчетов и двумерное (2D) кодирование с преобразованием для применения квантования в преобразованной области). Каждое изображение из видео последовательности обычно разбивают на множество не накладывающихся один на другой блоков, и затем кодирование осуществляют обычно на уровне блоков. Другими словами, в кодирующем устройстве видео обычно обрабатывают, т.е. кодируют, на уровне блоков (блоков изображения), например, с использованием пространственного (внутри картинки) предсказания и временного (между картинками) предсказания для генерации прогнозируемого блока, вычитания этого прогнозируемого блока из текущего блока (блока, обрабатываемого/подлежащего обработке в текущий момент) для получения остаточного блока, преобразования этого остаточного блока и квантования остаточного блока в преобразованной области для уменьшения объема данных, которые нужно передать, (сжатия), тогда как в декодирующем устройстве к кодированному или сжатому блоку частично применяется обратная процедура обработки по сравнению с кодирующим устройством с целью реконструкции текущего блока для представления на дисплее. Более того, кодирующее устройство дублирует контур обработки данных декодирующего устройства, так что оба устройства будут генерировать идентичные результаты предсказания (например, внутреннего или взаимного предсказания) и/или реконструкции для обработки, т.е. кодирования, последующих блоков.
Как используется здесь, термин «блок» может означать часть картинки (изображения) или кадра. Для удобства изложения варианты настоящего изобретения описаны здесь со ссылками на стандарт высокоэффективного видео кодирования (High-Efficiency Video Coding (HEVC)) или на эталонное программное обеспечение для универсального видео кодирования (Versatile video coding (VVC)), разработанное Объединенной группой по видео кодированию (Joint Collaboration Team on Video Coding (JCT-VC)), созданной Группой экспертов по кодированию видео (Video Coding Experts Group (VCEG)) при секторе по стандартизации телекоммуникаций в международном союзе по телекоммуникациям (ITU-T) и Группой экспертов по кинематографии (Moving Picture Experts Group (MPEG)) международной организации стандартизации/международной электротехнической комиссии (ISO/IEC). Даже рядовой специалист в рассматриваемой области должен понимать, что варианты настоящего изобретения не исчерпываются стандартами кодирования HEVC или VVC. Он может опираться на единицы CU, единицы PU и единицы TU. В стандарте кодирования HEVC единицу CTU разбивают на единицы CU с использованием структуры дерева квадратов, называемой деревом кодирования. Решение о том, следует ли кодировать некую область изображения с использованием взаимного (временного) или внутреннего (пространственного) предсказания, принимается на уровне единиц CU. Каждую единицу CU можно далее разбить на одну, две или четыре единицы PU в соответствии с типом разбиения на единицы PU. Внутри одной единицы PU применяется одна и та же процедура предсказания, и относящуюся к этому информацию передают декодирующему устройству на основе единиц PU. После получения остаточного блока путем применения процедуры предсказания на основе типа разбиения на единицы PU единица CU может быть разбита на единицы преобразования (TU) в соответствии с другой структурой дерева квадратов, аналогичной дереву кодирования для рассматриваемой единицы CU. В самой последней разработке технологии сжатия видео для разбиения блока кодирования используется секционирование (разбиение) в соответствии с деревом квадратом и двоичным деревом (Quad-tree and binary tree (QTBT)). В структуре блоков согласно дереву QTBT единица CU может иметь либо квадратную, либо прямоугольную форму. Например, единицу дерева кодирования (CTU) сначала разбивают в соответствии со структурой дерева квадратов. Боковые узлы (узлы-«листья») дерева квадратов затем разбивают в соответствии со структурой двоичного дерева. Боковые узлы («листья») двоичного дерева также называются единицами кодирования (CU), и такая сегментация используется для процедуры предсказания и преобразовании без какого-либо дальнейшего секционирования. Это означает, что в структуре блоков кодирования дерева QTBT единица CU, единица PU и единица TU имеют одинаковый размер блоков. Параллельно, вместе со структурой блоков дерева QTBT, также предлагается использование других видов разбиения, например, разбиение в соответствии с троичным деревом.
Группы экспертов ITU-T VCEG (Q6/16) и ISO/IEC MPEG (JTC 1/SC 29/WG 11) занимаются сейчас исследованиями в области потенциальной необходимости в стандартизации будущих технологий кодирования видео, способности которых в области сжатия изображения значительно превосходили бы аналогичные способности современного стандарта кодирования HEVC (включая его сегодняшние расширения и расширения близкого будущего для кодирования содержания экрана и кодирования в широком динамическом диапазоне). Эти группы совместно работают над исследованиями в этой области в рамках совместной деятельности в группе, называемой Объединенной группой экспертов в области видео (JVET) для оценки вариантов технологий сжатия, предлагаемых экспертами-членами группы в этой области.
Стандарт «Универсальная испытательная модель» (VTM (Versatile Test Model)) использует 35 режимов внутреннего предсказания, тогда как стандарт «Набор контрольных точек» (BMS (Benchmark Set)) использует 67 режимов внутреннего предсказания. Для кодирования 67 режимов внутреннего предсказания существующая схема кодирования в режиме внутреннего предсказания в стандарте BMS использует следующий способ:
Для аккомодации увеличенного числа направленных режимов внутреннего предсказания в стандарте BMS используется способ кодирования с внутренним предсказанием с применением 6 наиболее вероятных режимов (Most Probable Mode (MPM)). Здесь используются два важных технических аспекта.
1) деривация 6 режимов MPM, и
2) энтропийное кодирование этих 6 режимов MPM и режимов, не являющихся режимами MPM, т.е. режимов не-MPM.
В стандарте BMS, режимы, включенные в списки режимов MPM, классифицируют на три группы: Соседние режимы внутреннего предсказания, Производные режимы внутреннего предсказания и Режимы по умолчанию внутреннего предсказания.
Пять соседних режимов внутреннего предсказания используются для формирования списка режимов MPM. Расположение 5 соседних блоков является таким же, как используемое в режиме объединения, т.е. слева (L), сверху (A), снизу слева (BL), сверху справа (AR) и сверху слева (AL), как показано на Figure 5. Соответственно режимы предсказания относительно этих блоков имеют такие же обозначения. Первоначальный список режимов MPM формируют путем вставки 5 соседних режимов внутреннего предсказания, планарного режима и DC-режима в список режимов MPM. Для удаления дублированных режимов используется процедура усечения, так что в списке режимов MPM остаются только уникальные режимы. Первоначальные режимы включены в следующем порядке – слева, сверху, планарный режим, DC-режим, снизу слева, сверху справа и сверху слева.
Когда список режимов MPM не полон (т.е. содержит меньше 6 режимов-кандидатов MPM в списке), добавляют производные режимы, т.е. режимы внутреннего предсказания, индексы которых получают путем добавления −1 или +1 к индексам тех угловых режимов, которые уже входят в этот список режимов MPM. Процедура деривации производных режимов не применяется к неугловым режимам, т.е. к DC-режиму или к планарному режиму.
Наконец, если список режимов MPM все еще не полон, к нему добавляют режимы по умолчанию в следующем порядке: вертикальный режим, горизонтальный режим, режим (2) внутреннего предсказания и диагональный режим. В результате этой процедуры получается уникальный список из 6 режимов MPM.
Для энтропийного кодирования 6 режимов MPM используется усеченная унарная бинаризация этих режимов MPM. Первые три пакета кодируют с контекстом, зависящим от режима MPM, относящегося к пакету, сигнализируемому в текущий момент. Рассматриваемый режим MPM относят к одной из трех классификационных категорий: (a) принадлежит ли этот режим к горизонтальным режимам (индекс режима MPM не выше индекса диагонального направления), (b) к вертикальным режимам (индекс режима MPM больше индекса диагонального направления), или (c) к классу неугловых режимов (DC-режим и планарный режим). Соответственно, для сигнализации индекса режима MPM используются три контекста.
Кодирование остальных 61 режимов не-MPM осуществляется следующим образом. Эти 61 режимов не-MPM сначала разбивают на два множества: множество выбранных режимов и множество невыбранных режимов. Множество выбранных режимов содержит 16 режимов, а остальные (45) режимы назначены множеству невыбранных режимов. Множество режимов, к которому принадлежит текущий режим, обозначено в потоке битов данных флагом. Затем сигнализацию о режиме из выбранного множества передают посредством 4-битового кода фиксированной длины, а режим из невыбранного множества кодируют посредством усеченного двоичного кода. Множество выбранных режимов генерируют путем субдискретизации индексов всего 61 режимов не-MPM со следующими индексами:
Множество выбранных режимов = {0, 4, 8, 12, 16, 20 … 60},
Множество невыбранных режимов = {1, 2, 3, 5, 6, 7, 9, 10 … 59}
Сводка механизмов сигнализации о режимах внутреннего предсказания приведена в таблице 1.
Таблица 1. Сигнализация режима внутреннего предсказания яркостной составляющей в стандарте BMS
Режимы внутреннего предсказания
Флаг режимов MPM
Флаг выбора
Двоичная строка
Режимы MPM (6)
1
0
10
110
1110
11110
11111
Выбранные режимы (16)
Код фиксированной длины 4 бит
Невыбранные режимы (45)
Усеченный двоичный код
В другом примере используется способ кодирования режима внутреннего предсказания с 3 наиболее вероятными режимами (MPM). В одном из примеров, синтаксические элементы 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.
Переменная availableX равна FALSE.
Переменная CuPredMode[ xNbX ][ yNbX ] не равна MODE_INTRA.
Переменная X равна B и yPb − 1 меньше ( ( yPb >> CtbLog2SizeY ) << CtbLog2SizeY ).
В противном случае, переменную candIntraPredModeX устанавливают равной IntraPredModeY[ xNbX ][ yNbX ].
Параметр candModeList[ x ] при x = 0..2 определяют следующим образом:
Когда параметр candIntraPredModeB равен candIntraPredModeA, применимо следующее:
Когда параметр candIntraPredModeA меньше 2 (т.е. равен INTRA_PLANAR или INTRA_DC), Параметр candModeList[ x ] при x = 0..2 определяют следующим образом:
candModeList[ 0 ] = INTRA_PLANAR
candModeList[ 1 ] = INTRA_DC
candModeList[ 2 ] = INTRA_ANGULAR50
В противном случае, параметр candModeList[ x ] при x = 0..2 определяют следующим образом:
candModeList[ 0 ] = candIntraPredModeA
candModeList[ 1 ] = 2 + ( ( candIntraPredModeA + 61 ) % 64 )
candModeList[ 2 ] = 2 + ( ( candIntraPredModeA − 1 ) % 64 )
В противном случае (candIntraPredModeB не равно candIntraPredModeA), применимо следующее:
Параметры candModeList[ 0 ] и candModeList[ 1 ] определяют следующим образом:
candModeList[ 0 ] = candIntraPredModeA
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 ], обе величины подкачивают следующим образом:
(candModeList[ 0 ], candModeList[ 1 ]) = Swap( candModeList[ 0 ], candModeList[ 1 ] )
Когда параметр candModeList[ 0 ] is greater than candModeList[ 2 ], обе величины подкачивают следующим образом:
(candModeList[ 0 ], candModeList[ 2 ]) = Swap( candModeList[ 0 ], candModeList[ 2 ] )
Когда параметр candModeList[ 1 ] больше candModeList[ 2 ], обе величины подкачивают следующим образом:
(candModeList[ 1 ], candModeList[ 2 ]) = Swap( candModeList[ 1 ], candModeList[ 2 ] )
Параметр IntraPredModeY[ xPb ][ yPb ] определяют посредством следующих упорядоченных этапов:
Параметр IntraPredModeY[ xPb ][ yPb ] устанавливают равным intra_luma_mpm_remainder[ xPb ][ yPb ].
Для i равного 0 – 2, включительно, когда параметр IntraPredModeY[ xPb ][ yPb ] больше или равен candModeList[ i ], величина параметра IntraPredModeY[ xPb ][ yPb ] увеличивается на единицу.
В одной из форм реализации настоящей заявки кадр является тем же самым, как изображение (картинка).
В одном из аспектов настоящего изобретения предложен способ построения списка наиболее вероятных режимов, MPM, способ содержит:
определение, доступен ли блок слева от текущего блока кодирования или нет, если такой блок слева от текущего блока кодирования доступен, добавляют режим внутреннего предсказания относительно этого блока слева в список режимов MPM;
определение, доступен ли блок сверху от текущего блока кодирования или нет, если такой блок сверху от текущего блока кодирования доступен, добавляют режим внутреннего предсказания относительно этого блока сверху в список режимов MPM;
когда планарный режим не входит в список режимов MPM, добавление планарного режима в список режимов MPM; когда DC-режим не входит в список режимов MPM, добавление DC-режима в список режимов MPM.
В одной из форм реализации настоящей заявки, когда имеется (доступен) блок сверху от текущего блока кодирования и режим внутреннего предсказания относительно этого блока сверху отсутствует в списке режимов MPM, добавляют режим внутреннего предсказания относительно этого блока сверху в список режимов MPM.
В одной из форм реализации настоящей заявки, когда имеется (доступен) блок сверху от текущего блока кодирования и режим внутреннего предсказания относительно этого блока сверху присутствует в списке режимов MPM, осуществляется «добавление», либо мы можем сказать, что результат процедуры «добавления» не изменяет списка режимов MPM.
В одной из форм реализации настоящей заявки, когда режим предсказания относительно блока слева не является режимом внутреннего предсказания, блок слева от текущего блока кодирования недоступен.
В одной из форм реализации настоящей заявки, когда текущий блок кодирования расположен на крайней левой стороне своего кадра, блок слева от текущего блока кодирования недоступен.
В одной из форм реализации настоящей заявки, где поддерживается параллельная обработка и где текущий блок кодирования представляет собой блок кодирования, расположенный на крайней левой стороны своей плитки, блок слева от текущего блока кодирования недоступен.
В одной из форм реализации настоящей заявки, где не поддерживается параллельная обработка и где текущий блок кодирования представляет собой блок кодирования, расположенный на крайней левой стороны своей плитки, но не на крайней левой стороне кадра, блок слева от текущего блока кодирования доступен.
В одной из форм реализации настоящей заявки, где поддерживается параллельная обработка и где текущий блок кодирования представляет собой блок кодирования, расположенный на крайней левой стороны своего среза, блок слева от текущего блока кодирования недоступен.
В одной из форм реализации настоящей заявки, где не поддерживается параллельная обработка и где текущий блок кодирования представляет собой блок кодирования, расположенный на крайней левой стороны своего среза, но не на крайней левой стороне кадра, блок слева от текущего блока кодирования доступен.
В одной из форм реализации настоящей заявки, когда режим предсказания относительно блока сверху не является режимом внутреннего предсказания, блок сверху от текущего блока кодирования недоступен.
В одной из форм реализации настоящей заявки, когда текущий блок кодирования представляет собой блок кодирования, расположенный на крайней верхней стороне своего кадра, блок сверху от текущего блока кодирования недоступен.
В одной из форм реализации настоящей заявки, где поддерживается параллельная обработка и где текущий блок кодирования представляет собой блок кодирования, расположенный на крайней верхней стороне своей плитки, блок сверху от текущего блока кодирования недоступен.
В одной из форм реализации настоящей заявки, где не поддерживается параллельная обработка и где текущий блок кодирования представляет собой блок кодирования, расположенный на крайней верхней стороне своей плитки, но не на крайней верхней стороне кадра, блок сверху от текущего блока кодирования доступен.
В одной из форм реализации настоящей заявки, где поддерживается параллельная обработка и где текущий блок кодирования представляет собой блок кодирования, расположенный на крайней верхней стороне своего среза, блок сверху от текущего блока кодирования недоступен.
В одной из форм реализации настоящей заявки, где не поддерживается параллельная обработка и где текущий блок кодирования представляет собой блок кодирования, расположенный на крайней верхней стороне своей плитки, но не на крайней верхней стороне кадра, блок сверху от текущего блока кодирования доступен.
В одной из форм реализации настоящей заявки, когда размер буфера строк ограничен и когда текущий блок кодирования представляет собой блок кодирования, расположенный на крайней верхней стороне единицы CTU, блок сверху от текущего блока кодирования недоступен.
В одной из форм реализации настоящей заявки, если текущий блок кодирования представляет собой блок кодирования, не расположенный на крайней левой стороне кадра, блок слева от текущего блока кодирования доступен.
В одной из форм реализации настоящей заявки, если текущий блок кодирования представляет собой блок кодирования, не расположенный на крайней верхней стороне кадра, блок сверху от текущего блока кодирования доступен.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, проверку, входит ли первый режим внутреннего предсказания из множества режимов внутреннего предсказания в список режимов MPM, и добавление этого первого режима внутреннего предсказания в список режимов MPM, если этот первый режим внутреннего предсказания не входит в список режимов MPM, где множество режимов внутреннего предсказания содержит вертикальный режим (индекс VER_IDX) (в качестве первого режима внутреннего предсказания), горизонтальный режим (индекс HOR_IDX), режим внутреннего предсказания (индекс 2), вертикальный диагональный режим (индекс VDIA_IDX) или диагональный режим (индекс DIA_IDX).
В одной из форм реализации настоящей заявки, величина, соответствующая индексу VER_IDX, равна 50; величина, соответствующая индексу HOR_IDX, равна 18; величина, соответствующая индексу VDIA_IDX, равна 66, и эта величина может быть наибольшей величиной из совокупности величин, соответствующих угловым режимам; величина 2, соответствующая режиму 2 внутреннего предсказания, может быть наименьшей величиной из совокупности величин, соответствующих угловым режимам; величина, соответствующая индексу DIA_IDX, равна 34.
В одной из форм реализации настоящей заявки, когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, осуществляют проверку, входит ли первый режим внутреннего предсказания из множества режимов внутреннего предсказания в список режимов MPM, и добавление этого первого режима внутреннего предсказания в список режимов MPM, если этот первый режим внутреннего предсказания не входит в список режимов MPM, где множество режимов внутреннего предсказания содержит вертикальный режим (индекс 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, где множество режимов внутреннего предсказания содержит вертикальный режим (индекс VER_IDX) (в качестве первого режима внутреннего предсказания), вертикальный диагональный режим (индекс VDIA_IDX), диагональный режим (индекс DIA_IDX) или режим 2 внутреннего предсказания (индекс 2).
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда блок слева от текущего блока кодирования недоступен и когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, итеративное добавление режима внутреннего предсказания из множества режимов внутреннего предсказания, содержащего вертикальный режим (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), диагональный режим (индекс DIA_IDX) или режим 2 внутреннего предсказания (2), в соответствии с указанным выше порядком в список режимов MPM, когда указанный режим внутреннего предсказания отсутствует в списке режимов MPM, пока число режимов предсказания в этом списке не станет равно пороговой величине.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, проверку, входит ли первый режим внутреннего предсказания из множества режимов внутреннего предсказания в список режимов MPM, и добавление этого первого режима внутреннего предсказания в список режимов MPM, если этот первый режим внутреннего предсказания не входит в список режимов MPM, где указанное множество режимов внутреннего предсказания содержит вертикальный режим (индекс VER_IDX) (в качестве первого режима внутреннего предсказания), горизонтальный режим (индекс HOR_IDX), режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом -4, или режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом 4.
В одной из форм реализации настоящей заявки, режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом -4, использует величину, соответствующую индексу VER_IDX, для добавления сдвига -4 и получения величины индекса соответствующего режима внутреннего предсказания, например, когда величина индекса VER_IDX равна 50, режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом -4, представляет собой режим 46 внутреннего предсказания, режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом 4, представляет собой режим 54 внутреннего предсказания. Другие примеры со сдвигом получают с использованием процедуры, аналогичной этому примеру.
Отметим, что при осуществлении сдвига на -1 или +1, либо на другую величину, это может охватывать операцию перехода по кругу вверх или вниз, например, если индекс режима внутреннего предсказания равен (2) (наименьшая величина из совокупности величин, соответствующих угловым режимам), тогда режим внутреннего предсказания с индексом (2)-1 будет соответствовать индексу 66 (случай перехода по кругу вверх), либо если величина индекса VDIA_IDX равна 66 (наибольшая величина из совокупности величин, соответствующих угловым режимам), тогда индекс VDIA_IDX +1 будет равен 2 (случай перехода по кругу вниз).
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, итеративное добавление режима внутреннего предсказания из множества режимов внутреннего предсказания, содержащего вертикальный режим (индекс VER_IDX), горизонтальный режим (индекс HOR_IDX), режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом -4, или режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом 4, в соответствии с указанным выше порядком в список режимов MPM, если рассматриваемый режим внутреннего предсказания не входит в список режимов MPM, пока число режимов предсказания в этом списке не станет равно пороговой величине.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, проверку, входит ли первый режим внутреннего предсказания из множества режимов внутреннего предсказания в список режимов MPM, и добавление этого первого режима внутреннего предсказания в список режимов MPM, если этот первый режим внутреннего предсказания не входит в список режимов MPM, где указанное множество режимов внутреннего предсказания содержит вертикальный режим (индекс VER_IDX) (в качестве первого режима внутреннего предсказания), горизонтальный режим (индекс HOR_IDX), режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом 4, или режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом -4.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, итеративное добавление режима внутреннего предсказания из множества режимов внутреннего предсказания, содержащего вертикальный режим (индекс VER_IDX), горизонтальный режим (индекс HOR_IDX), режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом 4, или режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом -4, в соответствии с указанным выше порядком в список режимов MPM, если этот режим внутреннего предсказания не входит в список режимов MPM, пока число режимов предсказания в этом списке не станет равно пороговой величине.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда блок слева относительно текущего блока кодирования недоступен, и когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины,
проверку, входит ли первый режим внутреннего предсказания из множества режимов внутреннего предсказания в список режимов MPM, и добавление этого первого режима внутреннего предсказания в список режимов MPM, если этот первый режим внутреннего предсказания не входит в список режимов MPM, где указанное множество режимов внутреннего предсказания содержит одно из следующих множеств режимов внутреннего предсказания:
вертикальный режим (индекс VER_IDX) (в качестве первого режима внутреннего предсказания), вертикальный диагональный режим (индекс VDIA_IDX), режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом -1, и режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом 1; или
вертикальный режим (индекс VER_IDX) (в качестве первого режима внутреннего предсказания), вертикальный диагональный режим (индекс VDIA_IDX), режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом -4, и режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом 4; или
вертикальный режим (индекс VER_IDX) (в качестве первого режима внутреннего предсказания), вертикальный диагональный режим (индекс VDIA_IDX), режим внутреннего предсказания, соответствующий индексу VDIA_IDX со сдвигом -4, и режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом -1; или
вертикальный режим (индекс VER_IDX) (в качестве первого режима внутреннего предсказания), вертикальный диагональный режим (индекс VDIA_IDX), режим внутреннего предсказания, соответствующий индексу VDIA_IDX со сдвигом -4, и режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом +1; или
вертикальный режим (индекс VER_IDX) (в качестве первого режима внутреннего предсказания), вертикальный диагональный режим (индекс VDIA_IDX), режим внутреннего предсказания, соответствующий индексу VDIA_IDX со сдвигом -1, и режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом -1; или
вертикальный режим (индекс VER_IDX) (в качестве первого режима внутреннего предсказания), вертикальный диагональный режим (индекс VDIA_IDX), режим внутреннего предсказания, соответствующий индексу VDIA_IDX со сдвигом -1, и режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом 1; или
вертикальный режим (индекс VER_IDX) (в качестве первого режима внутреннего предсказания), вертикальный диагональный режим (индекс VDIA_IDX), режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом -1, и режим внутреннего предсказания, соответствующий индексу VDIA_IDX со сдвигом -4; или
вертикальный режим (индекс VER_IDX) (в качестве первого режима внутреннего предсказания), вертикальный диагональный режим (индекс VDIA_IDX), режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом 1, и режим внутреннего предсказания, соответствующий индексу VDIA_IDX со сдвигом -4; или
вертикальный режим (индекс VER_IDX) (в качестве первого режима внутреннего предсказания), вертикальный диагональный режим (индекс VDIA_IDX), режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом -1, и режим внутреннего предсказания, соответствующий индексу VDIA_IDX со сдвигом -1; или
вертикальный режим (индекс VER_IDX) (в качестве первого режима внутреннего предсказания), вертикальный диагональный режим (индекс VDIA_IDX), режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом 1, и режим внутреннего предсказания, соответствующий индексу VDIA_IDX со сдвигом -1.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда блок слева относительно текущего блока кодирования недоступен и когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, итеративное добавление режима внутреннего предсказания из множества режимов внутреннего предсказания в соответствии с указанным выше порядком в список режимов MPM, если рассматриваемый режим внутреннего предсказания не входит в список режимов MPM, пока число режимов предсказания в этом списке не станет равно пороговой величине;
где указанное множество режимов внутреннего предсказания содержит одно из следующих множеств режимов внутреннего предсказания:
вертикальный режим (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом -1, и режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом 1; или
вертикальный режим (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом -4, и режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом 4; или
вертикальный режим (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), режим внутреннего предсказания, соответствующий индексу VDIA_IDX со сдвигом -4, и режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом -1; или
вертикальный режим (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), режим внутреннего предсказания, соответствующий индексу VDIA_IDX со сдвигом -4, и режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом +1; или
вертикальный режим (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), режим внутреннего предсказания, соответствующий индексу VDIA_IDX со сдвигом -1, и режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом -1; или
вертикальный режим (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), режим внутреннего предсказания, соответствующий индексу VDIA_IDX со сдвигом -1, и режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом 1; или
вертикальный режим (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом -1, и режим внутреннего предсказания, соответствующий индексу VDIA_IDX со сдвигом -4; или
вертикальный режим (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом 1, и режим внутреннего предсказания, соответствующий индексу o VDIA_IDX со сдвигом -4; или
вертикальный режим (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом -1, и режим внутреннего предсказания, соответствующий индексу VDIA_IDX со сдвигом -1; или
вертикальный режим (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом 1, и режим внутреннего предсказания, соответствующий индексу VDIA_IDX со сдвигом -1.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, и блок сверху от текущего блока кодирования недоступен, проверку, входит ли первый режим внутреннего предсказания из множества режимов внутреннего предсказания в список режимов MPM, и добавление этого первого режима внутреннего предсказания в список режимов MPM, если этот первый режим внутреннего предсказания не входит в список режимов MPM, где множество режимов внутреннего предсказания содержит горизонтальный режим (индекс HOR_IDX) (в качестве первого режима внутреннего предсказания), режим 2 внутреннего предсказания (индекс 2), диагональный режим (индекс DIA_IDX) или вертикальный диагональный режим (индекс VDIA_IDX).
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, и блок сверху относительно текущего блока кодирования недоступен, итеративное добавление режима внутреннего предсказания из множества режимов внутреннего предсказания, содержащего горизонтальный режим (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), диагональный режим (индекс DIA_IDX) или вертикальный диагональный режим (индекс VDIA_IDX), в соответствии с указанным выше порядком в список режимов MPM, если этот режим внутреннего предсказания не входит в список режимов MPM, пока число режимов предсказания в этом списке не станет равно пороговой величине.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, и блок слева от текущего блока кодирования доступен, проверку, входит ли первый режим внутреннего предсказания из множества режимов внутреннего предсказания в список режимов MPM, и добавление этого первого режима внутреннего предсказания в список режимов MPM, если этот первый режим внутреннего предсказания не входит в список режимов MPM, где указанное множество режимов внутреннего предсказания содержит вертикальный режим (индекс 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, где указанное множество режимов внутреннего предсказания содержит горизонтальный режим (индекс HOR_IDX) (в качестве первого режима внутреннего предсказания), режим 2 внутреннего предсказания (индекс 2), диагональный режим (индекс DIA_IDX) или вертикальный диагональный режим (индекс VDIA_IDX).
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, и блок сверху от текущего блока кодирования недоступен, итеративное добавление режима внутреннего предсказания из множества режима внутреннего предсказания, содержащего горизонтальный режим (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), диагональный режим (индекс DIA_IDX) или вертикальный диагональный режим (индекс VDIA_IDX), в соответствии с указанным выше порядком в список режимов MPM, когда указанный режим внутреннего предсказания не входит в список режимов MPM, пока число режимов предсказания в этом списке не станет равно пороговой величине.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, блок слева от текущего блока кодирования доступен и блок сверху относительно текущего блока кодирования доступен, проверку, входит ли первый режим внутреннего предсказания из множества режимов внутреннего предсказания в список режимов MPM, и добавление этого первого режима внутреннего предсказания в список режимов MPM, если этот первый режим внутреннего предсказания не входит в список режимов MPM, где указанное множество режимов внутреннего предсказания содержит вертикальный режим (индекс VER_IDX) (в качестве первого режима внутреннего предсказания), горизонтальный режим (индекс HOR_IDX), режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом -4, или режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом 4.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, блок слева от текущего блока кодирования доступен и блок сверху от текущего блока кодирования доступен, итеративное добавление режима внутреннего предсказания из множества режимов внутреннего предсказания, содержащего вертикальный режим (индекс VER_IDX), горизонтальный режим (индекс HOR_IDX), режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом -4, или режим внутреннего предсказания, соответствующий индексу VER_IDX со сдвигом 4, в соответствии с указанным выше порядком в список режимов MPM, когда этот режим внутреннего предсказания не входит в список режимов MPM, пока число режимов предсказания в этом списке не станет равно пороговой величине.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда блок сверху от текущего блока кодирования не доступен и когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, проверку, входит ли первый режим внутреннего предсказания из множества режимов внутреннего предсказания в список режимов MPM, и добавление этого первого режима внутреннего предсказания в список режимов MPM, если этот первый режим внутреннего предсказания не входит в список режимов MPM, где указанное множество режимов внутреннего предсказания содержит одно из следующих множеств режимов внутреннего предсказания:
горизонтальный режим (индекс HOR_IDX) (в качестве первого режима внутреннего предсказания), режим 2 внутреннего предсказания (индекс 2), режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом -1, и режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом 1; или
горизонтальный режим (индекс HOR_IDX) (в качестве первого режима внутреннего предсказания), режим 2 внутреннего предсказания (индекс 2), режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом -4, и индексу HOR_IDX с добавленным сдвигом 4; или
горизонтальный режим (индекс HOR_IDX) (в качестве первого режима внутреннего предсказания), режим 2 внутреннего предсказания (индекс 2), режим внутреннего предсказания, соответствующий режиму 2 внутреннего предсказания (индекс 2) со сдвигом 4, и режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом -1; или
горизонтальный режим (индекс HOR_IDX) (в качестве первого режима внутреннего предсказания), режим 2 внутреннего предсказания (индекс 2), режим внутреннего предсказания, соответствующий режиму 2 внутреннего предсказания (индекс 2) со сдвигом 4, и режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом 1; или
или горизонтальный режим (индекс HOR_IDX) (в качестве первого режима внутреннего предсказания), режим 2 внутреннего предсказания (индекс 2), режим внутреннего предсказания, соответствующий режиму 2 внутреннего предсказания (индекс 2) со сдвигом 1, и режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом -1; или
горизонтальный режим (индекс HOR_IDX) (в качестве первого режима внутреннего предсказания), режим 2 внутреннего предсказания (индекс 2), режим внутреннего предсказания, соответствующий режиму 2 внутреннего предсказания (индекс 2) со сдвигом 1, и режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом 1; или
горизонтальный режим (индекс HOR_IDX) (в качестве первого режима внутреннего предсказания), режим 2 внутреннего предсказания (индекс 2), режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом -1, и режим внутреннего предсказания, соответствующий режиму 2 внутреннего предсказания (индекс 2) со сдвигом 4; or
горизонтальный режим (индекс HOR_IDX) (в качестве первого режима внутреннего предсказания), режим 2 внутреннего предсказания (индекс 2), режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом 1, и режим внутреннего предсказания, соответствующий режиму 2 внутреннего предсказания (индекс 2) со сдвигом 4; или
горизонтальный режим (индекс HOR_IDX) (в качестве первого режима внутреннего предсказания), режим 2 внутреннего предсказания (индекс 2), режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом -1, и режим внутреннего предсказания, соответствующий режиму 2 внутреннего предсказания (индекс 2) со сдвигом 1; или
горизонтальный режим (индекс HOR_IDX) (в качестве первого режима внутреннего предсказания), режим 2 внутреннего предсказания (индекс 2), режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом 1, и режим внутреннего предсказания, соответствующий режиму 2 внутреннего предсказания (индекс 2) со сдвигом 1.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: если блок сверху от текущего блока кодирования недоступен и если число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, итеративное добавление режима внутреннего предсказания из множества режимов внутреннего предсказания в соответствии с указанным выше порядком в список режимов MPM, когда рассматриваемый режим внутреннего предсказания не входит в список режимов MPM, пока число режимов предсказания в этом списке не станет равно пороговой величине; где указанное множество режимов внутреннего предсказания содержит одно из следующих множеств режимов внутреннего предсказания:
горизонтальный режим (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом -1, и режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом 1; или
горизонтальный режим (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом -4, и индексу HOR_IDX с добавленным сдвигом 4; или
горизонтальный режим (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), режим внутреннего предсказания, соответствующий режиму 2 внутреннего предсказания (индекс 2) со сдвигом 4, и режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом -1; или
горизонтальный режим (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), режим внутреннего предсказания, соответствующий режиму 2 внутреннего предсказания (индекс 2) со сдвигом 4, и режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом 1; или
горизонтальный режим (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), режим внутреннего предсказания, соответствующий режиму 2 внутреннего предсказания (индекс 2) со сдвигом 1, и режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом -1; или
горизонтальный режим (индекс HOR_IDX ), режим 2 внутреннего предсказания (индекс 2), режим внутреннего предсказания, соответствующий режиму 2 внутреннего предсказания (индекс 2) со сдвигом 1, и режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом 1; или
горизонтальный режим (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом -1, и режим внутреннего предсказания, соответствующий режиму 2 внутреннего предсказания (индекс 2) со сдвигом 4; или
горизонтальный режим (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом 1, и режим внутреннего предсказания, соответствующий режиму 2 внутреннего предсказания (индекс 2) со сдвигом 4; или
горизонтальный режим (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом -1, и режим внутреннего предсказания, соответствующий режиму 2 внутреннего предсказания (индекс 2) со сдвигом 1; или
горизонтальный режим (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), режим внутреннего предсказания, соответствующий индексу HOR_IDX со сдвигом 1, и режим внутреннего предсказания, соответствующий режиму 2 внутреннего предсказания (индекс 2) со сдвигом 1.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, итеративное добавление режима внутреннего предсказания из множества режимов внутреннего предсказания, содержащего вертикальный режим (индекс VER_IDX), горизонтальный режим (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), вертикальный диагональный режим (индекс VDIA_IDX) или диагональный режим (индекс DIA_IDX), в соответствии с указанным выше порядком в список режимов MPM, когда этот режим внутреннего предсказания не входит в список режимов MPM, пока число режимов предсказания в этом списке не станет равно пороговой величине.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда блок слева от текущего блока кодирования недоступен, и когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, проверку, входит ли первый режим внутреннего предсказания из множества режимов внутреннего предсказания в список режимов MPM, и добавление этого первого режима внутреннего предсказания в список режимов MPM, если этот первый режим внутреннего предсказания не входит в список режимов MPM, где множество режимов внутреннего предсказания содержит вертикальный режим (индекс VER_IDX), a вертикальный диагональный режим (индекс VDIA_IDX), a диагональный режим (индекс DIA_IDX) или режим 2 внутреннего предсказания (индекс 2).
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда блок слева от текущего блока кодирования недоступен и когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, итеративное добавление режима внутреннего предсказания из множества режимов внутреннего предсказания, содержащего вертикальный режим (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), диагональный режим (индекс DIA_IDX) или режим 2 внутреннего предсказания (индекс 2), в соответствии с указанным выше порядком в список режимов MPM, когда рассматриваемый режим внутреннего предсказания не входит в список режимов MPM, пока число режимов предсказания в этом списке не станет равно пороговой величине.
В одной из форм реализации настоящей заявки, может быть понятно, что добавление какого-либо режима внутреннего предсказания в список режимов MPM представляет собой добавление величины, соответствующей этому режиму внутреннего предсказания в список режимов MPM.
В одной из форм реализации настоящей заявки, пороговая величина равна 6.
Согласно одному из аспектов настоящей заявки, кодирующее устройство содержит процессорную схему для осуществления приведенных выше способов.
Согласно одному из аспектов настоящей заявки, декодирующее устройство содержит процессорную схему для осуществления приведенных выше способов.
Согласно одному из аспектов настоящей заявки, компьютерный программный продукт содержит программный код для осуществления приведенных выше способов.
Согласно одному из аспектов настоящей заявки, декодирующее устройство для построения списка наиболее вероятных режимов, MPM, содержит: один или несколько процессоров; и энергонезависимый читаемый компьютером носитель для сохранения информации, соединенный с процессорами и сохраняющий программу для выполнения этими процессорами, где эти программы, при выполнении процессорами, конфигурируют декодирующее устройство для осуществления описанных выше способов.
Согласно одному из аспектов настоящей заявки, кодирующее устройство для построения списка наиболее вероятных режимов, MPM, содержит: один или несколько процессоров; и энергонезависимый читаемый компьютером носитель для хранения информации, соединенный с процессорами и сохраняющий программу для выполнения этими процессорами, где эти программы, при выполнении процессорами, конфигурируют кодирующее устройство для осуществления описанных выше способов.
В одном из примеров
Этап один: определение, доступен ли блок слева относительно текущего блока кодирования или нет.
Когда блок слева от текущего блока кодирования доступен, добавление режима внутреннего предсказания относительно этого блока слева в список режимов MPM. Этот список режимов MPM может быть пустым списком, когда блок слева от текущего блока кодирования доступен, режим внутреннего предсказания относительно этого блока слева добавляют в этот список режимов MPM, после этого список режимов MPM содержит один режим внутреннего предсказания; а когда блок слева относительно текущего блока кодирования недоступен, список режимов MPM остается по-прежнему пустым после завершения этапа один.
Этап два: определение, доступен ли блок сверху от текущего блока кодирования или нет.
Когда блок сверху от текущего блока кодирования доступен, добавляют режим внутреннего предсказания относительно этого блока сверху в список режимов MPM. Этот список режимов MPM может содержать режим внутреннего предсказания относительно блока слева или по-прежнему оставаться пустым списком.
Когда блок сверху от текущего блока кодирования доступен и когда список режимов MPM содержит режим внутреннего предсказания относительно блока слева, далее следует определить, является ли режим внутреннего предсказания относительно указанного блока сверху таким же, как и режим внутреннего предсказания относительно указанного блока слева, когда эти режимы совпадают, результат этапа «добавления режима внутреннего предсказания относительно блока сверху в список режимов MPM» не изменяет числа режимов внутреннего предсказания в списке режимов MPM, этот список режимов MPM содержит только один режим внутреннего предсказания; если режим внутреннего предсказания для указанного блока сверху не является таким же, как и режим внутреннего предсказания для указанного блока слева, тогда добавляют режим внутреннего предсказания для указанного блока сверху в список режимов MPM и тогда этот список режимов MPM содержит уже два режима внутреннего предсказания.
Когда блок сверху от текущего блока кодирования доступен и когда список режимов MPM по-прежнему является пустым списком, добавляют режим внутреннего предсказания относительно указанного блока сверху в список режимов MPM, после чего этот список режимов MPM содержит только один режим внутреннего предсказания.
Когда блок сверху от текущего блока кодирования недоступен, и когда список режимов MPM содержит режим внутреннего предсказания относительно блока слева, список режимов MPM будет по-прежнему содержать только режим внутреннего предсказания относительно блока слева.
Когда блок сверху от текущего блока кодирования недоступен и список режимов MPM по-прежнему остается пустым списком, тогда список режимов MPM будет по-прежнему пустым пуском.
Этап три: когда планарного режима нет в списке режимов MPM, добавление планарного режима в список режимов MPM.
Если после этапа два список режимов MPM не содержит планарный режим, тогда добавление этого планарного режима в список режимов MPM.
Когда оба режима – режим внутреннего предсказания относительно блока слева и режим внутреннего предсказания относительно блока сверху, недоступны, или доступный режим внутреннего предсказания не является планарным режимом, список режимов MPM не содержит планарный режим.
Если планарный режим присутствует в список режимов MPM, переход к этапу четыре.
Этап четыре: когда DC-режим отсутствует в списке режимов MPM, добавление этого DC-режима в список режимов MPM.
Если после этапа два или этапа три список режимов MPM не содержит DC-режим, тогда добавляют DC-режим в список режимов MPM.
Когда оба режима – режим внутреннего предсказания относительно блока слева и режим внутреннего предсказания относительно блока сверху, недоступны, или доступный режим внутреннего предсказания не является DC-режимом, тогда список режимов MPM не содержит DC-режим.
Если DC-режим присутствует в списке режимов MPM, тогда происходит переход к следующим этапам или завершение построения списка режимов MPM.
В одной из форм реализации настоящей заявки, на каждом этапе, при выполнении процедуры добавления какого-либо режима предсказания в список режимов MPM необходимо убедиться, что в этом списке режимов MPM нет дублирующего режима предсказания. Следовательно, когда режим внутреннего предсказания, который нужно добавить в список режимов MPM, является таким же, как один из режимов внутреннего предсказания, уже присутствующих в этом списке режимов MPM, процедура «добавления» не изменяет список режимов MPM, либо эта процедура «добавления» не выполняется.
В одной из форм реализации настоящей заявки, после этапа 4, только если существует угловой режим, тогда выполняют присвоение индексов – индекс углового режима - 1 (angular-1), индекс углового режима + 1 (angular+1).
В одном из примеров, когда число режимов внутреннего предсказания в списке режимов MPM равно шести, после этапа четыре возможны три случая относительно длины режима MPM:
Случай 1: длина режима MPM равна 2: → режимы относительно обоих блоков – слева (L) и сверху (A) не являются угловыми (>DC) или недоступны, только планарный режим и DC-режим в → используют все четыре режима по умолчанию.
Случай 2: длина режима MPM равна 3: → режим относительно одного из блоков L или A является угловым, или они являются одинаковыми угловыми. → используют один режим по умолчанию.
Случай 3: длина режима MPM равна 4: → режимы относительно обоих блоков L и A являются угловыми и отличными один от другого → режимы по умолчанию не используются, поскольку по меньшей мере один из режимов с индексами L-1, L+1, должен быть добавлен. Когда один из этих режимов является дублированием указанного выше (разница diff(L-A)=1), тогда должен быть дополнительно вставлен по меньшей мере один из режимов с индексами A-1 и A+1.
В одной из форм реализации настоящей заявки, способ дополнительно содержит: когда блок слева от текущего блока кодирования доступен и когда режим внутреннего предсказания относительно этого блока слева является угловым режимом, добавление сдвига к индексу режим предсказания относительно блока слева с целью получения нового режима предсказания, когда этот новый режим предсказания не входит в список режимов MPM, добавление этого нового режима предсказания в список режимов MPM.
В другом примере, список режимов MPM содержит шесть режимов внутреннего предсказания, поскольку приведенные выше четыре этапа могут получить только четыре режима внутреннего предсказания в наибольшем варианте. Этот способ дополнительно содержит:
Этап пять: когда блок слева от текущего блока кодирования доступен и когда режим внутреннего предсказания относительно этого блока слева является угловым режимом, добавление сдвига к индексу режима предсказания относительно блока слева с целью получения нового режима предсказания, и когда этот новый режим предсказания не входит в список режимов MPM, добавление этого нового режима предсказания в список режимов MPM.
Например, когда блок слева от текущего блока кодирования имеет угловой режим 27 (величина индекса, соответствующая этому угловому режиму внутреннего предсказания равна 27), и список режимов MPM после приведенных выше четырех этапов имеет вид (27, 15, 0, 1). Добавляют сдвиг к индексу режима предсказания относительно блока слева с целью получения нового режима предсказания, когда этот новый режим предсказания не входит в список режимов MPM, и добавляют этот новый режим предсказания в список режимов MPM. В одном из примеров, этот сдвиг равен -1, так что индекс этого нового режима предсказания равен 26, и обновленный список режимов MPM принял вид (27, 15, 0, 1, 26). В другом примере, этот сдвиг равен 1, так что индекс этого нового режима предсказания равен 28, и обновленный список режимов MPM принял вид (27, 15, 0, 1, 28). В другом примере, на этапе пять могут быть добавлены две величины сдвигов к индексу режима внутреннего предсказания относительно блока слева, сначала добавлено -1 и затем добавлено 1, либо сначала добавлено 1 и затем добавлено -1, так что обновленный список режимов MPM может иметь вид (27, 15, 0, 1, 26, 28) или (27, 15, 0, 1, 28, 26).
После этапа пять, проверяют, заполнен ли список режимов MPM (Когда число режимов внутреннего предсказания в списке режимов MPM равно пороговой величине, например, эта пороговая величина равна 6, тогда список режимов MPM заполнен. Если число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, тогда список режимов MPM не заполнен). Когда список режимов MPM заполнен, процедуру построения списка режимов MPM завершают; когда список режимов MPM не заполнен, переходят к следующим этапам.
И когда блок слева относительно текущего блока кодирования недоступен, этап пять не выполняют, а переходят к следующим этапам.
Отметим, что процедура добавления сдвига (например, -1 или +1) к индексу углового режима предсказания, должна содержать операцию перехода по кругу вверх или вниз, например. Когда индекс углового режима предсказания относительно блока слева (angularLeft) равен 2, тогда индекс режима angularLeft-1 будет равен 66 (случай операции перехода по кругу вверх), или когда индекс режима angularLeft равен 66, тогда индекс режима angularLeft+1 будет равен 2 (случай операции перехода по кругу вниз).
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда блок сверху от текущего блока кодирования доступен, и когда режим внутреннего предсказания относительно этого блока сверху является угловым режимом, добавление сдвига к индексу режима предсказания относительно блока сверху с целью получения индекса смещенного режима предсказания относительно блока сверху, если этот смещенный режим предсказания относительно блока сверху не входит в список режимов MPM, добавление этого смещенного режима предсказания относительно блока сверху в список режимов MPM.
В одном из примеров, этот способ дополнительно содержит:
Этап шесть: когда блок сверху от текущего блока кодирования доступен, и когда режим внутреннего предсказания относительно этого блока сверху является угловым режимом, добавление сдвига к индексу режима предсказания относительно блока сверху с целью получения индекса смещенного режима предсказания относительно блока сверху, и если этот смещенный режим предсказания относительно блока сверху не входит в список режимов MPM, добавление этого нового режима предсказания в список режимов MPM.
Например, режим предсказания относительно блока сверху от текущего блока кодирования является угловым режимом 26 (величина индекса, соответствующая этому угловому режиму внутреннего предсказания, равна 26), и список режимов MPM после перечисленных выше пяти этапов имеет вид (27, 26, 0, 1, 28). Добавление сдвига к индексу режима предсказания относительно блока слева с целью получения индекса смещенного режима предсказания относительно блока сверху, когда этот смещенный режим предсказания относительно блока сверху не входит в список режимов MPM, добавление этого смещенного режима предсказания относительно блока сверху в список режимов MPM. В одном из примеров, величина сдвига равна -1, тогда индекс смещенного режима предсказания относительно блока сверху равен 25 и обновленный список режимов MPM имеет вид (27, 26, 0, 1, 28, 25). В другом примере, величина сдвига равна 1, тогда индекс смещенного режима предсказания относительно блока сверху равен 27 и вставка этого индекса смещенного режима предсказания относительно блока сверху, равного 27, оказывается заблокирована, поскольку режим 27 уже был вставлен. В другом примере, на этапе шесть могут быть добавлены две величины сдвига к индексу режима внутреннего предсказания относительно блока сверху, сначала добавляют -1 и затем добавляют 1, либо сначала добавляют 1, а затем добавляют -1, если список режимов MPM все еще остается неполным после добавления одного сдвига.
А когда блок сверху от текущего блока кодирования недоступен, этап шесть не выполняют, а переходят к следующим этапам. После этапа шесть, проверяют, заполнен ли список режимов MPM (число режимов внутреннего предсказания в списке режимов MPM равно 6). Когда список режимов MPM заполнен, построение списка режимов MPM завершают; если список режимов MPM не заполнен (число режимов внутреннего предсказания в списке режимов MPM меньше 6), переходят к следующим этапам.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит:
когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины (например, пороговая величина равна 6), используют список по умолчанию для построения списка режимов MPM.
В одном из примеров, когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, список по умолчанию содержит вертикальный режим (индекс VER_IDX), горизонтальный режим (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), вертикальный диагональный режим (индекс VDIA_IDX) или диагональный режим (индекс DIA_IDX).
В одном из примеров, когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, список по умолчанию содержит вертикальный режим (индекс VER_IDX), горизонтальный режим (индекс HOR_IDX), режим с индексом VER_IDX с добавленным сдвигом -4 или режим с индексом VER_IDX с добавленным сдвигом 4.
В одном из примеров, когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, список по умолчанию содержит вертикальный режим (индекс VER_IDX), горизонтальный режим (индекс HOR_IDX), режим с индексом VER_IDX с добавленным сдвигом 4 или режим с индексом VER_IDX с добавленным сдвигом -4.
В одном из примеров, когда блок слева от текущего блока кодирования недоступен, и когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, список по умолчанию содержит:
вертикальный режим (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), диагональный режим (индекс DIA_IDX) или режим 2 внутреннего предсказания (индекс 2); или
вертикальный режим (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), режим с индексом VER_IDX с добавленным сдвигом -1, и режим с индексом VER_IDX с добавленным сдвигом 1; или
вертикальные режимы (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), режим с индексом VER_IDX с добавленным сдвигом -4, и режим с индексом VER_IDX с добавленным сдвигом 4; или
вертикальные режимы (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), режим с индексом VDIA_IDX с добавленным сдвигом -4, и режим с индексом VER_IDX с добавленным сдвигом -1; или
вертикальные режимы (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), режим с индексом VDIA_IDX с добавленным сдвигом -4, и режим с индексом VER_IDX с добавленным сдвигом +1; или
вертикальные режимы (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), режим с индексом VDIA_IDX с добавленным сдвигом -1, и режим с индексом VER_IDX с добавленным сдвигом -1; или
вертикальные режимы (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), режим с индексом VDIA_IDX с добавленным сдвигом -1, и режим с индексом VER_IDX с добавленным сдвигом 1; или
вертикальные режимы (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), режим с индексом VER_IDX с добавленным сдвигом -1, и режим с индексом VDIA_IDX с добавленным сдвигом -4; или
вертикальные режимы (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), режим с индексом VER_IDX с добавленным сдвигом 1, и режим с индексом VDIA_IDX с добавленным сдвигом -4; или
вертикальные режимы (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), режим с индексом VER_IDX с добавленным сдвигом -1, и режим с индексом VDIA_IDX с добавленным сдвигом -1; или
вертикальные режимы (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), режим с индексом VER_IDX с добавленным сдвигом 1, и режим с индексом VDIA_IDX с добавленным сдвигом -1.
В одном из примеров, когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, блок сверху от текущего блока кодирования недоступен, список по умолчанию содержит:
горизонтальный режим (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), диагональный режим (индекс DIA_IDX) или вертикальный диагональный режим (индекс VDIA_IDX).
В одном из примеров, когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, блок слева от текущего блока кодирования доступен и блок сверху от текущего блока кодирования доступен, список по умолчанию содержит:
вертикальный режим (индекс VER_IDX), горизонтальный режим (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), вертикальный диагональный режим (индекс VDIA_IDX) или диагональный режим (индекс DIA_IDX); или
вертикальный режим (индекс VER_IDX), горизонтальный режим (индекс HOR_IDX), режим с индексом VER_IDX с добавленным сдвигом -4 или режим с индексом VER_IDX с добавленным сдвигом 4; или
вертикальный режим (индекс VER_IDX), горизонтальный режим (индекс HOR_IDX), режим с индексом VER_IDX с добавленным сдвигом 4 или режим с индексом VER_IDX с добавленным сдвигом -4.
В одном из примеров, когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины и блок сверху от текущего блока кодирования недоступен, список по умолчанию содержит:
горизонтальный режим (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), режим с индексом HOR_IDX с добавленным сдвигом -1, и режим с индексом HOR_IDX с добавленным сдвигом 1; или
горизонтальные режимы (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), режим с индексом HOR_IDX с добавленным сдвигом -4, и режим с индексом HOR_IDX с добавленным сдвигом 4; или
горизонтальные режимы (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), режим 2 внутреннего предсказания (2) с добавленным сдвигом 4, и режим с индексом HOR_IDX с добавленным сдвигом -1; или
горизонтальные режимы (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), режим 2 внутреннего предсказания (2) с добавленным сдвигом 4, и режим с индексом HOR_IDX с добавленным сдвигом 1; или
горизонтальный режимы (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), режим 2 внутреннего предсказания (индекс 2) с добавленным сдвигом 1, и режим с индексом HOR_IDX с добавленным сдвигом -1; или
горизонтальные режимы (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), режим 2 внутреннего предсказания (индекс 2) с добавленным сдвигом 1, и режим с индексом HOR_IDX с добавленным сдвигом 1; или
горизонтальные режимы (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), режим с индексом HOR_IDX с добавленным сдвигом -1, и режим 2 внутреннего предсказания (индекс 2) с индексом с добавленным сдвигом 4; или
горизонтальные режимы (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), режим с индексом HOR_IDX с добавленным сдвигом 1, и режим 2 внутреннего предсказания (индекс 2) с индексом с добавленным сдвигом 4; или
горизонтальные режимы (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), режим с индексом HOR_IDX с добавленным сдвигом -1, и режим 2 внутреннего предсказания (индекс 2) с индексом с добавленным сдвигом 1; или
горизонтальные режимы (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), режим с индексом HOR_IDX с добавленным сдвигом 1, и режим 2 внутреннего предсказания (индекс 2) с индексом с добавленным сдвигом 1.
В одной из форм реализации настоящей заявки, когда блок слева от текущего блока кодирования недоступен, блок сверху от текущего блока кодирования может быть доступен или может быть недоступен.
В одной из форм реализации настоящей заявки, когда блок сверху от текущего блока кодирования недоступен, блок слева от текущего блока кодирования может быть доступен или может быть недоступен.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: добавление вертикального режима (индекс VER_IDX), горизонтального режима (индекс HOR_IDX), режима 2 внутреннего предсказания (индекс 2), вертикального диагонального режима (индекс VDIA_IDX) или диагонального режима (индекс DIA_IDX) в список режимов MPM.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, проверку, входит ли первый режим внутреннего предсказания из множества режимов внутреннего предсказания в список режимов MPM, и добавление этого первого режима внутреннего предсказания в список режимов MPM, если этот первый режим внутреннего предсказания не входит в список режимов MPM, где указанное множество режимов внутреннего предсказания содержит вертикальный режим (индекс 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, эту процедуру выполняют итеративно до тех пор, пока список режимов MPM не будет заполнен.
Этап семь: добавление вертикального режима (индекс VER_IDX), горизонтального режима (индекс HOR_IDX), режима 2 внутреннего предсказания (индекс 2), вертикального диагонального режима (индекс VDIA_IDX) или диагонального режима (индекс DIA_IDX) в список режимов MPM.
Например, когда вертикальный режим не входит в список режимов MPM и список режимов MPM не заполнен, добавление этого вертикального режима в список режимов MPM, если после добавления этого вертикального режима список режимов MPM окажется заполнен, завершают построение списка режимов MPM.
А если после добавления этого вертикального режима список режимов MPM будет по-прежнему не заполнен, проверяют, входит ли горизонтальный режим в список режимов MPM. Когда горизонтальный режим входит в список режимов MPM, далее проверяют, входит ли режим 2 внутреннего предсказания в список режимов MPM; если горизонтальный режим не входит в список режимов MPM, добавляют горизонтальный режим в список режимов MPM. Этот этап выполняют итеративно до тех пор, пока список режимов MPM не будет заполнен.
В одной из форм реализации настоящей заявки, на Этапе семь, при наличии списков режимов по умолчанию, при каждой вставке режима по умолчанию в список режимов MPM необходимо убедиться, что дублированных режимов нет. Когда вставка прошла успешно, выполняют другую проверку, чтобы определить, заполнен ли список режимов MPM. Если список заполнен, процедуру заполнения списка режимов MPM завершают; в противном случае продолжают вставку других режимов по умолчанию в заданном порядке.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда блок слева от текущего блока кодирования недоступен и число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины,
проверку, входит ли первый режим внутреннего предсказания из множества режимов внутреннего предсказания в список режимов MPM, и добавление этого первого режима внутреннего предсказания в список режимов MPM, если этот первый режим внутреннего предсказания не входит в список режимов MPM, где указанное множество режимов внутреннего предсказания содержит вертикальный режим (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), диагональный режим (индекс DIA_IDX) или режим 2 внутреннего предсказания (индекс 2).
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит:
когда блок слева от текущего блока кодирования недоступен и когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины,
итеративное добавление режима внутреннего предсказания из множества режимов внутреннего предсказания, содержащего вертикальный режим (индекс VER_IDX), вертикальный диагональный режим (индекс VDIA_IDX), диагональный режим (индекс DIA_IDX) или режим 2 внутреннего предсказания (индекс 2), в соответствии с указанным выше порядком в список режимов MPM, если рассматриваемый режим внутреннего предсказания не входит в список режимов MPM, пока число режимов предсказания в этом списке не станет равно пороговой величине.
В одном из примеров, после этапа шесть, когда список режимов MPM все еще не заполнен и когда блок слева от текущего блока кодирования недоступен, добавляют режимы внутреннего предсказания из списка режимов по умолчанию по порядку в список режимов MPM, когда этот режим или эти режимы не входят в список режимов MPM, этот этап выполняют итеративно до тех пор, пока список режимов MPM не будет заполнен.
Этап семь: добавление вертикального режима (индекс VER_IDX), вертикального диагонального режима (индекс VDIA_IDX), диагонального режима (индекс DIA_IDX) или режима 2 внутреннего предсказания (индекс 2) в список режимов MPM.
Например, когда вертикальный режим не входит в список режимов MPM и список режимов MPM не заполнен, добавляют этот вертикальный режим в список режимов MPM, если после добавления этого вертикального режима список режимов MPM будет заполнен, завершают построение списка режимов MPM.
И если список режимов MPM по-прежнему не заполнен после добавления вертикального режима, проверяют, входит ли вертикальный диагональный режим в список режимов MPM. Если этот вертикальный диагональный режим входит в список режимов MPM, далее проверяют, входит ли диагональный режим в список режимов MPM; если этот диагональный режим не входит в список режимов MPM, добавляют этот диагональный режим в список режимов MPM. Этот этап выполняют итеративно до тех пор, пока список режимов MPM не будет заполнен.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит:
когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, и когда блок сверху от текущего блока кодирования недоступен, проверку, входит ли первый режим внутреннего предсказания из множества режимов внутреннего предсказания в список режимов MPM, и добавление этого первого режима внутреннего предсказания в список режимов MPM, если этот первый режим внутреннего предсказания не входит в список режимов MPM, где указанное множество режимов внутреннего предсказания содержит горизонтальный режим (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), диагональный режим (индекс DIA_IDX) или вертикальный диагональный режим (индекс VDIA_IDX).
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит:
когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, и когда блок сверху от текущего блока кодирования недоступен, итеративное добавление режима внутреннего предсказания из множества режимов внутреннего предсказания, содержащего горизонтальный режим (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), диагональный режим (индекс DIA_IDX) или вертикальный диагональный режим (индекс VDIA_IDX), в соответствии с указанным выше порядком в список режимов MPM, если рассматриваемый режим внутреннего предсказания не входит в список режимов MPM, пока число режимов предсказания в этом списке не станет равно пороговой величине.
В одном из примеров, после этапа шесть, когда список режимов MPM по-прежнему не заполнен, и когда блок сверху от текущего блока кодирования недоступен, добавление режима внутреннего предсказания из списка режимов по умолчанию упорядоченно в список режимов MPM, когда этот режим или эти режимы не входят в список режимов MPM, этот этап выполняют итеративно до тех пор, пока список режимов MPM не будет заполнен.
Этап семь: добавление горизонтального режима (индекс HOR_IDX), режима 2 внутреннего предсказания (индекс 2), диагонального режима (индекс DIA_IDX) или вертикального диагонального режима (индекс VDIA_IDX) в список режимов MPM.
Например, если горизонтальный режим не входит в список режимов MPM и этот список режимов MPM не заполнен, добавляют этот горизонтальный режим в список режимов MPM, если список режимов MPM будет заполнен после добавления горизонтального режима, завершают построение списка режимов MPM.
А если список режимов MPM по-прежнему не заполнен после добавления указанного горизонтального режима, проверяют, входит ли режим 2 внутреннего предсказания в список режимов MPM. Если режим 2 внутреннего предсказания входит в список режимов MPM, далее проверяют, входит ли диагональный режим в список режимов MPM; если этот диагональный режим не входит в список режимов MPM, добавляют этот диагональный режим в список режимов MPM. Этот этап выполняют итеративно до тех пор, пока список режимов MPM не будет заполнен.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины, блок слева от текущего блока кодирования доступен и блок сверху от текущего блока кодирования доступен,
проверку, входит ли первый режим внутреннего предсказания из множества режимов внутреннего предсказания в список режимов MPM, и добавление этого первого режима внутреннего предсказания в список режимов MPM, если этот первый режим внутреннего предсказания не входит в список режимов MPM, где это множество режимов внутреннего предсказания содержит вертикальный режим (индекс 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 не будет заполнен.
Этап семь: добавление вертикального режима (индекс VER_IDX), горизонтального режима (индекс HOR_IDX), режима 2 внутреннего предсказания (индекс 2), вертикального диагонального режима (индекс VDIA_IDX) или диагонального режима (индекс DIA_IDX) в список режимов MPM.
Например, если вертикальный режим не входит в список режимов MPM и список режимов MPM не заполнен, добавляют вертикальный режим в список режимов MPM, если список режимов MPM будет заполнен после добавление этого вертикального режима, завершают построение списка режимов MPM.
А если этот список режимов MPM все еще не заполнен после добавления указанного вертикального режима, проверяют, входит ли горизонтальный режим в список режимов MPM. Если горизонтальный режим входит в список режимов MPM, дополнительно проверяют, входит ли режим 2 внутреннего предсказания в список режимов MPM; если этот режим 2 внутреннего предсказания не входит в список режимов MPM, добавляют режим 2 внутреннего предсказания в список режимов MPM. Этот этап выполняют итеративно до тех пор, пока список режимов MPM не будет заполнен.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: добавление вертикального режима (индекс VER_IDX), горизонтального режима (индекс HOR_IDX), режима с индексом VER_IDX с добавленным сдвигом -4 или режима с индексом VER_IDX с добавленным сдвигом 4 в список режимов MPM.
В одной из форм реализации настоящей заявки, этот способ дополнительно содержит: добавление вертикального режима (индекс VER_IDX), горизонтального режима (индекс HOR_IDX), режима с индексом VER_IDX с добавленным сдвигом 4 или режима индекса VER_IDX с добавленным сдвигом -4 в список режимов MPM.
В одном из примеров, после этапа шесть, если список режимов MPM все еще не заполнен, добавляют режим внутреннего предсказания из списка режимов по умолчанию в список режимов MPM, если этот режим или эти режимы не входят в список режимов MPM, итеративно выполняют этот этап до тех пор, пока список режимов MPM не будет заполнен.
Этап семь: добавление вертикального режима (индекс VER_IDX), горизонтального режима (индекс HOR_IDX), режим с индексом VER_IDX с добавленным сдвигом -4 или режим с индексом VER_IDX с добавленным сдвигом 4 в список режимов MPM; или добавление вертикального режима (индекс VER_IDX), горизонтального режима (индекс HOR_IDX), режима с индексом VER_IDX с добавленным сдвигом 4 или режима с индексом VER_IDX с добавленным сдвигом -4 в список режимов MPM.
Например, если вертикальный режим не входит в список режимов MPM и этот список режимов MPM не заполнен, добавляют вертикальный режим в список режимов MPM, если же список режимов MPM будет заполнен после добавления этого вертикального режима, завершают построение списка режимов MPM.
И если список режимов MPM все еще не заполнен после добавления указанного вертикального режима, проверяют, входит ли горизонтальный режим в список режимов MPM. Если этот горизонтальный режим входит в список режимов MPM, дополнительно проверяют, входит ли режим предсказания, величина индекса которого равна величине индекса VER_IDX с добавленным сдвигом -4, в список режимов MPM; если режим предсказания, индекс которого равен величине индекса VER_IDX с добавленным сдвигом -4, не входит в список режимов MPM, добавляют этот режим предсказания, величина индекса которого равна величине индекса VER_IDX с добавленным сдвигом -4, в список режимов MPM. Этот этап выполняют итеративно до тех пор, пока список режимов MPM не будет заполнен.
В одном из примеров, после этапа шесть, если список режимов MPM по-прежнему не заполнен и если блок слева от текущего блока кодирования недоступен, добавляют режим внутреннего предсказания из списка режимов по умолчанию в список режимов MPM, если этот режим или эти режимы не входят в список режимов MPM, итеративно выполняют этот этап до тех пор, пока список режимов MPM не будет заполнен.
Этап семь: добавление вертикального режима (индекс VER_IDX), вертикального диагонального режима (индекс VDIA_IDX), диагонального режима (индекс DIA_IDX) или режима 2 внутреннего предсказания (индекс 2) в список режимов MPM.
Например, если вертикальный режим не входит в список режимов MPM и если список режимов MPM не заполнен, добавляют этот вертикальный режим в список режимов MPM, если после добавления этого вертикального режима список режимов MPM будет заполнен, завершают построение этого списка режимов MPM.
А если после добавления этого вертикального режима список режимов MPM будет по-прежнему не заполнен, проверяют, входит ли вертикальный диагональный режим в этот список режимов MPM. Если этот вертикальный диагональный режим входит в список режимов MPM, далее проверяют, входит ли диагональный режим в этот список режимов MPM; если этот диагональный режим не входит в список режимов MPM, добавляют этот диагональный режим в список режимов MPM. Этот этап выполняют итеративно до тех пор, пока список режимов MPM не будет заполнен.
В одном из примеров, после этапа шесть, если список режимов MPM по-прежнему не заполнен, и если блок сверху от текущего блока кодирования недоступен, добавляют режим внутреннего предсказания из списка режимов по умолчанию в список режимов MPM, если этот режим или эти режимы не входят в список режимов MPM, итеративно выполняют этот этап до тех пор, пока список режимов MPM не будет заполнен.
Этап семь: добавление горизонтального режима (индекс HOR_IDX), режима 2 внутреннего предсказания (индекс 2), диагонального режима (индекс DIA_IDX) или вертикального диагонального режим (индекс VDIA_IDX) в список режимов MPM.
Например, когда горизонтальный режим не входит в список режимов MPM, и этот список режимов MPM не заполнен, добавляют этот горизонтальный режим в список режимов MPM, если после добавления этого горизонтального режима список режимов MPM будет заполнен, завершают построение этого списка режимов MPM.
А если список режимов MPM по-прежнему не заполнен после добавления горизонтальный режим, проверяют, входит ли режим 2 внутреннего предсказания в список режимов MPM. Когда этот режим 2 внутреннего предсказания входит в список режимов MPM, дополнительно проверяют, входит ли диагональный режим в список режимов MPM; если этот диагональный режим не входит список режимов MPM, добавляют этот диагональный режим в список режимов MPM. Этот этап выполняют итеративно до тех пор, пока список режимов MPM не будет заполнен.
В одном из примеров, после этапа шесть, если список режимов MPM все еще не заполнен, блок слева от текущего блока кодирования доступен и блок сверху от текущего блока кодирования доступен, добавляют режим внутреннего предсказания из списка режимов по умолчанию в список режимов MPM, если этот режим или эти режимы не входят в список режимов MPM, итеративно выполняют этот этап до тех пор, пока список режимов MPM не будет заполнен.
Этап семь: добавление вертикального режима (индекс VER_IDX), горизонтального режима (индекс HOR_IDX), режима с индексом VER_IDX с добавленным сдвигом -4 или режима с индексом VER_IDX с добавленным сдвигом 4 в список режимов MPM.
В одном из примеров, готовят предварительно заданные режимы по умолчанию: а именно, вертикальный режим (индекс VER_IDX), горизонтальный режим (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), вертикальный диагональный режим (индекс VDIA_IDX) или диагональный режим (индекс DIA_IDX), для построения списка режимов MPM, когда этот список не заполнен. Предложены два дополнительных подхода относительно этих режимов по умолчанию. Это адаптивный подход по умолчанию и измененный подход по умолчанию.
Подход, использующий адаптивные режимы, рассматривает блоки, расположенные на левом крае и на верхнем крае кадра.
Для блоков, расположенных на левой границе кадра, горизонтальный режим вряд ли используется, поскольку исходные отсчеты для предсказания, которые в этом случае должны располагаться в блоке слева от текущего блока, не существуют. Кроме того, режимы, которые в общем случае используют горизонтальные режимы (т.е. режим с индексом DIA_IDX, режим 2), имеют меньшую вероятность применения.
Для блоков, расположенных на верхней границе кадра, вертикальный режим вряд ли используется, поскольку исходные отсчеты для предсказания, которые в этом случае должны располагаться в блоке сверху от текущего блока, не существуют. Кроме того, режимы, которые в общем случае используют вертикальные режимы (т.е. режимы с индексами VDIA_IDX, DIA_IDX), имеют меньшую вероятность применения.
Поэтому используется следующий подход с учетом границ:
Когда блок слева от текущего блока кодирования не существует, тогда используют следующие режимы по порядку перечисления в качестве режимов-кандидатов по умолчанию: режимы с индексами VER_IDX, VDIA_IDX, DIA_IDX и режим 2.
В противном случае (блок слева существует):
Когда блок сверху от текущего блока кодирования не существует, тогда используют следующие режимы по порядку перечисления в качестве режимов-кандидатов по умолчанию: режим с индексом HOR_IDX, режим 2, режимы с индексами DIA_IDX, VDIA_IDX.
В противном случае (блок сверху существует), используют нормальные режимы по умолчанию: режимы с индексами VER_IDX, HOR_IDX, режим 2 внутреннего предсказания (2), режим с индексом VDIA_IDX или режим с индексом DIA_IDX.
Подход с измененными режимами по умолчанию добавляет следующие режимы-кандидаты по умолчанию в список режимов MPM: режимы с индексами VER, HOR, VER-4, VER+4. Порядок режимов с индексами VER-4 и VER+4 может быть обменен.
Одна из комбинаций этих двух способов может представлять собой:
Когда блок слева от текущего блока кодирования не существует, тогда используют следующие режимы по порядку перечисления в качестве режимов-кандидатов по умолчанию: режимы с индексами VER_IDX, VDIA_IDX, DIA_IDX, режим 2.
В противном случае (блок слева существует):
Когда блок сверху от текущего блока кодирования не существует, тогда используют следующие режимы по порядку перечисления в качестве режимов-кандидатов по умолчанию: режим с индексом HOR_IDX, режим 2, режимы с индексами DIA_IDX, VDIA_IDX.
В противном случае (блок сверху существует), используют измененные режимы по умолчанию: режимы с индексами VER_IDX, HOR_IDX, VER, HOR, VER-4, VER+4.
Согласно одному из аспектов настоящего изобретения, предложен упрощенный способ построения 6-входового списка режимов MPM, содержащий: проверку доступности блока слева от текущих единиц кодирования. Положение этого блока слева иллюстрировано на фиг. 5, где этот блок слева маркирован “L”.
Блок слева недоступен, когда из этого блока слева не может быть выведена информация о внутреннем предсказании (т.е. режим внутреннего предсказания). Сюда входят следующие случаи:
Блок слева не является блоком, предсказанным в режиме внутреннего предсказания. Блок слева не существует, например, текущий блок представляет собой блок кодирования, расположенный на левом крае кадра. Когда кодирующее устройство или декодирующее устройство поддерживает параллельную обработку, блок слева может считаться несуществующим (или недоступным), когда он расположен в плитке, отличной от плитки, где находится текущий блок, т.е. этот текущий блок кодирования располагается или располагался на левом крае плитки.
В другом примере, когда кодирующее устройство или декодирующее устройство не поддерживает параллельную обработку, блок слева может считаться доступным, когда он расположен в разных плитках с текущим блоком, т.е. текущий блок кодирования располагается на левом крае плитки.
Когда кодирующее устройство или декодирующее устройство поддерживает параллельную обработку, блок слева может считаться несуществующим, когда он и текущий блок располагаются в разных срезах, т.е. текущий блок кодирования располагается на левом крае среза.
В другом примере, когда кодирующее устройство или декодирующее устройство не поддерживает параллельную обработку, блок слева может считаться доступным, когда он расположен в разных срезах с текущим блоком, т.е. текущий блок кодирования располагается на левом крае среза.
Противный случай (т.е. блок слева доступен), содержит режим внутреннего предсказания относительно блока слева в имеющем 6 входов списке режимов MPM.
Проверяют доступность блока сверху относительно текущих единиц кодирования. Расположение такого блока сверху иллюстрировано на фиг. 5, где этот блок сверху маркирован “A”.
Блок сверху недоступен, когда из этого блока сверху не может быть выведена информация о внутреннем предсказании (т.е. режим внутреннего предсказания). Сюда входят следующие случаи:
Блок сверху не является блоком, предсказанным в режиме внутреннего предсказания.
Блок сверху не существует. Например, текущий блок представляет собой блок кодирования, расположенный на верхнем крае кадра.
Когда кодирующее устройство или декодирующее устройство поддерживает параллельную обработку, блок сверху может считаться несуществующим (или недоступным), когда он расположен в плитке, отличной от плитки, где находится текущий блок, т.е. этот текущий блок кодирования располагается на верхнем крае плитки.
В другом примере, когда кодирующее устройство или декодирующее устройство не поддерживает параллельную обработку, блок сверху может считаться доступным, когда он расположен в разных плитках с текущим блоком, т.е. текущий блок кодирования располагается на верхнем крае плитки.
Когда кодирующее устройство или декодирующее устройство поддерживает параллельную обработку, блок сверху может считаться несуществующим, когда он и текущий блок располагаются в разных срезах, т.е. текущий блок кодирования располагается на верхнем крае среза.
В другом примере, когда кодирующее устройство или декодирующее устройство не поддерживает параллельную обработку, блок сверху может считаться доступным, когда он расположен в разных срезах с текущим блоком, т.е. текущий блок кодирования располагается на верхнем крае среза.
Когда нужно ограничить размер буфера строки в кодирующем устройстве или декодирующем устройстве, блок сверху может считаться несуществующим, когда он располагается в другой единице CTU относительно текущего блока, т.е. этот текущий блок кодирования располагается на верхнем крае текущей единицы CTU.
В одном из примеров, когда сторона декодирующего устройства или сторона кодирующего устройства поддерживает ограничение размера буфера строки, тогда блок сверху, который располагается в единице CTU, отличной от единицы CTU, где находится текущий блок, считается несуществующим. Когда ограничение размера буфера строки не поддерживается, тогда блок считается существующим.
Противный случай (т.е. блок слева доступен), содержит режим внутреннего предсказания относительно блока сверху в имеющем 6 входов списке режимов MPM.
Проверяют, был ли введен планарный (PLANAR_IDX=0) режим в список режимов MPM, (т.е. проверяют, является какой-либо из режимов внутреннего предсказания относительно блока слева или блока сверху планарным режимом), только если планарный режим не был вставлен в список режимов MPM, тогда вставляют планарный режим в список режимов MPM. Проверяют, был ли введен DC-режим (DC_IDX=1) в список режимов MPM, (т.е. проверяют, является какой-либо из режимов внутреннего предсказания относительно блока слева или блока сверху DC-режимом), только если DC-режим не был вставлен в список режимов MPM, тогда вставляют этот DC-режим в список режимов MPM.
Когда блок слева доступен и когда режим внутреннего предсказания относительно этого блока является угловым режимом, т.е. (режим с индексом > DC_IDX, и его можно назвать угловым режима предсказания относительно блока слева (режим с индексом angularLeft)), получают индексы двух ближайших к нему угловых режимов путем вычисления индексов angularLeft-1, angularLeft+1. Отметим, что операция добавления сдвига -1 или +1 может содержать операцию перехода по кругу вверх или вниз, например,
Когда индекс angularLeft режима равен 2, тогда индекс angularLeft-1 будет равен 66 (операция перехода по кругу вверх), или когда индекс angularLeft режима равен 66, тогда индекс angularLeft+1 будет равен 2 (операция перехода по кругу вниз).
Когда режим предсказания с индексом angularLeft-1 не был вставлен в список режимов MPM, его вставляют в этот список режимов MPM.
Когда режим предсказания с индексом angularLeft+1 не был вставлен в список режимов MPM, его вставляют в этот список режимов MPM.
Когда список режимов MPM не заполнен, и когда блок сверху доступен, и когда режим внутреннего предсказания относительно этого блока является угловым режимом, т.е. (индекс режима > DC_IDX, его можно назвать угловым режимом предсказания относительно блока сверху (режим с индексом angularAbove)), получают индексы двух ближайших к нему угловых режим путем вычисления индексов angularAbove-1, angularAbove+1. Отметим, что операция добавления сдвига -1 или +1 может содержать операцию перехода по кругу вверх или вниз, в одном из примеров, когда индекс angularLeft режима равен 2, тогда индекс angularLeft-1 режима будет равен 66 (операция перехода по кругу вверх), или когда индекс angularLeft режима равен 66, тогда индекс angularLeft+1 режима будет равен 2 (операция перехода по кругу вниз).
Когда режим предсказания с индексом angularAbove-1 не был вставлен в список режимов MPM, его вставляют в этот список режимов MPM.
Если список режимов MPM не заполнен (например, число режимов внутреннего предсказания в списке режимов MPM меньше 6) и если режим предсказания с индексом angularAbove+1 не был вставлен в список режимов MPM, его вставляют в этот список режимов MPM.
Когда список режимов MPM не заполнен, вставляют следующие режимы в список режимов MPM до тех пор, пока он не будет заполнен (например, число режимов внутреннего предсказания в списке режимов MPM равно 6):
вертикальный режим (индекс VER_IDX), горизонтальный режим (индекс HOR_IDX), режим 2 внутреннего предсказания (индекс 2), вертикальный диагональный режим (индекс VDIA_IDX) или диагональный режим (индекс DIA_IDX).
Краткая сводка вариаций предлагаемого способа:
Доступность блока слева должна учитывать оба фактора – поддерживается или не поддерживается параллельная обработка.
Доступность блока сверху должна учитывать оба фактора – поддерживается или не поддерживается параллельная обработка.
Для получения двух ближайших режимов относительно блока слева или относительно блока сверху к индексу основного режима можно также добавить сначала +1, а затем -1.
Последний кандидат в список режимов MPM может иметь индекс VIDA_IDX или DIA_IDX.
Вставка может также осуществляться в следующем порядке – режим слева, режим сверху, планарный режим, DC-режим и режимы по умолчанию (режимы с индексами VER_IDX, HOR_IDX, 2, VDIA_IDX или DIA_IDX).
Для передачи сигнализации индекса mpm_idx используется усеченная унарная бинаризация. Первые три пакета индекса mpm_idx могут использовать три разных независимых контекста или все пакеты индекса mpm_idx кодируют с использованием контекстно-адаптивное двоичное арифметическое кодирование (CABAC).
В одном из примеров, предложена процедура деривации режима внутреннего предсказания для яркостной составляющей.
Входными данными для этой процедуры являются следующие:
яркостная позиция (xCb , yCb), специфицирующая верхний-левый отсчет текущего яркостного блока кодирования относительно верхнего-левого отсчета текущего изображения,
переменная cbWidth, специфицирующая ширину текущего блока кодирования в яркостных отсчетах,
переменная cbHeight, специфицирующая высоту текущего блока кодирования в яркостных отсчетах.
В этой процедуре получают режим внутреннего предсказания IntraPredModeY[ xCb ][ yCb ] яркостной составляющей.
Таблица 2 специфицирует величину индекса режима внутреннего предсказания IntraPredModeY[ xCb ][ yCb ] и ассоциированные имена.
Таблица 2. – Спецификация режима внутреннего предсказания и ассоциированные имена
Режим внутреннего предсказания
Ассоциированное имя
0
INTRA_PLANAR
1
INTRA_DC
2..66
INTRA_ANGULAR2..INTRA_ANGULAR66
77
INTRA_CCLM
Примечание: Режим внутреннего предсказания INTRA_CCLM применим только к цветностным составляющим.
Режим IntraPredModeY[ xCb ][ yCb ] определяют посредством следующих упорядоченных этапов:
Соседним позициям ( xNbA, yNbA ) и ( xNbB, yNbB ) присваивают координаты (xCb − 1, yCb + cbHeight - 1) и ( xCb + cbWidth - 1, yCb − 1 ), соответственно.
В случае замены X на A или B, переменные candIntraPredModeX и addModeX получают следующим образом:
Процедура деривации доступности для блока, как это специфицировано в пункте 6.4.X [Ed. (BB): Процедура проверки доступности соседних блоков (Neighbouring blocks availability checking process) tbd] привлекается так, что в качестве входных данных позиции (xCurr, yCurr) присваивают координаты (xCb, yCb) и соседней позиции (xNbY, yNbY) присваивают координаты (xNbX, yNbX), а выходными данными назначают переменную availableX.
Режимы-кандидаты внутреннего предсказания candIntraPredModeX и addModeX are получают следующим образом:
Когда одно или несколько из следующих условий являются истинными (выполняются), величину candIntraPredModeX устанавливают равной величине, отличной от интервала 0 – 66 (например, величине -1), включительно, и параметр addModeX устанавливают равным FALSE (ложно).
Переменная availableX равна FALSE.
Параметр CuPredMode[ xNbX ][ yNbX ] не равен MODE_INTRA.
X равно B и yCb − 1 меньше чем ( ( yCb >> CtbLog2SizeY ) << CtbLog2SizeY ).
В противном случае, параметр candIntraPredModeX устанавливают равным IntraPredModeY[ xNbX ][ yNbX ], а параметр addModeX устанавливают равным TRUE. Переменную mIdx устанавливают равной 0. Параметр candModeList[ x ] при x = 0..5 получают следующим образом:
Найденный режим представляет собой угловой режим, когда и только когда его индекс находится между 2 и 66, включительно.
Когда один из режимов candIntraPredModeA и candIntraPredModeB является угловым режимом, применимо следующее:
candModeList[ 0 ] = INTRA_PLANAR
candModeList[ 1 ] = INTRA_DC
candModeList[ 2 ] = INTRA_ANGULAR50
candModeList[ 3 ] = INTRA_ANGULAR18
candModeList[ 4 ] = INTRA_ANGULAR46
candModeList[ 5 ] = INTRA_ANGULAR54
В противном случае (по меньшей мере один из режимов candIntraPredModeA и candIntraPredModeB является угловым режимом).
Когда параметр addModeA равен TRUE, параметр candModeList [ mIdx ] устанавливают равным candIntraPredModeA и индекс mIdx увеличивают на 1.
Когда параметр addModeB равен TRUE и индекс mIdx равен 0, параметр candModeList [ mIdx ] устанавливают равным candIntraPredModeB и индекс mIdx увеличивают на 1.
Когда параметр addModeB равен TRUE и индекс mIdx равен 1 и параметр candIntraPredModeB не равен candModeList [0], параметр candModeList [ mIdx] устанавливают равным candIntraPredModeB и индекс mIdx увеличивают на 1.
Когда параметр INTRA_PLANAR не равен candModeList [ i ] для любого i=0.. mIdx − 1, параметр modeList[ mIdx ] устанавливают равным INTRA_PLANAR и индекс mIdx увеличивают на 1.
Когда параметр INTRA_DC не равен candModeList [ i ] для любого i=0.. mIdx − 1, параметр modeList[ mIdx ] устанавливают равным INTRA_DC и индекс mIdx увеличивают на 1.
Когда оба параметра candIntraPredModeA и candIntraPredModeB между индексами режимов 2 и 66 и параметр candIntraPredModeA не равен параметру candIntraPredModeB,
Устанавливают переменную angMinus равной 2 + ( (candIntraPredModeA + 62 ) % 65 ),
Устанавливают переменную angPlus равной 2 + ( (candIntraPredModeA - 1 ) % 65 ).
Когда параметр candIntraPredModeB равен angMinus, тогда
параметр candModeList [ mIdx ] устанавливают равным 2 + ( (candIntraPredModeB+ 62 ) % 65 ) и индекс mIdx увеличивают на 1.
параметр candModeList [ mIdx ] устанавливают равным angPlus.
В противном случае параметр (candIntraPredModeB не равен angMinus)
параметр candModeList [ mIdx ] устанавливают равным angMinus и индекс mIdx увеличивают на 1.
Когда параметр candIntraPredModeB равен angPlus, параметр candModeList [ mIdx ] устанавливают равным 2 + ( (candIntraPredModeB-1 ) % 65 )
В противном случае параметр (candIntraPredModeB не равен angPlus), параметр candModeList [ mIdx ] устанавливают равным angPlus
В противном случае (только параметр candIntraPredModeA находится между индексами режимов 2 и 66, или только параметр candIntraPredModeB находится между индексами режимов 2 и 66, или параметр candIntraPredModeA равен candIntraPredModeB и все они находятся между индексами режимов 2 и 66)
Когда параметр candIntraPredModeA больше индекса режима 2, переменную Angular устанавливают равной candIntraPredModeA
В противном случае (параметр candIntraPredModeA не больше индекса режима 2), переменную Angular устанавливают равной candIntraPredModeB
Когда переменная Angular находится между индексами режимов 49 и 51, включительно, переменную finalMode устанавливают равной 18.
В противном случае (переменная Angular не находится между индексами режимов 49 и 51, включительно), переменную finalMode устанавливают равной 50.
Параметр candModeList [ mIdx ] устанавливают равным 2 + ( (Angular + 62 ) % 65 ) и индекс mIdx увеличивают на 1.
Параметр candModeList [ mIdx ] устанавливают равным 2 + ( (Angular - 1 ) % 65 ) и индекс mIdx увеличивают на 1.
Параметр candModeList [ mIdx ] устанавливают равным finalMode.
Параметр IntraPredModeY[ xCb ][ yCb ] получают посредством следующей процедуры:
Когда параметр intra_luma_mpm_flag[ xCb ][ yCb ] равен 1, параметр IntraPredModeY[ xCb ][ yCb ] устанавливают равным candModeList[ intra_luma_mpm_idx[ xCb ][ yCb ] ].
В противном случае, параметр IntraPredModeY[ xCb ][ yCb ] получают в результате следующих упорядоченных этапов:
Массив candModeList[ x ], x = 0..5 модифицируют посредством следующих упорядоченных этапов:
Для i последовательно равного с 0 по 4, включительно, применяют:
Для j последовательно равного с i+1 по 5, включительно, сравнивают параметр candModeList[ i ] с candModeList [ j ],
Когда параметр candModeList[ i ] больше candModeList[ j ], обе величины обменивают следующим образом:
(candModeList[ i ], candModeList[ j ] ) = Swap( candModeList[ i ], candModeList[ j ] )
Параметр IntraPredModeY[ xCb ][ yCb ] получают в результате следующих упорядоченных этапов:
Параметр IntraPredModeY[ xCb ][ yCb ] устанавливают равным intra_luma_mpm_remainder[ xCb ][ yCb ].
Для i равного с 0 по5, включительно, когда параметр IntraPredModeY[ xCb ][ yCb ] не меньше candModeList[ i ], величину параметра IntraPredModeY[ xCb ][ yCb ] увеличивают на единицу.
Переменную IntraPredModeY[ x ][ y ] при x = xCb..xCb + cbWidth − 1 и y = yCb..yCb + cbHeight − 1 устанавливают равной IntraPredModeY[ xCb ][ yCb ].
Настоящее изобретение имеет целью усовершенствовать схему сигнализации о режиме внутреннего предсказания. Настоящее изобретение предлагает способ видео декодирования и видео декодирующее устройство.
На фиг. 7 показан пример 67 режимов внутреннего предсказания, например, как предложено для кодирования VVC, совокупность режимов внутреннего предсказания из 67 режимов внутреннего предсказания содержит: планарный режим (индекс 0), dc-режим (индекс 1) и угловые режимы с индексами 2 – 66, где левый нижний угловой режим фиг. 7 имеет индекс 2 и нумерация индексов увеличивается до тех пор, пока не будет достигнут индекс 66, которому соответствует крайний верхний правый угловой режим, показанный на фиг. 7.
Согласно другому аспекту настоящего изобретения, предложено декодирующее устройство, содержащее процессорную схему, конфигурированную для осуществления описанных выше способов декодирования.
Согласно другому аспекту настоящего изобретения, предложен компьютерный программный продукт, содержащий программный код для осуществления описанных выше способов декодирования.
Согласно другому аспекту настоящего изобретения, предложено декодирующее устройство для декодирования видео данных, это декодирующее устройство содержит: один или несколько процессоров; и энергонезависимый читаемый компьютером носитель для хранения информация, соединенный с процессорами и сохраняющий программы для выполнения этими процессорами, где эти программы, при выполнении их процессорами, конфигурируют декодирующее устройство для осуществления описанных выше способов декодирования.
Процессорная схема может быть реализована аппаратно или посредством сочетания аппаратуры и программного обеспечения, например, в виде процессора, программируемого соответствующим программным обеспечением, или другого подобного устройства.
Согласно другому аспекту настоящего изобретения, предложен способ кодирования, содержащий: получение одного режима внутреннего предсказания для блока изображения из совокупности нескольких режимов внутреннего предсказания, эта совокупность режимов внутреннего предсказания для блока изображения содержит множество наиболее вероятных режимов, MPM, и множество режимов не-MPM, где это множество режимов не-MPM содержит первое множество режимов внутреннего предсказания и второе множество режимов внутреннего предсказания; если режим внутреннего предсказания входит в множество режимов не-MPM, генерацию соотношения отображения между по меньшей мере одним режимом внутреннего предсказания из первого множества режимов внутреннего предсказания и по меньшей мере одним режимом внутреннего предсказания из множества режимов не-MPM; кодирование этого режима внутреннего предсказания для блока изображения с целью получения кодового слова относительно режима внутреннего предсказания в соответствии с соотношением отображения.
В одной из форм реализации настоящей заявки, процедура получения режима внутреннего предсказания для блока изображения может ссылаться на соответствующие фрагменты приведенного ниже подробного описания части вариантов изобретения и на соответствующие моменты в области технологии видео кодирования, такие как стандарты ITU-T H.264, ITU-T H.265.
В одной из форм реализации настоящей заявки, способ кодирования далее содержит: генерацию множества режимов MPM и определение, входит ли рассматриваемый режим внутреннего предсказания для блока изображения во множество режимов MPM. Следовательно, когда режим внутреннего предсказания для блока изображения не входит во множество режимов MPM, тогда этот режим внутреннего предсказания для блока изображения входит во множество режимов не-MPM.
Процедура генерации множества режимов MPM может ссылаться на соответствующие фрагменты в описании изобретения или на соответствующие моменты в области технологии видео кодирования, такие как стандарты ITU-T H.264, ITU-T H.265.
В одной из форм реализации настоящей заявки, процедура генерации соотношения отображения между по меньшей мере одним режимом внутреннего предсказания из первого множества режимов внутреннего предсказания и по меньшей мере одним режимом внутреннего предсказания из множества режимов не-MPM может ссылаться на соответствующее описание на стороне декодирования.
В одной из форм реализации настоящей заявки, первое множество режимов внутреннего предсказания кодируют с использованием 5 бит, а второе множество режимов внутреннего предсказания кодируют с использованием 6 бит.
Согласно другому аспекту настоящего изобретения, предложено кодирующее устройство, содержащее процессорную схему, конфигурируемую для осуществления описанных выше способов кодирования.
Согласно другому аспекту настоящего изобретения, предложен компьютерный программный продукт, содержащий программный код для осуществления описываемых выше способов кодирования.
Согласно другому аспекту настоящего изобретения, предложено кодирующее устройство для кодирования видео данных, где это кодирующее устройство содержит: один или несколько процессоров; и энергонезависимый читаемый компьютером носитель для хранения информация, соединенный с этими процессорами и сохраняющий программы для выполнения процессорами, где эти программы, при выполнении их процессорами, конфигурируют кодирующее устройство для осуществления описанных выше способов кодирования.
Процессорная схема может быть реализована аппаратно или посредством сочетания аппаратуры и программного обеспечения, например, в виде процессора, программируемого соответствующим программным обеспечением, или другого подобного устройства.
Вариант 1. Способ построения списка наиболее вероятных режимов (Most Probable Mode, MPM) для внутреннего предсказания, способ содержит:
определение, доступен ли блок слева (например, блок L на фиг. 5) от текущего блока кодирования или нет (например, если нет режима внутреннего предсказания относительно блока слева, тогда этот блок слева недоступен, а если имеется режим внутреннего предсказания относительно блока слева, тогда этот блок слева доступен);
определение, доступен ли блок сверху (например, блок A на фиг. 5) от текущего блока кодирования или нет (например, если нет режима внутреннего предсказания относительно блока сверху, тогда этот блок сверху недоступен, а если имеется режим внутреннего предсказания относительно блока сверху, тогда этот блок сверху доступен);
использование планарного режима, DC-режима, вертикального режима (индекс VER_IDX), горизонтального режима (индекс HOR_IDX), режима внутреннего предсказания, соответствующего этому вертикальному режиму со сдвигом -4, режима внутреннего предсказания, соответствующего этому вертикальному режиму со сдвигом 4 (например, список режимов MPM имеет вид (0, 1, 50, 18, 46, 54), величина индекса 0 соответствует планарному режиму, величина индекса 1 соответствует DC-режиму, величина индекса 50 соответствует вертикальному режиму, величина индекса 18 соответствует горизонтальному режиму, величина индекса 46 соответствует режиму внутреннего предсказания, соответствующему вертикальному режиму со сдвигом -4, величина индекса 54 соответствует режиму внутреннего предсказания, соответствующему вертикальному режиму со сдвигом 4),
когда удовлетворяется одно из следующих условий:
блок слева от текущего блока кодирования недоступен и блок сверху от текущего блока кодирования недоступен;
блок слева от текущего блока кодирования недоступен, блок сверху от текущего блока кодирования доступен и режим внутреннего предсказания относительно блока сверху представляет собой планарный режим;
блок слева от текущего блока кодирования недоступен, блок сверху от текущего блока кодирования доступен и режим внутреннего предсказания относительно блока сверху представляет собой DC-режим;
блок слева от текущего блока кодирования доступен, блок сверху от текущего блока кодирования недоступен и режим внутреннего предсказания относительно блока слева представляет собой планарный режим;
блок слева от текущего блока кодирования доступен, блок сверху от текущего блока кодирования недоступен и режим внутреннего предсказания относительно блока слева представляет собой планарный режим DC-режим;
блок слева от текущего блока кодирования доступен, блок сверху от текущего блока кодирования доступен и режим внутреннего предсказания относительно блока слева не является угловым режимом (т.е. режим внутреннего предсказания относительно блока слева представляет собой планарный режим или DC-режим), и режим внутреннего предсказания относительно блока сверху не является угловым режимом (т.е. режим внутреннего предсказания относительно блока сверху представляет собой планарный режим или DC-режим).
Вариант 2. Способ построения списка наиболее вероятных режимов, MPM, для внутреннего предсказания, способ содержит:
определение, доступен ли блок слева (например, блок L на фиг. 5) от текущего блока кодирования или нет (например, если нет режима внутреннего предсказания относительно блока слева, тогда этот блок слева недоступен, а если имеется режим внутреннего предсказания относительно блока слева, тогда этот блок слева доступен, и если блок слева доступен, получают режим внутреннего предсказания относительно этого блока сверху);
когда блок слева доступен (например, режим внутреннего предсказания относительно блока слева является угловым режимом, что означает, что величина индекса, соответствующая этому режиму внутреннего предсказания относительно блока слева, не меньше 2, диапазон этих величин индекса может составлять от 2 до 66; величина индекса, соответствующая этому режиму внутреннего предсказания относительно блока слева, равна 0 (планарный режим) или 1 (DC-режим)), добавление режима внутреннего предсказания относительно блока слева в список режимов MPM (например, первоначальный список режимов MPM является пустым списком, и на этом этапе добавляют рассматриваемый режим внутреннего предсказания относительно блока слева в список режимов MPM).
Вариант 3. Способ построения списка наиболее вероятных режимов, MPM, для внутреннего предсказания, способ содержит:
определение, доступен ли блок сверху (например, блок A на фиг. 5) от текущего блока кодирования или нет (например, если нет режима внутреннего предсказания относительно блока сверху, тогда этот блок сверху недоступен, а если имеется режим внутреннего предсказания относительно блока сверху, тогда этот блок сверху доступен, и если блок сверху доступен, получают режим внутреннего предсказания относительно этого сверху);
когда блок сверху доступен (например, режим внутреннего предсказания относительно блока сверху является угловым режимом, что означает, что величина индекса, соответствующая этому режиму внутреннего предсказания относительно блока сверху, не меньше 2, диапазон этих величин индекса может составлять от 2 до 66, эта величина индекса может быть также равна 66; или величина индекса, соответствующая этому режиму внутреннего предсказания относительно блока сверху, равна 0 (планарный режим) или 1 (DC-режим)), и рассматриваемый режим внутреннего предсказания относительно блока сверху не входит в список режимов MPM, добавление режима внутреннего предсказания относительно блока сверху в список режимов MPM (например, первоначальный список режимов MPM является пустым списком, и на этом этапе добавляют рассматриваемый режим внутреннего предсказания относительно блока сверху в список режимов MPM; или этот список режимов MPM содержит режим внутреннего предсказания относительно блока слева, и рассматриваемый режим внутреннего предсказания относительно блока сверху отличается от указанного режима внутреннего предсказания относительно блока слева, так что рассматриваемый режим внутреннего предсказания относительно блока сверху добавляют в список режимов MPM, в списке режимов MPM присутствуют два режима внутреннего предсказания (одна величина индекса соответствует режиму внутреннего предсказания относительно блока слева и одна величина индекса соответствует режиму внутреннего предсказания относительно блока сверху)).
Вариант 4. Способ согласно варианту 2 или 3, где этот способ дополнительно содержит:
когда блок слева не доступен или режим внутреннего предсказания относительно этого блока слева не является угловым режимом (например, нет режима внутреннего предсказания относительно левого блока, или режим внутреннего предсказания относительно блока слева является планарным режимом, или режим внутреннего предсказания относительно блока слева является DC-режимом), и режим внутреннего предсказания относительно блока сверху является угловым режимом (например, величина индекса, соответствующая режиму внутреннего предсказания относительно блока сверху, не меньше 2, диапазон величин индекса может быть от 2 до 66, эта величина индекса также может быть равна 66),
и если режим внутреннего предсказания относительно блока сверху не входит в список режимов MPM, добавление режима внутреннего предсказания относительно блока сверху в список режимов MPM (в одном из примеров, если первоначальный список режимов MPM является пустым списком, или только не содержит угловых режимов, если блок слева недоступен или режим внутреннего предсказания относительно блока сверху не является угловым режимом, добавление рассматриваемого режима внутреннего предсказания относительно блока сверху в список режимов MPM. Поскольку в этой ситуации режим внутреннего предсказания относительно блока сверху совершенно четко не входит в список режимов MPM, нет необходимости определять, входит ли этот режим внутреннего предсказания относительно блока сверху в список режимов MPM или нет).
Вариант 5. Способ согласно варианту 4, где этот способ дополнительно содержит:
если планарный режим не входит в список режимов MPM, добавление планарного режима в список режимов MPM (в одном из примеров, после добавления рассматриваемого режима внутреннего предсказания относительно блока сверху в список режимов MPM, определение, следует ли добавить планарный режим в список режимов MPM или нет).
Вариант 6. Способ согласно варианту 4 или 5, где этот способ дополнительно содержит:
если DC-режим не входит в список режимов MPM, добавление DC-режима в список режимов MPM (в одном из примеров, после добавления рассматриваемого режима внутреннего предсказания относительно блока сверху в список режимов MPM, определение, следует ли добавить DC-режим в список режимов MPM или нет. В другом примере, после определения, следует ли добавить планарный режим в список режимов MPM или нет, затем определяют, следует ли добавить DC-режим в список режимов MPM или нет).
Вариант 7. Способ согласно какому-либо одному из вариантов 4 – 6, где этот способ дополнительно содержит:
добавление сдвига к индексу режима предсказания относительно блока сверху с целью получения индекса смещенного режима предсказания относительно блока сверху, если смещенный режим предсказания относительно блока сверху не входит в список режимов MPM, добавление этого смещенного режима предсказания относительно блока сверху в список режимов MPM (в одном из примеров, этот этап может быть выполнен после добавления режима внутреннего предсказания относительно блока сверху в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить планарный режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить DC-режим в список режимов MPM или нет).
Вариант 8. Способ согласно варианту 7, где величина сдвига равна -1.
Вариант 9. Способ согласно варианту 7, где величина сдвига равна 1 (в одном из примеров, две величины сдвигов добавляют к индексу режима предсказания относительно блока сверху для получения индекса смещенного режима предсказания относительно блока сверху и индекса другого смещенного режима предсказания относительно блока сверху, если смещенный (сдвиг равен -1) режим предсказания относительно блока сверху не входит в список режимов MPM, добавление указанного смещенного режима предсказания относительно блока сверху в список режимов MPM, и если другой смещенный (сдвиг равен 1) режим предсказания относительно блока сверху не входит в список режимов MPM, добавление этого смещенного режима предсказания относительно блока сверху в список режимов MPM).
Вариант 10. Способ согласно какому-либо одному из вариантов 4 – 9, где этот способ дополнительно содержит:
если вертикальный режим не входит в список режимов MPM, добавление вертикального режим в список режимов MPM (в одном из примеров, этот этап может быть выполнен после добавления режима внутреннего предсказания относительно блока сверху в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить планарный режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить DC-режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить смещенный режим предсказания относительно блока сверху в список режимов MPM.)
Вариант 11. Способ согласно какому-либо одному из вариантов 4 – 10, где этот способ дополнительно содержит:
если горизонтальный режим не входит в список режимов MPM, добавление горизонтального режима в список режимов MPM (в одном из примеров, этот этап может быть выполнен после добавления режима внутреннего предсказания относительно блока сверху в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить планарный режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить DC-режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить смещенный режим предсказания относительно блока сверху в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить вертикальный режим в список режимов MPM.)
Вариант 12. Способ согласно какому-либо одному из вариантов 4 – 10, где этот способ дополнительно содержит:
когда горизонтальный режим не входит в список режимов MPM и когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины (например, пороговая величина равна 6), добавление горизонтального режима в список режимов MPM (в одном из примеров, этот этап может быть выполнен после добавления режима внутреннего предсказания относительно блока сверху в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить планарный режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить DC-режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить смещенный режим предсказания относительно блока сверху в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить вертикальный режим в список режимов MPM.)
Вариант 13. Способ согласно варианту 2 или 3, где этот способ дополнительно содержит:
когда блок сверху не доступен или когда режим внутреннего предсказания относительно блока сверху не является угловым режимом (например, нет режима внутреннего предсказания относительно блока сверху, или режим внутреннего предсказания относительно блока сверху является планарным режимом, или режим внутреннего предсказания относительно блока сверху является DC-режимом) и режим внутреннего предсказания блока слева является угловым режимом (например, величина индекса, соответствующего режиму внутреннего предсказания относительно блока слева, не меньше 2, диапазон величин индекса может быть от 2 до 66, эта величина индекса может быть равна 66),
и если режим внутреннего предсказания для блока слева не входит в список режимов MPM, добавление режима внутреннего предсказания относительно блока слева в список режимов MPM (в некоторых примерах, поскольку режим внутреннего предсказания относительно блока слева является угловым режимом, он будет добавлен в список режимов MPM, в этом примере, нет необходимости определять, входит ли режим внутреннего предсказания относительно блока слева в список режимов MPM или нет.)
Вариант 14. Способ согласно варианту 13, где этот способ дополнительно содержит:
когда планарный режим не входит в список режимов MPM, добавление этого планарного режима в список режимов MPM (в одном из примеров, после добавления рассматриваемого режима внутреннего предсказания относительно блока слева в список режимов MPM, для определения, следует ли добавить планарный режим в список режимов MPM или нет).
Вариант 15. Способ согласно варианту 13 или 14, где этот способ дополнительно содержит:
когда DC-режим не входит в список режимов MPM, добавление DC-режима в список режимов MPM (в одном из примеров, после добавления режима внутреннего предсказания относительно блока слева в список режимов MPM, определяют, следует ли добавить DC-режим в список режимов MPM или нет. В другом примере, после определения, следует ли добавить планарный режим в список режимов MPM или нет, затем определяют, следует ли добавить DC-режим в список режимов MPM или нет).
Вариант 16. Способ согласно какому-либо одному из вариантов 13 – 15, где этот способ дополнительно содержит:
добавление сдвига к индексу режима режим предсказания для блока слева с целью получения смещенного режима предсказания относительно блока слева, если этот смещенный режим предсказания относительно блока слева не входит в список режимов MPM, добавление смещенного режима предсказания относительно блока слева в список режимов MPM (в одном из примеров, этот этап может быть выполнен после добавления режима внутреннего предсказания относительно блока слева в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить планарный режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить DC-режим в список режимов MPM или нет.)
Вариант 17. Способ согласно варианту 16, где величина сдвига равна -1.
Вариант 18. Способ согласно варианту 16, где величина сдвига равна 1 (в одном из примеров, два сдвига добавлены к индексу режима предсказания относительно блока слева для получения одного смещенного режима предсказания относительно блока слева и другого смещенного режима предсказания относительно блока слева, если указанный один смещенный режим предсказания относительно блока слева (величина сдвига равна -1) не входит в список режимов MPM, добавление этого смещенного режима предсказания относительно блока слева в список режимов MPM, и если указанный другой смещенный режим предсказания относительно блока слева (величина сдвига равна 1) не входит в список режимов MPM, добавление этого другого смещенного режима предсказания относительно блока слева в список режимов MPM.)
Вариант 19. Способ согласно какому-либо одному из вариантов 13 – 18, где этот способ дополнительно содержит:
если вертикальный режим не входит в список режимов MPM, добавление этого вертикального режима в список режимов MPM (в одном из примеров, этот этап может быть выполнен после добавления режима внутреннего предсказания относительно блока слева в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить планарный режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить DC-режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить смещенный режим предсказания относительно блока слева в список режимов MPM).
Вариант 20. Способ согласно какому-либо одному из вариантов 13 – 19, где этот способ дополнительно содержит:
когда горизонтальный режим не входит в список режимов MPM, добавление этого горизонтального режима в список режимов MPM (в одном из примеров, этот этап может быть выполнен после добавления режима внутреннего предсказания для блока слева в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить планарный режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить DC mode в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить смещенный режим предсказания относительно блока слева в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить вертикальный режим в список режимов MPM).
Вариант 21. Способ согласно какому-либо одному из вариантов 13 – 19, где этот способ дополнительно содержит:
когда горизонтальный режим не входит в список режимов MPM и когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины (например, пороговая величина равна 6), добавление горизонтального режима в список режимов MPM (в одном из примеров, этот этап может быть выполнен после добавления режима внутреннего предсказания относительно блока слева в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить планарный режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить DC-режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить смещенный режим предсказания относительно блока слева в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить вертикальный режим в список режимов MPM).
Вариант 22. Способ согласно варианту 2, где этот способ дополнительно содержит:
определение, доступен ли блок сверху (например, блок A на фиг. 5) от текущего блока кодирования или нет (например, если нет режима внутреннего предсказания относительно блока сверху, блок сверху недоступен, если имеется режим внутреннего предсказания относительно блока сверху, этот блок сверху доступен);
когда режим внутреннего предсказания относительно блока сверху является угловым режимом (например, величина индекса, соответствующая режиму внутреннего предсказания относительно блока сверху не меньше 2, диапазон величин индекса может быть от 2 до 66, эта величина индекса может также быть равна 66) и когда режим внутреннего предсказания относительно блока сверху входит в список режимов MPM (например, режим внутреннего предсказания относительно блока сверху является таким же, как режим внутреннего предсказания относительно блока слева),
когда планарный режим не входит в список режимов MPM, добавление планарного режима в список режимов MPM (в одном из примеров, поскольку режим внутреннего предсказания относительно блока слева и режим внутреннего предсказания относительно блока сверху являются угловыми режимами, тогда добавляют планарный режим в список режимов MPM).
Вариант 23. Способ согласно варианту 22, где этот способ дополнительно содержит:
когда DC-режим не входит в список режимов MPM, добавление DC-режима в список режимов MPM (В другом примере, после определения, следует ли добавить планарный режим в список режимов MPM или нет, определяют, следует ли добавить DC-режим в список режимов MPM или нет. В одном из примеров, поскольку режим внутреннего предсказания относительно блока слева и режим внутреннего предсказания относительно блока сверху являются угловыми режимами, тогда добавляют DC-режим в список режимов MPM.)
Вариант 24. Способ согласно варианту 22 или 23, где этот способ дополнительно содержит:
добавление сдвига к индексу режима предсказания относительно левого блока для получения индекса смещенного режима относительно блока слева, если этот смещенный режим предсказания относительно блока слева не входит в список режимов MPM, добавление этого смещенного режима предсказания относительно блока слева в список режимов MPM (в одном из примеров, этот этап может быть выполнен после добавления режима внутреннего предсказания относительно блока слева в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить планарный режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить DC-режим в список режимов MPM или нет).
Вариант 25. Способ согласно варианту 24, где величина сдвига равна -1.
Вариант 26. Способ согласно варианту 24, где величина сдвига равна 1 (в одном из примеров, два сдвига добавлены к индексу режима предсказания относительно блока слева с целью получения одного смещенного режима предсказания относительно блока слева и другого смещенного режима предсказания относительно блока слева, когда один смещенный режим предсказания относительно блока слева (величина сдвига равна -1) не входит в список режимов MPM, добавляют этот смещенный режим предсказания относительно блока слева в список режимов MPM, и когда другой смещенный режим предсказания относительно блока слева (величина сдвига равна 1) не входит в список режимов MPM, добавляют этот другой смещенный режим предсказания относительно блока слева в список режимов MPM).
Вариант 27. Способ согласно какому-либо одному из вариантов 22 – 26, где этот способ дополнительно содержит:
когда вертикальный режим не входит в список режимов MPM, добавление этого вертикального режима в список режимов MPM (в одном из примеров, этот этап может быть выполнен после добавления режима внутреннего предсказания относительно блока слева в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить планарный режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить DC-режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить смещенный режим предсказания относительно блока слева в список режимов MPM).
Вариант 28. Способ согласно какому-либо одному из вариантов 22 – 27, где этот способ дополнительно содержит:
когда горизонтальный режим не входит в список режимов MPM, добавление этого горизонтального режима в список режимов MPM (в одном из примеров, этот этап может быть выполнен после добавления режима внутреннего предсказания относительно блока слева в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить планарный режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить DC-режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить смещенный режим предсказания относительно блока слева в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить вертикальный режим в список режимов MPM).
Вариант 29. Способ согласно какому-либо одному из вариантов 22 – 27, где этот способ дополнительно содержит:
когда горизонтальный режим не входит в список режимов MPM и когда число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины (например, пороговая величина равна 6), добавление этого горизонтального режима в список режимов MPM (в одном из примеров, этот этап может быть выполнен после добавления режима внутреннего предсказания относительно блока слева в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить планарный режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить DC-режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить смещенный режим предсказания относительно блока слева в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить вертикальный режим в список режимов MPM.)
Вариант 30. Способ согласно варианту 2, где этот способ дополнительно содержит:
определение, доступен ли блок сверху (например, блок A на фиг. 5) от текущего блока кодирования или нет (например, если нет режима внутреннего предсказания относительно блока сверху, этот блок сверху недоступен, если имеется режим внутреннего предсказания относительно блока сверху, этот блок сверху доступен);
когда режим внутреннего предсказания относительно блока сверху представляет собой угловой режим, режим внутреннего предсказания относительно блока слева является угловым режимом (например, величина индекса, соответствующая режиму внутреннего предсказания относительно блока сверху, не меньше 2, диапазон величин индекса может быть от 2 до 66, эта величина индекса может быть также равна 66) и режим внутреннего предсказания относительно блока сверху не входит в список режимов MPM (например, режим внутреннего предсказания относительно блока слева отличается от режима внутреннего предсказания относительно блока сверху),
добавление режима внутреннего предсказания относительно блока сверху в список режимов MPM (например, список режимов MPM содержит режим внутреннего предсказания относительно блока слева, а режим внутреннего предсказания относительно блока сверху отличается от режима внутреннего предсказания относительно блока слева, поэтому режим внутреннего предсказания относительно блока сверху добавляют в список режимов MPM, так что в списке режимов MPM имеются два режима внутреннего предсказания (режим внутреннего предсказания, соответствующий блоку слева, и режим внутреннего предсказания, соответствующий блоку сверху)).
Вариант 31. Способ согласно варианту 30, где этот способ дополнительно содержит:
когда планарный режим не входит в список режимов MPM, добавление этого планарного режима в список режимов MPM (в одном из примеров, после добавления режима внутреннего предсказания относительно блока сверху в список режимов MPM, определение, следует ли добавить планарный режим в список режимов MPM или нет; в другом примере, поскольку оба режима – режим внутреннего предсказания относительно блока слева и режим внутреннего предсказания относительно блока сверху, представляют собой угловые режимы, на этом этапе добавляют планарный режим в список режимов MPM.)
Вариант 32. Способ согласно вариантам 30 и 31, где этот способ дополнительно содержит:
когда DC-режим не входит в список режимов MPM, добавление DC-режима в список режимов MPM (в одном из примеров, после добавления режима внутреннего предсказания относительно блока сверху режимов MPM, определение, следует ли добавить DC-режим в список режимов MPM или нет. В другом примере, после определения, следует ли добавить планарный режим в список режимов MPM или нет, определяют, следует ли добавить DC-режим в список режимов MPM или нет; в другом примере, поскольку оба режима – режим внутреннего предсказания относительно блока слева и режим внутреннего предсказания относительно блока сверху, представляют собой угловые режимы, на этом этапе, добавляют DC-режим в список режимов MPM.)
Вариант 33. Способ согласно какому-либо одному из вариантов 30 – 32, где этот способ дополнительно содержит:
добавление величины сдвига (например, -1) к индексу режима предсказания относительно блока слева с целью получения индекса смещенного режима предсказания относительно блока слева, когда смещенный режим предсказания относительно блока слева входит в список режимов MPM, добавление величины сдвига (например, -1) к индексу режима предсказания для блока сверху с целью получения индекса смещенного режима предсказания относительно блока сверху, добавление этого смещенного режима предсказания относительно блока сверху в список режимов MPM.
Вариант 34. Способ согласно какому-либо одному из вариантов 30 – 33, где этот способ дополнительно содержит:
добавление величины сдвига (например, -1) к индексу режима предсказания относительно блока слева с целью получения индекса смещенного режима предсказания относительно блока слева, когда смещенный режим предсказания относительно блока слева не входит в список режимов MPM, добавление этого смещенного режима предсказания относительно блока слева в список режимов MPM.
Вариант 35. Способ согласно какому-либо одному из вариантов 30 – 34, где этот способ дополнительно содержит:
добавление величины сдвига (например, -1) к индексу режима предсказания относительно блока слева с целью получения индекса смещенного режима предсказания относительно блока слева, добавление другой величины сдвига (например, 1) к индексу режима предсказания относительно блока слева с целью получения индекса другого смещенного режима предсказания относительно блока слева, когда один смещенный режим предсказания относительно блока слева входит в список режимов MPM, добавление другого смещенного режима предсказания относительно блока слева в список режимов MPM.
Вариант 36. Способ согласно какому-либо одному из вариантов 30 – 34, где этот способ дополнительно содержит:
добавление величины сдвига (например, -1) к индексу режима предсказания относительно блока слева с целью получения индекса одного смещенного режима предсказания относительно блока слева, если смещенный режим предсказания относительно блока слева входит в список режимов MPM, добавление другой величины сдвига (например, 1) к индексу режима предсказания относительно блока слева с целью получения индекса другого смещенного режима предсказания относительно блока слева, добавление этого другого смещенного режима предсказания относительно блока слева в список режимов MPM.
Вариант 37. Способ согласно какому-либо одному из вариантов 30 – 32, где этот способ дополнительно содержит:
добавление величины сдвига (например, -1) к индексу режима предсказания относительно блока слева с целью получения индекса одного смещенного режима относительно блока слева, когда этот смещенный режим предсказания относительно блока слева входит в список режимов MPM, добавление величины сдвига (например, -1) к индексу режима предсказания относительно блока сверху с целью получения индекса смещенного режима предсказания относительно блока сверху, добавление этого смещенного режима предсказания относительно блока сверху в список режимов MPM;
добавление величины другого сдвига (например, 1) к индексу режима предсказания относительно блока слева с целью получения индекса другого смещенного режима предсказания относительно блока слева, добавление этого другого смещенного режима предсказания относительно блока слева в список режимов MPM.
Вариант 38. Способ согласно варианту 34, где этот способ дополнительно содержит:
добавление величины другого сдвига (например, 1) к индексу режима предсказания относительно блока слева с целью получения другого смещенного режима предсказания относительно блока слева, если этот другой смещенный режим предсказания относительно блока слева не входит в список режимов MPM, добавление этого другого смещенного режима предсказания относительно блока слева в список режимов MPM.
Вариант 39. Способ согласно варианту 34 или 38, где этот способ дополнительно содержит:
добавление величины другого сдвига (например, 1) к индексу режима предсказания относительно блока слева с целью получения другого смещенного режима предсказания относительно блока слева, когда этот другой смещенный режим предсказания относительно блока слева входит в список режимов MPM,
добавление величины другого сдвига (например, 1) к индексу режима предсказания относительно блока сверху с целью получения другого индекса смещенного режима предсказания относительно блока сверху, добавление этого другого индекса смещенного режима предсказания относительно блока сверху в список режимов MPM.
Вариант 40. Способ согласно варианту 2, где этот способ дополнительно содержит:
определение, доступен ли блок сверху (например, блок A на фиг. 5) от текущего блока кодирования или нет (например, если нет режима внутреннего предсказания относительно блока сверху, блок сверху недоступен, когда имеется режим внутреннего предсказания относительно блока сверху, этот блок сверху доступен, и если блок сверху доступен, получают режим внутреннего предсказания относительно блока сверху);
когда блок сверху не доступен или когда режим внутреннего предсказания относительно блока сверху не является угловым режимом (например, нет режима внутреннего предсказания относительно блока сверху или режим внутреннего предсказания относительно блока сверху является планарным режимом, или режим внутреннего предсказания относительно блока сверху является DC-режимом) и режим внутреннего предсказания относительно блока слева является угловым режимом (например, величина индекса, соответствующего режиму внутреннего предсказания относительно блока слева не меньше 2, диапазон величин индекса может быть от 2 до 66, величина индекса также может быть равна 66),
когда планарный режим не входит в список режимов MPM, добавление этого планарного режима в список режимов MPM (в одном из примеров, после добавления режима внутреннего предсказания относительно блока слева в список режимов MPM, определяют, следует ли добавить планарный режим в список режимов MPM или нет).
Вариант 41. Способ согласно варианту 40, где этот способ дополнительно содержит:
когда DC-режим не входит в список режимов MPM, добавление этого DC-режима в список режимов MPM (в одном из примеров, после добавления режима внутреннего предсказания относительно блока слева в список режимов MPM, определяют, следует ли добавить DC-режим в список режимов MPM или нет. В другом примере, после определения, следует ли добавить планарный режим в список режимов MPM или нет, определяют, следует ли добавить DC-режим в список режимов MPM или нет).
Вариант 42. Способ согласно варианту 40 или 41, где этот способ дополнительно содержит:
Добавление величины сдвига к индексу режима предсказания относительно блока слева с целью получения индекса смещенного режима предсказания относительно блока слева, если этот смещенный режим предсказания относительно блока слева не входит в список режимов MPM, добавление этого смещенного режима предсказания относительно блока слева в список режимов MPM (в одном из примеров, этот этап может быть выполнен после добавления режима внутреннего предсказания относительно блока слева в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить планарный режим список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить DC-режим в список режимов MPM или нет.)
Вариант 43. Способ согласно варианту 42, где величина сдвига равна -1.
Вариант 44. Способ согласно варианту 42, где величина сдвига равна 1 (в одном из примеров, две величины сдвигов добавляют к индексу режима предсказания относительно блока слева с целью получения индекса одного смещенного режима предсказания относительно блока слева и индекса другого смещенного режима предсказания относительно блока слева, если указанный один смещенный режим предсказания относительно блока слева (величина сдвига равна -1) не входит в список режимов MPM, добавление этого одного смещенного режима предсказания относительно блока слева в список режимов MPM, и если указанный другой смещенный режим предсказания относительно блока слева (величина сдвига равна 1) не входит в список режимов MPM, добавление этого другого смещенного режима предсказания относительно блока слева в список режимов MPM.)
Вариант 45. Способ согласно какому-либо одному из вариантов 40 – 44, где этот способ дополнительно содержит:
когда вертикальный режим не входит в список режимов MPM, добавление этого вертикального режима в список режимов MPM (в одном из примеров, этот этап может быть выполнен после добавления режима внутреннего предсказания относительно блока слева в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить планарный режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить DC-режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить смещенный режим предсказания относительно блока слева в список режимов MPM.)
Вариант 46. Способ согласно какому-либо одному из вариантов 40 – 45, где этот способ дополнительно содержит:
когда горизонтальный режим не входит в список режимов MPM, добавление горизонтального режима в список режимов MPM (в одном из примеров, этот этап может быть выполнен после добавления режима внутреннего предсказания относительно блока слева в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить планарный режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить DC-режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить смещенный режим предсказания относительно блока слева в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить вертикальный режим в список режимов MPM.)
Вариант 47. Способ согласно какому-либо одному из вариантов 40 – 46, где этот способ дополнительно содержит:
когда горизонтальный режим не входит в список режимов MPM и число режимов внутреннего предсказания в списке режимов MPM меньше пороговой величины (например, пороговая величина равна 6), добавление горизонтального режима в список режимов MPM (в одном из примеров, этот этап может быть выполнен после добавления режима внутреннего предсказания относительно блока слева в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить планарный режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить DC-режим в список режимов MPM или нет. В другом примере, этот этап может быть выполнен после определения, следует ли добавить смещенный режим предсказания относительно блока слева в список режимов MPM. В другом примере, этот этап может быть выполнен после определения, следует ли добавить вертикальный режим в список режимов MPM).
Вариант 48. Кодирующее устройство, содержащее процессорную схему для осуществления способа согласно какому-либо одному из вариантов 1 – 47.
Вариант 49. Декодирующее устройство, содержащее процессорную схему для осуществления способа согласно какому-либо одному из вариантов 1 – 47.
Вариант 50. Компьютерный программный продукт, содержащий программный код для осуществления способа согласно какому-либо одному из вариантов 1 – 47.
Вариант 51. Декодирующее устройство для построения списка наиболее вероятных режимов, MPM, содержащее:
один или несколько процессоров; и
энергонезависимый читаемый компьютером носитель для хранения информация, соединенный с указанными процессорами и сохраняющий программы для выполнения процессорами, где эти программы, при выполнении их процессорами, конфигурируют декодирующее устройство для осуществления способа согласно какому-либо одному из вариантов 1 – 47.
Вариант 52. Кодирующее устройство для построения списка наиболее вероятных режимов, MPM, содержащее:
один или несколько процессоров; и
энергонезависимый читаемый компьютером носитель для хранения информация, соединенный с указанными процессорами и сохраняющий программы для выполнения процессорами, где эти программы, при выполнении их процессорами, конфигурируют кодирующее устройство для осуществления способа согласно какому-либо одному из вариантов 1 – 47.
Для вычисления величин весовых коэффициентов, необходимых для предсказания пикселей в пределах рассматриваемого блока, введена кусочно-линейная аппроксимация. Такая кусочно-линейная аппроксимация, с одной стороны, значительно уменьшает вычислительную сложность механизма предсказания с взвешенными расстояниями по сравнению с прямым вычислением весовых коэффициентов и, с другой стороны, помогает достигнуть более высокой точности величин весовых коэффициентов по сравнению с ранее применявшимися упрощениями.
Эти варианты могут быть применены к другим двунаправленным и зависящим от положения технологиям внутреннего предсказания (например, различные модификации способа зависимой от положения комбинации внутреннего предсказания (PDPC)), равно как к механизмам, использующим весовые коэффициенты, зависящие от расстояния от одного пикселя до другого, с целью смешивания различных частей картинки (изображения) (например, некоторые способы смешивания при обработке изображений).
Различные варианты реализации предмета настоящего изобретения и описываемых здесь операций могут быть осуществлены в цифровой электронной схеме или посредством компьютерного загружаемого программного обеспечения, встроенного программного обеспечения или аппаратуры, включая структуры, рассматриваемые в настоящем описании и их структурные эквиваленты, или с применением комбинаций перечисленных выше объектов. Различные варианты реализации предмета настоящего изобретения могут быть осуществлены посредством одной или нескольких компьютерных программ, т.е. одного или нескольких модулей компьютерных программных команд, кодированных на компьютерном носителе для хранения информации, для выполнения аппаратурой обработки данных или для управления этой аппаратурой. В качестве альтернативы или в дополнение к этому, программные команды могут быть кодированы на искусственно генерируемом распространяющемся сигнале, например, на генерируемом машиной электрическом, оптическом или электромагнитном сигнале, формируемом для кодирования информации с целью передачи подходящей приемной аппаратуре для выполнения аппаратурой обработки данных. Компьютерный носитель для хранения информации, например, читаемый компьютером носитель, может представлять собой или может входить в читаемое компьютером запоминающее устройство, читаемую компьютером плату для хранения информации, матрицу памяти или запоминающее устройство с произвольной или последовательной выборкой, или комбинацию одного или нескольких перечисленных выше объектов. Более того, хотя компьютерный носитель для хранения информации не является распространяющимся сигналом, такой компьютерный носитель для хранения информации может быть источником или получателем компьютерных программных команд, кодированных на искусственно генерируемом распространяющемся сигнале. Такой компьютерный носитель для хранения информации может также быть или входить в состав одного или нескольких физических и/или энергонезависимых компонентов или носителей (например, нескольких дисков CD, дисков других типов или других запоминающих устройств).
В некоторых реализациях операции, рассматриваемые в настоящем описании, могут быть осуществлены в виде сервисов внешнего размещения, предоставляемых сервером в облачной компьютерной сети. Например, читаемые компьютером носители для хранения информации могут быть логически сгруппированы и доступны в пределах облачной компьютерной сети. Серверы в такой облачной компьютерной среде могут содержать облачную вычислительную платформу для предоставления сервисов на облачной основе. Термины «облако», «облачные вычисления» и «на облачной основе» могут быть использованы взаимозаменяемо в соответствующих случаях, не отклоняясь от объема настоящего изобретения. Сервисы на облачной основе могут быть сервисами внешнего размещения, выполняемые серверами и предоставляемые через сеть связи клиентской платформе для усиления, дополнения или замены приложений, выполняемых локально на компьютере клиента. Схема может использовать сервисы на облачной основе для быстрого приема обновлений программного обеспечения, приложений и других ресурсов, для получения которых в противном случае потребовалось бы продолжительное время прежде, чем эти ресурсы могли бы быть доставлены в схему.
Компьютерная программа (также известная как программа, программное обеспечение, программное приложение, сценарий или код) может быть написана на каком-либо языке программирования, включая компилируемые или интерпретируемые языки, декларативные или процедурные языки, и может быть развернута в любой форме, включая автономную программу или модуль, компонент, подпрограмму, объект или другую единицу, подходящую для использования в компьютерной среде. Компьютерная программа может, но не обязательно, соответствовать файлу в файловой системе. Программа может быть сохранена в части файла, который содержит и другие программы или данные (например, один или несколько сценариев, хранящихся в документе на языке разметки), в одном файле, содержащем только рассматриваемую программу, или в нескольких скоординированных файлах (например, в файлах, сохраняющих один или нескольких модулей, подпрограмм, или частей кода). Компьютерная программа может быть развернута для выполнения на одном компьютере или на нескольких компьютерах, расположенных в одном месте или распределенных по нескольким пунктам и соединенных сетью связи.
Процедуры и логические схемы, рассматриваемые в настоящем описании, могут быть реализованы одним или несколькими программируемыми процессорами, выполняющими одну или несколько компьютерных программ для осуществления действий путем оперирования входными данными и генерации выходных данных и воздействий. Эти процедуры и логические схемы могут также быть осуществлены, а аппаратура может быть выполнена в виде логической схемы специального назначения, например, программируемой пользователем вентильной матрицы (FPGA) или специализированной интегральной схемы (ASIC).
Процессоры, подходящие для выполнения компьютерной программы, могут представлять собой микропроцессоры, как общего, так и специального назначения, или какие-либо один или несколько процессоров цифрового компьютера какого-либо типа. Обычно, процессор должен принимать команды и данные из постоянного запоминающего устройства и/или из запоминающего устройства с произвольной выборкой. Основными элементами компьютера являются процессор для осуществления действий в соответствии с командами и одно или несколько запоминающих устройств для сохранения команд и данных. Обычно компьютер может содержать или быть оперативно связан для приема данных от и/или передачи данных с одним или несколькими запоминающими устройствами большой емкости для сохранения данных, например, магнитными, магнитооптическими дисками или оптическими дисками. Однако компьютеру не обязательно иметь такие устройства. Более того, компьютер может быть встроен в другое устройство, например, мобильный телефон, персональный цифровой помощник (personal digital assistant (PDA)), мобильный аудио или видео плеер, игровую консоль, приемник системы глобального местоопределения (Global Positioning System (GPS)) или портативное запоминающее устройство (например, USB-флэшка (универсальная последовательная шина (universal serial bus (USB))) flash drive), называя только некоторые. К устройствам, подходящим для хранения компьютерных программных команд, относятся все виды энергонезависимой памяти, носителей и запоминающих устройств, включая полупроводниковые запоминающие устройства, например, стираемое программируемое постоянное запоминающее устройство (СППЗУ (EPROM)), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ (EEPROM) и устройства флэш-памяти; магнитные диски, например, внутренние жесткие диски или сменные диски; магнитооптические диски; и диски CD-ROM и DVD-ROM). Процессор и запоминающее устройство могут быть дополнены логической схемой специального назначения или включены в нее.
Хотя настоящее описание содержит множество конкретных подробностей, их не следует толковать в качестве ограничений объема каких-либо реализации или того, что может быть заявлено в Формуле изобретения, а только в качестве описания признаков, специфичных для конкретных реализаций. Некоторые признаки, рассматриваемые в настоящем описании в контексте раздельных реализаций, могут быть также осуществлены совместно в одной реализации. И наоборот, различные признаки, описываемые в контексте одной реализации, могут быть также осуществлены в нескольких реализациях по отдельности или в виде какой-либо подходящей субкомбинации. Более того, хотя признаки могут быть описаны выше как действующие в определенных комбинациях и даже первоначально заявлены как таковые, один или несколько признаков из заявленной комбинации могут быть в некоторых случаях исключены из нее, а заявленная комбинация может быть превращена в субкомбинацию или в какие-то вариации субкомбинации.
Аналогично, тогда как операции изображены на чертежах в конкретном порядке, это не следует понимать как требование, чтобы такие операции осуществлялись именно в показанном порядке или в последовательном порядке, или чтобы все иллюстрированные операции были выполнены, для достижения желаемых результатов. В некоторых обстоятельствах могут быть предпочтительными и выигрышными многозадачность и параллельная обработка. Более того, разделение различных компонентов системы в описываемых выше вариантах реализации не следует понимать в качестве требования такого разделения во всех вариантах, а также следует понимать, что описываемые программные компоненты и системы могут быть, в общем случае, интегрированы вместе, в одном программном продукте или упакованы в виде нескольких программных продуктов.
Таким образом, выше были описаны конкретные варианты реализации предмета изобретения. Другие варианты реализации находятся в пределах объема прилагаемой Формулы изобретения. В некоторых случаях, действия, упоминаемые в этих пунктах Формулы изобретения, могут быть осуществлены в другом порядке, но по-прежнему достигать желаемых результатов. В дополнение к этому, процедуры, показанные на прилагаемых чертежах, не обязательно требуют показанного конкретного порядка выполнения или выполнения в последовательном порядке. В некоторых вариантах могут быть предпочтительными и выигрышными многозадачность и параллельная обработка.
Хотя в настоящем описании приведены ряд вариантов, следует понимать, что описываемые системы и способы могут быть воплощены во множестве других конкретных форм, не отклоняясь от смысла или объема настоящего изобретения. Представленные примеры следует считать иллюстративными и неисчерпывающими, а намерения не ограничиваются приведенными здесь подробностями. Например, различные элементы или компоненты могут быть комбинированы или интегрированы в другую систему или некоторые признаки могут быть исключены, либо не реализованы.
В дополнение к этому, технологии, системы, подсистемы и способы, описываемые и иллюстрируемые в различных вариантах в качестве дискретных или раздельных, могут быть скомбинированы или интегрированы с другими системами, модулями, технологиями или способами, не отклоняясь от объема настоящего изобретения. Другие объекты, показанные или обсуждаемые в качестве соединенных, непосредственно связанных или осуществляющих прямую связь одни с другими, могут быть связаны или осуществлять связь не напрямую, а через некоторый интерфейс, устройство или промежуточный компонент, будь то электрически, механически или другим способом. Специалист в рассматриваемой области может найти другие примеры, замен, подстановок или изменений, не отклоняясь от смысла и объема, рассмотренных здесь.
Хотя в настоящем описании был приведен только ряд вариантов, должно быть понятно, что описываемые системы и способы могут быть реализованы во множестве других конкретных форм, не отклоняясь от смысла и объема настоящего изобретения. Представленные здесь примеры следует считать только иллюстративными и неисчерпывающими, а намерения не ограничиваются приведенными здесь подробностями. Например, различные варианты или компоненты могут быть скомбинированными или интегрированными в другой системе, либо некоторые признаки могут быть исключены или не реализованы.
В дополнение к этому, технологии, системы, подсистемы и способы, описываемые и иллюстрируемые в различных вариантах в качестве дискретных или раздельных, могут быть скомбинированы или интегрированы с другими системами, модулями, технологиями или способами, не отклоняясь от объема настоящего изобретения. Другие объекты, показанные или обсуждаемые в качестве соединенных, непосредственно связанных или осуществляющих прямую связь одни с другими, могут быть связаны или осуществлять связь не напрямую, а через некоторый интерфейс, устройство или промежуточный компонент, будь то электрически, механически или другим способом. Специалист в рассматриваемой области может найти другие примеры замен, подстановок или изменений, не отклоняясь от смысла и объема, рассмотренных здесь.