Способ кодирования с предсказанием вектора движения, способ декодирования с предсказанием вектора движения, устройство кодирования фильма, устройство декодирования фильма и их программы

Иллюстрации

Показать все

Изобретение относится к области кодирования/декодирования фильмов с предсказанием вектора движения. Технический результат - улучшение эффективности предсказания и кодирования фильмов. Устройство кодирования фильма содержит блок задания первичного возможного опорного вектора движения, который задает N первичных возможных опорных векторов движения, блок вычисления степени надежности, который вычисляет надежность каждого первичного возможного опорного вектора движения, которая количественно представляет эффективность предсказания вектора движения блока, подлежащего декодированию, используя информацию о кодированном или декодированном изображении, блок определения опорного вектора движения выбирает M (M<N) вторичных возможных опорных векторов движения в соответствии со степенью надежности из N первичных возможных опорных векторов движения, блок предсказания вектора движения создает предсказательный вектор движения блока, подлежащего кодированию, используя M вторичных возможных опорных векторов движения с высокой надежностью. 6 н. и 10 з.п. ф-лы, 14 ил.

Реферат

ОБЛАСТЬ ТЕХНИКИ

[0001] Настоящее изобретение относится к технологии кодирования фильма для выполнения кодирования с предсказанием вектора движения. Более конкретно, настоящее изобретение относится к способу кодирования с предсказанием вектора движения, способу декодирования с предсказанием вектора движения, устройству кодирования фильма, устройству декодирования фильма и их программам, которые улучшают эффективность предсказания вектора движения и улучшают эффективность кодирования фильма.

Испрашивается приоритет по японской заявке на патент № 2010-026129, поданной 9 февраля 2010 года, содержимое которой включено в настоящий документ посредством ссылки.

УРОВЕНЬ ТЕХНИКИ

[0002] В схеме кодирования фильма, использующей компенсацию движения, как представлено посредством стандарта H.264, кодирование с предсказанием вектора движения выполняется для того, чтобы эффективно кодировать вектор движения.

[0003] На фиг.10 проиллюстрирован пример конфигурации блока компенсации движения в традиционном устройстве кодирования фильма. Блок 100 компенсации движения в традиционном устройстве кодирования фильма снабжен блоком 101 поиска движения, памятью 102 для вектора движения, блоком 103 предсказания вектора движения и блоком 104 вычисления остатка предсказания.

[0004] Если вводится видеосигнал блока, подлежащего кодированию, блок 101 поиска движения выполняет поиск движения посредством его сличения с декодированным сигналом кодированной опорной картинки, вычисляет вектор движения и сохраняет его в памяти 102 для вектора движения. Блок 103 предсказания вектора движения считывает векторы движения, которые были использованы при кодировании кодированных блоков вокруг блока, подлежащего кодированию, из памяти 102 для вектора движения и вычисляет предсказательный вектор движения, используя их в качестве опорных векторов движения. Блок 104 вычисления остатка предсказания вычисляет остаток между вектором движения, вычисленным блоком 101 поиска движения, и предсказательным вектором движения, вычисленным блоком 103 предсказания вектора движения, и выводит остаток предсказания вектора движения. Этот остаток предсказания вектора движения кодируется и выводится в качестве кодированной информации вектора движения.

[0005] На фиг.11 проиллюстрирован пример конфигурации блока компенсации движения в традиционном устройстве декодирования фильма. Блок 200 компенсации движения в традиционном устройстве декодирования фильма снабжен блоком 201 вычисления вектора движения, блоком 202 создания предсказательного сигнала, памятью 203 для вектора движения и блоком 204 предсказания вектора движения.

[0006] Блок 201 вычисления вектора движения генерирует вектор движения посредством прибавления остатка предсказания вектора движения, декодированного из кодированного потока, к предсказательному вектору движения, предсказанному блоком 204 предсказания вектора движения, хранит этот вектор движения в памяти 203 для вектора движения и выводит его в блок 202 создания предсказательного сигнала. Блок 202 создания предсказательного сигнала считывает декодированный сигнал из декодированной опорной картинки в соответствии с вектором движения и выводит его в качестве сигнала предсказания блока, подлежащего декодированию. Блок 204 предсказания вектора движения считывает векторы движения, которые были использованы при декодировании декодированных блоков вокруг блока, подлежащего декодированию, из памяти 203 для вектора движения и вычисляет предсказательный вектор движения, используя их в качестве опорных векторов движения.

