Кодирование и декодирование видео
Иллюстрации
Показать всеИзобретение относится к вычислительной технике. Технический результат заключается в уменьшении памяти для хранения векторов движения. Способ генерирования набора предикторов векторов движения для подлежащего декодированию блока, формирующего часть текущего видеокадра, подлежащего декодированию, причем число временных предикторов вектора движения в наборе равно одному, а число пространственных предикторов вектора движения в наборе равно по меньшей мере одному, и причем способ содержит этап, на котором определяют упомянутый один временной предиктор из набора посредством выбора, в качестве упомянутого одного временного предиктора, вектора движения в предварительно определенном положении в блоке опорного кадра, соседствующем с блоком опорного кадра, расположенного идентично упомянутому подлежащему декодированию блоку, причем упомянутый соседствующий блок расположен ниже по диагонали и вправо от блока опорного кадра, идентично расположенного с упомянутым подлежащим декодированию блоком, и упомянутое предварительно определенное положение расположено в верхнем левом положении в упомянутом соседствующем блоке. 5 н. и 2 з.п. ф-лы, 15 ил., 2 табл.
Реферат
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Данное изобретение относится к способу и устройству для кодирования последовательности цифровых изображений, и способу и устройству для декодирования соответствующего битового потока.
Данное изобретение принадлежит к области цифровой обработки сигналов, и в частности, к области сжатия видео с использованием компенсации движения для уменьшения пространственных и временных избыточностей в видеопотоках.
ОПИСАНИЕ ИЗВЕСТНОГО УРОВНЯ ТЕХНИКИ
Многие форматы сжатия видео, например, H.263, H.264, MPEG-1, MPEG-2, MPEG-4, SVC, используют дискретное косинусное преобразование (DCT), основанное на блоках, и компенсацию движения для удаления пространственных и временных избыточностей. Они могут быть названы видеоформатами с предсказанием. Каждый кадр или изображение видеосигнала разделено на вырезки, которые кодированы и могут быть декодированы раздельно. Вырезка является обычно прямоугольным участком кадра, или в более общем смысле, участком кадра или целым кадром. Кроме того, каждая вырезка разделена на макроблоки (MB), и каждый макроблок дополнительно разделен на блоки, обычно блоки 8×8 пикселей. В наиболее современном высокоэффективном кодировании видео (HEVC), в текущий момент в процессе стандартизации, каждая вырезка разделена на неперекрывающиеся наибольшие единицы кодирования (LCU), в основном блоки размером 64 пикселя × 64 пикселя. Каждая LCU может в свою очередь быть итерационно разделена на единицы кодирования (CU) меньшего переменного размера с использованием разбиения тетрарного дерева. Каждая CU может быть разбита на максимум 2 симметричные прямоугольные единицы сегментов. Кодированные кадры могут быть двух типов: кадры с временным предсказанием (либо предсказанные исходя из одного опорного кадра, называемые P-кадрами, либо предсказанные исходя из двух опорных кадров, называемые B-кадрами) и кадры с невременным предсказанием (называемые внутренними кадрами или I-кадрами).
Временное предсказание состоит в обнаружении в опорном кадре, либо предыдущем, либо будущем кадре видеопоследовательности, участка изображения или опорной области, которая является ближайшей к блоку, подлежащему кодированию. Этот этап известен как оценка движения. Далее, разность между блоком, подлежащим кодированию, и опорным участком кодируется, вместе с элементом информации движения относительно вектора движения, который указывает опорную область для использования для компенсации движения.
Для того, чтобы дополнительно уменьшить стоимость кодирования информации движения, было предложено кодировать векторы движения посредством разности от предиктора вектора движения, обычно вычисляемой из векторов движения блоков, окружающих блок, подлежащий кодированию.
В H.264, векторы движения кодируются относительно срединного предиктора, вычисленного из векторов движения, расположенных в причинной близости к блоку, подлежащему кодированию, например, из блоков, расположенных выше и слева от блока, подлежащего кодированию. Кодируется только разность, так называемый остаточный вектор движения, между срединным предиктором и вектором движения текущего блока.
Кодирование с использованием остаточных векторов движения сберегает некоторую битовую скорость, но делает необходимым, чтобы декодер выполнял то же самое вычисление предиктора вектора движения для того, чтобы декодировать значение вектора движения блока, подлежащего декодированию.
В последнее время, были предложены дополнительные улучшения, такие как использование множества возможных предикторов векторов движения. Это способ, называемый конкуренцией векторов движения, состоит в определении между несколькими предикторами векторов движения или кандидатами, какой предиктор вектора движения минимизирует стоимость кодирования, обычно стоимость «скорость передачи - искажение», для информации остаточного движения. Информация остаточного движения содержит остаточный вектор движения, т.е. разность между действительным вектором движения блока, подлежащего кодированию, и выбранным предиктором вектора движения, и элемент информации, указывающий выбранный предиктор вектора движения, такой как например, кодированное значение индекса выбранного предиктора вектора движения.
В высокоэффективном кодировании видео (HEVC), находящемся в текущий момент в процессе стандартизации, было предложено выбирать первый пространственный предиктор вектора движения из предварительно определенной группы блоков выше текущего блока, подлежащего кодированию, и второй пространственный предиктор вектора движения из другой предварительно определенной группы блоков слева от текущего блока, и временной предиктор вектора движения из идентично расположенного блока в опорном кадре. Идентично расположенный блок является блоком, расположенным в том же положении, как и блок, подлежащий кодированию, но в другом изображении. Эта схема выбора предиктора вектора движения называется усовершенствованным предсказанием вектора движения (AMVP).
В результате выбора предиктора вектора движения получается набор кандидатов предикторов векторов движения, смешивающий пространственные предикторы и временные предикторы, данный набор состоит из 0, 1, 2 или 3 кандидатов в зависимости от доступности различных пространственных и временных предикторов векторов движения. Для того, чтобы уменьшить издержки сигнализации предиктора вектора движения в битовом потоке, набор предикторов вектора движения уменьшается посредством применения процесса устранения, ликвидирующего дублированные векторы движения, т.е. векторы движения, которые имеют одинаковое значение. Например, если первый и второй пространственные предикторы векторов движения, упомянутые выше, равны, только один из них, а также временной предиктор вектора движения, должен быть удержан в качестве кандидатов предсказания векторов движения. В этом случае, для указания декодеру индекса предиктора вектора движения необходим только один бит.
Кандидаты предикторов векторов движения могут также быть упорядочены так, чтобы расположить наиболее вероятный предиктор вектора движения в первом положении, так как минимальные издержки возникают, если первый кандидат выбран в качестве наилучшего предиктора.
Значительное уменьшение набора предикторов ведет к повышению издержек сигнализации, так как указание выбранного предиктора вектора движения может быть кодировано с использованием меньшего количества битов. При ограничении, набор кандидатов может быть уменьшен до 1, например, если все предикторы векторов движения равны, и вследствие этого нет необходимости вставлять какую-либо информацию, относящуюся к выбранному предиктору вектора движения, в битовый поток.
Как описано выше, в текущем предложении HEVC, векторы движения кодируются посредством кодирования с предсказанием, с использованием множества предикторов векторов движения, которые могут быть пространственными или временными предикторами. Вследствие этого, для каждого кадра, который используется в качестве опорного кадра для получения идентично расположенного предиктора вектора движения, необходимо хранить на сторонах кодера и декодера связанные с ними векторы движения. По умолчанию, размер памяти векторов движения является значительным, учитывая сначала степень детализации представления движения (в текущем проекте HEVC, минимальный размер внешнего блока составляет 4×4), и во-вторых, что существуют до двух векторов на каждый блок движения для B_SLICE. Оценено, что для картинок с разрешением 4K×2K и использования степени детализации одного набора векторов движения на каждый блок из 4×4 пикселей, на каждый кадр требуется 26 Мбит.
Yeping Su и Andrew Segall, "On motion vector competition", JCTVC-C257, Guangzhou, CN, 7-15 октября, 2010, и Yeping Su и Andrew Segall, "CE9: Reduced resolution storage of motion vector data", JCTVC-D072, Daegu, KR, 20-28 января, 2011, предлагает уменьшить размер памяти векторов движения, необходимый на стороне декодера для хранения временных идентично расположенных векторов и опорных индексов. Предложенное решение состоит из простого поблокового суммирования векторов движения, как проиллюстрировано на Фиг. 1. В текущей реализации HEVC, один вектор движения из 16 удерживается в каждом квадрате из 64×64 пикселей, и учитывается вектор движения верхнего левого блока 4×4. Это уменьшает требования к памяти на коэффициент 16. Этот коэффициент уменьшения сигнализируется в наборе параметров последовательности. Процесс сжатия памяти векторов движения выполняется после процесса адаптивной контурной фильтрации и перед тем, как декодированная картинка выводится в буфер декодированных картинок (DPB).
Это решение обеспечивает возможность значительного уменьшения памяти векторов движения с ухудшением эффективности кодирования. Однако это решение не учитывает разнесение предикторов в наборе для суммирования блоков при сжатии памяти MV. Более того, были проверены несколько критериев, но без учета разнесения. К тому же, это решение не является ни адаптивным, ни гибким. Кроме того, когда требуется большее сжатие, необходима более высокая степень уменьшения удаления векторов движения, что может привести к значительной потере эффективности кодирования.
WO 2004/012459A описывает другое предложение для ограничения числа хранящихся векторов движения. Информация ограничения кодируется как информация заголовка (возможно на глобальном уровне, как например SPS, на уровне картинки, как например PPS, или уровне вырезки, как например заголовок вырезки). Эта информация ограничения указывает число картинок или число макроблоков, для которых хранятся векторы движения. Если кодированный блок относится к вектору движения, который сохранен, то используется этот вектор движения, иначе используется нулевой вектор движения (обе составляющие равны 0). Однако это решение не учитывает суммирование блоков.
Помимо предложений уменьшить требования к хранению векторов движения, другие прежние предложения стремились к улучшениям предикторов для AMVP.
Например, Jung, G. Clare, (Orange Labs), "Temporal MV predictor modification for MV-Comp, Skip, Direct and Merge schemes", JCTVC-D164, Daegu, KR, 20-28 январь, 2011, предлагает использование центрированного временного предиктора, см. также WO 2011/001077 A. В этом предложении идентично расположенный блок найден посредством отображения центра блока в идентично расположенный опорный кадр, вместо первоначального (верхнего левого) для блока (как предыдущая версия HEVC). Центральный и верхний левый векторы движения имеют одинаковое значение, если идентично расположенный блок имеет тот же размер или больший размер, чем текущий блок. Фиг. 2 показывает идентично расположенный блок, подразделенный на 64 блока 4×4, причем каждый имеет свой собственный вектор движения. Этот идентично расположенный блок используется для текущего блока 32×32, подлежащего кодированию, и выбранный временной предиктор является вектором движения затененного блока 4×4 в центре идентично расположенного блока.
Целью выбора центра сегмента вместо верхнего левого является обнаружить лучшее представление движения идентично расположенного блока. Теоретически, центр блока является наилучшим представлением блока, так как это центр тяжести блока. Но временной предиктор из идентично расположенного блока не является единственным предиктором в наборе предикторов AMVP.
Jian-Liang Lin, Yu-Pao Tsai, Yu-Wen Huang, Shawmin Lei, (MediaTek Inc.), "Improved Advanced Motion Vector Prediction", JCTVC-D125, Daegu, KR, 20-28 январь, 2011, предлагает добавить несколько временных блоков, как изображено на Фиг. 3. Предложены 4 предиктора, временной идентично расположенный верхний левый (T) и три других угла (нижний левый (I), нижний правый (H), верхний правый (E)). Таким образом, предикторы добавляются в набор предикторов, и они конкурируют друг с другом согласно критерию «скорость передачи - искажение».
Ни одно из вышеприведенных двух предложений для улучшения набора предикторов векторов движения не предусматривает сжатие памяти векторов движения.
Желательно решить один или более недостатков известного уровня техники.
Также желательно уменьшить требования к памяти векторов движения. Предпочтительно, это уменьшение должно быть достигнуто без ухудшения или без значительного дополнительного ухудшения эффективности кодирования. Еще более предпочтительно, это уменьшение должно быть достигнуто в комбинации с улучшениями эффективности кодирования.
Также желательно достигнуть улучшений эффективности кодирования. Предпочтительно, эти улучшения должны быть достигнуты без ухудшения или без значительного ухудшения по требованиям к памяти векторов движения. Еще более предпочтительно, эти улучшения должны быть достигнуты в комбинации с уменьшениями требований к памяти векторов движения.
Также желательно обнаружить хорошие репрезентативные векторы движения в опорном кадре для использования в качестве предикторов, однако используются те репрезентативные векторы движения, т.е. даже если они используются в целях, отличных от уменьшения требования к памяти векторов движения или улучшения эффективности кодирования.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Согласно первому аспекту настоящего изобретения предоставлен способ определения временного предиктора вектора движения, включаемого вместе с одним или более пространственными предикторами векторов движения в набор предикторов векторов движения для подлежащего кодированию блока текущего кадра, причем способ содержит этап, на котором выбирают, в качестве упомянутого временного предиктора, один вектор движения из числа векторов движения в опорном блоке опорного кадра, отличного от упомянутого текущего кадра, причем опорный блок является блоком опорного кадра, расположенным идентично упомянутому блоку, подлежащему кодированию, или блоком опорного кадра, соседствующим с идентично расположенным блоком, и выбор основывается на критерии разнесения для достижения разнесения среди предикторов упомянутого набора.
Такой способ может быть использован для обнаружения наилучшего вектора движения для поблокового суммирования векторов во время процесса сжатия памяти. Выбор наилучшего предиктора может быть основан на пространственном и/или пространственно-временном расстоянии между положениями предикторов, которые могли бы быть использованы для предсказания текущего вектора движения или для предиктора режимов слияния и пропуска.
В одном варианте осуществления положение вектора движения выбирается среди набора положений, у которого, в том что касается пространственного расстояния, самое дальнее положение по сравнению с положениями других предикторов. Более того, рассматриваемые положения должны быть хорошим представлением соседних блоков или идентично расположенного блока. Таким образом, возможно получить разнесение наборов предикторов.
Согласно второму аспекту настоящего изобретения предоставлен способ определения временного предиктора вектора движения, включаемого вместе с одним или более пространственными предикторами векторов движения в набор предикторов векторов движения для подлежащего кодированию блока текущего кадра, причем способ содержит этап, на котором выбирают, в качестве упомянутого временного предиктора, вектор движения в нижнем правом положении блока опорного кадра, расположенного идентично упомянутому блоку, подлежащему кодированию.
Такой выбор хорошо работает с относительно небольшими размерами блоков и имеет преимущество отсутствия нагрузки обработки, так как данный выбор предварительно определен.
Согласно третьему аспекту настоящего изобретения предоставлен способ определения временного предиктора вектора движения, включаемого вместе с одним или более пространственными предикторами векторов движения в набор предикторов векторов движения для подлежащего кодированию блока текущего кадра, причем способ содержит этап, на котором выбирают, в качестве упомянутого временного предиктора, вектор движения в нижнем правом положении блока опорного кадра, расположенного идентично упомянутому блоку, подлежащему кодированию, или в предварительно определенном положении, вблизи от упомянутого нижнего правого положения, в блоке опорного кадра, соседствующем с идентично расположенным блоком.
В этом аспекте данного изобретения выбор расширяется, чтобы включать в себя положения вблизи от упомянутого нижнего правого положения, в блоке опорного кадра, соседствующем с идентично расположенным блоком.
Такой выбор также хорошо работает с относительно небольшими размерами блоков и имеет преимущество отсутствия нагрузки обработки, так как данный выбор предварительно определен.
Согласно четвертому аспекту настоящего изобретения предоставлен способ определения временного предиктора вектора движения, включаемого вместе с одним или более пространственными предикторами векторов движения в набор предикторов векторов движения для подлежащего кодированию блока текущего кадра, причем способ содержит этап, на котором выбирают в качестве упомянутого временного предиктора один вектор движения из числа векторов движения в опорном блоке опорного кадра, отличного от упомянутого текущего кадра, причем опорный блок является блоком опорного кадра, расположенным идентично упомянутому блоку, подлежащему кодированию, или блоком опорного кадра, соседствующим с идентично расположенным блоком, и выбор зависит от размера блока для блока, подлежащего кодированию.
Такой способ обеспечивает возможность выбора вектора движения по-разному для разных размеров блоков. В экспериментах, хорошие результаты были достигнуты с помощью этого способа.
Например, в случае первого размера блока вектор движения в первом предварительно определенном положении в опорном блоке может быть выбран в качестве упомянутого временного предиктора, и в случае второго размера блока, отличного от первого размера блока, вектор движения во втором предварительно определенном положении в опорном блоке, отличном от первого положения, может быть выбран в качестве упомянутого временного предиктора. Когда первый размер блока меньше, чем второй размер блока, эффективно сделать первым положением нижнее правое положение в идентично расположенном блоке и сделать вторым положением центральное положение в идентично расположенном блоке.
В качестве альтернативы, в случае первого размера блока один вектор движения в опорном блоке может быть выбран в качестве упомянутого временного предиктора с использованием первого способа выбора, и в случае второго размера блока, отличного от первого размера блока, один вектор движения в опорном блоке может быть выбран с использованием второго способа выбора, отличного от упомянутого первого способа.
Некоторые варианты осуществления предусматривают определение относительных положений по меньшей мере одного упомянутого пространственного предиктора и по меньшей мере одного вектора движения упомянутого опорного блока, и выбор упомянутого временного предиктора в зависимости от упомянутых относительных положений. Это является эффективным способом гарантировать управляемое разнесение между предикторами.
Другие варианты осуществления предусматривают определение доступности по меньшей мере одного упомянутого пространственного предиктора и выбора упомянутого временного предиктора в зависимости от упомянутой доступности. Снова, это является эффективным способом гарантировать управляемое разнесение. Например, в некоторых реализациях могут быть исключены один или более пространственных предикторов. Также для некоторых положений в кадре, например, вверху кадра или у левого края кадра, заранее известно, что один или более пространственных предикторов недоступны.
Другие варианты осуществления используют таблицу соответствия для выбора упомянутого временного предиктора, причем таблица соответствия хранит для одной или более разных выбираемых комбинаций пространственных предикторов информацию, идентифицирующую вектор движения опорного блока, который должен быть выбран для рассматриваемой комбинации. Это имеет низкую сложность и может работать быстро.
Способы по первому по четвертый аспектам могут быть использованы для достижения уменьшения требования к памяти для хранения векторов движения. Они могут быть также использованы для улучшения эффективности кодирования.
В случае уменьшения памяти пространственный предиктор выбирается до выбора по меньшей мере одного пространственного предиктора. Соответственно, в этом случае, данные способы могут дополнительно содержать этап, на котором оценивают положение рассматриваемого пространственного предиктора в зависимости от среднего положения среди потенциальных положений рассматриваемого пространственного предиктора. Среднее может быть взвешено, по желанию, согласно относительным частотам, с которыми будут выбираться потенциальные положения. Это, в свою очередь, зависит от процесса выбора, применяемого, например, в AMVP, при этом поиск проводится справа налево для верхнего предиктора и снизу вверх для левого предиктора. Это оказывает влияние на относительные частоты.
Согласно пятому аспекту настоящего изобретения предоставлен способ сохранения векторов движения, которые должны быть использованы в качестве временных предикторов векторов движения, содержащий этап, на котором сохраняют из числа векторов движения подлежащего кодированию блока текущего кадра вектор движения, имеющий то же положение, как и временной предиктор, определенный способом по любому из первого по четвертый аспектов настоящего изобретения, так что сохраненный вектор движения доступен в качестве временного предиктора для кодирования дальнейшего кадра относительно упомянутого текущего кадра, и не сохраняют другие упомянутые векторы движения подлежащего кодированию блока текущего кадра.
Это улучшает эффективность кодирования по сравнению с прежними способами суммирования блоков.
Согласно шестому аспекту настоящего изобретения предоставлен способ генерирования набора предикторов векторов движения для подлежащего кодированию блока текущего кадра, причем разрешено, чтобы набор включал в себя по меньшей мере один пространственный предиктор вектора движения и по меньшей мере один временной предиктор вектора движения, содержащий использование способа по любому из первого по четвертый аспектов настоящего изобретения для определения данного упомянутого временного предиктора вектора движения из набора или одного из них.
Это может предоставить улучшения эффективности кодирования. В этом аспекте настоящего изобретения возможно хранить все векторы движения, т.е. нет необходимости уменьшать число хранящихся векторов движения, хотя это, конечно, предпочтительно.
В этом случае, по меньшей мере один упомянутый пространственный предиктор выбирается до определения временного предсказания, и определение временного предиктора предпочтительно проводится в зависимости от выбранного пространственного предиктора(ов). В отличие от этого при применении уменьшения памяти, вследствие этого могут быть приняты во внимание действительные итоги выборов пространственных предикторов, что дает хорошие результаты в том, что касается улучшения разнесения.
Согласно седьмому аспекту настоящего изобретения предоставлен способ кодирования последовательности цифровых изображений в битовый поток, при этом по меньшей мере один участок изображения кодирован посредством компенсации движения по отношению к участку опорного изображения, содержащий способ определения временного предиктора вектора движения согласно любому из первого по четвертый аспектов настоящего изобретения.
Согласно восьмому аспекту настоящего изобретения предоставлен способ кодирования последовательности цифровых изображений в битовый поток, при этом по меньшей мере один участок изображения кодирован посредством компенсации движения по отношению к участку опорного изображения, содержащий способ сохранения векторов движения согласно пятому аспекту настоящего изобретения.
Согласно девятому аспекту настоящего изобретения предоставлен способ кодирования последовательности цифровых изображений в битовый поток, при этом по меньшей мере один участок изображения кодирован посредством компенсации движения по отношению к участку опорного изображения, содержащий способ генерирования набора предикторов векторов движения согласно шестому аспекту настоящего изобретения.
В десятом - пятнадцатом аспектах настоящего изобретения способы по первому - шестому аспектам могут быть также использованы в способе декодирования битового потока, содержащего кодированную последовательность цифровых изображений, причем по меньшей мере один участок изображения кодирован посредством компенсации движения по отношению к опорному изображению.
Согласно шестнадцатому аспекту настоящего изобретения предоставлено устройство для определения временного предиктора вектора движения, включаемого вместе с одним или более пространственными предикторами векторов движения в набор предикторов векторов движения для подлежащего кодированию блока текущего кадра, причем устройство содержит средство для выбора в качестве упомянутого временного предиктора одного вектора движения из числа векторов движения в опорном блоке опорного кадра, отличного от упомянутого текущего кадра, причем опорный блок является блоком опорного кадра, расположенным идентично упомянутому блоку, подлежащему кодированию, или блоком опорного кадра, соседствующим с идентично расположенным блоком, и выбор основывается на критерии разнесения для достижения разнесения среди предикторов упомянутого набора.
Согласно семнадцатому аспекту настоящего изобретения предоставлено устройство для определения временного предиктора вектора движения, включаемого вместе с одним или более пространственными предикторами векторов движения в набор предикторов векторов движения для подлежащего кодированию блока текущего кадра, причем устройство содержит средство для выбора в качестве упомянутого временного предиктора вектора движения в нижнем правом положении блока опорного кадра, расположенного идентично упомянутому блоку, подлежащему кодированию.
Согласно восемнадцатому аспекту настоящего изобретения предоставлено устройство для определения временного предиктора вектора движения, включаемого вместе с одним или более пространственными предикторами векторов движения в набор предикторов векторов движения для подлежащего кодированию блока текущего кадра, причем устройство содержит средство для выбора в качестве упомянутого временного предиктора вектора движения в нижнем правом положении блока опорного кадра, расположенного идентично упомянутому блоку, подлежащему кодированию, или в предварительно определенном положении, вблизи от упомянутого нижнего правого положения, в блоке опорного кадра, соседствующем с идентично расположенным блоком.
Согласно девятнадцатому аспекту настоящего изобретения предоставлено устройство для определения временного предиктора вектора движения, включаемого вместе с одним или более пространственными предикторами векторов движения в набор предикторов векторов движения для подлежащего кодированию блока текущего кадра, причем устройство содержит средство для выбора в качестве упомянутого временного предиктора одного вектора движения из числа векторов движения в опорном блоке опорного кадра, отличного от упомянутого текущего кадра, причем опорный блок является блоком опорного кадра, расположенным идентично упомянутому блоку, подлежащему кодированию, или блоком опорного кадра, соседствующим с идентично расположенным блоком, и выбор зависит от размера блока для блока, подлежащего кодированию.
Согласно двадцатому аспекту настоящего изобретения предоставлено устройство для хранения векторов движения, которые должны быть использованы в качестве временных предикторов векторов движения, содержащее средство управления для побуждения сохранения из числа векторов движения подлежащего кодированию блока текущего кадра вектора движения, имеющего то же положение, как и временной предиктор, определенный устройством по любому из шестнадцатого по девятнадцатый аспектов настоящего изобретения, так что сохраненный вектор движения доступен в качестве временного предиктора для кодирования дальнейшего кадра относительно упомянутого текущего кадра и для предотвращения хранения других упомянутых векторов движения подлежащего кодированию блока текущего кадра.
Согласно двадцать первому аспекту настоящего изобретения предоставлено устройство для генерирования набора предикторов векторов движения для подлежащего кодированию блока текущего кадра, причем разрешено, чтобы набор включал в себя по меньшей мере один пространственный предиктор вектора движения и по меньшей мере один временной предиктор вектора движения, содержащее устройство по любому из шестнадцатого по девятнадцатый аспектов настоящего изобретения для определения данного упомянутого временного предиктора вектора движения из набора или одного из них.
Согласно двадцать второму аспекту настоящего изобретения предоставлено устройство для кодирования последовательности цифровых изображений в битовый поток, при этом по меньшей мере один участок изображения кодирован посредством компенсации движения по отношению к участку опорного изображения, содержащее устройство по любому из шестнадцатого по девятнадцатый аспектов для определения временного предиктора вектора движения.
Согласно двадцать третьему аспекту настоящего изобретения предоставлено устройство для кодирования последовательности цифровых изображений в битовый поток, при этом по меньшей мере один участок изображения кодирован посредством компенсации движения по отношению к участку опорного изображения, содержащее устройство для хранения векторов движения по двадцатому аспекту настоящего изобретения.
Согласно двадцать четвертому аспекту настоящего изобретения предоставлено устройство для кодирования последовательности цифровых изображений в битовый поток, при этом по меньшей мере один участок изображения кодирован посредством компенсации движения по отношению к участку опорного изображения, содержащее устройство для генерирования набора предикторов векторов движения по двадцать первому аспекту настоящего изобретения.
Согласно двадцать пятому аспекту настоящего изобретения предоставлено устройство для кодирования битового потока, содержащего кодированную последовательность цифровых изображений, при этом по меньшей мере один участок изображения кодирован посредством компенсации движения по отношению к участку опорного изображения, содержащее устройство по любому из шестнадцатого по девятнадцатый аспектов для определения временного предиктора вектора движения.
Согласно двадцать шестому аспекту настоящего изобретения предоставлено устройство для кодирования битового потока, содержащего кодированную последовательность цифровых изображений, при этом по меньшей мере один участок изображения кодирован посредством компенсации движения по отношению к участку опорного изображения, содержащее устройство для хранения векторов движения по двадцатому аспекту настоящего изобретения.
Согласно двадцать седьмому аспекту настоящего изобретения предоставлено устройство для кодирования битового потока, содержащего кодированную последовательность цифровых изображений, при этом по меньшей мере один участок изображения кодирован посредством компенсации движения по отношению к участку опорного изображения, содержащее устройство для генерирования набора предикторов векторов движения по двадцать первому аспекту настоящего изобретения.
Настоящее изобретение также распространяется на программы, которые при выполнении на компьютере или процессоре предписывают компьютеру или процессору осуществлять любой из способов, описанных выше, или которые при загрузке в программируемое устройство предписывают этому устройству становиться любым из устройств, описанных выше. Программа может быть предоставлена сама по себе, или переноситься несущей средой. Несущая среда может быть носителем хранения или записывающим носителем, или она может быть средой передачи, такой как сигнал. Программа, осуществляющая настоящее изобретение, может быть кратковременной или некратковременной.
Как описано выше, в вариантах осуществления настоящего изобретения положения пространственных предикторов принимаются во внимание для создания разнесения в наборе предикторов, вместо использования наилучшего представления набора предикторов.
Для сжатия памяти MV, получены значительные результаты по сравнению с другими предложениями. Также нет влияния на сложность вычисления по сравнению с известным уровнем техники.
Данное изобретение может быть также использовано для процесса получения вектора движения для того, чтобы создать разнесение в наборе предикторов.
Данное изобретение может быть также использовано для увеличения эффективности кодирования при сжатии памяти векторов движения. Более точно, в этом случае, возможно уменьшить потерю (в том, что касается эффективности кодирования), созданную суммированием блоков при сжатии памяти векторов движения, или увеличить степень сжатия (при сжатии памяти векторов движения) при эффективности кодирования, аналогичной классическому суммированию блоков.
Соответственно, варианты осуществления данного изобретения могут улучшить эффективность кодирования схемы AMVP и режима слияния.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Теперь будет сделана ссылка, в качестве примера, на прилагающиеся чертежи, на которых:
- Фиг. 1, рассмотренная выше, является схематичным представлением для использования при разъяснении прежнего предложения для уменьшения требования к памяти векторов движения;
- Фиг. 2, также рассмотренная выше, является схематичным представлением для использования при разъяснении прежнего предложения для улучшения набора предикторов векторов движения;
- Фиг. 3, также рассмотренная выше, является схематичным представлением для использования при разъяснении другого прежнего предложения для улучшения набора предикторов векторов движения;
- Фиг. 4 показывает части устройства, подходящего для реализации кодера или декодера, согласно варианту осуществления настоящего изобретения;
- Фиг. 5 показывает блок-схему частей кодера согласно варианту осуществления настоящего изобретения;
- Фиг. 6 показывает последовательность изображений, обработанных кодером по Фиг. 5;
- Фиг. 7 иллюстрирует блок-схему частей декодера согласно варианту осуществления данного изобретения;
- Фиг. 8 является схематичным представлением для использования при разъяснении способа определения набора предикторов векторов движения, который может быть использован кодером по Фиг. 5 и декодером по Фиг. 7;
- Фиг. 9 является схемой последовательности этапов, проводимых кодером по Фиг. 5, когда используется способ по Фиг. 8;
- Фиг. 10 является схемой последовательности этапов, проводимых декодером по Фиг. 7, когда используется способ по Фиг. 8;
- Фиг. 11 является схемой последовательности операций способа суммирования блоков векторов движения, используемого кодером по Фиг. 5 и декодером по Фиг. 7;
- Фиг. 12 является схематичным представлением для использования при разъяснении принципа лежащего в основе способа по Фиг. 11; и
- Фиг. 13A - 13C показывают соответствующие матрицы расстояний, подходящие для использования в способе по Фиг. 11.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Фиг. 4 иллюстрирует схему устройства 1000, адаптированного для реализации кодера согласно варианту осуществления настоящего изобретения или для реализации декодера согласно варианту осуществления настоящего изобретения. Устройство 1000 является, например, микрокомпьютером, рабочей станцией или легким портативным устройством.
Устройство 1000 содержит шину 1113 связи, к которой предпочтительно п