Настоящее изобретение имеет отношение к способу и устройству для кодирования или декодирования блоков пикселей в процессе кодирования или декодирования видео. Более конкретно, оно имеет отношение к способам для обработки распараллеливания при использовании режима копирования внутреннего блока для расширения контента экрана для HEVC. Оно основывается на управлении областью, доступной для предоставления блоков-предикторов в режиме копирования внутреннего блока.
Оно применяется более конкретно к режиму кодирования, где блок пикселей кодируется с предсказанием на основе блока-предиктора, имеющего отношение к тому же изображению. Этот режим кодирования блока пикселей обычно называется режимом копирования внутреннего блока. Он рассматривается как возможный инструмент для расширения контента экрана для международного стандарта высокоэффективного кодирования видео (HEVC: ISO/IEC 23008-2 MPEG-H Часть 2/ ITU-T H.265) и теперь в расширении контента экрана там же.
При кодировании изображения в видеопоследовательности, изображение сначала разделяется на элементы кодирования, которые являются образованиями пикселей с равным размером, называемыми блоком дерева кодирования (Coding Tree Block). Размер блока дерева кодирования обычно составляет 64 на 64 пикселей. Каждый блок дерева кодирования может быть затем разобран на иерархическое дерево меньших блоков, размер которых может варьироваться, и которые являются фактическими блоками для кодирования. Эти меньшие блоки для кодирования называются единицей кодирования (CU).
Кодирование конкретной единицы кодирования обычно осуществляется с предсказанием. Это означает, что сначала определяется блок-предиктор. Затем, вычисляется разница между блоком-предиктором и единицей кодирования. Эта разница называется остатком. Затем, этот остаток сжимается. Фактически кодированная информация единицы кодирования образована из некоторой информации для указания способа определения блока-предиктора и сжатого остатка. Наилучшими блоками-предикторами являются блоки, наиболее схожие с единицей кодирования, для того, чтобы получить небольшой остаток, который может быть эффективно сжат.
Кодирование может быть с потерями, означая, что информация потеряна в процессе кодирования. Декодированный блок пикселей не является точно таким, как первоначальная единица кодирования. Обычно, потеря информации происходит из квантования, применяемого к остатку перед энтропийным кодированием. Это квантование обеспечивает возможность более высокой степени сжатия за счет потери точности. Обычно, высокие частоты, а именно высокий уровень деталей, удаляются в блоке.
Кодирование может быть без потерь, означая, что остаток не квантуется. Этот вид кодирования обеспечивает возможность извлечения точной копии первоначальных выборок единицы кодирования. Кодирование без потерь получается в ущерб степени сжатия, которая гораздо меньше по сравнению со сжатием с потерями.
Режим кодирования задается на основе способа, используемого для определения блока-предиктора для способа кодирования с предсказанием для единицы кодирования.
Первый режим кодирования называется внутренним режимом. Согласно внутреннему режиму, блок-предиктор строится на основе значения пикселей, непосредственно окружающих единицу кодирования внутри текущего изображения. Следует отметить, что блок-предиктор является не блоком текущего изображения, а конструкцией. Направление используется для определения, какие пиксели границы фактически используются для построения блока-предиктора, и как они используются. Идея за внутренним режимом состоит в том, что из-за общей когерентности естественных изображений, пиксели, непосредственно окружающие единицу кодирования, вероятно должны быть схожи с пикселями текущего блока кодирования. Вследствие этого, возможно получить хорошее предсказание значения пикселей единицы кодирования с использованием блока-предиктора, основанного на этих окружающих пикселях.
Второй режим кодирования называется внешним режимом. Согласно внешнему режиму, блок-предиктор является блоком другого изображения. Идея за внешним режимом состоит в том, что последовательные изображения в последовательности в основном очень похожи. Главное различие происходит обычно из движения между этими изображениями из-за непрерывного перемещения камеры или из-за перемещения объектов в сцене. Блок-предиктор определяется вектором, дающим свое размещение в опорном изображении относительно размещения единицы кодирования внутри текущего изображения. Этот вектор называется вектором движения. Согласно этому режиму, кодирование такой единицы кодирования с использованием этого режима содержит информацию движения, содержащую вектор движения и сжатый остаток.
В этом документе сфокусируемся на третьем режиме кодирования, называемом режимом копирования внутреннего блока. Согласно режиму копирования внутреннего блока, предсказатель блока является фактическим блоком текущего изображения. Вектор блока используется для локализации блока-предиктора. Этот вектор блока дает размещение в текущем изображении блока-предиктора относительно размещения единицы кодирования в том же текущем изображении. Выходит, что этот вектор блока имеет часть некоторых сходств с вектором движения из внешнего режима. По аналогии иногда называется вектором движения. Так как тут не может быть движения внутри изображения, строго говоря, и для ясности, в этом документе вектор движения всегда относится к внешнему режиму, тогда как вектор блока используется для режима копирования внутреннего блока.
Казуальным принципом является принцип, который утверждает, что вся информация для декодирования конкретной единицы кодирования должна быть основана на уже реконструированных единицах кодирования. При кодировании вся информация может считаться доступной. А именно, чтобы кодировать данную единицу кодирования, будет возможно использовать любую информацию из всех текущих изображений или их всех декодированных и доступных других изображений в последовательности. При декодировании все иначе. Декодирование текущих изображений обычно выполняется посредством последовательного декодирования всех единиц кодирования. Порядок декодирования обычно следует порядку растрового сканирования, а именно начиная в верхней левой части изображения, продвигаясь слева направо и сверху вниз. Получается что при декодировании данной единицы кодирования, уже была декодирована только часть текущего изображения, размещенная сверху или слева от текущей единицы кодирования. Это единственная доступная информация для декодирования текущего блока кодирования. Это следует учитывать при кодировании. Например, блок-предиктор в режиме копирования внутреннего блока, должен иметь отношение к части изображения, которая будет доступна при декодировании.
При декодировании, чтобы извлечь блок, кодированный с использованием режима копирования внутреннего блока, прежде всего, с использованием вектора блока определяется блок-предиктор. Затем декодируется остаток и применяется к предиктору, чтобы получить необработанный реконструированный блок.
Когда было реконструировано целое изображение, применяется некоторая обработка постфильтром. Обычно первый фильтр применяется для удаления некоторых артефактов в реконструированном изображении в результате кодирования блока. Этот фильтр называется фильтром удаления блочности. Обычно, хотя необязательно, тогда применяется адаптивный к выборке контурный фильтр (SAO), чтобы получить итоговое изображение.
При некоторой архитектуре декодирования, обработка распараллеливается для того, чтобы ускорить процесс. В этой ситуации, конкретный блок дерева кодирования реконструируется, тогда как предыдущий блок дерева кодирования фильтруется, например. А именно реконструкция некоторого блока дерева кодирования и фильтрация других совершаются параллельно.
Стандарт HEVC предлагает некоторый высокий уровень параллельности, как волновой фронт или мозаику или слайсы, для параллельности кадров и гибкого управления опорными кадрами для внешней параллельности. Эти инструменты не являются обязательными, пока, декодер должен декодировать относящийся к ним синтаксис, даже если они необязательны.
В этом документе сфокусируемся на параллельной обработке волновых фронтов и том, как она может эффективно комбинироваться с режимом копирования внутреннего блока для кодирования конкретной единицы кодирования.
Параллельная обработка волновых фронтов основывается на распараллеливании реконструкции линий блоков дерева кодирования. А именно некоторое число блоков дерева кодирования реконструируются параллельно. Задержка вносится между обработкой каждой линии из-за того факта, что реконструкция последовательной линии блоков дерева кодирования требует некоторую информацию из предыдущей линии. Это означает, что реконструкция разных линий, которые распараллеливают, происходит с задержкой между каждой линией.
Параллельная обработка волновых фронтов может подтвердить наличие проблемы при реконструировании конкретной единицы кодирования, кодированной согласно режиму копирования внутреннего блока. Фактически, предсказатель блока для единицы кодирования, кодированной согласно режиму копирования внутреннего блока, может быть локализован везде во всей казуальной области, а именно предыдущих линиях блоков дерева кодирования и предыдущих блоков дерева кодирования в текущей линии. Так как предыдущие линии реконструируются параллельно с рассматриваемой линией, может случиться, что блок-предиктор не был еще реконструирован в то время, когда он нужен для реконструкции единицы кодирования, кодированной согласно режиму копирования внутреннего блока. Поэтому режим копирования внутреннего блока не полностью совместим с параллельной реконструкцией волновых фронтов.
Настоящее изобретение было разработано для решения одного или более вышеприведенных вопросов.
Согласно первому аспекту настоящего изобретения, предусматривается способ кодирования изображения, в котором изображение содержит множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей кодируется согласно режиму из множества режимов, причем один такой режим является режимом в котором блок кодируется на основе блока-предиктора, являющегося блоком текущего изображения, причем способ, содержащий определение области поиска для вышеуказанного одного режима как области, образованной любыми реконструированными блоками текущего блока дерева кодирования и блоками дерева кодирования, имеющими координаты (X, Y), где
Y≤Y0 и (X-X0)≤-(Y-Y0),
где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, причем начало координат находится в верхнем левом углу изображения и (X0, Y0) являются координатами текущего блока дерева кодирования.
В варианте осуществления кодирование выполняется с использованием параллельной обработки волновых фронтов.
Во втором аспекте настоящего изобретения, предусматривается способ декодирования изображения, в котором изображение содержит множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей кодируется согласно режиму из множества режимов, причем один такой режим является режимом, в котором блок декодируется на основе блока-предиктора, являющегося блоком текущего изображения, причем способ, содержащий ограничение области, из которой вышеуказанный блок-предиктор может быть получен для вышеуказанного одного режима, областью, образованной любыми реконструированными блоками текущего блока дерева кодирования и блоками дерева кодирования, имеющими координаты (X, Y), где
Y≤Y0 и (X-X0)≤-(Y-Y0),
где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, причем начало координат находится в верхнем левом углу изображения и (X0, Y0) являются координатами текущего блока дерева кодирования.
В варианте осуществления декодирование выполняется с использованием параллельной обработки волновых фронтов.
В третьем аспекте настоящего изобретения, предусматривается устройство для кодирования изображения, в котором изображение содержит множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей кодируется согласно режиму из множества режимов, причем один такой режим является режимом, в котором блок кодируется на основе блока-предиктора, являющегося блоком текущего изображения, причем устройство, содержащее средство для определения области поиска для вышеуказанного одного режима как области, образованной любыми реконструированными блоками текущего блока дерева кодирования и блоками дерева кодирования, имеющими координаты (X, Y), где
Y≤Y0 и (X-X0)≤-(Y-Y0),
где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, причем начало координат находится в верхнем левом углу изображения и (X0, Y0) являются координатами текущего блока дерева кодирования.
В четвертом аспекте настоящего изобретения, предусматривается устройство для декодирования изображения, в котором изображение содержит множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей декодируется согласно режиму из множества режимов, причем один такой режим является режимом, в котором блок декодируется на основе блока-предиктора, являющегося блоком текущего изображения, причем устройство, содержащее средство для ограничения области, из которой может быть получен вышеуказанный блок-предиктор, областью, образованной реконструированными блоками текущего блока дерева кодирования и блоками дерева кодирования с координатами (X, Y), где
Y≤Y0 и (X-X0)≤-(Y-Y0),
где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, причем начало координат находится в верхнем левом углу изображения и (X0, Y0) являются координатами текущего блока дерева кодирования. Например, ограничение области может принять вид не выполнения (например, приостановки) процесса декодирования, если обнаружено, что область, из которой должен быть получен блок-предиктор, находится вне области, образованной реконструированными блоками текущего блока дерева кодирования и блоками дерева кодирования с координатами (X, Y), где
Y≤Y0 и (X-X0)≤-(Y-Y0),
где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, причем начало координат находится в верхнем левом углу изображения, и (X0, Y0) являются координатами текущего блока дерева кодирования.
В пятом аспекте настоящего изобретения, предусматривается система для кодирования и декодирования изображения, причем система содержит устройство для кодирования изображения согласно предыдущим аспектам кодера и устройство для декодирования изображения согласно предыдущим аспектам декодера.
Устройство для кодирования и устройство для декодирования могут быть выполнены с возможностью использования параллельной обработки волновых фронтов.
Устройство для кодирования и устройство для декодирования могут быть выполнены с возможностью использования одинакового числа синхронизированных потоков соответственно для кодирования и декодирования изображения.
Согласно шестому аспекту настоящего изобретения, предусматривается битовый поток, содержащий кодированные изображения, при этом кодированные изображения были кодированы согласно предыдущим аспектам кодирования.
Согласно седьмому аспекту настоящего изобретения, предусматривается битовый поток, содержащий кодированную последовательность изображений, причем каждое из изображений, содержит множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей, кодированных согласно режиму из множества режимов, причем один режим является режимом, в котором блок кодируется на основе блока-предиктора, являющегося блоком текущего изображения, при этом положение любого блока-предиктора, указанного битовым потоком, ограничивается областью, образованной любыми реконструированными блоками текущего блока дерева кодирования и блоками дерева кодирования, имеющими координаты (X, Y), где
Y≤Y0 и (X-X0)≤-(Y-Y0)
где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, причем начало координат находится в верхнем левом углу кодированного изображения, и (X0, Y0) являются координатами текущего блока дерева кодирования.
Согласно восьмому аспекту настоящего изобретения, предусматривается машиночитаемый носитель или носитель информации, имеющий сохраненный битовый поток, согласно предыдущим аспектам битового потока. Носителем может также быть сигнал, на котором осуществлен вышеуказанный битовый поток.
Согласно девятому аспекту настоящего изобретения, предусматривается компьютерный программный продукт для программируемого устройства, причем компьютерный программный продукт, содержащий последовательность инструкций для реализации способа согласно любому из предшествующих аспектов способа, при загрузке в программируемое устройство и исполнении им же.
Согласно десятому аспекту настоящего изобретения, предусматривается компьютерно-читаемый носитель информации, хранящий инструкции компьютерной программы для реализации способа согласно любому одному из предшествующих аспектов способа.
Согласно дополнительному аспекту данного изобретения, предусматривается способ кодирования изображения, причем изображение, содержащее множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей кодируется согласно режиму из множества режимов, причем один режим называется режимом копирования внутреннего блока, в котором блок кодируется на основе блока-предиктора, являющегося фактическим блоком текущего изображения, причем способ, содержащий: определение диапазона поиска для режима копирования внутреннего блока как области, образованной блоками дерева кодирования с координатами (X,Y), такими как:
Y≤Y0 и X≤X0
где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, причем начало координат находится в верхнем левом углу изображения, и где (X0,Y0) являются координатами текущего блока дерева кодирования, плюс реконструированные блоки текущего блока дерева кодирования.
Соответственно, реализация является простой для того, чтобы обеспечить возможность процесса с волновыми фронтами.
Согласно другому аспекту данного изобретения, предусматривается способ кодирования изображения, причем изображение, содержащее множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей кодируется согласно режиму из множества режимов, причем один режим называется режимом копирования внутреннего блока, в котором блок кодируется на основе блока-предиктора, являющегося фактическим блоком текущего изображения, причем способ, содержащий: определение диапазона поиска для режима копирования внутреннего блока как области, образованной блоками дерева кодирования с координатами (X,Y), такими как:
Y≤Y0 и (X-X0)≤-(Y-Y0),
где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, причем начало координат находится в верхнем левом углу изображения, и где (X0, Y0) являются координатами текущего блока дерева кодирования, плюс реконструированные блоки текущего блока дерева кодирования.
Соответственно, область поиска является большей, что приводит к лучшему кодированию.
Согласно другому аспекту данного изобретения, предусматривается способ кодирования изображения, причем изображение, содержащее множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей кодируется согласно режиму из множества режимов, причем один режим называется режимом копирования внутреннего блока, в котором блок кодируется на основе блока-предиктора, являющегося фактическим блоком текущего изображения, причем способ, содержащий: определение диапазона поиска для режима копирования внутреннего блока как области, образованной блоками дерева кодирования с координатами (X, Y), такими как:
Y≤Y0 и (X-X0)≤-2⋅(Y-Y0),
где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, причем начало координат находится в верхнем левом углу изображения, и где (X0, Y0) являются координатами текущего блока дерева кодирования, плюс реконструированные блоки текущего блока дерева кодирования.
Соответственно, область поиска является большей, что приводит к лучшему кодированию.
Согласно другому аспекту данного изобретения, предусматривается способ кодирования изображения, причем изображение, содержащее множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей кодируется согласно режиму из множества режимов, причем один режим называется режимом копирования внутреннего блока, в котором блок кодируется на основе блока-предиктора, являющегося фактическим блоком текущего изображения, причем способ, содержащий: определение диапазона поиска для режима копирования внутреннего блока как области, образованной блоками дерева кодирования с координатами (X, Y), такими как:
Y≤Y0 и (X-X0)<-2⋅(Y-Y0),
где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, причем начало координат находится в верхнем левом углу изображения, и где (X0, Y0) являются координатами текущего блока дерева кодирования, плюс реконструированные блоки текущего блока дерева кодирования.
Соответственно, реализация является более простой.
Согласно другому аспекту данного изобретения, предусматривается способ кодирования изображения, причем изображение, содержащее множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей кодируется согласно режиму из множества режимов, причем один режим называется режимом копирования внутреннего блока, в котором блок кодируется на основе блока-предиктора, являющегося фактическим блоком текущего изображения, причем способ, содержащий: определение диапазона поиска для режима копирования внутреннего блока как области, образованной блоками дерева кодирования с координатами (X, Y), такими как:
X≤X0 и Y=Y0,
где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, причем начало координат находится в верхнем левом углу изображения, и где (X0, Y0) являются координатами текущего блока дерева кодирования, плюс реконструированные блоки текущего блока дерева кодирования.
Согласно другому аспекту данного изобретения предусматривается способ кодирования изображения, причем изображение, содержащее множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей кодируется согласно режиму из множества режимов, причем один режим называется режимом копирования внутреннего блока, в котором блок кодируется на основе блока-предиктора, являющегося фактическим блоком текущего изображения, причем кодирование осуществляется множеством параллельных потоков кодирования, причем каждый из потоков выделяется для кодирования линии блоков дерева кодирования, причем способ, содержащий: определение диапазона поиска для режима копирования внутреннего блока как области, образованной, для текущего блока с копированием внутреннего блока, всеми данными, реконструированными всеми потоками предыдущих линий блоков дерева кодирования и текущей линии блоков дерева кодирования.
Согласно другому аспекту данного изобретения предусматривается способ кодирования изображения, причем изображение, содержащее множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей кодируется согласно режиму из множества режимов, причем один режим называется режимом копирования внутреннего блока, в котором блок кодируется на основе блока-предиктора, являющегося фактическим блоком текущего изображения, причем кодирование осуществляется множеством синхронизированных параллельных потоков кодирования, причем каждый из потоков выделяется для кодирования линии блоков дерева кодирования, причем способ, содержащий: определение диапазона поиска для режима копирования внутреннего блока как области, образованной, для текущего блока с копированием внутреннего блока, всеми данными, реконструированными всеми потоками (включая текущий блок дерева кодирования).
В варианте осуществления кодирование совершается согласно распараллеленному режиму с волновыми фронтами.
Согласно другому аспекту данного изобретения предусматривается способ декодирования изображения, причем изображение, содержащее множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей декодируется согласно режиму из множества режимов, причем один режим называется режимом копирования внутреннего блока, в котором блок кодируется на основе блока-предиктора, являющегося фактическим блоком текущего изображения, причем декодирование осуществляется множеством параллельных потоков декодирования, причем каждый из потоков выделяется для декодирования линии блоков дерева кодирования, при этом вышеуказанное множество потоков синхронизируются.
Согласно другому аспекту данного изобретения предусматривается устройство для кодирования изображения, причем изображение, содержащее множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей кодируется согласно режиму из множества режимов, причем один режим называется режимом копирования внутреннего блока, в котором блок кодируется на основе блока-предиктора, являющегося фактическим блоком текущего изображения, причем устройство, содержащее: средство для определения диапазона поиска для режима копирования внутреннего блока как области, образованной блоками дерева кодирования с координатами (X,Y), такими как:
Y≤Y0 и X≤X0
где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, причем начало координат находится в верхнем левом углу изображения, и где (X0,Y0) являются координатами текущего блока дерева кодирования, плюс реконструированные блоки текущего блока дерева кодирования.
Согласно другому аспекту данного изобретения предусматривается устройство для кодирования изображения, причем изображение, содержащее множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей кодируется согласно режиму из множества режимов, причем один режим называется режимом копирования внутреннего блока, в котором блок кодируется на основе блока-предиктора, являющегося фактическим блоком текущего изображения, причем устройство, содержащее: средство для определения диапазона поиска для режима копирования внутреннего блока как области, образованной блоками дерева кодирования с координатами (X,Y) такими как:
Y≤Y0 и (X-X0≤-(Y-Y0),
где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, причем начало координат находится в верхнем левом углу изображения, и где (X0, Y0) являются координатами текущего блока дерева кодирования, плюс реконструированные блоки текущего блока дерева кодирования.
Согласно другому аспекту данного изобретения предусматривается устройство для кодирования изображения, причем изображение, содержащее множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей кодируется согласно режиму из множества режимов, причем один режим называется режимом копирования внутреннего блока, в котором блок кодируется на основе блока-предиктора, являющегося фактическим блоком текущего изображения, причем устройство, содержащее: средство для определения диапазона поиска для режима копирования внутреннего блока как области, образованной блоками дерева кодирования с координатами (X,Y), такими как:
Y≤Y0 и (X-X0)≤-2*(Y-Y0),
где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, причем начало координат находится в нижнем левом углу изображения, и где (X0, Y0) являются координатами текущего блока дерева кодирования, плюс реконструированные блоки текущего блока дерева кодирования.
Согласно другому аспекту данного изобретения предусматривается устройство для кодирования изображения, причем изображение, содержащее множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей кодируется согласно режиму из множества режимов, причем один режим называется режимом копирования внутреннего блока, в котором блок кодируется на основе блока-предиктора, являющегося фактическим блоком текущего изображения, причем устройство, содержащее: средство для определения диапазона поиска для режима копирования внутреннего блока как области, образованной блоками дерева кодирования с координатами (X,Y), такими как:
Y≤Y0 и (X-X0)<-2⋅(Y-Y0)
где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, причем начало координат находится в верхнем левом углу изображения, и где (X0, Y0) являются координатами текущего блока дерева кодирования, плюс реконструированные блоки текущего блока дерева кодирования.
Согласно другому аспекту данного изобретения предусматривается устройство для кодирования изображения, причем изображение, содержащее множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей кодируется согласно режиму из множества режимов, причем один режим называется режимом копирования внутреннего блока, в котором блок кодируется на основе блока-предиктора, являющегося фактическим блоком текущего изображения, причем устройство, содержащее: средство для определения диапазона поиска для режима копирования внутреннего блока как области, образованной блоками дерева кодирования с координатами (X, Y), такими как:
X≤X0 и Y=Y0
где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, причем начало координат находится в верхнем левом углу изображения, и где (X0,Y0) являются координатами текущего блока дерева кодирования, плюс реконструированные блоки текущего блока дерева кодирования.
Согласно другому аспекту данного изобретения предусматривается устройство для кодирования изображения, причем изображение, содержащее множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей кодируется согласно режиму из множества режимов, причем один режим называется режимом копирования внутреннего блока, в котором блок кодируется на основе блока-предиктора, являющегося фактическим блоком текущего изображения, причем кодирование осуществляется множеством параллельных потоков кодирования, причем каждый из потоков выделяется для кодирования линии блоков дерева кодирования, причем устройство, содержащее средство для определения диапазона поиска для режима копирования внутреннего блока как области, образованной, для текущего блока с копированием внутреннего блока, всеми данными, реконструированными всеми потоками предыдущих линий блоков дерева кодирования и текущей линии блоков дерева кодирования.
Согласно другому аспекту данного изобретения предусматривается устройство для кодирования изображения, причем изображение, содержащее множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей кодируется согласно режиму из множества режимов, причем один режим называется режимом копирования внутреннего блока, в котором блок кодируется на основе блока-предиктора, являющегося фактическим блоком текущего изображения, причем кодирование осуществляется множеством синхронизированных параллельных потоков кодирования, причем каждый поток выделен для кодирования линии блоков дерева кодирования, причем устройство, содержащее: средство для определения диапазона поиска для режима копирования внутреннего блока как области, образованной, для текущего блока с копированием внутреннего блока, всеми данными, реконструированными всеми потоками.
Согласно другому аспекту данного изобретения предусматривается устройство для декодирования изображения, причем изображение, содержащее множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей декодируется согласно режиму из множества режимов, причем один режим называется режимом копирования внутреннего блока, в котором блок кодируется на основе блока-предиктора, являющегося фактическим блоком текущего изображения, причем устройство, содержащее: средство для обработки множества параллельных потоков декодирования, причем каждый поток выделяется для декодирования линии блоков дерева кодирования; и при этом средство для синхронизации вышеуказанного множества потоков.
Согласно другому аспекту данного изобретения предусматривается система для кодирования и декодирования изображения, причем система, содержащая кодер согласно данному изобретению и декодер согласно данному изобретению.
В варианте осуществления, кодер и декодер используют одинаковое число синхронизированных потоков соответственно для кодирования и декодирования изображения.
Согласно другому аспекту данного изобретения предусматривается битовый поток, содержащий кодированные изображения, при этом кодированные изображения были кодированы согласно данному изобретению.
Согласно другому аспекту данного изобретения предусматривается компьютерный программный продукт для программируемого устройства, причем компьютерный программный продукт, содержащий последовательность инструкций для реализации способа согласно данному изобретению, при загрузке в программируемое устройство и исполнении им же.
Согласно другому аспекту данного изобретения предусматривается компьютерно-читаемый носитель информации, хранящий инструкции компьютерной программы для реализации способа согласно данному изобретению.
Некоторые аспекты данного изобретения, перечисленные выше, упоминают, что режимом из множества режимов является режим копирования внутреннего блока, однако, как будет понятно, это лишь произвольное название для этого режима и не предназначено для ограничения. Соответственно, эти аспекты имеют внутри своего предназначенного объема любой режим, в котором блок кодируется (или декодируется) на основе блока-предиктора, являющегося фактическим блоком текущего изображения, которое кодируется (или декодируется), называется ли этот режим режимом копирования внутреннего блока или иначе.
По меньшей мере части способов согласно данному изобретению могут быть реализованы компьютером. Соответственно, настоящее изобретение может принять форму полностью аппаратного варианта осуществления, полностью программного варианта осуществления (включая программно-аппаратные средства, резидентное программное обеспечение, микрокод и т.д.) или варианта осуществления, объединяющего программные и аппаратные аспекты, которые все в общем могут называться как "схема", "модуль" или "система". Кроме того, настоящее изобретение может принять форму компьютерного программного продукта, осуществленного в любой материальной среде с представлением, имеющим используемый компьютером программный код, осуществленный в среде.
Так как настоящее изобретение может быть реализовано программно, настоящее изобретение может быть осуществлено как компьютерно-читаемый код для представления в программируемое устройство в любой подходящей несущей среде. Материальная несущая среда может содержать носитель информации, такой как floppy-диск, CD-ROM, накопитель на жестких дисках, устройство на магнитной пленке или устройство на твердотельной памяти, или подобную. Временная несущая среда может включать в себя сигнал, такой как электрический сигнал, электронный сигнал, оптический сигнал, акустический сигнал, магнитный сигнал или электромагнитный сигнал, например, микроволновый или радиочастотный сигнал.
Теперь, только в качестве примера, будут описаны варианты осуществления данного изобретения, и со ссылкой на нижеследующие чертежи, на которых:
Фигура 1 иллюстрирует архитектуру HEVC-кодера;
Фигура 2 иллюстрирует архитектуру HEVC-декодера;
Фигура 3 иллюстрирует декомпозицию уровней видеокадра;
Фигура 4 иллюстрирует принцип обработки волновых фронтов;
Фигура 5 иллюстрирует размещение блока для инициализации контекстной переменной при помощи волнового фронта;
Фигура 6 иллюстрирует концепцию казуальной области;
Фигура 7 иллюстрирует область поиска при копировании внутреннего блока;
Фигура 8 иллюстрирует проблему, решаемую данным изобретением;
Фигура 9 иллюстрирует один вариант осуществления данного изобретения;
Фигура 10 иллюстрирует один вариант осуществления данного изобретения;
Фигура 11 иллюстрирует один вариант осуществления данного изобретения;
Фигура 12 иллюстрирует один вариант осуществления данного изобретения;
Фигура 13 иллюстрирует один вариант осуществления данного изобретения; и
Фигура 14 принципиальной блок-схемой вычислительного устройства для реализации одного или более вариантов осуществления данного изобретения.
Фигура 1 иллюстрирует архитектуру HEVC-кодера. В видеокодере, первоначальная последовательность 101 делится на блоки пикселей 102. Режим кодирования затем воздействует на каждый блок. Есть два семейства режимов кодирования, обычно используемых в HEVC: режимы, основанные на пространственном предсказании, или внутренние режимы 103, и режимы, основанные на временном предсказании, или внешние режимы, основанные на оценке 104 движения и компенсации 105 движения. Единица внутреннего кодирования обычно предсказывается исходя из кодированных пикселей на своей казуальной границе посредством процесса, называемого внутренним предсказанием.
Временное предсказание сперва состоит в обнаружении в предыдущем или будущем кадре, называемом опорным кадром 116, опорной области, которая наиболее близко совпадает с единицей кодирования на этапе 104 оценки движения. Эта опорная область образует блок-предиктор. Затем эта единица кодирования предсказывается с использованием блока-предиктора для вычисления остатка на этапе 105 компенсации движения.
В обоих случаях, пространственного и временного предсказания, остаток вычисляется посредством вычитания единицы кодирования из первоначального блока-предиктора.
При внутреннем предсказании, кодируется направление предсказания. При временном предсказании, кодируется по меньшей мере один вектор движения. Однако, для того, чтобы дополнительно уменьшить издержки скорости передачи битов, относящиеся к кодированию вектора движения, вектор движения кодируется ненапрямую. На самом деле, предполагая, что движение является однородным, особенно интересно кодировать вектор движения как разницу между этим вектором движения и вектором движения в его окружении. В стандарте кодирования H.264/AVC, например, векторы движения кодируются относительно среднего вектора, вычисленного между 3 блоками, размещенными над и слева от текущего блока. В битовом потоке кодируется только разница, также называемая остаточным вектором движения, вычисленная между средним вектором и вектором движения текущего блока. Это обрабатывается в модуле 117 "предсказания и кодирования Mv". Значение каждого кодированного вектора сохраняется в поле 118 векторов движения. Соседние векторы движения, используемые для предсказания, извлекаются из поля 118 векторов движения.
Затем, в модуле 106 выбирается режим, оптимизирующий показатели искажения в зависимости от скорости передачи. Для того, чтобы дополнительно уменьшить избыточности, преобразование, обычно DCT, применяется к остаточному блоку в модуле 107, и квантование применяется к коэффициентам в модуле 108. Квантованный блок коэффициентов затем энтропийно кодируется в модуле 109, и результат вставляется в битовый поток 110.
Кодер затем выполняет декодирование кодированного кадра для будущей оценки движения в модулях 111-116. Эти этапы обеспечивают кодеру и декодеру возможность иметь одинаковые опорные кадры. Чтобы реконструировать кодированный кадр, осуществляется обратное квантования остатка в модуле 111 и осуществляется обратное преобразование в модуле 112, для того, чтобы обеспечить "реконструированный" остаток в пиксельной области. Согласно режиму кодирования (внешнему или внутреннему), этот остаток добавляется к внешнему предиктору 114 или внутреннему предиктору 113.
Затем, эта первая реконструкция фильтруется в модуле 115 посредством одного или нескольких видов обработки постфильтром. Эти постфильтры интегрированы в кодированный и декодированный контур. Это означает, что они должны быть применены в отношении реконструированного кадра на стороне кодера и декодера, для того, чтобы одинаковый опорный кадр на стороне кодера и декодера. Цель этой обработки постфильтром состоит в удалении артефактов сжатия.
На Фигуре 2, представлен принцип декодера. Видеопоток 201 сначала энтропийно декодируется в модуле 202. Затем осуществляется обратное квантование остаточных данных в модуле 203, и осуществляется обратное преобразование в модуле 204, чтобы получить значения пикселей. Данные режима также энтропийно декодируются с учетом режима, выполняется декодирование внутреннего типа или декодирование внешнего типа. В случае внутреннего режима, определяется внутренний предиктор с учетом режима внутреннего предсказания, точно определенного в битовом потоке 205. Если режим является внешним, информация движения извлекается из битового потока 202. Она состоит из индекса опорного кадра и остатка вектора движения. Предиктор вектора движения добавляется к остатку вектора движения для получения вектора 210 движения. Вектор движения затем используется для локализации опорной области в опорном кадре 206. Следует отметить, что данные 211 поля вектора движения обновляются при помощи декодированного вектора движения, для того, чтобы использоваться для предсказания следующих декодированных векторов движения. Эта первая реконструкция декодированного кадра затем обрабатывается 207 постфильтром с помощью точно такого же постфильтра, который использовался на стороне кодера. Выводом декодера является распакованное видео 209.
Этот режим кодирования с копированием внутреннего блока особенно хорошо подходит для крайне повторяющихся шаблонов. В частности, известно, что он помогает при кодировании графических элементов, таких как глифы, графическое представление символа или обыкновенные GUI-элементы, которые очень трудно кодировать с использованием обыкновенных способов внутреннего предсказания.
Следует отметить, что предсказание основывается на когерентности между соседними единицами кодирования. Эта когерентность может быть географической, при рассмотрении внутри текущего кадра, или временной, при рассмотрении среди последовательных кадров. Этот вид когерентности возникает в естественных изображениях. Так как режим кодирования с копированием внутреннего блока рассматривается как режим, выделенный для текстовых или символических изображений, предсказание считается бесполезным для этого вида изображения. Например, нет причин иметь две последовательные единицы кодирования в изображении, представляющем текст, имеющие хорошие предикторы, близкие к друг другу. Первая единица кодирования может быть частью буквы "A", хороший блок-предиктор будет вследствие этого происходить от другой "A" в тексте. Тогда как следующей единицей кодирования будет буква "P", имеющая блок-предиктор от другой "P" в тексте. Нет причины, априори, иметь два блока-предиктора в одной и той же окрестности. Поэтому предшествующий уровень техники не предполагает введение предсказания в режим кодирования с копированием внутреннего блока.
В HEVC, возможно передать конкретные единицы NAL, называемые сообщениями SEI разных типов. Сообщения SEI содержат информацию, относящуюся к процессу отображения, и вследствие этого являются опциональными.
Фигура 3 показывает структуру кодирования, используемую в HEVC. Согласно HEVC и одному из его предыдущих предшественников, первоначальная видеопоследовательность 301 является рядом цифровых изображений "изображения i". Как известно специалистам в данной области техники, цифровое изображение представляется посредством одной или более матриц, коэффициенты которых представляют собой пиксели.
Изображения 302 делятся на слайсы (вырезки) 303. Слайс является частью изображения или целым изображением. В HEVC эти слайсы поделены на неперекрывающиеся блоки 304 дерева кодирования (CTB), обычно блоки с размером 64 пикселя × 64 пикселя. Каждый блок дерева кодирования может в свою очередь быть итерационно поделен на единицы 305 кодирования (CU) меньшего переменного размера с использованием декомпозиции дерева квадрантов. Единицы кодирования являются элементарными элементами кодирования и образованы двумя подединицами, которыми являются единица предсказания (PU) и единица преобразования (TU) с максимальным размером, равным размеру единицы кодирования. Единица предсказания соответствует разделу единицы кодирования для предсказания значений пикселей. Каждая единица кодирования может быть дополнительно разделена на максимум 4 квадратных единицы раздела или 2 прямоугольные единицы 306 раздела. Единицы преобразования используются для представления элементарных единиц, которые пространственно преобразуют с помощью DCT. Единица кодирования может быть разделена на TU, на основе представления 307 дерева квадрантов.
Каждый слайс осуществлен в одной единице NAL. В дополнение, параметры кодирования видеопоследовательности хранятся в выделенных единицах NAL, называемых наборами параметров. В HEVC и H.264/AVC используются два вида единиц NAL: первая, единица NAL "набор параметров последовательности (SPS)", которая собирает все параметры, которые неизменны в течение всей видеопоследовательности. Обычно, она имеет дело с профилем кодирования, размером видеокадров и другими параметрами. Во-вторых, набор параметров картинки (PPS) кодирует разные значения, которые могут изменяться от одного кадра к другому. HEVC включают в себя также набор параметров видео (VPS), который содержит параметры, описывающие общую структуру потока.
Для реализации в реальном времени или быстрой реализации, часто необходимо распараллеливать некоторые процессы кодирования и декодирования. Стандарт HEVC предлагает некоторый высокий уровень параллельности, как волновой фронт или мозаику или слайсы, для параллельности кадров и гибкого управления опорными кадрами для внешней параллельности. Эти инструменты не являются обязательными, пока, декодер должен декодировать относящийся к ним синтаксис, даже если они необязательны.
Данное изобретение предназначается для обработки волновых фронтов, когда она объединяется с инструментами копирования внутреннего блока из расширения контекста экрана для HEVC. Принцип обработки волновых фронтов представлен на Фигуре 4. Принцип состоит в распараллеливании процесса декодирования нескольких линий блока дерева кодирования. В противоположность мозаике или классическим слайсам, которые избегают некоторых предсказаний, чтобы предлагать параллельность, но генерируют некоторые потери в эффективности кодирования, волновой фронт сохраняет огромную часть предсказаний. Волновой фронт вносит задержку между каждой линией для распараллеливания. В примере по Фигуре 4, 4 потока выполняются параллельно. Так, 4 текущих блока дерева кодирования декодируются параллельно. Есть задержка между потоками; например, второму потоку требуется некоторая информация, декодированная первым потоком. Так это выполняется с задержкой в один блок дерева кодирования для энтропийного декодирования. Таким же образом, потоку 3 требуется некоторая декодирования информация из потока 2 и т.д. Если считается, что синтаксический анализ и реконструкция каждого блока дерева кодирования является в точности одинаковой, задержка должна быть на декодере в 2 блока дерева кодирования, как представлено на Фигуре 4. На самом деле, для реконструкции, верхняя правая единица кодирования верхнего правого блока дерева кодирования может быть нужна для декодирования текущего блока дерева кодирования. Так, для того, чтобы предотвратить ожидание потоком своего предыдущего потока, следует учитывать задержку в 2 блока дерева кодирования.
В стандарте HEVC, обработка волновых фронтов не задана явным образом. Явным образом описаны только некоторые повторные задания CABAC. Когда активирован флаг entropy_coding_sync_enabled_flag, и когда декодируется первый пиксель первого блока дерева кодирования из линии блоков дерева кодирования, контекстная переменная CABAC инициализируется с помощью пространственно соседнего блока T, как изображено на Фигуре 5. Более точно, контекстная переменная из CABAC принимает те же значения, что и значения блока T. Этот блок является первым блоком верхнего правого блока дерева кодирования. Если этот блок T не доступен, контекстные переменные инициализируются как первый блок дерева кодирования кадра.
Так, для волнового фронта HEVC только зависимости CABAC для первого блока каждого блока дерева кодирования отличаются от классического процесса декодирования. Для классического процесса декодирования, значения контекстных переменных первого блока дерева кодирования линии блоков дерева кодирования задаются равными значениям контекстных переменных последнего блока последнего блока дерева кодирования из предыдущей линии блоков дерева кодирования. Когда обеспечена возможность волнового фронта, эти контекстные переменные инициализируются с помощью волнового фронта верхнего правого блока дерева кодирования (T).Это единственное изменение, которое требуется на стороне декодера для использования волнового фронта и на кодере, и на декодере.
Более того, возможно повторно задать контекстные переменные CABAC как первый блок дерева кодирования кадра согласно некоторым синтаксическим элементам точки входа. Еще, эти конкретные точки входа не нужны для текущего решения.
Расширение кодирования контента экрана для HEVC при определении содержит дополнительные инструменты для эффективного кодирования последовательностей кодирования экрана. Добавленными в настоящее время инструментами являются режим копирования внутреннего блока, режим палитры и преобразование остаточного цвета. Текущее изобретение предназначено только для режима копирования внутреннего блока, так что только этот режим описывается ниже.
Еще, следует отметить, что режим палитры и режим копирования внутреннего блока являются новыми внутренними режимами и следовательно добавляются в модули 103 и 205 соответственно по Фигуре 1 и 2.
Копирование внутреннего блока (IBC) было добавлено как дополнительный режим для расширения кодирования контента экрана для HEVC. Этот способ предсказания особенно хорошо подходит для крайне повторяющихся шаблонов. В частности, известно, что он помогает при кодировании графических элементов, таких как глифы (т.е. графическое представление символа) или обыкновенные GUI-элементы, которые очень трудно кодировать с использованием обыкновенных способов внутреннего предсказания.
Фигура 6 иллюстрирует, как работает это режим предсказания с копированием внутреннего блока.
На высоком уровне, изображение делится на единицы кодирования, которые кодируются в порядке растрового сканирования. Таким образом, при кодировании блока 601, все блоки области 603 уже были кодированы/декодированы и могут считаться доступными для кодера/декодера. Область 603 называется казуальной областью единицы 601 кодирования. Как только единица 601 кодирования кодирована/декодирована, она будет принадлежать казуальной области для следующей единицы кодирования. Эта следующая единица кодирования, также как и все следующие единицы кодирования, принадлежит к области 604, проиллюстрированной как область с точками, и не может быть использована для кодирования текущей единицы 601 кодирования. Следует отметить, что казуальная область образована необработанными реконструированными блоками. Информация, используемая для кодирования заданной единицы кодирования, не является первоначальными блоками изображения по причине, что эта информация недоступна при декодировании. Единственно доступной информацией при декодировании является реконструированная версия блоков пикселей в казуальной области, а именно декодированная версия этих блоков. По этой причине, при кодировании, ранее кодированные блоки казуальной области декодируются для предоставления этой реконструированной версии этих блоков.
Копирование внутреннего блока работает посредством сигнализации блока 602 в казуальной области, который должен быть использован для произведения предсказания блока 601. Например, блок 602 может быть найден посредством использования алгоритма сопоставления. В расширении контента экрана для HEVC, этот блок указан вектором 605 блока, и остаток этого вектора согласно предиктору передается в битовом потоке.
Предиктор копирования внутреннего блока происходит из всей реконструированной казуальной области текущего кадра. Для других внутренних режимов, казуальная область не обрабатывается контурным фильтром.
Этот вектор блока является разницей в координатах между конкретной точкой единицы 601 кодирования и эквивалентной точкой в блоке-предикторе 602. Хотя будет возможно использовать подпиксельную точность как для внешних блоков, это смещение осуществляется обычно в целых единицах пикселей, вследствие этого не требуется затратная подпиксельная интерполяции.
При текущей структуре копирования внутреннего блока, единица кодирования с копированием внутреннего блока может быть разбита на одну или 2 PU, как изображено на Фигуре 3. Для наименьшего размера единицы кодирования, 8×8, единица кодирования может быть также разбита на 4 PU по 4×4 пикселя каждая.
Для внешнего режима раздел N×N не доступен. Это значит, что размер блока 4×4 не может быть использован для внешнего режима. Нижеследующая таблица приводит размер блока для обоих режимов.
В текущей реализации режима предсказания с копированием внутреннего блока, область поиска на стороне кодера зависит от размеров блоков. Это представлено в нижеследующей таблице.
(Вне области 2 CTB)
Следует отметить, что размеры PU 2N×N и N×2N протестированы только для единиц кодирования 8×8 в текущей реализации кодера. Эти размеры не изображены в этой таблице. Есть 2 типа оценки вектора блока с копированием внутреннего блока. Первым типом является классический поиск с копированием внутреннего блока, и он соответствует предназначенному алгоритму сопоставления блоков. Второй тип основан на алгоритме хэш-поиска. Также задаются два диапазона поиска.
Как изображено на Фигуре 7, для кадра 701, диапазон поиска из двух блоков дерева кодирования соответствует левому блоку 703 дерева кодирования и уже кодированным/декодированным блокам текущего блока 702 дерева кодирования 702. Уже кодированные блоки текущего блока дерева кодирования изображены в области с точками на Фигуре 7. Полнокадровый поиск соответствует всем уже кодированным/декодированным блокам 704 дерева кодирования.
В режиме копирования внутреннего блока вектор "блока" является разницей в координатах между конкретной точкой в блоке 601 для кодирования и эквивалентной точкой в блоке-предикторе 602 по Фигуре 6. Хотя будет возможно использовать подпиксельную точность как для внешних блоков, это смещение осуществляется в целых единицах пикселей, вследствие этого не требуется затратная подпиксельная интерполяции.
Этот вектор блока (BV) сам предсказывается с использованием предиктора, который может быть слева, выше BV или последним декодированным вектором блока текущего блока дерева кодирования или последним из последнего декодированного BV. Эти предикторы векторов происходят конечно из декодированного блока с копированием внутреннего блока. С помощью этих способов передается индекс предиктора.
Как упомянуто ранее, копирование внутреннего блока является внутренним режимом, так его предикторы происходят из необработанных реконструированных данных до какой-либо обработки контурным фильтром. Следовательно, реализации декодера с использованием обработки волновых фронтов должно быть уменьшено при декодировании. На самом деле, как изображено на Фигуре 8, предиктор блока с копированием внутреннего блока может происходить из блока дерева кодирования, который не был реконструирован. Так, это значит, что декодер может в полной мере ожидать процесса декодирования для предиктора копирования внутреннего блока. Так, рассматривая худший случай, который состоит в том, что каждый первый блок каждой линии блоков дерева кодирования указывает на последний блок каждой предыдущей линии блоков дерева кодирования, процесс декодирования с помощью волнового фронта не может быть существенно быстрее, чем классическое декодирование.
В первом варианте осуществления данного изобретения, для текущего блока дерева кодирования, диапазон поиска копирования внутреннего блока ограничен всеми левыми, верхним левым и верхним блоками дерева кодирования, и конечно, реконструированными блоками текущего блока дерева кодирования. Диапазоном поиска копирования внутреннего блока является область в изображении, где можно искать блок-предиктор для кодирования заданной единицы кодирования согласно режиму копирования внутреннего блока. Это значит, что верхний правый блок дерева кодирования считается недоступным для предсказания с копированием внутреннего блока на стороне кодера, и следовательно ни один предиктор блока с копированием внутреннего блока для текущего блока дерева кодирования не может указывать на какой-либо верхний правый блок дерева кодирования на стороне декодера. Фигура 9 показывает этот вариант осуществления для текущего блока дерева кодирования потока 4.
А именно диапазон поиска для режима копирования внутреннего блока определяется как область, образованная блоками дерева кодирования с координатами (X,Y), такими что:
Y≤Y0 и X≤X0,
где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, причем начало координат находится в верхнем левом углу изображения, и где (X0,Y0) являются координатами текущего блока дерева кодирования. Естественно, для текущего блока дерева кодирования, область содержит только уже реконструированные блоки.
Это решение является очень простым в том, что касается реализации, и значительно упрощает процесс с волновыми фронтами.
В других вариантах осуществления, для того, чтобы повысить эффективность кодирования, больше реконструированных блоков доступно для предсказания с копированием внутреннего блока или для текущего блока дерева кодирования.
В одном варианте осуществления, все блоки дерева кодирования (CTB), размещающиеся слева от диагонали, которая начинается в верхней правой части текущего блока дерева кодирования и заканчивается в верхнем крае изображения, доступны для предсказания с копированием внутреннего блока. Упомянутая диагональ следует ступенчатому (т.е. в форме лестницы) пути, который следует линии, которая проходит один CTB в положительном направлении вдоль оси x, за которым следует один CTB в отрицательном направлении вдоль оси y, и т.д., пока линия не достигнет верхнего края изображения. В дополнение любые уже реконструированные CTB текущего ряда (потока) CTB и любые реконструированные блоки текущего CTB также доступны для предсказания с копированием внутреннего блока. Фигура 10 показывает этот вариант осуществления для текущего блока дерева кодирования 4го потока. На стороне декодера предикторы копирования внутреннего блока для текущего блока дерева кодирования происходят только из этой области. Это соответствует кодеру, использующему задержку в один блок дерева кодирования между потоками.
А именно в этом варианте осуществления, диапазон поиска для режима копирования внутреннего блока определяется как область, образованная блоками дерева кодирования с координатами (X, Y), такими что:
Y≤Y0 и (X-X0)≤-(Y-Y0).
В другом варианте осуществления, все блоки дерева кодирования слева от диагонали с задержкой в 2 блока дерева кодирования доступны для предсказания с копированием внутреннего блока в дополнение к реконструированным блокам текущего блока дерева кодирования. Фигура 11 показывает этот вариант осуществления для текущего блока дерева кодирования 4-го потока.
А именно в этом варианте осуществления, диапазон поиска для режима копирования внутреннего блока определяется как область, образованная блоками дерева кодирования с координатами (X, Y), такими что:
Y≤Y0 и (X-X0)≤-2⋅(Y-Y0).
Этот вариант осуществления увеличивает эффективность кодирования в сравнении с первым вариантом осуществления, но как показано на Фигуре 11, потенциально этот диапазон поиска увеличивает задержку между потоками.
В другом варианте осуществления, все блоки дерева кодирования слева от диагонали с задержкой в 1 блок дерева кодирования для предыдущей линии блоков дерева кодирования и в 2 блока дерева кодирования для всех предыдущих линий блоков дерева кодирования доступны для предсказания с копированием внутреннего блока в дополнение к реконструированным блокам текущего блока дерева кодирования. Фигура 12 показывает этот вариант осуществления для текущего блока дерева кодирования 4го потока. Он соответствует декодеру, который декодирует кадр с задержкой в 2 блока дерева кодирования между потоками для того, чтобы иметь верхнюю правую единицу кодирования доступной для декодирования текущего блока дерева кодирования. Эта область наиболее предназначена для обработки волновых фронтов декодером.
А именно в этом варианте осуществления, диапазон поиска для режима копирования внутреннего блока определяется как область, образованная блоками дерева кодирования с координатами (X, Y), такими что:
Y≤Y0 и (X-X0)≤-2⋅(Y-Y0).
В одном варианте осуществления, каждый блок с копированием внутреннего блока потока может осуществлять доступ только к блокам, реконструированным тем же самым потоком. Это соответствует использованию области поиска линии блоков дерева кодирования для копирования внутреннего блока на стороне кодера. Этот вариант осуществления предлагает гибкое декодирование для обработки волновых фронтов. На самом деле, нет дополнительных зависимостей между линиями блоков дерева кодирования в сравнении с реализацией без копирования внутреннего блока, но это уменьшает эффективность кодирования.
А именно в этом варианте осуществления, диапазон поиска для режима копирования внутреннего блока определяется как область, образованная блоками дерева кодирования с координатами (X, Y), такими что:
X≤X0 и Y=Y0.
В конкретном варианте осуществления, когда волновой фронт активирован, и кодер и декодер используют параллельность волнового фронта с требуемым числом потоков. Более того, для этого варианта осуществления, потоки синхронизируются. Это значит, что каждый поток, перед началом декодирования следующего блока дерева кодирования, ожидает окончания декодирования всех блоков дерева кодирования других потоков. В этом случае, в кодере и декодере, реконструкция всех блоков синхронизируется на уровне блока дерева кодирования. В этом варианте осуществления, блок с копированием внутреннего блока потока может обработать все доступные реконструированные блоки дерева кодирования, даже если блок дерева кодирования находится ниже линий блоков дерева кодирования. Например, на Фигуре 12 каждый блок с копированием внутреннего блока каждого декодированного блока дерева кодирования (обозначенного X) может осуществить доступ ко всем доступным данным потока 4 в классической реализации. Дополнительно, каждый блок блока дерева кодирования может осуществить доступ ко всем реконструированным блокам своего собственного блока дерева кодирования. Преимущество этого варианта осуществления состоит в том, что он увеличивает среднее число блоков для каждого блока дерева кодирования и он увеличивает область поиска для первой линии блоков дерева кодирования, для которой скорость передачи битов в общем выше из-за нехватки возможных предсказаний в сравнении с другими следующими линиями блоков дерева кодирования. Следует отметить, что в этом варианте осуществления, однопоточный декодер может получить те же результаты декодирования, как и многопоточный декодер. На самом деле, обязательной является только синхронизация блоков дерева кодирования.
Фигура 13 показывает порядок декодирования CTB, реализация с однопоточным декодером реализация используется для задержки в 2 CTB. Требуется другой порядок, если рассматриваемая задержка составляет 1 CTB.
Фигура 14 принципиальной блок-схемой вычислительного устройства 1400 для реализации одного или более вариантов осуществления данного изобретения. Вычислительным устройством 1400 может быть устройство, такое как микрокомпьютер, рабочая станция или легкое портативное устройство. Вычислительное устройство 1400 содержит шину связи, соединенную с:
- центральным процессором 1401, таким как микропроцессор, обозначенным CPU;
- оперативной памятью 1402, обозначенной RAM, для хранения исполняемого кода способа вариантов осуществления данного изобретения, также как и регистров, адаптированных для записи переменных и параметров, необходимых для реализации способа кодирования или декодирования по меньшей мере части изображения согласно вариантам осуществления данного изобретения, емкость ее памяти может быть расширена посредством опциональной RAM, соединенной с портом расширения, например;
- постоянной памятью 1403, обозначенной ROM, для хранения компьютерных программ для реализации вариантов осуществления данного изобретения;
- сетевой интерфейс 1404 обычно соединен с сетью связи, по которой передаются или принимаются цифровые данные, которые должны быть обработаны. Сетевой интерфейс 1404 может быть одиночным сетевым интерфейсом, или состоять из набора разных сетевых интерфейсов (например, проводных и беспроводных интерфейсов, или разных видов проводных или беспроводных интерфейсов). Пакеты данных пишутся в сетевой интерфейс для передачи или считываются из сетевого интерфейса для приема под управлением программного приложения, выполняющегося в CPU 1401;
- пользовательский интерфейс 1405 может быть использован для приема вводов от пользователя или для отображения информации пользователю;
- жесткий диск 1406, обозначенный HD, может предусматриваться как устройство хранения большой емкости;
- модуль 1407 I/O может быть использован для приема/отправки данных от/на внешние устройства, такие как источник видео или дисплей.
Исполняемый код может храниться либо в постоянной памяти 1403, на жестком диске 1406, либо в съемной цифровой среде, такой как, например, диск. Согласно варианту, исполняемый код программ может быть принят посредством сети связи, через сетевой интерфейс 1404, для того, чтобы быть сохраненным в одном из средств хранения устройства 1400 связи, таком как жесткий диск 1406, перед исполнением.
Центральный процессор 1401 адаптирован для управления и руководства исполнением инструкций или участков программного кода программы или программ согласно вариантам осуществления данного изобретения, чьи инструкции хранятся в одном из вышеупомянутых средств хранения. После подачи питания, CPU 1401 имеет возможность исполнения инструкций из главной оперативной памяти 1402, относящихся к программному приложению, после загрузки этих инструкций из ROM 1403 для программ или жесткого диска (HD) 1406, например. Такое программное приложение, при исполнении посредством CPU 1401, вызывает выполнение этапов из схем последовательности операций, описанных в настоящем документе.
Любой этап алгоритма, описанного в настоящем документе, может быть реализован программно посредством исполнения набора инструкций или программы посредством программируемой вычислительной машины, такой как PC ("персональный компьютер"), DSP ("процессор цифровой обработки сигналов") или микроконтроллер; или в ином случае реализован аппаратно посредством машины или выделенного компонента, такого как FPGA ("программируемая пользователем вентильная матрица") или ASIC ("специализированная интегральная микросхема").
Хотя настоящее изобретение было описано выше со ссылкой на конкретные варианты осуществления, настоящее изобретение не ограничивается конкретными вариантами осуществления, и модификации будут понятны специалистам в данной области техники, которые лежат в рамках объема настоящего изобретения.
Многие дополнительные модификации и вариации предложат себя сведущим в данной области техники после обращения к вышеприведенным иллюстративным вариантам осуществления, которые даны только в качестве примера, и которые не предназначены для ограничения объема данного изобретения, которые определяются лишь прилагаемой формулой изобретения. В частности, разные признаки из разных вариантов осуществления могут взаимозаменяться, где необходимо.
В формуле изобретения, слово "содержащий" не исключает других элементов или этапов, и указание единственного числа не исключает их множественности. Сам факт, что разные признаки перечислены в обоюдно разных зависимых пунктах формулы изобретения, не указывает на то, что комбинации этих признаков нельзя использовать с пользой.
Изобретение относится к области кодирования/декодирования видео. Технический результат - обеспечение возможности выполнения параллельной обработки волновых фронтов при кодировании/декодировании изображения за счет определения области, из которой блок-предиктор может быть получен. Способ кодирования изображения, в котором изображение содержит множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей кодируется согласно режиму из множества режимов, причем один такой режим является режимом, в котором блок кодируется на основе блока-предиктора, являющегося блоком текущего изображения, при этом способ содержит этап, на котором определяют область поиска для вышеуказанного одного режима как область, образованную реконструированными блоками текущего блока дерева кодирования и блоками дерева кодирования, имеющими координаты (X, Y), где Y≤Y0 и (X-X0) ≤ -(Y-Y0), где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, начало координат находится в верхнем левом углу изображения, а (X0, Y0) являются координатами текущего блока дерева кодирования. 7 н. и 4 з.п. ф-лы, 14 ил., 2 табл.
1. Способ кодирования изображения, в котором изображение содержит множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей кодируется согласно режиму из множества режимов, причем один такой режим является режимом, в котором блок кодируется на основе блока-предиктора, являющегося блоком текущего изображения, причем способ содержит этап, на котором определяют область поиска для вышеуказанного одного режима как область, образованную реконструированными блоками текущего блока дерева кодирования и блоками дерева кодирования, имеющими координаты (X, Y), где
Y≤Y0 и (X-X0)≤-(Y-Y0),
где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, причем начало координат находится в верхнем левом углу изображения и (X0, Y0) являются координатами текущего блока дерева кодирования.
2. Способ по п. 1, в котором этап, на котором кодируют, выполняется с использованием параллельной обработки волновых фронтов.
3. Способ декодирования изображения, в котором изображение содержит множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей кодируется согласно режиму из множества режимов, причем один такой режим является режимом, в котором блок декодируется на основе блока-предиктора, являющегося блоком текущего изображения, причем способ содержит этап, на котором ограничивают область, из которой вышеуказанный блок-предиктор может быть получен для вышеуказанного одного режима, областью, образованной реконструированными блоками текущего блока дерева кодирования и блоками дерева кодирования, имеющими координаты (X, Y), где
Y≤Y0 и (X-X0)≤-(Y-Y0),
где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, причем начало координат находится в верхнем левом углу изображения, и (X0,Y0) являются координатами текущего блока дерева кодирования.
4. Способ декодирования по п. 3, в котором этап, на котором декодируют, выполняется с использованием параллельной обработки волновых фронтов.
5. Устройство для кодирования изображения, в котором изображение содержит множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей кодируется согласно режиму из множества режимов, причем один такой режим является режимом, в котором блок кодируется на основе блока-предиктора, являющегося блоком текущего изображения, причем устройство содержит средство для определения области поиска для вышеуказанного одного режима как области, образованной реконструированными блоками текущего блока дерева кодирования и блоками дерева кодирования, имеющими координаты (X, Y), где
Y≤Y0 и (X-X0)≤-(Y-Y0),
где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, причем начало координат находится в верхнем левом углу изображения и (X0, Y0) являются координатами текущего блока дерева кодирования.
6. Устройство для декодирования изображения, в котором изображение содержит множество блоков дерева кодирования, состоящих из блоков пикселей, причем каждый блок пикселей декодируется согласно режиму из множества режимов, причем один такой режим является режимом, в котором блок декодируется на основе блока-предиктора, являющегося блоком текущего изображения, причем устройство содержит средство для ограничения области, из которой может быть получен вышеуказанный блок-предиктор, областью, образованной реконструированными блоками текущего блока дерева кодирования и блоками дерева кодирования с координатами (X,Y), где
Y≤Y0 и (X-X0)≤-(Y-Y0),
где X представляет собой горизонтальную координату, Y представляет собой вертикальную координату, причем начало координат находится в верхнем левом углу изображения и (X0, Y0) являются координатами текущего блока дерева кодирования.
7. Система для кодирования и декодирования изображения, причем система содержит устройство для кодирования изображения по п. 5 и устройство для декодирования изображения по п. 6.
8. Система по п. 7, в которой устройство для кодирования и устройство для декодирования выполнены с возможностью использования параллельной обработки волновых фронтов.
9. Система по п. 8, в которой устройство для кодирования и устройство для декодирования выполнены с возможностью использования одинакового числа синхронизированных потоков соответственно для кодирования и декодирования изображения.
10. Компьютерно-читаемый носитель информации, хранящий компьютерную программу для программируемого устройства, которая при исполнении предписывает программируемому устройству осуществлять способ по п. 1.
11. Компьютерно-читаемый носитель информации, хранящий компьютерную программу для программируемого устройства, которая при исполнении предписывает программируемому устройству осуществлять способ по п. 3.
GORDON CLARE et al., "Wavefront Parallel Processing for HEVC Encoding and Decoding", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 6th Meeting: Torino, IT, 14-22 July, 2011, 16 c., Document: JCTVC-F274, опубл | |||
Печь для непрерывного получения сернистого натрия | 1921 |
|
SU1A1 |
Многоступенчатая активно-реактивная турбина | 1924 |
|
SU2013A1 |
Многоступенчатая активно-реактивная турбина | 1924 |
|
SU2013A1 |
Многоступенчатая активно-реактивная турбина | 1924 |
|
SU2013A1 |
Изложница с суживающимся книзу сечением и с вертикально перемещающимся днищем | 1924 |
|
SU2012A1 |
Изложница с суживающимся книзу сечением и с вертикально перемещающимся днищем | 1924 |
|
SU2012A1 |
СПОСОБ И УСТРОЙСТВО ДЛЯ УКАЗАНИЯ ПАРАМЕТРОВ КВАНТОВАТЕЛЯ В СИСТЕМЕ ВИДЕОКОДИРОВАНИЯ | 2007 |
|
RU2350040C1 |
Авторы
Даты
2018-08-03—Публикация
2015-10-06—Подача