[0007] Технология, относящаяся к вышеупомянутому кодированию с предсказанием вектора движения, включает в себя следующую традиционную технологию.

(a) Кодирование с предсказанием среднего (H.264 и тому подобное) [в дальнейшем в этом документе называемое традиционной технологией a];

(b) Кодирование с предсказанием на основе назначения опорного вектора движения [в дальнейшем в этом документе называемое традиционной технологией b].

На фиг.12 показано графическое представление для разъяснения примера традиционной схемы кодирования с предсказанием вектора движения. В традиционной технологии a и традиционной технологии b, при кодировании вектора движения (декодирование является таким же), предсказание выполняется, используя векторы движения кодированных блоков (кодированных векторов движения) вокруг блока, подлежащего кодированию, как проиллюстрировано на фиг.12, в качестве опорных векторов движения, и кодируется вектор движения.

[0008] Конкретно, в традиционной технологии a средний из опорных векторов движения используется в качестве предсказательного вектора движения, и кодируется (ссылка на непатентный документ 1) ошибка (называемая как остаток предсказания вектора движения) между вектором движения блока, подлежащего кодированию, и предсказательным вектором движения.

[0009] Более того, в традиционной технологии b устройство кодирования (кодер) выбирает вектор движения, подлежащий использованию в предсказании, из опорных векторов движения и кодирует идентификатор опорного вектора движения, подлежащего использованию в предсказании, вместе с остатком предсказания вектора движения (ссылка на непатентный документ 2).

[0010] Кроме того, традиционно, в качестве технологии для предсказания самого вектора движения блока, подлежащего кодированию, вместо получения остатка предсказания вектора движения и кодирования вектора движения существует технология для предсказания вектора движения на основе сопоставления с шаблоном (в дальнейшем в этом документе называемая как традиционная технология c). Эта традиционная технология c является способом предсказания вектора движения для выполнения компенсации движения без кодирования вектора движения на кодирующей стороне (ссылка на непатентный документ 3).

[0011] На фиг.13 показано графическое представление для разъяснения традиционного предсказания вектора движения на основе сопоставления с шаблоном. В традиционной технологии c и в случае предсказания вектора движения блока, подлежащего кодированию, посредством использования набора (это названо шаблоном) кодированных пикселей вокруг блока, подлежащего кодированию, как проиллюстрировано перевернутой L-образной областью на фиг.13, поиск движения выполняется в предварительно определенном диапазоне поиска на опорной картинке (этот процесс называется сопоставлением с шаблоном). Конкретно поиск выполняется для каждого вектора движения в предварительно определенном диапазоне поиска посредством вычисления степени сходства, такой как сумма абсолютных разностей (SAD), между шаблоном и областью (называемой областью сопоставления), полученной посредством сдвига области опорной картинки в то же положение, что и шаблон посредством вектора движения. Компенсация движения выполняется, используя результирующий вектор движения. Так как также возможно для декодирующей стороны выполнять тот же процесс с шаблоном, который является набором декодированных пикселей, это выгодно в том, что компенсация движения возможна без кодирования вектора движения.

Документы предшествующего уровня техники

Непатентные документы

[0012] Непатентный документ 1: Kadono, Kikuchi и Suzuki, "3rd revised edition. H.264/AVC textbook", изданный Impress R&D, 2009, стр. 123-125.

Непатентный документ 2: T. Yamamoto, "A new scheme for motion vector predictor encoding", ITU-T SG16/Q6, 32ое заседание VCEG, Сан-Хосе, апрель 2007 г.

Непатентный документ 3: Kobayashi, Suzuki, Boon и Horikoshi, "Reduction of Predictive Information Amount with Motion Prediction Method Using Template Matching", Известия Симпозиума по кодированию изображений, Япония, 2005 г., стр. 17-18.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

Задачи, которые решаются посредством данного изобретения

