СПОСОБ КОДИРОВАНИЯ С ПРЕДСКАЗАНИЕМ ВЕКТОРА ДВИЖЕНИЯ, СПОСОБ ДЕКОДИРОВАНИЯ С ПРЕДСКАЗАНИЕМ ВЕКТОРА ДВИЖЕНИЯ, УСТРОЙСТВО КОДИРОВАНИЯ ФИЛЬМА, УСТРОЙСТВО ДЕКОДИРОВАНИЯ ФИЛЬМА И ИХ ПРОГРАММЫ
MOTION VECTOR PREDICTIVE ENCODING METHOD, MOTION VECTOR PREDICTIVE DECODING METHOD, MOVING PICTURE ENCODING APPARATUS, MOVING PICTURE DECODING APPARATUS, AND PROGRAMMES THEREOF

ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее изобретение относится к технологии кодирования фильма для выполнения кодирования с предсказанием вектора движения. Конкретнее, настоящее изобретение относится к способу кодирования с предсказанием вектора движения, способу декодирования с предсказанием вектора движения, устройству кодирования фильма, устройству декодирования фильма и их программам, которые повышают эффективность предсказания вектора движения и повышают эффективность кодирования фильма.
Приоритет испрашивается по Заявке на патент Японии № 2010-026132, поданной 9 февраля 2010 года, содержимое которой включается в этот документ путем отсылки.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
[0002] В схеме кодирования фильма, использующей компенсацию движения, которая проиллюстрирована стандартом H.264, кодирование с предсказанием вектора движения выполняется для того, чтобы эффективно кодировать вектор движения.
[0003] Фиг.12 иллюстрирует пример конфигурации блока компенсации движения в традиционном устройстве кодирования фильма. Блок 100 компенсации движения в традиционном устройстве кодирования фильма снабжается блоком 101 поиска движения, запоминающим устройством 102 векторов движения, блоком 103 предсказания вектора движения и блоком 104 вычисления остатка предсказания.
[0004] Если вводится видеосигнал блока, который нужно кодировать, то блок 101 поиска движения выполняет поиск движения путем сличения его с декодированным сигналом кодированного опорного изображения, вычисляет вектор движения и сохраняет его в запоминающем устройстве 102 векторов движения. Блок 103 предсказания вектора движения считывает векторы движения, которые использованы при кодировании кодированных блоков вблизи блока, который нужно кодировать, из запоминающего устройства 102 векторов движения, и вычисляет предсказательный вектор движения с использованием их в качестве опорных векторов движения. Блок 104 вычисления остатка предсказания вычисляет остаток между вектором движения, вычисленным блоком 101 поиска движения, и предсказательным вектором движения, вычисленным блоком 103 предсказания вектора движения, и выводит остаток предсказания вектора движения. Этот остаток предсказания вектора движения кодируется и выводится в качестве кодированной информации о векторе движения.
[0005] Фиг.13 иллюстрирует пример конфигурации блока компенсации движения в традиционном устройстве декодирования фильма. Блок 200 компенсации движения в традиционном устройстве декодирования фильма снабжается блоком 201 вычисления вектора движения, блоком 202 создания сигнала предсказания, запоминающим устройством 203 векторов движения и блоком 204 предсказания вектора движения.
[0006] Блок 201 вычисления вектора движения формирует вектор движения путем прибавления остатка предсказания вектора движения, декодированного из кодированного потока, к предсказательному вектору движения, предсказанному блоком 204 предсказания вектора движения, сохраняет этот вектор движения в запоминающем устройстве 203 векторов движения и выводит его в блок 202 создания предсказательного сигнала. Блок 202 создания предсказательного сигнала считывает декодированный сигнал из декодированного опорного изображения в соответствии с вектором движения и выводит его в качестве сигнала предсказания блока, который нужно декодировать. Блок 204 предсказания вектора движения считывает векторы движения, которые использованы при декодировании декодированных блоков вблизи блока, который нужно декодировать, из запоминающего устройства 203 векторов движения, и вычисляет предсказательный вектор движения с использованием их в качестве опорных векторов движения.
[0007] Технология, имеющая отношение к вышеупомянутому кодированию с предсказанием вектора движения, включает в себя следующую традиционную технологию.
(a) Медианное кодирование с предсказанием (H.264 и т.п.) [в дальнейшем называемое традиционной технологией a]
(b) Кодирование с предсказанием на основе назначения опорного вектора движения [в дальнейшем называемое традиционной технологией b].
Фиг.14 - схема для объяснения примера традиционной схемы кодирования с предсказанием вектора движения. В традиционной технологии a и традиционной технологии b при кодировании вектора движения (декодирование такое же) предсказание выполняется с использованием векторов движения кодированных блоков (кодированных векторов движения) вблизи блока, который нужно кодировать, как проиллюстрировано на фиг.14, в качестве опорных векторов движения, и кодируется вектор движения.
[0008] В частности, в традиционной технологии a медиана опорных векторов движения используется в качестве предсказательного вектора движения, и кодируется ошибка (называемая остатком предсказания вектора движения) между вектором движения блока, который нужно кодировать, и предсказательным вектором движения (см. Непатентный документ 1).
[0009] Кроме того, в традиционной технологии b устройство кодирования (кодер) выбирает вектор движения, который нужно использовать в предсказании, из опорных векторов движения и кодирует идентификатор опорного вектора движения, который нужно использовать в предсказании, вместе с остатком предсказания вектора движения (см. Непатентный документ 2).
[0010] Кроме того, традиционно в качестве технологии для предсказания самого вектора движения блока, который нужно кодировать, вместо получения остатка предсказания вектора движения и кодирования вектора движения существует технология для предсказания вектора движения на основе сравнения с шаблоном (в дальнейшем называется традиционной технологией c). Эта традиционная технология c является способом предсказания вектора движения для выполнения компенсации движения без кодирования вектора движения на кодирующей стороне (см. Непатентный документ 3).
[0011] Фиг.15 - схема для объяснения традиционного предсказания вектора движения на основе сравнения с шаблоном. В традиционной технологии c и в случае предсказания вектора движения блока, который нужно кодировать, используя набор (это называется шаблоном) кодированных пикселей вблизи блока, который нужно кодировать, как проиллюстрировано обратной Г-образной областью на фиг.15, поиск движения выполняется в заранее установленном диапазоне поиска на опорном изображении (этот процесс называется сравнением с шаблоном). В частности, поиск выполняется для каждого вектора движения в заранее установленном диапазоне поиска путем вычисления степени подобия, например суммы абсолютных разностей (SAD), между шаблоном и областью (называемой областью сравнения), полученной путем сдвига области на опорном изображении в том же положении, что и шаблон, посредством вектора движения. Компенсация движения выполняется с использованием результирующего вектора движения. Поскольку для декодирующей стороны также возможно выполнение такого же процесса с шаблоном, который является набором декодированных пикселей, это выгодно в том, что компенсация движения возможна без кодирования вектора движения.
ДОКУМЕНТЫ ПРЕДШЕСТВУЮЩЕГО УРОВНЯ ТЕХНИКИ
Непатентный документ
rd
[0012] Непатентный документ 1: Kadono, Kikuchi и Suzuki, "3 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] Фиг.16 - схема для объяснения проблем традиционных способов. Как проиллюстрировано на фиг.16, когда соседние блоки у блока, который нужно кодировать, размещаются на границе с объектом Obj, когда имеется закрытие (когда точки соответствия у соседних блоков в опорном изображении скрываются некоторым объектом) и/или когда объект не является твердым телом, опорные векторы движения соседних блоков могут быть неподходящими для предсказания вектора движения у блока, который нужно кодировать, или сами опорные векторы движения могут быть несуществующими, потому что выполняется внутреннее кодирование. В таком случае в традиционном способе a и традиционном способе b эффективность предсказания может ухудшаться.
[0015] В отличие от этого, как проиллюстрировано блоками, указанными пунктирными линиями на фиг.16, может иметь место случай, в котором для предсказания более эффективен вектор движения блока, не включенный в возможные варианты. Чтобы использовать такой вектор движения в предсказании, можно легко сделать выводы, что вместо применения только самого соседнего блока в качестве возможного варианта увеличивается количество блоков, применяемых в качестве возможных вариантов. Однако в случае увеличения количества блоков, применяемых в качестве возможных вариантов, при традиционном способе a неподходящий опорный вектор движения может включаться в возможные варианты, и существует опасность, что эффективность предсказания ухудшается. Кроме того, при традиционном способе b, поскольку увеличивается скорость передачи битов для идентификатора опорного вектора движения, который нужно использовать в предсказании, существует опасность, что эффективность кодирования ухудшается.
[0016] С другой стороны, традиционный способ c является способом предсказания вектора движения для выполнения компенсации движения без кодирования вектора движения на кодирующей стороне. Таким образом, предлагается считать, что это применяется к вышеупомянутым проблемам традиционных способов. То есть предлагается считать, что предсказательный вектор движения создается с использованием сравнения с шаблоном в традиционном способе c, остаток предсказания вектора движения получается из предсказательного вектора движения и вектора движения блока, который нужно кодировать, полученного посредством обычного поиска движения, и выполняется кодирование. В этом случае может возникать следующая проблема.
[0017] В отличие от традиционного способа a и традиционного способа b при предсказании вектора движения в соответствии с традиционным способом c можно выполнять поиск без использования кодированных векторов движения соседних блоков у блока, который нужно кодировать. По этой причине, даже когда кодированные векторы движения не эффективны для предсказания, можно создать эффективный предсказательный вектор движения. Однако, поскольку предсказательный вектор движения определяется только из шаблона, то вектор движения, обозначающий область, не относящуюся к блоку, который нужно кодировать, может применяться в качестве предсказательного вектора движения, приводя к ухудшению эффективности предсказания.
[0018] Настоящее изобретение предназначено для решения вышеописанных проблем, и его задачей является повышение эффективности предсказания вектора движения и повышение эффективности кодирования фильма. Здесь эффективность предсказания вектора движения представляет собой степень подобия между вектором движения, который нужно предсказать, и предсказанным вектором движения. В частности, когда длина вектора разности у этих двух векторов короткая, эффективность предсказания предполагается высокой.
СРЕДСТВО ДЛЯ РЕШЕНИЯ ЗАДАЧ
[0019] Обзор настоящего изобретения выглядит следующим образом. Настоящее изобретение выполняет предсказание вектора движения для соответствующих блоков кодирующей стороны и декодирующей стороны по следующему способу.
(1) В по меньшей мере одном из изображения, которое нужно кодировать, и кодированного изображения векторы движения большого количества (N) кодированных первичных возможных блоков, которые определяются положением блока, который нужно кодировать, используются в качестве первичных возможных опорных векторов движения.
(2) С использованием только уже декодированной информации, когда декодирующая сторона начинает декодирование блока, который нужно кодировать (декодировать), получается оценочное значение (в дальнейшем называемое степенью надежности), указывающее степень, с которой каждый первичный возможный опорный вектор движения является подходящим для предсказания.
(3) Первичные возможные опорные векторы движения сводятся до небольшого количества (M) вторичных возможных опорных векторов движения, имеющих степени надежности больше заранее установленного порогового значения.
(4) Предсказательный вектор движения создается с использованием M вторичных возможных опорных векторов движения.
[0020] Если подробно, то в настоящем изобретении в качестве предварительных процессов к кодированию с предсказанием вектора движения (нижеследующий процесс 4), которые являются такими же, как в традиционном способе, выполняются следующие процессы 1-3.
[0021] [Процесс 1] N блоков (N - целое число, больше либо равное 2), включающих по меньшей мере один из кодированных блоков в изображении, которое нужно кодировать, и кодированных блоков в кодированном изображении, которые присутствуют в заранее установленных положениях относительно положения блока, который нужно кодировать в изображении, которое нужно кодировать, задаются в качестве первичных возможных блоков, и N первичных возможных опорных векторов движения определяются из векторов движения, используемых при кодировании первичных возможных блоков.
[0022] [Процесс 2] Далее степень надежности каждого из N первичных возможных опорных векторов движения, которая в количественном отношении представляет эффективность при предсказании вектора движения блока, который нужно кодировать, вычисляется с использованием информации кодированного или декодированного изображения.
[0023] [Процесс 3] Первичные возможные опорные векторы движения, имеющие степени надежности больше заранее установленного порогового значения, среди N первичных возможных опорных векторов движения выбираются в качестве вторичных возможных опорных векторов движения.
[0024] [Процесс 4] Предсказательный вектор движения блока, который нужно кодировать, вычисляется с использованием вторичных возможных опорных векторов движения, и остаток между вектором движения, полученным путем поиска движения в блоке, который нужно кодировать, и предсказательным вектором движения кодируется в качестве кодированной информации о векторе движения. В качестве процесса вычисления предсказательного вектора движения у блока, который нужно кодировать, с использованием вторичных возможных опорных векторов движения можно использовать, например, традиционный способ для выбора медианы у M вторичных возможных опорных векторов движения или выбора вторичного возможного опорного вектора движения, дающего минимальный остаток предсказания среди M вторичных возможных опорных векторов движения, и кодирование идентификатора вектора движения вместе с остатком предсказания.
[0025] Как описано выше, в настоящем изобретении первичные возможные опорные векторы движения определяются из векторов движения большого количества первичных возможных блоков в заранее установленном диапазоне по меньшей мере в одном из изображения, которое нужно кодировать, и кодированного изображения, а также векторов движения соседних блоков у блока, который нужно кодировать. Затем степень надежности каждого из первичных возможных опорных векторов движения вычисляется с использованием кодированной информации или декодированной информации. Первичные возможные опорные векторы движения сводятся в соответствии со степенями надежности, и сведенный результат используется в качестве вторичных возможных опорных векторов движения. В качестве последующих процессов, использующих вторичные возможные опорные векторы движения в качестве входных данных, например, предсказательный вектор движения получается с использованием такого же способа, как в традиционном кодировании с предсказанием вектора движения, и кодируется остаток предсказания между предсказательным вектором движения и вектором движения.
[0026] Даже в случае декодирования с предсказанием вектора движения в соответствии с настоящим изобретением векторы движения большого количества заранее установленных первичных возможных блоков используются в качестве первичных возможных опорных векторов движения. Затем степень надежности каждого из первичных возможных опорных векторов движения вычисляется с использованием декодированной информации. Первичные возможные опорные векторы движения сводятся в соответствии со степенями надежности, и сведенный результат используется в качестве вторичных возможных опорных векторов движения. В качестве последующих процессов, использующих вторичные возможные опорные векторы движения в качестве входных данных, предсказательный вектор движения получается с использованием такого же способа, как в традиционном декодировании с предсказанием вектора движения, и предсказательный вектор движения добавляется к декодированному остатку предсказания, чтобы вычислить вектор движения.
[0027] В качестве способа для вычисления степени надежности можно применять, например, способ для использования набора кодированных пикселей, смежных с блоком, который нужно кодировать, в качестве шаблона, вычисления степени подобия между областью, которую нужно сравнить, и шаблоном, и расценивания степени подобия в качестве степени надежности, где область, которую нужно сравнить, является областью, полученной путем сдвига области на опорном изображении, которая пространственно является такой же, как шаблон, посредством первичного возможного опорного вектора движения. Кроме того, степень надежности может вычисляться с использованием степени малости декодированного сигнала остатка предсказания при компенсации движения в первичном возможном блоке, который является источником вычисления каждого первичного возможного опорного вектора движения, в качестве показателя степени надежности.
ПОЛОЖИТЕЛЬНЫЕ РЕЗУЛЬТАТЫ ИЗОБРЕТЕНИЯ
[0028] В настоящем изобретении процессы 1-3 выполняются, чтобы сводить опорные векторы движения. Этого сведения также можно добиться на декодирующей стороне без дополнительной информации от кодирующей стороны, и эффективный для предсказания вектор движения включается во вторичные возможные опорные векторы движения. Таким образом, эффективность предсказания повышается по сравнению с вышеупомянутыми традиционными способами a, b и c.
[0029] Кроме того, обычно, если повышается эффективность предсказания вектора движения, то энтропия остатка предсказания вектора движения уменьшается, так что скорость передачи битов у вектора движения становится небольшой. Поскольку кодированные данные фильма включают в себя скорость передачи битов у вектора движения, эффективность кодирования фильма повышается по сравнению со схемой, использующей традиционный способ a, b или c.
[0030] Кроме того, поскольку возможно задать различные первичные возможные опорные векторы движения из большого количества первичных возможных блоков, и эти первичные возможные опорные векторы движения являются векторами движения, используемыми при кодировании, то первичные возможные опорные векторы движения соответствуют движению объекта в фильме, и весьма вероятно, что туда включаются векторы движения, эффективные для предсказания вектора движения. В настоящем изобретении получаются степени надежности только этих первичных возможных опорных векторов движения, так что возможно достичь высокой эффективности предсказания при небольшом объеме вычислений по сравнению с традиционным способом c.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0031] Фиг.1 - схема, иллюстрирующая пример конфигурации устройства кодирования фильма в соответствии с вариантом осуществления настоящего изобретения.
Фиг.2 - схема, иллюстрирующая подробный пример конфигурации блока компенсации движения, проиллюстрированного на фиг.1.
Фиг.3 - схема, иллюстрирующая пример конфигурации устройства декодирования фильма в соответствии с вариантом осуществления настоящего изобретения.
Фиг.4 - схема, иллюстрирующая подробный пример конфигурации блока компенсации движения, проиллюстрированного на фиг.3.
Фиг.5 - блок-схема алгоритма процесса предсказания вектора движения.
Фиг.6A - схема для объяснения примера задания первичных возможных блоков.
Фиг.6B - схема для объяснения примера задания первичных возможных блоков.
Фиг.7 - схема для объяснения примера задания первичных возможных опорных векторов движения.
Фиг.8 - блок-схема алгоритма, иллюстрирующая пример процесса вычисления степени надежности.
Фиг.9 - схема для объяснения способа для вычисления степени надежности с использованием сравнения с шаблоном.
Фиг.10A - блок-схема алгоритма процесса определения опорного вектора движения.
Фиг.10B - блок-схема алгоритма другого процесса определения опорного вектора движения.
Фиг.11 - блок-схема алгоритма еще одного процесса определения опорного вектора движения.
Фиг.12 - схема, иллюстрирующая пример конфигурации блока компенсации движения в соответствии с традиционным устройством кодирования фильма.
Фиг.13 - схема, иллюстрирующая пример конфигурации блока компенсации движения в соответствии с традиционным устройством декодирования фильма.
Фиг.14 - схема для объяснения примера традиционной схемы кодирования с предсказанием вектора движения.
Фиг.15 - схема для объяснения традиционного предсказания вектора движения на основе сравнения с шаблоном.
Фиг.16 - схема для объяснения проблем традиционного способа.
ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
[0032] Ниже будет подробно описываться вариант осуществления настоящего изобретения со ссылкой на чертежи.
[0033] Фиг.1 - схема, иллюстрирующая пример конфигурации устройства кодирования фильма в соответствии с вариантом осуществления настоящего изобретения. В устройстве 1 кодирования фильма из настоящего варианта осуществления блок 18 компенсации движения, в частности, является частью, которая отличается от традиционных способов, а другие части являются такими же, как общепринятое устройство кодирования фильма в традиционном способе, которое используется в качестве кодера в H.264 и т.п.
[0034] Устройство 1 кодирования фильма принимает видеосигнал, который нужно кодировать, разделяет кадр принятого видеосигнала на блоки, кодирует каждый блок и выводит его кодированные данные в виде потока двоичных сигналов.
[0035] Для этого кодирования блок 10 вычисления сигнала остатка предсказания получает разницу между принятым видеосигналом и предсказательным сигналом, который является выводом блока 18 компенсации движения, и выводит ее в качестве сигнала остатка предсказания. Блок 11 ортогонального преобразования выполняет ортогональное преобразование, например дискретное косинусное преобразование (DCT), над сигналом остатка предсказания и выводит коэффициент преобразования. Блок 12 квантования квантует коэффициент преобразования и выводит квантованный коэффициент преобразования. Блок 13 кодирования источника информации энтропийно кодирует квантованный коэффициент преобразования и выводит кодированный коэффициент в виде потока двоичных сигналов.
[0036] С другой стороны, квантованный коэффициент преобразования также вводится в блок 14 обратного квантования и обратно квантуется в нем. Блок 15 обратного ортогонального преобразования выполняет обратное ортогональное преобразование над коэффициентом преобразования, который является выводом блока 14 обратного квантования, и выводит декодированный сигнал остатка предсказания. Блок 16 вычисления декодированного сигнала добавляет декодированный сигнал остатка предсказания к предсказательному сигналу, который является выводом блока 18 компенсации движения, и формирует декодированный сигнал кодированного блока, который нужно кодировать. Этот декодированный сигнал сохраняется в запоминающем устройстве 17 кадров, чтобы использоваться в качестве опорного изображения при компенсации движения в блоке 18 компенсации движения.
[0037] Блок 18 компенсации движения выполняет поиск движения для видеосигнала блока, который нужно кодировать, ссылаясь на опорное изображение, сохраненное в запоминающем устройстве 17 кадров, и выводит предсказательный сигнал блока, который нужно кодировать. Кроме того, блок 18 компенсации движения выполняет предсказание вектора движения с использованием кодированной информации, чтобы выполнить кодирование с предсказанием для вектора движения, который является результатом поиска движения, вычисляет разницу между вектором движения, который является результатом поиска движения, и предсказательным вектором движения и выводит результат в блок 13 кодирования источника информации в качестве остатка предсказания вектора движения.
[0038] Здесь во время предсказания вектора движения вместо простого использования векторов движения кодированных блоков вблизи блока, который нужно кодировать, блок 18 компенсации движения задает большое количество кодированных первичных возможных блоков в заранее установленных положениях относительно положения блока, который нужно кодировать, задает первичные возможные опорные векторы движения из векторов движения, используемых при кодировании первичных возможных блоков, вычисляет степени надежности первичных возможных опорных векторов движения из кодированной информации, сводит их до небольшого количества вторичных возможных опорных векторов движения в соответствии со степенями надежности и вычисляет предсказательный вектор движения с использованием вторичных возможных опорных векторов движения. Процесс вычисления предсказательного вектора движения с использованием вторичных возможных опорных векторов движения может выполняться с использованием такой же методики предсказания вектора движения, как и в традиционном способе.
[0039] Фиг.2 - схема, иллюстрирующая подробный пример конфигурации блока 18 компенсации движения, проиллюстрированного на фиг.1. Как проиллюстрировано на фиг.2, блок 18 компенсации движения снабжается блоком 181 поиска движения, запоминающим устройством 182 векторов движения, блоком 183 считывания вектора движения первичного возможного блока, блоком 184 вычисления степени надежности, блоком 185 определения опорного вектора движения, блоком 186 предсказания вектора движения и блоком 187 вычисления остатка предсказания вектора движения.
[0040] В компенсации движения при кодировании блока, который нужно кодировать, сначала блок 181 поиска движения выполняет поиск движения, состоящий в сличении блока, который нужно кодировать, в принятом видеосигнале с декодированным сигналом опорного изображения, которое уже кодировано, формирует и выводит предсказательный сигнал и выводит вектор движения, указывающий положение совпадения. Этот вектор движения сохраняется в запоминающем устройстве 182 векторов движения и выводится в блок 187 вычисления остатка предсказания вектора движения.
[0041] Блок 183 считывания вектора движения первичного возможного блока считывает векторы движения N первичных возможных блоков (N - целое число, больше либо равное 2) в заранее установленных положениях, которые сохраняются в запоминающем устройстве 182 векторов движения после их кодирования ранее, задает эти векторы движения в качестве первичных возможных опорных векторов движения и сообщает первичные возможные опорные векторы движения блоку 184 вычисления степени надежности.
[0042] Блок 184 вычисления степени надежности вычисляет степень надежности у каждого из N первичных возможных опорных векторов движения, которая в количественном отношении представляет эффективность предсказания вектора движения у блока, который нужно кодировать, используя информацию кодированного изображения (декодированный сигнал).
[0043] Блок 185 определения опорного вектора движения сравнивает степени надежности, вычисленные блоком 184 вычисления степени надежности, с заранее установленным пороговым значением и выбирает первичные возможные опорные векторы движения, имеющие степени надежности больше порогового значения, в качестве вторичных возможных опорных векторов движения.
[0044] Блок 186 предсказания вектора движения вычисляет предсказательный вектор движения у блока, который нужно кодировать, с использованием вторичных возможных опорных векторов движения, выбранных блоком 185 определения опорного вектора движения. Способ вычисления предсказательного вектора движения в блоке 186 предсказания вектора движения может быть таким же, как в традиционном способе, и в качестве предсказательного вектора движения применяется, например, медиана вторичных возможных опорных векторов движения. Кроме того, среди вторичных возможных опорных векторов движения вторичный возможный опорный вектор движения, имеющий значение, ближайшее к вектору движения, полученному блоком 181 поиска движения, может применяться в качестве предсказательного вектора движения, идентификатор, указывающий тот вектор движения, может включаться в объекты, которые нужно кодировать, и объекты, которые нужно кодировать, могут передаваться декодирующей стороне.
Блок 187 вычисления остатка предсказания вектора движения вычисляет остаток между вектором движения, вычисленным блоком 181 поиска движения, и предсказательным вектором движения, вычисленным блоком 186 предсказания вектора движения, и выводит вычисленный остаток в качестве остатка предсказания вектора движения.
[0045] Фиг.3 - схема, иллюстрирующая пример конфигурации устройства декодирования фильма в соответствии с вариантом осуществления настоящего изобретения. В устройстве 2 декодирования фильма из настоящего варианта осуществления блок 25 компенсации движения, в частности, является частью, которая отличается от традиционного способа, а другие части являются такими же, как общепринятое устройство декодирования фильма в традиционном способе, которое используется в качестве декодера в H.264 и т.п.
[0046] Устройство 2 декодирования фильма принимает и декодирует поток двоичных сигналов, кодированный устройством 1 кодирования фильма, проиллюстрированным на фиг.1, и выводит декодированный сигнал декодированного изображения.
[0047] Для этого декодирования на основе принятого потока двоичных сигналов блок 20 декодирования источника информации энтропийно декодирует квантованный коэффициент преобразования блока, который нужно декодировать, и декодирует остаток предсказания вектора движения. Блок 21 обратного квантования принимает и обратно квантует квантованный коэффициент преобразования, и выводит декодированный коэффициент преобразования. Блок 22 обратного ортогонального преобразования выполняет обратное ортогональное преобразование над декодированным коэффициентом преобразования и выводит декодированный сигнал остатка предсказания. Блок 23 вычисления декодированного сигнала добавляет предсказательный сигнал, сформированный блоком 25 компенсации движения, к декодированному сигналу остатка предсказания и формирует декодированный сигнал блока, который нужно декодировать. Этот декодированный сигнал выводится во внешнее устройство, например устройство отображения, и сохраняется в запоминающем устройстве 24 кадров, чтобы использоваться в качестве опорного изображения при компенсации движения в блоке 25 компенсации движения.
[0048] Блок 25 компенсации движения предсказывает вектор движения, используя декодированную информацию, сохраненную в запоминающем устройстве 24 кадров, добавляет предсказательный вектор движения к остатку предсказания вектора движения, декодированному блоком 20 декодирования источника информации, чтобы вычислить вектор движения, и формирует предсказательный сигнал блока, который нужно декодировать, на основе вектора движения, ссылаясь на опорное изображение в запоминающем устройстве 24 кадров.
[0049] Здесь во время предсказания вектора движения вместо простого использования векторов движения декодированных блоков вблизи блока, который нужно декодировать, блок 25 компенсации движения задает большое количество декодированных первичных возможных блоков в заранее установленных положениях относительно положения блока, который нужно декодировать, и задает первичные возможные опорные векторы движения из векторов движения, используемых при декодировании первичных возможных блоков. Кроме того, блок 25 компенсации движения вычисляет степени надежности первичных возможных опорных векторов движения из декодированной информации, сводит их до небольшого количества вторичных возможных опорных векторов движения в соответствии со степенями надежности и вычисляет предсказательный вектор движения с использованием вторичных возможных опорных векторов движения. Процесс вычисления предсказательного вектора движения с использованием вторичных возможных опорных векторов движения может выполняться с использованием такого же способа предсказания вектора движения, как и в традиционном способе.
[0050] Фиг.4 - схема, иллюстрирующая подробный пример конфигурации блока 25 компенсации движения, проиллюстрированного на фиг.3. Как проиллюстрировано на фиг.4, блок 25 компенсации движения снабжается блоком 251 вычисления вектора движения, блоком 252 создания предсказательного сигнала, запоминающим устройством 253 векторов движения, блоком 254 считывания вектора движения первичного возможного блока, блоком 255 вычисления степени надежности, блоком 256 определения опорного вектора движения и блоком 257 предсказания вектора движения.
[0051] В компенсации движения при декодировании блока, который нужно декодировать, сначала блок 251 вычисления вектора движения добавляет остаток предсказания вектора движения, полученный путем декодирования кодированного потока двоичных сигналов, к предсказательному вектору движения, предсказанному блоком 257 предсказания вектора движения с использованием декодированной информации, и выводит вектор движения, который нужно использовать при декодировании. Этот вектор движения сохраняется в запоминающем устройстве 253 векторов движения и выводится в блок 252 создания предсказательного сигнала. Блок 252 создания предсказательного сигнала считывает декодированный сигнал положения опорного изображения, указанного входным вектором движения, и выводит его в качестве предсказательного сигнала блока, который нужно декодировать.
[0052] Блок 254 считывания вектора движения первичного возможного блока считывает векторы движения N первичных возможных блоков (N - целое число, больше либо равное 2) в заранее установленных положениях, которые сохраняются в запоминающем устройстве 253 векторов движения после их декодирования ранее, задает эти векторы движения в качестве первичных возможных опорных векторов движения и сообщает первичные возможные опорные векторы движения блоку 255 вычисления степени надежности.
[0053] Блок 255 вычисления степени надежности вычисляет степень надежности у каждого из N первичных возможных опорных векторов движения, которая в количественном отношении представляет эффективность предсказания вектора движения у блока, который нужно декодировать, используя информацию декодированного изображения (декодированный сигнал).
[0054] Блок 256 определения опорного вектора движения сравнивает степени надежности, вычисленные блоком 255 вычисления степени надежности, с заранее установленным пороговым значением и выбирает первичные возможные опорные векторы движения, имеющие степени надежности больше порогового значения, в качестве вторичных возможных опорных векторов движения.
[0055] Блок 257 предсказания вектора движения вычисляет предсказательный вектор движения у блока, который нужно декодировать, с использованием вторичных возможных опорных векторов движения, выбранных блоком 256 определения опорного вектора движения. Способ вычисления предсказательного вектора движения в блоке 257 предсказания вектора движения может быть таким же, как в традиционном способе, и в качестве предсказательного вектора движения применяется, например, медиана вторичных возможных опорных векторов движения. В качестве альтернативы, когда кодирующей стороной указан идентификатор вектора движения, который нужно использовать в предсказании, то в качестве предсказательного вектора движения применяется вектор движения, указанный этим идентификатором.
[0056] Далее среди процессов, выполняемых блоком 18 компенсации движения в устройстве 1 кодирования фильма и блоком 25 компенсации движения в устройстве 2 декодирования фильма, процесс предсказания вектора движения, ассоциированный с настоящим изобретением, будет описываться со ссылкой на фиг.5-11. В дальнейшем преимущественно будет описываться процесс предсказания вектора движения у кодирующей стороны; однако процесс предсказания вектора движения у декодирующей стороны является таким же.
[0057] Фиг.5 - блок-схема алгоритма процесса предсказания вектора движения.
[0058] [Процесс этапа S1]
Сначала блок 183 (или 254) считывания вектора движения первичного возможного блока считывает векторы движения N первичных возможных блоков из запоминающего устройства 182 (или 253) векторов движения.
[0059] Здесь пример задания первичных возможных блоков будет описываться со ссылкой на фиг.6A и фиг.6B. Первичные возможные блоки могут выбираться и задаваться из изображения, которое нужно кодировать (декодировать), либо могут выбираться и задаваться из кодированного изображения.
[0060] Фиг.6A иллюстрирует пример, в котором кодированные блоки в изображении 3, которое нужно кодировать, задаются в качестве первичных возможных блоков. В этом случае большое количество (в этом примере 10) кодированных блоков B1-B10 вблизи блока 31, который нужно кодировать, задаются в качестве первичных возможных блоков. Декодирующей стороне в качестве первичных возможных блоков также можно задать декодированные блоки в тех же положениях, что и первичные возможные блоки, используемые на кодирующей стороне.
[0061] Фиг.6B иллюстрирует пример, в котором кодированные блоки в кодированном изображении 30 задаются в качестве первичных возможных блоков. Например, если положение блока B11 (блока соответствующего положения) в кодированном изображении 30 является таким же, как положение блока 31, который нужно кодировать, в изображении 3, которое нужно кодировать, то блок B11 и несколько блоков с B12 по B19 вблизи блока B11 задаются в качестве первичных возможных блоков.
1
2
1
2
[0062] Чтобы задать первичные возможные опорные векторы движения как можно отличнее от группы первичных возможных блоков, также удобно объединить способ для выбора первичных возможных блоков из изображения 3, которое нужно кодировать, которое проиллюстрировано на фиг.6A, со способом для выбора первичных возможных блоков из кодированного изображения 30, которое проиллюстрировано на фиг.6B. Например, после того, как выбираются N кодированных блоков из изображения 3, которое нужно кодировать, и N кодированных блоков выбираются из кодированного изображения 30, задается всего N(= N+N) первичных возможных блоков.
[0063] Нужно отметить, что вместо задания блоков одного кодированного изображения в качестве первичных возможных блоков блоки множества кодированных изображений могут быть заданы в качестве первичных возможных блоков.
[0064] [Процесс этапа S2]
Блок 183 считывания вектора движения первичного возможного блока определяет, является ли каждый из N первичных возможных блоков блоком кодированного изображения (или декодированного изображения). Если первичные возможные блоки являются блоками кодированного изображения, то блок 183 считывания вектора движения первичного возможного блока выполняет следующий этап S3.
[0065] [Процесс этапа S3]
Если первичные возможные блоки являются блоками кодированного изображения, то вместо задания самих векторов движения, используемых при их кодировании, в качестве первичных возможных опорных векторов движения векторы движения обрабатываются для соответствия опорному изображению у изображения, которое нужно кодировать.
e
c
c
r
r2
[0066] Векторы движения обрабатываются, например, следующим образом. Когда момент изображения блока, который нужно кодировать, задается как T, момент кодированного изображения, включающего в себя первичный возможный блок (вектором движения, используемым при кодировании, является V), задается как T, момент изображения, на которое ссылается блок, который нужно кодировать, задается как T, и момент изображения, на которое ссылается первичный возможный блок, задается как T, обработанный первичный возможный опорный вектор V движения вычисляется в виде следующего уравнения.
c
r
e
r2
c
[0067] V=V×(T-T)/(T-T)
"Моменты" изображений могут быть любыми моментами, которые указывают относительное временное отношение между изображениями, например информацией о времени отображения изображения или счетчиком последовательности изображения (POC), заданным в стандарте H.264.
[0068] Фиг.7 иллюстрирует пример задания первичного возможного опорного вектора движения для первичного возможного блока в кодированном изображении. Кодированное изображение может быть любым внешним изображением (изображением, кодированным посредством компенсации движения). Например, в случае B-изображения в H.264 могут использоваться предыдущее и следующее P-изображения.
[0069] В примере фиг.7 предполагается, что P2 указывает изображение 3, которое нужно кодировать, а P4 указывает кодированное изображение 30, включающее в себя первичные возможные блоки. Кроме того, между P1 и P4 предполагается, что P1 и P4 указывают P-изображения, а P2 и P3 указывают B-изображения. Изображение 3 в P2, которое нужно кодировать, использует кодированное изображение 30 в P4 в качестве опорного изображения, а кодированное изображение 30 в P4 использует P1 в качестве опорного изображения.
p4
[0070] Вектор V движения (стрелка, указанная пунктирной линией на фиг.7) первичного возможного блока в кодированном изображении 30 в P4 является вектором для кодированного изображения в P1. Таким образом, из временного интервала L1 между P1 и P4, временного интервала L2 между P2 и P4 и начального направления первичный возможный опорный вектор V движения (стрелка, указанная сплошной линией на фиг.7) вычисляется в виде следующего уравнения.
p4
[0071] V=-V×L2/L1
c
r
e
r2
c
p4
c
e
c
r
r2
p4
То есть, если это уравнение применяется к вышеприведенному уравнению "V=V×(T-T)/(T-T)" для вычисления первичного возможного опорного вектора V движения, то V=V, моментом изображения P2 является T, моментом изображения P4 является T=T, и моментом изображения P1 является T. Путем обработки вектора V движения первичного возможного блока с использованием этого уравнения результат может использоваться в качестве первичного возможного опорного вектора V движения.
[0072] [Процесс этапа S4]
Блок 183 (или 254) считывания вектора движения первичного возможного блока задает векторы движения, полученные из N первичных возможных блоков посредством вышеупомянутых процессов, в качестве первичных возможных опорных векторов движения и сообщает первичные возможные опорные векторы движения блоку 184 (или 255) вычисления степени надежности.
[0073] [Процесс этапа S5]
Блок 184 (или 255) вычисления степени надежности вычисляет степень надежности у каждого из N заданных первичных возможных опорных векторов движения, используя кодированную информацию. Здесь степени надежности в количественном отношении представляют эффективность первичных возможных опорных векторов движения в предсказании вектора движения у блока, который нужно кодировать (декодировать). Степени надежности вычисляются для N первичных возможных опорных векторов движения с использованием только уже декодированной информации, когда декодирующая сторона начинает декодирование блока, который нужно кодировать.
[0074] Фиг.8 - блок-схема алгоритма, иллюстрирующая пример процесса вычисления степени надежности. Кроме того, фиг.9 является схемой для объяснения того, как получить степень надежности, используя сравнение с шаблоном.
[0075] В качестве примера получения степени надежности будет предоставлено описание для способа, который применяет сравнение с шаблоном. Предполагается, что предсказательный вектор движения блока 31, который нужно кодировать, нужно получить в изображении 3, которое нужно кодировать, на фиг.9. Шаблон 32 является набором кодированных пикселей, смежных с блоком 31, который нужно кодировать (в этом примере обратная Г-образная область, сконфигурированная группой из левого и верхнего пикселей блока 31, который нужно кодировать). Нужно отметить, что ширина (толщина) обратной Г-образной области соответствует, например, примерно двум пикселям; однако она может соответствовать одному пикселю или трем пикселям или более. Опорное изображение 4 является кодированным или декодированным изображением. Блок 41 соответствующего положения в опорном изображении 4 находится в том же положении, что и положение блока 31, который нужно кодировать, в изображении 3, которое нужно кодировать.
i
[0076] В процессе вычисления степени надежности из фиг.8 на этапе S51 получается область, полученная путем сдвига области (обратной Г-образной области рядом с блоком 41 соответствующего положения) на опорном изображении 4 пространственно в том же положении, что и шаблон 32, посредством первичного возможного опорного вектора V движения, степень надежности которого нужно вычислить, и это выбирается в качестве области 42, которую нужно сравнить.
i
[0077] Потом на этапе S52 вычисляется степень подобия между шаблоном 32 блока 31, который нужно кодировать, и областью 42 в опорном изображении 4, которую нужно сравнить, и это задается в качестве степени надежности первичного возможного опорного вектора V движения.
i
[0078] Примером показателя степени подобия является сумма абсолютных разностей (SAD). Чем меньше SAD, тем выше вероятность того, что первичный возможный опорный вектор V движения находится близко к движению блока 31, который нужно кодировать, и соответственно он расценивается как опорный вектор движения с высокой степенью надежности. Показатель степени надежности, используемый в блоке 184 вычисления степени надежности, может быть другим показателем, указывающим степень подобия между шаблоном 32 и областью 42, которую нужно сравнить. В дополнение к вышеупомянутой SAD может использоваться сумма квадратов разностей (SSD), сумма абсолютных преобразованных разностей (SATD) и т.п. Все они являются величинами, указывающими, что их меньшее значение означает более высокую степень надежности.
[0079] Поскольку шаблон 32 обладает высокой корреляцией с сигналом изображения блока 31, который нужно кодировать, если используется основанная на нем степень подобия, то можно идентифицировать вторичный возможный эталонный блок, эффективный для предсказания вектора движения.
[0080] Кроме того, в качестве другого способа для вычисления степени надежности можно использовать способ, использующий степень малости декодированного сигнала остатка предсказания при компенсации движения первичного возможного блока. Когда декодированный сигнал остатка предсказания большой, весьма вероятно, что первичный возможный блок размещается на границе с объектом и соответственно является неэффективным вектором движения для предсказания вектора движения. Поэтому предполагается более высокая степень надежности, когда декодированный сигнал остатка предсказания меньше. В качестве показателя степени малости декодированного сигнала остатка предсказания можно использовать сумму абсолютных значений, сумму квадратов и т.п. декодированных сигналов остатка предсказания.
[0081] [Процесс этапа S6]
Далее блок 185 (или 256) определения опорного вектора движения сводит N первичных возможных опорных векторов движения до небольшого количества вторичных возможных опорных векторов движения на основе информации о степени надежности каждого первичного возможного опорного вектора движения.
[0082] Фиг.10A - блок-схема алгоритма процесса определения опорного вектора движения. На этапе S611 блок 185 определения опорного вектора движения сравнивает каждую из степеней надежности первичных возможных опорных векторов движения, которые вычислены блоком 184 вычисления степени надежности, с заранее установленным пороговым значением, и если каждая из степеней надежности первичных возможных опорных векторов движения превышает пороговое значение, то процесс переходит к этапу S612. На этапе S612 первичные возможные опорные векторы движения, имеющие степени надежности больше заранее установленного порогового значения, задаются в качестве вторичных возможных опорных векторов движения. Если степень надежности не превышает заранее установленного порогового значения, то первичный возможный опорный вектор движения, соответствующий той степени надежности, удаляется из возможных вариантов.
[0083] Это позволяет предотвратить включение во вторичные возможные опорные векторы движения тех, которые не подходят для предсказания. В результате можно повысить эффективность предсказания вектора движения по сравнению с традиционными способами, и соответственно можно добиться повышения эффективности кодирования.
[0084] Фиг.10B является блок-схемой алгоритма другого процесса определения опорного вектора движения и иллюстрирует пример процесса определения опорного вектора движения, когда количество первичных возможных опорных векторов движения ограничивается заранее установленным количеством M.
[0085] Сначала на этапе S621 определяется, превышает ли заранее установленное пороговое значение степень надежности первичного возможного опорного вектора движения, который нужно обработать. Если степень надежности первичного возможного опорного вектора движения превышает заранее установленное пороговое значение, то процесс переходит к этапу S622; в противном случае процесс переходит к этапу S623. На этапе S622 первичный возможный опорный вектор движения, имеющий степень надежности, которая больше заранее установленного порогового значения, задается в качестве высоконадежного опорного вектора движения. На этапе S623 определяется, завершены ли процессы для всех первичных возможных опорных векторов движения, и если имеется необработанный первичный возможный опорный вектор движения, то процесс возвращается к этапу S621, и процесс выбора высоконадежного опорного вектора движения продолжается аналогичным образом.
[0086] Если процессы завершены для всех первичных возможных опорных векторов движения, то процесс переходит к этапу S624. На этапе S624 верхние M (M - заранее установленное целое число) высоконадежных опорных векторов движения в плане степени надежности среди высоконадежных опорных векторов движения задаются в качестве вторичных возможных опорных векторов движения.
[0087] Ограничивая количество вторичных возможных опорных векторов движения заранее установленным количеством M, можно снизить скорость передачи битов у вектора движения по сравнению со случаем, в котором вектор движения кодируется в соответствии с традиционным способом b, и можно добиться повышения эффективности кодирования.
[0088] Фиг.11 является блок-схемой алгоритма еще одного процесса определения опорного вектора движения и иллюстрирует пример процесса определения опорного вектора движения, когда имеется только M' первичных возможных опорных векторов движения, имеющих степени надежности, которые превышают заранее установленное пороговое значение, причем M' меньше заранее установленного количества M.
[0089] Сначала на этапе S631 определяется, превышает ли заранее установленное пороговое значение степень надежности первичных возможных опорных векторов движения, которые нужно обработать. Если степень надежности первичного возможного опорного вектора движения превышает заранее установленное пороговое значение, то процесс переходит к этапу S632; в противном случае процесс переходит к этапу S633. На этапе S632 первичный возможный опорный вектор движения, имеющий степень надежности, которая больше заранее установленного порогового значения, задается в качестве высоконадежного опорного вектора движения. На этапе S633 определяется, завершены ли процессы для всех первичных возможных опорных векторов движения, и если имеются необработанные первичные возможные опорные векторы движения, то процесс возвращается к этапу S631, и процесс выбора высоконадежного опорного вектора движения продолжается аналогичным образом.
[0090] Если процессы завершены для всех первичных возможных опорных векторов движения, то процесс переходит к этапу S634. На этапе S634 определяется, больше ли число M' высоконадежных опорных векторов движения заранее установленного количества M. Если M' больше заранее установленного количества M, то процесс переходит к этапу S635. На этапе S635 верхние M высоконадежных опорных векторов движения в плане степени надежности среди высоконадежных опорных векторов движения задаются в качестве вторичных возможных опорных векторов движения.
[0091] В отличие от этого, если M' не больше заранее установленного количества M, то процесс переходит к этапу S636. На этапе S636 все M' высоконадежных опорных векторов движения задаются в качестве вторичных возможных опорных векторов движения.
[0092] При этом, поскольку можно менять количество вторичных возможных опорных векторов движения в зависимости от состояния блоков, которые нужно кодировать, можно добиться дальнейшего повышения эффективности предсказания вектора движения и эффективности кодирования.
[0093] [Процесс этапа S7]
Блок 186 (или 257) предсказания вектора движения создает предсказательный вектор движения у блока, который нужно кодировать, с использованием вторичных возможных опорных векторов движения, выбранных блоком 185 определения опорного вектора движения. Важным вопросом настоящего изобретения является то, что большое количество первичных возможных опорных векторов движения сводится в соответствии со степенями надежности, посредством этого получая предсказательный вектор движения для вычисления остатка предсказания вектора движения с использованием вторичных возможных опорных векторов движения с высокими степенями надежности. Таким образом, процесс получения предсказательного вектора движения из вторичных возможных опорных векторов движения может быть таким же, как процесс в блоке 103 (или 204) предсказания вектора движения в традиционном способе, описанном со ссылкой на фиг.12 или фиг.13. Однако процесс не обязательно является таким же, как в традиционном способе, и предсказательный вектор движения можно получить с использованием другого процесса, посредством этого осуществляя настоящее изобретение.
[0094] До настоящего времени описан пример, в котором N первичных возможных опорных векторов движения задаются из N первичных возможных блоков. Однако также возможно задавать первичные возможные опорные векторы движения следующим образом. Когда векторы движения кодированных блоков применяются в качестве возможных вариантов, векторы движения в заранее установленном диапазоне относительно этих векторов движения также задаются в качестве первичных возможных опорных векторов движения. Например, когда вектор движения кодированного блока задается в виде (10, 20), и заранее установленный диапазон задается в виде диапазона ±1 в направлениях X и Y, то в дополнение к вектору движения (10, 20) векторы движения (9, 20), (11, 20), (10, 19), (10, 21), (9, 19), (9, 21), (11, 19) и (11, 21) применяются в качестве возможных вариантов. То есть всего 9 первичных возможных опорных векторов движения применяются в качестве возможных вариантов относительно вектора движения одного кодированного блока. Если количество векторов движения кодированного блока, которые сначала применяются в качестве возможных вариантов, устанавливается в K, и векторы движения вблизи всех K векторов движения применяются в качестве возможных вариантов, то используются (9×K) первичных возможных опорных векторов движения. Однако вместо применения всех векторов движения вблизи векторов движения кодированных блоков в качестве возможных вариантов может применяться часть векторов движения при условии, что они совместно используются с декодирующей стороной.
[0095] В качестве полезного результата такого задания также рассматриваются векторы движения вблизи векторов движения кодированных блоков, приводя к дальнейшему повышению эффективности предсказания вектора движения.
[0096] Вышеописанный процесс кодирования с предсказанием вектора движения и процесс декодирования с предсказанием вектора движения также могут выполняться компьютером и компьютерной программой. Кроме того, программу можно записать на машиночитаемый носитель записи, и она может предоставляться по сети.
[0097] Хотя варианты осуществления настоящего изобретения описаны со ссылкой на чертежи, подробные конфигурации не ограничиваются этими вариантами осуществления, и настоящее изобретение включает в себя исполнение или т.п. (добавление, исключение, замену и другие модификации конфигурации) в диапазоне, не отклоняющемся от сущности настоящего изобретения. Настоящее изобретение не нужно рассматривать как ограничиваемое предшествующим описанием, оно ограничивается только объемом прилагаемой формулы изобретения.
ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ
[0098] Настоящее изобретение применимо, например, к кодированию фильма, в котором кодирование с предсказанием выполняется над вектором движения. В соответствии с настоящим изобретением, эффективность предсказания вектора движения повышается, а также повышается эффективность кодирования фильма.
ОПИСАНИЕ НОМЕРОВ ССЫЛОК
1 устройство кодирования фильма
2 устройство декодирования фильма
10 блок вычисления сигнала остатка предсказания
11 блок ортогонального преобразования
12 блок квантования
13 блок кодирования источника информации
14, 21 блок обратного квантования
15, 22 блок обратного ортогонального преобразования
16 блок вычисления декодированного сигнала
17, 24 запоминающее устройство кадров
18, 25 блок компенсации движения
181 блок поиска движения
182, 253 запоминающее устройство векторов движения
183, 254 блок считывания вектора движения первичного возможного блока
184, 255 блок вычисления степени надежности
185, 256 блок определения опорного вектора движения
186, 257 блок предсказания вектора движения
187 блок вычисления остатка предсказания вектора движения
20 блок декодирования источника информации
23 блок вычисления декодированного сигнала
251 блок вычисления вектора движения
252 блок создания предсказательного сигнала.