Область техники, к которой относится изобретение
Раскрытие относится к области техники кодирования и декодирования изображений. Более конкретно, раскрытие относится к оборудованию и способу для кодирования и декодирования текущего вектора движения посредством использования его соседнего вектора движения.
Уровень техники
При кодировании и декодировании изображений, изображение разбивается на блоки, и каждый блок кодируется с прогнозированием (предсказанием) и декодируется с прогнозированием через межкадровое (интер-) прогнозирование или внутрикадровое (интра-) прогнозирование.
Интер-прогнозирование представляет собой способ удаления временной избыточности между изображениями, чтобы сжимать изображения. Характерный пример интер-прогнозирования представляет собой кодирование с оценкой движения. Кодирование с оценкой движения прогнозирует блоки текущего кадра посредством использования по меньшей мере одного опорного кадра. Опорный блок, который является наиболее аналогичным текущему блоку, ищется в пределах предварительно определенного диапазона поиска посредством использования предварительно определенной оценочной функции. Текущий блок прогнозируется на основе опорного блока, и блок прогнозирования, сформированный в качестве результата прогнозирования, вычитается из текущего блока, чтобы формировать остаточный блок. Остаточный блок затем кодируется. Чтобы более точно выполнять прогнозирование, интерполяция выполняется для опорного кадра, чтобы формировать пикселы в субпельной единице, которая меньше целопельной единицы, и интер-прогнозирование выполняется на основе пикселов в субпельной единице.
В кодеке, к примеру, по стандарту усовершенствованного кодирования видео (AVC) H.264 и по стандарту высокоэффективного кодирования видео (HEVC), векторы движения ранее кодированных блоков, смежных с текущим блоком, или блоков, включенных в ранее кодированные изображения, используются для того, чтобы прогнозировать вектор движения текущего блока. Дифференциальные векторы движения, которые представляют разности между векторами движения текущего блока и векторами движения ранее кодированных блоков, сигнализируются стороне декодера через предварительно установленный способ.
Подробное описание вариантов осуществления
Техническая задача
Предусмотрено оборудование и способ для кодирования вектора движения и оборудование и способ для декодирования вектора движения, за счет которых повышается точность прогнозирования вектора движения текущего блока.
Предусмотрено оборудование и способ для кодирования вектора движения и оборудование и способ для декодирования вектора движения, за счет которых уменьшается размер дифференциального вектора движения, включенного в поток битов.
Решение задачи
Способ декодирования вектора движения, согласно варианту осуществления, включает в себя выбор первого соседнего блока из числа соседних блоков, смежных с текущим блоком, согласно информации, полученной из потока битов; когда первый соседний блок идентифицируется как доступный посредством использования информации, указывающей доступность первого соседнего блока, и вектор движения первого соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, не существует, получение прогнозного вектора движения текущего блока из вектора движения второго соседнего блока в предварительно определенном местоположении, причем второй соседний блок является смежным с текущим блоком; и получение вектора движения текущего блока посредством комбинирования прогнозного вектора движения текущего блока с дифференциальным вектором движения.
Преимущества раскрытия
В оборудовании и способе для кодирования вектора движения и в оборудовании и способе для декодирования вектора движения, согласно варианту осуществления, может повышаться точность прогнозирования вектора движения текущего блока.
В оборудовании и способе для кодирования вектора движения и в оборудовании и способе для декодирования вектора движения, согласно варианту осуществления, может уменьшаться размер дифференциального вектора движения, включенного в поток битов.
Следует отметить, что преимущества, которые могут достигаться посредством оборудования и способа для кодирования вектора движения и оборудования и способа для декодирования вектора движения, согласно варианту осуществления, не ограничены преимуществами, описанными выше, и другие преимущества, которые не упоминаются, должны становиться очевидными для специалистов в данной области техники из нижеприведенных описаний.
Краткое описание чертежей
Краткое описание каждого чертежа предоставляется для лучшего понимания чертежей, приведенных в данном документе.
Фиг. 1 является блок-схемой оборудования декодирования изображений согласно варианту осуществления.
Фиг. 2 является блок-схемой оборудования кодирования изображений согласно варианту осуществления.
Фиг. 3 иллюстрирует процесс определения, по меньшей мере, одной единицы кодирования посредством разбиения текущей единицы кодирования, согласно варианту осуществления.
Фиг. 4 иллюстрирует процесс определения, по меньшей мере, одной единицы кодирования посредством разбиения неквадратной единицы кодирования, согласно варианту осуществления.
Фиг. 5 иллюстрирует процесс разбиения единицы кодирования на основе, по меньшей мере, одного из информации формы блоков и информации режима согласно форме разбиения, согласно варианту осуществления.
Фиг. 6 иллюстрирует способ определения предварительно установленной единицы кодирования из нечетного числа единиц кодирования, согласно варианту осуществления.
Фиг. 7 иллюстрирует порядок обработки множества единиц кодирования при определении множества единиц кодирования посредством разбиения текущей единицы кодирования, согласно варианту осуществления.
Фиг. 8 иллюстрирует процесс определения того, что текущая единица кодирования должна разбиваться на нечетное число единиц кодирования, когда единицы кодирования не являются обрабатываемыми в предварительно установленном порядке, согласно варианту осуществления.
Фиг. 9 иллюстрирует процесс определения, по меньшей мере, одной единицы кодирования посредством разбиения первой единицы кодирования, согласно варианту осуществления.
Фиг. 10 иллюстрирует то, что форма, на которую является разбиваемой неквадратная вторая единица кодирования, определенная посредством разбиения первой единицы кодирования, ограничивается, когда вторая единица кодирования удовлетворяет предварительно установленному условию, согласно варианту осуществления.
Фиг. 11 иллюстрирует процесс разбиения квадратной единицы кодирования, когда информация режима согласно форме разбиения не указывает разбиение в единицах по четыре квадратных единицы кодирования, согласно варианту осуществления.
Фиг. 12 иллюстрирует то, что порядок обработки между множеством единиц кодирования может изменяться в зависимости от процесса разбиения единицы кодирования, согласно варианту осуществления.
Фиг. 13 иллюстрирует процесс определения глубины единицы кодирования по мере того, как форма и размер единицы кодирования изменяются, когда единица кодирования рекурсивно разбивается таким образом, что множество единиц кодирования определяются, согласно варианту осуществления.
Фиг. 14 иллюстрирует глубины, которые являются определимыми на основе форм и размеров единиц кодирования и индексов частей (PID) для различения единиц кодирования, согласно варианту осуществления.
Фиг. 15 иллюстрирует то, что множество единиц кодирования определяются на основе множества предварительно установленных единиц данных, включенных в кадр, согласно варианту осуществления.
Фиг. 16 иллюстрирует единицы кодирования отдельных кадров, когда отдельные кадры имеют различные комбинации форм разбиения единиц кодирования, согласно варианту осуществления.
Фиг. 17 иллюстрирует различные формы единиц кодирования, которые могут определяться на основе информации режима согласно форме разбиения, которая выражается двоичным кодом, согласно варианту осуществления.
Фиг. 18 иллюстрирует другие формы единиц кодирования, которые могут определяться на основе информации режима согласно форме разбиения, которая выражается двоичным кодом, согласно варианту осуществления.
Фиг. 19 является блок-схемой системы кодирования и декодирования изображений.
Фиг. 20 является блок-схемой оборудования декодирования изображений согласно варианту осуществления.
Фиг. 21A иллюстрирует местоположения соседних блоков, когда левый блок относительно текущего блока доступен.
Фиг. 21B иллюстрирует местоположения соседних блоков, когда левый блок и правый блок относительно текущего блока доступны.
Фиг. 21C иллюстрирует местоположения соседних блоков, когда правый блок относительно текущего блока доступен.
Фиг. 22 является таблицей, показывающей взаимосвязь на основе совпадения между индексами разрешений векторов движения, разрешений векторов движения и местоположений соседних блоков.
Фиг. 23A иллюстрирует случай, в котором индекс опорного кадра первого соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, не является идентичным предварительно определенному значению.
Фиг. 23B иллюстрирует случай, в котором индекс опорного кадра первого соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, является идентичным предварительно определенному значению.
Фиг. 23C иллюстрирует случай, в котором, когда направление прогнозирования текущего блока представляет собой двойное направление, один из индекса опорного кадра первого соседнего блока в направлении списка 0 и индекса опорного кадра первого соседнего блока в направлении списка 1 является идентичным предварительно определенному значению, а другой не является идентичным предварительно определенному значению.
Фиг. 24 является блок-схемой последовательности операций способа декодирования вектора движения, согласно варианту осуществления.
Фиг. 25 является блок-схемой оборудования кодирования изображений согласно варианту осуществления.
Фиг. 26 является блок-схемой последовательности операций способа кодирования вектора движения, согласно варианту осуществления.
Фиг. 27 является видом для пояснения процесса получения прогнозного вектора движения, согласно варианту осуществления.
Фиг. 28 является видом для пояснения процесса получения прогнозного вектора движения, согласно варианту осуществления.
Оптимальный режим осуществления изобретения
Способ декодирования вектора движения, согласно варианту осуществления, включает в себя выбор первого соседнего блока из числа соседних блоков, смежных с текущим блоком, согласно информации, полученной из потока битов; когда первый соседний блок идентифицируется как доступный посредством использования информации, указывающей доступность первого соседнего блока, и вектор движения первого соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, не существует, получение прогнозного вектора движения текущего блока из вектора движения второго соседнего блока в предварительно определенном местоположении, причем второй соседний блок является смежным с текущим блоком; и получение вектора движения текущего блока посредством комбинирования прогнозного вектора движения текущего блока с дифференциальным вектором движения.
Когда индекс опорного кадра второго соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, равен -1, вектор движения первого соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, может не существовать.
Доступность первого соседнего блока может определяться согласно, по меньшей мере, одному из того, отличается или нет плитка (клетка), включающая в себя первый соседний блок, от плитки, включающей в себя текущий блок, того, расположен или нет первый соседний блок за пределами текущего кадра, того, спрогнозирован ли первый соседний блок посредством интра-прогнозирования или нет, и того, восстанавливается или нет первый соседний блок.
Получение вектора движения текущего блока может включать в себя, когда первый соседний блок идентифицируется как доступный посредством использования информации, указывающей доступность первого соседнего блока, и вектор движения первого соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, существует, получение прогнозного вектора движения текущего блока из вектора движения первого соседнего блока.
Информация, полученная из потока битов, может включать в себя информацию, указывающую разрешение векторов движения текущего блока из множества разрешений векторов движения, и множество разрешений векторов движения могут соотноситься с соседними блоками в различных местоположениях.
Местоположение второго соседнего блока может варьироваться согласно информации, указывающей доступности левого и правого соседних блоков относительно текущего блока.
Получение прогнозного вектора движения текущего блока может включать в себя, когда второй соседний блок идентифицируется как доступный посредством использования информации, указывающей доступность второго соседнего блока, и индекс опорного кадра второго соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, является идентичным индексу опорного кадра текущего блока, или вектор движения второго соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, существует, получение прогнозного вектора движения текущего блока из вектора движения второго соседнего блока.
Получение прогнозного вектора движения текущего блока может включать в себя, когда второй соседний блок идентифицируется как недоступный посредством использования информации, указывающей доступность второго соседнего блока, или вектор движения второго соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, не существует, получение прогнозного вектора движения текущего блока из вектора движения блока, декодированного перед текущим блоком.
Получение прогнозного вектора движения текущего блока может включать в себя, когда первый соседний блок идентифицируется как недоступный, получение прогнозного вектора движения текущего блока из вектора движения второго соседнего блока.
Оборудование декодирования изображений согласно варианту осуществления включает в себя модуль прогнозирования векторов движения, выполненный с возможностью выбирать первый соседний блок из числа соседних блоков, смежных с текущим блоком, согласно информации, полученной из потока битов, и когда первый соседний блок идентифицируется как доступный посредством использования информации, указывающей доступность первого соседнего блока, и вектор движения первого соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, не существует, получать прогнозный вектор движения текущего блока из вектора движения второго соседнего блока в предварительно определенном местоположении, причем второй соседний блок является смежным с текущим блоком; и модуль восстановления векторов движения, выполненный с возможностью получать вектор движения текущего блока посредством комбинирования прогнозного вектора движения текущего блока с дифференциальным вектором движения.
Способ кодирования вектора движения, согласно варианту осуществления, включает в себя, когда первый соседний блок, выбранный из числа соседних блоков, смежных с текущим блоком, идентифицируется как доступный, и вектор движения первого соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, не существует, получение прогнозного вектора движения текущего блока из вектора движения второго соседнего блока в предварительно определенном местоположении, причем второй соседний блок является смежным с текущим блоком; и формирование потока битов, включающего в себя дифференциальный вектор движения между вектором движения текущего блока и прогнозным вектором движения текущего блока и информацию для указания первого соседнего блока.
Режим согласно раскрытию
Поскольку раскрытие обеспечивает возможность различных изменений и множества вариантов осуществления, конкретные варианты осуществления проиллюстрированы на чертежах и подробно описываются в письменном описании. Тем не менее, нет намерения ограничивать раскрытие конкретными режимами практического применения, и следует принимать во внимание, что все изменения, эквиваленты и замены, которые не отступают от сущности и объема раскрытия, включаются в раскрытие.
В описании вариантов осуществления раскрытия, опускаются определенные подробные пояснения предшествующего уровня техники, когда считается, что они могут излишне затруднять понимание сути раскрытия. Хотя такие термины, как "первый", "второй" и т.д., могут использоваться для того, чтобы описывать различные компоненты, такие компоненты не должны быть ограничены вышеуказанными терминами. Вышеуказанные термины используются только для того, чтобы отличать один компонент от другого.
Когда элемент (например, первый элемент) "подключается" или "соединяется" с другим элементом (например, со вторым элементом), первый элемент может непосредственно подключаться к или соединяться со вторым элементом, либо, если не описано иное, третий элемент может существовать между ними.
Относительно компонента, представленного в качестве "части (единицы)" или "модуля", используемого в данном документе, два или более компонентов могут комбинироваться в один компонент, либо один компонент может разделяться на два или более компонентов согласно подразделенным функциям. Помимо этого, каждый компонент, описанный далее, дополнительно может выполнять часть или все функции, выполняемые посредством другого компонента, в дополнение к своим основным функциям, и некоторые основные функции каждого компонента могут выполняться полностью посредством другого компонента.
Кроме того, понятие "изображение" или "кадр", используемое в данном документе, может обозначать неподвижное изображение видео или движущийся кадр (видео).
Кроме того, понятие “дискретный отсчет” ("выборка") или "сигнал", используемое в данном документе, означает, в качестве данных, назначенных местоположению дискретизации изображения, данные, которые должны обрабатываться. Например, пиксельные значения для изображения пространственной области и коэффициенты преобразования для области преобразования могут представлять собой выборки. Единица, включающая в себя такие одну или более выборок, может задаваться как блок.
В дальнейшем в этом документе описываются способ и оборудование кодирования изображений и способ и оборудование декодирования изображений на основе единиц кодирования и единиц преобразования, имеющих древовидную структуру, согласно варианту осуществления, со ссылкой на фиг. 1-19.
Фиг. 1 является блок-схемой оборудования 100 декодирования изображений согласно варианту осуществления.
Оборудование 100 декодирования изображений может включать в себя модуль 110 получения потоков битов и декодер 120. Модуль 110 получения потоков битов и декодер 120 могут включать в себя, по меньшей мере, один процессор. Модуль 110 получения потоков битов и декодер 120 могут включать в себя запоминающее устройство, сохраняющее инструкции, которые должны выполняться, по меньшей мере, посредством одного процессора.
Модуль 110 получения потоков битов может принимать поток битов. Поток битов может включать в себя информацию, получающуюся в результате кодирования изображений посредством оборудования 200 кодирования изображений, которое описывается ниже. Поток битов может передаваться из оборудования 200 кодирования изображений. Оборудование 100 декодирования изображений может соединяться с оборудованием 200 кодирования изображений проводным или беспроводным способом, и модуль 110 получения потоков битов может принимать поток битов проводным или беспроводным способом. Модуль 110 получения потоков битов может принимать поток битов из носителя хранения данных, такого как оптические носители, жесткий диск и т.д. Декодер 120 может восстанавливать изображение, на основе информации, полученной из принимаемого потока битов. Декодер 120 может получать синтаксический элемент для восстановления изображения из потока битов. Декодер 120 может восстанавливать изображение, на основе синтаксического элемента.
При подробном описании работы оборудования 100 декодирования изображений, модуль 110 получения потоков битов может принимать поток битов.
Оборудование 100 декодирования изображений может выполнять операцию получения строки двоичных элементов, соответствующей режиму согласно форме разбиения единицы кодирования, из потока битов. Оборудование 100 декодирования изображений может выполнять операцию определения правила разбиения единицы кодирования. Оборудование 100 декодирования изображений может выполнять операцию разбиения единицы кодирования на множество единиц кодирования, на основе, по меньшей мере, одного из строки двоичных элементов, соответствующей режиму согласно форме разбиения, и правила разбиения. Оборудование 100 декодирования изображений может определять первый диапазон, который представляет собой допустимый диапазон размеров единицы кодирования, согласно отношению высоты к ширине единицы кодирования, чтобы определять правило разбиения. Оборудование 100 декодирования изображений может определять второй диапазон, который представляет собой допустимый диапазон размеров единицы кодирования, согласно режиму согласно форме разбиения единицы кодирования, чтобы определять правило разбиения.
В дальнейшем в этом документе подробно описывается разбиение единицы кодирования согласно варианту осуществления раскрытия.
Во-первых, один кадр может разбиваться на один или более срезов (слайсов) либо одну или более плиток. Один срез или одна плитка может представлять собой последовательность одной или более наибольших единиц кодирования (единиц дерева кодирования (CTU)). Согласно примеру реализации, один срез включает в себя одну или более плиток, либо один срез может включать в себя одну или более наибольших единиц кодирования. Срез, включающий в себя одну плитку или множество плиток, может определяться в кадре.
Имеется наибольший блок кодирования (блок дерева кодирования (CTB)) концептуально по сравнению с наибольшей единицей кодирования (CTU). Наибольший блок кодирования (CTB) обозначает блок NxN, включающий в себя NxN выборок (где N является целым числом). Каждый цветовой компонент может разбиваться на один или более наибольших блоков кодирования.
Когда кадр имеет три массива выборок (массивы выборок для Y-, Cr- и Cb-компонентов), наибольшая единица кодирования (CTU) включает в себя наибольший блок кодирования выборки яркости, два соответствующих наибольших блока кодирования выборок цветности и синтаксические структуры, используемые для того, чтобы кодировать выборку яркости и выборки цветности. Когда кадр представляет собой монохромный кадр, наибольшая единица кодирования включает в себя наибольший блок кодирования монохромной выборки и синтаксические структуры, используемые для того, чтобы кодировать монохромные выборки. Когда кадр представляет собой кадр, кодированный в цветовых плоскостях, разделяемых согласно цветовым компонентам, наибольшая единица кодирования включает в себя синтаксические структуры, используемые для того, чтобы кодировать выборки кадра.
Один наибольший блок кодирования (CTB) может разбиваться на MxN блоков кодирования, включающих в себя MxN выборок (M и N являются целыми числами).
Когда кадр имеет массивы выборок для Y-, Cr- и Cb-компонентов, единица кодирования (CU) включает в себя блок кодирования выборки яркости, два соответствующих блока кодирования выборок цветности и синтаксические структуры, используемые для того, чтобы кодировать выборку яркости и выборки цветности. Когда кадр представляет собой монохромный кадр, единица кодирования включает в себя блок кодирования монохромной выборки и синтаксические структуры, используемые для того, чтобы кодировать монохромные выборки. Когда кадр представляет собой кадр, кодированный в цветовых плоскостях, разделяемых согласно цветовым компонентам, единица кодирования включает в себя синтаксические структуры, используемые для того, чтобы кодировать выборки кадра.
Как описано выше, наибольший блок кодирования и наибольшая единица кодирования концептуально отличаются друг от друга, и блок кодирования и единица кодирования концептуально отличаются друг от друга. Другими словами, (наибольшая) единица кодирования означает структуру данных, включающую в себя (наибольший) блок кодирования, включающий в себя соответствующую выборку, и синтаксическую структуру, соответствующую (наибольшему) блоку кодирования. Тем не менее, поскольку специалисты в данной области техники должны понимать, что (наибольшая) единица кодирования или (наибольший) блок кодирования означает блок предварительно установленного размера, включающий в себя предварительно установленное число выборок, наибольший блок кодирования и наибольшая единица кодирования либо блок кодирования и единица кодирования упоминаются в нижеприведенном описании изобретения без различения, если не описано иное.
Изображение может разбиваться на наибольшие единицы кодирования (CTU). Размер каждой наибольшей единицы кодирования может определяться на основе информации, полученной из потока битов. Форма каждой наибольшей единицы кодирования может представлять собой квадратную форму идентичного размера. Тем не менее, варианты осуществления раскрытия не ограничены этим.
Например, информация относительно максимального размера блока кодирования яркости может получаться из потока битов. Например, максимальный размер блока кодирования яркости, указываемый посредством информации относительно максимального размера блока кодирования яркости, может составлять одно из 4×4, 8×8, 16×16, 32×32, 64×64, 128×128 и 256×256.
Например, информация относительно разности размеров блоков яркости и максимального размера блока кодирования яркости, который может разбиваться на два, может получаться из потока битов. Информация относительно разности размеров блоков яркости может означать разность размеров между наибольшей единицей кодирования яркости и наибольшим блоком кодирования яркости, который может разбиваться на два. Соответственно, когда информация относительно максимального размера блока кодирования яркости, который может разбиваться на два, и информация относительно разности размеров блоков яркости, полученная из потока битов, комбинируются друг с другом, размер наибольшей единицы кодирования яркости может определяться. Размер наибольшей единицы кодирования цветности может определяться посредством использования размера наибольшей единицы кодирования яркости. Например, когда Y:Cb:Cr-соотношение составляет 4:2:0 согласно цветовому формату, размер блока цветности может составлять половину от размера блока яркости, и размер наибольшей единицы кодирования цветности может составлять половину от размера наибольшей единицы кодирования яркости.
Согласно варианту осуществления, поскольку информация относительно максимального размера блока кодирования яркости, который является двоично разбиваемым, получается из потока битов, максимальный размер блока кодирования яркости, который является двоично разбиваемым, может переменно определяться. Напротив, максимальный размер блока кодирования яркости, который является троично разбиваемым, может быть фиксированным. Например, максимальный размер блока кодирования яркости, который является троично разбиваемым в I-кадре, может составлять 32×32, и максимальный размер блока кодирования яркости, который является троично разбиваемым в P-кадре или B-кадре, может составлять 64×64.
Наибольшая единица кодирования может иерархически разбиваться на единицы кодирования на основе информации режима согласно форме разбиения, полученной из потока битов. По меньшей мере одно из информации, указывающей то, выполняется или нет квадратическое разбиение, информации, указывающей то, выполняется или нет мультиразбиение, информации направления разбиения и информации типа разбиения может получаться в качестве информации режима согласно форме разбиения из потока битов.
Например, информация, указывающая то, выполняется или нет квадратическое разбиение, может указывать то, квадратически разбивается текущая единица кодирования (QUAD_SPLIT) или нет.
Когда текущая единица кодирования не разбивается квадратически, информация, указывающая то, выполняется или нет мультиразбиение, может указывать то, не разбивается ли более текущая единица кодирования (NO_SPLIT) либо двоично/троично разбивается.
Когда текущая единица кодирования двоично разбивается или троично разбивается, информация направления разбиения указывает то, что текущая единица кодирования разбивается в одном из горизонтального направления и вертикального направления.
Когда текущая единица кодирования разбивается в горизонтальном направлении или в вертикальном направлении, информация типа разбиения указывает то, что текущая единица кодирования двоично разбивается или троично разбивается.
Режим разбиения текущей единицы кодирования может определяться согласно информации направления разбиения и информации типа разбиения. Режим разбиения, когда текущая единица кодирования двоично разбивается в горизонтальном направлении, может определяться в качестве режима (SPLIT_BT_HOR) двоичного горизонтального разбиения, режим разбиения, когда текущая единица кодирования троично разбивается в горизонтальном направлении, может определяться в качестве режима (SPLIT_TT_HOR) троичного горизонтального разбиения, режим разбиения, когда текущая единица кодирования двоично разбивается в вертикальном направлении, может определяться в качестве режима (SPLIT_BT_VER) двоичного вертикального разбиения, и режим разбиения, когда текущая единица кодирования троично разбивается в вертикальном направлении, может определяться в качестве режима (SPLIT_TT_VER) троичного вертикального разбиения.
Оборудование 100 декодирования изображений может получать, из потока битов, информацию режима согласно форме разбиения из одной строки двоичных элементов (бинов). Форма потока битов, принимаемого посредством оборудования 100 декодирования изображений, может включать в себя двоичный код фиксированной длины, унарный код, усеченный унарный код, предварительно определенный двоичный код и т.п. Строка двоичных элементов представляет собой информацию в двоичном числе. Строка двоичных элементов может включать в себя по меньшей мере один бит. Оборудование 100 декодирования изображений может получать информацию режима согласно форме разбиения, соответствующую строке двоичных элементов, на основе правила разбиения. Оборудование 100 декодирования изображений может определять то, следует или нет квадратически разбивать единицу кодирования, то, следует или нет не разбивать единицу кодирования, направление разбиения и тип разбиения, на основе одной строки двоичных элементов.
Единица кодирования может быть меньше или идентичной наибольшей единице кодирования. Например, поскольку наибольшая единица кодирования представляет собой единицу кодирования, имеющую максимальный размер, наибольшая единица кодирования представляет собой одну из единиц кодирования. Когда информация режима согласно форме разбиения относительно наибольшей единицы кодирования указывает то, что разбиение не выполняется, единица кодирования, определенная в наибольшей единице кодирования, имеет размер, идентичный размеру наибольшей единицы кодирования. Когда информация режима согласно форме разбиения относительно наибольшей единицы кодирования указывает то, что разбиение выполняется, наибольшая единица кодирования может разбиваться на единицы кодирования. Кроме того, когда информация режима согласно форме разбиения относительно единицы кодирования указывает то, что разбиение выполняется, единица кодирования может разбиваться на меньшие единицы кодирования. Тем не менее, разбиение изображения не ограничено этим, и наибольшая единица кодирования и единица кодирования могут не отличаться. В дальнейшем подробно описывается разбиение единицы кодирования со ссылкой на фиг. 3-16.
Кроме того, один или более блоков прогнозирования для прогнозирования могут определяться из единицы кодирования. Блок прогнозирования может быть идентичным или меньшим единицы кодирования. Кроме того, один или более блоков преобразования для преобразования могут определяться из единицы кодирования. Блок преобразования может быть равным или меньше единицы кодирования.
Формы и размеры блока преобразования и блока прогнозирования могут не быть связаны друг с другом.
В другом варианте осуществления, прогнозирование может выполняться посредством использования единицы кодирования в качестве предиктора. Кроме того, преобразование может выполняться посредством использования единицы кодирования в качестве блока преобразования.
В дальнейшем подробно описывается разбиение единицы кодирования со ссылкой на фиг. 3-16. Текущий блок и соседний блок согласно настоящему раскрытию могут указывать одно из наибольшей единицы кодирования, единицы кодирования, блока прогнозирования и блока преобразования. Кроме того, текущий блок текущей единицы кодирования представляет собой блок, который в данный момент декодируется или кодируется, либо блок, который в данный момент разбивается. Соседний блок может представлять собой блок, восстановленный перед текущим блоком. Соседний блок может быть смежным с текущим блоком в пространственном или временном отношении. Соседний блок может быть расположен в одном из местоположений снизу слева, слева, сверху слева, сверху, сверху справа, справа, снизу справа относительно текущего блока.
Фиг. 3 иллюстрирует процесс, выполняемый посредством оборудования 100 декодирования изображений, для определения по меньшей мере одной единицы кодирования посредством разбиения текущей единицы кодирования, согласно варианту осуществления.
Форма блока может включать в себя 4Nx4N, 4Nx2N, 2Nx4N, 4NxN, Nx4N, 32NxN, Nx32N, 16NxN, Nx16N, 8NxN или Nx8N. Здесь, N может быть положительным целым числом. Информация формы блоков представляет собой информацию, указывающую, по меньшей мере, одно из формы, направления, отношения ширины и высоты или размера единицы кодирования.
Форма единицы кодирования может включать в себя квадратную и неквадратную. Когда длины ширины и высоты единицы кодирования являются идентичными (т.е. когда форма блока единицы кодирования представляет собой 4Nx4N), оборудование 100 декодирования изображений может определять информацию формы блоков единицы кодирования как квадратную. Оборудование 100 декодирования изображений может определять форму единицы кодирования как неквадратную.
Когда ширина и высота единицы кодирования отличаются друг от друга (т.е. когда форма блока единицы кодирования представляет собой 4Nx2N, 2Nx4N, 4NxN, Nx4N, 32NxN, Nx32N, 16NxN, Nx16N, 8NxN или Nx8N), оборудование 100 декодирования изображений может определять информацию формы блоков единицы кодирования в качестве неквадратной формы. Когда форма единицы кодирования является неквадратной, оборудование 100 декодирования изображений может определять отношение ширины и высоты из информации формы блоков единицы кодирования как составляющее, по меньшей мере, одно из 1:2, 2:1, 1:4, 4:1, 1:8, 8:1, 1:16, 16:1, 1:32 и 32:1. Кроме того, оборудование 100 декодирования изображений может определять то, протягивается единица кодирования в горизонтальном направлении или в вертикальном направлении, на основе длины ширины и длины высоты единицы кодирования. Кроме того, оборудование 100 декодирования изображений может определять размер единицы кодирования, на основе по меньшей мере одного из длины ширины, длины высоты или площади единицы кодирования.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять форму единицы кодирования посредством использования информации формы блоков и может определять способ разбиения единицы кодирования посредством использования информации режима согласно форме разбиения. Таким образом, способ разбиения единицы кодирования, указываемый посредством информации режима согласно форме разбиения, может определяться на основе формы блока, указываемой посредством информации формы блоков, используемой посредством оборудования 100 декодирования изображений.
Оборудование 100 декодирования изображений может получать информацию режима согласно форме разбиения из потока битов. Тем не менее, вариант осуществления не ограничен этим, и оборудование 100 декодирования изображений и оборудование 200 кодирования изображений могут определять предварительно согласованную информацию режима согласно форме разбиения, на основе информации формы блоков. Оборудование 100 декодирования изображений может определять предварительно согласованную информацию режима согласно форме разбиения относительно наибольшей единицы кодирования или минимальной единицы кодирования. Например, оборудование 100 декодирования изображений может определять информацию режима согласно форме разбиения относительно наибольшей единицы кодирования в качестве квадратического разбиения. Кроме того, оборудование 100 декодирования изображений может определять информацию режима согласно форме разбиения относительно наименьшей единицы кодирования в качестве "не выполнять разбиение". Подробно, оборудование 100 декодирования изображений может определять размер наибольшей единицы кодирования как составляющий 256×256. Оборудование 100 декодирования изображений может определять предварительно согласованную информацию режима согласно форме разбиения в качестве квадратического разбиения. Квадратическое разбиение представляет собой режим согласно форме разбиения, в котором ширина и высота единицы кодирования делятся пополам. Оборудование 100 декодирования изображений может получать единицу кодирования размера 128×128 из наибольшей единицы кодирования размера 256×256, на основе информации режима согласно форме разбиения. Кроме того, оборудование 100 декодирования изображений может определять размер наименьшей единицы кодирования как составляющий 4×4. Оборудование 100 декодирования изображений может получать информацию режима согласно форме разбиения, указывающую "не выполнять разбиение" относительно наименьшей единицы кодирования.
Согласно варианту осуществления, оборудование 100 декодирования изображений может использовать информацию формы блоков, указывающую то, что текущая единица кодирования имеет квадратную форму. Например, оборудование 100 декодирования изображений может определять то, следует или нет не разбивать квадратную единицу кодирования, то, следует или нет вертикально разбивать квадратную единицу кодирования, то, следует или нет горизонтально разбивать квадратную единицу кодирования, либо то, следует или нет разбивать квадратную единицу кодирования на четыре единицы кодирования, на основе информации режима согласно форме разбиения. Ссылаясь на фиг. 3, когда информация формы блоков текущей единицы 300 кодирования указывает квадратную форму, декодер 120 может не разбивать единицу 310a кодирования, имеющую размер, идентичный размеру текущей единицы 300 кодирования, на основе информации режима согласно форме разбиения, указывающей необходимость не выполнять разбиение, или может определять единицы 310b, 310c, 310d, 310e или 310f кодирования, разбитые на основе информации режима согласно форме разбиения, указывающей предварительно установленный способ разбиения.
Ссылаясь на фиг. 3, согласно варианту осуществления, оборудование 100 декодирования изображений может определять две единицы 310b кодирования, полученные посредством разбиения текущей единицы 300 кодирования в вертикальном направлении, на основе информации режима согласно форме разбиения, указывающей необходимость выполнять разбиение в вертикальном направлении. Оборудование 100 декодирования изображений может определять две единицы 310c кодирования, полученные посредством разбиения текущей единицы 300 кодирования в горизонтальном направлении, на основе информации режима согласно форме разбиения, указывающей необходимость выполнять разбиение в горизонтальном направлении. Оборудование 100 декодирования изображений может определять четыре единицы 310d кодирования, полученные посредством разбиения текущей единицы 300 кодирования в вертикальном и горизонтальном направлениях, на основе информации формы разбиения, указывающей необходимость выполнять разбиение в вертикальном и горизонтальном направлениях. Согласно варианту осуществления, оборудование 100 декодирования изображений может определять три единицы 310e кодирования, полученные посредством разбиения текущей единицы 300 кодирования в вертикальном направлении, на основе информации режима согласно форме разбиения, указывающей необходимость выполнять троичное разбиение в вертикальном направлении. Оборудование 100 декодирования изображений может определять три единицы 310f кодирования, полученные посредством разбиения текущей единицы 300 кодирования в горизонтальном направлении, на основе информации режима согласно форме разбиения, указывающей необходимость выполнять троичное разбиение в горизонтальном направлении. Тем не менее, способы разбиения квадратной единицы кодирования не ограничены вышеописанными способами, и информация режима согласно форме разбиения может указывать различные способы. Ниже подробно описываются предварительно установленные способы разбиения для разбиения квадратной единицы кодирования относительно различных вариантов осуществления.
Фиг. 4 иллюстрирует процесс, выполняемый посредством оборудования 100 декодирования изображений, для определения по меньшей мере одной единицы кодирования посредством разбиения неквадратной единицы кодирования, согласно варианту осуществления.
Согласно варианту осуществления, оборудование 100 декодирования изображений может использовать информацию формы блоков, указывающую то, что текущая единица кодирования имеет неквадратную форму. Оборудование 100 декодирования изображений может определять то, следует или нет не разбивать неквадратную текущую единицу кодирования, либо то, следует или нет разбивать неквадратную текущую единицу кодирования посредством использования предварительно установленного способа разбиения, на основе информации режима согласно форме разбиения. Ссылаясь на фиг. 4, когда информация формы блоков текущей единицы 400 или 450 кодирования указывает неквадратную форму, оборудование 100 декодирования изображений может определять единицу 410 или 460 кодирования, имеющую размер, идентичный размеру текущей единицы 400 или 450 кодирования, на основе информации режима согласно форме разбиения, указывающей необходимость не выполнять разбиение, или может определять единицы 420a и 420b, 430a-430c, 470a и 470b или 480a-480c кодирования, разбитые на основе информации режима согласно форме разбиения, указывающей предварительно установленный способ разбиения. Ниже подробно описываются предварительно установленные способы разбиения для разбиения неквадратной единицы кодирования относительно различных вариантов осуществления.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять способ разбиения единицы кодирования посредством использования информации режима согласно форме разбиения, и, в этом случае, информация режима согласно форме разбиения может указывать число одной или более единиц кодирования, сформированных посредством разбиения единицы кодирования. Ссылаясь на фиг. 4, когда информация режима согласно форме разбиения указывает необходимость разбивать текущую единицу 400 или 450 кодирования на две единицы кодирования, оборудование 100 декодирования изображений может определять две единицы 420a и 420b или 470a и 470b кодирования, включенные в текущую единицу 400 или 450 кодирования посредством разбиения текущей единицы 400 или 450 кодирования на основе информации режима согласно форме разбиения.
Согласно варианту осуществления, когда оборудование 100 декодирования изображений разбивает неквадратную текущую единицу 400 или 450 кодирования на основе информации режима согласно форме разбиения, оборудование 100 декодирования изображений может учитывать местоположение длинной стороны неквадратной текущей единицы 400 или 450 кодирования для того, чтобы разбивать текущую единицу кодирования. Например, оборудование 100 декодирования изображений может определять множество единиц кодирования посредством разбиения текущей единицы 400 или 450 кодирования в направлении разбиения длинной стороны текущей единицы 400 или 450 кодирования, с учетом формы текущей единицы 400 или 450 кодирования.
Согласно варианту осуществления, когда информация режима согласно форме разбиения указывает необходимость разбивать (троично разбивать) единицу кодирования на нечетное число блоков, оборудование 100 декодирования изображений может определять нечетное число единиц кодирования, включенных в текущую единицу 400 или 450 кодирования. Например, когда информация режима согласно форме разбиения указывает необходимость разбивать текущую единицу 400 или 450 кодирования на три единицы кодирования, оборудование 100 декодирования изображений может разбивать текущую единицу 400 или 450 кодирования на три единицы 430a, 430b и 430c или 480a, 480b и 480c кодирования.
Согласно варианту осуществления, отношение ширины и высоты текущей единицы 400 или 450 кодирования может составлять 4:1 или 1:4. Когда отношение ширины и высоты составляет 4:1, информация формы блоков может указывать горизонтальное направление, поскольку длина ширины превышает длину высоты. Когда отношение ширины и высоты составляет 1:4, информация формы блоков может указывать вертикальное направление, поскольку длина ширины меньше длины высоты. Оборудование 100 декодирования изображений может определять необходимость разбивать текущую единицу кодирования на нечетное число блоков, на основе информации режима согласно форме разбиения. Кроме того, оборудование 100 декодирования изображений может определять направление разбиения текущей единицы 400 или 450 кодирования, на основе информации формы блоков текущей единицы 400 или 450 кодирования. Например, когда текущая единица 400 кодирования протягивается в вертикальном направлении, оборудование 100 декодирования изображений может определять единицы 430a, 430b и 430c кодирования посредством разбиения текущей единицы 400 кодирования в горизонтальном направлении. Кроме того, когда текущая единица 450 кодирования находится в горизонтальном направлении, оборудование 100 декодирования изображений может определять единицы 480a, 480b и 480c кодирования посредством разбиения текущей единицы 450 кодирования в вертикальном направлении.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять нечетное число единиц кодирования, включенных в текущую единицу 400 или 450 кодирования, и не все определенные единицы кодирования могут иметь идентичный размер. Например, предварительно установленная единица 430b или 480b кодирования из числа определенного нечетного числа единиц 430a, 430b и 430c или 480a, 480b и 480c кодирования может иметь размер, отличающийся от размера других единиц 430a и 430c или 480a и 480c кодирования. Таким образом, единицы кодирования, которые могут определяться посредством разбиения текущей единицы 400 или 450 кодирования, могут иметь несколько размеров, и, в некоторых случаях, все из нечетного числа единиц 430a, 430b и 430c или 480a, 480b и 480c кодирования могут иметь различные размеры.
Согласно варианту осуществления, когда информация режима согласно форме разбиения указывает необходимость разбивать единицу кодирования на нечетное число блоков, оборудование 100 декодирования изображений может определять нечетное число единиц кодирования, включенных в текущую единицу 400 или 450 кодирования, и кроме того, может налагать предварительно установленное ограничение, по меньшей мере, на одну единицу кодирования из нечетного числа единиц кодирования, сформированных посредством разбиения текущей единицы 400 или 450 кодирования. Ссылаясь на фиг. 4, оборудование 100 декодирования изображений может задавать процесс декодирования относительно единицы 430b или 480b кодирования, расположенной в центре из трех единиц 430a, 430b и 430c или 480a, 480b и 480c кодирования, сформированных по мере того, как текущая единица 400 или 450 разбивается таким образом, что она отличается от других единиц 430a и 430c или 480a и 480c кодирования. Например, оборудование 100 декодирования изображений может ограничивать единицу 430b или 480b кодирования в центральном местоположении таким образом, что она более не разбивается или разбивается только предварительно установленное число раз, в отличие от других единиц 430a и 430c или 480a и 480c кодирования.
Фиг. 5 иллюстрирует процесс, выполняемый посредством оборудования 100 декодирования изображений, для разбиения единицы кодирования на основе, по меньшей мере, одного из информации формы блоков и информации режима согласно форме разбиения, согласно варианту осуществления.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять необходимость разбивать или не разбивать квадратную первую единицу 500 кодирования на единицы кодирования, на основе, по меньшей мере, одного из информации формы блоков и информации режима согласно форме разбиения. Согласно варианту осуществления, когда информация режима согласно форме разбиения указывает необходимость разбивать первую единицу 500 кодирования в горизонтальном направлении, оборудование 100 декодирования изображений может определять вторую единицу 510 кодирования посредством разбиения первой единицы 500 кодирования в горизонтальном направлении. Первая единица кодирования, вторая единица кодирования и третья единица кодирования, используемые согласно варианту осуществления, представляют собой термины, используемые для того, чтобы понимать взаимосвязь до и после разбиения единицы кодирования. Например, вторая единица кодирования может определяться посредством разбиения первой единицы кодирования, и третья единица кодирования может определяться посредством разбиения второй единицы кодирования. Следует понимать, что взаимосвязь первой единицы кодирования, второй единицы кодирования и третьей единицы кодирования соответствует вышеприведенным описаниям.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять необходимость разбивать или не разбивать определенную вторую единицу 510 кодирования на единицы кодирования, на основе информации режима согласно форме разбиения. Ссылаясь на фиг. 5, оборудование 100 декодирования изображений может разбивать неквадратную вторую единицу 510 кодирования, которая определяется посредством разбиения первой единицы 500 кодирования, на одну или более третьих единиц 520a, 520b, 520c и 520d кодирования на основе, по меньшей мере, одной из информации режима согласно форме разбиения и информации режима согласно форме разбиения, либо может не разбивать неквадратную вторую единицу 510 кодирования. Оборудование 100 декодирования изображений может получать информацию режима согласно форме разбиения и может получать множество вторых единиц кодирования различной формы (например, 510) посредством разбиения первой единицы 500 кодирования, на основе полученной информации режима согласно форме разбиения, и вторая единица 510 кодирования может разбиваться посредством использования способа разбиения первой единицы 500 кодирования на основе информации режима согласно форме разбиения. Согласно варианту осуществления, когда первая единица 500 кодирования разбивается на вторые единицы 510 кодирования на основе информации режима согласно форме разбиения первой единицы 500 кодирования, вторая единица 510 кодирования также может разбиваться на третьи единицы кодирования (например, 520a или 520b, 520c и 520d) на основе информации режима согласно форме разбиения второй единицы 510 кодирования. Таким образом, единица кодирования может рекурсивно разбиваться на основе информации режима согласно форме разбиения каждой единицы кодирования. Следовательно, квадратная единица кодирования может определяться посредством разбиения неквадратной единицы кодирования, и неквадратная единица кодирования может определяться посредством рекурсивного разбиения квадратной единицы кодирования.
Ссылаясь на фиг. 5, предварительно установленная единица кодирования (например, единица кодирования, расположенная в центральном местоположении, или квадратная единица кодирования) из числа нечетного числа третьих единиц 520b, 520c и 520d кодирования, определенных посредством разбиения неквадратной второй единицы 510 кодирования, может рекурсивно разбиваться. Согласно варианту осуществления, неквадратная третья единица 520b кодирования из нечетного числа третьих единиц 520b, 520c и 520d кодирования может разбиваться в горизонтальном направлении на множество четвертых единиц кодирования. Неквадратная четвертая единица 530b или 530d кодирования из множества четвертых единиц 530a, 530b, 530c и 530d кодирования может повторно разбиваться на множество единиц кодирования. Например, неквадратная четвертая единица 530b или 530d кодирования может повторно разбиваться на нечетное число единиц кодирования. Ниже описывается способ, который может использоваться для того, чтобы рекурсивно разбивать единицу кодирования, относительно различных вариантов осуществления.
Согласно варианту осуществления, оборудование 100 декодирования изображений может разбивать каждую из третьих единиц 520a или 520b, 520c и 520d кодирования на единицы кодирования, на основе информации режима согласно форме разбиения. Кроме того, оборудование 100 декодирования изображений может определять необходимость не разбивать вторую единицу 510 кодирования на основе информации режима согласно форме разбиения. Согласно варианту осуществления, оборудование 100 декодирования изображений может разбивать неквадратную вторую единицу 510 кодирования на нечетное число третьих единиц 520b, 520c и 520d кодирования. Оборудование 100 декодирования изображений может задавать предварительно установленное ограничение на предварительно установленную третью единицу кодирования из нечетного числа третьих единиц 520b, 520c и 520d кодирования. Например, оборудование 100 декодирования изображений может ограничивать третью единицу 520c кодирования в центральном местоположении из нечетного числа третьих единиц 520b, 520c и 520d кодирования таким образом, что она более не разбивается или разбивается задаваемое число раз.
Ссылаясь на фиг. 5, оборудование 100 декодирования изображений может ограничивать третью единицу 520c кодирования, которая находится в центральном местоположении из нечетного числа третьих единиц 520b, 520c и 520d кодирования, включенных в неквадратную вторую единицу 510 кодирования, так что что она более не разбивается, разбивается посредством использования предварительно установленного способа разбиения (например, разбивается только на четыре единицы кодирования либо разбивается посредством использования способа разбиения второй единицы 510 кодирования) или разбивается только предварительно установленного число раз (например, разбивается только n раз (где n>0)). Тем не менее, ограничения на третью единицу 520c кодирования в центральном местоположении не ограничены вышеописанными примерами и могут включать в себя различные ограничения для декодирования третьей единицы 520c кодирования в центральном местоположении по-другому по сравнению с другими третьими единицами 520b и 520d кодирования.
Согласно варианту осуществления, оборудование 100 декодирования изображений может получать информацию режима согласно форме разбиения, которая используется для того, чтобы разбивать текущую единицу кодирования, из предварительно установленного местоположения в текущей единице кодирования.
Фиг. 6 иллюстрирует способ, осуществляемый посредством оборудования 100 декодирования изображений, для определения предварительно установленной единицы кодирования из нечетного числа единиц кодирования, согласно варианту осуществления.
Ссылаясь на фиг. 6, информация режима согласно форме разбиения текущей единицы 600 или 650 кодирования может получаться из выборки предварительно установленного местоположения (например, из выборки 640 или 690 центрального местоположения) из множества выборок, включенных в текущую единицу 600 или 650 кодирования. Тем не менее, предварительно установленное местоположение в текущей единице 600 кодирования, из которой может получаться, по меньшей мере, один фрагмент информации режима согласно форме разбиения, не ограничено центральным местоположением на фиг. 6 и может включать в себя различные местоположения, включенные в текущую единицу 600 кодирования (например, верхнее, нижнее, левое, правое, верхнее левое, нижнее левое, верхнее правое, нижнее правое местоположения и т.п.). Оборудование 100 декодирования изображений может получать информацию режима согласно форме разбиения из предварительно установленного местоположения и может определять необходимость разбивать или не разбивать текущую единицу кодирования на единицы кодирования различной формы и различного размера.
Согласно варианту осуществления, когда текущая единица кодирования разбивается на предварительно установленное число единиц кодирования, оборудование 100 декодирования изображений может выбирать одну из единиц кодирования. Различные способы могут использоваться для того, чтобы выбирать одну из множества единиц кодирования, как описано ниже относительно различных вариантов осуществления.
Согласно варианту осуществления, оборудование 100 декодирования изображений может разбивать текущую единицу кодирования на множество единиц кодирования и может определять единицу кодирования в предварительно установленном местоположении.
Согласно варианту осуществления, оборудование 100 декодирования изображений может использовать информацию, указывающую местоположения нечетного числа единиц кодирования, чтобы определять единицу кодирования в центральном местоположении из нечетного числа единиц кодирования. Ссылаясь на фиг. 6, оборудование 100 декодирования изображений может определять нечетное число единиц 620a, 620b и 620c кодирования или нечетное число единиц 660a, 660b и 660c кодирования посредством разбиения текущей единицы 600 кодирования или текущей единицы 650 кодирования. Оборудование 100 декодирования изображений может определять среднюю единицу 620b кодирования или среднюю единицу 660b кодирования посредством использования информации относительно местоположений нечетного числа единиц 620a, 620b и 620c кодирования или нечетного числа единиц 660a, 660b и 660c кодирования. Например, оборудование 100 декодирования изображений может определять единицу 620b кодирования центрального местоположения посредством определения местоположений единиц 620a, 620b и 620c кодирования на основе информации, указывающей местоположения предварительно установленных выборок, включенных в единицы 620a, 620b и 620c кодирования. Подробно, оборудование 100 декодирования изображений может определять единицу 620b кодирования в центральном местоположении посредством определения местоположений единиц 620a, 620b и 620c кодирования на основе информации, указывающей местоположения верхних левых выборок 630a, 630b и 630c единиц 620a, 620b и 620c кодирования.
Согласно варианту осуществления, информация, указывающая местоположения верхних левых выборок 630a, 630b и 630c, которые включаются в единицы 620a, 620b и 620c кодирования, соответственно, может включать в себя информацию относительно местоположений или координат единиц 620a, 620b и 620c кодирования в кадре. Согласно варианту осуществления, информация, указывающая местоположения верхних левых выборок 630a, 630b и 630c, которые включаются в единицы 620a, 620b и 620c кодирования, соответственно, может включать в себя информацию, указывающую ширины или высоты единиц 620a, 620b и 620c кодирования, включенных в текущую единицу 600 кодирования, и ширины или высоты могут соответствовать информации, указывающей разности между координатами единиц 620a, 620b и 620c кодирования в кадре. Таким образом, оборудование 100 декодирования изображений может определять единицу 620b кодирования в центральном местоположении за счет непосредственного использования информации относительно местоположений или координат единиц 620a, 620b и 620c кодирования в кадре либо за счет использования информации относительно ширин или высот единиц кодирования, которые соответствуют разностным значениям между координатами.
Согласно варианту осуществления, информация, указывающая местоположение верхней левой выборки 630a верхней единицы 620a кодирования, может включать в себя координаты (xa, ya), информация, указывающая местоположение верхней левой выборки 630b центральной единицы 620b кодирования, может включать в себя координаты (xb, yb), и информация, указывающая местоположение верхней левой выборки 630c нижней единицы 620c кодирования, может включать в себя координаты (xc, yc). Оборудование 100 декодирования изображений может определять среднюю единицу 620b кодирования посредством использования координат верхних левых выборок 630a, 630b и 630c, которые включаются в единицы 620a, 620b и 620c кодирования, соответственно. Например, когда координаты верхних левых выборок 630a, 630b и 630c сортируются в порядке по возрастанию или убыванию, единица 620b кодирования, включающая в себя координаты (xb, yb) выборки 630b в центральном местоположении, может определяться в качестве единицы кодирования в центральном местоположении из числа единиц 620a, 620b и 620c кодирования, определенных посредством разбиения текущей единицы 600 кодирования. Тем не менее, координаты, указывающие местоположения верхних левых выборок 630a, 630b и 630c, могут включать в себя координаты, указывающие абсолютные местоположения в кадре, или могут использовать координаты (dxb, dyb), указывающие относительное местоположение верхней левой выборки 630b средней единицы 620b кодирования, и координаты (dxc, dyc), указывающие относительное местоположение верхней левой выборки 630c нижней единицы 620c кодирования со ссылкой на местоположение верхней левой выборки 630a верхней единицы 620a кодирования. Способ определения единицы кодирования в предварительно установленном местоположении посредством использования координат выборки, включенной в единицу кодирования, в качестве информации, указывающей местоположение выборки, не ограничен вышеописанным способом и может включать в себя различные арифметические способы, допускающие использование координат выборки.
Согласно варианту осуществления, оборудование 100 декодирования изображений может разбивать текущую единицу 600 кодирования на множество единиц 620a, 620b и 620c кодирования и может выбирать одну из единиц 620a, 620b и 620c кодирования на основе предварительно установленного критерия. Например, оборудование 100 декодирования изображений может выбирать единицу 620b кодирования, которая имеет размер, отличающийся от размера других, из числа единиц 620a, 620b и 620c кодирования.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять ширину или высоту каждой из единиц 620a, 620b и 620c кодирования посредством использования координат (xa, ya), которые представляют собой информацию, указывающую местоположение верхней левой выборки 630a верхней единицы 620a кодирования, координат (xb, yb), которые представляют собой информацию, указывающую местоположение верхней левой выборки 630b средней единицы 620b кодирования, и координат (xc, yc), которые представляют собой информацию, указывающую местоположение верхней левой выборки 630c нижней единицы 620c кодирования. Оборудование 100 декодирования изображений может определять соответствующие размеры единиц 620a, 620b и 620c кодирования посредством использования координат (xa, ya), (xb, yb) и (xc, yc), указывающих местоположения единиц 620a, 620b и 620c кодирования. Согласно варианту осуществления, оборудование 100 декодирования изображений может определять ширину верхней единицы 620a кодирования как представляющую собой ширину текущей единицы 600 кодирования. Оборудование 100 декодирования изображений может определять высоту верхней единицы 620a кодирования как составляющую yb-ya. Согласно варианту осуществления, оборудование 100 декодирования изображений может определять ширину средней единицы 620b кодирования как представляющую собой ширину текущей единицы 600 кодирования. Оборудование 100 декодирования изображений может определять высоту средней единицы 620b кодирования как составляющую yc-yb. Согласно варианту осуществления, оборудование 100 декодирования изображений может определять ширину или высоту нижней единицы 620c кодирования посредством использования ширины или высоты текущей единицы 600 кодирования либо ширин или высот верхней и средней единиц 620a и 620b кодирования. Оборудование 100 декодирования изображений может определять единицу кодирования, которая имеет размер, отличающийся от размера других, на основе определенных ширин и высот единиц 620a, 620b и 620c кодирования. Ссылаясь на фиг. 6, оборудование 100 декодирования изображений может определять среднюю единицу 620b кодирования, которая имеет размер, отличающийся от размера верхней и нижней единиц 620a и 620c кодирования, в качестве единицы кодирования предварительно установленного местоположения. Тем не менее, вышеописанный способ, осуществляемый посредством оборудования 100 декодирования изображений, для определения единицы кодирования, имеющей размер, отличающийся от размера других единиц кодирования, просто соответствует примеру определения единицы кодирования в предварительно установленном местоположении посредством использования размеров единиц кодирования, которые определяются на основе координат выборок, и в силу этого могут использоваться различные способы определения единицы кодирования в предварительно установленном местоположении посредством сравнения размеров единиц кодирования, которые определяются на основе координат предварительно установленных выборок.
Оборудование 100 декодирования изображений может определять ширину или высоту каждой из единиц 660a, 660b и 660c кодирования посредством использования координат (xd, yd), которые представляют собой информацию, указывающую местоположение верхней левой выборки 670a левой единицы 660a кодирования, координат (xe, ye), которые представляют собой информацию, указывающую местоположение верхней левой выборки 670b средней единицы 660b кодирования, и координат (xf, yf), которые представляют собой информацию, указывающую местоположение верхней левой выборки 670c правой единицы 660c кодирования. Оборудование 100 декодирования изображений может определять соответствующие размеры единиц 660a, 660b и 660c кодирования посредством использования координат (xd, yd), (xe, ye) и (xf, yf), указывающих местоположения единиц 660a, 660b и 660c кодирования.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять ширину левой единицы 660a кодирования как составляющую xe-xd. Оборудование 100 декодирования изображений может определять высоту левой единицы 660a кодирования в качестве высоты текущей единицы 650 кодирования. Согласно варианту осуществления, оборудование 100 декодирования изображений может определять ширину средней единицы 660b кодирования как составляющую xf-xe. Оборудование 100 декодирования изображений может определять высоту средней единицы 660b кодирования в качестве высоты текущей единицы 650 кодирования. Согласно варианту осуществления, оборудование 100 декодирования изображений может определять ширину или высоту правой единицы 660c кодирования посредством использования ширины или высоты текущей единицы 650 кодирования либо ширин или высот левой и средней единиц 660a и 660b кодирования. Оборудование 100 декодирования изображений может определять единицу кодирования, которая имеет размер, отличающийся от размера других, на основе определенных ширин и высот единиц 660a, 660b и 660c кодирования. Ссылаясь на фиг. 6, оборудование 100 декодирования изображений может определять среднюю единицу 660b кодирования, которая имеет размер, отличающийся от размеров левой и правой единиц 660a и 660c кодирования, в качестве единицы кодирования предварительно установленного местоположения. Тем не менее, вышеописанный способ, осуществляемый посредством оборудования 100 декодирования изображений, для определения единицы кодирования, имеющей размер, отличающийся от размера других единиц кодирования, просто соответствует примеру определения единицы кодирования в предварительно установленном местоположении посредством использования размеров единиц кодирования, которые определяются на основе координат выборок, и в силу этого могут использоваться различные способы определения единицы кодирования в предварительно установленном местоположении посредством сравнения размеров единиц кодирования, которые определяются на основе координат предварительно установленных выборок.
Тем не менее, местоположения выборок, учитываемые для того, чтобы определять местоположения единиц кодирования, не ограничены вышеописанными верхними левыми местоположениями, и может использоваться информация относительно произвольных местоположений выборок, включенных в единицы кодирования.
Согласно варианту осуществления, оборудование 100 декодирования изображений может выбирать единицу кодирования в предварительно установленном местоположении из нечетного числа единиц кодирования, определенных посредством разбиения текущей единицы кодирования, с учетом формы текущей единицы кодирования. Например, когда текущая единица кодирования имеет неквадратную форму, ширина которой превышает высоту, оборудование 100 декодирования изображений может определять единицу кодирования в предварительно установленном местоположении в горизонтальном направлении. Таким образом, оборудование 100 декодирования изображений может определять одну из единиц кодирования в различных местоположениях в горизонтальном направлении и может налагать ограничение на единицу кодирования. Когда текущая единица кодирования имеет неквадратную форму, высота которой превышает ширину, оборудование 100 декодирования изображений может определять единицу кодирования в предварительно установленном местоположении в вертикальном направлении. Таким образом, оборудование 100 декодирования изображений может определять одну из единиц кодирования в различные местоположениях в горизонтальном направлении и может налагать ограничение на единицу кодирования.
Согласно варианту осуществления, оборудование 100 декодирования изображений может использовать информацию, указывающую соответствующие местоположения четного числа единиц кодирования, чтобы определять единицу кодирования в предварительно установленном местоположении из четного числа единиц кодирования. Оборудование 100 декодирования изображений может определять четное число единиц кодирования посредством разбиения (двоичного разбиения) текущей единицы кодирования и может определять единицу кодирования в предварительно установленном местоположении посредством использования информации относительно местоположений четного числа единиц кодирования. Операция в связи с этим может соответствовать операции определения единицы кодирования в предварительно установленном местоположении (например, в центральном местоположении) из нечетного числа единиц кодирования, которая описывается подробно выше относительно фиг. 6, и в силу этого подробные описания означенного не предоставляются здесь.
Согласно варианту осуществления, когда неквадратная текущая единица кодирования разбивается на множество единиц кодирования, предварительно установленная информация относительно единицы кодирования в предварительно установленном местоположении может использоваться при операции разбиения для того, чтобы определять единицу кодирования в предварительно установленном местоположении из множества единиц кодирования. Например, оборудование 100 декодирования изображений может использовать, по меньшей мере, одно из информации формы блоков и информации режима согласно форме разбиения, которая сохраняется в выборке, включенной в среднюю единицу кодирования, при операции разбиения для того, чтобы определять единицу кодирования в центральном местоположении из множества единиц кодирования, определенных посредством разбиения текущей единицы кодирования.
Ссылаясь на фиг. 6, оборудование 100 декодирования изображений может разбивать текущую единицу 600 кодирования на множество единиц 620a, 620b и 620c кодирования на основе информации режима согласно форме разбиения и может определять единицу 620b кодирования в центральном местоположении из множества единиц 620a, 620b и 620c кодирования. Кроме того, оборудование 100 декодирования изображений может определять единицу 620b кодирования в центральном местоположении, с учетом местоположения, из которого получается информация режима согласно форме разбиения. Таким образом, информация режима согласно форме разбиения текущей единицы 600 кодирования может получаться из выборки 640 в центральном местоположении текущей единицы 600 кодирования, и когда текущая единица 600 кодирования разбивается на множество единиц 620a, 620b и 620c кодирования на основе информации режима согласно форме разбиения, единица 620b кодирования, включающая в себя выборку 640, может определяться в качестве единицы кодирования в центральном местоположении. Тем не менее, информация, используемая для того, чтобы определять единицу кодирования в центральном местоположении, не ограничена информацией режима согласно форме разбиения, и различные типы информации могут использоваться для того, чтобы определять единицу кодирования в центральном местоположении.
Согласно варианту осуществления, предварительно установленная информация для идентификации единицы кодирования в предварительно установленном местоположении может получаться из предварительно установленной выборки, включенной в единицу кодирования, которая должна определяться. Ссылаясь на фиг. 6, оборудование 100 декодирования изображений может использовать информацию режима согласно форме разбиения, которая получается из выборки в предварительно установленном местоположении в текущей единице 600 кодирования (например, из выборки в центральном местоположении текущей единицы 600 кодирования), с этим чтобы определять единицу кодирования в предварительно установленном местоположении из множества единиц 620a, 620b и 620c кодирования, определенных посредством разбиения текущей единицы 600 кодирования (например, единицы кодирования в центральном местоположении из множества разбитых единиц кодирования). Таким образом, оборудование 100 декодирования изображений может определять выборку в предварительно установленном местоположении с учетом формы блока текущей единицы 600 кодирования, может определять единицу 620b кодирования, включающую в себя выборку, из которой может получаться предварительно установленная информация (например, информация режима согласно форме разбиения), из множества единиц 620a, 620b и 620c кодирования, определенных посредством разбиения текущей единицы 600 кодирования, и может налагать предварительно установленное ограничение на единицу 620b кодирования. Ссылаясь на фиг. 6, согласно варианту осуществления, оборудование 100 декодирования изображений может определять выборку 640 в центральном местоположении текущей единицы 600 кодирования в качестве выборки, из которой может получаться предварительно установленная информация, и может налагать предварительно установленное ограничение на единицу 620b кодирования, включающую в себя выборку 640, в операции декодирования. Тем не менее, местоположение выборки, из которой может получаться предварительно установленная информация, не ограничено вышеописанным местоположением и может включать в себя произвольные местоположения выборок, включенных в единицу 620b кодирования, которая должна определяться, для ограничения.
Согласно варианту осуществления, местоположение выборки, из которой может получаться предварительно установленная информация, может определяться на основе формы текущей единицы 600 кодирования. Согласно варианту осуществления, информация формы блоков может указывать то, имеет текущая единица кодирования квадратную или неквадратную форму, и местоположение выборки, из которой может получаться предварительно установленная информация, может определяться на основе формы. Например, оборудование 100 декодирования изображений может определять выборку, расположенную на границе для разбиения, по меньшей мере, одного из ширины и высоты текущей единицы кодирования наполовину, в качестве выборки, из которой может получаться предварительно установленная информация, посредством использования, по меньшей мере, одного из информации относительно ширины текущей единицы кодирования и информации относительно высоты текущей единицы кодирования. В качестве другого примера, когда информация формы блоков текущей единицы кодирования указывает неквадратную форму, оборудование 100 декодирования изображений может определять одну из выборок, смежных с границей для разбиения длинной стороны текущей единицы кодирования наполовину, в качестве выборки, из которой может получаться предварительно установленная информация.
Согласно варианту осуществления, когда текущая единица кодирования разбивается на множество единиц кодирования, оборудование 100 декодирования изображений может использовать информацию режима согласно форме разбиения для того, чтобы определять единицу кодирования в предварительно установленном местоположении из множества единиц кодирования. Согласно варианту осуществления, оборудование 100 декодирования изображений может получать информацию режима согласно форме разбиения из выборки в предварительно установленном местоположении в единице кодирования и может разбивать множество единиц кодирования, которые формируются посредством разбиения текущей единицы кодирования, посредством использования информации режима согласно форме разбиения, которая получается из выборки предварительно установленного местоположения в каждой из множества единиц кодирования. Таким образом, единица кодирования может рекурсивно разбиваться на основе информации режима согласно форме разбиения, которая получается из выборки в предварительно установленном местоположении в каждой единице кодирования. Операция рекурсивного разбиения единицы кодирования описывается выше относительно фиг. 5, и в силу этого подробные описания означенного не предоставляются здесь.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять одну или более единиц кодирования посредством разбиения текущей единицы кодирования и может определять порядок декодирования одной или более единиц кодирования, на основе предварительно установленного блока (например, текущей единицы кодирования).
Фиг. 7 иллюстрирует порядок обработки множества единиц кодирования, когда оборудование 100 декодирования изображений определяет множество единиц кодирования посредством разбиения текущей единицы кодирования, согласно варианту осуществления.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять вторые единицы 710a и 710b кодирования посредством разбиения первой единицы 700 кодирования в вертикальном направлении, может определять вторые единицы 730a и 730b кодирования посредством разбиения первой единицы 700 кодирования в горизонтальном направлении либо может определять вторые единицы 750a, 750b, 750c и 750d кодирования посредством разбиения первой единицы 700 кодирования в вертикальном и горизонтальном направлениях, на основе информации режима согласно форме разбиения.
Ссылаясь на фиг. 7, оборудование 100 декодирования изображений может определять необходимость обрабатывать вторые единицы 710a и 710b кодирования, которые определяются посредством разбиения первой единицы 700 кодирования в вертикальном направлении, в порядке 710c в горизонтальном направлении. Оборудование 100 декодирования изображений может определять необходимость обрабатывать вторые единицы 730a и 730b кодирования, которые определяются посредством разбиения первой единицы 700 кодирования в горизонтальном направлении, в порядке 730c в вертикальном направлении. Оборудование 100 декодирования изображений может определять вторые единицы 750a, 750b, 750c и 750d кодирования, которые определяются посредством разбиения первой единицы 700 кодирования в вертикальном и горизонтальном направлениях, согласно предварительно установленному порядку (например, порядку 750e растрового сканирования или порядку Z-сканирования), в котором обрабатываются единицы кодирования в строке, а затем обрабатываются единицы кодирования в следующей строке.
Согласно варианту осуществления, оборудование 100 декодирования изображений может рекурсивно разбивать единицы кодирования. Ссылаясь на фиг. 7, оборудование 100 декодирования изображений может определять множество единиц 710a и 710b, 730a и 730b или 750a, 750b, 750c и 750d кодирования посредством разбиения первой единицы 700 кодирования и может рекурсивно разбивать каждую из определенного множества единиц 710a, 710b, 730a, 730b, 750a, 750b, 750c и 750d кодирования. Способ разбиения множества единиц 710a и 710b, 730a и 730b или 750a, 750b, 750c и 750d кодирования может соответствовать способу разбиения первой единицы 700 кодирования. Соответственно, каждая из множества единиц 710a и 710b, 730a и 730b или 750a, 750b, 750c и 750d кодирования может независимо разбиваться на множество единиц кодирования. Ссылаясь на фиг. 7, оборудование 100 декодирования изображений может определять вторые единицы 710a и 710b кодирования посредством разбиения первой единицы 700 кодирования в вертикальном направлении и может определять необходимость независимо разбивать или не разбивать каждую из вторых единиц 710a и 710b кодирования.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять третьи единицы 720a и 720b кодирования посредством разбиения левой второй единицы 710a кодирования в горизонтальном направлении и может не разбивать правую вторую единицу 710b кодирования.
Согласно варианту осуществления, порядок обработки единиц кодирования может определяться на основе операции разбиения единицы кодирования. Другими словами, порядок обработки разбитых единиц кодирования может определяться на основе порядка обработки единиц кодирования непосредственно перед разбиением. Оборудование 100 декодирования изображений может определять порядок обработки третьих единиц 720a и 720b кодирования, определенных посредством разбиения левой второй единицы 710a кодирования, независимо от правой второй единицы 710b кодирования. Поскольку третьи единицы 720a и 720b кодирования определяются посредством разбиения левой второй единицы 710a кодирования в горизонтальном направлении, третьи единицы 720a и 720b кодирования могут обрабатываться в порядке 720c в вертикальном направлении. Поскольку левая и правая вторые единицы 710a и 710b кодирования обрабатываются в порядке 710c в горизонтальном направлении, правая вторая единица 710b кодирования может обрабатываться после того, как третьи единицы 720a и 720b кодирования, включенные в левую вторую единицу 710a кодирования, обрабатываются в порядке 720c в вертикальном направлении. Операция определения порядка обработки единиц кодирования на основе единицы кодирования перед разбиением не ограничена вышеописанным примером, и различные способы могут использоваться для того, чтобы независимо обрабатывать единицы кодирования, которые разбиваются и определяются согласно различным формам, в предварительно установленном порядке.
Фиг. 8 иллюстрирует процесс, выполняемый посредством оборудования 100 декодирования изображений, для определения того, что текущая единица кодирования должна разбиваться на нечетное число единиц кодирования, когда единицы кодирования не являются обрабатываемыми в предварительно установленном порядке, согласно варианту осуществления.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять то, что текущая единица кодирования должна разбиваться на нечетное число единиц кодирования, на основе полученной информации режима согласно форме разбиения. Ссылаясь на фиг. 8, квадратная первая единица 800 кодирования может разбиваться на неквадратные вторые единицы 810a и 810b кодирования, и вторые единицы 810a и 810b кодирования могут независимо разбиваться на третьи единицы 820a и 820b и 820c, 820d и 820e кодирования. Согласно варианту осуществления, оборудование 100 декодирования изображений может определять множество третьих единиц 820a и 820b кодирования посредством разбиения левой второй единицы 810a кодирования в горизонтальном направлении и может разбивать правую вторую единицу 810b кодирования на нечетное число третьих единиц 820c, 820d и 820e кодирования.
Согласно варианту осуществления, оборудование 100 декодирования видео может определять то, разбивается или нет любая единица кодирования на нечетное число единиц кодирования, посредством определения того, являются или нет третьи единицы 820a и 820b и 820c, 820d и 820e кодирования обрабатываемыми в предварительно установленном порядке. Ссылаясь на фиг. 8, оборудование 100 декодирования изображений может определять третьи единицы 820a и 820b и 820c, 820d и 820e кодирования посредством рекурсивного разбиения первой единицы 800 кодирования. Оборудование 100 декодирования изображений может определять то, разбивается или нет любая из первой единицы 800 кодирования, вторых единиц 810a и 810b кодирования и третьих единиц 820a и 820b и 820c, 820d и 820e кодирования на нечетное число единиц кодирования, на основе, по меньшей мере, одного из информации формы блоков и информации режима согласно форме разбиения. Например, единица кодирования, расположенная справа из числа вторых единиц 810a и 810b кодирования, может разбиваться на нечетное число третьих единиц 820c, 820d и 820e кодирования. Порядок обработки множества единиц кодирования, включенных в первую единицу 800 кодирования, может представлять собой предварительно установленный порядок (например, порядок 830 Z-сканирования), и оборудование 100 декодирования изображений может определять то, удовлетворяют или нет третьи единицы 820c, 820d и 820e кодирования, которые определяются посредством разбиения правой второй единицы 810b кодирования на нечетное число единиц кодирования, условию для обработки в предварительно установленном порядке.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять то, удовлетворяют или нет третьи единицы 820a и 820b и 820c, 820d и 820e кодирования, включенные в первую единицу 800 кодирования, условию для обработки в предварительно установленном порядке, и условие связано с этим, разбивается или нет, по меньшей мере, одно из ширины и высоты вторых единиц 810a и 810b кодирования наполовину вдоль границы третьих единиц 820a и 820b и 820c, 820d и 820e кодирования. Например, третьи единицы 820a и 820b кодирования, определенные, когда высота левой второй единицы 810a кодирования неквадратной формы разбивается наполовину, могут удовлетворять условию. Может определяться то, что третьи единицы 820c, 820d и 820e кодирования не удовлетворяют условию, поскольку границы третьих единиц 820c, 820d и 820e кодирования, определенных, когда правая вторая единица 810b кодирования разбивается на три единицы кодирования, не могут разбивать ширину или высоту правой второй единицы 810b кодирования наполовину. Когда условие не удовлетворяется, как описано выше, оборудование 100 декодирования изображений может определять нарушение непрерывности порядка сканирования и может определять то, что правая вторая единица 810b кодирования должна разбиваться на нечетное число единиц кодирования, на основе результата определения. Согласно варианту осуществления, когда единица кодирования разбивается на нечетное число единиц кодирования, оборудование 100 декодирования изображений может налагать предварительно установленное ограничение на единицу кодирования в предварительно установленном местоположении из числа разбитых единиц кодирования. Ограничение или предварительно установленное местоположение описывается выше относительно различных вариантов осуществления, и в силу этого подробные описания означенного не предоставляются в данном документе.
Фиг. 9 иллюстрирует процесс, выполняемый посредством оборудования 100 декодирования изображений, для определения, по меньшей мере, одной единицы кодирования посредством разбиения первой единицы 900 кодирования, согласно варианту осуществления.
Согласно варианту осуществления, оборудование 100 декодирования изображений может разбивать первую единицу 900 кодирования, на основе информации режима согласно форме разбиения, которая получается через модуль 110 получения потоков битов. Квадратная первая единица 900 кодирования может разбиваться на четыре квадратных единицы кодирования или может разбиваться на множество неквадратных единиц кодирования. Например, ссылаясь на фиг. 9, когда первая единица 900 кодирования имеет квадратную форму, и информация режима согласно форме разбиения, указывает необходимость разбивать первую единицу 900 кодирования на неквадратные единицы кодирования, оборудование 100 декодирования изображений может разбивать первую единицу 900 кодирования на множество неквадратных единиц кодирования. Подробно, когда информация режима согласно форме разбиения указывает необходимость определять нечетное число единиц кодирования посредством разбиения первой единицы 900 кодирования в горизонтальном направлении или в вертикальном направлении, оборудование 100 декодирования изображений может разбивать квадратную первую единицу 900 кодирования на нечетное число единиц кодирования, например, вторых единиц 910a, 910b и 910c кодирования, определенных посредством разбиения квадратной первой единицы 900 кодирования в вертикальном направлении, или вторых единиц 920a, 920b и 920c кодирования, определенных посредством разбиения квадратной первой единицы 900 кодирования в горизонтальном направлении.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять то, удовлетворяют или нет вторые единицы 910a, 910b, 910c, 920a, 920b и 920c кодирования, включенные в первую единицу 900 кодирования, условию для обработки в предварительно установленном порядке, и условие связано с этим, должно разбиваться или нет, по меньшей мере, одно из ширины и высоты первой единицы 900 кодирования наполовину вдоль границы вторых единиц 910a, 910b, 910c, 920a, 920b и 920c кодирования. Ссылаясь на фиг. 9, поскольку границы вторых единиц 910a, 910b и 910c кодирования, определенные посредством разбиения квадратной первой единицы 900 кодирования в вертикальном направлении, не разбивают ширину первой единицы 900 кодирования наполовину, может определяться то, что первая единица 900 кодирования не удовлетворяет условию для обработки в предварительно установленном порядке. Кроме того, поскольку границы вторых единиц 920a, 920b и 920c кодирования, определенные посредством разбиения квадратной первой единицы 900 кодирования в горизонтальном направлении, не разбивают высоту первой единицы 900 кодирования наполовину, может определяться то, что первая единица 900 кодирования не удовлетворяет условию для обработки в предварительно установленном порядке. Когда условие не удовлетворяется, как описано выше, оборудование 100 декодирования изображений может определять нарушение непрерывности порядка сканирования и может определять то, что первая единица 900 кодирования должна разбиваться на нечетное число единиц кодирования, на основе результата решения. Согласно варианту осуществления, когда единица кодирования разбивается на нечетное число единиц кодирования, оборудование 100 декодирования изображений может налагать предварительно установленное ограничение на единицу кодирования в предварительно установленном местоположении из числа разбитых единиц кодирования. Ограничение или предварительно установленное местоположение описывается выше относительно различных вариантов осуществления, и в силу этого подробные описания означенного не предоставляются в данном документе.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять единицы кодирования различной формы посредством разбиения первой единицы кодирования.
Ссылаясь на фиг. 9, оборудование 100 декодирования изображений может разбивать квадратную первую единицу 900 кодирования или неквадратную первую единицу 930 или 950 кодирования на единицы кодирования различной формы.
Фиг. 10 иллюстрирует то, что форма, на которую является разбиваемой вторая единица кодирования, ограничивается, когда вторая единица кодирования, имеющая неквадратную форму, которая определяется, когда оборудование 100 декодирования изображений разбивает первую 1000 единицу кодирования, удовлетворяет предварительно установленному условию, согласно варианту осуществления.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять необходимость разбивать квадратную первую единицу 1000 кодирования на неквадратные вторые единицы 1010a и 1010b или 1020a и 1020b кодирования, на основе информации режима согласно форме разбиения, которая получается посредством модуля 110 получения потоков битов. Вторые единицы 1010a и 1010b или 1020a и 1020b кодирования могут независимо разбиваться. В связи с этим, оборудование 100 декодирования изображений может определять необходимость разбивать или не разбивать каждую из вторых единиц 1010a и 1010b или 1020a и 1020b кодирования на множество единиц кодирования, на основе информации режима согласно форме разбиения каждой из вторых единиц 1010a и 1010b или 1020a и 1020b кодирования. Согласно варианту осуществления, оборудование 100 декодирования изображений может определять третьи единицы 1012a и 1012b кодирования посредством разбиения неквадратной левой второй единицы 1010a кодирования, которая определяется посредством разбиения первой единицы 1000 кодирования в вертикальном направлении, в горизонтальном направлении. Тем не менее, когда левая вторая единица 1010a кодирования разбивается в горизонтальном направлении, оборудование 100 декодирования изображений может ограничивать правую вторую единицу 1010b кодирования таким образом, что она не разбивается в горизонтальном направлении, в котором разбивается левая вторая единица 1010a кодирования. Когда третьи единицы 1014a и 1014b кодирования определяются посредством разбиения правой второй единицы 1010b кодирования в идентичном направлении, поскольку левая и правая вторые единицы 1010a кодирования и 1010b независимо разбиваются в горизонтальном направлении, третьи единицы 1012a и 1012b кодирования или 1014a и 1014b могут определяться. Тем не менее, этот случай действует идентично случаю, в котором оборудование 100 декодирования изображений разбивает первую единицу 1000 кодирования на четыре квадратных вторых единицы 1030a, 1030b, 1030c и 1030d кодирования, на основе информации режима согласно форме разбиения, и может быть неэффективным с точки зрения декодирования изображений.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять третьи единицы 1022a и 1022b или 1024a и 1024b кодирования посредством разбиения неквадратной второй единицы 1020a или 1020b кодирования, которая определяется посредством разбиения первой единицы 1000 кодирования в горизонтальном направлении, в вертикальном направлении. Тем не менее, когда вторая единица кодирования (например, верхняя вторая единица 1020a кодирования) разбивается в вертикальном направлении, по вышеописанной причине, оборудование 100 декодирования изображений может ограничивать другую вторую единицу кодирования (например, нижнюю вторую единицу 1020b кодирования) таким образом, что она не разбивается в вертикальном направлении, в котором разбивается верхняя вторая единица 1020a кодирования.
Фиг. 11 иллюстрирует процесс, выполняемый посредством оборудования 100 декодирования изображений, для разбиения квадратной единицы кодирования, когда информация режима согласно форме разбиения указывает то, что квадратная единица кодирования не должна разбиваться на четыре квадратных единицы кодирования, согласно варианту осуществления.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять вторые единицы 1110a и 1110b или 1120a и 1120b кодирования и т.д. посредством разбиения первой единицы 1100 кодирования, на основе информации режима согласно форме разбиения. Информация режима согласно форме разбиения может включать в себя информацию относительно различных способов разбиения единицы кодирования, но информация относительно различных способов разбиения может не включать в себя информацию для разбиения единицы кодирования на четыре квадратных единицы кодирования. Согласно такой информации режима согласно форме разбиения, оборудование 100 декодирования изображений может не разбивать квадратную первую единицу 1100 кодирования на четыре квадратных вторых единицы 1130a, 1130b, 1130c и 1130d кодирования. Оборудование 100 декодирования изображений может определять неквадратные вторые единицы 1110a и 1110b или 1120a и 1120b кодирования и т.д., на основе информации режима согласно форме разбиения.
Согласно варианту осуществления, оборудование 100 декодирования изображений может независимо разбивать неквадратные вторые единицы 1110a и 1110b или 1120a и 1120b кодирования и т.д. Каждая из вторых единиц 1110a и 1110b или 1120a и 1120b кодирования и т.д. может рекурсивно разбиваться в предварительно установленном порядке, и этот способ разбиения может соответствовать способу разбиения первой единицы 1100 кодирования, на основе информации режима согласно форме разбиения.
Например, оборудование 100 декодирования изображений может определять квадратные третьи единицы 1112a и 1112b кодирования посредством разбиения левой второй единицы 1110a кодирования в горизонтальном направлении и может определять квадратные третьи единицы 1114a и 1114b кодирования посредством разбиения правой второй единицы 1110b кодирования в горизонтальном направлении. Кроме того, оборудование 100 декодирования изображений может определять квадратные третьи единицы 1116a, 1116b, 1116c и 1116d кодирования посредством разбиения обеих из левой и правой вторых единиц 1110a и 1110b кодирования в горизонтальном направлении. В этом случае, единицы кодирования, имеющие форму, идентичную форме четырех квадратных вторых единиц 1130a, 1130b, 1130c и 1130d кодирования, разбитых из первой единицы 1100 кодирования, могут определяться.
В качестве другого примера, оборудование 100 декодирования изображений может определять квадратные третьи единицы 1122a и 1122b кодирования посредством разбиения верхней второй единицы 1120a кодирования в вертикальном направлении и может определять квадратные третьи единицы 1124a и 1124b кодирования посредством разбиения нижней второй единицы 1120b кодирования в вертикальном направлении. Кроме того, оборудование 100 декодирования изображений может определять квадратные третьи единицы 1126a, 1126b, 1126c и 1126d кодирования посредством разбиения обеих из верхней и нижней вторых единиц 1120a и 1120b кодирования в вертикальном направлении. В этом случае, единицы кодирования, имеющие форму, идентичную форме четырех квадратных вторых единиц 1130a, 1130b, 1130c и 1130d кодирования, разбитых из первой единицы 1100 кодирования, могут определяться.
Фиг. 12 иллюстрирует то, что порядок обработки между множеством единиц кодирования может изменяться в зависимости от процесса разбиения единицы кодирования, согласно варианту осуществления.
Согласно варианту осуществления, оборудование 100 декодирования изображений может разбивать первую единицу 1200 кодирования, на основе информации режима согласно форме разбиения. Когда форма блока указывает квадратную форму, и информация режима согласно форме разбиения указывает необходимость разбивать первую единицу 1200 кодирования, по меньшей мере, в одном из горизонтального и вертикального направлений, оборудование 100 декодирования изображений может определять вторые единицы 1210a и 1210b или 1220a и 1220b кодирования и т.д. посредством разбиения первой единицы 1200 кодирования. Ссылаясь на фиг. 12, неквадратные вторые единицы 1210a и 1210b или 1220a и 1220b кодирования, определенные посредством разбиения первой единицы 1200 кодирования только в горизонтальном направлении или в вертикальном направлении, могут независимо разбиваться на основе информации режима согласно форме разбиения каждой единицы кодирования. Например, оборудование 100 декодирования изображений может определять третьи единицы 1216a, 1216b, 1216c и 1216d кодирования посредством разбиения вторых единиц 1210a и 1210b кодирования, которые формируются посредством разбиения первой единицы 1200 кодирования в вертикальном направлении, в горизонтальном направлении и может определять третьи единицы 1226a, 1226b, 1226c и 1226d кодирования посредством разбиения вторых единиц 1220a и 1220b кодирования, которые формируются посредством разбиения первой единицы 1200 кодирования в горизонтальном направлении, в вертикальном направлении. Операция разбиения вторых единиц 1210a и 1210b или 1220a и 1220b кодирования описывается выше относительно фиг. 11, и в силу этого подробные описания означенного не предоставляются в данном документе.
Согласно варианту осуществления, оборудование 100 декодирования изображений может обрабатывать единицы кодирования в предварительно установленном порядке. Операция обработки единиц кодирования в предварительно установленном порядке описывается выше относительно фиг. 7, и в силу этого подробные описания означенного не предоставляются в данном документе. Ссылаясь на фиг. 12, оборудование 100 декодирования изображений может определять четыре квадратных третьих единицы 1216a, 1216b, 1216c и 1216d и 1226a, 1226b, 1226c и 1226d кодирования посредством разбиения квадратной первой единицы 1200 кодирования. Согласно варианту осуществления, оборудование 100 декодирования изображений может определять порядки обработки третьих единиц 1216a, 1216b, 1216c и 1216d и 1226a, 1226b, 1226c и 1226d кодирования на основе формы разбиения, посредством которой разбивается первая единица 1200 кодирования.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять третьи единицы 1216a, 1216b, 1216c и 1216d кодирования посредством разбиения вторых единиц 1210a и 1210b кодирования, сформированных посредством разбиения первой единицы 1200 кодирования в вертикальном направлении, в горизонтальном направлении, и может обрабатывать третьи единицы 1216a, 1216b, 1216c и 1216d кодирования в порядке 1217 обработки для первоначальной обработки третьих единиц 1226a и 1226c кодирования, которые включаются в левую вторую единицу 1210a кодирования, в вертикальном направлении, и затем обработки третьей единицы 1216b и 1216d кодирования, которые включаются в правую вторую единицу 1210b кодирования, в вертикальном направлении.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять третьи единицы 1226a, 1226b, 1226c и 1226d кодирования посредством разбиения вторых единиц 1220a и 1220b кодирования, сформированных посредством разбиения первой единицы 1200 кодирования в горизонтальном направлении, в вертикальном направлении, и может обрабатывать третьи единицы 1226a, 1226b, 1226c и 1226d кодирования в порядке 1227 обработки для первоначальной обработки третьих единиц 1226a и 1226b кодирования, которые включаются в верхнюю вторую единицу 1220a кодирования, в горизонтальном направлении, и затем обработки третьей единицы 1226c и 1226d кодирования, которые включаются в нижнюю вторую единицу 1220b кодирования, в горизонтальном направлении.
Ссылаясь на фиг. 12, квадратные третьи единицы 1216a, 1216b, 1216c и 1216d и 1226a, 1226b, 1226c и 1226d кодирования могут определяться посредством разбиения вторых единиц 1210a и 1210b и 1220a и 1220b кодирования, соответственно. Хотя вторые единицы 1210a и 1210b кодирования определяются посредством разбиения первой единицы 1200 кодирования в вертикальном направлении по-другому по сравнению со вторыми единицами 1220a и 1220b кодирования, которые определяются посредством разбиения первой единицы 1200 кодирования в горизонтальном направлении, третьи единицы 1216a, 1216b, 1216c и 1216d и 1226a, 1226b, 1226c и 1226d кодирования, разбитые из нее, в конечном счете показывают единицы кодирования идентичной формы, разбитые из первой единицы 1200 кодирования. В связи с этим, посредством рекурсивного разбиения единицы кодирования различными способами на основе информации режима согласно форме разбиения, оборудование 100 декодирования изображений может обрабатывать множество единиц кодирования в различных порядках, даже когда единицы кодирования в конечном счете определяются как имеющие идентичную форму.
Фиг. 13 иллюстрирует процесс определения глубины единицы кодирования по мере того, как форма и размер единицы кодирования изменяются, когда единица кодирования рекурсивно разбивается таким образом, что множество единиц кодирования определяются, согласно варианту осуществления.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять глубину единицы кодирования, на основе предварительно установленного критерия. Например, предварительно установленный критерий может представлять собой длину длинной стороны единицы кодирования. Когда длина длинной стороны единицы кодирования перед разбиением в 2n раз (n>0) превышает длину длинной стороны разбитой текущей единицы кодирования, оборудование 100 декодирования изображений может определять то, что глубина текущей единицы кодирования увеличивается относительно глубины единицы кодирования перед разбиением, на n. В нижеприведенном описании, единица кодирования, имеющая увеличенную глубину, выражается как единица кодирования меньшей глубины.
Ссылаясь на фиг. 13, согласно варианту осуществления, оборудование 100 декодирования изображений может определять вторую единицу 1302 кодирования и третью единицу 1304 кодирования меньших глубин посредством разбиения квадратной первой единицы 1300 кодирования на основе информации формы блоков, указывающей квадратную форму (например, информация формы блоков может выражаться как "0: квадратная"). При условии, что размер квадратной первой единицы 1300 кодирования составляет 2Nx2N, вторая единица 1302 кодирования, определенная посредством разбиения ширины и высоты первой единицы 1300 кодирования на 1/2, может иметь размер в NxN. Кроме того, третья единица 1304 кодирования, определенная посредством разбиения ширины и высоты второй единицы 1302 кодирования на 1/2, может иметь размер в N/2xN/2. В этом случае, ширина и высота третьей единицы 1304 кодирования составляют 1/4 относительно ширины и высоты первой единицы 1300 кодирования. Когда глубина первой единицы 1300 кодирования составляет D, глубина второй единицы 1302 кодирования, ширина и высота которой составляют 1/2 относительно ширины и высоты первой единицы 1300 кодирования, может составлять D+1, и глубина третьей единицы 1304 кодирования, ширина и высота которой составляют 1/4 относительно ширины и высоты первой единицы 1300 кодирования, может составлять D+2.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять вторую единицу 1312 или 1322 кодирования и третью единицу 1314 или 1324 кодирования меньших глубин посредством разбиения неквадратной первой единицы 1310 или 1320 кодирования на основе информации формы блоков, указывающей неквадратную форму (например, информация формы блоков может выражаться как "1: NS_VER", указывающая неквадратную форму, высота которой превышает ширину, либо как "2: NS_HOR", указывающая неквадратную форму, ширина которой превышает высоту).
Оборудование 100 декодирования изображений может определять вторую единицу 1302, 1312 или 1322 кодирования посредством разбиения, по меньшей мере, одного из ширины и высоты первой единицы 1310 кодирования, имеющей размер в Nx2N. Таким образом, оборудование 100 декодирования изображений может определять вторую единицу 1302 кодирования, имеющую размер в NxN, или вторую единицу 1322 кодирования, имеющую размер в NxN/2, посредством разбиения первой единицы 1310 кодирования в горизонтальном направлении, либо может определять вторую единицу 1312 кодирования, имеющую размер в N/2xN, посредством разбиения первой единицы 1310 кодирования в горизонтальном и вертикальном направлениях.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять вторую единицу 1302, 1312 или 1322 кодирования посредством разбиения, по меньшей мере, одного из ширины и высоты первой единицы 1320 кодирования, имеющей размер в 2NxN. Таким образом, оборудование 100 декодирования изображений может определять вторую единицу 1302 кодирования, имеющую размер в NxN, или вторую единицу 1312 кодирования, имеющую размер в N/2xN, посредством разбиения первой единицы 1320 кодирования в вертикальном направлении, либо может определять вторую единицу 1322 кодирования, имеющую размер в NxN/2, посредством разбиения первой единицы 1320 кодирования в горизонтальном и вертикальном направлениях.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять третью единицу 1304, 1314 или 1324 кодирования посредством разбиения, по меньшей мере, одного из ширины и высоты второй единицы 1302 кодирования, имеющей размер в NxN. Таким образом, оборудование 100 декодирования изображений может определять третью единицу 1304 кодирования, имеющую размер в N/2xN/2, третью единицу 1314 кодирования, имеющую размер в N/4xN/2, или третью единицу 1324 кодирования, имеющую размер в N/2xN/4, посредством разбиения второй единицы 1302 кодирования в вертикальном и горизонтальном направлениях.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять третью единицу 1304, 1314 или 1324 кодирования посредством разбиения, по меньшей мере, одного из ширины и высоты второй единицы 1312 кодирования, имеющей размер в N/2xN. Таким образом, оборудование 100 декодирования изображений может определять третью единицу 1304 кодирования, имеющую размер в N/2xN/2, или третью единицу 1324 кодирования, имеющую размер в N/2xN/4, посредством разбиения второй единицы 1312 кодирования в горизонтальном направлении, либо может определять третью единицу 1314 кодирования, имеющую размер в N/4xN/2, посредством разбиения второй единицы 1312 кодирования в вертикальном и горизонтальном направлениях.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять третью единицу 1304, 1314 или 1324 кодирования посредством разбиения, по меньшей мере, одного из ширины и высоты второй единицы 1322 кодирования, имеющей размер в NxN/2. Таким образом, оборудование 100 декодирования изображений может определять третью единицу 1304 кодирования, имеющую размер в N/2xN/2, или третью единицу 1314 кодирования, имеющую размер в N/4xN/2, посредством разбиения второй единицы 1322 кодирования в вертикальном направлении, либо может определять третью единицу 1324 кодирования, имеющую размер в N/2xN/4, посредством разбиения второй единицы 1322 кодирования в вертикальном и горизонтальном направлениях.
Согласно варианту осуществления, оборудование 100 декодирования изображений может разбивать квадратную единицу 1300, 1302 или 1304 кодирования в горизонтальном или вертикальном направлении. Например, оборудование 100 декодирования изображений может определять первую единицу 1310 кодирования, имеющую размер в Nx2N, посредством разбиения первой единицы 1300 кодирования, имеющей размер в 2Nx2N, в вертикальном направлении, либо может определять первую единицу 1320 кодирования, имеющую размер в 2NxN, посредством разбиения первой единицы 1300 кодирования в горизонтальном направлении. Согласно варианту осуществления, когда глубина определяется на основе длины самой длинной стороны единицы кодирования, глубина единицы кодирования, определенная посредством разбиения первой единицы 1300 кодирования, имеющей размер в 2Nx2N, в горизонтальном или вертикальном направлении, может быть идентичной глубине первой единицы 1300 кодирования.
Согласно варианту осуществления, ширина и высота третьей единицы 1314 или 1324 кодирования могут составлять 1/4 относительно ширины и высоты первой единицы 1310 или 1320 кодирования. Когда глубина первой единицы 1310 или 1320 кодирования составляет D, глубина второй единицы 1312 или 1322 кодирования, ширина и высота которой составляют 1/2 относительно ширины и высоты первой единицы 1310 или 1320 кодирования, может составлять D+1, и глубина третьей единицы 1314 или 1324 кодирования, ширина и высота которой составляют 1/4 относительно ширины и высоты первой единицы 1310 или 1320 кодирования, может составлять D+2.
Фиг. 14 иллюстрирует глубины, которые являются определимыми на основе форм и размеров единиц кодирования и индексов частей (PID) для различения единиц кодирования, согласно варианту осуществления.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять вторые единицы кодирования различной формы посредством разбиения квадратной первой единицы 1400 кодирования. Ссылаясь на фиг. 14, оборудование 100 декодирования изображений может определять вторые единицы 1402a и 1402b, 1404a и 1404b и 1406a, 1406b, 1406c и 1406d кодирования посредством разбиения первой единицы 1400 кодирования, по меньшей мере, в одном из вертикального и горизонтального направлений на основе информации режима согласно форме разбиения. Таким образом, оборудование 100 декодирования изображений может определять вторые единицы 1402a и 1402b, 1404a и 1404b и 1406a, 1406b, 1406c и 1406d кодирования, на основе информации режима согласно форме разбиения первой единицы 1400 кодирования.
Согласно варианту осуществления, глубины вторых единиц 1402a и 1402b, 1404a и 1404b и 1406a, 1406b, 1406c и 1406d кодирования, которые определяются на основе информации режима согласно форме разбиения квадратной первой единицы 1400 кодирования, могут определяться на основе длины их длинной стороны. Например, поскольку длина стороны квадратной первой единицы 1400 кодирования равна длине длинной стороны неквадратных вторых единиц 1402a и 1402b и 1404a и 1404b кодирования, первая единица 1400 кодирования и неквадратные вторые единицы 1402a и 1402b и 1404a и 1404b кодирования могут иметь идентичную глубину, например, D. Тем не менее, когда оборудование 100 декодирования изображений разбивает первую единицу 1400 кодирования на четыре квадратных вторых единицы 1406a, 1406b, 1406c и 1406d кодирования на основе информации режима согласно форме разбиения, поскольку длина стороны квадратных вторых единиц 1406a, 1406b, 1406c и 1406d кодирования составляет 1/2 относительно длины стороны первой единицы 1400 кодирования, глубина вторых единиц 1406a, 1406b, 1406c и 1406d кодирования может составлять D+1, что больше глубины D первой единицы 1400 кодирования на 1.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять множество вторых единиц 1412a и 1412b и 1414a, 1414b и 1414c кодирования посредством разбиения первой единицы 1410 кодирования, высота которой превышает ширину, в горизонтальном направлении на основе информации режима согласно форме разбиения. Согласно варианту осуществления, оборудование 100 декодирования изображений может определять множество вторых единиц 1422a и 1422b и 1424a, 1424b и 1424c кодирования посредством разбиения первой единицы 1420 кодирования, ширина которой превышает высоту, в вертикальном направлении на основе информации режима согласно форме разбиения.
Согласно варианту осуществления, глубина вторых единиц 1412a и 1412b и 1414a, 1414b и 1414c или 1422a и 1422b и 1424a, 1424b и 1424c кодирования, которая определяется на основе информации режима согласно форме разбиения неквадратной первой единицы 1410 или 1420 кодирования, может определяться на основе длины их длинной стороны. Например, поскольку длина стороны квадратных вторых единиц 1412a и 1412b кодирования составляет 1/2 относительно длины длинной стороны первой единицы 1410 кодирования, имеющей неквадратную форму, высота которой превышает ширину, глубина квадратных вторых единиц 1412a и 1412b кодирования составляет D+1, что больше глубины D неквадратной первой единицы 1410 кодирования на 1.
Кроме того, оборудование 100 декодирования изображений может разбивать неквадратную первую единицу 1410 кодирования на нечетное число вторых единиц 1414a, 1414b и 1414c кодирования на основе информации режима согласно форме разбиения. Нечетное число вторых единиц 1414a, 1414b и 1414c кодирования может включать в себя неквадратные вторые единицы 1414a и 1414c кодирования и квадратную вторую единицу 1414b кодирования. В этом случае, поскольку длина длинной стороны неквадратных вторых единиц 1414a и 1414c кодирования и длина стороны квадратной второй единицы 1414b кодирования составляют 1/2 относительно длины длинной стороны первой единицы 1410 кодирования, глубина вторых единиц 1414a, 1414b и 1414c кодирования может составлять D+1, что больше глубины D неквадратной первой единицы 1410 кодирования на 1. Оборудование 100 декодирования изображений может определять глубины единиц кодирования, разбитых из первой единицы 1420 кодирования, имеющей неквадратную форму, ширина которой превышает высоту, посредством использования вышеописанного способа определения глубин единиц кодирования, разбитых из первой единицы 1410 кодирования.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять PID для идентификации разбитых единиц кодирования, на основе отношения размеров между единицами кодирования, когда нечетное число разбитых единиц кодирования не имеют равных размеров. Ссылаясь на фиг. 14, единица 1414b кодирования центрального местоположения из нечетного числа разбитых единиц 1414a, 1414b и 1414c кодирования может иметь ширину, равную ширине других единиц 1414a и 1414c кодирования, и высоту, которая в два раза больше высоты других единиц 1414a и 1414c кодирования. Таким образом, в этом случае, единица 1414b кодирования в центральном местоположении может включать в себя две из другой единицы 1414a или 1414c кодирования. Следовательно, когда PID единицы 1414b кодирования в центральном местоположении равен 1 на основе порядка сканирования, PID единицы 1414c кодирования, расположенной рядом с единицей 1414b кодирования, может увеличиваться на 2 и в силу этого может быть равным 3. Таким образом, разрывность в значениях PID может присутствовать. Согласно варианту осуществления, оборудование 100 декодирования изображений может определять то, не имеют либо имеют нечетное число разбитых единиц кодирования равные размеры, на основе того, присутствует или нет разрывность в PID для идентификации разбитых единиц кодирования.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять то, следует или нет использовать конкретный способ разбиения, на основе значений PID для идентификации множества единиц кодирования, определенных посредством разбиения текущей единицы кодирования. Ссылаясь на фиг. 14, оборудование 100 декодирования изображений может определять четное число единиц 1412a и 1412b кодирования или нечетное число единиц 1414a, 1414b и 1414c кодирования посредством разбиения первой единицы 1410 кодирования, имеющей прямоугольную форму, высота которой превышает ширину. Оборудование 100 декодирования изображений может использовать PID, указывающие соответствующие единицы кодирования, с этим чтобы идентифицировать соответствующие единицы кодирования. Согласно варианту осуществления, PID может получаться из выборки в предварительно установленном местоположении каждой единицы кодирования (например, верхней левой выборки).
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять единицу кодирования в предварительно установленном местоположении из числа разбитых единиц кодирования, посредством использования PID для различения единиц кодирования. Согласно варианту осуществления, когда информация режима согласно форме разбиения первой единицы 1410 кодирования, имеющей прямоугольную форму, высота которой превышает ширину, указывает необходимость разбивать единицу кодирования на три единицы кодирования, оборудование 100 декодирования изображений может разбивать первую единицу 1410 кодирования на три единицы 1414a, 1414b и 1414c кодирования. Оборудование 100 декодирования изображений может назначать PID для каждой из трех единиц 1414a, 1414b и 1414c кодирования. Оборудование 100 декодирования изображений может сравнивать PID нечетного числа разбитых единиц кодирования, чтобы определять единицу кодирования в центральном местоположении из числа единиц кодирования. Оборудование 100 декодирования изображений может определять единицу 1414b кодирования, имеющую PID, соответствующий среднему значению, из PID единиц кодирования, в качестве единицы кодирования в центральном местоположении из числа единиц кодирования, определенных посредством разбиения первой единицы 1410 кодирования. Согласно варианту осуществления, оборудование 100 декодирования изображений может определять PID для различения разбитых единиц кодирования, на основе отношения размеров между единицами кодирования, когда разбитые единицы кодирования не имеют равных размеров. Ссылаясь на фиг. 14, единица 1414b кодирования, сформированная посредством разбиения первой единицы 1410 кодирования, может иметь ширину, равную ширине других единиц 1414a и 1414c кодирования, и высоту, которая в два раза больше высоты других единиц 1414a и 1414c кодирования. В этом случае, когда PID единицы 1414b кодирования в центральном местоположении равен 1, PID единицы 1414c кодирования, расположенной рядом с единицей 1414b кодирования, может увеличиваться на 2 и в силу этого может быть равным 3. Когда PID равномерно не увеличивается, как описано выше, оборудование 100 декодирования изображений может определять то, что единица кодирования разбивается на множество единиц кодирования, включающих в себя единицу кодирования, имеющую размер, отличающийся от размера других единиц кодирования. Согласно варианту осуществления, когда информация режима согласно форме разбиения указывает необходимость разбивать единицу кодирования на нечетное число единиц кодирования, оборудование 100 декодирования изображений может разбивать текущую единицу кодирования таким образом, что единица кодирования предварительно установленного местоположения из нечетного числа единиц кодирования (например, единица кодирования центрального местоположения) имеет размер, отличающийся от размера других единиц кодирования. В этом случае, оборудование 100 декодирования изображений может определять единицу кодирования центрального местоположения, которое имеет другой размер, посредством использования PID единиц кодирования. Тем не менее, PID и размер или местоположение единицы кодирования предварительно установленного местоположения не ограничены вышеописанными примерами, и могут использоваться различные PID и различные местоположения и размеры единиц кодирования.
Согласно варианту осуществления, оборудование 100 декодирования изображений может использовать предварительно установленную единицу данных, в которой единица кодирования начинает рекурсивно разбиваться.
Фиг. 15 иллюстрирует то, что множество единиц кодирования определяются на основе множества предварительно установленных единиц данных, включенных в кадр, согласно варианту осуществления.
Согласно варианту осуществления, предварительно установленная единица данных может задаваться как единица данных, в которой единица кодирования начинает рекурсивно разбиваться посредством использования информации режима согласно форме разбиения. Таким образом, предварительно установленная единица данных может соответствовать единице кодирования самой верхней глубины, которая используется для того, чтобы определять множество единиц кодирования, разбитых из текущего кадра. В нижеприведенном описании, для удобства пояснения, предварительно установленная единица данных упоминается как опорная единица данных.
Согласно варианту осуществления, опорная единица данных может иметь предварительно установленный размер и предварительно установленную форму. Согласно варианту осуществления, опорная единица данных может включать в себя MxN выборок. В данном документе, M и N могут быть равными друг другу и могут быть целыми числами, выражаемыми как степени 2. Таким образом, опорная единица данных может иметь квадратную или неквадратную форму и может разбиваться на целое число единиц кодирования.
Согласно варианту осуществления, оборудование 100 декодирования изображений может разбивать текущий кадр на множество опорных единиц данных. Согласно варианту осуществления, оборудование 100 декодирования изображений может разбивать множество опорных единиц данных, которые разбиваются из текущего кадра, посредством использования информации режима согласно форме разбиения каждой опорной единицы данных. Операция разбиения опорной единицы данных может соответствовать операции разбиения с использованием структуры в виде дерева квадрантов.
Согласно варианту осуществления, оборудование 100 декодирования изображений может предварительно определять минимальный размер, разрешенный для опорных единиц данных, включенных в текущий кадр. Соответственно, оборудование 100 декодирования изображений может определять различные опорные единицы данных, имеющие размеры, равные или большие минимальный размер, и может определять одну или более единиц кодирования посредством использования информации режима согласно форме разбиения со ссылкой на определенную опорную единицу данных.
Ссылаясь на фиг. 15, оборудование 100 декодирования изображений может использовать квадратную опорную единицу 1500 кодирования или неквадратную опорную единицу 1502 кодирования. Согласно варианту осуществления, форма и размер опорных единиц кодирования могут определяться на основе различных единиц данных, допускающих включение одной или более опорных единиц кодирования (например, последовательностей, кадров, срезов, сегментов срезов, плиток, групп плиток, наибольших единиц кодирования и т.п.).
Согласно варианту осуществления, модуль 110 получения потоков битов оборудования 100 декодирования изображений может получать, из потока битов, по меньшей мере, одно из информации формы опорных единиц кодирования или информации размера опорных единиц кодирования относительно каждой из различных единиц данных. Операция разбиения квадратной опорной единицы 1500 кодирования на одну или более единиц кодирования описывается выше относительно операции разбиения текущей единицы 300 кодирования по фиг. 3, и операция разбиения неквадратной опорной единицы 1502 кодирования на одну или более единиц кодирования описывается выше относительно операции разбиения текущей единицы 400 или 450 кодирования по фиг. 4. Таким образом, подробные описания означенного не предоставляются в данном документе.
Согласно варианту осуществления, оборудование 100 декодирования изображений может использовать PID для идентификации размера и формы опорных единиц кодирования, чтобы определять размер и форму опорных единиц кодирования согласно некоторым единицам данных, предварительно определенным на основе предварительно установленного условия. Таким образом, модуль 110 получения потоков битов может получать, из потока битов, только PID для идентификации размера и формы опорных единиц кодирования относительно каждого среза, сегмента срезов, плитки, группы плиток или наибольшей единицы кодирования, которая представляет собой единицу данных, удовлетворяющую предварительно установленному условию (например, единицу данных, имеющую размер, равный или меньший среза), из различных единиц данных (например, последовательностей, кадров, срезов, сегментов срезов, плиток, групп плиток, наибольших единиц кодирования и т.п.). Оборудование 100 декодирования изображений может определять размер и форму опорных единиц данных относительно каждой единицы данных, которая удовлетворяет предварительно установленному условию, посредством использования PID. Когда информация формы опорных единиц кодирования и информация размера опорных единиц кодирования получаются и используются из потока битов согласно каждой единице данных, имеющей относительно небольшой размер, эффективность использования потока битов может не быть высокой, и в силу этого только PID может получаться и использоваться вместо прямого получения информации формы опорных единиц кодирования и информации размера опорных единиц кодирования. В этом случае, по меньшей мере, одно из размера и формы опорных единиц кодирования, соответствующих PID для идентификации размера и формы опорных единиц кодирования, может быть предварительно определено. Таким образом, оборудование 100 декодирования изображений может определять, по меньшей мере, одно из размера и формы опорных единиц кодирования, включенных в единицу данных, служащую в качестве единицы для получения PID, посредством выбора предварительно определенного, по меньшей мере, одного из размера и формы опорных единиц кодирования на основе PID.
Согласно варианту осуществления, оборудование 100 декодирования изображений может использовать одну или более опорных единиц кодирования, включенных в наибольшую единицу кодирования. Таким образом, наибольшая единица кодирования, разбитая из кадра, может включать в себя одну или более опорных единиц кодирования, и единицы кодирования могут определяться посредством рекурсивного разбиения каждой опорной единицы кодирования. Согласно варианту осуществления, по меньшей мере, одно из ширины и высоты наибольшей единицы кодирования может превышать в целочисленное число раз, по меньшей мере, одно из ширины и высоты опорных единиц кодирования. Согласно варианту осуществления, размер опорных единиц кодирования может получаться посредством разбиения n раз наибольшей единицы кодирования на основе структуры в виде дерева квадрантов. Таким образом, оборудование 100 декодирования изображений может определять опорные единицы кодирования посредством разбиения n раз наибольшей единицы кодирования на основе структуры в виде дерева квадрантов и может разбивать опорную единицу кодирования на основе, по меньшей мере, одного из информации формы блоков и информации режима согласно форме разбиения согласно различным вариантам осуществления.
Согласно варианту осуществления, оборудование 100 декодирования изображений может получать информацию формы блоков, указывающую форму текущей единицы кодирования, или информацию режима согласно форме разбиения, указывающую способ разбиения текущей единицы кодирования, из потока битов, и может использовать полученную информацию. Информация режима согласно форме разбиения может включаться в поток битов, связанный с различными единицами данных. Например, оборудование 100 декодирования изображений может использовать информацию режима согласно форме разбиения, включенную в набор параметров последовательности, набор параметров кадра, набор параметров видео, заголовок среза, заголовок сегмента срезов, заголовок плитки или заголовок группы плиток. Кроме того, оборудование 100 декодирования изображений может получать, из потока битов, синтаксический элемент, соответствующий информации формы блоков или информации режима согласно форме разбиения согласно каждой наибольшей единице кодирования, каждой наибольшей единице кодирования или каждой опорной единице кодирования, и может использовать полученный синтаксический элемент.
В дальнейшем в этом документе подробно описывается способ определения правила разбиения, согласно варианту осуществления раскрытия.
Оборудование 100 декодирования изображений может определять правило разбиения изображения. Правило разбиения может быть предварительно определено между оборудованием 100 декодирования изображений и оборудованием 200 кодирования изображений. Оборудование 100 декодирования изображений может определять правило разбиения изображения, на основе информации, полученной из потока битов. Оборудование 100 декодирования изображений может определять правило разбиения на основе информации, полученной из по меньшей мере одного из набора параметров последовательности, набора параметров кадра, набора параметров видео, заголовка среза, заголовка сегмента срезов, заголовка плитки и заголовка группы плиток. Оборудование 100 декодирования изображений может определять правило разбиения по-разному согласно кинокадрам, срезам, плиткам, временным слоям, наибольшим единицам кодирования или единицам кодирования.
Оборудование 100 декодирования изображений может определять правило разбиения на основе формы блока единицы кодирования. Форма блока может включать в себя размер, форму, отношение ширины к высоте и направление единицы кодирования. Оборудование 200 кодирования изображений и оборудование 100 декодирования изображений могут предварительно определять необходимость определять правило разбиения на основе формы блока единицы кодирования. Тем не менее, варианты осуществления раскрытия не ограничены этим. Оборудование 100 декодирования изображений может определять правило разбиения на основе информации, полученной из потока битов, принимаемого из оборудования 200 кодирования изображений.
Форма единицы кодирования может включать в себя квадратную и неквадратную. Когда длины ширины и высоты единицы кодирования являются идентичными, оборудование 100 декодирования изображений может определять форму единицы кодирования как квадратную. Кроме того, когда длины ширины и высоты единицы кодирования не являются идентичными, оборудование 100 декодирования изображений может определять форму единицы кодирования как неквадратную.
Размер единицы кодирования может включать в себя различные размеры, такие как 4×4, 8×4, 4×8, 8×8, 16×4, 16×8 и вплоть до 256×256. Размер единицы кодирования может классифицироваться на основе длины длинной стороны единицы кодирования, длины короткой стороны или площади. Оборудование 100 декодирования изображений может применять идентичное правило разбиения к единицам кодирования, классифицированным в качестве идентичной группы. Например, оборудование 100 декодирования изображений может классифицировать единицы кодирования, имеющие идентичные длины длинных сторон, как имеющие идентичный размер. Кроме того, оборудование 100 декодирования изображений может применять идентичное правило разбиения к единицам кодирования, имеющим идентичные длины длинных сторон.
Отношение ширины и высоты единицы кодирования может включать в себя 1:2, 2:1, 1:4, 4:1, 1:8, 8:1, 1:16, 16:1, 32:1, 1:32 и т.п. Кроме того, направление единицы кодирования может включать в себя горизонтальное направление и вертикальное направление. Горизонтальное направление может указывать случай, в котором длина ширины единицы кодирования превышает ее длину высоты. Вертикальное направление может указывать случай, в котором длина ширины единицы кодирования меньше ее длины высоты.
Оборудование 100 декодирования изображений может адаптивно определять правило разбиения на основе размера единицы кодирования. Оборудование 100 декодирования изображений может по-другому определять допустимый режим согласно форме разбиения на основе размера единицы кодирования. Например, оборудование 100 декодирования изображений может определять то, разрешается или нет разбиение на основе размера единицы кодирования. Оборудование 100 декодирования изображений может определять направление разбиения согласно размеру единицы кодирования. Оборудование 100 декодирования изображений может определять допустимый тип разбиения согласно размеру единицы кодирования.
Правило разбиения, определенное на основе размера единицы кодирования, может представлять собой правило разбиения, предварительно определенное между оборудованием 200 кодирования изображений и оборудованием 100 декодирования изображений. Кроме того, оборудование 100 декодирования изображений может определять правило разбиения на основе информации, полученной из потока битов.
Оборудование 100 декодирования изображений может адаптивно определять правило разбиения на основе местоположения единицы кодирования. Оборудование 100 декодирования изображений может адаптивно определять правило разбиения на основе местоположения единицы кодирования в изображении.
Кроме того, оборудование 100 декодирования изображений может определять правило разбиения таким образом, что единицы кодирования, сформированные через различные тракты разбиения, не имеют идентичной формы блока. Тем не менее, вариант осуществления не ограничен этим, и единицы кодирования, сформированные через различные тракты разбиения, имеют идентичную форму блока. Единицы кодирования, сформированные через различные тракты разбиения, могут иметь различные порядки обработки декодирования. Поскольку порядки обработки декодирования описываются выше со ссылкой на фиг. 12, подробности означенного не предоставляются снова.
Фиг. 16 иллюстрирует единицы кодирования отдельных кадров, когда отдельные кадры имеют различные комбинации форм разбиения единиц кодирования, согласно варианту осуществления.
Ссылаясь на фиг. 16, оборудование 100 декодирования изображений может определять различные комбинации форм разбиения единиц кодирования для отдельных кадров. Например, оборудование 100 декодирования изображений может декодировать изображение посредством использования кадра 1600, который может разбиваться на четыре единицы кодирования, кадра 1610, который может разбиваться на две или четыре единицы кодирования, и кадра 1620, который может разбиваться на две, три или четыре единицы кодирования, по меньшей мере, из одного кадра, включенного в изображение. Оборудование 100 декодирования изображений может использовать только информацию формы разбиения, указывающую разбиение на четыре квадратных единицы кодирования, чтобы разбивать кадр 1600 на множество единиц кодирования. Оборудование 100 декодирования изображений может использовать только информацию формы разбиения, указывающую разбиение на две или четыре единицы кодирования, чтобы разбивать кадр 1610. Оборудование 100 декодирования изображений может использовать только информацию формы разбиения, указывающую разбиение на две, три или четыре единицы кодирования, чтобы разбивать кадр 1620. Вышеописанные комбинации форм разбиения представляют собой варианты осуществления для описания операций оборудования 100 декодирования изображений, и в силу этого вышеописанные комбинации форм разбиения не должны интерпретироваться как ограниченные вышеописанными вариантами осуществления. Следует интерпретировать то, что различные комбинации форм разбиения могут использоваться для каждой предварительно установленной единицы данных.
Согласно варианту осуществления, модуль 110 получения потоков битов оборудования 100 декодирования изображений может получать поток битов, включающий в себя индекс, представляющий комбинацию информации формы разбиения для каждой предварительно установленной единицы данных (например, последовательности, кадра, среза, сегмента срезов, плитки, группы плиток и т.д.). Например, модуль 110 получения потоков битов может получать индекс, представляющий комбинацию информации формы разбиения, из набора параметров последовательности, набора параметров кадра, заголовка среза, заголовка плитки или заголовка группы плиток. Модуль 110 получения потоков битов оборудования 100 декодирования изображений может использовать полученный индекс, чтобы определять комбинацию форм разбиения, на которую могут разбиваться единицы кодирования для каждой предварительно установленной единицы данных, и, соответственно, модуль 110 получения потоков битов может использовать различные комбинации форм разбиения для отдельных предварительно установленных единиц данных.
Фиг. 17 иллюстрирует различные формы единиц кодирования, которые могут определяться на основе информации режима согласно форме разбиения, которая может выражаться двоичным кодом, согласно варианту осуществления.
Согласно варианту осуществления, оборудование 100 декодирования изображений может разбивать единицы кодирования на различные формы посредством использования информации формы блоков и информации режима согласно форме разбиения, полученной через модуль 110 получения потоков битов. Формы, на которые могут разбиваться единицы кодирования, могут представлять собой различные формы, включающие в себя формы, описанные выше в вариантах осуществления.
Ссылаясь на фиг. 17, оборудование 100 декодирования изображений может разбивать единицу кодирования, имеющую квадратную форму, по меньшей мере, в одном направлении из горизонтального направления и вертикального направления, и единицу кодирования, имеющую неквадратную форму, в горизонтальном направлении или в вертикальном направлении, на основе информации режима согласно форме разбиения.
Согласно варианту осуществления, когда оборудование 100 декодирования изображений может разбивать единицу кодирования, имеющую квадратную форму, в горизонтальном направлении и вертикальном направлении, чтобы определять четыре квадратных единицы кодирования, информация режима согласно форме разбиения для квадратной единицы кодирования может представлять четыре формы разбиения. Согласно варианту осуществления, информация режима согласно форме разбиения может выражаться двоичным кодом из 2 цифр, и каждой форме разбиения может назначаться двоичный код. Например, когда единица кодирования не разбивается, информация режима согласно форме разбиения может выражаться как (00)b, когда единица кодирования разбивается в горизонтальном направлении и в вертикальном направлении, информация режима согласно форме разбиения может выражаться как (01)b, когда единица кодирования разбивается в горизонтальном направлении, информация режима согласно форме разбиения может выражаться как (10)b, и когда единица кодирования разбивается в вертикальном направлении, информация режима согласно форме разбиения может выражаться как (11)b.
Согласно варианту осуществления, когда оборудование 100 декодирования изображений разбивает единицу кодирования, имеющую неквадратную форму, в горизонтальном направлении или в вертикальном направлении, виды форм разбиения, которые могут представляться посредством информации режима согласно форме разбиения, могут зависеть от числа единиц кодирования, на которые должна разбиваться единица кодирования. Ссылаясь на фиг. 17, оборудование 100 декодирования изображений может разбивать единицу кодирования, имеющую неквадратную форму, вплоть до трех, согласно варианту осуществления. Кроме того, оборудование 100 декодирования изображений может разбивать единицу кодирования на две единицы кодирования. В этом случае, информация режима согласно форме разбиения может выражаться как (10)b. Оборудование 100 декодирования изображений может разбивать единицу кодирования на три единицы кодирования. В этом случае, информация режима согласно форме разбиения может выражаться как (11)b. Оборудование 100 декодирования изображений может определять не разбивать единицу кодирования. В этом случае, информация режима согласно форме разбиения может выражаться как (0)b. Таким образом, оборудование 100 декодирования изображений может использовать кодирование переменной длины (VLC) вместо кодирования фиксированной длины (FLC), чтобы использовать двоичный код, представляющий информацию режима согласно форме разбиения.
Согласно варианту осуществления, ссылаясь на фиг. 17, двоичный код информации режима согласно форме разбиения, представляющей то, что единица кодирования не разбивается, может выражаться как (0)b. В случае, в котором двоичный код информации режима согласно форме разбиения, представляющей то, что единица кодирования не разбивается, задается равным (00)b, двоичный код информации режима согласно форме разбиения в 2 бита, возможно, должен использоваться, хотя отсутствует информация режима формы без разбиения, заданная равной (01)b. Тем не менее, в случае, в котором три формы разбиения используются для единицы кодирования, имеющей неквадратную форму, как показано на фиг. 17, оборудование 100 декодирования изображений может определять то, что единица кодирования не разбивается посредством использования двоичного кода (0)b в 1 бит в качестве информации режима согласно форме разбиения, в силу этого эффективно используя поток битов. Тем не менее, формы разбиения единицы кодирования, имеющей неквадратную форму, которые представляются посредством информации режима согласно форме разбиения, не должны интерпретироваться как ограниченные тремя формами, показанными на фиг. 17, а должны интерпретироваться в качестве различных форм, включающих в себя вышеописанные варианты осуществления.
Фиг. 18 иллюстрирует другие формы единиц кодирования, которые могут определяться на основе информации режима согласно форме разбиения, которая может представляться с помощью двоичного кода, согласно варианту осуществления.
Ссылаясь на фиг. 18, оборудование 100 декодирования изображений может разбивать единицу кодирования, имеющую квадратную форму, в горизонтальном направлении или в вертикальном направлении, и единицу кодирования, имеющую неквадратную форму, в горизонтальном направлении или в вертикальном направлении, на основе информации режима согласно форме разбиения. Таким образом, информация режима согласно форме разбиения может указывать разбиение единицы кодирования, имеющей квадратную форму, в одном направлении. В этом случае, двоичный код информации режима согласно форме разбиения, представляющей то, что единица кодирования, имеющая квадратную форму, не разбивается, может выражаться как (0)b. В случае, в котором двоичный код информации режима согласно форме разбиения, представляющей то, что единица кодирования не разбивается, задается равным (00)b, двоичный код информации режима согласно форме разбиения в 2 бита, возможно, должен использоваться, хотя отсутствует информация режима формы без разбиения, заданная равной (01)b. Тем не менее, в случае, в котором три формы разбиения используются для единицы кодирования, имеющей квадратную форму, как показано на фиг. 18, оборудование 100 декодирования изображений может определять то, что единица кодирования не разбивается, посредством использования двоичного кода (0)b в 1 бит в качестве информации режима согласно форме разбиения, в силу этого эффективно используя поток битов. Тем не менее, формы разбиения единицы кодирования, имеющей квадратную форму, которые представляются посредством информации режима согласно форме разбиения, не должны интерпретироваться как ограниченные тремя формами, показанными на фиг. 18, а должны интерпретироваться в качестве различных форм, включающих в себя вышеописанные варианты осуществления.
Согласно варианту осуществления, информация формы блоков или информация режима согласно форме разбиения может выражаться посредством использования двоичного кода, и информация формы блоков или информация режима согласно форме разбиения может формироваться непосредственно в качестве потока битов. Кроме того, информация формы блоков или информация режима согласно форме разбиения, которая может выражаться двоичным кодом, может использоваться в качестве входного двоичного кода в контекстно-адаптивном двоичном арифметическом кодировании (CABAC) вместо формирования непосредственно в качестве потока битов.
В дальнейшем описывается процесс, в котором оборудование 100 декодирования изображений получает синтаксис для информации формы блоков или информации режима согласно форме разбиения через CABAC, согласно варианту осуществления. Оборудование 100 декодирования изображений может получать поток битов, включающий в себя двоичный код для синтаксиса, через модуль 110 получения потоков битов. Оборудование 100 декодирования изображений может отменять преобразование в двоичную форму строки двоичных элементов, включенной в полученный поток битов, чтобы обнаруживать синтаксический элемент, представляющий информацию формы блоков или информацию режима согласно форме разбиения. Согласно варианту осуществления, оборудование 100 декодирования изображений может получать группу двоичных строк двоичных элементов, соответствующих синтаксическому элементу, который должен декодироваться, и декодировать отдельные двоичные элементы посредством использования информации вероятности. Оборудование 100 декодирования изображений может повторять операцию до этих пор, до тех пор, пока строка двоичных элементов, сконфигурированная с декодированными двоичными элементами, не является идентичной одной из ранее полученных строк двоичных элементов. Оборудование 100 декодирования изображений может выполнять отмену преобразования в двоичную форму для строки двоичных элементов, чтобы определять синтаксический элемент.
Согласно варианту осуществления, оборудование 100 декодирования изображений может выполнять процесс декодирования адаптивного двоичного арифметического кодирования, чтобы определять синтаксис для строки двоичных элементов, и оборудование 100 декодирования изображений может обновлять вероятностную модель для двоичных элементов, полученных через модуль 110 получения потоков битов. Ссылаясь на фиг. 17, модуль 110 получения потоков битов оборудования 100 декодирования изображений может получать поток битов, который представляет двоичный код, представляющий информацию режима согласно форме разбиения, согласно варианту осуществления. Оборудование 100 декодирования изображений может определять синтаксис для информации режима согласно форме разбиения посредством использования полученного двоичного кода, имеющего размер в 1 или в 2 бита. Оборудование 100 декодирования изображений может обновлять вероятность для каждого бита двоичного кода в 2 бита, чтобы определять синтаксис для информации режима согласно форме разбиения. Таким образом, оборудование 100 декодирования изображений может обновлять, согласно этому, что одно из 0 или 1 составляет значение первого двоичного элемента двоичного кода в 2 бита, вероятность того, что следующий двоичный элемент должен иметь значение в 0 или 1 после декодирования.
Согласно варианту осуществления, в процессе определения синтаксиса, оборудование 100 декодирования изображений может обновлять вероятности для двоичных элементов, которые используются в процессе декодирования двоичных элементов из строки двоичных элементов для синтаксиса, и оборудование 100 декодирования изображений может определять то, что конкретный бит строки двоичных элементов имеет идентичную вероятность, без обновления вероятности конкретного бита.
Ссылаясь на фиг. 17, в процессе определения синтаксиса посредством использования информации режима согласно форме разбиения представления строки двоичных элементов для единицы кодирования, имеющей неквадратную форму, оборудование 100 декодирования изображений может определять синтаксис для информации режима согласно форме разбиения посредством использования двоичного элемента, имеющего значение в 0 в случае, в котором единица кодирования, имеющая неквадратную форму, не разбивается. Таким образом, когда информация формы блоков представляет то, что текущая единица кодирования имеет неквадратную форму, первый двоичный элемент из строки двоичных элементов для информации режима согласно форме разбиения может быть равным 0 в случае, в котором единица кодирования, имеющая неквадратную форму, не разбивается, и может быть равным 1 в случае, в котором единица кодирования разбивается на две или три единицы кодирования. Соответственно, вероятность того, что первый двоичный элемент из строки двоичных элементов информации режима согласно форме разбиения для единицы кодирования, имеющей неквадратную форму, должен быть равен 0, может составлять 1/3, и вероятность того, что первый двоичный элемент должен быть равен 1, может составлять 2/3. Поскольку информация режима согласно форме разбиения, представляющая то, что единица кодирования, имеющая неквадратную форму, не разбивается, может выражаться строкой двоичных элементов в 1 бит, имеющего значение в 0, как описано выше, оборудование 100 декодирования изображений может определять то, только в случае, в котором первый двоичный элемент информации режима согласно форме разбиения равен 1, то, равен второй двоичный элемент 0 или 1, чтобы определять синтаксис для информации режима согласно форме разбиения. Согласно варианту осуществления, когда первый двоичный элемент для информации режима согласно форме разбиения равен 1, оборудование 100 декодирования изображений может определять то, что вероятность того, что второй двоичный элемент должен быть равен 0, равна вероятности того, что второй двоичный элемент должен быть равен 1, и декодировать второй двоичный элемент.
Соответственно, оборудование 100 декодирования изображений может использовать, в процессе определения двоичных элементов из строки двоичных элементов для информации режима согласно форме разбиения, различные вероятности для отдельных двоичных элементов. Согласно варианту осуществления, оборудование 100 декодирования изображений может определять различные вероятности двоичных элементов для информации режима согласно форме разбиения согласно ширине текущей единицы кодирования или длине более длинной стороны текущей единицы кодирования. Согласно варианту осуществления, оборудование 100 декодирования изображений может определять различные вероятности двоичных элементов для информации режима согласно форме разбиения согласно, по меньшей мере, одной из формы текущей единицы кодирования и длины более длинной стороны текущей единицы кодирования. Согласно варианту осуществления, оборудование 100 декодирования изображений может определять различные вероятности двоичных элементов для информации режима согласно форме разбиения согласно, по меньшей мере, одной из формы текущей единицы кодирования и длины более длинной стороны текущей единицы кодирования.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять то, что вероятности двоичных элементов для информации режима согласно форме разбиения являются идентичными относительно единиц кодирования, которые равны или выше предварительно установленного размера. Например, оборудование 100 декодирования изображений может определять то, что вероятности двоичных элементов для информации режима согласно форме разбиения являются идентичными относительно единиц кодирования, длины более длинных сторон которых равны или больше 64 выборок.
Согласно варианту осуществления, оборудование 100 декодирования изображений может определять начальные вероятности для двоичных элементов, составляющих строку двоичных элементов информации режима согласно форме разбиения, на основе типа среза (например, I-срез, P-срез или B-срез).
Фиг. 19 является блок-схемой системы кодирования и декодирования изображений.
Кодер 1900 системы кодирования и декодирования изображений может передавать кодированный поток битов изображения, и декодер 1950 системы кодирования и декодирования изображений может принимать поток битов и декодировать поток битов, чтобы выводить восстановленное изображение. В данном документе, декодер 1950 может представлять собой конфигурацию, которая является аналогичной оборудованию 100 декодирования изображений.
В кодере 1900, когда режим прогнозирования текущего блока представляет собой режим интер-прогнозирования, модуль 1905 интер-прогнозирования формирует информацию движения текущего блока, указывающий опорный блок опорного кадра, смежного во времени с текущим кадром. Модуль 1905 интер-прогнозирования может определять прогнозные выборки текущего блока посредством использования выборок опорных блоков. Чтобы определять прогнозные выборки текущего блока посредством использования соседних выборок, пространственно смежных с текущим блоком, модуль 1910 интра-прогнозирования может определять информацию интра-прогнозирования, указывающую направление, в котором расположены соседние выборки, аналогичные текущему блоку, или способ определения прогнозных выборок.
Модуль 1905 интер-прогнозирования может определять опорные выборки, которые должны использоваться для прогнозирования текущего блока, из числа предварительно восстановленных выборок, сохраненных в буфере 1948 декодированных кадров (DPB).
Преобразователь 1920 выводит коэффициенты преобразования посредством выполнения преобразования для значений остаточных выборок, полученных посредством вычитания прогнозных выборок, сформированных посредством модуля 1905 интер-прогнозирования или модуля 1910 интра-прогнозирования, из исходной выборки текущего блока. Квантователь 1925 квантует коэффициенты преобразования, выводимые посредством преобразователя 1920, чтобы выводить квантованные коэффициенты преобразования. Энтропийный кодер 1930 может кодировать квантованные коэффициенты преобразования в остаточные синтаксические элементы, включающие в себя значения уровня для того, чтобы выводить квантованные коэффициенты преобразования в форме потока битов.
Квантованные коэффициенты преобразования, выводимые посредством квантователя 1925, могут обратно квантоваться и обратно преобразовываться через обратный квантователь 1933 и обратный преобразователь 1935, и в силу этого значения остаточных выборок могут формироваться снова.
Сумматор суммирует значения остаточных выборок с прогнозными выборочными значениями, чтобы выводить значение восстановленной выборки. Поствосстанавливающий фильтр 1940 может выполнять поствосстанавливающую фильтрацию относительно восстановленных выборок, и восстановленные выборки, обновленные через поствосстанавливающую фильтрацию, могут использоваться в качестве значений опорных выборок для интра-прогнозирования, которое должно выполняться в модуле 1910 интра-прогнозирования. Поствосстанавливающий фильтр 1940 может выполнять фильтрацию в области преобразования Адамара или билатеральную фильтрацию для значений восстановленных выборок.
Внутриконтурный фильтр 1945 может выполнять, по меньшей мере, одну из фильтрации для удаления блочности и адаптивной контурной фильтрации для восстановленных выборок, обновленных через поствосстанавливающую фильтрацию. Значения восстановленных выборок, обновленные через фильтрацию внутриконтурного фильтра 1945, могут сохраняться в DPB 1948 и могут использоваться в качестве значений опорных выборок для интер-прогнозирования, которое должно выполняться посредством модуля 1905 интер-прогнозирования.
Энтропийный декодер 1955 декодера 1950 может синтаксически анализировать остаточные синтаксические элементы, включающие в себя значения уровня, посредством выполнения энтропийного декодирования для принимаемого потока битов. Энтропийный декодер 1955 может восстанавливать квантованные коэффициенты преобразования из остаточных синтаксических элементов. Обратный квантователь 1960 может выводить коэффициенты преобразования посредством выполнения обратного квантования для квантованных коэффициентов преобразования, и обратный преобразователь 1965 может выводить значения остаточных выборок посредством выполнения обратного преобразования для коэффициентов преобразования.
Модуль 1970 интер-прогнозирования декодера 1950 может определять опорный кадр, смежный во времени с текущим кадром, посредством использования информации движения текущего блока, синтаксически проанализированной посредством энтропийного декодера 1955, и может определять опорный блок в опорном кадре. Модуль 1970 интер-прогнозирования может определять прогнозные выборки текущего блока посредством использования выборок опорных блоков. Модуль 1975 интра-прогнозирования декодера 1950 может определять опорные выборки, пространственно смежные с текущим блоком, посредством использования внутренней информации движения и информации движения текущего блока, синтаксически проанализированной посредством энтропийного декодера 1955, и может определять прогнозные выборки текущего блока посредством использования определенных соседних выборок.
Модуль 1970 интер-прогнозирования может определять опорные выборки, которые должны использоваться для прогнозирования текущего блока, из числа предварительно восстановленных выборок, сохраненных в буфере 1990 декодированных кадров (DPB).
Сумматор 1995 декодера 1950 суммирует остаточные значения выборок с прогнозными значениями выборок, чтобы выводить значение восстановленной выборки текущего блока. Поствосстанавливающий фильтр 1980 декодера 1950 может выполнять фильтрацию в области преобразования Адамара или билатеральную фильтрацию в отношении значений восстановленных выборок. Восстановленные выборки, обновленные через поствосстанавливающую фильтрацию поствосстанавливающего фильтра 1980, могут использоваться в качестве значений опорных выборок для интра-прогнозирования, которое должно выполняться в модуле 1975 интра-прогнозирования.
Внутриконтурный фильтр 1985 декодера 1950 может выполнять по меньшей мере одну из фильтрации для удаления блочности и адаптивной контурной фильтрации для восстановленных выборок, обновленных через поствосстанавливающую фильтрацию. Значения восстановленных выборок, обновленные через фильтрацию внутриконтурного фильтра 1985, могут сохраняться в DPB 1990 и могут использоваться в качестве значений опорных выборок для интер-прогнозирования, которое должно выполняться посредством модуля 1970 интер-прогнозирования.
Различные варианты осуществления, описанные выше, описывают операции, связанные со способом декодирования изображений, который осуществляется посредством оборудования 100 декодирования изображений. В дальнейшем в этом документе описываются операции оборудования 200 кодирования изображений, которое осуществляет способ кодирования изображений, соответствующий обратному порядку способа декодирования изображений, посредством различных вариантов осуществления.
Фиг. 2 является блок-схемой оборудования 200 кодирования изображений, допускающего кодирование изображения, на основе по меньшей мере одной из информации формы блоков и информации режима согласно форме разбиения, согласно варианту осуществления.
Оборудование 200 кодирования изображений может включать в себя кодер 220 и формирователь 210 потоков битов. Кодер 220 может принимать входное изображение и кодировать входное изображение. Кодер 220 может кодировать входное изображение, чтобы получать по меньшей мере один синтаксический элемент. Синтаксический элемент может включать в себя по меньшей мере одно из флага пропуска, режима прогнозирования, разности векторов движения, способа (или индекса) прогнозирования векторов движения, квантованного коэффициента преобразования, шаблона кодированного блока, флага кодированного блока, режима интра-прогнозирования, прямого флага, флага объединения, дельта-QP, опорного индекса, направления прогнозирования или индекса преобразования. Кодер 220 может определять контекстную модель, на основе информации формы блоков, включающей в себя по меньшей мере одно из формы, направления, отношения высоты и ширины или размера единицы кодирования.
Формирователь 210 потоков битов может формировать поток битов на основе кодированного входного изображения. Например, формирователь 210 потоков битов может формировать поток битов посредством выполнения энтропийного кодирования в отношении синтаксического элемента на основе контекстной модели. Оборудование 200 кодирования изображений может передавать поток битов в оборудование 100 декодирования изображений.
Согласно варианту осуществления, кодер 220 оборудования 200 кодирования изображений может определять форму единицы кодирования. Например, единица кодирования может иметь квадратную форму или неквадратную форму, и информация, представляющая такую форму, может включаться в информацию формы блоков.
Согласно варианту осуществления, кодер 220 может определять форму, на которую должна разбиваться единица кодирования. Кодер 220 может определять форму по меньшей мере одной единицы кодирования, включенной в единицу кодирования, и формирователь 210 потоков битов может формировать поток битов, включающий в себя информацию режима согласно форме разбиения, включающую в себя информацию относительно формы единицы кодирования.
Согласно варианту осуществления, кодер 220 может определять то, следует или нет разбивать единицу кодирования. Когда кодер 220 определяет то, что единица кодирования включает в себя только одну единицу кодирования, или то, что единица кодирования не разбивается, формирователь 210 потоков битов может формировать поток битов, включающий в себя информацию режима согласно форме разбиения, представляющую то, что единица кодирования не разбивается. Кодер 220 может разбивать единицу кодирования на множество единиц кодирования, включенных в единицу кодирования, и формирователь 210 потоков битов может формировать поток битов, включающий в себя информацию режима согласно форме разбиения, представляющую то, что единица кодирования должна разбиваться на множество единиц кодирования.
Согласно варианту осуществления, информация, представляющая число единиц кодирования, на которые разбивается единица кодирования, или направление, в котором разбивается единица кодирования, может включаться в информацию режима согласно форме разбиения. Например, информация режима согласно форме разбиения может представлять разбиение в по меньшей мере одном направлении из вертикального направления и горизонтального направления или может представлять неразбиение.
Оборудование 200 кодирования изображений может определять информацию режима согласно форме разбиения на основе режима согласно форме разбиения единицы кодирования. Оборудование 200 кодирования изображений может определять контекстную модель, на основе по меньшей мере одного из формы, направления, отношения ширины и высоты или размера единицы кодирования. Оборудование 200 кодирования изображений может формировать информацию относительно режима согласно форме разбиения для разбиения единицы кодирования в качестве потока битов на основе контекстной модели.
Чтобы определять контекстную модель, оборудование 200 кодирования изображений может получать компоновку для соответствующего по меньшей мере одного из формы, направления, отношения ширины и высоты или размера единицы кодирования в индекс для контекстной модели. Оборудование 200 кодирования изображений может получать индекс для контекстной модели, на основе по меньшей мере одной из формы, направления, отношения ширины и высоты или размера единицы кодирования, из компоновки. Оборудование 200 кодирования изображений может определять контекстную модель на основе индекса для контекстной модели.
Чтобы определять контекстную модель, оборудование 200 кодирования изображений может определять контекстную модель дополнительно на основе информации формы блоков, включающей в себя по меньшей мере одно из формы, направления, отношения ширины и высоты или размера окружающей единицы кодирования, смежной с единицей кодирования. Окружающая единица кодирования может включать в себя по меньшей мере одну из единиц кодирования, расположенных в левой нижней стороне, левой стороне, левой верхней стороне, верхней стороне, правой верхней стороне, правой стороне или правой нижней стороне единицы кодирования.
Чтобы определять контекстную модель, оборудование 200 кодирования изображений может сравнивать длину ширины верхней окружающей единицы кодирования с длиной ширины единицы кодирования. Оборудование 200 кодирования изображений может сравнивать длины высот левой и правой окружающих единиц кодирования с длиной высоты единицы кодирования. Оборудование 200 кодирования изображений может определять контекстную модель, на основе результатов сравнений.
Операции оборудования 200 кодирования изображений включают в себя контент, который является аналогичным контенту оборудования 100 декодирования изображений, описанного выше со ссылкой на фиг. 3-19, и в силу этого подробные описания означенного опускаются.
Фиг. 20 является блок-схемой структуры оборудования 2000 декодирования изображений согласно варианту осуществления.
Ссылаясь на фиг. 20, оборудование 2000 декодирования изображений может включать в себя модуль 2010 получения потоков битов и прогнозный декодер 2030. Прогнозный декодер 2030 включает в себя модуль 2032 прогнозирования векторов движения и модуль 2034 восстановления векторов движения.
Модуль 2010 получения потоков битов, показанный на фиг. 20, может соответствовать модулю 110 получения потоков битов, показанному на фиг. 1, и прогнозный декодер 2030 может соответствовать декодеру 120, показанному на фиг. 1.
Модуль 2010 получения потоков битов и прогнозный декодер 2030, согласно варианту осуществления, могут реализовываться как, по меньшей мере, один процессор. Оборудование 2000 декодирования изображений может включать в себя одно или более запоминающих устройств (не показаны) для сохранения входных и выходных данных модуля 2010 получения потоков битов и прогнозного декодера 2030. Оборудование 2000 декодирования изображений может включать в себя контроллер запоминающего устройства (не показан) для управления вводами и выводами данных запоминающего устройства (не показано).
Модуль 2010 получения потоков битов получает поток битов как результат кодирования кадра. Модуль 2010 получения потоков битов получает синтаксические элементы для декодирования кадра из потока битов. Двоичные значения, соответствующие синтаксическим элементам, могут включаться в поток битов согласно многослойной структуре кадра. Модуль 2010 получения потоков битов может получать синтаксические элементы посредством энтропийного декодирования двоичных значений, включенных в поток битов.
Поток битов может включать в себя информацию относительно режима прогнозирования текущего блока в пределах текущего кадра. Текущий блок может означать блок наибольшей единицы кодирования, единицы кодирования или единицы преобразования, разбитой из текущего кадра, который должен декодироваться.
Режим прогнозирования текущего блока может включать в себя режим интра-прогнозирования или режим интер-прогнозирования. Как описано выше, режим интер-прогнозирования представляет собой режим восстановления текущего блока из опорного блока, указываемого посредством вектора движения текущего блока в опорном кадре.
Прогнозный декодер 2030 может восстанавливать текущий блок посредством использования интра-прогнозирования или интер-прогнозирования согласно режиму прогнозирования текущего блока.
В режиме интер-прогнозирования, информация движения может использоваться для того, чтобы восстанавливать текущий блок. Информация движения текущего блока может включать в себя направление прогнозирования, индекс опорного кадра и вектор движения текущего блока. Направление прогнозирования, индекс опорного кадра и вектор движения текущего блока могут подтверждаться из информации, включенной в поток битов.
Направление прогнозирования текущего блока может представлять собой одно из направления списка 0, направления списка 1 и двойного направления. Направление прогнозирования, представляющее собой направление списка 0, означает использование кадра, включенного в список 0 опорных кадров, в качестве опорного кадра направления списка 0, и направление прогнозирования, представляющее собой направление списка 1, означает использование кадра, включенного в список 1 опорных кадров, в качестве опорного кадра направления списка 1. Направление прогнозирования, представляющее собой двойное направление, означает использование кадра, включенного в список 0 опорных кадров, в качестве опорного кадра направления списка 0, и использование кадра, включенного в список 1 опорных кадров, в качестве опорного кадра направления списка 1.
Индекс опорного кадра указывает кадр, используемый в качестве опорного кадра блока, из числа кадров, включенных в список 0 опорных кадров и/или список 1 опорных кадров. Согласно индексу опорного кадра направления списка 0, кадр, используемый в качестве опорного кадра списка 0 опорных кадров, указывается из числа кадров, включенных в направление списка 0. Согласно индексу опорного кадра направления списка 1, кадр, используемый в качестве опорного кадра списка 1 опорных кадров, указывается из числа кадров, включенных в направление списка 1.
Вектор движения указывает местоположение опорного блока в опорном кадре. Вектор движения направления списка 0 означает вектор движения, указывающий опорный блок в опорном кадре направления списка 0, и вектор движения направления списка 1 означает вектор движения, указывающий опорный блок в опорном кадре направления списка 1.
Когда направление прогнозирования текущего блока представляет собой направление списка 0, информация движения текущего блока включает в себя, по меньшей мере, одно из информации, указывающей то, что направление прогнозирования текущего блока представляет собой направление списка 0, индекса опорного кадра направления списка 0 и вектора движения направления списка 0. Когда направление прогнозирования текущего блока представляет собой направление списка 1, информация движения текущего блока включает в себя, по меньшей мере, одно из информации, указывающей то, что направление прогнозирования текущего блока представляет собой направление списка 1, индекса опорного кадра направления списка 1 и вектора движения направления списка 1. Когда направление прогнозирования текущего блока представляет собой двойное направление, информация движения текущего блока включает в себя, по меньшей мере, одно из информации, указывающей то, что направление прогнозирования текущего блока представляет собой двойное направление, индекса опорного кадра направления списка 0, индекса опорного кадра направления списка 0, вектора движения направления списка 0 и вектора движения направления списка 1.
Согласно варианту осуществления, когда режим прогнозирования текущего блока представляет собой режим интер-прогнозирования, модуль 2010 получения потоков битов может получать информацию, указывающую направление прогнозирования текущего блока и индекс опорного кадра текущего блока, из потока битов. Прогнозный декодер 2030 может получать дифференциальный вектор движения текущего блока из информации, включенной в поток битов, и комбинировать прогнозный вектор движения текущего блока с дифференциальным вектором движения, чтобы получать вектор движения текущего блока.
Прогнозный декодер 2030 может восстанавливать текущий блок, на основе направления прогнозирования, индекса опорного кадра и вектора движения текущего блока.
Ниже подробно описывается способ, осуществляемый посредством прогнозного декодера 2030, для получения прогнозного вектора движения текущего блока.
Модуль 2032 прогнозирования векторов движения согласно варианту осуществления может получать прогнозный вектор движения посредством использования векторов движения соседних блоков, смежных с текущим блоком. Соседние блоки, которые представляют собой блоки в предварительно определенных местоположениях, используемые для того, чтобы получать прогнозный вектор движения текущего блока, включаются в текущий кадр вместе с текущим блоком.
Соседние блоки могут включать в себя блок A0, блок A1, блок B0, блок B1 и блок B2.
Модуль 2032 прогнозирования векторов движения может идентифицировать местоположения блока A0, блока A1, блока B0, блока B1 и блока B2, на основе информации, указывающей доступность левого и правого блоков относительно текущего блока.
В общем видеокодеке, декодирование в направлении растрового сканирования проводится для кадра. В этом случае, левый блок относительно текущего блока полностью декодируется перед текущим блоком и доступен, и правый блок относительно текущего блока не декодируется полностью и не доступен.
В раскрытии, направление блоков декодирования, разбитых из кадра, может адаптивно определяться. Другими словами, эффективность кодирования может повышаться посредством декодирования некоторых блоков, разбитых из кадра в направлении справа налево, вместо декодирования всех блоков, разбитых из кадра в направлении растрового сканирования. Соответственно, правый блок относительно текущего блока доступен, и левый блок относительно текущего блока не доступен, либо левый и правый блоки относительно текущего блока доступны.
Определение в отношении того, доступны или нет левый блок и правый блок, может осуществляться идентично определению в отношении доступности первого соседнего блока, которое описывается в дальнейшем.
Ниже описываются местоположения соседних блоков, которые варьируются согласно доступности левого и правого блоков относительно текущего блока, со ссылкой на фиг. 21A-21C.
Фиг. 21A иллюстрирует местоположения соседних блоков, когда левый блок относительно текущего блока 2100 доступен.
Местоположения соседних блоков, когда левый блок относительно текущего блока 2100 доступен, могут быть идентичными местоположениям пространственных соседних блоков, заданных в стандарте HEVC.
Ссылаясь на фиг. 21A соседние блоки могут включать в себя левый нижний угловой блок A0, левый нижний блок A1, правый верхний угловой блок B0, правый верхний блок B1 и левый верхний угловой блок B2 относительно текущего блока 2100. Как показано на фиг. 21A, левый нижний блок A1 может быть расположен поверх левого нижнего углового блока A0, и правый верхний блок B1 может быть расположен слева от правого верхнего углового блока B0.
Фиг. 21B иллюстрирует местоположения соседних блоков, когда левый и правый блоки относительно текущего блока 2100 доступны.
Ссылаясь на фиг. 21B, соседние блоки могут включать в себя правый верхний угловой блок A0, левый нижний блок A1, левый верхний блок B0, правый нижний блок B1 и левый верхний угловой блок B2 относительно текущего блока 2100. Как показано на фиг. 21B, левый верхний угловой блок B2 может быть расположен слева от левого верхнего блока B0.
Фиг. 21C иллюстрирует местоположения соседних блоков, когда правый блок относительно текущего блока 2100 доступен.
Ссылаясь на фиг. 21C, соседние блоки могут включать в себя правый нижний угловой блок A0, правый нижний блок A1, левый верхний угловой блок B0, левый верхний блок B1 и правый верхний угловой блок B2 относительно текущего блока 2100. Как показано на фиг. 21C, правый нижний блок A1 может быть расположен поверх правого нижнего углового блока A0, и левый верхний блок B1 может быть расположен справа от левого верхнего углового блока B0.
Местоположения соседних блоков, показанных на фиг. 21A-21C, представляют собой просто пример. Согласно вариантам осуществления, местоположения соседних блоков и число соседних блоков могут варьироваться.
Модуль 2032 прогнозирования векторов движения может определять доступность левого и правого блоков относительно текущего блока и может указывать местоположения соседних блоков, которые должны использоваться для того, чтобы получать прогнозный вектор движения текущего блока, из информации, указывающей доступность левого и правого блоков относительно текущего блока.
Согласно варианту осуществления, модуль 2032 прогнозирования векторов движения выбирает первый соседний блок из информации, полученной из потока битов. Первый соседний блок может представлять собой один из блока A0, блока A1, блока B0, блока B1 и блока B2, соответствующих соседним блокам.
Согласно варианту осуществления, информация, полученная из потока битов, может представлять собой информацию, указывающую разрешение векторов движения текущего блока. Модуль 2032 прогнозирования векторов движения может подтверждать информацию, указывающую разрешение векторов движения текущего блока, согласно информации, полученной из потока битов, из множества предварительно определенных разрешений векторов движения, и может выбирать первый соседний блок для получения прогнозного вектора движения.
Разрешение векторов движения может означать точность местоположения пиксела, которое может указываться посредством вектора движения, определенного через интер-прогнозирование, из числа пикселов, включенных в опорный кадр (или интерполированный опорный кадр). Разрешение векторов движения, имеющее N-пиксельную единицу (где N является рациональным числом), означает то, что вектор движения может иметь точность в N-пиксельную единицу. Например, разрешение векторов движения в 1/4-пиксельную единицу может означать то, что вектор движения может указывать пиксел в 1/4-пиксельную единицу (т.е. в субпиксельную единицу) в интерполированном опорном кадре, и разрешение векторов движения в 1-пиксельную единицу может означать то, что вектор движения может указывать пиксел в 1-пиксельную единицу (т.е. в целочисленнопиксельную единицу) в интерполированном опорном кадре. Разрешение векторов движения, допускающее выражение вектора движения текущего блока из числа нескольких разрешений векторов движения, может адаптивно определяться.
Согласно варианту осуществления, информация, указывающая разрешение векторов движения, которое получается из потока битов, может указывать первый соседний блок из числа соседних блоков в различных местоположениях при указании одного разрешения векторов движения из числа нескольких разрешений векторов движения.
Фиг. 22 является таблицей, показывающей взаимосвязь на основе совпадения между индексами разрешений векторов движения, разрешений векторов движения и местоположений соседних блоков.
Ссылаясь на фиг. 22, разрешение векторов движения и соседний блок, соответствующий первому соседнему блоку, могут определяться согласно значениям AMVR-индекса. Например, когда AMVR-индекс равен 0, разрешение векторов движения текущего блока может выбираться в качестве 1/4-пиксельной единицы (пела), и первый соседний блок может выбираться в качестве блока A1. Когда AMVR-индекс равен 1, разрешение векторов движения текущего блока может выбираться в качестве 1/2-пиксельной единицы (пела), и первый соседний блок может выбираться в качестве блока B1.
В существующем стандарте HEVC несколько соседних блоков включаются в список возможных вариантов, и вектор движения соседнего блока в списке возможных вариантов, выбранном из информации, сигнализируемой через поток битов, используется в качестве прогнозного вектора движения. Тем не менее, согласно раскрытию, первый соседний блок, используемый для того, чтобы получать прогнозный вектор движения текущего блока, может указываться согласно информации, полученной из потока битов, а именно, информации, указывающей разрешение векторов движения текущего блока. Соответственно, специальная информация (например, mvp_l0_flag и mvp_l1_flag в HEVC), указывающая один соседний блок, включенный в список возможных вариантов, не включается в поток битов.
Модуль 2032 прогнозирования векторов движения определяет доступность первого соседнего блока, выбранного согласно информации, указывающей разрешение векторов движения. Подробно, модуль 2032 прогнозирования векторов движения определяет доступность первого соседнего блока, согласно по меньшей мере одному из того, отличается или нет плитка, включающая в себя первый соседний блок, от плитки, включающей в себя текущий блок, того, расположен или нет первый соседний блок за пределами текущего кадра, того, спрогнозирован ли первый соседний блок посредством интра-прогнозирования или нет, и того, выполнено или нет восстановление первого соседнего блока.
Например, когда любое из следующих четырех условий удовлетворяется, модуль 2032 прогнозирования векторов движения может определять то, что первый соседний блок не доступен.
(Условие 1) Плитка, включающая в себя первый соседний блок, отличается от плитки, включающей в себя текущий блок.
(Условие 2) Первый соседний блок расположен за пределами текущего кадра.
(Условие 3) Первый соседний блок не восстанавливается.
(Условие 4) Первый соседний блок кодирован в режиме интра-прогнозирования или режиме внутриблочного копирования (IBC).
В режиме IBC выполняется поиск блока прогнозирования, соответствующего текущему блоку, из текущего кадра. Блок прогнозирования может быть найден через оценку движения относительно текущего кадра. Например, можно выполнять поиск блока прогнозирования в текущем кадре в единицах целочисленных пикселов, и позиционная взаимосвязь между текущим блоком и найденным блоком прогнозирования может сообщаться в декодер.
Согласно варианту осуществления, когда из информации, указывающей доступность первого соседнего блока, идентифицируется то, что первый соседний блок доступен, и индекс опорного кадра первого соседнего блока для направления прогнозирования, идентичного направлению прогнозирования текущего блока, не является идентичным предварительно определенному значению (например, -1), модуль 2032 прогнозирования векторов движения может определять то, что вектор движения первого соседнего блока доступен в качестве прогнозного вектора движения. Когда вектор движения первого соседнего блока доступен в качестве прогнозного вектора движения, модуль 2032 прогнозирования векторов движения извлекает прогнозный вектор движения текущего блока из вектора движения первого соседнего блока.
Даже когда из информации, указывающей доступность первого соседнего блока, идентифицируется то, что первый соседний блок не доступен, или первый соседний блок доступен, когда индекс опорного кадра первого соседнего блока для направления прогнозирования, идентичного направлению прогнозирования текущего блока, является идентичным предварительно определенному значению, может определяться то, что вектор движения первого соседнего блока не доступен в качестве прогнозного вектора движения. В этом случае, модуль 2032 прогнозирования векторов движения может получать вектор движения по умолчанию согласно процедуре извлечения векторов движения по умолчанию, которая описывается ниже, и может получать прогнозный вектор движения текущего блока посредством использования вектора движения по умолчанию.
Когда индекс опорного кадра первого соседнего блока для направления прогнозирования, идентичного направлению прогнозирования текущего блока, не является идентичным предварительно определенному значению, это может означать то, что имеется вектор движения первого соседнего блока, который указывает опорный кадр направления прогнозирования, идентичного направлению прогнозирования текущего блока. С другой стороны, когда индекс опорного кадра первого соседнего блока для направления прогнозирования, идентичного направлению прогнозирования текущего блока, является идентичным предварительно определенному значению, это может означать то, что отсутствуют векторы движения первого соседнего блока, которые указывают опорный кадр направления прогнозирования, идентичного направлению прогнозирования текущего блока.
Индекс опорного кадра первого соседнего блока включает в себя индекс опорного кадра направления списка 0 и индекс опорного кадра направления списка 1. Значение индекса опорного кадра направления списка 0 и значение индекса опорного кадра направления списка 1 могут определяться согласно направлению прогнозирования первого соседнего блока.
Например, когда направление прогнозирования первого соседнего блока представляет собой направление списка 0, индекс опорного кадра направления списка 0 задается в качестве значения индекса (например, ref_idx_l0), полученного из потока битов, и индекс опорного кадра направления списка 1 задается в качестве предварительно определенного значения. Поскольку кадры, включенные в список опорных кадров, имеют индексы 0-n (где n является натуральным числом), предварительно определенное значение может быть значением, отличающимся от 0-n, например, -1.
Когда направление прогнозирования первого соседнего блока представляет собой направление списка 1, индекс опорного кадра направления списка 1 задается в качестве значения индекса (например, ref_idx_l1), полученного из потока битов, и индекс опорного кадра направления списка 0 задается в качестве предварительно определенного значения.
Когда направление прогнозирования первого соседнего блока представляет собой двойное направление, индекс опорного кадра направления списка 0 и индекс опорного кадра направления списка 1 задаются в качестве значений индексов (например, ref_idx_l0 и ref_idx_l1), полученных из потока битов.
Ниже описывается случай, в котором индекс опорного кадра первого соседнего блока для направления прогнозирования, идентичного направлению прогнозирования текущего блока, является идентичным предварительно определенному значению или не является идентичным предварительно определенному значению, со ссылкой на фиг. 23A-23C.
Фиг. 23A иллюстрирует случай, в котором индекс опорного кадра первого соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, не является идентичным предварительно определенному значению.
Ссылаясь на фиг. 23A, соответствующие направления прогнозирования текущего блока 2312 и первого соседнего блока 2314 представляют собой направление списка 0. Соответственно, вектор MV движения первого соседнего блока 2314 указывает опорный блок в опорном кадре 2330, включенном в список 0 опорных кадров. Индекс опорного кадра первого соседнего блока 2314 в направлении списка 0 задается согласно информации, полученной из потока битов, и индекс опорного кадра первого соседнего блока 2314 в направлении списка 1 задается в качестве предварительно определенного значения. Поскольку индекс опорного кадра первого соседнего блока 2314 в идентичном направлении прогнозирования, а именно, в направлении списка 0, с направлением прогнозирования текущего блока 2312 не является идентичным предварительно определенному значению, модуль 2032 прогнозирования векторов движения получает прогнозный вектор движения текущего блока 2312 посредством использования вектора MV движения первого соседнего блока 2314.
Аналогично, когда соответствующие направления прогнозирования текущего блока 2312 и первого соседнего блока 2314 представляют собой направление списка 1, поскольку индекс опорного кадра первого соседнего блока 2314 в идентичном направлении прогнозирования, а именно, в направлении списка 1, с направлением прогнозирования текущего блока 2312 не является идентичным предварительно определенному значению, модуль 2032 прогнозирования векторов движения получает прогнозный вектор движения текущего блока 2312 посредством использования вектора MV движения первого соседнего блока 2314.
Фиг. 23B иллюстрирует случай, в котором индекс опорного кадра первого соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, является идентичным предварительно определенному значению.
Ссылаясь на фиг. 23B, направления прогнозирования текущего блока 2312 представляют собой направление списка 1, и направления прогнозирования первого соседнего блока 2314 представляет собой направление списка 0. Вектор MV движения первого соседнего блока 2314 указывает опорный блок в опорном кадре 2330, включенном в список 0 опорных кадров. Индекс опорного кадра первого соседнего блока 2314 в направлении списка 0 задается согласно информации, полученной из потока битов, и индекс опорного кадра первого соседнего блока 2314 в направлении списка 1 задается в качестве предварительно определенного значения. Поскольку индекс опорного кадра первого соседнего блока 2314 в идентичном направлении прогнозирования, а именно, в направлении списка 1, с направлением прогнозирования текущего блока 2312 является идентичным предварительно определенному значению, модуль 2032 прогнозирования векторов движения получает прогнозный вектор движения текущего блока 2312 посредством использования вектора движения по умолчанию, который описывается ниже.
Аналогично, когда направления прогнозирования текущего блока 2312 представляют собой направление списка 0, и направления прогнозирования первого соседнего блока 2314 представляют собой направление списка 1, поскольку индекс опорного кадра первого соседнего блока 2314 в идентичном направлении прогнозирования, а именно, в направлении списка 0, с направлением прогнозирования текущего блока 2312 является идентичным предварительно определенному значению, модуль 2032 прогнозирования векторов движения получает прогнозный вектор движения текущего блока 2312 посредством использования вектора движения по умолчанию.
Фиг. 23C иллюстрирует случай, в котором, когда направление прогнозирования текущего блока представляет собой двойное направление, один из индекса опорного кадра первого соседнего блока в направлении списка 0 и индекса опорного кадра первого соседнего блока в направлении списка 1 является идентичным предварительно определенному значению, а другой не является идентичным предварительно определенному значению.
Ссылаясь на фиг. 23C, направления прогнозирования текущего блока 2312 представляют собой двойное направление, и направления прогнозирования первого соседнего блока 2314 представляют собой направление списка 1. Вектор MV движения первого соседнего блока 2314 указывает опорный блок в опорном кадре 2350, включенном в список 1 опорных кадров. Индекс опорного кадра первого соседнего блока 2314 в направлении списка 0 задается в качестве предварительно определенного значения, и индекс опорного кадра первого соседнего блока 2314 в направлении списка 1 задается согласно информации, полученной из потока битов. Как описано выше, направление прогнозирования, представляющее собой двойное направление, включает в себя направление списка 0 и направление списка 1. Поскольку индекс опорного кадра первого соседнего блока 2314 в направлении списка 0 является идентичным предварительно определенному значению, модуль 2032 прогнозирования векторов движения получает прогнозный вектор движения текущего блока 2312 в направлении списка 0 посредством использования вектора движения по умолчанию. Поскольку индекс опорного кадра первого соседнего блока 2314 в направлении списка 1 не является идентичным предварительно определенному значению, модуль 2032 прогнозирования векторов движения получает прогнозный вектор движения текущего блока 2312 посредством использования вектора MV движения первого соседнего блока 2314 в направлении списка 1.
Когда направление прогнозирования текущего блока 2312 представляет собой двойное направление, и направление прогнозирования первого соседнего блока 2314 представляет собой направление списка 0, модуль 2032 прогнозирования векторов движения получает прогнозный вектор движения текущего блока 2312 в направлении списка 1 посредством использования вектора MV движения первого соседнего блока 2314 в направлении списка 0 и получает прогнозный вектор движения текущего блока 2312 в направлении списка 1 посредством использования вектора движения по умолчанию.
В раскрытии, когда первый соседний блок доступен и индекс опорного кадра первого соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, не является идентичным предварительно определенному значению, определяется то, что вектор движения первого соседнего блока доступен в качестве прогнозного вектора движения. Прогнозный вектор движения текущего блока получается из вектора движения первого соседнего блока.
Когда определено, что вектор движения первого соседнего блока доступен в качестве прогнозного вектора движения, только согласно такому условию, что первый соседний блок должен быть доступным, прогнозный вектор движения первого соседнего блока с большой вероятностью задается в качестве нулевого вектора, а именно, (0, 0). Другими словами, когда первый соседний блок доступен, но отсутствуют векторы движения первого соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, вектор движения первого соседнего блока может не использоваться в качестве прогнозного вектора движения текущего блока. Таким образом, прогнозный вектор движения текущего блока может определяться в качестве нулевого вектора и в силу этого становится фактором, который увеличивает число битов, необходимых для выражения дифференциального вектора движения.
В раскрытии, если не только такое условие, что первый соседний блок должен быть доступным, но также и такое условие, что вектор движения первого соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, должен существовать, удовлетворяются, прогнозный вектор движения текущего блока получается с использованием вектора движения первого соседнего блока, приводя к уменьшению числа битов, необходимых для выражения дифференциального вектора движения.
Ниже описывается процесс извлечения вектора движения по умолчанию, когда вектор движения первого соседнего блока не доступен в качестве прогнозного вектора движения.
Согласно варианту осуществления, когда вектор движения первого соседнего блока не доступен в качестве прогнозного вектора движения, модуль 2032 прогнозирования векторов движения может задавать вектор движения второго соседнего блока в предварительно определенном местоположении в качестве вектора движения по умолчанию. Второй соседний блок может предоставляться во множестве. В этом случае, вектор движения второго соседнего блока может задаваться в качестве вектора движения по умолчанию посредством определения доступности множества вторых соседних блоков.
Второй соседний блок может соответствовать, по меньшей мере, одному из соседних блоков. Например, второй соседний блок может включать в себя блок A1 и блок B1. В качестве другого примера, местоположение второго соседнего блока может отличаться от местоположений блока A0, блока A1, блока B0, блока B1 и блока B2.
Когда второй соседний блок включает в себя блок A1 и блок B1, местоположения блока A1 и блока B1 могут варьироваться согласно доступности левого блока и правого блока относительно текущего блока, как описано выше. Подробно, ссылаясь на фиг. 21A-21C, когда левый блок относительно текущего блока доступен, блок A1 может быть расположен в левой верхней стороне текущего блока, и блок B1 может быть расположен в правой верхней стороне текущего блока. Когда левый и правый блоки относительно текущего блока доступны, блок A1 может быть расположен в левой нижней стороне текущего блока, и блок B1 может быть расположен в правой нижней стороне текущего блока. Когда правый блок относительно текущего блока доступен, блок A1 может быть расположен в правой нижней стороне текущего блока, и блок B1 может быть расположен в левой верхней стороне текущего блока.
Модуль 2032 прогнозирования векторов движения может определять доступность блока A1, и когда блок A1 идентифицируется как доступный согласно информации, указывающей то, доступен или нет блок A1, может определять вектор движения блока A1 в качестве вектора движения по умолчанию. Когда блок A1 не доступен, модуль 2032 прогнозирования векторов движения может определять доступность блока B1, и когда блок B1 идентифицируется как доступный согласно информации, указывающей то, доступен или нет блок B1, может определять вектор движения блока B1 в качестве вектора движения по умолчанию. Другими словами, модуль 2032 прогнозирования векторов движения может проверять то, могут или нет векторы движения блока A1 и блока B1 использоваться в качестве вектора движения по умолчанию в порядке "блок A1 --> блок B1".
Доступность блока A1 и доступность блока B1 могут определяться на основе вышеописанных четырех условий для определения доступности первого соседнего блока.
Согласно варианту осуществления, когда второй соседний блок идентифицируется как доступный согласно информации, указывающей то, доступен или нет второй соседний блок, и индекс опорного кадра второго соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, является идентичным индексу опорного кадра текущего блока или не является идентичным предварительно определенному значению (т.е. когда имеется вектор движения второго соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока), модуль 2032 прогнозирования векторов движения может задавать вектор движения второго соседнего блока в качестве вектора движения по умолчанию.
Когда из информации, указывающей доступность второго соседнего блока, идентифицируется то, что второй соседний блок не доступен, или отсутствуют векторы движения второго соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, модуль 2032 прогнозирования векторов движения может задавать вектор движения блока, декодированного перед текущим блоком, в качестве вектора движения по умолчанию.
Модуль 2032 прогнозирования векторов движения может определять вектор движения первого соседнего блока или вектор движения по умолчанию в качестве прогнозного вектора движения текущего блока.
Когда вектор движения первого соседнего блока определяется в качестве прогнозного вектора движения, и индекс опорного кадра первого соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, не является идентичным индексу опорного кадра текущего блока, модуль 2032 прогнозирования векторов движения может обновлять прогнозный вектор движения текущего блока посредством масштабирования прогнозного вектора движения текущего блока согласно расстоянию между текущим кадром и опорным кадром текущего блока и расстоянию между текущим кадром и опорным кадром первого соседнего блока.
Согласно варианту осуществления, когда индекс опорного кадра второго соседнего блока (или блока, декодированного перед текущим блоком, причем блок используется для того, чтобы получать вектор движения по умолчанию) в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, является идентичным индексу опорного кадра текущего блока, модуль 2032 прогнозирования векторов движения может определять вектор движения по умолчанию в качестве прогнозного вектора движения текущего блока. Когда индекс опорного кадра второго соседнего блока (или блока, декодированного перед текущим блоком, причем блок используется для того, чтобы получать вектор движения по умолчанию) в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, не является идентичным индексу опорного кадра текущего блока, модуль 2032 прогнозирования векторов движения может масштабировать вектор движения по умолчанию согласно расстоянию между текущим кадром и опорным кадром текущего блока и расстоянию между текущим кадром и опорным кадром второго соседнего блока (или блока, декодированного перед текущим блоком), и может определять масштабированный вектор движения по умолчанию в качестве прогнозного вектора движения текущего блока.
После получения прогнозного вектора движения текущего блока, модуль 2032 прогнозирования векторов движения может регулировать прогнозный вектор движения текущего блока, когда разрешение векторов движения текущего блока отличается от предварительно определенного разрешения векторов движения (например, минимального разрешения векторов движения из множества разрешений векторов движения). Причина регулирования прогнозного вектора движения состоит в этом, чтобы обеспечивать совпадение разрешения векторов движения текущего блока с разрешением прогнозного вектора движения.
Чтобы регулировать прогнозный вектор движения, выражаемый в координате в кадре, интерполированном согласно минимальному разрешению векторов движения, до разрешения векторов движения текущего блока, модуль 2032 прогнозирования векторов движения может регулировать прогнозный вектор движения таким образом, что прогнозный вектор движения указывает соседние пикселы вместо пиксела, указываемого посредством прогнозного вектора движения.
Например, когда минимальное разрешение векторов движения составляет 1/4-пиксельную единицу, и разрешение векторов движения текущего блока составляет 1-пиксельную единицу, модуль 2032 прогнозирования векторов движения может регулировать прогнозный вектор движения (19, 27) до (20, 28). Это обусловлено этим, что, когда минимальное разрешение векторов движения составляет 1/4-пиксельную единицу, целочисленный пиксел имеет координату (4n, 4m) в интерполированном кадре.
Согласно варианту осуществления, при регулировании прогнозного вектора движения согласно разрешению векторов движения текущего блока, модуль 2032 прогнозирования векторов движения может обеспечивать возможность отрегулированному прогнозному вектору движения указывать пиксел, расположенный в правой верхней стороне пиксела, указываемого посредством прогнозного вектора движения, еще не отрегулированного. Согласно другому варианту осуществления, модуль 2032 прогнозирования векторов движения может обеспечивать возможность отрегулированному прогнозному вектору движения указывать пиксел, расположенный в левой верхней стороне пиксела, указываемого посредством прогнозного вектора движения, еще не отрегулированного, пиксел, расположенный в левой нижней стороне пиксела, указываемого посредством прогнозного вектора движения, еще не отрегулированного, либо пиксел, расположенный в правой нижней стороне пиксела, указываемого посредством прогнозного вектора движения, еще не отрегулированного.
Для обобщения вышеописанного контента согласно варианту осуществления, когда вектор движения первого соседнего блока доступен в качестве прогнозного вектора движения, вектор движения первого соседнего блока определяется в качестве прогнозного вектора движения текущего блока. Когда индекс опорного кадра первого соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, не является идентичным индексу опорного кадра текущего блока, прогнозный вектор движения масштабируется. Когда разрешение векторов движения текущего блока не является идентичным предварительно определенному разрешению векторов движения из множества разрешений векторов движения, прогнозный вектор движения или масштабированный прогнозный вектор движения регулируется согласно разрешению векторов движения текущего блока.
Когда вектор движения первого соседнего блока не доступен в качестве прогнозного вектора движения, вектор движения по умолчанию извлекается. Когда индекс опорного кадра блока для направления прогнозирования, идентичного направлению прогнозирования текущего блока (блока, используемого для того, чтобы извлекать вектор движения по умолчанию) не является идентичным индексу опорного кадра текущего блока, вектор движения по умолчанию масштабируется, и масштабированный вектор движения по умолчанию определяется в качестве прогнозного вектора движения текущего блока. Когда разрешение векторов движения текущего блока не является идентичным предварительно определенному разрешению векторов движения из множества разрешений векторов движения, прогнозный вектор движения регулируется согласно разрешению векторов движения текущего блока.
Модуль 2034 восстановления векторов движения получает вектор движения текущего блока посредством комбинирования прогнозного вектора движения текущего блока с дифференциальным вектором движения, полученным из потока битов. Модуль 2034 восстановления векторов движения может получать вектор движения текущего блока посредством суммирования прогнозного вектора движения текущего блока с дифференциальным вектором движения.
Прогнозный декодер 2030 может восстанавливать текущий блок посредством интер-прогнозирования текущего блока согласно направлению прогнозирования, индексу опорного кадра и вектору движения текущего блока.
Фиг. 24 является блок-схемой последовательности операций способа декодирования вектора движения, согласно варианту осуществления.
На этапе S2410 оборудование 2000 декодирования изображений определяет доступность первого соседнего блока, выбранного согласно информации, полученной из потока битов, из числа соседних блоков, смежных с текущим блоком.
Согласно варианту осуществления, информация, полученная из потока битов, может включать в себя информацию, указывающую разрешение векторов движения текущего блока из множества разрешений векторов движения.
На этапе S2420 оборудование 2000 декодирования изображений определяет то, доступен или нет первый соседний блок, и то, существует или нет вектор движения первого соседнего блока для направления прогнозирования, идентичного направлению прогнозирования текущего блока.
На этапе S2430, когда первый соседний блок доступен и вектор движения первого соседнего блока для направления прогнозирования, идентичного направлению прогнозирования текущего блока, существует, оборудование 2000 декодирования изображений получает прогнозный вектор движения текущего блока из вектора движения первого соседнего блока.
На этапе S2440, когда первый соседний блок не доступен или вектор движения первого соседнего блока для направления прогнозирования, идентичного направлению прогнозирования текущего блока, не существует, оборудование 2000 декодирования изображений получает прогнозный вектор движения текущего блока из вектора движения второго соседнего блока.
Как описано выше, когда второй соседний блок не доступен, прогнозный вектор движения текущего блока может получаться из вектора движения блока, декодированного перед текущим блоком.
На этапе S2450 оборудование 2000 декодирования изображений получает вектор движения текущего блока посредством комбинирования прогнозного вектора движения текущего блока с дифференциальным вектором движения.
Фиг. 25 является блок-схемой структуры оборудования 2500 кодирования изображений согласно варианту осуществления.
Ссылаясь на фиг. 25, оборудование 2500 кодирования изображений включает в себя прогнозный кодер 2510 и формирователь 2530 потоков битов. Прогнозный кодер 2510 может включать в себя модуль 2512 прогнозирования векторов движения и модуль 2514 кодирования векторов движения.
Прогнозный кодер 2510 может соответствовать кодеру 220, показанному на фиг. 2, и формирователь 2530 потоков битов может соответствовать формирователю 210 потоков битов, показанному на фиг. 2.
Прогнозный кодер 2510 и формирователь 2530 потоков битов, согласно варианту осуществления, могут реализовываться как по меньшей мере один процессор. Оборудование 2500 кодирования изображений может включать в себя одно или более запоминающих устройств (не показаны) для сохранения входных и выходных данных прогнозного кодера 2510 и формирователя 2530 потоков битов. Оборудование 2500 кодирования изображений может включать в себя контроллер запоминающего устройства (не показан) для управления вводами и выводами данных запоминающего устройства (не показано).
Прогнозный кодер 2510 кодирует кадр согласно режиму прогнозирования, и формирователь 2530 потоков битов формирует поток битов, включающий в себя информацию, сформированную как результат кодирования кадра.
Прогнозный кодер 2510 может определять режим прогнозирования текущего блока в пределах текущего кадра. Когда режим прогнозирования текущего блока определяется в качестве режима интер-прогнозирования, формирователь 2530 потоков битов включает в себя информацию движения текущего блока в потоке битов.
Модуль 2512 прогнозирования векторов движения прогнозирует вектор движения текущего блока, кодированного в режиме интер-прогнозирования.
Модуль 2512 прогнозирования векторов движения согласно варианту осуществления может получать прогнозный вектор движения посредством использования векторов движения соседних блоков, смежных с текущим блоком. Местоположения соседних блоков описываются выше, и в силу этого их подробное описание опускается.
Согласно варианту осуществления, модуль 2512 прогнозирования векторов движения выбирает первый соседний блок из соседнего блока. Первый соседний блок может представлять собой один из блока A0, блока A1, блока B0, блока B1 и блока B2, соответствующих соседним блокам.
Согласно варианту осуществления, модуль 2512 прогнозирования векторов движения может выбирать первый соседний блок, соотнесенный с разрешением векторов движения текущего блока из множества разрешений векторов движения.
Модуль 2512 прогнозирования векторов движения определяет доступность первого соседнего блока. Подробно, модуль 2512 прогнозирования векторов движения определяет доступность первого соседнего блока, согласно по меньшей мере одному из того, отличается или нет плитка, включающая в себя первый соседний блок, от плитки, включающей в себя текущий блок, того, расположен или нет первый соседний блок за пределами текущего кадра, того, спрогнозирован ли первый соседний блок посредством интра-прогнозирования или нет, и того, выполнено или нет восстановление первого соседнего блока.
Согласно варианту осуществления, когда из информации, указывающей доступность первого соседнего блока, идентифицируется то, что первый соседний блок доступен и индекс опорного кадра первого соседнего блока для направления прогнозирования, идентичного направлению прогнозирования текущего блока, не является идентичным предварительно определенному значению (т.е. когда вектор движения первого соседнего блока для направления прогнозирования, идентичного направлению прогнозирования текущего блока, существует), модуль 2512 прогнозирования векторов движения может определять то, что вектор движения первого соседнего блока доступен в качестве прогнозного вектора движения. Предварительно определенное значение, например, может составлять -1. Когда вектор движения первого соседнего блока доступен в качестве прогнозного вектора движения, модуль 2512 прогнозирования векторов движения извлекает прогнозный вектор движения текущего блока из вектора движения первого соседнего блока.
Когда из информации, указывающей доступность первого соседнего блока, идентифицируется то, что первый соседний блок не доступен, или индекс опорного кадра первого соседнего блока для направления прогнозирования, идентичного направлению прогнозирования текущего блока, является идентичным предварительно определенному значению, может определяться то, что вектор движения первого соседнего блока не доступен в качестве прогнозного вектора движения. В этом случае, модуль 2512 прогнозирования векторов движения может получать прогнозный вектор движения текущего блока посредством использования вектора движения по умолчанию.
Согласно варианту осуществления, когда вектор движения первого соседнего блока не доступен в качестве прогнозного вектора движения, модуль 2512 прогнозирования векторов движения может задавать вектор движения второго соседнего блока в предварительно определенном местоположении в качестве вектора движения по умолчанию. Второй соседний блок может предоставляться во множестве. В этом случае, вектор движения второго соседнего блока может задаваться в качестве вектора движения по умолчанию посредством определения доступности множества вторых соседних блоков.
Когда второй соседний блок включает в себя блок A1 и блок B1, модуль 2512 прогнозирования векторов движения может определять доступность блока A1, и когда блок A1 идентифицируется как доступный согласно информации, указывающей то, доступен или нет блок A1, может определять вектор движения блока A1 в качестве вектора движения по умолчанию. Когда блок A1 не доступен, модуль 2512 прогнозирования векторов движения может определять доступность блока B1, и когда блок B1 идентифицируется как доступный согласно информации, указывающей то, доступен или нет блок B1, может определять вектор движения блока B1 в качестве вектора движения по умолчанию. Другими словами, модуль 2512 прогнозирования векторов движения может проверять то, могут или нет векторы движения блока A1 и блока B1 использоваться в качестве вектора движения по умолчанию в порядке "блок A1 --> блок B1".
Согласно варианту осуществления, когда второй соседний блок идентифицируется как доступный согласно информации, указывающей то, доступен или нет второй соседний блок, и индекс опорного кадра второго соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, является идентичным индексу опорного кадра текущего блока или не является идентичным предварительно определенному значению (т.е. когда имеется вектор движения второго соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока), модуль 2512 прогнозирования векторов движения может задавать вектор движения второго соседнего блока в качестве вектора движения по умолчанию.
Когда из информации, указывающей доступность второго соседнего блока, идентифицируется то, что второй соседний блок не доступен, или индекс опорного кадра второго соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, является идентичным предварительно определенному значению, модуль 2512 прогнозирования векторов движения может задавать вектор движения блока, кодированного перед текущим блоком, в качестве вектора движения по умолчанию.
Модуль 2512 прогнозирования векторов движения может определять вектор движения первого соседнего блока или вектор движения по умолчанию в качестве прогнозного вектора движения текущего блока.
Когда вектор движения первого соседнего блока определяется в качестве прогнозного вектора движения и индекс опорного кадра первого соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, не является идентичным индексу опорного кадра текущего блока, модуль 2512 прогнозирования векторов движения может обновлять прогнозный вектор движения текущего блока посредством масштабирования прогнозного вектора движения текущего блока согласно расстоянию между текущим кадром и опорным кадром текущего блока и расстоянию между текущим кадром и опорным кадром первого соседнего блока.
Когда вектор движения по умолчанию получен, согласно варианту осуществления, когда индекс опорного кадра второго соседнего блока (или блока, декодированного перед текущим блоком, причем блок используется для того, чтобы получать вектор движения по умолчанию) в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, является идентичным индексу опорного кадра текущего блока, модуль 2512 прогнозирования векторов движения может определять вектор движения по умолчанию в качестве прогнозного вектора движения текущего блока. Когда индекс опорного кадра второго соседнего блока (или блока, декодированного перед текущим блоком, причем блок используется для того, чтобы получать вектор движения по умолчанию) в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, не является идентичным индексу опорного кадра текущего блока, модуль 2512 прогнозирования векторов движения может масштабировать вектор движения по умолчанию согласно расстоянию между текущим кадром и опорным кадром текущего блока и расстоянию между текущим кадром и опорным кадром второго соседнего блока (или блока, декодированного перед текущим блоком), и может определять масштабированный вектор движения по умолчанию в качестве прогнозного вектора движения текущего блока.
После того, как прогнозный вектор движения текущего блока получается, модуль 2512 прогнозирования векторов движения может регулировать прогнозный вектор движения текущего блока, когда разрешение векторов движения текущего блока отличается от предварительно определенного разрешения векторов движения (например, минимального разрешения векторов движения из множества разрешений векторов движения).
Модуль 2514 кодирования векторов движения получает дифференциальный вектор движения между вектором движения текущего блока и прогнозным вектором движения. Модуль 2514 кодирования векторов движения может получать дифференциальный вектор движения посредством вычитания прогнозного вектора движения из вектора движения текущего блока.
Формирователь 2530 потоков битов формирует поток битов, включающий в себя информацию, указывающую дифференциальный вектор движения, и информацию, указывающую первый соседний блок из числа соседних блоков. Как описано выше, информация, указывающая первый соседний блок, может представлять собой информацию, указывающую разрешение векторов движения текущего блока из множества разрешений векторов движения.
Фиг. 26 является блок-схемой последовательности операций способа кодирования вектора движения, согласно варианту осуществления.
На этапе S2610 оборудование 2500 кодирования изображений определяет доступность первого соседнего блока, выбранного из соседних блоков, смежных с текущим блоком. Согласно варианту осуществления, оборудование 2500 кодирования изображений может выбирать первый соседний блок, соответствующий разрешению векторов движения текущего блока.
На этапе S2620 оборудование 2500 кодирования изображений определяет то, доступен или нет первый соседний блок, и то, существует или нет вектор движения первого соседнего блока для направления прогнозирования, идентичного направлению прогнозирования текущего блока.
На этапе S2630, когда первый соседний блок доступен и вектор движения первого соседнего блока для направления прогнозирования, идентичного направлению прогнозирования текущего блока, существует, оборудование 2500 кодирования изображений получает прогнозный вектор движения текущего блока из вектора движения первого соседнего блока.
На этапе S2640, когда первый соседний блок не доступен или вектор движения первого соседнего блока для направления прогнозирования, идентичного направлению прогнозирования текущего блока, не существует, оборудование 2500 кодирования изображений получает прогнозный вектор движения текущего блока из вектора движения второго соседнего блока.
Когда второй соседний блок не доступен, прогнозный вектор движения текущего блока может получаться из вектора движения блока, кодированного перед текущим блоком.
На этапе S2650 оборудование 2500 кодирования изображений получает дифференциальный вектор движения между вектором движения текущего блока и прогнозным вектором движения и формирует поток битов, включающий в себя информацию, указывающую дифференциальный вектор движения, и информацию, указывающую первый соседний блок. Информация, указывающая первый соседний блок, может представлять собой информацию, указывающую разрешение векторов движения текущего блока из множества разрешений векторов движения.
Фиг. 27 и 28 являются видами для пояснения процесса получения прогнозного вектора движения, согласно варианту осуществления.
Фиг. 27 и 28 иллюстрируют примеры вышеописанных вариантов осуществления. На фиг. 27 и 28, LX, включенный в mvpLX и mvLX, указывает направление прогнозирования текущего блока. Другими словами, когда направление прогнозирования текущего блока представляет собой L0-направление, X равен 0, а когда направление прогнозирования текущего блока представляет собой L1-направление, X равен 1. Когда направление прогнозирования текущего блока представляет собой двойное направление, X может последовательно иметь значения в 0 и 1.
На S2710 флаг mvpAvailFlag, представляющий доступность прогнозного вектора движения, задается равным 0.
На S2720 блок, который должен использоваться для того, чтобы получать прогнозный вектор движения текущего блока, указывается согласно информации amvr_idx, указывающей разрешение векторов движения текущего блока. Когда информация amvr_idx равна 1, блок B1 выбирается. Доступность блока B1 определяется. Определение в отношении доступности блока B1 может выполняться согласно вышеописанным четырем условиям для определения доступности первого соседнего блока. Фиг. 27 иллюстрирует только процесс, когда amvr_idx равен 1, чтобы опускать избыточное описание, но блоки в различных местоположениях выбираются согласно значению amvr_idx. Например, как показано на фиг. 22, может выбираться блок, с которым соотнесена информация amvr_idx.
На S2730, когда блок B1 идентифицируется как доступный из информации availableB1, указывающей доступность блока B1, и индекс RefIdxLX опорного кадра блока B1 направления прогнозирования, идентичного направлению прогнозирования текущего блока, не является идентичным -1, флаг mvpAvailFlag, представляющий доступность прогнозного вектора движения, задается равным 1, и вектор движения блока B1 задается в качестве прогнозного вектора mvpLX движения.
На S2740, когда индекс refIdxLX опорного кадра текущего блока не является идентичным индексу RefIdxLX[xNbB1][yNbB1] опорного кадра блока B1, прогнозный вектор mvpLX движения масштабируется согласно соотношению distScaleFactorLX между расстоянием currPocDiffLX между текущим кадром и опорным кадром RefPicListX[RefIdxLX[xNbB1][yNbB1]] блока B1 и расстоянием targetPocDiffLX между текущим кадром и опорным кадром RefPicListX[refIdxLX] текущего блока.
На S2750, когда amvr_idx не равен 0, а именно, когда разрешение векторов движения текущего блока отличается от предварительно определенного разрешения векторов движения (например, минимального разрешения векторов движения), прогнозный вектор mvpLX движения регулируется. Когда amvr_idx равен 0, а именно, когда прогнозный вектор движения получается из вектора движения блока A1, прогнозный вектор движения не регулируется.
Затем, ссылаясь на фиг. 28, на S2810, когда флаг mvpAvailFlag, представляющий доступность прогнозного вектора движения равен 0, а именно, когда блок B1 идентифицируется как недоступный из информации availableB1, указывающей доступность блока B1, или индекс RefIdxLX[xNbB1][yNbB1] опорного кадра блока B1 направления прогнозирования, идентичного направлению прогнозирования текущего блока, является идентичным -1, процесс извлечения вектора движения по умолчанию через S2820-S2890 выполняется.
На S2820 определяются доступность блока A1 и доступность блока B1. Определения в отношении доступности блока A1 и доступности блока B1 могут выполняться согласно вышеописанным четырем условиям для определения доступности первого соседнего блока.
На S2830 компонент по оси X и компонент по оси Y вектора DefaultMvLX движения по умолчанию задаются равными 0.
На S2840, когда блок A1 идентифицируется как доступный из информации availableA1, указывающей доступность блока A1, и индекс refIdxLX опорного кадра текущего блока является идентичным индексу RefIdxLX[xNbA1][yNbA1] опорного кадра блока A1, вектор движения блока A1 задается в качестве вектора движения по умолчанию.
На S2850, когда условие, упомянутое на S2840, не удовлетворяется, блок B1 идентифицируется как доступный из информации availableB1, указывающей доступность блока B1, и индекс refIdxLX опорного кадра текущего блока является идентичным индексу RefIdxLX[xNbB1][yNbB1] опорного кадра блока B1, вектор движения блока B1 задается в качестве вектора движения по умолчанию.
На S2860, когда условие, упомянутое на S2850, не удовлетворяется, блок A1 идентифицируется как доступный из информации availableA1, указывающей доступность блока A1, и индекс RefIdxLX[xNbA1][yNbA1] опорного кадра блока A1 не является идентичным -1, вектор движения блока A1 задается в качестве вектора движения по умолчанию.
На S2870, когда условие, упомянутое на S2860, не удовлетворяется, блок B1 идентифицируется как доступный из информации availableB1, указывающей доступность блока B1, и индекс RefIdxLX[xNbB1][yNbB1] опорного кадра блока B1 не является идентичным -1, вектор движения блока B1 задается в качестве вектора движения по умолчанию.
На S2880, когда вектор движения блока A1 или вектор движения блока B1 не задается в качестве вектора движения по умолчанию, вектор движения блока, декодированного перед текущим блоком, задается в качестве вектора движения по умолчанию.
На S2890, когда индекс refIdxLX опорного кадра текущего блока не является идентичным индексу DefaultRefIdxLX опорного кадра по умолчанию, вектор движения по умолчанию масштабируется согласно соотношению distScaleFactorLX между расстоянием currPocDiffLX между текущим кадром и кадром RefPicListX[DefaultRefIdxLX], указываемым посредством индекса DefaultRefIdxLX опорного кадра по умолчанию, и расстоянием targetPocDiffLX между текущим кадром и опорным кадром RefPicListX[refIdxLX] текущего блока. Индекс DefaultRefIdxLX опорного кадра по умолчанию может означать индекс опорного кадра блока, используемого для того, чтобы получать вектор движения по умолчанию.
На S2895, вектор DefaultMvLX движения по умолчанию задается в качестве прогнозного вектора mvpLX движения текущего блока.
Хотя не показано на фиг. 28, когда amvr_idx не равен 0, а именно, когда разрешение векторов движения текущего блока отличается от предварительно определенного разрешения векторов движения (например, минимального разрешения векторов движения), прогнозный вектор mvpLX движения регулируется.
Вышеописанные варианты осуществления раскрытия могут быть написаны в качестве машиноисполняемых программ, и написанные машиноисполняемые программы могут сохраняться в носителе.
Носитель может непрерывно сохранять машиноисполняемые программы либо временно сохранять машиноисполняемые программы для выполнения или загрузки. Кроме того, носитель может представлять собой любой из различных носителей записи или носителей хранения данных, в которых комбинируются один элемент или множество элементов аппаратных средств, и носитель не ограничен носителем, непосредственно соединенным с компьютерной системой, и может распространяться по сети. Примеры носителя включают в себя магнитный носитель (например, жесткий диск, гибкий диск или магнитную ленту), оптический носитель (например, постоянное запоминающее устройство на компакт-дисках (CD-ROM) или универсальный цифровой диск (DVD), магнитооптический носитель (например, флоптический диск) и ROM, оперативное запоминающее устройство (RAM) и флэш-память, которые выполнены с возможностью сохранять программные инструкции. Другие примеры носителя включают в себя носители записи и носители хранения данных, управляемые посредством магазинов приложений, распространяющих приложения, или посредством веб-узлов, серверов и т.п., предоставляющих или распространяющих другие различные типы программного обеспечения.
Хотя один или более вариантов осуществления раскрытия описываются со ссылкой на чертежи, специалисты в данной области техники должны понимать, что различные изменения в форме и подробностях могут вноситься в них без отступления от сущности и объема, определяемого прилагаемой формулой изобретения.
Положение 1. Способ, осуществляемый посредством устройства декодирования изображений, для декодирования вектора движения, при этом способ содержит этапы, на которых:
выбирают первый соседний блок из числа соседних блоков, смежных с текущим блоком, согласно информации, полученной из потока битов;
когда первый соседний блок идентифицируется как доступный посредством использования информации, указывающей доступность первого соседнего блока, и вектор движения первого соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, не существует, получают прогнозный вектор движения текущего блока из вектора движения второго соседнего блока в предварительно определенном местоположении, причем второй соседний блок является смежным с текущим блоком; и
получают вектор движения текущего блока посредством комбинирования прогнозного вектора движения текущего блока с дифференциальным вектором движения.
Положение 2. Способ согласно Положению 1, в котором, когда индекс опорного кадра второго соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, равен -1, вектор движения первого соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, не существует.
Положение 3. Способ согласно Положению 1, в котором доступность первого соседнего блока определяется согласно по меньшей мере одному из того, отличается или нет плитка, включающая в себя первый соседний блок, от плитки, включающей в себя текущий блок, того, расположен или нет первый соседний блок за пределами текущего кадра, того, спрогнозирован ли первый соседний блок посредством интра-прогнозирования или нет, и того, восстанавливается или нет первый соседний блок.
Положение 4. Способ согласно Положению 1, в котором получение прогнозного вектора движения текущего блока содержит, когда первый соседний блок идентифицируется как доступный посредством использования информации, указывающей доступность первого соседнего блока, и вектор движения первого соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, существует, этап, на котором получают прогнозный вектор движения текущего блока из вектора движения первого соседнего блока.
Положение 5. Способ согласно Положению 1, в котором информация, полученная из потока битов, содержит информацию, указывающую разрешение векторов движения текущего блока из множества разрешений векторов движения, и множество разрешений векторов движения соотнесены с соседними блоками в разных местоположениях.
Положение 6. Способ согласно Положению 1, в котором местоположение второго соседнего блока варьируется согласно информации, указывающей доступности левого и правого соседних блоков относительно текущего блока.
Положение 7. Способ согласно Положению 1, в котором получение прогнозного вектора движения текущего блока содержит, когда второй соседний блок идентифицируется как доступный посредством использования информации, указывающей доступность второго соседнего блока, и индекс опорного кадра второго соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, является идентичным индексу опорного кадра текущего блока, или вектор движения второго соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, существует, этап, на котором получают прогнозный вектор движения текущего блока из вектора движения второго соседнего блока.
Положение 8. Способ согласно Положению 7, в котором получение прогнозного вектора движения текущего блока содержит, когда второй соседний блок идентифицируется как недоступный посредством использования информации, указывающей доступность второго соседнего блока, или вектор движения второго соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, не существует, этап, на котором получают прогнозный вектор движения текущего блока из вектора движения блока, декодированного перед текущим блоком.
Положение 9. Способ согласно Положению 1, в котором получение прогнозного вектора движения текущего блока содержит, когда первый соседний блок идентифицируется как недоступный, этап, на котором получают прогнозный вектор движения текущего блока из вектора движения второго соседнего блока.
Положение 10. Устройство декодирования изображений, содержащее:
модуль прогнозирования векторов движения, выполненный с возможностью выбирать первый соседний блок из числа соседних блоков, смежных с текущим блоком, согласно информации, полученной из потока битов, и когда первый соседний блок идентифицируется как доступный посредством использования информации, указывающей доступность первого соседнего блока, и вектор движения первого соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, не существует, получать прогнозный вектор движения текущего блока из вектора движения второго соседнего блока в предварительно определенном местоположении, причем второй соседний блок является смежным с текущим блоком; и
модуль восстановления векторов движения, выполненный с возможностью получать вектор движения текущего блока посредством комбинирования прогнозного вектора движения текущего блока с дифференциальным вектором движения.
Положение 11. Способ, осуществляемый посредством устройства кодирования изображений, для кодирования вектора движения, при этом способ содержит этапы, на которых:
когда первый соседний блок, выбранный из числа соседних блоков, смежных с текущим блоком, идентифицируется как доступный и вектор движения первого соседнего блока в направлении прогнозирования, идентичном направлению прогнозирования текущего блока, не существует, получают прогнозный вектор движения текущего блока из вектора движения второго соседнего блока в предварительно определенном местоположении, причем второй соседний блок является смежным с текущим блоком; и
формируют поток битов, содержащий дифференциальный вектор движения между вектором движения текущего блока и прогнозным вектором движения текущего блока и информацию для указания первого соседнего блока.
Изобретение относится к средствам для кодирования изображений. Технический результат заключается в повышении эффективности кодирования изображений. Получают из потока битов информацию, указывающую разрешение векторов движения текущего блока, и информацию о дифференциальном векторе движения. Выбирают первый соседний блок из множества соседних блоков, смежных с текущим блоком, с использованием полученной информации, указывающей разрешение векторов движения текущего блока. Если текущий блок ссылается на опорный кадр в списке 0 и первый соседний блок ссылается на опорный кадр в списке 0, определяют предиктор вектора движения текущего блока с использованием вектора движения первого соседнего блока. Если текущий блок ссылается на опорный кадр в списке 0 и первый соседний блок ссылается на опорный кадр в списке 1, определяют вектор движения второго соседнего блока из упомянутого множества соседних блоков в качестве вектора движения по умолчанию и определяют предиктор вектора движения текущего блока с использованием этого определенного вектора движения по умолчанию. Регулируют предиктор вектора движения текущего блока на основе информации, указывающей разрешение векторов движения текущего блока. 3 н.п. ф-лы, 32 ил.
1. Способ декодирования вектора движения посредством устройства декодирования изображений, при этом способ содержит этапы, на которых:
получают из потока битов информацию, указывающую разрешение векторов движения текущего блока, и информацию о дифференциальном векторе движения;
выбирают первый соседний блок из множества соседних блоков, смежных с текущим блоком, с использованием полученной информации, указывающей разрешение векторов движения текущего блока;
если текущий блок ссылается на опорный кадр в списке 0 и первый соседний блок ссылается на опорный кадр в списке 0, определяют предиктор вектора движения текущего блока с использованием вектора движения первого соседнего блока;
если текущий блок ссылается на опорный кадр в списке 0 и первый соседний блок ссылается на опорный кадр в списке 1, определяют вектор движения второго соседнего блока из упомянутого множества соседних блоков в качестве вектора движения по умолчанию и определяют предиктор вектора движения текущего блока с использованием этого определенного вектора движения по умолчанию;
регулируют предиктор вектора движения текущего блока на основе информации, указывающей разрешение векторов движения текущего блока; и
определяют вектор движения текущего блока с использованием отрегулированного предиктора вектора движения текущего блока и дифференциального вектора движения.
2. Устройство декодирования изображений, содержащее:
модуль получения, выполненный с возможностью получать из потока битов информацию, указывающую разрешение векторов движения текущего блока, и информацию о дифференциальном векторе движения;
модуль прогнозирования векторов движения, выполненный с возможностью:
выбирать первый соседний блок из множества соседних блоков, смежных с текущим блоком, с использованием полученной информации, указывающей разрешение векторов движения текущего блока,
если текущий блок ссылается на опорный кадр в списке 0 и первый соседний блок ссылается на опорный кадр в списке 0, определять предиктор вектора движения текущего блока с использованием вектора движения первого соседнего блока, и
если текущий блок ссылается на опорный кадр в списке 0 и первый соседний блок ссылается на опорный кадр в списке 1, определять вектор движения второго соседнего блока из упомянутого множества соседних блоков в качестве вектора движения по умолчанию и определять предиктор вектора движения текущего блока с использованием этого определенного вектора движения по умолчанию,
регулировать предиктор вектора движения текущего блока на основе информации, указывающей разрешение векторов движения текущего блока; и
модуль восстановления векторов движения, выполненный с возможностью определять вектор движения текущего блока с использованием отрегулированного предиктора вектора движения текущего блока и дифференциального вектора движения.
3. Способ кодирования вектора движения посредством устройства кодирования изображений, при этом способ содержит этапы, на которых:
определяют разрешение векторов движения текущего блока;
выбирают первый соседний блок из множества соседних блоков, смежных с текущим блоком, с использованием разрешения векторов движения текущего блока;
если текущий блок ссылается на опорный кадр в списке 0 и первый соседний блок ссылается на опорный кадр в списке 0, определяют предиктор вектора движения текущего блока с использованием вектора движения первого соседнего блока;
если текущий блок ссылается на опорный кадр в списке 0 и первый соседний блок ссылается на опорный кадр в списке 1, определяют вектор движения второго соседнего блока из упомянутого множества соседних блоков в качестве вектора движения по умолчанию и определяют предиктор вектора движения текущего блока посредством использования этого определенного вектора движения по умолчанию;
регулируют предиктор вектора движения текущего блока на основе разрешения векторов движения текущего блока;
получают дифференциальный вектор движения с использованием вектора движения текущего блока и отрегулированного предиктора вектора движения текущего блока; и
формируют поток битов, содержащий информацию, указывающую разрешение векторов движения текущего блока, и информацию о дифференциальном векторе движения.
Способ получения цианистых соединений | 1924 |
|
SU2018A1 |
Benjamin Bross et al | |||
Топка с несколькими решетками для твердого топлива | 1918 |
|
SU8A1 |
KR 20130067874 A, 25.06.2013 | |||
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз | 1924 |
|
SU2014A1 |
US 10575012 B2, 25.02.2020 | |||
Способ получения цианистых соединений | 1924 |
|
SU2018A1 |
Способ восстановления спиралей из вольфрамовой проволоки для электрических ламп накаливания, наполненных газом | 1924 |
|
SU2020A1 |
Авторы
Даты
2024-05-08—Публикация
2021-01-27—Подача