[0013] В вышеупомянутых традиционных методах a и b, когда не существует опорных векторов движения, эффективных для предсказания в смежных блоках, эффективность предсказания вектора движения снижена. Также возможно, что в дополнение к окрестности блока, подлежащего кодированию, опорные векторы движения большого числа блоков, включенных в более широкий диапазон, используются в предсказании. Однако, когда это выполняется, используя традиционные методы, эффективность предсказания и/или эффективность кодирования может быть ухудшена.

[0014] На фиг.14 показано графическое представление для разъяснения проблем традиционных методов. Как проиллюстрировано на фиг.14, когда смежные блоки блока, подлежащего кодированию, расположены на границе с объектом Obj, когда существует заграждение (когда точки соответствия смежных блоков в опорной картинке скрыты определенным объектом) и/или когда объект не является твердым телом, опорные векторы движения смежных блоков могут быть неподходящими для предсказания вектора движения блока, подлежащего кодированию, или сами опорные векторы движения могут не существовать из-за выполнения внутреннего кодирования. В таком случае как в традиционном методе a, так и в традиционном методе b эффективность предсказания может быть ухудшена.

[0015] В отличие от этого, как проиллюстрировано блоками, указанными пунктирными линиями на фиг.14, может быть случай, в котором вектор движения блока, не включенного в возможные, является более эффективным для предсказания. Для того чтобы использовать вектор движения в предсказании, возможно легко сделать выводы, что вместо использования только наиболее смежного блока в качестве возможного, число блоков, подлежащих использованию в качестве возможных, увеличивается. Однако в случае увеличения числа блоков, подлежащих использованию в качестве возможных, при традиционном методе a, не подходящий опорный вектор движения может быть включен в возможные, и существует риск, что эффективность предсказания является ухудшенной. Кроме того, при традиционном методе b, так как битовая скорость для идентификатора опорного вектора движения, подлежащего использованию в предсказании, увеличена, существует риск, что эффективность кодирования является ухудшенной.

[0016] С другой стороны, традиционный метод c является способом предсказания вектора движения для выполнения компенсации движения без кодирования вектора движения на кодирующей стороне. Таким образом, позвольте нам считать, что это применяется к вышеупомянутым проблемам традиционных методов. То есть позвольте нам считать, что предсказательный вектор движения создан, используя сопоставление с шаблоном традиционного метода c, остаток предсказания вектора движения получен из предсказательного вектора движения и вектора движения блока, подлежащего кодированию, полученного посредством обычного поиска движения, и выполняется кодирование. В этом случае может произойти следующая проблема.

[0017] В отличие от традиционного метода a и традиционного метода b, в предсказании вектора движения в соответствии с традиционны методом c возможно выполнить поиск без использования кодированных векторов движения смежных блоков блока, подлежащего кодированию. По этой причине, даже когда кодированные векторы движения являются не эффективными для предсказания, эффективный предсказательный вектор движения может быть создан. Однако, так как предсказательный вектор движения определен только из шаблона, вектор движения, назначающий область, несоответствующую блоку, подлежащему кодированию, может быть использован в качестве предсказательного вектора движения, что приводит к ухудшению эффективности предсказания.

[0018] Настоящее изобретение нацелено на решение вышеописанных проблем, и его задачей является улучшение эффективности предсказания вектора движения и улучшение эффективности кодирования фильма. Здесь эффективность предсказания вектора движения представляет степень сходства между вектором движения, который нужно предсказать, и предсказанным вектором движения. Конкретно, когда длина вектора разности этих двух векторов является короткой, предполагают, что эффективность предсказания является высокой.

Средства решения задач

[0019] Обзор настоящего изобретения выглядит следующим образом. Настоящее изобретение выполняет предсказание вектора движения для соответствующих блоков кодирующей стороны и декодирующей стороны посредством следующего способа:

(1) используют большое число из (N) первичных возможных опорных векторов движения;

(2) используют только уже декодированную информацию, когда декодирующая сторона начинает декодирование блока, подлежащего кодированию (декодированию), получено значение оценки (в дальнейшем в этом документе называемое как степень надежности), указывающее степень, для которой каждый первичный возможный опорный вектор движения является подходящим для предсказания;

