ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0001] Настоящее изобретение относится к способу и устройству для кодирования или декодирования видеосигнала.
ПРЕДПОСЫЛКИ ИЗОБРЕТЕНИЯ
[0002] В связи с тенденцией к увеличению размеров дисплейных панелей растет спрос на видеоуслуги высокой четкости. Самая большая проблема видеоуслуг высокой четкости заключается в том, что объем данных значительно увеличивается, и для решения этой проблемы активно проводились исследования по улучшению степени сжатия видео. В качестве репрезентативного примера в 2009 году была создана Совместная группа по кодированию видео (JCT-VC) в Группе экспертов по кодированию видео (VCEG) в рамках Сектора стандартизации электросвязи Международного союза электросвязи (ITU-T) и Группы экспертов по движущимся изображениям (MPEG). JCT-VC предложила высокоэффективное кодирование видео (HEVC), которое представляет собой стандарт сжатия видео, эффективность сжатия которого примерно в два раза выше, чем у H.264/AVC, и он одобрен в качестве стандарта 25 января 2013 года. С быстрым развитием видеоуслуг высокой четкости производительность HEVC постепенно обнаруживает свои ограничения.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[Техническая задача]
[0003] Настоящее изобретение направлено на предоставление способа и устройства для кодирования или декодирования остаточного коэффициента при кодировании или декодировании видеосигнала.
[0004] Настоящее изобретение направлено на предоставление способа и устройства для кодирования или декодирования остаточного коэффициента с использованием флага для сравнения размера остаточного коэффициента с пороговым значением при кодировании или декодировании видеосигнала.
[0005] Настоящее изобретение направлено на предоставление способа и устройства для кодирования или декодирования остаточного коэффициента с использованием флага, указывающего, является ли остаточный коэффициент четным числом или нечетным числом при кодировании или декодировании видеосигнала.
[0006] Технические задачи, которые должны быть решены с помощью настоящего изобретения, не ограничиваются указанными выше задачами, и другие технические задачи, которые не описаны в данном документе, должны быть ясно поняты специалистами в данной области техники из следующего описания.
[Техническое решение]
[0007] Согласно одному широкому аспекту в настоящем изобретении предоставлен способ декодирования видео, причем способ включает: анализ ненулевого флага, указывающего, является ли остаточный коэффициент ненулевым, из битового потока; анализ информации об абсолютном значении для определения абсолютного значения остаточного коэффициента из битового потока, когда ненулевой флаг указывает, что остаточный коэффициент не является ненулевым; и определение абсолютного значения остаточного коэффициента на основании информации об абсолютном значении, при этом информация об абсолютном значении содержит флаг сравнения остаточного коэффициента, указывающий, больше ли остаточный коэффициент, чем первое значение, и флаг четности дополнительно анализируют из битового потока только тогда, когда остаточный коэффициент больше, чем первое значение.
[0008] Согласно другому широкому аспекту в настоящем изобретении предоставлен способ кодирования видео, причем способ включает: кодирование ненулевого флага, указывающего, является ли остаточный коэффициент ненулевым; и кодирование информации об абсолютном значении для определения абсолютного значения остаточного коэффициента, когда остаточный коэффициент не является ненулевым, при этом информация об абсолютном значении содержит флаг сравнения остаточного коэффициента, указывающий, больше ли остаточный коэффициент, чем первое значение, и флаг четности для остаточного коэффициента дополнительно кодируют только тогда, когда остаточный коэффициент больше, чем первое значение.
[0009] В некоторых вариантах осуществления флаг четности может указывать, является ли значение остаточного коэффициента четным числом или нечетным числом.
[0010] В некоторых вариантах осуществления, когда остаточный коэффициент больше, чем первое значение, флаг сравнения первого скорректированного коэффициента остатка, указывающий, больше ли скорректированный коэффициент остатка, полученный посредством битового сдвига остаточного коэффициента вправо на 1, чем второе значение, может быть дополнительно проанализирован.
[0011] В некоторых вариантах осуществления, когда скорректированный коэффициент остатка меньше или равен второму значению, остаточный коэффициент может быть определен как 2N или 2N+1 в зависимости от значения флага четности.
[0012] В некоторых вариантах осуществления, когда скорректированный коэффициент остатка больше, чем второе значение, второй флаг сравнения скорректированного коэффициента остатка, указывающий, больше ли скорректированный коэффициент остатка, чем третье значение, может быть дополнительно проанализирован.
[0013] В некоторых вариантах осуществления, когда скорректированный коэффициент остатка больше, чем второе значение, информация об остаточном значении может быть дополнительно проанализирована, и информация об остаточном значении может представлять собой значение, полученное путем вычитания второго значения из скорректированного коэффициента остатка.
[0014] Признаки, кратко изложенные выше в отношении настоящего изобретения, являются просто иллюстративными аспектами подробного описания настоящего изобретения, описанного ниже, и не ограничивают объем настоящего изобретения.
[Положительные эффекты]
[0015] Согласно настоящему изобретению можно эффективно кодировать или декодировать остаточный коэффициент.
[0016] Согласно настоящему изобретению можно эффективно кодировать или декодировать остаточный коэффициент, используя флаг для сравнения размера остаточного коэффициента с пороговым значением.
[0017] Согласно настоящему изобретению можно эффективно кодировать или декодировать остаточный коэффициент, используя флаг, указывающий, является ли остаточный коэффициент четным числом или нечетным числом.
[0018] Положительные эффекты настоящего изобретения не ограничиваются указанными выше эффектами, и другие положительные эффекты, которые не описаны в данном документе, должны быть ясно поняты специалистами в данной области техники из следующего описания.
КРАТКОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВ
[0019] На фиг. 1 представлена структурная схема видеокодера согласно варианту осуществления настоящего изобретения.
[0020] На фиг. 2 представлена структурная схема видеодекодера согласно варианту осуществления настоящего изобретения.
[0021] На фиг. 3 представлено схематическое изображение, показывающее базовый элемент кодового дерева согласно варианту осуществления настоящего изобретения.
[0022] На фиг. 4 представлено схематическое изображение, показывающее различные типы разбиения блока кодирования.
[0023] На фиг. 5 представлено схематическое изображение, иллюстрирующее аспект разбиения элемента кодового дерева.
[0024] На фиг. 6 показан пример, в котором блок, меньший, чем элемент кодового дерева предварительно определенного размера, встречается на краю изображения.
[0025] На фиг. 7 представлено схематическое изображение, показывающее пример, в котором разбиение на основе четвертичного дерева выполняется в отношении нетипичного граничного краевого блока.
[0026] На фиг. 8 представлено схематическое изображение, показывающее пример, в котором разбиение на основе четвертичного дерева выполняется в отношении блока, смежного с краем изображения.
[0027] На фиг. 9 представлено схематическое изображение, показывающее аспект разбиения блока, смежного с краем изображения.
[0028] На фиг. 10 представлено схематическое изображение, показывающее аспект кодирования блока, смежного с краем изображения.
[0029] На фиг. 11 представлена блок-схема способа предсказания, осуществляемого между изображениями, согласно варианту осуществления настоящего изобретения.
[0030] На фиг. 12 представлена блок-схема процесса получения информации о движении текущего блока в режиме слияния.
[0031] На фиг. 13 представлено схематическое изображение, иллюстрирующее кандидатные блоки, используемые для получения кандидата на слияние.
[0032] На фиг. 14 представлено схематическое изображение, показывающее местоположения опорных отсчетов.
[0033] На фиг. 15 представлено схематическое изображение, иллюстрирующее кандидатные блоки, используемые для получения кандидата на слияние.
[0034] На фиг. 16 представлено схематическое изображение, показывающее пример, в котором местоположение опорного отсчета изменено.
[0035] На фиг. 17 представлено схематическое изображение, показывающее пример, в котором местоположение опорного отсчета изменено.
[0036] На фиг. 18 представлено схематическое изображение для описания аспекта обновления таблицы информации о движении между участками.
[0037] На фиг. 19 представлено схематическое изображение, показывающее аспект обновления таблицы кандидатов на слияние между участками.
[0038] На фиг. 20 представлено схематическое изображение, показывающее пример, в котором обновлен индекс предварительно сохраненного кандидата на слияние между участками.
[0039] На фиг. 21 представлено схематическое изображение, показывающее местоположение репрезентативного подблока.
[0040] На фиг. 22 показан пример, в котором таблица информации о движении между участками генерируется для каждого режима предсказания, осуществляемого между изображениями.
[0041] На фиг. 23 представлено схематическое изображение, показывающее пример, в котором кандидат на слияние между участками, включенный в долговременную таблицу информации о движении, добавлен в список кандидатов на слияние.
[0042] На фиг. 24 представлено схематическое изображение, показывающее пример, в котором контроль по избыточности выполняется только в отношении некоторых кандидатов на слияние.
[0043] На фиг. 25 представлено схематическое изображение, показывающее пример, в котором пропущен контроль по избыточности в отношении конкретного кандидата на слияние.
[0044] На фиг. 26 представлено схематическое изображение, показывающее пример, в котором кандидатный блок, включенный в ту же область параллельного слияния, что и текущий блок, установлен как недоступный в качестве кандидата на слияние.
[0045] На фиг. 27 представлено схематическое изображение, показывающее временную таблицу информации о движении.
[0046] На фиг. 28 представлено схематическое изображение, показывающее пример слияния временной таблицы информации о движении с таблицей информации о движении между участками.
[0047] На фиг. 29 представлена блок-схема способа внутреннего предсказания согласно варианту осуществления настоящего изобретения.
[0048] На фиг. 30 представлено схематическое изображение, показывающее опорные отсчеты, включенные в каждую линию опорных отсчетов.
[0049] На фиг. 31 представлено схематическое изображение, показывающее режимы внутреннего предсказания.
[0050] На фиг. 32 и 33 представлены схематические изображения, показывающие пример одномерного массива, в котором опорные отсчеты расположены в линию.
[0051] На фиг. 34 представлено схематическое изображение, иллюстрирующее углы, образованные между прямой линией, параллельной оси х, и режимами направленного внутреннего предсказания.
[0052] На фиг. 35 представлено схематическое изображение, показывающее аспект, в котором отсчет предсказания получается, когда текущий блок имеет неквадратную форму.
[0053] На фиг. 36 представлено схематическое изображение, показывающее широкоугольные режимы внутреннего предсказания.
[0054] На фиг. 37 представлено схематическое изображение, показывающее аспект применения PDPC.
[0055] На фиг. 38 и 39 представлены схематические изображения, показывающие подблок, который должен быть подвергнут второму преобразованию.
[0056] На фиг. 40 представлено схематическое изображение для описания примера, в котором определяется тип преобразования текущего блока.
[0057] На фиг. 41 представлена блок-схема, показывающая способ кодирования остаточного коэффициента.
[0058] На фиг. 42 и 43 представлены схематические изображения, показывающие порядок расположения остаточных коэффициентов для каждого порядка сканирования.
[0059] На фиг. 44 показан пример, в котором кодируется местоположение последнего ненулевого коэффициента.
[0060] На фиг. 45 представлена блок-схема процесса кодирования абсолютного значения остаточного коэффициента.
[0061] На фиг. 46 представлена блок-схема процесса кодирования абсолютного значения остаточного коэффициента.
[0062] На фиг. 47 представлена блок-схема процесса кодирования абсолютного значения остаточного коэффициента.
[0063] На фиг. 48 представлена блок-схема, показывающая процесс определения качественного показателя блока.
[0064] На фиг. 49 показаны предварительно заданные фильтры-кандидаты.
ПОДРОБНОЕ ОПИСАНИЕ
[0065] Далее будут подробно описаны варианты осуществления настоящего изобретения со ссылкой на прилагаемые графические материалы.
[0066] Видео кодируется и декодируется в элементах блоков. В качестве примера, обработка кодирования и декодирования, такая как преобразование, квантование, предсказание, фильтрование в контуре или восстановление, может выполняться в отношении блока кодирования, блока преобразования или блока предсказания.
[0067] Далее блок, подлежащий кодированию или декодированию, будет называться «текущим блоком». В качестве примера, текущий блок может указывать блок кодирования, блок преобразования или блок предсказания в зависимости от текущего этапа обработки кодирования или декодирования.
[0068] Кроме того, термин «элемент» в контексте данного документа может пониматься как указывающий базовый элемент для выполнения конкретного процесса кодирования и декодирования, а термин «блок» может пониматься как указывающий массив отсчетов предварительно определенного размера. Если не указано иное, термины «блок» и «элемент» могут использоваться взаимозаменяемо. В качестве примера, в следующих вариантах осуществления блок кодирования и элемент кодирования могут пониматься как имеющие эквивалентные значения.
[0069] На фиг. 1 представлена структурная схема видеокодера согласно варианту осуществления настоящего изобретения.
[0070] Обращаясь к фиг. 1, устройство 100 кодирования видео может содержать устройство 110 разбиения изображений, предсказатели 120 и 125, преобразователь 130, квантователь 135, устройство 160 для переупорядочивания, энтропийный кодер 165, обратный квантователь 140, обратный преобразователь 145, фильтр 150 и запоминающее устройство 155.
[0071] Элементы на фиг. 1 показаны независимо, чтобы представлять различные характеристические функции в устройстве кодирования видео, и каждый из элементов не предназначен для выполнения в отдельном аппаратном блоке или в качестве одного программного блока. Другими словами, для удобства описания элементы расположены независимо друг от друга. Для выполнения функций по меньшей мере два элемента могут быть объединены в один элемент, или один элемент может быть разделен на множество элементов. В этом случае вариант осуществления комбинации элементов и вариант осуществления разделения элемента входят в объем настоящего изобретения без отступления от сущности настоящего изобретения.
[0072] Кроме того, некоторые из элементов могут не представлять собой существенные элементы для выполнения существенных функций в настоящем изобретении, а могут представлять собой просто необязательные элементы для повышения производительности. Настоящее изобретение может быть реализовано путем включения только элементов, необходимых для реализации сущности настоящего изобретения, а не элементов, используемых только для повышения производительности. Даже структура, включающая только существенные элементы, а не необязательные элементы, используемые только для повышения производительности, входит в объем настоящего изобретения.
[0073] Устройство 110 разбиения изображений может разбивать входное изображение на по меньшей мере один элемент обработки. В этом случае элемент обработки может представлять собой элемент предсказания (PU), элемент преобразования (TU) или элемент кодирования (CU). Устройство 110 разбиения изображений может разбить одно изображение на множество комбинаций элементов кодирования, элементов предсказания и элементов преобразования и может выбрать одну комбинацию элементов кодирования, элементов предсказания и элементов преобразования в соответствии с предварительно определенным критерием (например, функцией стоимости), чтобы кодировать изображение.
[0074] Например, одно изображение может быть разбито на множество элементов кодирования. Для разбиения изображения на элементы кодирования может использоваться рекурсивная древовидная структура, такая как структура четвертичного дерева. Элемент кодирования, разбитый на другие элементы кодирования с использованием одного изображения или наибольшего элемента кодирования в качестве корня, может иметь количество дочерних узлов, соответствующее количеству разбитых элементов кодирования. Элемент кодирования, который больше не разбивается вследствие предварительно определенного ограничения, служит листовым узлом. То есть, когда предполагается, что для одного элемента кодирования возможно только квадратное разбиение, один элемент кодирования может быть разбит на не более чем четыре других элемента кодирования.
[0075] В следующих вариантах осуществления настоящего изобретения элемент кодирования может относиться к элементу, выполненному с возможностью выполнения кодирования, или элементу, выполненному с возможностью выполнения декодирования.
[0076] Один элемент кодирования может быть разбит на по меньшей мере один или более элементов предсказания одинакового размера квадратной или прямоугольной формы и может быть разбит на элементы предсказания таким образом, чтобы один из элементов предсказания отличался от другого элемента предсказания по форме и/или размеру.
[0077] Когда генерируется элемент предсказания, подвергаемый внутреннему предсказанию, на основании элемента кодирования, и элемент кодирования не является минимальным элементом кодирования, внутреннее предсказание может выполняться без разбиения элемента кодирования на множество элементов предсказания N×N.
[0078] Предсказатели 120 и 125 могут содержать предсказатель 120, осуществляющий предсказание между изображениями, выполненный с возможностью выполнения предсказания, осуществляемого между изображениями, и внутренний предсказатель 125, выполненный с возможностью выполнения внутреннего предсказания. Предсказатели 120 и 125 могут определить, следует ли выполнять внутреннее предсказание или использовать предсказание, осуществляемое между изображениями, в отношении элементов предсказания, и могут определить подробную информацию (например, режим внутреннего предсказания, вектор движения, опорное изображение и т.п.), соответствующую каждому способу предсказания. В этом случае элемент обработки, в котором выполняется предсказание, может отличаться от элемента обработки, в котором определяются способ предсказания и конкретные подробности. Например, способ предсказания, режим предсказания и т.п.могут определяться элементом предсказания, а предсказание может выполняться элементом преобразования. Остаточное значение (остаточный блок) между сгенерированным блоком предсказания и исходным блоком может вводиться в преобразователь 130. Кроме того, информация о векторе движения, информация о режиме предсказания и т.п., которые используются для предсказания, в дополнение к остаточному значению, могут быть кодированы энтропийным кодером 165 и переданы в декодер. Когда используется конкретный режим кодирования, исходный блок может быть без изменений кодирован и передан в декодер без предсказателей 120 и 125, генерирующих блок предсказания.
[0079] Предсказатель 120, осуществляющий предсказание между изображениями, может предсказывать элемент предсказания на основании информации о по меньшей мере одном из изображения, предшествующего текущему изображению, или изображения, следующего за текущим изображением, и в некоторых случаях элемент предсказания может быть предсказан на основании информации о некоторой области текущего изображения, в которой осуществлено кодирование. Предсказатель 120, осуществляющий предсказание между изображениями, может содержать интерполятор опорного изображения, предсказатель движения и компенсатор движения.
[0080] Интерполятор опорного изображения может получать информацию об опорном изображении из запоминающего устройства 155 и может генерировать информацию о пикселях, количество которых меньше или равно целому числу пикселей, из опорного изображения. В случае пикселей яркости фильтр интерполяции по 8-ми точкам на основании DCT, имеющий разные коэффициенты фильтрования, может использоваться для генерирования информации о пикселях, количество которых меньше или равно целому числу пикселей в элементах, состоящих из 1/4 пикселей. В случае сигналов цветности фильтр интерполяции по 4-м точкам на основании DCT, имеющий разные коэффициенты фильтрования, может использоваться для генерирования информации о пикселях, количество которых меньше или равно целому числу пикселей в элементах, состоящих из 1/8 пикселей.
[0081] Предсказатель движения может выполнить предсказание движения на основании опорного изображения, интерполированного с помощью интерполятора опорного изображения. В качестве способа вычисления вектора движения могут использоваться различные способы, такие как алгоритм сопоставления блоков на основании полного поиска (FBMA), алгоритм трехэтапного поиска (TSS) и алгоритм нового трехэтапного поиска (NTS). Вектор движения может иметь значение вектора движения в элементах, состоящих из 1/2 или 1/4 пикселей, на основании интерполированных пикселей. Элемент предсказания движения может предсказывать текущий элемент предсказания, используя способ предсказания движения по-другому. В качестве способа предсказания движения могут использоваться различные способы, такие как способ пропуска, способ слияния, способ усовершенствованного предсказания вектора движения (AMVP) и способ внутриблочного копирования.
[0082] Внутренний предсказатель 125 может генерировать элемент предсказания на основании информации об опорном пикселе рядом с текущим блоком, которая представляет собой информации о пикселе в текущем изображении. Когда ближайший блок текущего элемента предсказания представляет собой блок, подвергаемый предсказанию, осуществляемому между изображениями, и, таким образом, опорный пиксель представляет собой пиксель, подвергаемый предсказанию, осуществляемому между изображениями, информация об опорном пикселе ближайшего блока, подвергаемого внутреннему предсказанию, может быть использована вместо опорного пикселя, включенного в блок, подвергаемый предсказанию, осуществляемому между изображениями. То есть, когда опорный пиксель недоступен, по меньшей мере один доступный опорный пиксель может быть использован вместо недоступной информации об опорном пикселе.
[0083] Режимы предсказания при внутреннем предсказании могут включать в себя режим направленного предсказания, в котором используется информация об опорных пикселях в зависимости от направления предсказания, и ненаправленный режим, который не использует информацию о направленности при выполнении предсказания. Режим для предсказания информации о яркости и режим для предсказания информации о цветности могут быть разными, и информация о режиме внутреннего предсказания, используемая для предсказания информации о яркости, или информация о предсказываемом сигнале яркости может использоваться для предсказания информации о цветности.
[0084] Когда выполняется внутреннее предсказание, и размер элемента предсказания равен размеру элемента преобразования, внутреннее предсказание может выполняться в отношении элемента предсказания на основании пикселей, расположенных слева от элемента предсказания, пикселей, расположенных в верхнем левом углу элемента предсказания, и пикселей, расположенных в верхней части элемента предсказания. Однако, когда выполняется внутреннее предсказание, и элемент предсказания отличается по размеру от элемента преобразования, внутреннее предсказание может быть выполнено с использованием опорного пикселя на основании элемента преобразования. Кроме того, может использоваться внутреннее предсказание с использованием разбиения N×N только для минимального элемента кодирования.
[0085] В способе внутреннего предсказания блок предсказания может быть сгенерирован после применения фильтра адаптивного внутреннего сглаживания (AIS) к опорному пикселю в зависимости от режима предсказания. Тип фильтра AIS, применяемого к опорному пикселю, может меняться. С целью выполнения способа внутреннего предсказания режим внутреннего предсказания текущего элемента предсказания может быть предсказан из режима внутреннего предсказания элемента предсказания, находящегося рядом с текущим элементом предсказания. При предсказании режима предсказания текущего элемента предсказания с использованием информации о режиме, предсказанной из ближайшего элемента предсказания, информация, указывающая, что текущий элемент предсказания и ближайший элемент предсказания имеют одинаковый режим предсказания, может передаваться с использованием информации о предварительно определенном флаге, когда режим внутреннего предсказания текущего элемента предсказания такой же, как режим внутреннего предсказания ближайшего элемента предсказания, и энтропийное кодирование может выполняться для кодирования информации о режиме предсказания текущего блока, когда режим предсказания текущего элемента предсказания отличается от режима предсказания ближайшего элемента предсказания.
[0086] Кроме того, остаточный блок, содержащий информацию об остаточном значении, которое представляет собой разницу между элементом предсказания, подвергаемым предсказанию, и исходным блоком элемента предсказания, может быть сгенерирован на основании элементов предсказания, сгенерированных предсказателями 120 и 125. Сгенерированный остаточный блок может быть введен в преобразователь 130.
[0087] Преобразователь 130 может преобразовывать остаточный блок, содержащий информацию об остаточном значении между исходным блоком и элементами предсказания, сгенерированными предсказателями 120 и 125 с использованием способа преобразования, такого как дискретное косинусное преобразование (DCT), дискретное синусное преобразование (DST) и KLT. То, применять ли DCT, DST или KLT для преобразования остаточного блока, может быть определено на основании информации о режиме внутреннего предсказания элемента предсказания, используемого для генерирования остаточного блока.
[0088] Квантователь 135 может квантовать значения, которые преобразованы в частотную область преобразователем 130. Коэффициенты квантования могут меняться в зависимости от блока или важности изображения. Значения, вычисленные квантователем 135, могут быть переданы в обратный квантователь 140 и устройство 160 для переупорядочивания.
[0089] Устройство 160 для переупорядочивания может выполнять переупорядочивание значений коэффициентов в отношении квантованных остаточных значений.
[0090] Устройство 160 для переупорядочивания может изменять коэффициенты с двумерной блочной формы на одномерную векторную форму с помощью способа сканирования коэффициентов. Например, устройство 160 для переупорядочивания может сканировать коэффициенты DC и даже высокочастотные коэффициенты, используя способ зигзагообразного сканирования, чтобы преобразовать коэффициенты в одномерную векторную форму. В зависимости от режима внутреннего предсказания и размера элемента преобразования, вместо зигзагообразного сканирования может использоваться вертикальное сканирование, при котором двумерные коэффициенты блочного типа сканируются в направлении столбца, или горизонтальное сканирование, при котором двумерные коэффициенты блочного типа сканируются в направлении строки. То есть устройство для переупорядочивания может определить способ сканирования, который будет использоваться, из зигзагообразного сканирования, вертикального сканирования и горизонтального сканирования, в зависимости от размера элемента преобразования и режима внутреннего предсказания.
[0091] Энтропийный кодер 165 может выполнять энтропийное кодирование на основании значений, вычисленных устройством 160 для переупорядочивания. Для энтропийного кодирования могут использоваться, например, различные способы кодирования, такие как кодирование экспоненциальным способом Голомба, контекстно-адаптивное кодирование с переменной длиной слова (CAVLC) и контекстно-адаптивное двоичное арифметическое кодирование (CABAC).
[0092] Энтропийный кодер 165 может кодировать различную информацию, такую как информация о коэффициенте остаточного значения и информация о типе блока для элемента кодирования, информация о режиме предсказания, информация об элементе разбиения, информация об элементе предсказания, информация об элементе передачи, информация о векторе движения, информация об опорном кадре, информация об интерполяции блока и информация о фильтрации, из устройства 160 для переупорядочивания и предсказателей 120 и 125.
[0093] Энтропийный кодер 165 может выполнять энтропийное кодирование в отношении значений коэффициентов элемента кодирования, введенных из устройства 160 для переупорядочивания.
[0094] Обратный квантователь 140 может обратно квантовать значения, квантованные квантователем 135, а обратный преобразователь 145 может обратно преобразовывать значения, преобразованные преобразователем 130. Остаточное значение, сгенерированное обратным квантователем 140 и обратным преобразователем 145, может быть объединено с элементом предсказания, предсказанным посредством устройства оценки движения, компенсатора движения и внутреннего предсказателя из предсказателей 120 и 125, для генерирования восстановленного блока.
[0095] Фильтр 150 может применять по меньшей мере одно из деблочного фильтра, корректора смещения и фильтра адаптивной контурной фильтрации (ALF).
[0096] Деблочный фильтр может удалять искажение блоков, которое произошло из-за границы между блоками восстановленного изображения. С целью определения того, выполнять ли удаление блочности, можно определить, следует ли применять деблочный фильтр к текущему блоку, на основании пикселей, включенных в несколько строк или столбцов в блоке. Когда деблочный фильтр применяется к блоку, может применяться сильный фильтр или слабый фильтр в зависимости от требуемой силы фильтрации удаления блочности. Кроме того, когда применяется деблочный фильтр, вертикальная фильтрация и горизонтальная фильтрация могут выполняться таким образом, чтобы горизонтальная фильтрация и вертикальная фильтрация обрабатывались параллельно.
[0097] Корректор смещения может корректировать смещение из исходного изображения в изображении, подвергаемом удалению блочности, в элементах пикселей. Способ деления пикселей, включенных в изображение, на определенное количество областей, определения области, которая должна быть подвергнута смещению, и применения смещения к определенной области или способ применения смещения с учетом информации о краях каждого пикселя может быть использован для выполнения коррекции смещения в отношении конкретного изображения.
[0098] ALF может выполняться на основании значений, полученных путем сравнения отфильтрованного восстановленного изображения и исходного изображения. Путем деления пикселей, включенных в изображение, на предварительно определенные группы и определения фильтра, который должен применяться к каждой из групп, для каждой группы может выполняться дифференциальная фильтрация. Информация о том, применять ли ALF, может передаваться для каждого элемента кодирования (CU), а форма и коэффициенты фильтрования фильтра AFL, который должен применяться, могут меняться в зависимости от блока. Кроме того, фильтр ALF в той же самой форме (фиксированной форме) может применяться независимо от характеристики блока, который должен быть подвергнут фильтрации.
[0099] Запоминающее устройство 155 может хранить восстановленный блок или изображение, вычисленное посредством фильтра 150. Сохраненный восстановленный блок или изображение могут быть предоставлены предсказателям 120 и 125 при выполнении предсказания, осуществляемого между изображениями.
[00100] На фиг. 2 представлена структурная схема видеодекодера согласно варианту осуществления настоящего изобретения.
[00101] Обращаясь к фиг. 2, видеодекодер 200 может содержать энтропийный декодер 210, устройство 215 для переупорядочивания, обратный квантователь 220, обратный преобразователь 225, предсказатели 230 и 235, фильтр 240 и запоминающее устройство 245.
[00102] Когда битовый поток видео вводится из видеокодера, входной битовый поток может быть декодирован согласно процедуре, противоположной процедуре видеокодера.
[00103] Энтропийный декодер 210 может выполнять энтропийное декодирование согласно процедуре, противоположной процедуре, в которой энтропийный кодер видеокодера выполняет энтропийное кодирование. Например, для соответствия способу, выполняемому видеокодером, могут применяться различные способы, такие как кодирование экспоненциальным способом Голомба, контекстно-адаптивное кодирование с переменной длиной слова (CAVLC) и контекстно-адаптивное двоичное арифметическое кодирование (CABAC).
[00104] Энтропийный декодер 210 может декодировать информацию, относящуюся к внутреннему предсказанию и предсказанию, осуществляемому между изображениями, выполняемому кодером.
[00105] Устройство 215 для переупорядочивания может выполнять переупорядочивание в отношении битового потока, подвергаемого энтропийному декодированию энтропийным декодером 210, на основании способа переупорядочивания, используемого кодером. Устройство 215 для переупорядочивания может восстанавливать коэффициенты, выраженные в одномерной векторной форме, в двумерные коэффициенты блочного типа для переупорядочивания двумерных коэффициентов блочного типа. Устройство 215 для переупорядочивания может принимать информацию, относящуюся к сканированию коэффициентов, выполняемому кодером, и выполнять переупорядочивание посредством способа обратного сканирования на основании порядка сканирования кодера.
[00106] Обратный квантователь 220 может выполнять обратное квантование на основании значений коэффициентов переупорядоченного блока и параметров квантования, предоставленных кодером.
[00107] Обратный преобразователь 225 может выполнять обратное DCT, обратное DST и обратное KLT в отношении результата квантования, выполняемого видеокодером, при этом обратное DCT, обратное DST и обратное KLT представляют собой преобразования, обратные преобразованиям, которые были выполнены элементом преобразования, то есть DCT, DST и KLT. Обратное преобразование может выполняться на основании элемента передачи, определенного видеокодером. В обратном преобразователе 225 видеодекодера методы преобразования (например, DCT, DST и KLT) могут выборочно выполняться в зависимости от множества частей информации, таких как способ предсказания, размер текущего блока и направление предсказания.
[00108] Предсказатели 230 и 235 могут генерировать блок предсказания на основании информации, относящейся к генерированию блока предсказания, которая предоставляется энтропийным декодером 210, и информации о ранее декодированном блоке или изображении, которая предоставляется запоминающим устройством 245.
[00109] Как описано выше, когда внутреннее предсказание выполняется таким же образом, как и в видеокодере, и элемент предсказания равен по размеру элементу преобразования, внутреннее предсказание может выполняться в отношении элемента предсказания на основании пикселей, расположенных слева от элемента предсказания, пикселей, расположенных в верхнем левом углу элемента предсказания, и пикселей, расположенных в верхней части элемента предсказания. С другой стороны, когда выполняется внутреннее предсказание, и элемент предсказания отличается по размеру от элемента преобразования, внутреннее предсказание может быть выполнено с использованием опорного пикселя на основании элемента преобразования. Кроме того, может использоваться внутреннее предсказание с использованием разбиения N×N только для минимального элемента кодирования.
[00110] Предсказатели 230 и 235 могут содержать определитель элемента предсказания, предсказатель, осуществляющий предсказание между изображениями, и внутренний предсказатель. Определитель элемента предсказания может принимать различную информацию, такую как информация об элементе предсказания, информация о режиме предсказания для способа внутреннего предсказания и информация, относящаяся к предсказанию движения, для способа предсказания, осуществляемого между изображениями, от энтропийного декодера 210, классифицировать элемент предсказания в текущем элементе кодирования и определять, выполняет ли элемент предсказания предсказание, осуществляемое между изображениями, или внутреннее предсказание. Используя информацию, необходимую для предсказания, осуществляемого между изображениями, текущего элемента предсказания, предоставленную видеокодером, предсказатель 230, осуществляющий предсказание между изображениями, может выполнять предсказание, осуществляемое между изображениями, в отношении текущего элемента предсказания на основании информации, включенной в по меньшей мере одно из изображения, предшествующего текущему изображению, включающему текущий элемент предсказания, или изображения, следующего за текущим изображением. Альтернативно предсказание, осуществляемое между изображениями, может выполняться на основании информации о некоторых предварительно восстановленных областях в текущем изображении, включающем текущий элемент предсказания.
[00111] Предсказатель 230, осуществляющий предсказание между изображениями, может определять, является ли способ предсказания движения для элемента предсказания, который включен в соответствующий элемент кодирования, режимом пропуска, режимом слияния, режимом AMVP или режимом внутриблочного копирования, на основании элемента кодирования с целью выполнения предсказания, осуществляемого между изображениями.
[00112] Внутренний предсказатель 235 может генерировать блок предсказания на основании информации о пикселях в текущем изображении. Когда элемент предсказания представляет собой элемент предсказания, подвергаемый внутреннему предсказанию, внутренний предсказатель 235 может выполнять внутреннее предсказание на основании информации о режиме внутреннего предсказания элемента предсказания, предоставленной видеокодером. Внутренний предсказатель 235 может содержать фильтр AIS, интерполятор опорных пикселей и фильтр DC. Фильтр AIS, который представляет собой часть, которая выполняет фильтрацию в отношении опорного пикселя текущего блока, может определить, следует ли применять фильтрацию, в зависимости от режима предсказания текущего элемента предсказания. Фильтр AIS может выполнять фильтрацию AIS в отношении опорного пикселя текущего блока с использованием информации о фильтре AIS и режиме предсказания элемента предсказания, предоставленного видеокодером. Когда режим предсказания текущего блока представляет собой режим, в котором фильтрация AIS не выполняется, фильтр AIS может не применяться.
[00113] Когда режим предсказания блока предсказания представляет собой режим предсказания, в котором внутреннее предсказание выполняется на основании значения пикселя, полученного путем интерполяции опорного пикселя, интерполятор опорного пикселя может интерполировать опорный пиксель для генерирования опорного пикселя в элементе пикселя, меньшем или равном целому числу. Когда режим предсказания текущего элемента предсказания представляет собой режим предсказания, в котором блок предсказания генерируется без интерполяции опорного пикселя, опорный пиксель не может быть интерполирован. Когда режим предсказания текущего блока представляет собой режим DC, фильтр DC может генерировать блок предсказания посредством фильтрации.
[00114] Восстановленный блок или изображение могут быть предоставлены фильтру 240. Фильтр 240 может содержать деблочный фильтр, корректор смещения и фильтр ALF.
[00115] Фильтр 240 может принимать из видеокодера информацию о том, применяется ли деблочный фильтр к соответствующему блоку или изображению, или информацию о том, применяется ли сильный фильтр или слабый фильтр при применении деблочного фильтра. Деблочный фильтр видеодекодера может принимать информацию, относящуюся к деблочному фильтру, которая предоставляется видеокодером, и видеодекодер может выполнять фильтрацию для удаления блочности в отношении соответствующего блока.
[00116] Корректор смещения может выполнять коррекцию смещения в отношении восстановленного изображения на основании типа коррекции смещения, информации о значении смещения и т.п., которые применяются к изображению при кодировании.
[00117] ALF может применяться к элементу кодирования на основании информации о том, применять ли ALF, информации о коэффициенте ALF и т.п., которые предоставляются из кодера. Информация ALF может быть предоставлена путем включения в конкретный набор параметров.
[00118] Запоминающее устройство 245 может хранить восстановленное изображение или блок таким образом, чтобы изображение или блок могли быть использованы в качестве опорного изображения или опорного блока, а также может предоставить восстановленное изображение в выходной элемент.
[00119] На фиг. 3 представлено схематическое изображение, показывающее базовый элемент кодового дерева согласно варианту осуществления настоящего изобретения.
[00120] Элемент кодирования наибольшего размера может быть задан в качестве блока кодового дерева. Одно изображение разбивается на множество элементов кодового дерева (CTU). Элемент кодового дерева, который представляет собой элемент кодирования наибольшего размера, может называться наибольшим элементом кодирования (LCU). На фиг. 3 показан пример, в котором одно изображение разбито на множество элементов кодового дерева.
[00121] Размер элемента кодового дерева может быть задан на уровне изображения или уровне последовательности. С этой целью информация, указывающая размер элемента кодового дерева, может передаваться посредством набора параметров изображения или набора параметров последовательности.
[00122] В качестве примера, размер элемента кодового дерева для всего изображения в последовательности может быть установлен равным 128×128. Альтернативно один из размеров 128×128 или 256×256 может быть определен как размер элемента кодового дерева на уровне изображения. В качестве примера, размер элемента кодового дерева в первом изображении может быть установлен равным 128×128, а размер элемента кодового дерева во втором изображении может быть установлен равным 256×256.
[00123] Элемент кодового дерева может быть разбит для генерирования блока кодирования. Блок кодирования указывает базовый элемент для обработки кодирования или декодирования. В качестве примера, предсказание или преобразование может выполняться для каждого блока кодирования, или режим предсказания может определяться для каждого блока кодирования. В этом случае режим предсказания указывает способ генерирования изображения предсказания. В качестве примера, режим предсказания может включать внутреннее предсказание, предсказание, осуществляемое между изображениями, привязку к текущему изображению (CPR) (или внутриблочное копирование (IBC)) или комбинированное предсказание. Блок предсказания для блока кодирования может быть сгенерирован с использованием по меньшей мере одного режима предсказания из внутреннего предсказания, предсказания, осуществляемого между изображениями, привязки к текущему изображению или комбинированного предсказания для блока кодирования.
[00124] Информация, указывающая режим предсказания текущего блока, может передаваться в битовом потоке. В качестве примера, информация может представлять собой 1-битный флаг, указывающий, является ли режим предсказания внутренним режимом или режимом, осуществляемым между изображениями. Привязка к текущему изображению или комбинированное предсказание могут быть доступны только тогда, когда определено, что режим предсказания текущего блока является режимом, осуществляемым между изображениями.
[00125] Привязка к текущему изображению предназначена для установки текущего изображения в качестве опорного изображения и получения блока предсказания текущего блока из области текущего изображения, где осуществлено кодирование или декодирование. В этом случае текущее изображение относится к изображению, содержащему текущий блок. Информация, указывающая, что привязка к текущему изображению применяется к текущему блоку, может передаваться в битовом потоке. В качестве примера, информация может представлять собой 1-битный флаг.Может быть определено, что режим предсказания текущего блока представляет собой привязку к текущему изображению, когда флаг имеет значение true (истина), и может быть определено, что режим предсказания текущего блока представляет собой предсказание, осуществляемое между изображениями, когда флаг имеет значение false (ложь).
[00126] Альтернативно режим предсказания текущего блока может быть определен на основании индекса опорного изображения. В качестве примера, когда индекс опорного изображения указывает текущее изображение, может быть определено, что режим предсказания текущего блока представляет собой привязку к текущему изображению. Когда индекс опорного изображения указывает на изображение, отличное от текущего изображения, может быть определено, что режим предсказания текущего блока представляет собой предсказание, осуществляемое между изображениями. То есть привязка к текущему изображению представляет собой способ предсказания, который использует информацию об области текущего изображения, где осуществлено кодирование или декодирование, а предсказание, осуществляемое между изображениями, представляет собой способ предсказания, который использует информацию другого изображения, где осуществлено кодирование или декодирование.
[00127] Комбинированное предсказание указывает режим кодирования, полученный путем комбинирования двух или более из внутреннего предсказания, предсказания, осуществляемого между изображениями, и привязки к текущему изображению. В качестве примера, когда применяется комбинированное предсказание, первый блок предсказания может быть сгенерирован на основании одного из внутреннего предсказания, предсказания, осуществляемого между изображениями, или привязки к текущему изображению, а второй блок предсказания может быть сгенерирован на основании другого. Когда генерируются первый блок предсказания и второй блок предсказания, окончательный блок предсказания может быть сгенерирован посредством операции усреднения или операции взвешенной суммы между первым блоком предсказания и вторым блоком предсказания. Информация, указывающая, применяется ли комбинированное предсказание, может передаваться в битовом потоке. Информация может представлять собой 1-битный флаг.
[00128] На фиг. 4 представлено схематическое изображение, показывающее различные типы разбиения блока кодирования.
[00129] Блок кодирования может быть разбит на множество блоков кодирования на основании разбиения на основе четвертичного дерева, разбиения на основе двоичного дерева или разбиения на основе троичного дерева. Блок кодирования, полученный посредством разбиения, может быть повторно разбит на множество блоков кодирования на основании разбиения на основе четвертичного дерева, разбиения на основе двоичного дерева или разбиения на основе троичного дерева.
[00130] Разбиение на основе четвертичного дерева указывает на метод разбиения для разбиения текущего блока на четыре блока. В результате разбиения на основе четвертичного дерева текущий блок может быть разбит на четыре квадратных раздела (см. «SPLIT_QT» на фиг. 4A).
[00131] Разбиение на основе двоичного дерева указывает на метод разбиения для разбиения текущего блока на два блока. Разбиение текущего блока на два блока в вертикальном направлении (т.е. с использованием вертикальной линии поперек текущего блока) может называться вертикальным разбиением на основе двоичного дерева, и разбиение текущего блока на два блока в горизонтальном направлении (т.е. с использованием горизонтальной линии поперек текущего блока) может называться горизонтальным разбиением на основе двоичного дерева. В результате разбиения на основе двоичного дерева текущий блок может быть разбит на два неквадратных раздела. На фиг. 4B «SPLIT_BT_VER» представляет результат вертикального разбиения на основе двоичного дерева. На фиг. 4C «SPLIT_BT_HOR» представляет результат горизонтального разбиения на основе двоичного дерева.
[00132] Разбиение на основе троичного дерева указывает метод разбиения для разбиения текущего блока на три блока. Разбиение текущего блока на три блока в вертикальном направлении (т.е. с использованием двух вертикальных линий поперек текущего блока) может называться вертикальным разбиением на основе троичного дерева, и разбиением текущего блока на три блока в горизонтальном направлении (т.е. с использованием двух горизонтальных линий поперек текущего блока) может называться горизонтальным разбиением на основе троичного дерева. В результате разбиения на основе троичного дерева текущий блок может быть разбит на три неквадратных раздела. В этом случае ширина и высота раздела, расположенного в центре текущего блока, могут быть вдвое больше, чем у других разделов. На фиг. 4D «SPLIT_TT_VER» представляет результат вертикального разбиения на основе троичного дерева. На фиг. 4E «SPLIT_TT_HOR» представляет результат горизонтального разбиения на основе троичного дерева.
[00133] Количество раз, которое разбивается элемент кодового дерева, можно задать как глубину разбиения (глубину разделения). Максимальная глубина разбиения элемента кодового дерева может быть определена на уровне последовательности или уровне изображения. Таким образом, максимальная глубина разбиения элемента кодового дерева может меняться в зависимости от последовательности или изображения.
[00134] Альтернативно максимальная глубина разбиения может определяться индивидуально для каждого метода разбиения. В качестве примера, максимальная глубина разбиения, разрешенная для разбиения на основе четвертичного дерева, может отличаться от максимальной глубины разбиения, разрешенной для разбиения на основе двоичного дерева и/или разбиения на основе троичного дерева.
[00135] Кодер может передавать информацию, указывающую по меньшей мере одно из типа разбиения или глубины разбиения текущего блока в битовом потоке. Декодер может определять тип разбиения и глубину разбиения элемента кодового дерева на основании информации, проанализированной из битового потока.
[00136] На фиг. 5 представлено схематическое изображение, иллюстрирующее аспект разбиения элемента кодового дерева.
[00137] Разбиение блока кодирования с использованием такого метода разбиения, как разбиение на основе четвертичного дерева, разбиение на основе двоичного дерева и/или разбиение на основе троичного дерева, может называться разбиением на основе нескольких деревьев.
[00138] Блоки кодирования, сгенерированные путем применения разбиения на основе нескольких деревьев к блоку кодирования, могут называться нижними блоками кодирования. Когда глубина разбиения блока кодирования равна k, глубина разбиения нижних блоков кодирования устанавливается равной k+1.
[00139] И наоборот, относительно блоков кодирования с глубиной разбиения k+1, блок кодирования с глубиной разбиения k может называться верхним блоком кодирования.
[00140] Тип разбиения текущего блока кодирования может быть определен на основании по меньшей мере одного из типа разбиения верхнего блока кодирования или типа разбиения соседнего блока кодирования. В этом случае соседний блок кодирования является смежным с текущим блоком кодирования и может содержать по меньшей мере один из соседнего блока, расположенного над текущим блоком кодирования, соседнего блока, расположенного слева от текущего блока кодирования, или соседнего блока, смежного с верхним левым углом текущего блока кодирования. В этом случае тип разбиения может включать в себя по меньшей мере одно из наличия разбиения на основе четвертичного дерева, наличия разбиения на основе двоичного дерева, направления разбиения на основе двоичного дерева, наличия разбиения на основе троичного дерева или направления разбиения на основе троичного дерева.
[00141] С целью определения типа разбиения блока кодирования, информация, указывающая, разбит ли блок кодирования, может сообщаться в битовом потоке. Информация представляет собой 1-битный флаг «split_cu_flag», и значение флага true указывает, что блок кодирования разбит с помощью метода разбиения на основе нескольких деревьев.
[00142] Когда split_cu_flag имеет значение true, информация, указывающая, разбит ли блок кодирования посредством разбиения на основе четвертичного дерева, может передаваться в битовом потоке. Информация представляет собой 1-битовый флаг «split_qt_flag», и, когда флаг имеет значение true, блок кодирования может быть разбит на четыре блока.
[00143] Например, на фиг. 5 показано, что четыре блока кодирования с глубиной разбиения, равной единице, генерируются, потому что элемент кодового дерева разбит посредством разбиения на основе четвертичного дерева. Также показано, что разбиение на основе четвертичного дерева повторно применяется к первому блоку кодирования и четвертому блоку кодирования из четырех блоков кодирования, сгенерированных посредством выполнения разбиения на основе четвертичного дерева. В результате могут быть сгенерированы четыре блока кодирования с глубиной разбиения, равной двум.
[00144] Также, повторно применяя разбиение на основе четвертичного дерева к блоку кодирования с глубиной разбиения, равной двум, может быть сгенерирован блок кодирования с глубиной разбиения, равной трем.
[00145] Когда разбиение на основе четвертичного дерева не применяется к блоку кодирования, тогда то, следует ли выполнять разбиение на основе двоичного дерева или разбиение на основе троичного дерева в отношении блока кодирования, может быть определено с учетом по меньшей мере одного из размера блока кодирования, того, расположен ли блок кодирования на краю изображения, максимальной глубины разбиения или аспекта разбиения соседнего блока. Когда определено, что в отношении блока кодирования выполнено разбиение на основе двоичного дерева или разбиение на основе троичного дерева, информация, указывающая направление разбиения, может передаваться в битовом потоке. Информация может представлять собой 1-битный флаг mtt_split_cu_vertical_flag. На основании флага может быть определено, является ли направление разбиения вертикальным или горизонтальным. Кроме того, информация, указывающая, какое из разбиения на основе двоичного дерева и разбиения на основе троичного дерева применено к блоку кодирования, может передаваться в битовом потоке. Информация может представлять собой 1-битный флаг mtt_split_cu_binary_flag. На основании флага может быть определено, применено ли к блоку кодирования разбиение на основе двоичного дерева или разбиение на основе троичного дерева.
[00146] В качестве примера, на фиг. 5 показано, что вертикальное разбиение на основе двоичного дерева применяется к блоку кодирования с глубиной разбиения, равной единице, вертикальное разбиение на основе троичного дерева применяется к левому блоку кодирования из блоков кодирования, сгенерированных в результате вертикального разбиения на основе двоичного дерева, и вертикальное разбиение на основе двоичного дерева применяется к правому блоку кодирования.
[00147] Поскольку изображение разбивается на элементы кодового дерева, блок, размер которого меньше предварительно установленного, может присутствовать в области, смежной с правым краем или нижним краем изображения. Когда предполагается, что блок представляет собой элемент кодового дерева, элемент кодового дерева, размер которого меньше предварительно установленного, может быть сгенерирован на правом краю или нижнем краю изображения. В этом случае размер элемента кодового дерева может быть определен на основании информации, переданной через набор параметров последовательности или набор параметров изображения.
[00148] На фиг. 6 показан пример, в котором блок, меньший, чем элемент кодового дерева предварительно определенного размера, встречается на краю изображения.
[00149] Когда изображение 1292×1080 разбито на 128×128 элементов кодового дерева, блок меньше 128×128 присутствует на правом краю и нижнем краю изображения в примере, показанном на фиг. 6. В следующих вариантах осуществления блок, меньший, чем элемент кодового дерева предварительно установленного размера, встречающийся на краю изображения, называется нетипичным граничным краевым блоком.
[00150] Для нетипичного граничного краевого блока может быть разрешен только предварительно заданный способ разбиения. В этом случае предварительно заданный способ разбиения может включать по меньшей мере одно из разбиения на основе четвертичного дерева, разбиения на основе троичного дерева или разбиения на основе двоичного дерева.
[00151] В качестве примера, для нетипичного граничного краевого блока может быть разрешено только разбиение на основе четвертичного дерева. В этом случае разбиение на основе четвертичного дерева может повторяться до тех пор, пока блок, соответствующий краю изображения, не будет иметь минимальный размер разбиения на основе четвертичного дерева. В этом случае минимальный размер разбиения на основе четвертичного дерева может быть предварительно задан в кодере и декодере. Альтернативно информация, указывающая минимальный размер разбиения на основе четвертичного дерева, может передаваться в битовом потоке.
[00152] На фиг. 7 представлено схематическое изображение, показывающее пример, в котором разбиение на основе четвертичного дерева выполняется в отношении нетипичного граничного краевого блока. Для удобства описания предполагается, что минимальный размер разбиения на основе четвертичного дерева составляет 4×4.
[00153] Нетипичный граничный краевой блок может быть разбит на основании квадратного блока. Квадратный блок может быть получен на основании большего блока между шириной и высотой нетипичного граничного краевого блока. В качестве примера, показатель степени значения 2, превышающий опорное значение и ближайший к опорному значению, может рассматриваться в качестве длины одной стороны квадратного блока. В качестве примера, блок 12×20, показанный на фиг. 7, может считаться принадлежащим блоку 32×32, и результат разбиения для блока 32×32 может применяться к блоку 12×20.
[00154] Когда разбиение на основе четвертичного дерева выполняется в отношении блока 12×20, блок может быть разбит на блок 12×16 и блок 12×4. Когда разбиение на основе четвертичного дерева выполняется в отношении каждого из блоков, блок 12×16 разбивается на два блока 8×8 и два блока 4×8, а блок 12×4 разбивается на блок 8×4 и блок 4×4 блок.
[00155] Разбиение на основе четвертичного дерева может быть выполнено снова в отношении блока 4×8, снова расположенного на краю изображения, и, таким образом, могут быть сгенерированы два блока 4×4. Подобным образом разбиение на основе четвертичного дерева может быть выполнено снова в отношении блока 8×8, расположенного на краю изображения, и, таким образом, могут быть сгенерированы два блока 4×4.
[00156] Альтернативно, когда по меньшей мере одна из ширины или высоты блока меньше или равна минимальному размеру разбиения на основе четвертичного дерева, может выполняться разбиение на основе двоичного дерева. В этом случае минимальный размер разбиения на основе четвертичного дерева может указывать минимальную ширину разбиения на основе четвертичного дерева или минимальную высоту разбиения на основе четвертичного дерева. В качестве примера, когда минимальный размер разбиения на основе четвертичного дерева равен 4×4, минимальная ширина разбиения на основе четвертичного дерева и минимальная высота разбиения на основе четвертичного дерева могут быть равны 4.
[00157] В этом случае вертикальное разбиение на основе двоичного дерева может выполняться, когда ширина блока меньше или равна минимальному размеру разбиения на основе четвертичного дерева, а горизонтальное разбиение на основе двоичного дерева может выполняться, когда высота блока меньше или равна минимальной высоте разбиения на основе четвертичного дерева.
[00158] И наоборот, разбиение на основе четвертичного дерева может выполняться, когда ширина или высота блока больше, чем минимальный размер разбиения на основе четвертичного дерева. В качестве примера, когда правое верхнее местоположение и нижнее левое местоположение блока отклоняются от изображения, а ширина или высота блока больше, чем минимальный размер разбиения на основе четвертичного дерева, к соответствующему блоку может применяться разбиение на основе четвертичного дерева.
[00159] На фиг. 8 представлено схематическое изображение, показывающее пример, в котором разбиение на основе четвертичного дерева выполняется в отношении блока, смежного как с правым краем, так и с нижним краем изображения. Для удобства описания предполагается, что минимальный размер разбиения на основе четвертичного дерева составляет 4×4.
[00160] В примере, показанном на фиг. 8, когда разбиение на основе четвертичного дерева выполняется в отношении блока 32×32, содержащего блок 12×20, генерируются четыре блока 16×16. Разбиение на основе четвертичного дерева может быть выполнено снова в отношении двух блоков 16×16, содержащих данные текстуры, из сгенерированных блоков. В результате координата x и координата y могут отклоняться от края изображения, и может быть сгенерирован блок 8×8, содержащий данные текстуры с размером 4×4. Поскольку ширина и высота блока 8×8 больше, чем минимальный размер разбиения на основе четвертичного дерева, разбиение на основе четвертичного дерева может выполняться в отношении соответствующего блока.
[00161] Когда разбиение на основе четвертичного дерева выполняется в отношении блока 12×20, блок 12×20 может быть разбит на блок 12×16 и блок 12×4. Когда разбиение на основе четвертичного дерева выполняется снова в отношении блоков, блок 12×16 разбивается на два блока 8×8 и два блока 4×8, а блок 12×4 разбивается на блок 8×4 и блок 4×4.
[00162] Поскольку ширина блока 4×8, расположенного на краю изображения, равна минимальному размеру разбиения на основе четвертичного дерева, в отношении блока 4×8 может выполняться разбиение на основе двоичного дерева. Подробно вертикальное разбиение на основе двоичного дерева может выполняться на основании квадратного блока (т.е. 8×8), содержащего блок 4×8.
[00163] Кроме того, поскольку ширина блока 8×4, расположенного на краю изображения, равна минимальному размеру разбиения на основе четвертичного дерева, в отношении блока 8×4 может выполняться разбиение на основе двоичного дерева. Подробно горизонтальное разбиение на основе двоичного дерева может выполняться на основании квадратного блока (т.е. 8×8), содержащего блок 4×8.
[00164] В результате разбиения блок 8×4, блок 4×4 и блок 4×8 могут быть расположены смежно с краем изображения.
[00165] Альтернативно, когда по меньшей мере одна из ширины или высоты блока меньше или равна пороговому значению, может выполняться разбиение на основе двоичного дерева. В противном случае может быть выполнено разбиение на основе четвертичного дерева. В этом случае пороговое значение может быть получено на основании минимального размера разбиения на основе четвертичного дерева. В качестве примера, когда минимальный размер разбиения на основе четвертичного дерева равен minQTsize, пороговое значение может быть установлено на «minQTsize<<1». Альтернативно информация для определения порогового значения может передаваться отдельно в битовом потоке.
[00166] На фиг. 9 представлено схематическое изображение, показывающее аспект разбиения блока, смежного с краем изображения. Для удобства описания предполагается, что минимальный размер разбиения на основе четвертичного дерева составляет 4×4. Пороговое значение может быть установлено равным 8.
[00167] Сначала может быть выполнено разбиение на основе четвертичного дерева в отношении блока 12×20. В результате блок может быть разбит на блок 12×16 и блок 12×4. Поскольку ширина и высота блока 12×16 больше порогового значения, к блоку может быть применено разбиение на основе четвертичного дерева. Соответственно, блок может быть разбит на два блока 8×8 и два блока 4×8.
[00168] Ширина блока 12×4 больше порогового значения. Соответственно, к блоку 12×4 может быть применено разбиение на основе четвертичного дерева. В результате блок может быть разбит на блок 8×4 и блок 4×4.
[00169] Впоследствии, поскольку значения ширины и значения высоты блока 4×8 и блока 8×4, расположенных на краю изображения, меньше или равны пороговому значению, к блокам может применяться разбиение на основе двоичного дерева.
[00170] В отличие от приведенного выше примера, когда по меньшей мере одна из ширины или высоты блока больше, чем пороговое значение, может выполняться разбиение на основе двоичного дерева. В противном случае может быть выполнено разбиение на основе четвертичного дерева.
[00171] Альтернативно к нетипичному граничному краевому блоку может быть применено только разбиение на основе четвертичного дерева или разбиение на основе двоичного дерева. В качестве примера, разбиение на основе четвертичного дерева может повторяться до тех пор, пока блок, расположенный на краю изображения, не будет иметь минимальный размер, или разбиение на основе двоичного дерева может повторяться до тех пор, пока блок, расположенный на краю изображения, не будет иметь минимальный размер.
[00172] Нетипичный граничный краевой блок может быть задан как элемент кодирования. Режим пропуска может быть жестко применен к нетипичному граничному краевому блоку, или все коэффициенты преобразования могут быть установлены равными 0. Таким образом, значение флага кодированного блока (CBF), указывающее, имеет ли нетипичный граничный краевой блок ненулевые коэффициенты преобразования, может быть установлено равным 0. Элемент кодирования, кодированный в режиме пропуска, или элемент кодирования, имеющий коэффициент преобразования, установленный равным 0, может называться граничным нулевым элементом кодирования.
[00173] Альтернативно, сравнивая по меньшей мере одну из ширины или высоты блока кодирования, сгенерированного путем разбиения нетипичного граничного краевого блока, с пороговым значением, можно определить, устанавливать ли соответствующий элемент кодирования в качестве граничного нулевого элемента кодирования. В качестве примера, блок кодирования, в котором по меньшей мере одна из ширины или высоты блока кодирования меньше порогового значения, может быть кодирован в режиме пропуска, или коэффициенты преобразования могут быть установлены равными 0.
[00174] На фиг. 10 представлено схематическое изображение, показывающее аспект кодирования блока, смежного с границей изображения. Предполагается, что пороговое значение равно 8.
[00175] Блок кодирования, в котором по меньшей мере одна из ширины или высоты меньше порогового значения, из блоков кодирования, сгенерированных путем разбиения нетипичного граничного краевого блока, может быть установлен как граничный нулевой элемент кодирования.
[00176] В качестве примера, в примере, показанном на фиг. 10, блок кодирования 4×16, блок кодирования 8×4 и блок кодирования 4×4 могут быть установлены как граничные нулевые элементы кодирования. Соответственно, блоки могут кодироваться в режиме пропуска, или коэффициенты преобразования блоков могут быть установлены равными 0.
[00177] То, установлен ли режим пропуска или коэффициент преобразования равным 0, может выборочно применяться к блоку кодирования, имеющему ширину и высоту, которые больше или равны пороговому значению. С этой целью флаг, указывающий, применяется ли режим пропуска к блоку кодирования, или флаг, указывающий, установлен ли коэффициент преобразования равным 0, может кодироваться и передаваться.
[00178] Альтернативно только элементы кодирования, сгенерированные посредством разбиения на основе двоичного дерева, могут быть разрешены для установки в качестве граничных нулевых элементов кодирования. Альтернативно только элементы кодирования, сгенерированные посредством разбиения на основе четвертичного дерева, могут быть разрешены для установки в качестве граничных нулевых элементов кодирования.
[00179] Предсказание, осуществляемое между изображениями, представляет собой режим предсказания, в котором текущий блок предсказывается с использованием информации о предыдущем изображении. В качестве примера, блок, включенный в предыдущее изображение и размещенный в таком же местоположении, что и текущий блок (далее называемый совмещаемым блоком), может быть установлен в качестве блока предсказания текущего блока. Блок предсказания, сгенерированный на основании блока, размещенного в таком же местоположении, что и текущий блок, будет называться совмещаемым блоком предсказания.
[00180] Между тем, когда объект, присутствующий в предыдущем изображении, перемещается в другое местоположение в текущем изображении, текущий блок может быть эффективно предсказан с использованием движения объекта. Например, когда направление движения и размер объекта могут быть найдены путем сравнения предыдущего изображения с текущим изображением, блок предсказания (или изображение предсказания) текущего блока может быть сгенерирован с учетом информации о движении объекта. Далее блок предсказания, сгенерированный с использованием информации о движении, может называться блоком предсказания движения.
[00181] Остаточный блок может быть сгенерирован путем вычитания блока предсказания из текущего блока. В это время, когда присутствует движение объекта, можно уменьшить энергию остаточного блока и, соответственно, можно улучшить эффективность сжатия остаточного блока, используя блок предсказания движения вместо совмещаемого блока предсказания.
[00182] Как описано выше, генерирование блока предсказания с использованием информации о движении может называться предсказанием с компенсацией движения. При предсказании, осуществляемом между изображениями, блок предсказания обычно может быть сгенерирован на основании предсказания с компенсацией движения.
[00183] Информация о движении может содержать по меньшей мере одно из вектора движения, индекса опорного изображения, направления предсказания или двунаправленного весового индекса. Вектор движения указывает направление движения и размер объекта. Индекс опорного изображения указывает опорное изображение текущего блока из опорных изображений, включенных в список опорных изображений. Направление предсказания указывает одно из однонаправленного предсказания L0, однонаправленного предсказания L1 или двунаправленного предсказания (предсказания L0 и предсказания L1). По меньшей мере одна из информации о движении в направлении L0 или информации о движении в направлении L1 может использоваться в зависимости от направления предсказания текущего блока. Двунаправленный весовой индекс указывает весовой коэффициент, применяемый к блоку предсказания L0, и весовой коэффициент, применяемый к блоку предсказания L1.
[00184] На фиг. 11 представлена блок-схема способа предсказания, осуществляемого между изображениями, согласно варианту осуществления настоящего изобретения.
[00185] Обращаясь к фиг. 11, способ предсказания, осуществляемого между изображениями, включает определение (S1101) режима предсказания, осуществляемого между изображениями, текущего блока, получение (S1102) информации о движении текущего блока в соответствии с определенным режимом предсказания, осуществляемого между изображениями, и выполнение предсказания с компенсацией движения (S1103) в отношении текущего блока на основании полученной информации о движении.
[00186] В этом случае режим предсказания, осуществляемого между изображениями, который представляет различные методы для определения информации о движении текущего блока, может включать режим предсказания, осуществляемого между изображениями, с использованием информации о поступательном движении и режим предсказания, осуществляемого между изображениями, с использованием информации об аффинном движении. В качестве примера, режим предсказания, осуществляемого между изображениями, с использованием информации о поступательном движении может включать режим слияния и режим предсказания вектора движения, а режим предсказания, осуществляемого между изображениями, с использованием информации об аффинном движении может включать режим аффинного слияния и режим предсказания вектора аффинного движения. Информация о движении текущего блока может быть определена на основании информации, проанализированной из битового потока или блоков, соседних с текущим блоком, в соответствии с режимом предсказания, осуществляемого между изображениями.
[00187] Способ предсказания, осуществляемого между изображениями, с использованием информации о поступательном движении будет подробно описан ниже.
[00188] Информация о движении текущего блока может быть получена из информации о движении блока, отличного от текущего блока. В этом случае другой блок может представлять собой блок, который кодируется или декодируется посредством предсказания, осуществляемого между изображениями, раньше, чем текущий блок. Установка информации о движении текущего блока такой же, как информация о движении другого блока, может быть задана как режим слияния. Кроме того, установка вектора движения другого блока в качестве значения предсказания вектора движения текущего блока может быть задана как режим предсказания вектора движения.
[00189] На фиг. 12 представлена блок-схема процесса получения информации о движении текущего блока в режиме слияния.
[00190] Может быть получен (S1201) кандидат на слияние текущего блока. Кандидат на слияние текущего блока может быть получен из блока, который кодируется или декодируется посредством предсказания, осуществляемого между изображениями, раньше, чем текущий блок.
[00191] На фиг. 13 представлено схематическое изображение, иллюстрирующее кандидатные блоки, используемые для получения кандидата на слияние.
[00192] Кандидатные блоки могут включать по меньшей мере один из соседних блоков, содержащих отсчет, смежный с текущим блоком, или несоседних блоков, содержащих отсчет, который не является смежным с текущим блоком. Далее отсчеты для определения кандидатных блоков задаются в качестве опорных отсчетов. Кроме того, опорный отсчет, смежный с текущим блоком, будет называться соседним опорным отсчетом, а опорный отсчет, который не является смежным с текущим блоком, будет называться несоседним опорным отсчетом.
[00193] Соседний опорный отсчет может быть включен в столбец, соседний с крайним левым столбцом текущего блока, или строку, соседнюю с верхней строкой текущего блока. В качестве примера, когда координаты верхнего левого отсчета текущего блока равны (0, 0), по меньшей мере один из блока, содержащего опорный отсчет, расположенный в (-1, H-1), блока, содержащего опорный отсчет, расположенный в (W-1, -1), блока, содержащего опорный отсчет, расположенный в (W, -1), блока, содержащего опорный отсчет, расположенный в (-1, H), или блока, содержащего опорный отсчет, расположенный в (-1, -1), может использоваться в качестве кандидатного блока. Ссылаясь на графические материалы, соседние блоки с индексами от 0 до 4 могут использоваться в качестве кандидатных блоков.
[00194] Несоседний опорный отсчет указывает на отсчет, в котором по меньшей мере одно из расстояния по оси x или расстояния по оси y от опорного отсчета, смежного с текущим блоком, имеет предварительно заданное значение. В качестве примера, по меньшей мере один из блока, содержащего опорный отсчет, в котором расстояние по оси x от левого опорного отсчета имеет предварительно заданное значение, блока, содержащего несоседний отсчет, в котором расстояние по оси y от верхнего опорного отсчета имеет предварительно заданное значение, или блока, содержащего несоседний отсчет, в котором расстояние по оси x и расстояние по оси y от верхнего левого опорного отсчета имеют предварительно заданное значение, может использоваться в качестве кандидатного блока. Предварительно заданное значение может быть натуральным числом, например 4, 8, 12 и 16. Ссылаясь на графические материалы, по меньшей мере один из блоков с индексами от 5 до 26 может использоваться в качестве кандидатного блока.
[00195] Отсчет, который не расположен на той же вертикальной линии, горизонтальной линии или диагональной линии, что и соседний опорный отсчет, может быть установлен как несоседний опорный отсчет.
[00196] На фиг. 14 представлено схематическое изображение, показывающее местоположения опорных отсчетов.
[00197] Как и в примере, показанном на фиг. 14, координаты x верхних несоседних опорных отсчетов могут быть установлены отличными от координат x верхних соседних опорных отсчетов. В качестве примера, когда местоположение верхнего соседнего опорного отсчета равно (W-1, -1), местоположение верхнего несоседнего опорного отсчета, расположенного на расстоянии от верхнего соседнего опорного отсчета на N по оси y, устанавливается равным ((W/2)-1, -1-N), а местоположение верхнего несоседнего опорного отсчета, расположенного на расстоянии от верхнего соседнего опорного отсчета по оси y на 2N, может быть установлено равным (0, -1-2N). То есть местоположение несмежного опорного отсчета может быть определено на основании местоположения смежного опорного отсчета и расстояния от смежного опорного отсчета.
[00198] Далее среди кандидатных блоков кандидатный блок, содержащий соседний опорный отсчет, будет называться соседним блоком, а блок, содержащий несоседний опорный отсчет, будет называться несоседним блоком.
[00199] Когда расстояние между текущим блоком и кандидатным блоком больше или равно пороговому значению, кандидатный блок может быть установлен как недоступный в качестве кандидата на слияние. Пороговое значение может быть определено на основании размера элемента кодового дерева. В качестве примера, пороговое значение может быть установлено равным высоте элемента кодового дерева (ctu_height) или высоте элемента кодового дерева плюс или минус смещение (например, ctu_height±N). Смещение N, которое является значением, предварительно заданным в кодере или декодере, может быть установлено равным 4, 8, 16, 32 или ctu_height.
[00200] Когда расстояние между координатой y текущего блока и координатой y отсчета, включенного в кандидатный блок, больше, чем пороговое значение, может быть определено, что кандидатный блок недоступен в качестве кандидата на слияние.
[00201] Альтернативно кандидатный блок, который не принадлежит тому же элементу кодового дерева, что и текущий блок, может быть установлен как недоступный в качестве кандидата на слияние. В качестве примера, когда опорный отсчет отклоняется от верхнего края элемента кодового дерева, которому принадлежит текущий блок, кандидатный блок, содержащий опорный отсчет, может быть установлен как недоступный в качестве кандидата на слияние.
[00202] Когда верхний край текущего блока является смежным с верхним краем элемента кодового дерева, может быть определено, что множество кандидатных блоков недоступно в качестве кандидатов на слияние, и эффективность кодирования или декодирования текущего блока может быть снижена. Для решения такой проблемы кандидатные блоки могут быть установлены таким образом, чтобы количество кандидатных блоков, расположенных слева от текущего блока, было больше, чем количество кандидатных блоков, расположенных над текущим блоком.
[00203] На фиг. 15 представлено схематическое изображение, иллюстрирующее кандидатные блоки, используемые для получения кандидата на слияние.
[00204] Как и в примере, показанном на фиг. 15, верхние блоки, принадлежащие N верхним столбцам блоков текущего блока, и левые блоки, принадлежащие M левым столбцам блоков текущего блока, могут быть установлены в качестве кандидатных блоков. В этом случае, устанавливая M больше N, количество левых кандидатных блоков может быть установлено больше, чем количество верхних кандидатных блоков.
[00205] В качестве примера, установка может быть выполнена таким образом, чтобы разница между координатой y опорного отсчета в текущем блоке и координатой y верхнего блока, доступного в качестве кандидатного блока, не превышала в N раз высоту текущего блока. Кроме того, установка может быть выполнена таким образом, чтобы разница между координатой x опорного отсчета в текущем блоке и координатой x левого блока, доступного в качестве кандидатного блока, не превышала в M раз ширину текущего блока.
[00206] В качестве примера, на фиг. 15 показано, что блоки, принадлежащие двум верхним столбцам блоков текущего блока, и блоки, принадлежащие пяти левым столбцам блоков текущего блока, устанавливаются в качестве кандидатных блоков.
[00207] В качестве другого примера, когда кандидатный блок не принадлежит элементу кодового дерева отсчета в качестве текущего блока, кандидат на слияние может быть получен с использованием блока, принадлежащего тому же элементу кодового дерева, что и текущий блок, или блока, содержащего опорный отсчет, смежный с краем элемента кодового дерева, вместо кандидатного блока.
[00208] На фиг. 16 представлено схематическое изображение, показывающее пример, в котором местоположение опорного отсчета изменено.
[00209] Когда опорный отсчет включен в элемент кодового дерева, отличный от элемента текущего блока, и не является смежным с краем элемента кодового дерева, кандидатный блок может быть определен с использованием опорного отсчета, смежного с краем элемента кодового дерева, вместо опорного отсчета.
[00210] В качестве примера, в примерах, показанных на фиг. 16A и 16B, когда верхний край текущего блока является прилегающим к верхнему краю элемента кодового дерева, опорные отсчеты, расположенные над текущим блоком, принадлежат элементу кодового дерева, отличному от элемента текущего блока. Опорный отсчет, который не является смежным с верхним краем элемента кодового дерева, из опорных отсчетов, принадлежащих элементу кодового дерева, отличному от элемента текущего блока, может быть заменен отсчетом, смежным с верхним краем элемента кодового дерева.
[00211] Например, опорный отсчет в местоположении №6 может быть заменен отсчетом в местоположении №6', размещенным на верхнем краю элемента кодового дерева, как в примере, показанном на фиг. 16A, и опорный отсчет в местоположении №15 может быть заменен отсчетом в местоположении №15', размещенным на верхнем краю элемента кодового дерева, как в примере, показанном на фиг. 16B. В этом случае координата y альтернативного отсчета может быть изменена на координату y местоположения, смежного с элементом кодового дерева, а координата x альтернативного отсчета может быть установлена равной координате x опорного отсчета. В качестве примера, отсчет в местоположении №6’ может иметь такую же координату x, что и отсчет в местоположении №6, а отсчет в местоположении №15' может иметь такую же координату x, что и отсчет в местоположении №15.
[00212] Альтернативно значение, полученное путем сложения смещения с координатой x опорного отсчета или вычитания из нее, может быть установлено в качестве координаты x альтернативного отсчета. В качестве примера, когда несоседний опорный отсчет и соседний опорный отсчет, расположенный над текущим блоком, имеют одинаковую координату x, значение, полученное путем сложения смещения с координатой x опорного отсчета или вычитания из нее, может быть установлено в качестве координаты x альтернативного отсчета. Это сделано для предотвращения размещения альтернативного отсчета, заменяющего несоседний опорный отсчет, в таком же местоположении, что и другой несоседний опорный отсчет или соседний опорный отсчет.
[00213] На фиг. 17 представлено схематическое изображение, показывающее пример, в котором местоположение опорного отсчета изменено.
[00214] Когда опорный отсчет, который включен в элемент кодового дерева, отличный от элемента текущего блока, и который не является смежным с краем элемента кодового дерева, заменяется отсчетом, расположенным на краю элемента кодового дерева, значение, получаемое путем сложения смещения с координатой x опорного отсчета или вычитания из нее, можно установить в качестве координаты x альтернативного отсчета.
[00215] В качестве примера, в примере, показанном на фиг. 17, опорный отсчет в местоположении №6 и опорный отсчет в местоположении №15 могут быть заменены отсчетом в местоположении №6’ и отсчетом в местоположении №15’, которые имеют такую же координату y, что и строка, смежная с верхним краем элемента кодового дерева. В этом случае координата x отсчета в местоположении №6’ может быть установлена равной значению, полученному путем вычитания W/2 из координаты x опорного отсчета в местоположении №6, а координата x отсчета в местоположении №15’ может быть установлена равной значению, полученному путем вычитания W-1 из координаты x опорного отсчета в местоположении №15.
[00216] В отличие от примеров, показанных на фиг. 16 и 17, координата y строки, расположенной над верхней строкой текущего блока, или координата y верхнего края элемента кодового дерева может быть установлена равной координате y альтернативного отсчета.
[00217] Хотя это не показано, отсчет, заменяющий опорный отсчет, может быть определен на основании левого края элемента кодового дерева. В качестве примера, когда опорный отсчет не включен в тот же элемент кодового дерева, что и текущий блок, и не является смежным с левым краем элемента кодового дерева, опорный отсчет может быть заменен отсчетом, смежным с левым краем элемента кодового дерева. В этом случае альтернативный отсчет может иметь такую же координату y, что и опорный отсчет, и может иметь координату y, полученную путем сложения смещения с координатой y опорного отсчета или вычитания из нее.
[00218] Впоследствии блок, содержащий альтернативный отсчет, может быть установлен в качестве кандидатного блока, и кандидат на слияние текущего блока может быть получен на основании кандидатного блока.
[00219] Кандидат на слияние может быть получен из временного соседнего блока, включенного в изображение, отличное от изображения текущего блока. В качестве примера, кандидат на слияние может быть получен из совмещаемого блока, включенного в совмещаемое изображение.
[00220] Информация о движении кандидата на слияние может быть установлена равной информации о движении кандидатного блока. В качестве примера, по меньшей мере одно из вектора движения, индекса опорного изображения, направления предсказания или двунаправленного весового индекса кандидатного блока может быть установлено в качестве информации о движении кандидата на слияние.
[00221] Может генерироваться (S1202) список кандидатов на слияние, содержащий кандидатов на слияние. Кандидаты на слияние могут быть разделены на смежных кандидатов на слияние, полученных из соседних блоков, смежных с текущим блоком, и несмежных кандидатов на слияние, полученных из несоседних блоков.
[00222] Кандидатам на слияние из списка кандидатов на слияние могут быть присвоены индексы в предварительно определенном порядке. В качестве примера, индекс, присвоенный смежному кандидату на слияние, может иметь меньшее значение, чем индекс, присвоенный несмежному кандидату на слияние. Альтернативно индекс может быть присвоен каждому из кандидатов на слияние на основании индексов блоков, показанных на фиг. 13 или 15.
[00223] Когда множество кандидатов на слияние включены в кандидата на слияние, может быть выбран (S1203) по меньшей мере один из множества кандидатов на слияние. В этом случае информация, указывающая, получена ли информация о движении текущего блока из смежного кандидата на слияние, может передаваться в битовом потоке. Информация может представлять собой 1-битный флаг.В качестве примера, элемент синтаксиса isAdjancentMergeFlag, который указывает, получена ли информация о движении текущего блока из смежного кандидата на слияние, может передаваться в битовом потоке. Когда значение элемента синтаксиса isAdjancentMergeFlag равно 1, информация о движении текущего блока может быть получена на основании смежного кандидата на слияние. С другой стороны, когда значение элемента синтаксиса isAdjancentMergeFlag равно 0, информация о движении текущего блока может быть получена на основании несмежного кандидата на слияние.
[00224] В таблице 1 представлена таблица синтаксиса, содержащая элемент синтаксиса isAdjancentMergeFlag.
[00225] [Таблица 1]
[00226] Информация для указания одного из множества кандидатов на слияние может передаваться в битовом потоке. В качестве примера, информация, указывающая индекс одного из кандидатов на слияние, включенных в список кандидатов на слияние, может передаваться в битовом потоке.
[00227] Когда isAdjacentMergeflag равен 1, может быть передан элемент синтаксиса merge_idx, который предназначен для указания одного из смежных кандидатов на слияние. Максимальное значение элемента синтаксиса merge_idx может быть установлено равным значению, полученному путем вычитания элемента из количества смежных кандидатов на слияние.
[00228] Когда isAdjacentMergeflag равен 0, может быть передан элемент синтаксиса NA_merge_idx, который предназначен для указания одного из несмежных кандидатов на слияние. Элемент синтаксиса NA_merge_idx представляет значение, полученное путем вычитания количества смежных кандидатов на слияние из индекса несмежного кандидата на слияние. Декодер может выбрать несмежного кандидата на слияние путем сложения количества смежных кандидатов на слияние с индексом, указанным посредством NA_merge_idx.
[00229] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное значение, кандидат на слияние, включенный в таблицу информации о движении между участками, может быть добавлен в список кандидатов на слияние. Таблица информации о движении между участками может содержать кандидата на слияние, полученного на основании блока, который кодирован или декодирован раньше текущего блока.
[00230] Таблица информации о движении между участками содержит кандидата на слияние, полученного из блока, который кодируется или декодируется на основании предсказания, осуществляемого между изображениями, в текущем изображении. В качестве примера, информация о движении кандидата на слияние, включенная в таблицу информации о движении между участками, может быть установлена равной информации о движении блока, кодированного или декодированного на основании предсказания, осуществляемого между изображениями. В этом случае информация о движении может содержать по меньшей мере одно из вектора движения, индекса опорного изображения, направления предсказания или двунаправленного весового индекса.
[00231] Для удобства описания кандидат на слияние, включенный в таблицу информации о движении между участками, будет называться кандидатом на слияние между участками.
[00232] Максимальное количество кандидатов на слияние, которые могут быть включены в таблицу информации о движении между участками, может быть предварительно задано в кодере и декодере. В качестве примера, максимальное количество кандидатов на слияние, которые могут быть включены в таблицу информации о движении между участками, может составлять 1, 2, 3, 4, 5, 6, 7, 8 или более (например, 16).
[00233] Альтернативно информация, указывающая максимальное количество кандидатов на слияние в таблице информации о движении между участками, может передаваться в битовом потоке. Информация может передаваться на уровне последовательности, изображения или слайса.
[00234] Альтернативно максимальное количество кандидатов на слияние таблицы информации о движении между участками может быть определено в зависимости от размера изображения, размера слайса или размера элемента кодового дерева.
[00235] Таблица информации о движении между участками может быть инициализирована в элементах изображений, слайсов, пакетов, элементов кодового дерева или линий элементов кодового дерева (строк и столбцов). В качестве примера, при инициализации слайса таблица информации о движении между участками также инициализируется и может не содержать кандидата на слияние.
[00236] Альтернативно информация, указывающая, следует ли инициализировать таблицу информации о движении между участками, может передаваться в битовом потоке. Информация может передаваться на уровне слайса, тайла, пакета или блока. Ранее сконфигурированная таблица информации о движении между участками может использоваться до тех пор, пока информация не укажет на инициализацию таблицы информации о движении между участками.
[00237] Альтернативно информация, касающаяся начального кандидата на слияние между участками, может передаваться посредством набора параметров изображения или заголовка слайса. Даже если слайс инициализирован, таблица информации о движении между участками может содержать начального кандидата на слияние между участками. Соответственно, кандидат на слияние между участками может использоваться для блока, который подлежит кодированию или декодированию первым в слайсе.
[00238] Блоки могут быть кодированы или декодированы в порядке кодирования или декодирования, и блоки, кодированные или декодированные на основании предсказания, осуществляемого между изображениями, могут быть последовательно установлены в качестве кандидатов на слияние между участками в порядке кодирования или декодирования.
[00239] На фиг. 18 представлено схематическое изображение для описания аспекта обновления таблицы информации о движении между участками.
[00240] Когда предсказание, осуществляемое между изображениями, выполняется (S1801) в отношении текущего блока, кандидат на слияние между участками может быть получен (S1802) на основании текущего блока. Информация о движении кандидата на слияние между участками может быть установлена равной информации о движении текущего блока.
[00241] Когда таблица информации о движении между участками пуста (S1803), кандидат на слияние между участками, полученный на основании текущего блока, может быть добавлен (S1804) в таблицу информации о движении между участками.
[00242] Когда таблица информации о движении между участками уже содержит кандидата на слияние между участками (S1803), контроль по избыточности может выполняться в отношении информации о движении текущего блока (или кандидата на слияние между участками, полученного на основании информации о движении) (S1805). Контроль по избыточности предназначен для определения, совпадает ли информация о движении текущего блока с информацией о движении кандидата на слияние между участками, предварительно сохраненного в таблице информации о движении между участками. Контроль по избыточности может выполняться в отношении всех кандидатов на слияние между участками, предварительно сохраненных в таблице информации о движении между участками. Альтернативно контроль по избыточности может выполняться в отношении кандидатов на слияние между участками с индексами, превышающими или равными пороговому значению, или индексами, меньшими или равными пороговому значению, из кандидатов на слияние между участками, предварительно сохраненных в таблице информации о движении между участками.
[00243] Когда не включен кандидат на слияние предсказания, осуществляемого между изображениями, имеющий такую же информацию о движении, что и текущий блок, кандидат на слияние между участками, полученный на основании текущего блока, может быть добавлен (S1808) в таблицу информации о движении между участками. То, идентичны ли кандидаты на слияние предсказания, осуществляемого между изображениями, можно определить на основании того, имеют ли кандидаты на слияние предсказания, осуществляемого между изображениями, такую же информацию о движении (например, вектор движения и/или индекс опорного изображения).
[00244] В этом случае, когда максимальное количество кандидатов на слияние между участками предварительно сохранено в таблице информации о движении между участками (S1806), самый старый кандидат на слияние между участками удаляется (S1807), а кандидат на слияние между участками, полученный на основании текущего блока, может быть добавлен (S1808) в таблицу информации о движении между участками.
[00245] Кандидаты на слияние между участками могут быть идентифицированы по своим индексам. Когда кандидат на слияние между участками, полученный из текущего блока, добавляется в таблицу информации о движении между участками, наименьший индекс (например, 0) присваивается кандидату на слияние между участками, а индексы предварительно сохраненных кандидатов на слияние между участками могут быть увеличены на единицу. В этом случае, когда максимальное количество кандидатов на слияние предсказания, осуществляемого между изображениями, предварительно сохранено в таблице информации о движении между участками, кандидат на слияние между участками с наибольшим индексом удаляется.
[00246] Альтернативно, когда кандидат на слияние между участками, полученный из текущего блока, добавляется в таблицу информации о движении между участками, кандидату на слияние между участками может быть присвоен наибольший индекс.В качестве примера, когда количество кандидатов на слияние предсказания, осуществляемого между изображениями, предварительно сохраненных в таблице информации о движении между участками, меньше максимального значения, индекс, имеющий то же значение, что и количество предварительно сохраненных кандидатов на слияние предсказания, осуществляемого между изображениями, может быть присвоен кандидату на слияние между участками. Альтернативно, когда количество кандидатов на слияние предсказания, осуществляемого между изображениями, предварительно сохраненных в таблице информации о движении между участками, равно максимальному значению, кандидату на слияние между участками может быть присвоен индекс, имеющий максимальное значение минус 1. Кроме того, кандидат на слияние между участками с наименьшим индексом удаляется, а индексы других предварительно сохраненных кандидатов на слияние между участками уменьшаются на 1.
[00247] На фиг. 19 представлено схематическое изображение, показывающее аспект обновления таблицы кандидатов на слияние между участками.
[00248] Поскольку кандидат на слияние между участками, полученный из текущего блока, добавляется в таблицу кандидатов на слияние между участками, предполагается, что наибольший индекс присваивается кандидату на слияние между участками. Также предполагается, что максимальное количество кандидатов на слияние между участками хранится в таблице кандидатов на слияние между участками.
[00249] Когда кандидат на слияние между участками HmvpCand[n+1], полученный из текущего блока, добавляется в таблицу кандидатов на слияние между участками HmvpCandList, кандидат на слияние между участками HmvpCand[0], который имеет наименьший индекс из предварительно сохраненных кандидатов на слияние между участками, может быть удален, а индексы других кандидатов на слияние между участками могут быть уменьшены на 1. Кроме того, индекс кандидата на слияние между участками HmvpCand[n+1], который получается из текущего блока, может быть установлен в качестве максимального значения (n в примере, показанном на фиг. 19).
[00250] Когда кандидат на слияние между участками, идентичный кандидату на слияние между участками, полученному на основании текущего блока, предварительно сохранен (S1805), кандидат на слияние между участками, полученный на основании текущего блока, может не добавляться (S1809) в таблицу информации о движении между участками.
[00251] Альтернативно, в то время как кандидат на слияние между участками, полученный на основании текущего блока, добавляется в таблицу информации о движении между участками, предварительно сохраненный кандидат на слияние между участками, идентичный кандидату на слияние между участками, может быть удален. Это вызывает тот же эффект, что и обновление индексов предварительно сохраненных кандидатов на слияние между участками.
[00252] На фиг. 20 представлено схематическое изображение, показывающее пример, в котором обновлен индекс предварительно сохраненного кандидата на слияние между участками.
[00253] Когда индекс предварительно сохраненного кандидата на слияние предсказания, осуществляемого между изображениями, который идентичен кандидату на слияние между участками mvCand, который получается на основании текущего блока, равен hIdx, предварительно сохраненный кандидат на слияние предсказания, осуществляемого между изображениями, может быть удален, а индексы кандидатов на слияние предсказания, осуществляемого между изображениями, превышающие hIdx, могут быть уменьшены на 1. В качестве примера, на фиг. 20 показано, что HmvpCand[2], который идентичен mvCand, удален из таблицы информации о движении между участками HvmpCandList, и что индексы HmvpCand[3] - HmvpCand[n] уменьшены на 1.
[00254] Кроме того, кандидат на слияние между участками mvCand, который получается на основании текущего блока, может быть добавлен в конец таблицы информации о движении между участками.
[00255] Альтернативно индекс, присвоенный предварительно сохраненному кандидату на слияние между участками, который идентичен кандидату на слияние между участками, полученному на основании текущего блока, может быть обновлен. Например, индекс предварительно сохраненного кандидата на слияние между участками может быть изменен на минимальное значение или максимальное значение.
[00256] Установка может быть выполнена таким образом, чтобы информация о движении блоков, включенных в предварительно определенную область, не добавлялась в таблицу информации о движении между участками. В качестве примера, кандидат на слияние между участками, полученный на основании информации о движении блока, включенного в область параллельного слияния, может не добавляться в таблицу информации о движении между участками. Поскольку порядок кодирования или декодирования не задан для блоков, включенных в область параллельного слияния, неуместно использовать информацию о движении одного из блоков для выполнения предсказания, осуществляемого между изображениями, в отношении других блоков. Соответственно, кандидаты на слияние между участками, полученные на основании блоков, включенных в область параллельного слияния, могут не добавляться в таблицу информации о движении между участками.
[00257] Когда предсказание с компенсацией движения выполняется в элементах подблоков, кандидат на слияние между участками может быть получен на основании информации о движении репрезентативного подблока из множества подблоков, включенных в текущий блок. В качестве примера, когда кандидат на слияние подблока используется для текущего блока, кандидат на слияние между участками может быть получен на основании информации о движении репрезентативного подблока из подблоков.
[00258] Векторы движения подблоков могут быть получены в следующем порядке. Сначала один кандидат на слияние может быть выбран из числа кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, и начальный вектор сдвига shVector может быть получен на основании вектора движения выбранного кандидата на слияние. Затем подблок сдвига, имеющий опорный отсчет, расположенный в (xColSb, yColSb), может быть получен путем сложения начального вектора сдвига с местоположением (xSb, ySb) опорного отсчета (например, верхнего левого отсчета или среднего отсчета) каждого подблока в блоке кодирования. В уравнении 1 ниже приведено уравнение для получения подблока сдвига.
[00259] [Уравнение 1]
[00260] Затем вектор движения совмещаемого блока, соответствующего центральному положению подблока, содержащего (xColSb, yColSb), может быть установлен как вектор движения подблока, содержащего (xSb, ySb).
[00261] Репрезентативный подблок может относиться к подблоку, содержащему верхний левый отсчет или центральный отсчет текущего блока.
[00262] На фиг. 21 представлено схематическое изображение, показывающее местоположение репрезентативного подблока.
[00263] На фиг. 21A показан пример, в котором подблок, расположенный в верхнем левом углу текущего блока, установлен как репрезентативный подблок, и на фиг. 21B показан пример, в котором подблок, расположенный в центре текущего блока, установлен как репрезентативный подблок. Когда предсказание с компенсацией движения выполняется в элементах подблоков, кандидат на слияние между участками текущего блока может быть получен на основании вектора движения подблока, содержащего верхний левый отсчет текущего блока, или подблока, содержащего центральный отсчет текущего блока.
[00264] То, использовать ли текущий блок в качестве кандидата на слияние между участками, также может быть определено на основании режима предсказания, осуществляемого между изображениями, текущего блока. В качестве примера, блок, который кодируется или декодируется на основании модели аффинного движения, может быть установлен как недоступный в качестве кандидата на слияние между участками. Соответственно, хотя текущий блок кодируется или декодируется посредством предсказания, осуществляемого между изображениями, таблица информации о движении с предсказанием, осуществляемым между изображениями, может не обновляться на основании текущего блока, когда режим предсказания, осуществляемого между изображениями, текущего блока представляет собой режим аффинного предсказания.
[00265] Альтернативно кандидат на слияние между участками может быть получен на основании вектора подблока по меньшей мере одного подблока, включенного в блок, который кодируется или декодируется на основании модели аффинного движения. В качестве примера, кандидат на слияние между участками может быть получен с использованием подблока, расположенного в верхнем левом углу текущего блока, подблока, расположенного в центре текущего блока, или подблока, расположенного в правом верхнем углу текущего блока. Альтернативно среднее значение векторов подблоков множества подблоков может быть установлено в качестве вектора движения кандидата на слияние между участками.
[00266] Альтернативно кандидат на слияние между участками может быть получен на основании среднего значения аффинных исходных векторов блока, который кодируется или декодируется на основании модели аффинного движения. В качестве примера, среднее значение по меньшей мере одного из первого аффинного исходного вектора, второго аффинного исходного вектора или третьего аффинного исходного вектора текущего блока может быть установлено в качестве вектора движения кандидата на слияние между участками.
[00267] Альтернативно таблица информации о движении между участками может быть сконфигурирована для каждого режима предсказания, осуществляемого между изображениями. В качестве примера, может быть задано по меньшей мере одно из таблицы информации о движении между участками для блока, кодированного или декодированного с помощью внутриблочного копирования, таблицы информации о движении между участками для блока, кодированного или декодированного на основании модели поступательного движения, или таблицы информации о движении между участками для блока, кодированного или декодированного на основании модели аффинного движения. Одна из множества таблиц информации о движении между участками может быть выбрана согласно режиму предсказания, осуществляемого между изображениями, текущего блока.
[00268] На фиг. 22 показан пример, в котором таблица информации о движении между участками генерируется для каждого режима предсказания, осуществляемого между изображениями.
[00269] Когда блок кодируется или декодируется на основании модели неаффинного движения, кандидат на слияние между участками mvCand, который получается на основании блока, может быть добавлен в таблицу информации о неаффинном движении между участками HmvpCandList. С другой стороны, когда блок кодируется или декодируется на основании модели аффинного движения, кандидат на слияние между участками mvAfCand, который получается на основании блока, может быть добавлен в таблицу информации об аффинном движении между участками HmvpAfCandList.
[00270] Аффинные исходные векторы блока могут храниться в кандидате на слияние между участками, полученном из блока, который кодируется или декодируется на основании модели аффинного движения. Соответственно, кандидат на слияние между участками может использоваться в качестве кандидата на слияние для получения аффинного исходного вектора текущего блока.
[00271] В дополнение к описанной выше таблице информации о движении между участками может быть задана дополнительная таблица информации о движении между участками. В дополнение к описанной выше таблице информации о движении между участками (далее называемой первой таблицей информации о движении между участками) может быть задана долговременная таблица информации о движении (далее называемая второй таблицей информации о движении между участками). В этом случае долговременная таблица информации о движении содержит долговременных кандидатов на слияние.
[00272] Когда и первая таблица информации о движении между участками, и вторая таблица информации о движении между участками пусты, кандидаты на слияние между участками могут быть предпочтительно добавлены во вторую таблицу информации о движении между участками. Пока количество кандидатов на слияние между участками, разрешенное для второй таблицы информации о движении между участками, не достигнет максимального количества, кандидаты на слияние между участками могут не добавляться в первую таблицу информации о движении между участками.
[00273] Альтернативно один кандидат на слияние предсказания, осуществляемого между изображениями, может быть добавлен как в первую таблицу информации о движении между участками, так и во вторую таблицу информации о движении между участками.
[00274] В этом случае вторая таблица информации о движении между участками, где осуществлена конфигурация, может больше не выполнять обновление. Альтернативно, когда декодированная область больше или равна предварительно определенной пропорции слайса, может быть обновлена вторая таблица информации о движении между участками. Альтернативно вторая таблица информации о движении между участками может обновляться каждые N линий элементов кодового дерева.
[00275] С другой стороны, первая таблица информации о движении между участками может обновляться всякий раз, когда генерируется блок, кодированный или декодированный посредством предсказания, осуществляемого между изображениями. Однако установка может быть выполнена таким образом, чтобы кандидаты на слияние между участками, добавленные во вторую таблицу информации о движении между участками, не использовались для обновления первой таблицы информации о движении между участками.
[00276] Информация для выбора одной из первой таблицы информации о движении между участками или второй таблицы информации о движении между участками может передаваться в битовом потоке. Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное значение, кандидаты на слияние, включенные в таблицу информации о движении между участками, указанную посредством информации, могут быть добавлены в список кандидатов на слияние.
[00277] Альтернативно таблица информации о движении между участками может быть выбрана на основании размера, формы или режима предсказания, осуществляемого между изображениями, текущего блока, наличия двунаправленного предсказания, наличия уточнения вектора движения или наличия треугольного разбиения.
[00278] Альтернативно, когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное количество, связанное со слиянием, даже если кандидаты на слияние между участками, включенные в первую таблицу информации о движении между участками, добавлены в список кандидатов на слияние, кандидаты на слияние между участками, включенные во вторую таблицу информации о движении между участками, могут быть добавлены в список кандидатов на слияние.
[00279] На фиг. 23 представлено схематическое изображение, показывающее пример, в котором кандидат на слияние между участками, включенный в долговременную таблицу информации о движении, добавлен в список кандидатов на слияние.
[00280] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное количество, кандидаты на слияние между участками, включенные в первую таблицу информации о движении между участками HmvpCandList, могут быть добавлены в список кандидатов на слияние. Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше максимального количества, даже если кандидаты на слияние между участками, включенные в первую таблицу информации о движении между участками, добавлены в список кандидатов на слияние, кандидаты на слияние между участками, включенные в долгосрочную таблицу информации о движении HmvpLTCandList, могут быть добавлены в список кандидатов на слияние.
[00281] Таблица 2 показывает процесс добавления кандидатов на слияние между участками, включенных в долговременную таблицу информации о движении, в список кандидатов на слияние.
[00282] [Таблица 2]
[00283] Установка может быть выполнена таким образом, чтобы кандидат на слияние между участками содержал дополнительную информацию, а также информацию о движении. В качестве примера, размер, форма или информация о разделении блока могут быть дополнительно сохранены для кандидата на слияние между участками. При конфигурации списка кандидатов на слияние для текущего блока могут использоваться только кандидатов на слияние предсказания, осуществляемого между изображениями, имеющих такой же или подобный размер, форму или информацию о разделении, что и текущий блок, из кандидатов на слияние предсказания, осуществляемого между изображениями, или кандидатов на слияние предсказания, осуществляемого между изображениями, имеющих такой же или подобный размер, форму или информацию о разделении, что и текущий блок, могут быть предпочтительно добавлены в список кандидатов на слияние.
[00284] Альтернативно таблица информации о движении между участками может быть сгенерирована для каждого размера, формы или части информации о разделении блока. Список кандидатов на слияние текущего блока может быть сгенерирован с использованием таблицы информации о движении между участками, соответствующей форме, размеру или информации о разделении текущего блока, из множества таблиц информации о движении между участками.
[00285] Альтернативно таблица информации о движении между участками может быть создана для каждого разрешения вектора движения. В качестве примера, когда вектор движения текущего блока имеет разрешение, составляющее 1/4 пикселя, кандидат на слияние между участками, полученный из текущего блока, может быть добавлен в список информации о движении между участками с разрешением, составляющим четверть пикселя. Когда вектор движения текущего блока имеет разрешение, составляющее 1 целый пиксель, кандидат на слияние между участками, полученный из текущего блока, может быть добавлен в список информации о движении между участками с разрешением, составляющим целый пиксель. Когда вектор движения текущего блока имеет разрешение, составляющее 4 целых пикселя, кандидат на слияние между участками, полученный из текущего блока, может быть добавлен в список информации о движении между участками с разрешением, составляющим 4 целых пикселя. Один из множества списков информации о движении между участками может быть выбран в соответствии с разрешением вектора движения блока, который подлежит кодированию или декодированию.
[00286] Когда способ кодирования вектора смещения слияния применяется к текущему блоку, кандидат на слияние между участками, полученный из текущего блока, может быть добавлен в список информации о движении смещения слияния между участками HmvpHMVDCandList вместо добавления в таблицу информации о движении между участками HmvpCandList. В этом случае кандидат на слияние между участками может содержать информацию смещения вектора движения текущего блока. HmvpHMVDCandList может использоваться для получения смещения блока, к которому применяется способ кодирования вектора смещения слияния.
[00287] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, не равно максимальному значению, кандидат на слияние между участками, включенный в таблицу информации о движении между участками, может быть добавлен в список кандидатов на слияние. Процесс добавления может выполняться в порядке возрастания или убывания на основании индексов. В качестве примера, кандидат на слияние между участками с наибольшим индексом может быть предпочтительно добавлен в список кандидатов на слияние.
[00288] Когда кандидат на слияние между участками, включенный в таблицу информации о движении между участками, должен быть добавлен в список кандидатов на слияние, может быть выполнен контроль по избыточности между кандидатом на слияние между участками и кандидатами на слияние, предварительно сохраненными в списке кандидатов на слияние.
[00289] В качестве примера, в таблице 3 показан процесс добавления кандидата на слияние между участками в список кандидатов на слияние.
[00290] [Таблица 3]
[00291] Контроль по избыточности может выполняться только в отношении некоторых кандидатов на слияние между участками, включенных в таблицу информации о движении между участками. В качестве примера, контроль по избыточности может выполняться только в отношении кандидатов на слияние между участками с индексами, большими или равными пороговому значению, или индексами, меньшими или равными пороговому значению.
[00292] Альтернативно контроль по избыточности может выполняться только в отношении некоторых кандидатов на слияние, предварительно сохраненных в списке кандидатов на слияние. В качестве примера, контроль по избыточности может выполняться только в отношении кандидата на слияние с индексом, большим или равным пороговому значению, или индексом, меньшим или равным пороговому значению, или кандидата на слияние, полученного из блока в конкретном местоположении. В этом случае конкретное местоположение может включать по меньшей мере один из левого соседнего блока, верхнего соседнего блока, верхнего правого соседнего блока или нижнего левого соседнего блока текущего блока.
[00293] На фиг. 24 представлено схематическое изображение, показывающее пример, в котором контроль по избыточности выполняется только в отношении некоторых кандидатов на слияние.
[00294] Когда кандидат на слияние между участками HmvpCand[j] должен быть добавлен в список кандидатов на слияние, контроль по избыточности может быть выполнен в отношении кандидата на слияние между участками в отношении двух кандидатов на слияние mergeCandList[NumMerge-2] и mergeCandList[NumMerge -1], имеющих наибольшие индексы. В этом случае NumMerge может представлять количество доступных пространственных кандидатов на слияние и временных кандидатов на слияние.
[00295] Когда найден кандидат на слияние, идентичный первому кандидату на слияние между участками, контроль по избыточности в отношении кандидата на слияние, идентичного первому кандидату на слияние между участками, может быть пропущен, в то время как контроль по избыточности в отношении второго кандидата на слияние между участками выполняется.
[00296] На фиг. 25 представлено схематическое изображение, показывающее пример, в котором пропущен контроль по избыточности в отношении конкретного кандидата на слияние.
[00297] Когда кандидат на слияние между участками HmvpCand[i] с индексом i должен быть добавлен в список кандидатов на слияние, может быть выполнен контроль по избыточности между кандидатом на слияние между участками и кандидатами на слияние, предварительно сохраненными в списке кандидатов на слияние. В этом случае, когда найден кандидат на слияние mergeCandList[j], идентичный кандидату на слияние между участками HmvpCand[i], кандидат на слияние между участками HmvpCand[i] может не добавляться в список кандидатов на слияние, и может быть выполнен контроль по избыточности между кандидатом на слияние между участками HmvpCand[i-1], имеющим индекс i-1, и кандидатами на слияние. В этом случае контроль по избыточности между кандидатом на слияние между участками HmvpCand[i-1] и кандидатом на слияние mergeCandList[j] может быть пропущен.
[00298] В качестве примера, в примере, показанном на фиг. 25, определяется, что HmvpCand[i] и mergeCandList[2] идентичны друг другу. Соответственно, HmvpCand[i] может не добавляться в список кандидатов на слияние, и контроль по избыточности может выполняться в отношении HmvpCand[i-1]. В этом случае контроль по избыточности между HvmpCand[i-1] и mergeCandList[2] может быть пропущен.
[00299] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, меньше, чем максимальное количество, по меньшей мере один из парного кандидата на слияние или нулевого кандидата на слияние может быть дополнительно включен в дополнение к кандидату на слияние между участками. Парный кандидат на слияние относится к кандидату на слияние с вектором движения, равным среднему из векторов движения двух или более кандидатов на слияние, а нулевой кандидат на слияние относится к кандидату на слияние с вектором движения, равным 0.
[00300] Кандидат на слияние может быть добавлен в список кандидатов на слияние текущего блока в следующем порядке.
[00301] Пространственный кандидат на слияние - Временной кандидат на слияние - Кандидат на слияние между участками - (Кандидат на аффинное слияние между участками) - Парный кандидат на слияние - Нулевой кандидат на слияние.
[00302] Пространственный кандидат на слияние относится к кандидату на слияние, полученному из по меньшей мере одного из соседнего блока или несоседнего блока, и временной кандидат на слияние относится к кандидату на слияние, полученному из предыдущего опорного изображения. Кандидат на аффинное слияние между участками относится к кандидату на слияние между участками, полученному из блока, кодированного или декодированного с помощью модели аффинного движения.
[00303] Таблица информации о движении между участками может использоваться даже в режиме предсказания вектора движения. В качестве примера, когда количество кандидатов предсказания вектора движения, включенных в список кандидатов предсказания вектора движения текущего блока, меньше, чем максимальное количество, кандидат на слияние между участками, включенный в таблицу информации о движении между участками, может быть установлен как кандидат предсказания вектора движения для текущего блока. Подробно вектор движения кандидата на слияние между участками может быть установлен в качестве кандидата предсказания вектора движения.
[00304] Когда выбирается один из кандидатов предсказания вектора движения, включенных в список кандидатов предсказания вектора движения текущего блока, выбранный кандидат может быть установлен как предсказатель вектора движения текущего блока. Впоследствии вектор движения текущего блока может быть получен путем декодирования остаточного значения вектора движения текущего блока и последующего сложения предсказателя вектора движения и остаточного значения вектора движения.
[00305] Список кандидатов предсказания вектора движения текущего блока может быть сконфигурирован в следующем порядке.
[00306] Пространственный кандидат предсказания вектора движения - Временной кандидат предсказания вектора движения - Кандидат на слияние в области декодирования между изображениями - (Кандидат на аффинное слияние в области декодирования между изображениями) - Нулевой кандидат предсказания вектора движения.
[00307] Пространственный кандидат предсказания вектора движения относится к кандидату предсказания вектора движения, полученному из по меньшей мере одного из соседнего блока или несоседнего блока, и временной кандидат предсказания вектора движения относится к кандидату предсказания вектора движения, полученному из предыдущего опорного изображения. Кандидат на аффинное слияние между участками относится к кандидату предсказания вектора движения между участками, полученному из блока, кодированного или декодированного с помощью модели аффинного движения. Нулевой кандидат предсказания вектора движения представляет кандидата, имеющего вектор движения, равный 0.
[00308] Может быть задана область обработки слияния, превышающая размер блока кодирования. Блоки кодирования, включенные в область обработки слияния, могут обрабатываться параллельно без последовательного кодирования или декодирования. В этом случае непоследовательное кодирование или декодирование означает, что порядок кодирования или декодирования не задан. Соответственно, процесс кодирования или декодирования блоков, включенных в область обработки слияния, может обрабатываться независимо. Альтернативно блоки, включенные в область обработки слияния, могут совместно использовать кандидатов на слияние. В этом случае кандидаты на слияние могут быть получены на основании области обработки слияния.
[00309] Согласно вышеописанным характеристикам область обработки слияния может называться областью параллельной обработки, совместно используемым участком слияния (SMR) или участком оценки слияния (MER).
[00310] Кандидат на слияние текущего блока может быть получен на основании блока кодирования. Однако, когда текущий блок включен в область параллельного слияния, большую, чем текущий блок, кандидатный блок, включенный в ту же область параллельного слияния, что и текущий блок, может быть установлен как недоступный в качестве кандидата на слияние.
[00311] На фиг. 26 представлено схематическое изображение, показывающее пример, в котором кандидатный блок, включенный в ту же область параллельного слияния, что и текущий блок, установлен как недоступный в качестве кандидата на слияние.
[00312] В примере, показанном на фиг. 26A, когда CU5 кодируется или декодируется, блоки, содержащие опорные отсчеты, смежные с CU5, могут быть установлены в качестве кандидатных блоков. В этом случае кандидатные блоки X3 и X4, которые включены в ту же область параллельного слияния, что и CU5, могут быть установлены как недоступные в качестве кандидатов на слияние. С другой стороны, кандидатные блоки X0, X1 и X2, которые не включены в ту же область параллельного слияния, что и CU5, могут быть установлены как доступные в качестве кандидатов на слияние.
[00313] В примере, показанном на фиг. 26B, когда CU8 кодируется или декодируется, блоки, содержащие опорные отсчеты, смежные с CU8, могут быть установлены в качестве кандидатных блоков. В этом случае кандидатные блоки X6, X7 и X8, которые включены в ту же область параллельного слияния, что и CU8, могут быть установлены как недоступные в качестве кандидатов на слияние. С другой стороны, кандидатные блоки X5 и X9, которые не включены в ту же область слияния, что и CU8, могут быть установлены как доступные в качестве кандидатов на слияние.
[00314] Область параллельного слияния может быть квадратной или неквадратной. Информация для определения области параллельного слияния может передаваться в битовом потоке. Информация может содержать по меньшей мере одно из информации, указывающей форму области параллельного слияния, или информации, указывающей размер области параллельного слияния. Когда область параллельного слияния не является квадратной, по меньшей мере одна из информации, указывающей размер области параллельного слияния, информации, указывающей ширину и/или высоту области параллельного слияния, или информации, указывающей соотношение между шириной и высотой области параллельного слияния, может быть передана в битовом потоке.
[00315] Размер области параллельного слияния может быть определен на основании по меньшей мере одного из информации, передаваемой в битовом потоке, разрешения изображения, размера слайса или размера тайла.
[00316] Когда предсказание с компенсацией движения выполняется в отношении блока, включенного в область параллельного слияния, кандидат на слияние между участками, полученный на основании информации о движении блока, подвергаемого предсказанию с компенсацией движения, может быть добавлен в таблицу информации о движении между участками.
[00317] Однако, когда кандидат на слияние между участками, полученный из блока, включенного в область параллельного слияния, добавляется в таблицу информации о движении между участками, кандидат на слияние между участками, полученный из блока, может использоваться, когда другой блок, включенный в область параллельного слияния, фактически кодируется или декодируется позже, чем этот блок. То есть, хотя зависимость между блоками должна быть исключена при кодировании или декодировании блоков, включенных в область параллельного слияния, компенсация предсказания движения может выполняться с использованием информации о движении другого блока, включенного в область параллельного слияния. С целью решения этой проблемы, даже если кодирование или декодирование блока, включенного в область параллельного слияния, осуществлено, информация о движении блока, в котором осуществлено кодирование или декодирование, может не добавляться в таблицу информации о движении между участками.
[00318] Альтернативно, когда предсказание с компенсацией движения выполняется в отношении блоков, включенных в область параллельного слияния, кандидат на слияние между участками, полученный из блоков, может быть добавлен в таблицу информации о движении между участками в предварительно заданном порядке. В этом случае предварительно заданный порядок может быть определен в порядке сканирования блоков кодирования в элементе кодового дерева или области параллельного слияния. Порядок сканирования может быть по меньшей мере одним из растрового сканирования, горизонтального сканирования, вертикального сканирования или зигзагообразного сканирования. Альтернативно предварительно заданный порядок может быть определен на основании информации о движении каждого из блоков или количества блоков, имеющих одинаковую информацию о движении.
[00319] Альтернативно кандидат на слияние между участками, содержащий информацию об однонаправленном движении, может быть добавлен в список слияния между участками раньше, чем кандидат на слияние между участками, содержащий информацию о двунаправленном движении. И наоборот, кандидат на слияние между участками, содержащий информацию о двунаправленном движении, может быть добавлен в список кандидатов на слияние между участками раньше, чем кандидат на слияние между участками, содержащий информацию об однонаправленном движении.
[00320] Альтернативно кандидаты на слияние между участками могут быть добавлены в таблицу информации о движении между участками в порядке возрастания или убывания частоты использования в области параллельного слияния или элементе кодового дерева.
[00321] Когда текущий блок включен в область параллельного слияния, и количество кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, меньше максимального количества, кандидат на слияние между участками, включенный в таблицу информации о движении между участками, может быть добавлен в список кандидатов на слияние. В этом случае установка может быть выполнена таким образом, что кандидат на слияние между участками, полученный из блока, включенного в ту же область параллельного слияния, что и текущий блок, добавляется в список кандидатов на слияние текущего блока.
[00322] Альтернативно установка может быть выполнена таким образом, что, когда текущий блок включен в область параллельного слияния, кандидат на слияние между участками, включенный в таблицу информации о движении между участками, не используется. То есть, даже когда количество кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, меньше, чем максимальное количество, кандидат на слияние между участками, включенный в таблицу информации о движении между участками, может не добавляться в список кандидатов на слияние.
[00323] Таблица информации о движении между участками может быть сконфигурирована для области параллельного слияния или элемента кодового дерева. Эта таблица информации о движении между участками служит для временного хранения информации о движении блоков, включенных в область параллельного слияния. Чтобы отличить общую таблицу информации о движении между участками от таблицы информации о движении между участками для области параллельного слияния или элемента кодового дерева, таблица информации о движении между участками для области параллельного слияния или элемента кодового дерева будет называться временной таблицей информации о движении. Кроме того, кандидат на слияние между участками, хранящийся во временной таблице информации о движении, будет называться временным кандидатом на слияние.
[00324] На фиг. 27 представлено схематическое изображение, показывающее временную таблицу информации о движении.
[00325] Временная таблица информации о движении может быть сконфигурирована для элемента кодового дерева или области параллельного слияния. Когда предсказание с компенсацией движения выполняется в отношении текущего блока, включенного в элемент кодового дерева или область параллельного слияния, информация о движении блока может не добавляться в таблицу информации о движении с предсказанием, осуществляемым между изображениями, HmvpCandList. Вместо этого временной кандидат на слияние, полученный из блока, может быть добавлен во временную таблицу информации о движении HmvpMERCandList. То есть временной кандидат на слияние, добавленный во временную таблицу информации о движении, может не добавляться в таблицу информации о движении между участками. Соответственно, таблица информации о движении между участками может не содержать кандидата на слияние между участками, полученного на основании информации о движении блоков, включенных в область параллельного слияния или элемент кодового дерева, содержащий текущий блок.
[00326] Максимальное количество кандидатов на слияние, которые могут быть включены во временную таблицу информации о движении, может быть установлено таким же, как и в таблице информации о движении между участками. Альтернативно максимальное количество кандидатов на слияние, которые могут быть включены во временную таблицу информации о движении, может быть определено согласно размеру элемента кодового дерева или области параллельного слияния.
[00327] Текущий блок, включенный в элемент кодового дерева или область параллельного слияния, может быть установлен таким образом, чтобы не использовать временную таблицу информации о движении для соответствующего элемента кодового дерева или соответствующей области параллельного слияния. То есть, когда количество кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, меньше, чем максимальное значение, кандидат на слияние между участками, включенный в таблицу информации о движении между участками, может быть добавлен в список кандидатов на слияние, и временной кандидат на слияние, включенный во временную таблицу информации о движении, может не добавляться в список кандидатов на слияние. Соответственно, информация о движении других блоков, включенных в тот же элемент кодового дерева или область параллельного слияния, что и у текущего блока, может не использоваться для предсказания с компенсацией движения текущего блока.
[00328] При осуществлении кодирования или декодирования всех блоков, включенных в элемент кодового дерева или область параллельного слияния, может быть осуществлено слияние таблицы информации о движении между участками и временной таблицы информации о движении.
[00329] На фиг. 28 представлено схематическое изображение, показывающее пример слияния временной таблицы информации о движении с таблицей информации о движении между участками.
[00330] При осуществлении кодирования или декодирования всех блоков, включенных в элемент кодового дерева или область параллельного слияния, таблица информации о движении между участками может быть обновлена с помощью временного кандидата на слияние, включенного во временную таблицу информации о движении, в примере, показанном на фиг. 28.
[00331] В этом случае временные кандидаты на слияние, включенные во временную таблицу информации о движении, могут быть добавлены в таблицу информации о движении между участками в том порядке, в котором временные кандидаты на слияние были вставлены во временную таблицу информации о движении (т.е. в порядке возрастания или убывания индексных значений).
[00332] В качестве другого примера временные кандидаты на слияние, включенные во временную таблицу информации о движении, могут быть добавлены в таблицу информации о движении между участками в предварительно заданном порядке.
[00333] В этом случае предварительно заданный порядок может быть определен в порядке сканирования блоков кодирования в элементе кодового дерева или области параллельного слияния. Порядок сканирования может быть по меньшей мере одним из растрового сканирования, горизонтального сканирования, вертикального сканирования или зигзагообразного сканирования. Альтернативно предварительно заданный порядок может быть определен на основании информации о движении каждого из блоков или количества блоков, имеющих одинаковую информацию о движении.
[00334] Альтернативно временной кандидат на слияние, содержащий информацию об однонаправленном движении, может быть добавлен в список на слияние между участками раньше, чем временной кандидат на слияние, содержащий информацию о двунаправленном движении. И наоборот, временной кандидат на слияние, содержащий информацию о двунаправленном движении, может быть добавлен в список кандидатов на слияние между участками раньше, чем временной кандидат на слияние, содержащий информацию об однонаправленном движении.
[00335] Альтернативно временные кандидаты на слияние могут быть добавлены в таблицу информации о движении между участками в порядке возрастания или убывания частоты использования в области параллельного слияния или элементе кодового дерева.
[00336] Когда временной кандидат на слияние, включенный во временную таблицу информации о движении, добавляется в таблицу информации о движении между участками, может выполняться контроль по избыточности для временного кандидата на слияние. В качестве примера, когда кандидат на слияние между участками, идентичный временному кандидату на слияние, включенному во временную таблицу информации о движении, предварительно сохраняется в таблице информации о движении между участками, временной кандидат на слияние может не добавляться в таблицу информации о движении между участками. В этом случае контроль по избыточности может выполняться только в отношении некоторых кандидатов на слияние между участками, включенных в таблицу информации о движении между участками. В качестве примера, контроль по избыточности может выполняться только в отношении кандидатов на слияние предсказания, осуществляемого между изображениями, с индексами, большими или равными пороговому значению, или индексами, меньшими или равными пороговому значению. В качестве примера, когда временной кандидат на слияние идентичен кандидату на слияние между участками с индексом, большим или равным предварительно заданному значению, временной кандидат на слияние может не добавляться в таблицу информации о движении между участками.
[00337] Внутреннее предсказание предназначено для предсказания текущего блока с использованием восстановленного отсчета, в котором осуществлено кодирование или декодирование, и который находится рядом с текущим блоком. В этом случае восстановленный отсчет до применения фильтра в контуре может использоваться для внутреннего предсказания текущего блока.
[00338] Метод внутреннего предсказания включает внутреннее предсказание на основании матрицы и нормальное внутреннее предсказание с учетом направленности по отношению к ближайшему восстановленному отсчету. Информация, указывающая метод внутреннего предсказания текущего блока, может передаваться в битовом потоке. Информация может представлять собой 1-битный флаг.Альтернативно метод внутреннего предсказания текущего блока может быть определен на основании по меньшей мере одного из местоположения, размера или формы текущего блока или метода внутреннего предсказания соседнего блока. В качестве примера, когда текущий блок присутствует на границе изображения, установка может быть выполнена таким образом, чтобы внутреннее предсказание на основании матрицы не применялось к текущему блоку.
[00339] Внутреннее предсказание на основании матрицы может представлять собой способ получения блока предсказания текущего блока на основании произведения матриц между матрицей, предварительно сохраненной в кодере и декодере, и восстановленными отсчетами, находящимися рядом с текущим блоком. Информация для указания одной из множества предварительно сохраненных матриц может передаваться в битовом потоке. Декодер может определять матрицу для внутреннего предсказания текущего блока на основании информации и размера текущего блока.
[00340] Нормальное внутреннее предсказание представляет собой способ получения блока предсказания для текущего блока на основании режима ненаправленного внутреннего предсказания или режима направленного внутреннего предсказания. Процесс выполнения внутреннего предсказания на основании нормального внутреннего предсказания будет подробно описан ниже со ссылкой на графические материалы.
[00341] На фиг. 29 представлена блок-схема способа внутреннего предсказания согласно варианту осуществления настоящего изобретения.
[00342] Может быть определена (S2901) линия опорных отсчетов текущего блока. Линия опорных отсчетов относится к набору опорных отсчетов, включенных в k-ю линию от верхней и/или левой стороны текущего блока. Опорные отсчеты могут быть получены из восстановленных отсчетов, в которых осуществлено кодирование или декодирование, и которые находятся рядом с текущим блоком.
[00343] Информация об индексах для идентификации линии опорных отсчетов текущего блока из множества линий опорных отсчетов может передаваться в битовом потоке. Множество линий опорных отсчетов может содержать по меньшей мере одну из первой линии, второй линии, третьей линии или четвертой линии сверху и/или слева от текущего блока. В таблице 4 представлены индексы, присвоенные линиям опорных отсчетов. В таблице 4 предполагается, что первая линия, вторая линия и четвертая линия используются в качестве кандидатов линий опорных отсчетов.
[00344] [Таблица 4]
[00345] Линия опорных отсчетов текущего блока может быть определена на основании по меньшей мере одного из местоположения, размера или формы текущего блока или режима предсказания соседнего блока. В качестве примера, когда текущий блок прилегает к краю изображения, тайла, слайса или элемента кодового дерева, в качестве линии опорных отсчетов текущего блока может быть определена первая линия опорных отсчетов.
[00346] Линия опорных отсчетов может содержать верхние опорные отсчеты, расположенные над текущим блоком, и левые опорные отсчеты, расположенные слева от текущего блока. Верхние опорные отсчеты и левые опорные отсчеты могут быть получены из восстановленных отсчетов рядом с текущим блоком. Восстановленные отсчеты могут находиться в состоянии до применения фильтра в контуре.
[00347] На фиг. 30 представлено схематическое изображение, показывающее опорные отсчеты, включенные в каждую линию опорных отсчетов.
[00348] Отсчет предсказания может быть получен с использованием по меньшей мере одного опорного отсчета, принадлежащего линии опорных отсчетов, в соответствии с режимом внутреннего предсказания текущего блока.
[00349] Затем может быть определен (S2902) режим внутреннего предсказания текущего блока. Как режим внутреннего предсказания текущего блока может быть определен по меньшей мере один из режима ненаправленного внутреннего предсказания или режима направленного внутреннего предсказания. Режим ненаправленного внутреннего предсказания включает планарный режим и режим DC, а направленное внутреннее предсказание включает 33 или 65 режимов от диагонального направления вниз и влево до диагонального направления вверх и вправо.
[00350] На фиг. 31 представлено схематическое изображение, показывающее режимы внутреннего предсказания.
[00351] На фиг. 31A показаны 35 режимов внутреннего предсказания, и на фиг. 31B показаны 67 режимов внутреннего предсказания.
[00352] Может быть задано большее количество режимов внутреннего предсказания или меньшее количество режимов внутреннего предсказания, чем показано на фиг. 31.
[00353] Наиболее вероятный режим (MPM) может быть установлен на основании режима внутреннего предсказания блока, соседнего с текущим блоком. В данном случае соседний блок может включать левый соседний блок, смежный с левой стороной текущего блока, и верхний соседний блок, смежный с верхней стороной текущего блока. Когда координатами верхнего левого отсчета текущего блока являются (0, 0), левый соседний блок может включать отсчет, расположенный при (-1, 0), (-1, H-1) или (-1, (H-1)/2). В данном случае H представляет высоту текущего блока. Верхний соседний блок может включать отсчет, расположенный при (0, -1), (W-1, -1) или ((W-1)/2, -1). В данном случае W представляет ширину текущего блока.
[00354] Когда соседний блок кодирован с помощью нормального внутреннего предсказания, MPM может быть получен на основании режима внутреннего предсказания соседнего блока. Подробно режим внутреннего предсказания левого соседнего блока может быть установлен с использованием переменной candIntraPredModeA, а режим внутреннего предсказания верхнего соседнего блока может быть установлен с использованием переменной candIntraPredModeB.
[00355] В этом случае, когда соседний блок недоступен (например, когда соседний блок еще не был кодирован или декодирован, или когда местоположение соседнего блока отклоняется от края изображения), когда соседний блок кодирован с использованием внутреннего предсказания на основе матрицы, когда соседний блок кодирован с помощью предсказания, осуществляемого между изображениями, или когда соседний блок включен в элемент кодового дерева, отличный от элемента текущего блока, в качестве режима по умолчанию может быть установлена переменная candIntraPredModeX (в данном случае X представляет собой A или B), полученная на основании режима внутреннего предсказания соседнего блока. В данном случае режим по умолчанию может включать по меньшей мере один из планарного режима, режима DC, вертикального режима или горизонтального режима.
[00356] Альтернативно, когда соседний блок кодирован с помощью внутреннего предсказания на основе матрицы, режим внутреннего предсказания, соответствующий индексному значению для указания одной из множества матриц, может быть установлен как candIntraPredModeX. С этой целью в кодере и декодере может быть предварительно сохранена таблица поиска, указывающая соотношение отображения между режимами внутреннего предсказания и индексными значениями для указания матриц.
[00357] MPM могут быть получены на основании переменной candIntraPredModeA и переменной candIntraPredModeB. Количество MPM, включенных в список MPM, может быть предварительно установлено в кодере и декодере. В качестве примера, количество MPM может составлять три, четыре, пять или шесть. Альтернативно информация, указывающая количество МРМ, может передаваться в битовом потоке. Альтернативно количество МРМ может быть определено на основании по меньшей мере одного из режима предсказания соседнего блока или размера или формы текущего блока.
[00358] В следующих вариантах осуществления предполагается, что количество MPM равно трем, и три MPM называются MPM[0], MPM[1] и MPM[2]. Когда количество МРМ больше трех, МРМ могут быть выполнены с возможностью включения трех МРМ, которые будут описаны в следующих вариантах осуществления.
[00359] Когда candIntraPredA и candIntraPredB идентичны, и candIntraPredA представляет собой планарный режим или режим DC, MPM[0] и MPM[1] могут быть установлены для планарного режима и режима DC соответственно. MPM[2] может быть установлен для вертикального режима внутреннего предсказания, горизонтального режима внутреннего предсказания или диагонального режима внутреннего предсказания. Диагональный режим внутреннего предсказания может представлять собой диагональный режим внутреннего предсказания в направлении вниз и влево, режим внутреннего предсказания в направлении вверх и влево или режим внутреннего предсказания в направлении вверх и вправо.
[00360] Когда candIntraPredA и candIntraPredB идентичны, и candIntraPredA представляет собой режим направленного внутреннего предсказания, MPM[0] может быть установлен как идентичный candIntraPredA. MPM[1] и MPM[2] могут быть установлены для режимов внутреннего предсказания, подобных candIntraPredA. Режим внутреннего предсказания, подобный candIntraPredA, может представлять собой режим внутреннего предсказания, в котором значение разности индексов по отношению к candIntraPredA равно±1 или±2. Для получения режима внутреннего предсказания, подобного candIntraPredA, могут использоваться операция по модулю (%) и смещение.
[00361] Когда candIntraPredA и candIntraPredB различны, MPM[0] может быть установлен как идентичный candIntraPredA, и MPM[1] может быть установлен как идентичный candIntraPredB. В этом случае, когда и candIntraPredA, и candIntraPredB представляют собой режимы ненаправленного внутреннего предсказания, MPM[2] может быть установлен в качестве вертикального режима внутреннего предсказания, горизонтального режима внутреннего предсказания или диагонального режима внутреннего предсказания. Альтернативно, когда по меньшей мере один из candIntraPredA и candIntraPredB представляет собой режим направленного внутреннего предсказания, MPM[2] может быть установлен как режим внутреннего предсказания, полученный путем добавления смещения к планарному режиму, режиму DC или большему из candIntraPredA и candIntraPredB или вычитания их них. В данном случае смещение может быть равно 1 или 2.
[00362] Создается список MPM, содержащий множество MPM, и информация, указывающая, включен ли MPM, идентичный режиму внутреннего предсказания текущего блока, в список MPM, может передаваться в битовом потоке. Информация представляет собой 1-битный флаг, и флаг может называться флагом MPM. Когда флаг MPM указывает, что MPM, идентичный текущему блоку, включен в список MPM, информация об индексах для указания одного из MPM, может передаваться в битовом потоке. В качестве режима внутреннего предсказания текущего блока может быть установлен МРМ, указанный информацией об индексах. Когда флаг MPM указывает, что MPM, идентичный текущему блоку, не включен в список MPM, информация об остаточных режимах, указывающая один из оставшихся режимов внутреннего предсказания, отличных от MPM, может быть передана в битовом потоке. Информация об остаточных режимах указывает индексное значение, соответствующее режиму внутреннего предсказания текущего блока, когда индексы повторно присвоены оставшимся режимам внутреннего предсказания, отличным от MPM. Для определения режима внутреннего предсказания текущего блока, декодер может сортировать МРМ в порядке возрастания и сравнивать МРМ с информацией об остаточных режимах. В качестве примера, когда информация об остаточных режимах меньше или равна MPM, режим внутреннего предсказания текущего блока может быть получен путем добавления единицы к информации об остаточных режимах.
[00363] Вместо установки MPM в качестве режима по умолчанию, в битовом потоке может быть передана информация, указывающая, является ли режим внутреннего предсказания текущего блока режимом по умолчанию. Информация может представлять собой 1-битный флаг, и флаг может называться флагом режима по умолчанию. Флаг режима по умолчанию может быть передан только тогда, когда флаг MPM указывает, что MPM, идентичный текущему блоку, включен в список MPM. Как описано выше, режим по умолчанию может включать по меньшей мере один из планарного режима, режима DC, вертикального режима или горизонтального режима. В качестве примера, когда в качестве режима по умолчанию установлен планарный режим, флаг режима по умолчанию может указывать, является ли режим внутреннего предсказания текущего блока планарным режимом. Когда флаг режима по умолчанию указывает, что режим внутреннего предсказания текущего блока не является режимом по умолчанию, в качестве режима внутреннего предсказания текущего блока может быть установлен один из MPM, указанных информацией об индексах.
[00364] Когда в качестве режимов по умолчанию установлены множество режимов внутреннего предсказания, дальше может быть передана информация об индексах, указывающая один из режимов по умолчанию. Режим внутреннего предсказания текущего блока может быть установлен в качестве режима по умолчанию, указанного информацией об индексах.
[00365] Когда индекс линии опорных отсчетов текущего блока является ненулевым, установка может быть выполнена так, что режим по умолчанию не используется. Соответственно, когда индекс линии опорных отсчетов является ненулевым, флаг режима по умолчанию может не передаваться, и значение флага режима по умолчанию может быть установлено равным предварительно заданному значению (т.е. false).
[00366] Когда режим внутреннего предсказания текущего блока определен, отсчеты предсказания для текущего блока могут быть получены (S2903) на основании определенного режима внутреннего предсказания.
[00367] Когда выбран режим DC, отсчеты предсказания для текущего блока могут генерироваться на основании среднего значения опорных отсчетов. Подробно значения всех отсчетов в блоке предсказания могут генерироваться на основании среднего значения опорных отсчетов. Среднее значение может быть получено с использованием по меньшей мере одного из верхних опорных отсчетов, расположенных над текущим блоком, и левых опорных отсчетов, расположенных слева от текущего блока.
[00368] Количество или диапазон опорных отсчетов, используемых для получения среднего значения, может меняться в зависимости от формы текущего блока. В качестве примера, когда текущий блок представляет собой блок неквадратной формы, в котором ширина больше высоты, среднее значение может быть рассчитано с использованием только верхних опорных отсчетов. С другой стороны, когда текущий блок представляет собой блок неквадратной формы, в котором ширина меньше высоты, среднее значение может быть рассчитано с использованием только левых опорных отсчетов. То есть, когда ширина и высота текущего блока отличаются друг от друга, среднее значение может быть рассчитано с использованием только опорных отсчетов, смежных с большей из ширины и высоты. Альтернативно то, следует ли рассчитывать среднее значение с использованием верхних опорных отсчетов или рассчитывать среднее значение с использованием левых опорных отсчетов, можно определить на основании соотношения ширины и высоты текущего блока.
[00369] Когда выбран планарный режим, отсчет предсказания может быть получен с использованием отсчета горизонтального предсказания и отсчета вертикального предсказания. В данном случае отсчет горизонтального предсказания получается на основании левого опорного отсчета и правого опорного отсчета, расположенных на той же горизонтальной линии, что и отсчет предсказания, а отсчет вертикального предсказания получается на основании верхнего опорного отсчета и нижнего опорного отсчета, расположенных на той же вертикальной линии, что и отсчет предсказания. В данном случае правый опорный отсчет может генерироваться путем копирования опорного отсчета, смежного с верхним правым углом текущего блока, а нижний опорный отсчет может генерироваться путем копирования опорного отсчета, смежного с нижним левым углом текущего блока. Отсчет горизонтального предсказания может быть получен на основании операции взвешенной суммы левого опорного отсчета и правого опорного отсчета, а отсчет вертикального предсказания может быть получен на основании операции взвешенной суммы верхнего опорного отсчета и нижнего опорного отсчета. В этом случае весовой коэффициент, присваиваемый каждому опорному отсчету, может быть определен в зависимости от местоположения отсчета предсказания. Отсчет предсказания может быть получен на основании операции усреднения или операции взвешенной суммы отсчета горизонтального предсказания и отсчета вертикального предсказания. При выполнении операции взвешенной суммы весовые коэффициенты, присваиваемые отсчету горизонтального предсказания и отсчету вертикального предсказания, могут быть определены на основании местоположения отсчета предсказания.
[00370] Когда выбран режим направленного предсказания, может быть определен параметр, указывающий направление предсказания (или угол предсказания) выбранного режима направленного предсказания. Ниже в таблице 5 представлен параметр внутреннего направления intraPredAng для каждого режима внутреннего предсказания.
[00371] [Таблица 5]
[00372] В таблице 5 представлен параметр внутреннего направления для каждого режима внутреннего предсказания с индексом от 2 до 34, когда заданы 35 режимов внутреннего предсказания. Когда задано более 33 режимов направленного внутреннего предсказания, таблицу 5 можно подразделить с целью установки параметров внутреннего направления для каждого режима направленного внутреннего предсказания.
[00373] После расположения верхних опорных отсчетов и левых опорных отсчетов текущего блока в линию отсчет предсказания может быть получен на основании значения параметра внутреннего направления. В этом случае левые опорные отсчеты и верхние опорные отсчеты могут быть расположены в линию, когда значение параметра внутреннего направления является отрицательным.
[00374] На фиг. 32 и 33 представлены схематические изображения, показывающие пример одномерного массива, в котором опорные отсчеты расположены в линию.
[00375] На фиг. 32 показан пример одномерного вертикального массива, в котором опорные отсчеты расположены вертикально, а на фиг. 33 показан пример одномерного горизонтального массива, в котором опорные отсчеты расположены горизонтально. Варианты осуществления, представленные на фиг. 32 и 33, будут описаны в предположении, что заданы 35 режимов внутреннего предсказания.
[00376] Одномерный горизонтальный массив, в котором верхние опорные отсчеты поворачиваются против часовой стрелки, может применяться тогда, когда индекс режима внутреннего предсказания находится между 11 и 18, а одномерный вертикальный массив, в котором левые опорные отсчеты поворачиваются по часовой стрелке, может иметь место тогда, когда индекс режима внутреннего предсказания находится между 19 и 25. Когда опорные отсчеты расположены в линию, может учитываться угол режима внутреннего предсказания.
[00377] На основании параметра внутреннего направления может быть определен параметр определения опорного отсчета. Параметр определения опорного отсчета может содержать индекс опорного отсчета для указания опорного отсчета и параметр весового коэффициента для определения весового коэффициента, подлежащего применению к опорному отсчету.
[00378] Индекс опорного отсчета iIdx и параметр весового коэффициента ifact могут быть получены с помощью приведенных ниже уравнений 2 и 3.
[00379] [Уравнение 2]
[00380] [Уравнение 3]
[00381] В уравнениях 2 и 3 Pang представляет параметр внутреннего направления. Опорный отсчет, указываемый индексом опорного отсчета iIdx, соответствует целому пикселю.
[00382] Для получения отсчета предсказания может быть указан по меньшей мере один опорный отсчет.Подробно местоположение опорного отсчета для использования при получении отсчета предсказания может быть указано с учетом наклона режима предсказания. В качестве примера, опорный отсчет для использования при получении отсчета предсказания может быть указан с использованием индекса опорного отсчета iIdx.
[00383] В этом случае, когда наклон режима внутреннего предсказания нельзя выразить одним опорным отсчетом, отсчет предсказания может быть сгенерирован путем интерполяции множества опорных отсчетов. В качестве примера, когда наклон режима внутреннего предсказания представляет собой значение между наклоном между отсчетом предсказания и первым опорным отсчетом и наклоном между отсчетом предсказания и вторым опорным отсчетом, отсчет предсказания может быть получен путем интерполяции первого опорного отсчета и второго опорного отсчета. То есть угловая линия, соответствующая углу внутреннего предсказания, не проходит через опорный отсчет, расположенный в целом пикселе, отсчет предсказания может быть получен путем интерполяции опорных отсчетов, смежных с левой, правой, верхней или нижней сторонами местоположения, через которое проходит угловая линия.
[00384] Ниже в уравнении 4 показан пример получения отсчета предсказания на основании опорных отсчетов.
[00385] [Уравнение 4]
[00386] В уравнении 4 P представляет отсчет предсказания, и Ref_1D представляет один из опорных отсчетов, расположенных в одном измерении. В этом случае местоположение опорного отсчета может быть определено по индексу опорного отсчета iIdx и местоположению (х, у) отсчета предсказания.
[00387] Когда наклон режима внутреннего предсказания может быть выражен одним опорным отсчетом, параметр весового коэффициента ifact может быть установлен равным нулю. Соответственно, уравнение 4 можно упростить до приведенного ниже уравнения 5.
[00388] [Уравнение 5]
[00389] Внутреннее предсказание может быть выполнено в отношении текущего блока на основании множества режимов внутреннего предсказания. В качестве примера, режим внутреннего предсказания может быть получен для каждого отсчета предсказания, а отсчет предсказания может быть получен на основании режима внутреннего предсказания, присвоенного соответствующему отсчету предсказания.
[00390] Альтернативно режим внутреннего предсказания может быть получен для каждой области, и внутреннее предсказание может быть выполнено в отношении соответствующей области на основании режима внутреннего предсказания, присвоенного соответствующей области. В данном случае область может содержать по меньшей мере один отсчет.По меньшей мере одно из размера или формы области может быть адаптивно определено на основании по меньшей мере одного из размера, формы или режима внутреннего предсказания текущего блока. Альтернативно по меньшей мере одно из размера или формы области может быть предварительно задано в кодере и декодере независимо от размера или формы текущего блока.
[00391] Альтернативно внутреннее предсказание может выполняться многократно, и конечный отсчет предсказания может быть получен на основании операции усреднения или операции взвешенной суммы множества отсчетов предсказания, полученных путем многократного выполнения внутреннего предсказания. В качестве примера, первый отсчет предсказания может быть получен путем выполнения внутреннего предсказания на основании первого режима внутреннего предсказания, а второй отсчет предсказания может быть получен путем выполнения внутреннего предсказания на основании второго режима внутреннего предсказания. Затем конечный отсчет предсказания может быть получен на основании операции усреднения или операции взвешенной суммы первого отсчета предсказания и второго отсчета предсказания. В этом случае весовые коэффициенты, присваиваемые первому отсчету предсказания и второму отсчету предсказания, могут быть определены с учетом по меньшей мере одного из того, является ли первый режим внутреннего предсказания режимом ненаправленного предсказания или режимом направленного предсказания, того, является ли второй режим внутреннего предсказания режимом ненаправленного предсказания или режимом направленного предсказания, или режима внутреннего предсказания соседнего блока.
[00392] Множество режимов внутреннего предсказания могут представлять собой комбинацию режима ненаправленного внутреннего предсказания и режима направленного внутреннего предсказания, комбинацию режимов направленного внутреннего предсказания или комбинацию режимов ненаправленного внутреннего предсказания.
[00393] На фиг. 34 представлено схематическое изображение, иллюстрирующее углы, образованные между прямой линией, параллельной оси х, и режимами направленного внутреннего предсказания.
[00394] В примере, показанном на фиг. 34, режимы направленного предсказания могут находиться в диапазоне от диагонального направления вниз и влево до диагонального направления вверх и вправо. Там, где следующее описание предполагает угол, образованный между осью x и режимом направленного предсказания, режимы направленного предсказания могут находиться в диапазоне от 45 градусов (в диагональном направлении вниз и влево) до -135 градусов (в диагональном направлении вверх и вправо).
[00395] Когда текущий блок имеет неквадратную форму, отсчет предсказания может быть получен с использованием опорного отсчета вдали от отсчета предсказания из опорных отсчетов, расположенных на угловой линии, соответствующей углу внутреннего предсказания, вместо опорного отсчета вблизи отсчета предсказания в зависимости от режима внутреннего предсказания текущего блока.
[00396] На фиг. 35 представлено схематическое изображение, показывающее аспект, в котором отсчет предсказания получается, когда текущий блок имеет неквадратную форму.
[00397] Например, как в примере, показанном на фиг. 35A, предполагается, что текущий блок имеет неквадратную форму, в которой ширина больше высоты, и что режимом внутреннего предсказания текущего блока является режим направленного внутреннего предсказания, имеющий угол от 0 градусов до 45 градусов. В этом случае при получении отсчета А предсказания рядом с правым столбцом текущего блока может использоваться левый опорный отсчет L вдали от отсчета предсказания вместо верхнего опорного отсчета Т вблизи отсчета предсказания из опорных отсчетов, расположенных на угловой линии, соответствующей углу.
[00398] В качестве другого примера, как в примере, показанном на фиг. 35B, предполагается, что текущий блок имеет неквадратную форму, в которой высота больше ширины, и что режимом внутреннего предсказания текущего блока является режим направленного внутреннего предсказания, имеющий угол от -90 градусов до -135 градусов. В этом случае при получении отсчета А предсказания рядом с нижней строкой текущего блока может использоваться верхний опорный отсчет Т вдали от отсчета предсказания из опорных отсчетов, расположенных на угловой линии, соответствующей углу, вместо левого опорного отсчета L вблизи отсчета предсказания.
[00399] Для решения данной проблемы, когда текущий блок имеет неквадратную форму, режим внутреннего предсказания текущего блока может быть заменен режимом внутреннего предсказания в противоположном направлении. Таким образом, для блоков неквадратной формы могут быть использованы режимы направленного предсказания, имеющие угол, который больше или меньше, чем у режимов направленного предсказания, показанных на фиг. 31. Такой режим направленного внутреннего предсказания может быть задан в качестве широкоугольного режима внутреннего предсказания. Широкоугольный режим внутреннего предсказания представляет режим направленного внутреннего предсказания, не находящийся в диапазоне от 45 градусов до -135 градусов.
[00400] На фиг. 36 представлено схематическое изображение, показывающее широкоугольные режимы внутреннего предсказания.
[00401] В примере, показанном на фиг. 36, широкоугольные режимы внутреннего предсказания указаны режимами внутреннего предсказания с индексом от -1 до -14 и режимами внутреннего предсказания с индексом от 67 до 80.
[00402] На фиг. 36 проиллюстрированы 14 широкоугольных режимов внутреннего предсказания, имеющих угол, который больше 45 градусов (от -1 до -14), и 14 широкоугольных режимов внутреннего предсказания, имеющих угол, который меньше -135 градусов (от 67 до 80), однако может быть задано большее или меньшее количество широкоугольных режимов внутреннего предсказания.
[00403] Когда используется широкоугольный режим внутреннего предсказания, длина верхних опорных отсчетов может быть установлена равной 2W+1, и длина левых опорных отсчетов может быть установлена равной 2H+1.
[00404] Когда используется широкоугольный режим внутреннего предсказания, отсчет А, показанный на фиг. 35A, может быть предсказан с использованием опорного отсчета Т, а отсчет А, показанный на фиг. 35B, может быть предсказан с использованием опорного отсчета L.
[00405] Путем добавления N широкоугольных режимов внутреннего предсказания к существующим режимам внутреннего предсказания может использоваться в общем 67+N режимов внутреннего предсказания. В качестве примера, в таблице 6 показаны параметры внутреннего направления режимов внутреннего предсказания, когда заданы 20 широкоугольных режимов внутреннего предсказания.
[00406] [Таблица 6]
[00407] Параметры внутреннего направления могут быть установлены по-разному на основании по меньшей мере одного из размера, формы или линии опорных отсчетов текущего блока. В качестве примера, параметр внутреннего направления для конкретного режима внутреннего предсказания, когда текущий блок является квадратным, может отличаться от такового, когда текущий блок имеет неквадратную форму. В качестве примера, параметр внутреннего направления intraPredAngle режима внутреннего предсказания №15 может иметь большее значение, когда текущий блок является квадратным, чем в случае, когда текущий блок имеет неквадратную форму.
[00408] Альтернативно параметр внутреннего направления intraPredAngle режима внутреннего предсказания №75 может иметь большее значение, когда индекс линии опорных отсчетов текущего блока равен 1 или более, чем в случае, когда индекс линии опорных отсчетов текущего блока равен 0.
[00409] Когда текущий блок имеет неквадратную форму, и режим внутреннего предсказания текущего блока, полученный на этапе S2902, находится в пределах диапазона преобразования, режим внутреннего предсказания текущего блока может быть преобразован в широкоугольный режим внутреннего предсказания. Диапазон преобразования может быть определен на основании по меньшей мере одного из размера, формы или соотношения текущего блока. В данном случае соотношение может указывать соотношение между шириной и высотой текущего блока.
[00410] Когда текущий блок имеет неквадратную форму, в которой ширина больше высоты, диапазон преобразования может быть установлен в диапазоне от индекса режима внутреннего предсказания в диагональном направлении вверх и вправо (например, 66) до индекса режима внутреннего предсказания в диагональном направлении вверх и вправо минус N. В данном случае N может быть определено на основании соотношения текущего блока. Когда режим внутреннего предсказания текущего блока находится в пределах диапазона преобразования, режим внутреннего предсказания может быть преобразован в широкоугольный режим внутреннего предсказания. Преобразование может представлять собой вычитание предварительно заданного значения из режима внутреннего предсказания, и предварительно заданное значение может представлять собой общее количество (например, 67) режимов внутреннего предсказания за исключением широкоугольных режимов внутреннего предсказания.
[00411] Согласно вышеописанному варианту осуществления режимы внутреннего предсказания от №66 до №53 могут быть преобразованы в широкоугольные режимы внутреннего предсказания от №-1 до №-14 соответственно.
[00412] Когда текущий блок имеет неквадратную форму, в которой высота больше ширины, диапазон преобразования может быть установлен в диапазоне от индекса режима внутреннего предсказания в диагональном направлении вниз и влево (например, 2) до индекса режима внутреннего предсказания в диагональном направлении вниз и влево плюс M. В данном случае М может быть определено на основании соотношения текущего блока. Когда режим внутреннего предсказания текущего блока находится в пределах диапазона преобразования, режим внутреннего предсказания может быть преобразован в широкоугольный режим внутреннего предсказания. Преобразование может представлять собой добавление предварительно заданного значения к режиму внутреннего предсказания, а предварительно заданное значение может представлять собой общее количество (например, 65) режимов направленного внутреннего предсказания за исключением широкоугольных режимов внутреннего предсказания.
[00413] Согласно вышеописанному варианту осуществления режимы внутреннего предсказания от №2 до №15 могут быть преобразованы в широкоугольные режимы внутреннего предсказания от №67 до №80 соответственно.
[00414] Режимы внутреннего предсказания, находящиеся в пределах диапазона преобразования, будут называться альтернативными широкоугольными режимами внутреннего предсказания.
[00415] Диапазон преобразования может быть определен на основании соотношения текущего блока. В качестве примера, в таблице 7 и таблице 8 представлен диапазон преобразования, когда заданы 35 режимов внутреннего предсказания за исключением широкоугольных режимов внутреннего предсказания, и диапазон предсказания, когда заданы 67 режимов внутреннего предсказания.
[00416] [Таблица 7]
[00417] [Таблица 8]
[00418] В примерах, показанных в таблице 7 и таблице 8, количество альтернативных широкоугольных режимов внутреннего предсказания, находящихся в пределах диапазона преобразования, может отличаться в зависимости от соотношения текущего блока.
[00419] Так как широкоугольные режимы внутреннего предсказания используются в дополнение к существующим режимам внутреннего предсказания, ресурсы, необходимые для кодирования широкоугольных режимов внутреннего предсказания, могут увеличиваться, и, таким образом, может снижаться эффективность кодирования. Соответственно, эффективность кодирования можно повысить путем кодирования альтернативных режимов внутреннего предсказания для широкоугольных режимов внутреннего предсказания вместо кодирования широкоугольных режимов внутреннего предсказания как есть.
[00420] В качестве примера, когда текущий блок кодируется в широкоугольном режиме внутреннего предсказания №67, в режим внутреннего предсказания текущего блока может кодироваться широкоугольный режим внутреннего предсказания №2, который представляет собой альтернативный широкоугольный режим внутреннего предсказания для №67. Кроме того, когда текущий блок кодируется в широкоугольном режиме внутреннего предсказания №-1, в режим внутреннего предсказания текущего блока может кодироваться широкоугольный режим внутреннего предсказания №66, который представляет собой альтернативный широкоугольный режим внутреннего предсказания для №-1.
[00421] Декодер может декодировать режим внутреннего предсказания текущего блока и может определять, находится ли декодированный режим внутреннего предсказания в пределах диапазона преобразования. Когда декодированный режим внутреннего предсказания представляет собой альтернативный широкоугольный режим внутреннего предсказания, режим внутреннего предсказания может быть преобразован в широкоугольный режим внутреннего предсказания.
[00422] Альтернативно, когда текущий блок кодируется в широкоугольном режиме внутреннего предсказания, широкоугольный режим внутреннего предсказания может кодироваться как есть.
[00423] Кодирование режима внутреннего предсказания может выполняться на основании вышеописанного списка МРМ. Подробно, когда соседний блок кодирован в широкоугольном режиме внутреннего предсказания, MPM может быть установлен на основании альтернативного широкоугольного режима внутреннего предсказания, соответствующего широкоугольному режиму внутреннего предсказания. В качестве примера, когда соседний блок кодирован в широкоугольном режиме внутреннего предсказания, в качестве альтернативного широкоугольного режима внутреннего предсказания может быть установлена переменная candIntraPredX (X представляет собой A или B).
[00424] Когда блок предсказания генерируется в результате выполнения внутреннего предсказания, отсчеты предсказания могут быть обновлены на основании местоположений отсчетов предсказания, включенных в блок предсказания. Способ обновления может называться способом внутреннего взвешенного предсказания на основе положения отсчетов (или комбинацией предсказаний в зависимости от положения (PDPC)).
[00425] То, использовать ли PDPC, может быть определено с учетом режима внутреннего предсказания текущего блока, линии опорных отсчетов текущего блока, размера текущего блока или цветовой компоненты. В качестве примера, PDPC может использоваться, когда режимом внутреннего предсказания текущего блока является по меньшей мере один из режима, имеющего меньшее индексное значение, чем планарный режим, режим DC, вертикальный режим и горизонтальный режим, или режима, имеющего большее индексное значение, чем горизонтальный режим. Альтернативно PDPC может использоваться только тогда, когда по меньшей мере одна из ширины и высоты текущего блока больше 4. Альтернативно PDPC может использоваться только тогда, когда индекс линии опорного изображения текущего блока равен 0. Альтернативно PDPC может использоваться только тогда, когда индекс линии опорного изображения текущего блока больше или равен предварительно заданному значению. Альтернативно PDPC может использоваться только для компоненты яркости. Альтернативно то, использовать ли PDPC, может быть определено в соответствии с тем, удовлетворяются ли два или более вышеописанных условий.
[00426] В качестве другого примера, информация, указывающая, применять ли PDPC, может быть передана в битовом потоке.
[00427] Когда отсчет предсказания получен с помощью отсчета внутреннего предсказания, опорный отсчет, используемый для коррекции отсчета предсказания, может быть определен на основании местоположения полученного отсчета предсказания. Для удобства описания в следующих вариантах осуществления опорный отсчет, используемый для коррекции отсчета предсказания, будет называться опорным отсчетом PDPC. В дополнение, отсчет предсказания, полученный с помощью внутреннего предсказания, будет называться первым отсчетом предсказания, а отсчет предсказания, полученный путем коррекции первого отсчета предсказания, будет называться вторым отсчетом предсказания.
[00428] На фиг. 37 представлено схематическое изображение, показывающее аспект применения PDPC.
[00429] Первый отсчет предсказания может корректироваться с использованием по меньшей мере одного опорного отсчета PDPC. Опорный отсчет PDPC может включать по меньшей мере одно из опорного отсчета, смежного с верхним левым углом текущего блока, верхнего опорного отсчета, расположенного сверху от текущего блока, и левого опорного отсчета, расположенного слева от текущего блока.
[00430] Как опорный отсчет PDPC может быть установлен по меньшей мере один из опорных отсчетов, принадлежащих линии опорных отсчетов текущего блока. Альтернативно, независимо от линии опорных отсчетов текущего блока, в качестве опорного отсчета PDPC может быть установлен по меньшей мере один опорный отсчет, принадлежащий линии опорных отсчетов с индексом 0. В качестве примера, хотя первый отсчет предсказания получается с использованием опорных отсчетов, включенных в линию опорных отсчетов с индексом 1 или индексом 2, второй отсчет предсказания может быть получен с использованием опорных отсчетов, включенных в линию опорных отсчетов с индексом 0.
[00431] Количество или местоположения опорных отсчетов PDPC, используемых для коррекции первого отсчета предсказания, могут быть определены с учетом по меньшей мере одного из режимов внутреннего предсказания текущего блока, размера текущего блока, формы текущего блока или местоположения первого отсчета предсказания.
[00432] В качестве примера, когда режимом внутреннего предсказания текущего блока является планарный режим или режим DC, второй отсчет предсказания может быть получен с использованием верхнего опорного отсчета и левого опорного отсчета. В этом случае верхний опорный отсчет может представлять собой опорный отсчет, перпендикулярный первому отсчету предсказания (например, опорный отсчет, имеющий такую же координату х), и левый опорный отсчет может представлять собой опорный отсчет, параллельный первому отсчету предсказания (например, опорный отсчет, имеющий такую же координату y).
[00433] Когда режимом внутреннего предсказания текущего блока является горизонтальный режим внутреннего предсказания, второй отсчет предсказания может быть получен с использованием верхнего опорного отсчета. В этом случае верхний опорный отсчет может представлять собой опорный отсчет, перпендикулярный первому отсчету предсказания.
[00434] Когда режимом внутреннего предсказания текущего блока является вертикальный режим внутреннего предсказания, второй отсчет предсказания может быть получен с использованием левого опорного отсчета. В этом случае левый опорный отсчет может представлять собой опорный отсчет, параллельный первому отсчету предсказания.
[00435] Когда режимом внутреннего предсказания текущего блока является диагональный режим внутреннего предсказания в направлении вниз и влево или диагональный режим внутреннего предсказания в направлении вверх и вправо, второй отсчет предсказания может быть получен на основании верхнего левого опорного отсчета, верхнего опорного отсчета и левого опорного отсчета. Верхний левый опорных отсчет может представлять собой опорный отсчет, смежный с верхним левым углом текущего блока (например, опорный отсчет, расположенный при (-1, -1)). Верхний опорный отсчет может представлять собой опорный отсчет, расположенный диагонально над и справа от первого отсчета предсказания, и левый опорный отсчет может представлять собой опорный отсчет, расположенный диагонально под и слева от первого отсчета предсказания.
[00436] Подводя итог, когда местоположением первого отсчета предсказания является (x, y), в качестве верхнего левого опорного отсчета может быть установлен R(-1, -1), и в качестве верхнего опорного отсчета может быть установлен R(x+y+1, -1) или R(x, -1). Кроме того, в качестве левого опорного отсчета может быть установлен R(-1, x+y+1) или R(-1, y).
[00437] В качестве другого примера, местоположение левого опорного отсчета или верхнего опорного отсчета может быть определено с учетом по меньшей мере одного из формы текущего блока или того, применялся ли широкоугольный внутренний режим.
[00438] Подробно, когда режимом внутреннего предсказания текущего блока является широкоугольный режим внутреннего предсказания, в качестве опорного отсчета PDPC может быть установлен опорный отсчет, расположенный на расстоянии смещения от опорного отсчета, расположенного диагонально относительно первого отсчета предсказания. В качестве примера, верхний опорный отсчет R(x+y+k+1, -1) и левый опорный отсчет R(-1, x+y-k+1) могут быть установлены в качестве опорных отсчетов PDPC.
[00439] В этом случае смещение k может быть определено на основании широкоугольного режима внутреннего предсказания. В уравнении 6 и уравнении 7 представлен пример получения смещения на основании широкоугольного режима внутреннего предсказания.
[00440] [Уравнение 6]
[00441] [Уравнение 7]
[00442] Второй отсчет предсказания может быть определен на основании операции взвешенной суммы первого отсчета предсказания и опорных отсчетов PDPC. В качестве примера, второй отсчет предсказания может быть получен на основании приведенного ниже уравнения 8.
[00443] [Уравнение 8]
[00444] В уравнении 8 RL представляет левый опорный отсчет, RT представляет верхний опорный отсчет, и RTL представляет верхний левый опорный отсчет.pred(x,y) представляет отсчет предсказания, расположенный при (x,y). wL представляет весовой коэффициент, присвоенный левому опорному отсчету, wT представляет весовой коэффициент, присвоенный верхнему опорному отсчету, и wTL представляет весовой коэффициент, присвоенный верхнему левому опорному отсчету. Весовой коэффициент, присваиваемый первому отсчету предсказания, может быть получен путем вычитания весовых коэффициентов, присвоенных опорным отсчетам, из максимального значения. Для удобства описания весовой коэффициент, присваиваемый опорному отсчету PDPC, будет называться весовым коэффициентом PDPC.
[00445] Весовой коэффициент, присваиваемый каждому опорному отсчету, может быть определен на основании по меньшей мере одного из режима внутреннего предсказания текущего блока или местоположения первого отсчета предсказания.
[00446] В качестве примера, по меньшей мере один из wL, wT или wTL может являться прямо или обратно пропорциональным по меньшей мере одной из координаты x или координаты y отсчета предсказания. Альтернативно по меньшей мере один из wL, wT или wTL может являться прямо или обратно пропорциональным по меньшей мере одной из ширины или высоты текущего блока.
[00447] Когда режимом внутреннего предсказания текущего блока является режим DC, весовые коэффициенты PDPC можно определить по приведенному ниже уравнению 9.
[00448] [Уравнение 9]
[00449] В уравнении 9 x и y представляют местоположение первого отсчета предсказания.
[00450] В уравнении 9 переменная shift, используемая для операции битового сдвига, может быть получен на основании ширины или высоты текущего блока. В качестве примера, переменная shift может быть получена на основании приведенного ниже уравнения 10 или 11.
[00451] [Уравнение 10]
[00452] [Уравнение 11]
[00453] Альтернативно переменная shift может быть получена с учетом параметра внутреннего направления текущего блока.
[00454] Количество или типы параметров, используемых для получения переменной shift, могут определяться по-разному в зависимости от режима внутреннего предсказания текущего блока. В качестве примера, когда режимом внутреннего предсказания текущего блока является планарный режим, режим DC, вертикальный режим или горизонтальный режим, переменная shift может быть получена с использованием ширины (width) и высоты (height) текущего блока, как в примере, показанном в уравнении 10 или уравнении 11. Когда режимом внутреннего предсказания текущего блока является режим внутреннего предсказания, имеющий индекс, который больше, чем у вертикального режима внутреннего предсказания, переменная shift может быть получена с использованием параметра внутреннего направления и высоты текущего блока. Когда режимом внутреннего предсказания текущего блока является режим внутреннего предсказания, имеющий индекс, который меньше, чем у горизонтального режима внутреннего предсказания, переменная shift может быть получена с использованием параметра внутреннего направления и ширины текущего блока.
[00455] Когда режимом внутреннего предсказания текущего блока является планарный режим, значение wTL может быть установлено равным 0. wL и wT могут быть получены на основании приведенного ниже уравнения 12.
[00456] [Уравнение 12]
[00457] Когда режимом внутреннего предсказания текущего блока является горизонтальный режим внутреннего предсказания, wT может быть установлен равным 0, и wTL и wL могут быть установлены идентично. С другой стороны, когда режимом внутреннего предсказания текущего блока является вертикальный режим внутреннего предсказания, wL может быть установлен равным 0, и wTL и wL могут быть установлены идентично.
[00458] Когда режимом внутреннего предсказания текущего блока является режим внутреннего предсказания в направлении вверх и вправо, имеющий индексное значение, которое больше, чем у вертикального режима внутреннего предсказания, весовые коэффициенты PDPC могут быть получены с использованием приведенного ниже уравнения 13.
[00459] [Уравнение 13]
[00460] С другой стороны, когда режимом внутреннего предсказания текущего блока является режим внутреннего предсказания в направлении вниз и влево, имеющий индексное значение, которое меньше, чем у горизонтального режима внутреннего предсказания, весовые коэффициенты PDPC могут быть получены с использованием приведенного ниже уравнения 14.
[00461] [Уравнение 14]
[00462] Как и в вышеописанных вариантах осуществления, весовые коэффициенты PDPC могут быть определены на основании положений x и y отсчета предсказания.
[00463] В качестве другого примера, весовой коэффициент, присваиваемый каждому опорному отсчету PDPC, может быть определен в элементах подблоков. В отсчетах предсказания, включенных в подблок, могут совместно использоваться одинаковые весовые коэффициенты PDPC.
[00464] Размер подблока, который является базовым элементом для определения весовых коэффициентов, может быть предварительно задан в кодере и декодере. В качестве примера, весовые коэффициенты могут быть определены для подблоков 2×2 или 4×4.
[00465] Альтернативно размер, форма или количество подблоков могут быть определены в зависимости от размера или формы текущего блока. В качестве примера, блок кодирования может быть разбит на четыре подблока независимо от размера блока кодирования. Альтернативно в зависимости от размера блока кодирования блок кодирования может быть разбит на четыре или шестнадцать подблоков.
[00466] Альтернативно размер, форма или количество подблоков могут быть определены в зависимости от режима внутреннего предсказания текущего блока. В качестве примера, когда режимом внутреннего предсказания текущего блока является горизонтальный режим, в качестве одного подблока могут быть установлены N столбцов (или N строк), а когда режимом внутреннего предсказания текущего блока является вертикальный режим, в качестве одного подблока могут быть установлены N строк (или N столбцов).
[00467] В уравнениях 15-17 представлен пример определения весовых коэффициентов PDPC для подблока 2×2. В уравнении 15 проиллюстрировано, что режимом внутреннего предсказания текущего блока является режим DC.
[00468] [Уравнение 15]
[00469] В уравнении 15 К может представлять собой значение, определяемое на основании режима внутреннего предсказания или размера подблока.
[00470] В уравнении 16 проиллюстрировано, что режимом внутреннего предсказания текущего блока является режим внутреннего предсказания в направлении вверх и вправо, имеющий индексное значение, которое больше, чем у вертикального режима внутреннего предсказания.
[00471] [Уравнение 16]
[00472] В уравнении 17 проиллюстрировано, что режимом внутреннего предсказания текущего блока является режим внутреннего предсказания в направлении вниз и влево, имеющий индексное значение, которое меньше, чем у горизонтального режима внутреннего предсказания.
[00473] [Уравнение 17]
[00474] В уравнениях 15-17 x и y представляют местоположение опорного отсчета в подблоке. Опорный отсчет может представлять собой один из отсчета, расположенного в верхнем левом углу подблока, отсчета, расположенного в центре подблока, или отсчета, расположенного в нижнем правом углу подблока.
[00475] В уравнениях 18-20 представлен пример определения весовых коэффициентов PDPC для подблока 4×4. В уравнении 18 проиллюстрировано, что режимом внутреннего предсказания текущего блока является режим DC.
[00476] [Уравнение 18]
[00477] В уравнении 19 проиллюстрировано, что режимом внутреннего предсказания текущего блока является режим внутреннего предсказания в направлении вверх и вправо, имеющий индексное значение, которое больше, чем у вертикального режима внутреннего предсказания.
[00478] [Уравнение 19]
[00479] В уравнении 20 проиллюстрировано, что режимом внутреннего предсказания текущего блока является режим внутреннего предсказания в направлении вниз и влево, имеющий индексное значение, которое меньше, чем у горизонтального режима внутреннего предсказания.
[00480] [Уравнение 20]
[00481] В приведенных выше вариантах осуществления весовые коэффициенты PDPC описаны как определяемые с учетом местоположений отсчетов предсказания, включенных в подблок, или первого отсчета предсказания. Весовые коэффициенты PDPC могут определяться дополнительно с учетом текущего блока.
[00482] В качестве примера, в случае режима DC способ получения весовых коэффициентов PDPC может меняться в зависимости от того, имеет текущий блок неквадратную форму, в которой ширина больше высоты, или неквадратную форму, в которой высота больше ширины.
[00483] В уравнении 21 показан пример получения весовых коэффициентов PDPC, когда текущий блок имеет неквадратную форму, в которой ширина больше высоты, и в уравнении 22 показан пример получения весовых коэффициентов PDPC, когда текущий блок имеет неквадратную форму, в которой высота больше ширины.
[00484] [Уравнение 21]
[00485] [Уравнение 22]
[00486] Когда текущий блок имеет неквадратную форму, текущий блок может быть предсказан с использованием широкоугольного режима внутреннего предсказания. Даже при применении широкоугольного внутреннего предсказания первый отсчет предсказания может обновляться путем применения PDPC.
[00487] Когда к текущему блоку применяется широкоугольное внутреннее предсказание, весовые коэффициенты PDPC могут определяться с учетом формы блока кодирования.
[00488] В качестве примера, когда текущий блок имеет неквадратную форму, в которой ширина больше высоты, верхний опорный отсчет, расположенный справа и над первым отсчетом предсказания, может находиться ближе к первому отсчету предсказания, чем левый опорный отсчет, расположенный слева и под первым отсчетом предсказания, в зависимости от местоположения первого отсчета предсказания. Соответственно, когда коррекции подвергается первый отсчет предсказания, весовой коэффициент, применяемый к верхнему опорному отсчету, может быть установлен так, что он имеет большее значение, чем весовой коэффициент, применяемый к левому опорному отсчету.
[00489] С другой стороны, когда текущий блок имеет неквадратную форму, в которой высота больше ширины, левый опорный отсчет, расположенный слева и под первым отсчетом предсказания, может находиться ближе к первому отсчету предсказания, чем верхний опорный отсчет, расположенный справа и над первым отсчетом предсказания, в зависимости от местоположения первого отсчета предсказания. Соответственно, когда коррекции подвергается первый отсчет предсказания, весовой коэффициент, применяемый к левому опорному отсчету, может быть установлен так, что он имеет большее значение, чем весовой коэффициент, применяемый к верхнему опорному отсчету.
[00490] В уравнении 23 представлен пример получения весовых коэффициентов PDPC, когда режимом внутреннего предсказания текущего блока является широкоугольный режим внутреннего предсказания с индексом, который больше 66.
[00491] [Уравнение 23]
[00492] В уравнении 24 представлен пример получения весовых коэффициентов PDPC, когда режимом внутреннего предсказания текущего блока является широкоугольный режим внутреннего предсказания с индексом, который меньше 0.
[00493] [Уравнение 24]
[00494] Весовые коэффициенты PDPC могут определяться на основании соотношения текущего блока. Соотношение текущего блока указывает соотношение ширины и высоты текущего блока, и оно может быть задано с использованием приведенного ниже уравнения 25.
[00495] [Уравнение 25]
[00496] Способ получения весовых коэффициентов PDPC может определяться переменным образом в зависимости от режима внутреннего предсказания текущего блока.
[00497] В качестве примера, в уравнении 26 и уравнении 27 представлен пример получения весовых коэффициентов PDPC, когда режимом внутреннего предсказания текущего блока является режим DC. Подробно уравнение 26 представляет собой пример, в котором текущий блок имеет неквадратную форму, в которой ширина больше высоты, и уравнение 27 представляет собой пример, в котором текущий блок имеет неквадратную форму, в которой высота больше ширины.
[00498] [Уравнение 26]
[00499] [Уравнение 27]
[00500] В уравнении 28 представлен пример получения весовых коэффициентов PDPC, когда режимом внутреннего предсказания текущего блока является широкоугольный режим внутреннего предсказания с индексом, который больше 66.
[00501] [Уравнение 28]
[00502] В уравнении 29 представлен пример получения весовых коэффициентов PDPC, когда режимом внутреннего предсказания текущего блока является широкоугольный режим внутреннего предсказания с индексом, который меньше 0.
[00503] [Уравнение 29]
[00504] Остаточный блок может быть получен путем вычитания предсказания из исходного блока. В этом случае, когда остаточный блок изменяется на частотную область, субъективное качество видео значительно не снижается, даже если из частотных компонентов удалены высокочастотные компоненты. Соответственно, когда значения высокочастотных компонентов изменяются на небольшие значения, или когда значения высокочастотных компонентов установлены равными 0, можно повысить эффективность сжатия, не вызывая значительное зрительное искажение. С учетом вышеописанных характеристик, текущий блок может быть преобразован с целью разложения остаточного блока на двумерные частотные компоненты. Преобразование может выполняться с использованием такого метода преобразования, как дискретное косинусное преобразование (DCT) или дискретное синусное преобразование (DST).
[00505] В DCT для разложения (или преобразования) остаточного блока на (в) двумерные частотные компоненты используется косинусное преобразование, и в DST для разложения (или преобразования) остаточного блока на (в) двумерные частотные компоненты используется синусное преобразование. В результате преобразования остаточного блока частотные компоненты могут быть выражены с помощью базовой схемы. В качестве примера, когда DCT выполняется в отношении блока N×N, может быть получено N2 компонентов базовой схемы. Размер каждого из компонентов базовой схемы, включенных в блок N×N, может быть получен с помощью преобразования. В соответствии с используемым методом преобразования, размер компонента базовой схемы может называться коэффициентом DCT или коэффициентом DST.
[00506] Метод преобразования DCT используется главным образом для преобразования блока, в котором распределены множество ненулевых низкочастотных компонентов. Метод преобразования DST используется главным образом для блока, в котором распределены множество высокочастотных компонентов.
[00507] Остаточный блок может преобразовываться с использованием метода преобразования, отличного от DCT или DST.
[00508] Преобразование остаточного блока в двумерные частотные компоненты будет называться двумерным преобразованием. В дополнение, размер компонентов базовой схемы, полученных с помощью результата преобразования, будет называться коэффициентом преобразования. В качестве примера, коэффициент преобразования может называться коэффициентом DCT или коэффициентом DST. Когда применяются оба из первого преобразования и второго преобразования, которые будут описаны ниже, коэффициент преобразования может относиться к размеру компонента базовой схемы, сгенерированного в результате второго преобразования.
[00509] Метод преобразования может быть определен в элементах блоков. Метод преобразования может быть определен на основании по меньшей мере одного из режима предсказания текущего блока или размера текущего блока. В качестве примера, когда текущий блок кодируется в режиме внутреннего предсказания, и размер текущего блока меньше N×N, преобразование может выполняться с использованием метода преобразования DST. С другой стороны, когда вышеприведенное условие не удовлетворяется, преобразование может выполняться с использованием метода преобразования DCT.
[00510] Двумерное преобразование может не выполняться в отношении некоторых из остаточных блоков. Невыполнение двумерного преобразования может называться пропуском преобразования. При применении пропуска преобразования квантование может применяться к остаточным значениям, в отношении которых преобразование не выполняется.
[00511] После преобразования текущего блока с использованием DCT или DST преобразованный текущий блок может подвергаться повторному преобразованию. В этом случае преобразование на основании DCT или DST может быть задано в качестве первого преобразования, а повторное преобразование блока, подвергнутого первому преобразованию, может быть задано в качестве второго преобразования.
[00512] Первое преобразование может выполняться с использованием одной из множества основ-кандидатов преобразования. В качестве примера, первое преобразование может выполняться с использованием одной из DCT2, DCT8 и DCT7.
[00513] В горизонтальном направлении и вертикальном направлении могут использоваться разные основы преобразования. Информация, указывающая комбинацию основы вертикального преобразования и основы горизонтального преобразования, может передаваться в битовом потоке.
[00514] Первое преобразование и второе преобразование могут выполняться в разных элементах. В качестве примера, первое преобразование может выполняться в отношении блока 8×8, и второе преобразование может выполняться в отношении подблока 4×4 преобразованного блока 8×8. В этом случае коэффициент преобразования остаточных областей, в которых второе преобразование не выполняется, может быть установлен равным 0.
[00515] Альтернативно первое преобразование может выполняться в отношении блока 4×4, а второе преобразование может выполняться в отношении области блока 8×8, содержащей преобразованный блок 4×4.
[00516] Информация, указывающая, выполнять ли второе преобразование, может быть передана в битовом потоке.
[00517] Альтернативно то, выполнять ли второе преобразование, может быть определено на основании того, являются ли идентичными основа горизонтального преобразования и основа вертикального преобразования. В качестве примера, второе преобразование может выполняться только тогда, когда основа горизонтального преобразования и основа вертикального преобразования являются идентичными. Альтернативно второе преобразование может выполняться только тогда, когда основа горизонтального преобразования и основа вертикального преобразования отличаются.
[00518] Альтернативно второе преобразование может являться допустимым только тогда, когда в горизонтальном преобразовании и вертикальном преобразовании используется предварительно заданная основа преобразования. В качестве примера, второе преобразование может являться допустимым, когда для горизонтального преобразования и вертикального преобразования используется основа преобразования DCT2.
[00519] Альтернативно то, выполнять ли второе преобразование, может быть определено на основании количества ненулевых коэффициентов преобразования текущего блока. В качестве примера, может быть установлено не использовать второе преобразование, когда ненулевой коэффициент преобразования текущего блока меньше или равен пороговому значению, и может быть установлено использовать второе преобразование, когда ненулевой коэффициент преобразования текущего блока больше порогового значения. Может быть установлено использовать второе преобразование только тогда, когда текущий блок кодируется с помощью внутреннего предсказания.
[00520] Размер или форма подблока, который должен быть подвергнут второму преобразованию, могут быть определены на основании формы текущего блока.
[00521] На фиг. 38 и 39 представлены схематические изображения, показывающие подблок, который должен быть подвергнут второму преобразованию.
[00522] Когда текущий блок является квадратным, второе преобразование может выполняться в отношении подблока N×N, расположенного в верхнем левом углу текущего блока, после выполнения первого преобразования. В качестве примера, когда текущим блоком является блок кодирования 8×8, второе преобразования может выполняться в отношении подблока 4×4, расположенного в верхнем левому углу текущего блока, после выполнения первого преобразования в отношении текущего блока (см. фиг. 38).
[00523] Когда текущий блок имеет неквадратную форму, в которой ширина в четыре или более раз больше высоты, второе преобразование может выполняться в отношении подблока kN×4kN, расположенного в верхнем левом углу текущего блока, после выполнения первого преобразования. В качестве примера, когда текущий блок имеет неквадратную форму с размером 16×4, первое преобразование может выполняться в отношении текущего блока, а затем второе преобразование может выполняться в отношении подблока 2×8, расположенного в верхнем левом углу текущего блока (см. фиг. 39A).
[00524] Когда текущий блок имеет неквадратную форму, в которой высота в четыре или более раз больше ширины, второе преобразование может выполняться в отношении подблока 4kN×kN, расположенного в верхнем левому углу текущего блока, после выполнения первого преобразования. В качестве примера, когда текущий блок имеет неквадратную форму с размером 16×4, первое преобразование может выполняться в отношении текущего блока, а затем второе преобразование может выполняться в отношении подблока 2×8, расположенного в верхнем левом углу текущего блока (см. фиг. 39B).
[00525] Декодер может выполнять обратное преобразование второго преобразования (второе обратное преобразование) и может выполнять обратное преобразование первого преобразования (первое обратное преобразование) в отношении результата второго обратного преобразования. В результате выполнения второго обратного преобразования и первого обратного преобразования могут быть получены остаточные сигналы для текущего блока.
[00526] Квантование выполняется с целью снижения энергии блока, и процесс квантования включает деление коэффициента преобразования на конкретное постоянное значение. Это постоянное значение может быть получено посредством параметра квантования, а параметр квантования может быть задан как значение от 1 до 63.
[00527] Когда кодер выполняет преобразование и квантование, декодер может получать остаточный блок путем обратного квантования и обратного преобразования. Декодер может получать восстановленный блок для текущего блока путем сложения блока предсказания и остаточного блока.
[00528] Информация, указывающая тип предсказания текущего блока, может передаваться в битовом потоке. Информация может представлять собой информацию об индексах tu_mts_idx, указывающую одну из множества комбинаций горизонтального типа преобразования и вертикального типа преобразования.
[00529] Основа вертикального преобразования и основа горизонтального преобразования могут определяться на основании типов-кандидатов преобразования, указываемых информацией об индексах tu_mts_idx. В таблице 9 и таблице 10 представлены комбинации типов преобразования, соответствующие tu_mts_idx.
[00530] [Таблица 9]
[00531] [Таблица 10]
[00532] Может быть определено, что типом преобразования является одно из DCT2, DST7, DCT8 или пропуска преобразования. Альтернативно комбинации-кандидаты типов преобразования могут быть составлены с использованием только основ преобразования за исключением пропуска преобразования.
[00533] При использовании таблицы 9, когда tu_mts_idx равна 0, в горизонтальном направлении и вертикальном направлении может применяться пропуск преобразования. Когда tu_mts_idx равна 1, в горизонтальном направлении и вертикальном направлении может применяться DCT2. Когда tu_mts_idx равна 3, в горизонтальном направлении может применяться DCT8, и в вертикальном направлении может применяться DCT7.
[00534] При использовании таблицы 10, когда tu_mts_idx равна 0, в горизонтальном направлении и вертикальном направлении может применяться DCT2. Когда tu_mts_idx равна 1, в горизонтальном направлении и вертикальном направлении может применяться пропуск преобразования. Когда tu_mts_idx равна 3, в горизонтальном направлении может применяться DCT8, и в вертикальном направлении может применяться DCT7.
[00535] То, кодировать ли информацию об индексах, может быть определено на основании по меньшей мере одного из размера или формы текущего блока или количества ненулевых коэффициентов. В качестве примера, когда количество ненулевых коэффициентов меньше или равно пороговому значению, информация об индексах может не передаваться, и к текущему блоку может применяться тип преобразования по умолчанию. В данном случае типом преобразования по умолчанию может являться DST7. Альтернативно режим по умолчанию может меняться в зависимости от размера, формы или режима внутреннего предсказания текущего блока.
[00536] Пороговое значение может определяться на основании размера или формы текущего блока. В качестве примера, пороговое значение может быть установлено равным 2, когда размер текущего блока меньше или равен 32×32, и пороговое значение может быть установлено равным 4, когда размер текущего блока больше 32×32 (например, когда текущим блоком является блок кодирования 32×64 или 64×32).
[00537] В кодере или декодере могут быть предварительно сохранены множество таблиц поиска. По меньшей мере одно из индексных значений, присваиваемых комбинациям-кандидатам типов преобразования, типам комбинаций-кандидатов типов преобразования или количеству комбинаций-кандидатов типов преобразования может отличаться для каждой из множества таблиц поиска.
[00538] Таблица поиска текущего блока может быть выбрана на основании по меньшей мере одного из размера, формы, режима предсказания или режима внутреннего предсказания текущего блока, того, применять ли вторичное преобразование, или того, применять ли пропуск преобразования к соседнему блоку.
[00539] В качестве примера, таблица поиска, представленная в таблице 9, может использоваться тогда, когда размер текущего блока меньше или равен 4×4, или когда текущий блок кодируется с помощью предсказания, осуществляемого между изображениями, а таблица поиска, представленная в таблице 10, может использоваться тогда, когда размер текущего блока больше 4×4, или когда текущий блок кодируется с помощью внутреннего предсказания.
[00540] Альтернативно информация, указывающая одну из множества таблиц поиска, может передаваться в битовом потоке. На основании информации декодер может выбирать таблицу поиска для текущего блока.
[00541] В качестве другого примера, индекс, присваиваемый комбинации-кандидату типов преобразования, может определяться адаптивно на основании по меньшей мере одного из размера, формы, режима предсказания или режима внутреннего предсказания текущего блока, того, применять ли вторичное преобразование, или того, применять ли пропуск преобразования к соседнему блоку. В качестве примера, индекс, присваиваемый пропуску преобразования, когда размер текущего блока равен 4×4, может иметь меньшее значение, чем индекс, присваиваемый пропуску преобразования, когда размер текущего блока больше 4×4. Подробно индекс 0 может быть присвоен пропуску преобразования, когда размер текущего блока равен 4×4, и индекс, который больше 0 (например, индекс 1), может быть присвоен пропуску преобразования, когда размер текущего блока больше 4×4 и меньше или равен 16×16. Когда размер текущего блока больше 16×16, индексу пропуска преобразования может быть присвоено максимальное значение (например, 5).
[00542] Альтернативно, когда текущий блок кодируется с помощью предсказания, осуществляемого между изображениями, к пропуску преобразования может быть применен индекс 0. Когда текущий блок кодируется с помощью внутреннего предсказания, пропуску преобразования может быть присвоен индекс, который больше 0 (например, индекс 1).
[00543] Альтернативно, когда текущий блок представляет собой блок 4×4, кодируемый с помощью предсказания, осуществляемого между изображениями, пропуску преобразования может быть присвоен индекс 0. С другой стороны, когда текущий блок не кодируется с помощью предсказания, осуществляемого между изображениями, или когда текущий блок имеет размер больше 4×4, пропуску преобразования может быть присвоен индекс, который больше 0 (например, индекс 1).
[00544] Могут быть заданы и использованы комбинации-кандидаты типов преобразования, отличные от комбинаций-кандидатов типов преобразования, перечисленных в таблице 9 и таблице 10. В качестве примера, пропуск преобразования может применяться к одному из горизонтального преобразования или вертикального преобразования, а для другого из них может использоваться комбинация-кандидат типов преобразования, к которой применяется такая основа преобразования, как DCT7, DCT8 или DST2. В этом случае то, использовать ли пропуск преобразования для горизонтального типа-кандидата преобразования или вертикального типа-кандидата преобразования, может быть определено на основании по меньшей мере одного из размера (например, ширины и/или высоты), формы, режима предсказания или режима внутреннего предсказания текущего блока.
[00545] Альтернативно информация, указывающая, является ли доступным конкретный тип-кандидат преобразования, может передаваться в битовом потоке. В качестве примера, может передаваться флаг, указывающий, использовать ли пропуск преобразования для горизонтального направления и вертикального направления в качестве типа-кандидата преобразования. В соответствии с флагом может быть определено, включена ли конкретная комбинация-кандидат типов преобразования из множества комбинаций-кандидатов типов преобразования.
[00546] Альтернативно то, применяется ли конкретный тип-кандидат преобразования к текущему блоку, может быть передано в битовом потоке. В качестве примера, может передаваться флаг cu_mts_flag, указывающий, применять ли DCT2 в горизонтальном направлении и вертикальном направлении. Когда значение cu_mts_flag равно 1, в качестве основы преобразования для вертикального направления и горизонтального направления может быть установлено DCT2. Когда значение cu_mts_flag равно 0, в качестве основы преобразования для вертикального направления и горизонтального направления может быть установлено DCT8 или DST7. Альтернативно, когда значение cu_mts_flag равно 0, может передаваться информация tu_mts_idx, указывающая одну из множества комбинаций-кандидатов типов преобразования.
[00547] Когда текущий блок имеет неквадратную форму, в которой ширина больше высоты, или неквадратную форму, в которой высота больше ширины, кодирование cu_mts_flag может быть пропущено, и значение cu_mts_flag может считаться нулевым.
[00548] Количество доступных комбинаций-кандидатов типов преобразования может быть установлено по-разному в зависимости от размера, формы или режима внутреннего предсказания текущего блока. В качестве примера, когда текущий блок является квадратным, может использоваться три или более комбинаций-кандидатов типов преобразования, а когда текущий блок имеет неквадратную форму, может использоваться две комбинации-кандидата типов преобразования. Альтернативно, когда текущий блок является квадратным, могут использоваться только комбинации-кандидаты типов преобразования, которые имеют горизонтальный тип преобразования и вертикальный тип преобразования, отличающиеся друг от друга, из комбинаций-кандидатов типов преобразования.
[00549] Когда для текущего блока может использоваться три или более комбинаций-кандидатов типов преобразования, может передаваться информация об индексах tu_mts_idx, указывающая одну из комбинаций-кандидатов типов преобразования. С другой стороны, когда для текущего блока может использоваться две комбинации-кандидата типов преобразования, может передаваться флаг mts_flag, указывающий одну из комбинаций-кандидатов типов преобразования. Ниже в таблице 11 представлен аспект кодирования информации для указания комбинаций-кандидатов типов преобразования в соответствии с формой текущего блока.
[00550] [Таблица 11]
[00551] Индексы комбинаций-кандидатов типов преобразования могут быть переставлены (или переупорядочены) в соответствии с формой текущего блока. В качестве примера, индексы, присваиваемые комбинациям-кандидатам типов преобразования, когда текущий блок является квадратным, могут отличаться от индексов, присваиваемых комбинациям-кандидатам типов преобразования, когда текущий блок имеет неквадратную форму. В качестве примера, когда текущий блок является квадратным, комбинация типов преобразования может быть выбрана на основании таблицы 12, а когда текущий блок имеет неквадратную форму, комбинация типов преобразования может быть выбрана на основании таблицы 13.
[00552] [Таблица 12]
[00553] [Таблица 13]
[00554] Тип преобразования может быть определен на основании количества горизонтальных ненулевых коэффициентов текущего блока или количества вертикальных ненулевых коэффициентов текущего блока. В данном случае количество горизонтальных ненулевых коэффициентов указывает количество ненулевых коэффициентов, включенных в 1×N (где N представляет собой ширину текущего блока), и количество вертикальных ненулевых коэффициентов указывает количество ненулевых коэффициентов, включенных в N×1 (где N представляет собой высоту текущего блока). Когда максимальное значение горизонтальных ненулевых коэффициентов меньше или равно пороговому значению, в горизонтальном направлении может применяться первый тип преобразования, а когда максимальное значение горизонтальных ненулевых коэффициентов больше порогового значения, в горизонтальном направлении может применяться второй тип преобразования. Когда максимальное значение вертикальных ненулевых коэффициентов меньше или равно пороговому значению, в вертикальном направлении может применяться первый тип преобразования, а когда максимальное значение вертикальных ненулевых коэффициентов больше порогового значения, в вертикальном направлении может применяться второй тип преобразования.
[00555] На фиг. 40 представлено схематическое изображение для описания примера, в котором определяется тип преобразования текущего блока.
[00556] В качестве примера, когда текущий блок кодируется с помощью внутреннего предсказания, и максимальное значение горизонтальных ненулевых коэффициентов текущего блока меньше или равно 2 (см. фиг. 40A), в качестве горизонтального типа преобразования может быть определено DST7.
[00557] Когда текущий блок кодируется с помощью внутреннего предсказания, и максимальное значение вертикальных ненулевых коэффициентов текущего блока больше 2 (см. фиг. 40B), в качестве вертикального типа преобразования может быть определено DCT2 или DCT8.
[00558] Остаточный коэффициент может кодироваться в элементах преобразования или в элементах подпреобразования. В данном случае остаточный коэффициент относится к коэффициенту преобразования, сгенерированному путем преобразования, коэффициенту пропуска преобразования, сгенерированному путем пропуска преобразования, или квантованному коэффициенту, сгенерированному путем квантования коэффициента или коэффициента преобразования.
[00559] Элемент преобразования может относиться к блоку, который подвергается первому преобразованию или второму преобразованию. Элемент подпреобразования относится к блоку с меньшим размером, чем у элемента преобразования. В качестве примера, элемент подпреобразования может представлять собой блок 4×4, 2×8 или 8×2.
[00560] По меньшей мере одно из размера или формы элемента подпреобразования может быть определено на основании размера или формы текущего блока. В качестве примера, элемент подпреобразования также установлен как имеющий неквадратную форму, в которой ширина больше высоты (например, 8×2), когда текущий блок имеет неквадратную форму, в которой ширина больше высоты, и элемент подпреобразования также может быть установлен как имеющий неквадратную форму, в которой высота больше ширины (например, 2×8), когда текущий блок имеет неквадратную форму, в которой высота больше ширины. Когда текущий блок является квадратным, элемент подпреобразования также может быть установлен как имеющий квадратную форму (например, 4×4).
[00561] Когда в текущий блок включены множество элементов подпреобразования, элементы подпреобразования могут кодироваться или декодироваться последовательно. Остаточный коэффициент может кодироваться с использованием такого энтропийного кодирования, как арифметическое кодирование. Способ кодирования или декодирования остаточного коэффициента будет подробно описан ниже со ссылкой на графические материалы.
[00562] На фиг. 41 представлена блок-схема, показывающая способ кодирования остаточного коэффициента.
[00563] В данном варианте осуществления предполагается, что текущий блок содержит один или более элементов подпреобразования. В дополнение, предполагается, что элемент подпреобразования имеет размер 4×4. Однако данный вариант осуществления может применяться как таковой даже тогда, когда размер элемента подпреобразования или форма элемента подпреобразования отличается от описанной выше.
[00564] Может быть определено (S4101), присутствует ли ненулевой коэффициент в текущем блоке. Ненулевой коэффициент указывает остаточный коэффициент, абсолютное значение которого больше 0. Информация, указывающая, присутствует ли ненулевой коэффициент в текущем блоке, может быть кодирована и передана. В качестве примера, информация может представлять собой 1-битный флаг и может представлять собой флаг кодированного блока (CBF).
[00565] Когда ненулевой коэффициент присутствует в текущем блоке, может быть определено (S4102), присутствует ли ненулевой коэффициент для каждого элемента подпреобразования. Информация, указывающая, присутствует ли ненулевой коэффициент для каждого элемента подпреобразования, может быть кодирована и передана. В качестве примера, информация может представлять собой 1-битный флаг и может представлять собой флаг кодированного подблока (CSBF). Элементы подпреобразования могут кодироваться в предварительно выбранном порядке сканирования.
[00566] Когда в элементе подпреобразования присутствует ненулевой коэффициент, для кодирования (S4103) остаточных коэффициентов элемента подпреобразования остаточные коэффициенты в элементе подпреобразования могут быть расположены в одном измерении. Остаточные коэффициенты могут быть расположены в одном измерении в предварительно выбранном порядке сканирования.
[00567] Порядок сканирования может включать по меньшей мере одно из диагонального сканирования, горизонтального сканирования, вертикального сканирования или обратных им порядков сканирования.
[00568] На фиг. 42 и 43 представлены схематические изображения, показывающие порядок расположения остаточных коэффициентов для каждого порядка сканирования.
[00569] На фиг. 42A-42C представлены диагональное сканирование, горизонтальное сканирование и вертикальное сканирование, и на фиг. 43A-43C представлены обратные им порядки сканирования.
[00570] Остаточные коэффициенты могут быть расположены в одном измерении в выбранном порядке сканирования.
[00571] Порядок сканирования может определяться с учетом по меньшей мере одного из размера, формы или режима внутреннего предсказания текущего блока, основы преобразования, используемой для первичного преобразования, или того, применять ли вторичное преобразование. В качестве примера, когда текущий блок имеет неквадратную форму, в которой ширина больше высоты, остаточный коэффициент может кодироваться с использованием обратного горизонтального сканирования. С другой стороны, когда текущий блок имеет неквадратную форму, в которой высота больше ширины, остаточный коэффициент может кодироваться с использованием обратного вертикального сканирования.
[00572] Альтернативно для каждого из множества порядков сканирования может быть вычислена оптимизация скорость-искажение (RDO), и в качестве порядка сканирования текущего блока может определяться порядок сканирования, имеющий минимальную RDO. В этом случае может быть кодирована и передана информация, указывающая порядок сканирования текущего блока.
[00573] Порядок-кандидат сканирования, который может использоваться при кодировании коэффициента пропуска преобразования, может отличаться от порядка-кандидата сканирования, который может использоваться при кодировании коэффициента преобразования. В качестве примера, порядок, обратный порядку-кандидату сканирования, который может использоваться при кодировании коэффициента преобразования, может быть установлен в качестве порядка-кандидата сканирования, который может использоваться для кодирования коэффициента пропуска преобразования.
[00574] В качестве примера, когда коэффициент преобразования кодируется с использованием одного из обратного диагонального сканирования, обратного горизонтального сканирования или обратного вертикального сканирования, коэффициент пропуска преобразования может кодироваться с использованием одного из диагонального сканирования, горизонтального сканирования или вертикального сканирования.
[00575] Затем может кодироваться (S4103) местоположение последнего сканированного ненулевого коэффициента в блоке преобразования. Может кодироваться местоположение по оси x и местоположение по оси y последнего ненулевого коэффициента.
[00576] На фиг. 44 показан пример, в котором кодируется местоположение последнего ненулевого коэффициента.
[00577] В примере, показанном на фиг. 44, при применении диагонального сканирования остаточный коэффициент, расположенный в верхнем правом углу блока преобразования, может быть установлен в качестве последнего ненулевого коэффициента. Координата х, LastX, остаточного коэффициента равна 3, и координата у, LastY, остаточного коэффициента равна 0. LastX может кодироваться, являясь разделенной на last_sig_coeff_x_prefix, представляющую собой префиксную часть, и last_sig_coeff_x_suffix, представляющую собой суффиксную часть. LastY может также кодироваться, являясь разделенной на last_sig_coeff_y_prefix, представляющую собой префиксную часть, и last_sig_coeff_y_suffix, представляющую собой суффиксную часть.
[00578] Когда местоположение последнего ненулевого коэффициента определено, может кодироваться (S4104) информация, указывающая, являются ли остаточные коэффициенты, более ранние, чем последний ненулевой коэффициент в порядке сканирования, ненулевыми коэффициентами. Информация может представлять собой 1-битный флаг sig_coeff_flag. Значение флага ненулевого коэффициента sig_coeff_flag может быть установлено равным 0, когда остаточный коэффициент равен 0, и значение флага ненулевого коэффициента sig_coeff_flag может быть установлено равным 1, когда остаточный коэффициент равен 1. Кодирование флага ненулевого коэффициента sig_coeff_flag для последнего ненулевого коэффициента может быть пропущено. Когда кодирование флага ненулевого коэффициента sig_coeff_flag пропущено, соответствующий остаточный коэффициент считается ненулевым.
[00579] Информация в отношении местоположения последнего ненулевого коэффициента для коэффициента пропуска преобразования может не кодироваться. В этом случае может кодироваться флаг ненулевого коэффициента sig_coeff_flag для всех коэффициентов пропуска преобразования в блоке.
[00580] Альтернативно может кодироваться и передаваться информация, указывающая, кодируется ли информация в отношении местоположения последнего ненулевого коэффициента. Информация может представлять собой 1-битный флаг.Декодер может определять, декодировать ли информацию в отношении местоположения последнего ненулевого коэффициента, в соответствии со значением флага. Когда местоположение последнего ненулевого коэффициента не декодируется, флаг ненулевого коэффициента может декодироваться для всех коэффициентов пропуска преобразования. С другой стороны, когда местоположение последнего ненулевого коэффициента декодируется, может кодироваться информация, указывающая, являются ли коэффициенты пропуска преобразования, сканированные раньше, чем последний ненулевой коэффициент, ненулевыми коэффициентами.
[00581] Компонент DC коэффициента преобразования или коэффициента пропуска преобразования может быть не установлен равным нулю. В данном случае компонент DC может указывать последний сканированный отсчет или отсчет, расположенный в верхнем левом углу блока. Для компонента DC кодирование флага ненулевого коэффициента sig_coeff_flag может быть пропущено. Когда кодирование флага ненулевого коэффициента sig_coeff_flag пропущено, соответствующий остаточный коэффициент считается ненулевым.
[00582] Когда остаточный коэффициент является ненулевым, могут кодироваться (S4105) информация, указывающая абсолютное значение остаточного коэффициента, и информация, указывающая знак остаточного коэффициента. Процесс кодирования информации, указывающей абсолютное значение остаточного коэффициента, будет подробно описан со ссылкой на фиг. 45.
[00583] Кодирование (S4106 и S4107) остаточного коэффициента может последовательно выполняться в отношении элементов подпреобразования, включенных в текущий блок, и всех остаточных коэффициентов после последнего ненулевого коэффициента.
[00584] На фиг. 45 представлена блок-схема процесса кодирования абсолютного значения остаточного коэффициента.
[00585] Когда абсолютное значение остаточного коэффициента больше 0, может кодироваться (S4501) информация, указывающая, является ли остаточный коэффициент или коэффициент остатка четным числом или нечетным числом. В данном случае коэффициент остатка может быть задан как абсолютное значение остаточного коэффициента минус 1. Информация может представлять собой 1-битный флаг четности. В качестве примера, значение элемента синтаксиса par_level_flag, равное 0, означает, что остаточный коэффициент или коэффициент остатка является четным числом, а значение элемента синтаксиса par_level_flag, равное 1, означает, что остаточный коэффициент или коэффициент остатка является нечетным числом. Значение элемента синтаксиса par_level_flag можно определить с использованием приведенного ниже уравнения 30.
[00586] [Уравнение 30]
[00587] В уравнении 30 Tcoeff представляет остаточный коэффициент, и abs() представляет функцию абсолютного значения.
[00588] Скорректированный коэффициент остатка может быть получен (S4502) путем деления остаточного коэффициента или коэффициента остатка на 2 или путем применения к остаточному коэффициенту или коэффициенту остатка операции битового сдвига. Подробно в качестве скорректированного коэффициента остатка может быть установлено частное, полученное путем деления остаточного коэффициента на 2, или в качестве скорректированного коэффициента остатка может быть установлено значение, полученное путем сдвига остаточного коэффициента вправо на 1.
[00589] В качестве примера, скорректированный коэффициент остатка может быть получен с использованием приведенного ниже уравнения 31.
[00590] [Уравнение 31]
[00591] В уравнении 31 ReRemLevel представляет скорректированный коэффициент остатка, и RemLevel представляет коэффициент остатка.
[00592] Затем может кодироваться информация, указывающая размер скорректированного коэффициента остатка. Информация, указывающая размер скорректированного коэффициента остатка, может содержать информацию, указывающую, является ли скорректированный коэффициент остатка большим чем N. В данном случае N представляет собой натуральное число, такое как 1, 2, 3 и 4.
[00593] В качестве примера, может кодироваться информация, указывающая, является ли значение скорректированного коэффициента остатка большим чем 1. Информация может представлять собой 1-битный флаг rem_abs_gt1_flag.
[00594] Когда коэффициент остатка равен 0 или 1, значение rem_abs_gt1_flag может быть установлено равным 0. То есть, когда остаточный коэффициент равен 1 или 2, значение rem_abs_gt1_flag может быть установлено равным 0. В этом случае par_level_flag может быть установлен равным 0, когда коэффициент остатка равен 0, и par_level_flag может быть установлен равным 1, когда коэффициент остатка равен 1.
[00595] Когда скорректированный коэффициент остатка равен 2 или более (S4504), значение rem_abs_gt1_flag может быть установлено равным 1, и может кодироваться (S4505) информация, указывающая, является ли значение скорректированного коэффициента остатка большим чем 2. Информация может представлять собой 1-битный флаг rem_abs_gt2_flag.
[00596] Когда коэффициент остатка равен 1 или 2, значение rem_abs_gt2_flag может быть установлено равным 0. То есть, когда остаточный коэффициент равен 3 или 4, значение rem_abs_gt2_flag может быть установлено равным 0. В этом случае par_level_flag может быть установлен равным 2, когда коэффициент остатка равен 0, и par_level_flag может быть установлен равным 1, когда коэффициент остатка равен 3.
[00597] Когда скорректированный коэффициент остатка больше 2, может кодироваться (S4506) информация об остаточном значении, указывающая скорректированный коэффициент остатка минус 2. То есть в качестве информации об остаточном значении может кодироваться значение, полученное путем вычитания 5 из абсолютного значения остаточного коэффициента, а затем деления результата вычитания на 2.
[00598] Хотя это не показано, остаточный коэффициент может дополнительно кодироваться с использованием флага, указывающего, является ли скорректированный коэффициент остатка большим чем 3 (например, rem_abs_gt3_flag), или флага, указывающего, является ли скорректированный коэффициент остатка большим чем 4 (например, rem_abs_gt4_flag). В этом случае в качестве остаточного значения может быть установлен скорректированный коэффициент остатка минус максимальное значение. Максимальное значение представляет максимальное N, примененное к rem_abs_gtN_flag.
[00599] Вместо флагов для сравнения значения скорректированного коэффициента остатка с конкретным значением могут использоваться флаги для сравнения абсолютного значения скорректированного коэффициента или остаточного коэффициента с конкретным значением. В качестве примера, вместо rem_abs_gt1_flag может использоваться gr2_flag, указывающий, является ли абсолютное значение остаточного коэффициента большим чем 2, а вместо rem_abs_gt2_flag может использоваться gr4_flag, указывающий, является ли абсолютное значение остаточного коэффициента большим чем 4.
[00600] В таблице 14 просто представлен процесс кодирования остаточных коэффициентов с использованием элементов синтаксиса.
[00601] [Таблица 14]
[00602] В приведенном выше примере остаточный коэффициент может кодироваться с использованием par_level_flag и по меньшей мере одного флага rem_abs_gtN_flag (где N представляет собой натуральное число, такое как 1, 2, 3 и 4).
[00603] rem_abs_gtN_flag представляет, является ли остаточный коэффициент большим чем 2N. Для остаточного коэффициента 2N-1 или 2N rem_abs_gt(N-1)_flag устанавливается равным значению true, а rem_abs_gtN_flag устанавливается равным значению false. В дополнение, значение par_level_flag может быть установлено равным 0 для остаточного коэффициента 2N-1, и значение par_level_flag может быть установлено равным 1 для остаточного коэффициента 2N. То есть остаточные коэффициенты, меньшие или равные 2N, могут кодироваться с использованием rem_abs_gtN_flag и par_level_flag.
[00604] Для остаточных коэффициентов, больших или равных 2MAX+1, может кодироваться информация об остаточном значении, указывающая значение, полученное путем деления разности с 2MAX на 2. В данном случае MAX представляет максимальное значение N. В качестве примера, когда используются rem_abs_gt1_flag и rem_abs_gt2_flag, MAX может быть равно 2.
[00605] Декодер также может декодировать остаточные коэффициенты в порядке, показанном на фиг. 45. Подробно декодер может определять местоположение последнего ненулевого коэффициента и может декодировать sig_coeff_flag для каждого остаточного коэффициента, сканированного перед последним ненулевым коэффициентом.
[00606] Когда sig_coeff_flag имеет значение true, декодер может декодировать par_level_flag соответствующего остаточного коэффициента. Кроме того, декодер может декодировать rem_abs_gt1_flag соответствующего остаточного коэффициента. В этом случае rem_abs_gtN_flag может дополнительно декодироваться в зависимости от значения rem_abs_gt(N-1)_flag. В качестве примера, декодер может декодировать rem_abs_gtN_flag, когда значение rem_abs_gt(N-1)_flag равно 1. Например, когда значение rem_abs_gt1_flag для остаточного коэффициента равно 1, декодер может дополнительно анализировать rem_abs_gt2_flag на предмет остаточного коэффициента. Когда значение rem_abs_gt(MAX)_flag равно 1, декодер может декодировать информацию об остаточном значении.
[00607] Когда значение rem_abs_gtN_flag остаточного коэффициента равно 0, значение остаточного коэффициента может быть определено как равное 2N-1 или 2N в зависимости от значения par_level_flag. Подробно остаточный коэффициент может быть установлен равным 2N-1, когда par_level_flag равен 0, и остаточный коэффициент может быть установлен равным 2N, когда par_level_flag равен 1.
[00608] Например, когда rem_abs_gt1_flag равен 0, абсолютное значение остаточного коэффициента может быть установлено равным 1 или 2 в зависимости от значения par_level_flag. Подробно абсолютное значение остаточного коэффициента равно 1, когда значение par_level_flag равно 0, и абсолютное значение остаточного коэффициента равно 2, когда значение par_level_flag равно 1.
[00609] Например, когда rem_abs_gt2_flag равен 0, абсолютное значение остаточного коэффициента может быть установлено равным 3 или 4 в зависимости от значения par_level_flag. Подробно абсолютное значение остаточного коэффициента равно 3, когда значение par_level_flag равно 0, и абсолютное значение остаточного коэффициента равно 4, когда значение par_level_flag равно 1.
[00610] При декодировании информации об остаточном значении остаточный коэффициент может быть установлен равным 2(MAX+R)-1 или 2(MAX+R) в зависимости от значения par_level_flag. В данном случае R представляет значение, указываемое информацией об остаточном значении. В качестве примера, остаточный коэффициент может быть установлен равным 2(MAX+R)-1, когда par_level_flag равен 0, и остаточный коэффициент может быть установлен равным 2(MAX+R), когда par_level_flag равен 1. В качестве примера, когда MAX равно 2, остаточный коэффициент может быть получен с использованием приведенного ниже уравнения 32.
[00611] [Уравнение 32]
[00612] Когда остаточный коэффициент кодируется в примере, показанном на фиг. 45, для каждого ненулевого коэффициента может кодироваться флаг четности. В качестве примера, даже когда остаточный коэффициент равен 1, должны кодироваться par_level_flag и rem_abs_gt1_flag. Вышеописанный способ кодирования может вызывать увеличение количества бит, необходимых для кодирования остаточных коэффициентов, имеющих абсолютное значение 1. Для решения проблемы сначала может кодироваться информация, указывающая, является ли остаточный коэффициент большим чем 1, а когда остаточный коэффициент равен 1, может кодироваться флаг четности.
[00613] На фиг. 46 представлена блок-схема процесса кодирования абсолютного значения остаточного коэффициента.
[00614] Для ненулевого остаточного коэффициента может кодироваться (S4601) информация gr1_flag, указывающая, является ли абсолютное значение остаточного коэффициента большим чем 1. gr1_flag может быть установлен равным 0, когда остаточный коэффициент равен 1, и gr1_flag может быть установлен равным 1, когда остаточный коэффициент больше 1.
[00615] Когда абсолютное значение остаточного коэффициента больше 1, может кодироваться (S4602 и S4603) флаг четности, указывающий, является ли остаточный коэффициент или коэффициент остатка четным числом или нечетным числом. В данном случае коэффициент остатка может быть установлен равным остаточному коэффициенту минус 2. В качестве примера, par_level_flag может быть получен с использованием приведенного ниже уравнения 33.
[00616] [Уравнение 33]
[00617] Скорректированный коэффициент остатка может быть получен путем деления остаточного коэффициента или коэффициента остатка на 2 или путем битового сдвига остаточного коэффициента или коэффициента остатка вправо на 1, а затем может кодироваться (S4604) информация, указывающая, является ли скорректированный коэффициент остатка большим чем 1. В качестве примера, для остаточного коэффициента, gr1_flag которого равен 1, может кодироваться rem_abs_gt1_flag, указывающий, является ли скорректированный коэффициент остатка большим чем 1.
[00618] Когда коэффициент остатка равен 0 или 1, значение rem_abs_gt1_flag может быть установлено равным 0. То есть, когда остаточный коэффициент равен 2 или 3, значение rem_abs_gt1_flag может быть установлено равным 0. В этом случае par_level_flag может быть установлен равным 0, когда скорректированный коэффициент остатка равен 0, и par_level_flag может быть установлен равным 1, когда коэффициент остатка равен 1.
[00619] Когда скорректированный коэффициент остатка равен 2 или более (S4605), значение rem_abs_gt1_flag может быть установлено равным 1, и может кодироваться (S4606) информация, указывающая, является ли значение скорректированного коэффициента остатка большим чем 2. В качестве примера, для остаточного коэффициента, rem_abs_gt1_flag которого равен 1, может кодироваться rem_abs_gt2_flag, указывающий, является ли скорректированный коэффициент остатка большим чем 2.
[00620] Когда коэффициент остатка равен 2 или 3, значение rem_abs_gt2_flag может быть установлено равным 1. То есть, когда остаточный коэффициент равен 4 или 5, значение rem_abs_gt2_flag может быть установлено равным 0. В этом случае par_level_flag может быть установлен равным 0, когда коэффициент остатка равен 2, и par_level_flag может быть установлен равным 1, когда коэффициент остатка равен 3.
[00621] Когда скорректированный коэффициент остатка больше 2 (S4607), может кодироваться (S4608) информация об остаточном значении, указывающая скорректированный коэффициент остатка минус 2. То есть в качестве информации об остаточном значении может кодироваться значение, полученное путем вычитания 6 из абсолютного значения остаточного коэффициента, а затем деления результата вычитания на 2.
[00622] Остаточный коэффициент может дополнительно кодироваться с использованием флага, указывающего, является ли скорректированный коэффициент остатка большим чем 3 (например, rem_abs_gt3_flag), или флага, указывающего, является ли скорректированный коэффициент остатка большим чем 4 (например, rem_abs_gt4_flag). В этом случае в качестве остаточного значения может быть установлен скорректированный коэффициент остатка минус максимальное значение. Максимальное значение представляет максимальное N, примененное к rem_abs_gtN_flag.
[00623] Вместо флагов для сравнения значения скорректированного коэффициента остатка с конкретным значением могут использоваться флаги для сравнения абсолютного значения скорректированного коэффициента или остаточного коэффициента с конкретным значением. В качестве примера, вместо rem_abs_gt1_flag может использоваться gr3_flag, указывающий, является ли абсолютное значение остаточного коэффициента большим чем 3, а вместо rem_abs_gt2_flag может использоваться gr5_flag, указывающий, является ли абсолютное значение остаточного коэффициента большим чем 5.
[00624] В таблице 15 просто представлен процесс кодирования остаточных коэффициентов с использованием элементов синтаксиса.
[00625] [Таблица 15]
[00626] Декодер также может декодировать остаточные коэффициенты в порядке, показанном на фиг. 46. Подробно декодер может определять местоположение последнего ненулевого коэффициента и может декодировать sig_coeff_flag для каждого остаточного коэффициента, сканированного перед последним ненулевым коэффициентом.
[00627] Когда sig_coeff_flag имеет значение true, декодер может декодировать gr1_flag соответствующего остаточного коэффициента. Декодер может определять, что абсолютное значение соответствующего остаточного коэффициента равно 1, когда gr1_flag равен 0, и может декодировать par_level_flag соответствующего остаточного коэффициента, когда gr1_flag равен 1. Затем декодер может декодировать rem_abs_gt1_flag соответствующего остаточного коэффициента. В этом случае rem_abs_gtN_flag может дополнительно декодироваться в зависимости от значения rem_abs_gt(N-1)_flag. В качестве примера, декодер может декодировать rem_abs_gtN_flag, когда значение rem_abs_gt(N-1)_flag равно 1. Например, когда значение rem_abs_gt1_flag для остаточного коэффициента равно 1, декодер может дополнительно анализировать rem_abs_gt2_flag на предмет остаточного коэффициента. Когда значение rem_abs_gt(MAX)_flag равно 1, декодер может декодировать информацию об остаточном значении.
[00628] Когда значение rem_abs_gtN_flag остаточного коэффициента равно 0, значение остаточного коэффициента может быть определено как равное 2N или 2N+1 в зависимости от значения par_level_flag. Подробно остаточный коэффициент может быть установлен равным 2N, когда par_level_flag равен 0, и остаточный коэффициент может быть установлен равным 2N+1, когда par_level_flag равен 1.
[00629] Например, когда rem_abs_gt1_flag равен 0, абсолютное значение остаточного коэффициента может быть установлено равным 2 или 3 в зависимости от значения par_level_flag. Подробно абсолютное значение остаточного коэффициента равно 2, когда значение par_level_flag равно 0, и абсолютное значение остаточного коэффициента равно 3, когда значение par_level_flag равно 1.
[00630] Например, когда rem_abs_gt2_flag равен 0, абсолютное значение остаточного коэффициента может быть установлено равным 4 или 5 в зависимости от значения par_level_flag. Подробно абсолютное значение остаточного коэффициента равно 4, когда значение par_level_flag равно 0, и абсолютное значение остаточного коэффициента равно 5, когда значение par_level_flag равно 1.
[00631] При декодировании информации об остаточном значении остаточный коэффициент может быть установлен равным 2(MAX+R) или 2(MAX+R)+1 в зависимости от значения par_level_flag. В данном случае R представляет значение информации об остаточном значении. В качестве примера, остаточный коэффициент может быть установлен равным 2(MAX+R), когда par_level_flag равен 0, и остаточный коэффициент может быть установлен равным 2(MAX+R)+1, когда par_level_flag равен 1.
[00632] В качестве другого примера, флаг четности может кодироваться только тогда, когда значение остаточного коэффициента больше 2. В качестве примера, после кодирования информации, указывающей, является ли значение остаточного коэффициента большим чем 1, и информации, указывающей, является ли значение остаточного коэффициента большим чем 2, когда определено, что значение остаточного коэффициента больше 2, может кодироваться флаг четности для соответствующего остаточного коэффициента.
[00633] На фиг. 47 представлена блок-схема процесса кодирования абсолютного значения остаточного коэффициента.
[00634] Для ненулевого остаточного коэффициента может кодироваться (S4701) информация gr1_flag, указывающая, является ли абсолютное значение остаточного коэффициента большим чем 1. gr1_flag может быть установлен равным 0, когда остаточный коэффициент равен 1, и gr1_flag может быть установлен равным 1, когда остаточный коэффициент больше 1.
[00635] Для остаточного коэффициента, абсолютное значение которого больше 1, может кодироваться (S4702 и S4703) информация gr2_flag, указывающая, является ли абсолютное значение остаточного коэффициента большим чем 2. gr2_flag может быть установлен равным 0, когда остаточный коэффициент равен 2, и gr2_flag может быть установлен равным 1, когда остаточный коэффициент больше 2.
[00636] Когда абсолютное значение больше 2, может кодироваться (S4704 и S4705) флаг четности, указывающий, является остаточный коэффициент или коэффициент остатка четным числом или нечетным числом. В данном случае коэффициент остатка может быть установлен равным остаточному коэффициенту минус 3. В качестве примера, par_level_flag может быть получен с использованием приведенного ниже уравнения 34.
[00637] [Уравнение 34]
[00638] Скорректированный коэффициент остатка может быть получен путем деления остаточного коэффициента или коэффициента остатка на 2 или путем битового сдвига остаточного коэффициента или коэффициента остатка вправо на 1, а затем может кодироваться информация, указывающая, является ли скорректированный коэффициент остатка большим чем 1. В качестве примера, для остаточного коэффициента, gr1_flag которого равен 1, может кодироваться (S4706) rem_abs_gt1_flag, указывающий, является ли скорректированный коэффициент остатка большим чем 1.
[00639] Когда коэффициент остатка равен 0 или 1, значение rem_abs_gt1_flag может быть установлено равным 0. То есть, когда остаточный коэффициент равен 3 или 4, значение rem_abs_gt1_flag может быть установлено равным 0. В этом случае par_level_flag может быть установлен равным 0, когда скорректированный коэффициент остатка равен 0, и par_level_flag может быть установлен равным 1, когда коэффициент остатка равен 1.
[00640] Когда скорректированный коэффициент остатка равен 2 или более (S4707), значение rem_abs_gt1_flag может быть установлено равным 1, и может кодироваться (S4708) информация, указывающая, является ли значение скорректированного коэффициента остатка большим чем 2. В качестве примера, для остаточного коэффициента, rem_abs_gt1_flag которого равен 1, может кодироваться rem_abs_gt2_flag, указывающий, является ли скорректированный коэффициент остатка большим чем 2.
[00641] Когда коэффициент остатка равен 2 или 3, значение rem_abs_gt2_flag может быть установлено равным 1. То есть, когда остаточный коэффициент равен 5 или 6, значение rem_abs_gt2_flag может быть установлено равным 0. В этом случае par_level_flag может быть установлен равным 0, когда коэффициент остатка равен 2, и par_level_flag может быть установлен равным 1, когда коэффициент остатка равен 3.
[00642] Когда скорректированный коэффициент остатка больше 2, может кодироваться (S4709 и S4710) остаточное значение, равное скорректированному коэффициенту остатка минус 2. То есть в качестве остаточного значения может кодироваться значение, полученное путем вычитания 7 из абсолютного значения остаточного коэффициента, а затем деления результата вычитания на 2.
[00643] Остаточный коэффициент может дополнительно кодироваться с использованием флага, указывающего, является ли скорректированный коэффициент остатка большим чем 3 (например, rem_abs_gt3_flag), или флага, указывающего, является ли скорректированный коэффициент остатка большим чем 4 (например, rem_abs_gt4_flag). В этом случае в качестве остаточного значения может быть установлен скорректированный коэффициент остатка минус максимальное значение. Максимальное значение представляет максимальное N, примененное к rem_abs_gtN_flag.
[00644] Вместо флагов для сравнения значения скорректированного коэффициента остатка с конкретным значением могут использоваться флаги для сравнения абсолютного значения скорректированного коэффициента или остаточного коэффициента с конкретным значением. В качестве примера, вместо rem_abs_gt1_flag может использоваться gr4_flag, указывающий, является ли абсолютное значение остаточного коэффициента большим чем 4, а вместо rem_abs_gt2_flag может использоваться gr6_flag, указывающий, является ли абсолютное значение остаточного коэффициента большим чем 6.
[00645] Декодер также может декодировать остаточные коэффициенты в таком же порядке, как показано на фиг. 47. Подробно декодер может определять местоположение последнего ненулевого коэффициента и может декодировать sig_coeff_flag для каждого остаточного коэффициента, сканированного перед последним ненулевым коэффициентом.
[00646] Когда sig_coeff_flag имеет значение true, декодер может декодировать gr1_flag соответствующего остаточного коэффициента. Декодер может определять, что абсолютное значение соответствующего остаточного коэффициента равно 1, когда gr1_flag равен 0, и может декодировать gr2_flag, когда gr1_flag равен 1. Декодер может определять, что абсолютное значение соответствующего остаточного коэффициента равно 2, когда gr2_flag равен 0, и может декодировать par_level_flag соответствующего остаточного коэффициента, когда gr2_flag равен 1. Затем декодер может декодировать rem_abs_gt1_flag соответствующего остаточного коэффициента. В этом случае rem_abs_gtN_flag может дополнительно декодироваться в зависимости от значения rem_abs_gt(N-1)_flag. В качестве примера, декодер может декодировать rem_abs_gtN_flag, когда значение rem_abs_gt(N-1)_flag равно 1. Например, когда значение rem_abs_gt1_flag для остаточного коэффициента равно 1, декодер может дополнительно анализировать rem_abs_gt2_flag на предмет остаточного коэффициента. Когда значение rem_abs_gt(MAX)_flag равно 1, декодер может декодировать информацию об остаточном значении.
[00647] Когда значение rem_abs_gtN_flag остаточного коэффициента равно 0, значение остаточного коэффициента может быть определено как равное 2N+1 или 2(N+1) в зависимости от значения par_level_flag. Подробно остаточный коэффициент может быть установлен равным 2N+1, когда par_level_flag равен 0, и остаточный коэффициент может быть установлен равным 2(N+1), когда par_level_flag равен 1.
[00648] Например, когда rem_abs_gt1_flag равен 0, абсолютное значение остаточного коэффициента может быть установлено равным 3 или 4 в зависимости от значения par_level_flag. Подробно абсолютное значение остаточного коэффициента равно 3, когда значение par_level_flag равно 0, и абсолютное значение остаточного коэффициента равно 4, когда значение par_level_flag равно 1.
[00649] Например, когда rem_abs_gt2_flag равен 0, абсолютное значение остаточного коэффициента может быть установлено равным 5 или 6 в зависимости от значения par_level_flag. Подробно абсолютное значение остаточного коэффициента равно 5, когда значение par_level_flag равно 0, и абсолютное значение остаточного коэффициента равно 6, когда значение par_level_flag равно 1.
[00650] При декодировании информации об остаточном значении остаточный коэффициент может быть установлен равным 2(MAX+R) или 2(MAX+R)+1 в зависимости от значения par_level_flag. В данном случае R представляет значение информации об остаточном значении. В качестве примера, остаточный коэффициент может быть установлен равным 2(MAX+R), когда par_level_flag равен 0, и остаточный коэффициент может быть установлен равным 2(MAX+R)+1, когда par_level_flag равен 1.
[00651] Может быть определено по меньшей мере одно из количества или типов флагов сравнения для сравнения скорректированных коэффициентов остатка с конкретным значением на основании по меньшей мере одного из размера или формы текущего блока, присутствия пропуска преобразования, основы преобразования, количества ненулевых коэффициентов или местоположения последнего ненулевого коэффициента. В качестве примера, при кодировании коэффициента преобразования, может использоваться только rem_abs_gt1_flag. С другой стороны, при кодировании коэффициента пропуска преобразования могут использоваться rem_abs_gt1_flag и rem_abs_gt2_flag.
[00652] Альтернативно в элементе подпреобразования 4×4 количество флагов rem_abs_gt1_fag может быть установлено равным вплоть до 8, а количество флагов rem_abs_gt2_flag может быть установлено равным вплоть до 1. Альтернативно, когда количество флагов ненулевых коэффициентов равно (16-N), количество флагов rem_abs_gt1_flag может быть установлено равным вплоть до 8+(N/2), и количество флагов rem_abs_gt2_flag может быть установлено равным вплоть до 1+(N-(N/2)).
[00653] При получении восстановленного блока текущего блока потеря информации, происходящая в ходе квантования и кодирования, может быть уменьшена с помощью фильтрации в контуре. Фильтр в контуре может содержать по меньшей мере один из деблочного фильтра, фильтра адаптивного смещения отсчета (SAO) или адаптивного контурного фильтра (ALF). Восстановленный блок до применения фильтра в контуре будет называться первым восстановленным блоком, а восстановленный блок после применения фильтра в контуре будет называться вторым восстановленным блоком.
[00654] Второй восстановленный блок может быть получен путем применения по меньшей мере одного из деблочного фильтра, SAO или ALF к первому восстановленному блоку. В этом случае SAO или ALF может быть применен после применения деблочного фильтра.
[00655] Деблочный фильтр предназначен для ослабления ухудшения качества видео (блочного артефакта), возникающего на крае блока при выполнении квантования в элементах блоков. Для применения деблочного фильтра может быть определен качественный показатель блока (BS) между первым восстановленным блоком и соседним восстановленным блоком.
[00656] На фиг. 48 представлена блок-схема, показывающая процесс определения качественного показателя блока.
[00657] В примере, показанном на фиг. 48, P представляет первый восстановленный блок, и Q представляет соседний восстановленный блок. В данном случае соседний восстановленный блок может представлять собой блок, соседний с текущим блоком слева или сверху.
[00658] В примере, показанном на фиг. 48, показано, что качественный показатель блока определяется с учетом режимов предсказания P и Q, того, включены ли ненулевые коэффициенты преобразования, того, выполнено ли предсказание, осуществляемое между изображениями, с использованием того же опорного изображения, или того, является ли значение разности между векторами движения большим или равным пороговому значению.
[00659] На основании качественного показателя блока можно определить, применять ли деблочный фильтр. В качестве примера, фильтрация может не выполняться, когда качественный показатель блока равен 0.
[00660] SAO предназначено для ослабления артефакта в виде колец, возникающего при выполнении квантования в частотной области. SAO может быть выполнено путем добавления или вычитания смещения, определенного с учетом схемы первого восстановленного блока. Способ определения смещения включает смещение по краю (EO) или смещение по полосам (ВО). EO указывает способ определения смещения текущего отсчета согласно схеме ближайших пикселей. BO указывает способ применения общего смещения к набору пикселей, имеющих подобные значения яркости в области. Подробно яркость пикселей делится на 32 равные секции, и как один набор могут быть установлены пиксели, имеющие подобные значения яркости. В качестве примера, как одна группа могут быть установлены четыре смежные полосы из 32 полос, и к отсчетам, принадлежащим четырем полосам, может быть применено одинаковое значение смещения.
[00661] ALF представляет собой способ генерирования второго восстановленного блока путем применения фильтра предварительно заданного размера или формы к первому восстановленному блоку или к восстановленному блоку, к которому был применен деблочный фильтр. В приведенном ниже уравнении 35 представлен пример применения ALF.
[00662] [Уравнение 35]
[00663] Один из предварительно заданных фильтров-кандидатов может быть выбран в элементах изображения, элементах кодового дерева, блоках кодирования, блоках предсказания или блоках преобразования. Фильтры-кандидаты могут отличаться по размеру или форме.
[00664] На фиг. 49 показаны предварительно заданные фильтры-кандидаты.
[00665] В примере, показанном на фиг. 49, может быть выбрана по меньшей мере одна из ромбовидной формы 5×5, ромбовидной формы 7×7 или ромбовидной формы 9×9.
[00666] Для компонента цветности может быть использована только ромбовидная форма 5×5.
[00667] Применение вариантов осуществления, которые были описаны как направленные на процесс декодирования или процесс кодирования, к процессу декодирования или процессу кодирования находится в пределах объема настоящего изобретения. Изменение предварительно определенного порядка, в котором были описаны варианты осуществления, на порядок, отличный от вышеописанного, также находится в пределах объема настоящего изобретения.
[00668] Хотя приведенные выше варианты осуществления были описаны на основании ряда этапов или последовательностей операций, этапы или последовательности операций не ограничивают порядок настоящего изобретения во временном ряду и при необходимости могут выполняться одновременно или в других порядках. Кроме того, каждый из компонентов (например, элементы, модули и т.д.), составляющих блок-схему в вышеописанных вариантах осуществления, может быть реализован аппаратным устройством или программным обеспечением, и множество компонентов могут быть скомбинированы и реализованы одним аппаратным устройством или программным обеспечением. Вышеописанные варианты осуществления могут быть реализованы в форме программных команд, которые могут исполняться посредством различных компьютерных средств и записываться в машиночитаемом носителе данных. Машиночитаемый носитель данных может содержать программную команду, файл данных, структуру данных и т.п.отдельно или в комбинации. Примеры машиночитаемого носителя данных включают магнитные носители, такие как жесткий диск, дискета и магнитная лента, оптические носители, таки как постоянное запоминающее устройство на компакт-диске (CD-ROM) и цифровой универсальный диск (DVD), магнитооптические носители, такие как гибкий магнитооптический диск, и аппаратные устройства, такие как ROM, оперативное запоминающее устройство (RAM) и флеш-память, которые специально рассчитаны на хранение и исполнение программных команд. Аппаратное устройство может быть выполнено с возможностью работы в качестве одного или более модулей программного обеспечения для выполнения операций настоящего изобретения, и наоборот.
[Промышленная применимость]
[00669] Настоящее изобретение может быть применено к электронному устройству для кодирования или декодирования видео.
Изобретение относится к области кодирования или декодирования видеосигнала. Техническим результатом является повышение эффективности и скорости кодирования. Предложен способ декодирования изображения, включающий этапы: генерирование списка кандидатов на слияние текущего блока; указание любого из множества кандидатов на слияние, включенных в список кандидатов на слияние; на основании первого аффинного исходного вектора и второго аффинного исходного вектора указанного кандидата на слияние введение первого аффинного исходного вектора и второго аффинного исходного вектора текущего блока; с использованием первого аффинного исходного вектора и второго аффинного исходного вектора текущего блока введение аффинного вектора в отношении подблока в текущем блоке и на основании аффинного вектора выполнение предсказания с компенсацией движения в отношении подблока. 2 н. и 4 з.п. ф-лы, 49 ил., 15 табл.
1. Способ декодирования видео, включающий следующие этапы:
анализ ненулевого флага, указывающего, является ли остаточный коэффициент ненулевым, из битового потока;
анализ информации об абсолютном значении для определения абсолютного значения остаточного коэффициента из битового потока, когда ненулевой флаг указывает, что остаточный коэффициент является ненулевым; и
определение абсолютного значения остаточного коэффициента на основании информации об абсолютном значении,
при этом
информация об абсолютном значении содержит флаг сравнения остаточного коэффициента, указывающий, больше ли остаточный коэффициент, чем первое значение;
флаг четности дополнительно анализируют из битового потока только тогда, когда остаточный коэффициент больше, чем первое значение, и флаг четности указывает, является ли значение остаточного коэффициента четным числом или нечетным числом; и
первый флаг сравнения скорректированного коэффициента остатка, указывающий, больше ли скорректированный коэффициент остатка, полученный путем битового сдвига остаточного коэффициента вправо на 1, чем второе значение, дополнительно анализируют, когда остаточный коэффициент больше, чем первое значение,
при этом N представляет собой второе значение и остаточный коэффициент определяют как равный 2N или 2N+1 в зависимости от флага четности, когда скорректированный коэффициент остатка меньше, чем второе значение, или равен ему.
2. Способ по п. 1, отличающийся тем, что второй флаг сравнения скорректированного коэффициента остатка, указывающий, больше ли скорректированный коэффициент остатка, чем третье значение, дополнительно анализируют, когда скорректированный коэффициент остатка больше, чем второе значение.
3. Способ по п. 1, отличающийся тем, что
информацию об остаточном значении дополнительно анализируют, когда скорректированный коэффициент остатка больше, чем второе значение, и
информация об остаточном значении содержит значение, полученное путем вычитания второго значения из скорректированного коэффициента остатка.
4. Способ кодирования видео, включающий следующие этапы:
кодирование ненулевого флага, указывающего, является ли остаточный коэффициент ненулевым; и
кодирование информации об абсолютном значении для определения абсолютного значения остаточного коэффициента, когда остаточный коэффициент является ненулевым,
при этом
информация об абсолютном значении содержит флаг сравнения остаточного коэффициента, указывающий, больше ли остаточный коэффициент, чем первое значение;
флаг четности для остаточного коэффициента дополнительно кодируют только тогда, когда остаточный коэффициент больше, чем первое значение, и флаг четности указывает, является ли значение остаточного коэффициента четным числом или нечетным числом; и
первый флаг сравнения скорректированного коэффициента остатка, указывающий, больше ли скорректированный коэффициент остатка, полученный путем битового сдвига остаточного коэффициента вправо на 1, чем второе значение, дополнительно кодируют, когда остаточный коэффициент больше, чем первое значение,
при этом N представляет собой второе значение и остаточный коэффициент определяют как равный 2N или 2N+1 в зависимости от флага четности, когда скорректированный коэффициент остатка меньше, чем второе значение, или равен ему.
5. Способ по п. 4, отличающийся тем, что второй флаг сравнения скорректированного коэффициента остатка, указывающий, больше ли скорректированный коэффициент остатка, чем третье значение, дополнительно кодируют, когда скорректированный коэффициент остатка больше, чем второе значение.
6. Способ по п. 4, отличающийся тем, что
информацию об остаточном значении дополнительно кодируют, когда скорректированный коэффициент остатка больше, чем второе значение, и
информация об остаточном значении содержит значение, полученное путем вычитания второго значения из скорректированного коэффициента остатка.
BENJAMIN BROSS et al | |||
Аппарат для очищения воды при помощи химических реактивов | 1917 |
|
SU2A1 |
US 2013272424 A1, 17.10.2013 | |||
WO 2017043760 A1, 16.03.2017 | |||
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ОСТАТОЧНОГО БЛОКА, СПОСОБ И УСТРОЙСТВО ДЛЯ ДЕКОДИРОВАНИЯ ОСТАТОЧНОГО БЛОКА | 2015 |
|
RU2607250C2 |
US 2017127066 A1, 04.05.2017 | |||
WO 2018002052 A1, 04.01.2018. |
Авторы
Даты
2023-08-11—Публикация
2019-09-20—Подача