(3) первичные возможные опорные векторы движения сводятся к M (<N) вторичных возможных опорных векторов движения в соответствии со степенями надежности; и

(4) предсказательный вектор движения создается, используя M вторичных возможных опорных векторов движения.

[0020] Подробно, в варианте осуществления настоящего изобретения в качестве предварительных процессов кодирования предсказания вектора движения (следующий процесс 4), которые являются такими же, как в традиционном методе, выполняются следующие процессы 1-3:

[0021] [Процесс 1] Сначала, в качестве первичных возможных опорных векторов движения, извлекаются N (N является целым числом, равным или большим чем 2) векторов движения, включающих в себя по меньшей мере один из векторов движения, используемых в кодировании уже кодированных блоков, смежных с блоком, подлежащим кодированию, и векторов движения, имеющих предварительно определенное значение;

[0022] [Процесс 2] Далее, степень надежности каждого из N первичных возможных опорных векторов движения, которая количественно представляет эффективность предсказания вектора движения блока, подлежащего кодированию, вычисляется, используя информацию о кодированной или декодированной картинке;

[0023] [Процесс 3] Верхние M (M является целым числом, равным или большим чем 1 и меньшим чем N) первичных возможных опорных векторов движения с более высокими степенями надежности выбраны из N первичных возможных опорных векторов движения в качестве вторичных возможных опорных векторов движения; и

[0024] [Процесс 4] Предсказательный вектор движения блока, подлежащего кодированию, вычисляется, используя вторичные возможные опорные векторы движения, и остаток между вектором движения, полученного посредством поиска движения блока, подлежащего кодированию, и предсказательным вектором движения кодируется как кодированная информация вектора движения. В качестве процесса вычисления предсказательного вектора движения блока, подлежащего кодированию, используя вторичные возможные опорные векторы движения, например, возможно использовать традиционный способ выбора среднего из M вторичных возможных опорных векторов движения или выбора вторичного возможного опорного вектора движения, производящего минимальный остаток предсказания среди вторичных возможных опорных векторов движения, и кодирования идентификатора вектора движения вместе с остатком предсказания.

[0025] Как описано выше, в настоящем изобретении первичные возможные опорные векторы движения определены из большого числа векторов движения внутри предварительно определенного диапазона, равно как и векторы движения блоков, смежных с блоком, подлежащим кодированию. Затем степень надежности каждого из первичных возможных опорных векторов движения вычисляется, используя кодированную информацию или декодированную информацию. Первичные возможные опорные векторы движения сводятся в соответствии со степенями надежности, и сведенный результат используется в качестве вторичных возможных опорных векторов движения. В качестве последующих процессов, используя вторичные возможные опорные векторы движения в качестве входных данных, например, предсказательный вектор движения получается, используя тот же способ, как и в традиционном кодировании предсказания вектора движения, и остаток предсказания между предсказательным вектором движения и вектором движения кодируется.

[0026] Даже в случае декодирования предсказания вектора движения в соответствии с настоящим изобретением, большое число векторов движения внутри диапазона, равно как и векторы движения блоков, смежных с блоком, подлежащим декодированию, используются в качестве первичных возможных опорных векторов движения. Затем степень надежности каждого из первичных возможных опорных векторов движения вычисляется, используя декодированную информацию. Первичные возможные опорные векторы движения сводятся в соответствии со степенями надежности, и сведенный результат используется в качестве вторичных возможных опорных векторов движения. В качестве последующих процессов, используя вторичные возможные опорные векторы движения в качестве входных данных, предсказательный вектор движения получают, используя тот же способ, как и в традиционном декодировании предсказания вектора движения, и предсказательный вектор движения прибавляется к декодированному остатку предсказания для вычисления вектора движения.

Положительные эффекты данного изобретения

[0027] В настоящем изобретении процессы 1-3 выполняются так, что опорные векторы движения являются сведенными. Это сведение может быть также достигнуто на декодирующей стороне без дополнительной информации от кодирующей стороны, и вектор движения, эффективный для предсказания, включен во вторичные возможные опорные векторы движения. Таким образом, эффективность предсказания улучшена по сравнению с вышеупомянутыми традиционными методами a, b и c.

[0028] К тому же, в общем, если эффективность предсказания вектора движения улучшена, энтропия остатка предсказания вектора движения является сниженной, так что битовая скорость вектора движения становится небольшой. Так как кодированные данные фильма включают в себя битовую скорость вектора движения, эффективность кодирования фильма улучшена по сравнению со схемой, использующей традиционные методы a, b и c.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0029] На фиг.1 показана блок-схема, показывающая устройство кодирования фильма согласно варианту осуществления настоящего изобретения.

На фиг.2 показана блок-схема, показывающая блок компенсации движения, показанный на фиг.1.

На фиг.3 показана блок-схема, показывающая устройство декодирования фильма согласно варианту осуществления настоящего изобретения.

На фиг.4 показана блок-схема, показывающая блок компенсации движения, показанный на фиг.3.

На фиг.5 показана функциональная схема, показывающая процесс предсказания вектора движения согласно варианту осуществления настоящего изобретения.

На фиг.6A показано графическое представление, иллюстрирующее первый пример задания первичных возможных опорных векторов движения согласно варианту осуществления настоящего изобретения.

На фиг.6B показано графическое представление, иллюстрирующее второй пример задания первичных возможных опорных векторов движения согласно варианту осуществления настоящего изобретения.

На фиг.7 показана функциональная схема, показывающая пример процесса вычисления надежности согласно варианту осуществления настоящего изобретения.

На фиг.8 показано графическое представление способа вычисления степени надежности, используя сопоставление с шаблоном согласно варианту осуществления настоящего изобретения.

На фиг.9A показана функциональная схема, показывающая пример процесса определения опорного вектора движения согласно варианту осуществления настоящего изобретения.

На фиг.9B показана функциональная схема, показывающая еще один пример процесса определения опорного вектора движения согласно варианту осуществления настоящего изобретения.

На фиг.10 показана блок-схема, показывающая блок компенсации движения в традиционном устройстве кодирования фильма.

На фиг.11 показана блок-схема, показывающая блок компенсации движения в традиционном устройстве декодирования фильма.

На фиг.12 показано графическое представление, иллюстрирующее пример традиционной схемы кодирования предсказания вектора движения.

На фиг.13 показано графическое представление, иллюстрирующее предсказания вектора движения на основе традиционного сопоставления с шаблоном.

На фиг.14 показано графическое представление, иллюстрирующее проблемы традиционных методов.

ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ ДЛЯ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ

[0030] В дальнейшем в этом документе вариант осуществления настоящего изобретения будет описан подробно со ссылкой на чертежи.

[0031] На фиг.1 показан пример конфигурации устройства кодирования фильма в соответствии с вариантом осуществления настоящего изобретения. В устройстве 1 кодирования фильма настоящего варианта осуществления, в частности, блок 18 компенсации движения является частью, которая отличается от стандартных методов, и другие части являются такими же, как общее устройство кодирования фильма в традиционном методе, который используется в качестве кодера в H.264 и тому подобном.

[0032] Устройство 1 кодирования фильма принимает видеосигнал, подлежащий кодированию, разделяет кадр принятого видеосигнала на блоки, кодирует каждый блок и выводит их кодированные данные как поток битов.

[0033] Для этого кодирования блок 10 вычисления остаточного сигнала предсказания получает разницу между принятым видеосигналом и предсказательным сигналом, который является выходом блока 18 компенсации движения, и выводит ее как остаточный сигнал предсказания. Блок 11 ортогонального преобразования выполняет ортогональное преобразование, такое как дискретное косинусное преобразование (DCT) остаточного сигнала предсказания, и выводит коэффициент преобразования. Блок 12 квантования осуществляет квантование коэффициента преобразования и выводит квантованный коэффициент преобразования. Блок 13 кодирования информационного источника осуществляет энтропийное кодирование квантованного коэффициента преобразования и выводит кодированный коэффициент как поток битов.

[0034] С другой стороны, квантованный коэффициент преобразования также вводится в блок 14 обратного квантования и обратно квантуется в нем. Блок 15 обратного ортогонального преобразования выполняет обратное ортогональное преобразование коэффициента преобразования, который выводится из блока 14 обратного квантования, и выводит декодированный остаточный сигнал предсказания. Блок 16 вычисления декодированного сигнала прибавляет декодированный остаточный сигнал предсказания, который является выходом блока 18 компенсации движения, и генерирует декодированный сигнал кодированного блока, подлежащего кодированию. Этот декодированный сигнал хранится в памяти кадров для того, чтобы быть использованным в качестве опорной картинки компенсации движения в блоке 18 компенсации движения.

[0035] Блок 18 компенсации движения выполняет поиск движения для видеосигнала блока, подлежащего кодированию, со ссылкой на опорную картинку, хранящуюся в памяти 17 кадров, и выводит предсказательный сигнал блока, подлежащего кодированию. К тому же, блок 18 компенсации движения выполняет предсказание вектора движения, используя кодированную информацию для того, чтобы выполнить кодирование с предсказанием для вектора движения, который является результатом поиска движения, вычисляет разницу между вектором движения, который является результатом поиска движения, и предсказательным вектором движения и выводит результат в блок 13 кодирования информационного источника как остаток предсказания вектора движения.

[0036] Здесь во время предсказания вектора движения блок 18 компенсации движения использует не только векторы движения кодированных блоков вокруг блока, подлежащего кодированию. К тому же, блок 18 компенсации движения задает некоторые первичные возможные опорные векторы движения и вычисляет степени надежности первичных возможных опорных векторов движения на основе кодированной информации. Далее, блок 18 компенсации движения сводит первичные возможные опорные векторы движения к небольшому числу вторичных возможных опорных векторов движения в соответствии со степенями надежности и вычисляет предсказательный вектор движения, используя вторичные возможные опорные векторы движения. Процесс вычисления предсказательного вектора движения, используя вторичные возможные опорные векторы движения, может быть выполнен, используя тот же способ предсказания вектора движения, как и в традиционном методе.

[0037] На фиг.2 показана блок-схема, показывающая подробную конфигурацию примера блока 18 компенсации движения, проиллюстрированного на фиг.1. Как проиллюстрировано на фиг.2, блок 18 компенсации движения снабжен блоком 181 поиска движения, памятью 182 для вектора движения, блоком 183 задания первичного возможного опорного вектора движения, блоком 184 вычисления степени надежности, блоком 185 определения опорного вектора движения, блоком 186 предсказания вектора движения и блоком 187 вычисления остатка предсказания вектора движения.

[0038] При компенсации движения при кодировании блока, подлежащего кодированию, сначала блок 181 поиска движения выполняет поиск движения сличения блока, подлежащего кодированию, принятого видеосигнала с декодированным сигналом опорной картинки, которая уже была закодирована, генерирует и выводит предсказательный сигнал, и выводит вектор движения, указывающий совпадающее положение. Этот вектор движения хранится в памяти 182 для вектора движения и выводится в блок 187 вычисления остатка предсказания вектора движения.

[0039] Блок 183 задания первичного возможного опорного вектора движения задает векторы движения, хранящиеся в памяти 182 для вектора движения, после кодирования в прошлом или N (N является целым числом, равным или большим чем 2) векторов движения, включающих в себя векторы движения, имеющие предварительно определенное значение как первичные возможные опорные векторы движения, и уведомляет блок 184 вычисления степени надежности о первичных возможных опорных векторах движения.

[0040] Блок 184 вычисления степени надежности вычисляет степень надежности каждого из N первичных возможных опорных векторов движения, которая количественно представляет эффективность предсказания вектора движения блока, подлежащего кодированию, используя информацию о кодированной картинке (декодированном сигнале).

[0041] Блок 185 определения опорного вектора движения выбирает верхние M (M является целым числом, равным или большим чем 1 и меньшим чем N) первичных возможных опорных векторов движения, имеющих более высокие степени надежности, вычисленные блоком 184 вычисления степени надежности, в качестве вторичных возможных опорных векторов движения.

[0042] Блок 186 предсказания вектора движения вычисляет предсказательный вектор движения блока, подлежащего кодированию, используя вторичные возможные опорные векторы движения, выбранные блоком 185 определения опорного вектора движения. Способ вычисления предсказательного вектора движения в блоке 186 предсказания вектора движения может быть таким же, как в традиционном методе, и, например, средний из вторичных возможных опорных векторов движения используется в качестве предсказательного вектора движения. К тому же, среди вторичных возможных опорных векторов движения вторичный возможный опорный вектор движения, имеющий значение, ближайшее к вектору движения, полученному блоком 181 поиска движения, может быть использован в качестве предсказательного вектора движения, идентификатор, указывающий вектор движения, может быть включен в субъекты, подлежащие кодированию, и субъекты, подлежащие кодированию, могут осуществлять связь с декодирующей стороной.

Блок 187 вычисления остатка предсказания вектора движения вычисляет остаток между вектором движения, вычисленным блоком 181 поиска движения, и предсказательным вектором движения, вычисленным блоком 186 предсказания вектора движения, и выводит вычисленный остаток как остаток предсказания вектора движения.

[0043] На фиг.3 показано графическое представление, показывающее пример конфигурации устройства декодирования фильма в соответствии с вариантом осуществления настоящего изобретения. В устройстве 2 декодирования фильма настоящего варианта осуществления, в частности, блок 25 компенсации движения является частью, которая отличается от стандартного метода, и другие части являются такими же, как общее устройство декодирования фильма в традиционном методе, который используется в качестве декодера в H.264 и тому подобном.

[0044] Устройство 2 декодирования фильма принимает и декодирует поток битов, кодированный устройством 1 кодирования фильма, проиллюстрированным на фиг.1, и выводит декодированный сигнал декодированной картинки.

[0045] Для этого декодирования, основанного на принятом потоке битов, блок 20 декодирования информационного источника осуществляет энтропийное декодирование квантованного коэффициента преобразования блока, подлежащего декодированию, и декодирует остаток предсказания вектора движения. Блок 21 обратного квантования принимает и осуществляет обратное квантование квантованного коэффициента преобразования, и выводит декодированный коэффициент преобразования. Блок 22 обратного ортогонального преобразования выполняет обратное ортогональное преобразование декодированного коэффициента преобразования и выводит декодированный остаточный сигнал предсказания. Блок 23 вычисления декодированного сигнала прибавляет предсказательный сигнал, декодированный блоком 25 компенсации движения, к декодированному остаточному сигналу предсказания и генерирует декодированный сигнал блока, подлежащего кодированию. Этот декодированный сигнал выводится на внешнее устройство, такое как устройство отображения, и хранится в памяти 24 кадров для того, чтобы быть использованным в качестве опорной картинки компенсации движения в блоке 25 компенсации движения.

[0046] Блок 25 компенсации движения предсказывает вектор движения, используя декодированную информацию, хранящуюся в памяти 24 кадров, и прибавляет предсказательный вектор движения к остатку предсказания вектора движения, декодированному блоком 20 декодирования информационного источника, для вычисления вектора движения. Далее, блок 25 компенсации движения генерирует предсказательный сигнал блока, подлежащего декодированию, на основе вектора движения со ссылкой на опорную картинку памяти 24 кадров.

[0047] Здесь во время предсказания вектора движения блок 25 компенсации движения использует не только векторы движения декодированных блоков вокруг блока, подлежащего декодированию. К тому же, блок 25 компенсации движения задает предварительно определенное число первичных возможных опорных векторов движения и вычисляет степени надежности каждого из первичных возможных опорных векторов движения исходя из декодированной информации. Затем блок 25 компенсации движения сводит первичные опорные векторы движения к небольшому числу вторичных возможных опорных векторов движения в соответствии со степенями надежности и вычисляет предсказательный вектор движения, используя вторичные возможные опорные векторы движения. Процесс вычисления предсказательного вектора движения, используя вторичные возможные опорные векторы движения, может быть выполнен, используя тот же способ предсказания вектора движения, как и в традиционном методе.

[0048] На фиг.4 показана блок-схема, показывающая подробную конфигурацию примера блока 25 компенсации движения, проиллюстрированного на фиг.3. Как проиллюстрировано на фиг.4, блок 25 компенсации движения снабжен блоком 251 вычисления вектора движения, блоком 252 создания предсказательного сигнала, памятью 253 для вектора движения, блоком 254 задания первичного возможного опорного вектора движения, блоком 255 вычисления степени надежности, блоком 256 определения опорного вектора движения и блоком 257 предсказания вектора движения.

[0049] При компенсации движения при декодировании блока, подлежащего декодированию, сначала блок 251 вычисления вектора движения прибавляет остаток предсказания вектора движения, полученный посредством декодирования кодированного потока битов, к предсказательному вектору движения, предсказанному блоком 257 предсказания вектора движения, используя декодированную информацию, и выводит вектор движения, подлежащий использованию при декодировании. Это вектор движения хранится в памяти 253 для вектора движения и выводится в блок 252 создания предсказательного сигнала. Блок 252 создания предсказательного сигнала считывает декодированный сигнал положения опорной картинки, указанный входным вектором движения, и выводит его в качестве предсказательного сигнала блока, подлежащего декодированию.

[0050] Блок 254 задания первичного возможного опорного вектора движения задает векторы движения, хранящиеся в памяти 253 для вектора движения, после декодирования в прошлом или N (N является целым числом, равным или большим чем 2) векторов движения, включающих в себя векторы движения, имеющие предварительно определенное значение как первичные возможные опорные векторы движения, и уведомляет блок 255 вычисления степени надежности о первичных возможных опорных векторах движения.

[0051] Блок 255 вычисления степени надежности вычисляет степень надежности каждого из N первичных возможных опорных векторов движения, которая количественно представляет эффективность предсказания вектора движения блока, подлежащего декодированию, используя информацию о декодированной картинке (декодированном сигнале).

[0052] Блок 256 определения опорного вектора движения выбирает верхние M (M является целым числом, равным или большим чем 1 и меньшим чем N) первичных возможных опорных векторов движения, имеющих более высокие степени надежности, вычисленные блоком 255 вычисления степени надежности, в качестве вторичных возможных опорных векторов движения.

[0053] Блок 257 предсказания вектора движения вычисляет предсказательный вектор движения блока, подлежащего декодированию, используя вторичные возможные опорные векторы движения, выбранные блоком 256 определения опорного вектора движения. Способ вычисления предсказательного вектора движения в блоке 257 предсказания вектора движения может быть таким же, как в традиционном методе, и, например, средний из вторичных возможных опорных векторов движения используется в качестве предсказательного вектора движения. В качестве альтернативы, когда идентификатор вектора движения, подлежащего использованию в предсказании, был назначен кодирующей стороной, вектор движения, указанный идентификатором, используется в качестве предсказательного вектора движения.

[0054] Далее, среди процессов, выполненных блоком 18 компенсации движения в устройстве 1 кодирования фильма и блоком 25 компенсации движения в устройстве 2 декодирования фильма, процесс предсказания вектора движения, ассоциированный с настоящим изобретением, будет описан со ссылкой на фиг.5-9B. В дальнейшем в этом документе главным образом будет описан процесс предсказания вектора движения кодирующей стороны; однако процесс предсказания вектора движения декодирующей стороны также является таким же.

[0055] На фиг.5 показана функциональная схема процесса предсказания вектора движения.

[0056] [Процесс этапа S1]

Первоначально, блок 183 (или 254) задания первичного возможного опорного вектора движения задает N первичных возможных опорных векторов движения. В качестве способа задания N первичных возможных опорных векторов движения, например, возможно использовать следующий способ.

[0057] [Первый пример задания первичного возможного опорного вектора движения]

Как проиллюстрировано на фиг.6A, положение блока 31, подлежащего кодированию, используется в качестве опорного, и N предварительно определенных векторов Vi движения (i=1, 2,..., N) в предварительно определенном диапазоне из данного положения используются в качестве первичных возможных опорных векторов движения. Возможно произвольно определять значения векторов Vi движения заранее так, чтобы значения были одинаковыми на кодирующей стороне и декодирующей стороне. Значения э