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

ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение относится к технологии кодирования фильма для выполнения кодирования с предсказанием вектора движения. Более точно, настоящее изобретение относится к способу кодирования с предсказанием вектора движения, способу декодирования с предсказанием вектора движения, устройству кодирования фильма, устройству декодирования фильма и их программам, которые улучшают эффективность предсказания вектора движения и улучшают эффективность кодирования фильма.
Испрашивается приоритет по заявке № 2010-026131 на выдачу патента Японии, поданной 9 февраля 2010 года, содержание которой включено в материалы настоящей заявки посредством ссылки.
УРОВЕНЬ ТЕХНИКИ
В схеме кодирования фильма с использованием компенсации движения, как проиллюстрировано стандартом H.264, кодирование с предсказанием вектора движения выполняется, для того чтобы эффективно кодировать вектор движения.
Фиг.11 иллюстрирует пример конфигурации блока компенсации движения в традиционном устройстве кодирования фильма. Блок 100 компенсации движения в традиционном устройстве кодирования фильма оснащен блоком 101 поиска движения, памятью 102 векторов движения, блоком 103 предсказания вектора движения и блоком 104 расчета остатка предсказания.
Если вводится видеосигнал блока, который должен кодироваться, блок 101 поиска движения выполняет поиск движения посредством сопоставления его с декодированным сигналом кодированного опорного изображения, рассчитывает вектор движения и сохраняет его в памяти 102 векторов движения. Блок 103 предсказания вектора движения считывает векторы движения, которые использовались при кодировании кодированных блоков вокруг блока, который должен кодироваться, из памяти 102 векторов движения, и рассчитывает предсказательный вектор движения с использованием их в качестве опорных векторов движения. Блок 104 расчета остатка предсказания рассчитывает остаток между вектором движения, рассчитанным блоком 101 поиска движения, и предсказательным вектором, рассчитанным блоком 103 предсказания вектора движения, и выдает остаток предсказания вектора движения. Этот остаточный сигнал вектора движения кодируется и выводится в качестве кодированной информации вектора движения.
Фиг.12 иллюстрирует пример конфигурации блока компенсации движения в традиционном устройстве декодирования фильма. Блок 200 компенсации движения в традиционном устройстве декодирования фильма оснащен блоком 201 расчета вектора движения, блоком 202 формирования предсказательного сигнала, памятью 203 векторов движения и блоком 204 предсказания вектора движения.
Блок 201 расчета вектора движения формирует вектор движения прибавлением остатка предсказания вектора движения, декодированного из кодированного потока, к предсказательному вектору движения, предсказанному блоком 204 предсказания вектора движения, сохраняет этот вектор движения в памяти 203 вектора движения и выдает его в блок 202 формирования предсказательного сигнала.
Блок 202 формирования предсказательного сигнала считывает декодированный сигнал из декодированного опорного изображения в соответствии с вектором движения и выдает его в качестве сигнала предсказания блока, который должен декодироваться. Блок 204 предсказания вектора движения считывает векторы движения, которые использовались при декодировании декодированных блоков вокруг блока, который должен декодироваться, из памяти 203 векторов движения, и рассчитывает предсказательный вектор движения с использованием их в качестве опорных векторов движения.
Технология, имеющая отношение к вышеупомянутому кодированию с предсказанием вектора движения, включает в себя следующую традиционную технологию.
(a) Кодирование с предсказанием медианы (стандарт H.264 и тому подобное) [в дальнейшем указываемое ссылкой как традиционная технология a]
(b) Кодирование с предсказанием, основанное на назначении опорных векторов движения [в дальнейшем указываемое ссылкой как традиционная технология b]
Фиг.13 - схема для пояснения примера традиционной схемы кодирования с предсказанием вектора движения. В традиционной технологии a и традиционной технологии b, при кодировании вектора движения (декодирование является таким же), предсказание выполняется с использованием векторов движения кодированных блоков (кодированных векторов движения) вокруг блока, который должен кодироваться, как проиллюстрировано на Фиг.13, в качестве опорных векторов движения, и вектор движения кодируется.
Более точно, в традиционной технологии a, медиана опорных векторов движения используется в качестве предсказательного вектора движения, и кодируется ошибка (указываемая ссылкой как остаток предсказания вектора движения) между вектором движения блока, который должен кодироваться, и предсказательным вектором движения (обратитесь к непатентному документу 1).
Более того, в традиционной технологии b, устройство кодирования (кодировщик) выбирает вектор движения, который должен использоваться в предсказании, из опорных векторов движения и кодирует идентификатор опорного вектора движения, который должен использоваться в предсказании, вместе с остатком предсказания вектора движения (обратитесь к непатентному документу 2).
Более того, традиционно, в качестве технологии для предсказания самого вектора движения блока, который должен кодироваться, вместо получения остатка предсказания вектора движения и кодирования вектора движения, есть технология для предсказания вектора движения на основании сопоставления с эталоном (в дальнейшем, указываемая ссылкой как традиционная технология c). Эта традиционная технология c является способом предсказания вектора движения для выполнения компенсации движения без кодирования вектора движения на стороне кодирования (обратитесь к непатентному документу 3).
Фиг.14 - схема для пояснения традиционного предсказания вектора движения, основанного на сопоставлении с эталоном. В традиционной технологии c, и в случае предсказания вектора движения блока, который должен кодироваться, посредством использования набора (это называется эталоном) кодированных пикселей вокруг блока, который должен кодироваться, как проиллюстрировано перевернутой Г-образной областью на Фиг.14, поиск движения выполняется в предварительно определенном диапазоне поиска в опорном изображении (эта последовательность операций называется сопоставлением с эталоном). Более точно, поиск выполняется для каждого вектора движения в предварительно определенном диапазоне поиска посредством расчета степени надежности, такой как сумма абсолютных разностей (SAD), между эталоном и областью (называемой областью сопоставления), полученной смещением области в опорном изображении в таком же положении, как эталон, посредством вектора движения. Компенсация движения выполняется с использованием результирующего вектора движения. Поскольку также можно, чтобы сторона декодирования выполняла такую же последовательность операций с эталоном, который является набором декодированных пикселей, преимущество состоит в том, что компенсация движения возможна без кодирования вектора движения.
ДОКУМЕНТЫ ПРЕДШЕСТВУЮЩЕГО УРОВНЯ ТЕХНИКИ
НЕПАТЕНТНЫЕ ДОКУМЕНТЫ
е
Непатентный документ 1: Кадано, Кикучи и Сузуки, «3 переработанное издание.
Учебник по стандарту H.264/AVC», опубликованный Impress R&D, 2009 г., стр. 123-125.
ая
Непатентный документ 2: Т. Ямамото, «Новая схема для кодирования с предсказателем вектора движения», ITU-T SG16/Q6, 32 конференция VCEG, Сан-Хосе, апрель 2007 года.
Непатентный документ 3: Кобаяши, Сузуки, Боон и Хорикоши, «Сокращение объема предсказательной информации со способом предсказания движения, использующим сопоставление с эталоном», Протоколы симпозиума по кодированию киноизображений в Японии, 2005 г., стр. 17-18.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
ПРОБЛЕМЫ, КОТОРЫЕ ДОЛЖНЫ БЫТЬ РЕШЕНЫ ИЗОБРЕТЕНИЕМ
В вышеупомянутых традиционных способах a и b, когда нет опорных векторов движения, эффективных для предсказания, в прилегающих блоках, эффективность предсказания вектора движения уменьшается. К тому же, возможно, чтобы, в дополнение к окрестности блока, который должен кодироваться, опорные векторы движения большого количества блоков, включенных в более широкий диапазон, использовались в предсказании. Однако, когда это выполняется с использованием традиционных способов, эффективность предсказания и/или эффективность кодирования могут ухудшаться.
Фиг.15 - схема для пояснения проблем традиционных способов. Как проиллюстрировано на Фиг.15, когда прилегающие блоки у блока, который должен кодироваться, расположены на границе с объектом Obj, когда есть смыкание (когда соответствующие точки прилегающих блоков в опорном изображении скрываются некоторым объектом), и/или когда объект не является твердым телом, опорные векторы движения прилегающих блоков могут быть непригодными для предсказания вектора движения блока, который должен кодироваться, или сами опорные векторы движения могут быть несуществующими, так как выполняется внутрикадровое кодирование. В таком случае как в традиционном способе a, так и традиционном способе b, эффективность предсказания может ухудшаться.
В противоположность, как проиллюстрировано блоками, указанными пунктирными линиями на Фиг.15, может быть случай, в котором вектор движения блока, не включенного в возможные, более эффективен для предсказания. Для того чтобы использовать такой вектор движения в предсказании, можно легко доказать по аналогии, что вместо применения только самого прилегающего блока в качестве возможного, увеличивается количество блоков, которые должны применяться в качестве возможных. Однако в случае увеличения количества блоков, которые должны применяться в качестве возможных, при традиционном способе a, непригодный опорный вектор движения может быть включен в возможные, и есть опасность, что ухудшается эффективность предсказания. Более того, при традиционном способе b, поскольку битовая скорость передачи данных для идентификатора опорного вектора движения, который должен использоваться в предсказании, увеличивается, есть риск, что эффективность кодирования ухудшается.
С другой стороны, традиционный способ c является способом предсказания вектора движения для выполнения компенсации движения без кодирования вектора движения на стороне кодирования. Таким образом, давайте полагать, что это применяется к вышеупомянутым проблемам традиционных способов. Таким образом, давайте полагать, что предсказательный вектор движения формируется с использованием сопоставления с эталоном по традиционному способу c, остаток предсказания вектора движения получается из предсказательного вектора движения и вектора движения блока, который должен кодироваться, полученного посредством нормального поиска движения, и выполняется кодирование. В этом случае может возникать следующая проблема.
В отличие от традиционного способа a и традиционного способа b, в предсказании вектора движения в соответствии с традиционным способом c можно выполнять поиск без использования кодированных векторов движения прилегающих блоков у блока, который должен кодироваться. По этой причине, даже когда кодированные векторы движения не эффективны для предсказания, может формироваться эффективный предсказательный вектор движения. Однако, поскольку предсказательный вектор движения определяется только по эталону, вектор движения, обозначающий область, не подходящую для блока, который должен кодироваться, может применяться в качестве предсказательного вектора движения, давая в результате ухудшение эффективности предсказания.
Настоящее изобретение нацелено на решение вышеописанных проблем, и его цель состоит в том, чтобы улучшить эффективность предсказания вектора движения и улучшить эффективность кодирования фильма. Здесь, эффективность предсказания вектора движения представляет собой степень подобия между вектором движения, который должен предсказываться, и предсказанным вектором движения. Более точно, когда длина вектора разности этих двух векторов мала, эффективность предсказания предполагается высокой.
СРЕДСТВО ДЛЯ РЕШЕНИЯ ПРОБЛЕМ
Обзор настоящего изобретения заключается в следующем. Настоящее изобретение выполняет предсказание вектора движения для соответственных блоков стороны кодирования и стороны декодирования посредством следующего способа:
(1) использование большого количества (N) первичных возможных опорных векторов движения;
(2) с использованием уже декодированной информации, только когда сторона декодирования начинает декодирование блока, который должен кодироваться (декодироваться), получается оценочное значение (в дальнейшем, указываемое ссылкой как степень надежности), указывающее степень, с которой каждый первичный возможный опорный вектор движения пригоден для предсказания;
(3) первичные возможные опорные векторы движения сокращаются до меньшего количества (M) вторичных возможных опорных векторов движения, имеющих степени надежности, которые являются большими, чем предварительно определенное пороговое значение; и
(4) предсказательный вектор движения формируется с использованием нескольких вторичных возможных опорных векторов движения;
Подробно, в варианте осуществления настоящего изобретения, в качестве предварительных последовательностей операций кодирования с предсказанием вектора движения (последующей последовательности 4 операций), которые являются такими же, как в традиционном способе, выполняются следующие последовательности операций с 1 по 3:
[Последовательность 1 операций] Сначала, в качестве первичных возможных опорных векторов движения, выделяются N (N - целое число, равное или большее чем 2) векторов движения, включающих в себя по меньшей мере один из векторов движения, используемых при кодировании уже кодированных блоков, прилегающих к блоку, который должен кодироваться, и векторов движения, имеющих предварительно определенное значение;
[Последовательность 2 операций] Затем, степень надежности каждого из N первичных возможных опорных векторов движения, которая количественно представляет эффективность в предсказании вектора движения блока, который должен кодироваться, рассчитывается с использованием информации кодированного или декодированного изображения;
[Последовательность 3 операций] Первичные возможные опорные векторы движения, имеющие степени надежности, которые являются большими, чем предварительно определенное пороговое значение, из числа N первичных возможных опорных векторов движения выбираются в качестве вторичных возможных опорных векторов движения; и
[Последовательность 4 операций] Предсказательный вектор движения блока, который должен кодироваться, рассчитывается с использованием вторичных возможных векторов движения, и остаток между вектором движения, полученным посредством поиска движения блока, который должен кодироваться, и предсказательным вектором движения кодируется в качестве кодированной информации вектора движения. В качестве последовательности операций расчета предсказательного вектора движения блока, который должен кодироваться с использованием вторичных возможных опорных векторов движения, например, можно использовать традиционный способ для выбора медианы M вторичных возможных опорных векторов движения или выбора вторичного возможного опорного вектора движения, формирующего минимальный остаток предсказания, из числа M вторичных возможных опорных векторов движения, и кодирования идентификатора вектора движения вместе с остатком предсказания.
Как описано выше, в настоящем изобретении первичные возможные опорные векторы движения определяются из числа большого количества векторов движения в пределах предварительно определенного диапазона, а также векторов движения блоков, прилегающих к блоку, который должен кодироваться. Затем, степень надежности каждого из первичных возможных опорных векторов движения рассчитывается с использованием кодированной информации или декодированной информации. Первичные возможные опорные векторы движения сокращаются в соответствии со степенями надежности, и сокращенный результат используется в качестве вторичных возможных опорных векторов движения. В качестве следующих последовательностей операций, с использованием вторичных возможных опорных векторов движения в качестве входных данных, например, предсказательный вектор движения получается с использованием такого же способа, как при традиционном кодировании с предсказанием вектора движения, и кодируется остаток предсказания между предсказательным вектором движения и вектором движения.
Даже в случае декодирования с предсказанием вектора движения в соответствии с настоящим изобретением большое количество векторов движения в пределах диапазона, а также векторы движения блоков, прилегающих к блоку, который должен декодироваться, используются в качестве первичных возможных опорных векторов движения. Затем, степень надежности каждого из первичных возможных опорных векторов движения рассчитывается с использованием декодированной информации. Первичные возможные опорные векторы движения сокращаются в соответствии со степенями надежности, и сокращенный результат используется в качестве вторичных возможных опорных векторов движения. В качестве следующих последовательностей операций, с использованием вторичных возможных опорных векторов движения в качестве входных данных, предсказательный вектор движения получается с использованием такого же способа, как при традиционном декодировании с предсказанием вектора движения, и предсказательный вектор движения прибавляется к декодированному остатку предсказания для расчета вектора движения.
ПОЛЕЗНЫЕ РЕЗУЛЬТАТЫ ИЗОБРЕТЕНИЯ
В настоящем изобретении последовательности с 1 по 3 операций выполняются так, чтобы опорные векторы движения сокращались. Это сокращение также может достигаться на стороне декодирования без дополнительной информации со стороны кодирования, и вектор движения, эффективный для предсказания, включается во вторичные возможные опорные векторы движения. Таким образом, эффективность предсказания улучшается по сравнению с вышеупомянутыми традиционными способами a, b и c.
Более того, вообще, если эффективность предсказания вектора движения улучшается, энтропия остатка предсказания вектора движения уменьшается, так что битовая скорость передачи данных вектора движения становится малой. Поскольку кодированные данные фильма учитывают битовую скорость передачи данных вектора движения, эффективность кодирования фильма улучшается по сравнению со схемой, используемой в традиционном способе a, b или c.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 - структурная схема, показывающая устройство кодирования фильма согласно варианту осуществления настоящего изобретения.
Фиг.2 - структурная схема, показывающая блок компенсации движения, показанный на Фиг.1.
Фиг.3 - структурная схема, иллюстрирующая устройство декодирования фильма согласно варианту осуществления настоящего изобретения.
Фиг.4 - структурная схема, показывающая блок компенсации движения, показанный на Фиг.3.
Фиг.5 - блок-схема последовательности операций способа, показывающая последовательность операций предсказания вектора движения согласно варианту осуществления настоящего изобретения.
Фиг.6A - схема, иллюстрирующая первый пример установки первичных возможных опорных векторов движения согласно варианту осуществления настоящего изобретения.
Фиг.6B - схема, иллюстрирующая второй пример установки первичных возможных опорных векторов движения согласно варианту осуществления настоящего изобретения.
Фиг.7 - блок-схема последовательности операций способа, показывающая пример последовательности операций расчета надежности согласно варианту осуществления настоящего изобретения.
Фиг.8 - схема, показывающая способ расчета степени надежности с использованием сопоставления с эталоном согласно варианту осуществления настоящего изобретения.
Фиг.9A - блок-схема последовательности операций способа, показывающая пример последовательности операций определения опорного вектора движения согласно варианту осуществления настоящего изобретения.
Фиг.9B - блок-схема последовательности операций способа, показывающая еще один пример последовательности операций определения опорного вектора движения согласно варианту осуществления настоящего изобретения.
Фиг.10 - блок-схема последовательности операций способа, показывающая еще один другой пример последовательности операций определения опорного вектора движения согласно варианту осуществления настоящего изобретения.
Фиг.11 - структурная схема, показывающая блок компенсации движения в традиционном устройстве кодирования фильма.
Фиг.12 - структурная схема, показывающая блок компенсации движения в традиционном устройстве декодирования фильма.
Фиг.13 - схема, иллюстрирующая пример традиционной схемы кодирования с предсказанием вектора движения.
Фиг.14 - схема, иллюстрирующая предсказание вектора движения на основании традиционного сопоставления с эталоном.
Фиг.15 - схема, иллюстрирующая проблемы традиционного способа.
ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ ДЛЯ ВЫПОЛНЕНИЯ ИЗОБРЕТЕНИЯ
В дальнейшем, вариант осуществления настоящего изобретения будет подробно описан далее со ссылкой на чертежи.
Фиг.1 показывает пример конфигурации устройства кодирования фильма в соответствии с вариантом осуществления настоящего изобретения. В устройстве 1 кодирования фильма по настоящему варианту осуществления, в частности, блок 18 компенсации движения является частью, которая отлична от традиционных способов, а другие части являются такими же, как обычное устройство кодирования фильма в традиционных способах, которое используется в качестве кодировщика в стандарте H.264 и тому подобном.
Устройство 1 кодирования фильма принимает видеосигнал, который должен кодироваться, разделяет кадр принятого видеосигнала на блоки, кодирует каждый блок и выдает его кодированные данные в качестве битового потока.
Для этого кодирования блок 10 расчета остаточного сигнала предсказания получает разность между принятым видеосигналом и предсказательным сигналом, который является выходным сигналом из блока 18 компенсации движения, и выдает его в качестве остаточного сигнала предсказания. Блок 11 ортогонального преобразования выполняет ортогональное преобразование, такое как дискретное косинусное преобразование (ДКП, DCT), над остаточным сигналом предсказания и выдает коэффициент преобразования. Блок 12 квантования квантует коэффициент преобразования и выдает квантованный коэффициент преобразования. Блок 13 кодирования источника информации осуществляет энтропийное кодирование квантованного коэффициента преобразования и выдает кодированный коэффициент в качестве битового потока.
С другой стороны, квантованный коэффициент преобразования также вводится в блок 14 обращенного квантования и обращенно квантуется в нем. Блок 15 обратного ортогонального преобразования выполняет обратное ортогональное преобразование над коэффициентом преобразования, который выводится из блока 14 обращенного, квантования, и выдает декодированный остаточный сигнал предсказания. Блок 16 расчета декодированного сигнала прибавляет декодированный остаточный сигнал предсказания к предсказательному сигналу, который является выходным сигналом блока 18 компенсации движения, и вырабатывает декодированный сигнал кодированного блока, который должен кодироваться. Этот декодированный сигнал сохраняется в памяти 17 кадров, для того чтобы использоваться в качестве опорного изображения компенсации движения в блоке 18 компенсации движения.
Блок 18 компенсации движения выполняет поиск движения для видеосигнала блока, который должен кодироваться, с опорой на опорный кинокадр, хранимый в памяти 17 кадров, и выдает предсказательный сигнал блока, который должен кодироваться. Более того, блок 18 компенсации движения выполняет предсказание вектора движения с использованием кодированной информации, для того чтобы выполнять кодирование с предсказанием для вектора движения, который является результатом поиска движения, рассчитывает разность между вектором движения, который является результатом поиска движения, и предсказательным вектором движения, и выдает результат в блок 13 кодирования источника информации в качестве остатка предсказания вектора движения.
Здесь, во время предсказания вектора движения, блок 18 компенсации движения использует не только векторы движения кодированных блоков вокруг блока, который должен кодироваться. В дополнение, блок 18 компенсации движения устанавливает несколько первичных возможных опорных векторов движения и рассчитывает степени надежности первичных возможных опорных векторов движения на основании кодированной информации. Затем, блок 18 компенсации движения сокращает первичные возможные опорные векторы движения до небольшого количества вторичных возможных опорных векторов движения в соответствии со степенями надежности и рассчитывает предсказательный вектор движения с использованием вторичных возможных опорных векторов движения. Последовательность операций расчета предсказательного вектора движения с использованием вторичных возможных опорных векторов движения может выполняться с использованием такой же технологии предсказания вектора движения, как в традиционном способе.
Фиг.2 - схема, показывающая пример подробной конфигурации блока 18 компенсации движения, проиллюстрированного на Фиг.1. Как проиллюстрировано на Фиг.2, блок 18 компенсации движения оснащен блоком 181 поиска движения, памятью 182 векторов движения, блоком 183 установки первичных возможных опорных векторов движения, блоком 184 расчета степени надежности, блоком 185 определения опорного вектора движения, блоком 186 предсказания вектора движения и блоком 187 расчета остатка предсказания вектора движения.
В компенсации движения при кодировании блока, который должен кодироваться, сначала, блок 181 поиска движения выполняет поиск движения по сопоставлению блока, который должен кодироваться, принятого видеосигнала с декодированным сигналом опорного изображения, который уже был кодирован, формирует и выдает предсказательный сигнал, и выдает вектор движения, указывающий положение сопоставления. Этот вектор движения сохраняется в памяти 182 векторов движения и выдается в блок 187 расчета остатка предсказания вектора движения.
Блок 183 установки первичных возможных опорных векторов движения устанавливает векторы движения, хранимые в памяти 182 векторов движения после кодирования в прошлом, или N (N - целое число, равное или большее чем 2) векторов движения, включающих в себя векторы движения, имеющие предварительно определенное значение, в качестве первичных возможных опорных векторов движения и уведомляет блок 184 расчета степени надежности о первичных возможных опорных векторах движения.
Блок 184 расчета степени надежности рассчитывает степень надежности каждого из N первичных возможных опорных векторов движения, которая количественно представляет эффективность в предсказании вектора движения блока, который должен кодироваться, с использованием информации кодированного изображения (декодированного сигнала).
Блок 185 определения опорных векторов движения сравнивает степени надежности, рассчитанные блоком 184 расчета степени надежности, с предварительно определенным пороговым значением и выбирает первичные возможные опорные векторы движения, имеющие степени надежности, которые являются большими, чем пороговое значение, в качестве вторичных возможных опорных векторов движения.
Блок 186 предсказания вектора движения рассчитывает предсказательный вектор движения блока, который должен кодироваться, с использованием вторичных возможных опорных векторов движения, выбранных блоком 185 определения опорных векторов движения. Способ расчета предсказательного вектора движения в блоке 186 предсказания вектора движения может быть таким же, как в традиционном способе, и, например, медиана вторичных возможных опорных векторов движения применяется в качестве предсказательного вектора движения. Более того, среди вторичных возможных опорных векторов движения, вторичный возможный опорный вектор движения, имеющий значение, ближайшее к вектору движения, полученному блоком 181 поиска движения, может применяться в качестве предсказательного вектора движения, идентификатор, указывающий вектор движения, может быть включен в сюжеты, которые должны кодироваться, и сюжеты, которые должны кодироваться, могут передаваться на сторону декодирования.
Блок 187 расчета остатка предсказания вектора движения рассчитывает остаток между вектором движения, рассчитанным блоком 181 поиска движения и предсказательным вектором, рассчитанным блоком 186 предсказания вектора движения, и выдает рассчитанный остаток в качестве остатка предсказания вектора движения.
Фиг.3 схема, показывающая пример конфигурации устройства декодирования фильма в соответствии с вариантом осуществления настоящего изобретения. В устройстве 2 декодирования фильма по настоящему варианту осуществления, в частности, блок 25 компенсации движения является частью, которая отлична от традиционных способов, а другие части являются такими же, как обычное устройство декодирования фильма в традиционном способе, которое используется в качестве декодера в стандарте H.264 и тому подобном.
Устройство 2 декодирования фильма принимает и декодирует битовый поток, кодированный устройством 1 кодирования фильма, проиллюстрированным на Фиг.1, и выдает декодированный сигнал декодированного изображения.
Для этого декодирования, на основании принятого битового потока, блок 20 декодирования источника информации энтропийно декодирует квантованный коэффициент преобразования блока, который должен декодироваться, и декодирует остаток предсказания вектора движения. Блок 21 обращенного квантования принимает и обращенно квантует квантованный коэффициент преобразования и выдает декодированный коэффициент преобразования. Блок 22 обратного ортогонального преобразования выполняет обратное ортогональное преобразование над декодированным коэффициентом преобразования и выдает декодированный остаточный сигнал предсказания. Блок 23 расчета декодированного сигнала прибавляет предсказательный сигнал, сформированный блоком 25 компенсации движения, к декодированному остаточному сигналу предсказания и вырабатывает декодированный сигнал блока, который должен декодироваться. Этот декодированный сигнал выводится на внешнее устройство, такое как устройство отображения, и сохраняется в памяти 24 кадров, для того чтобы использовался в качестве опорного изображения компенсации движения в блоке 25 компенсации движения.
Блок 25 компенсации движения предсказывает вектор движения с использованием декодированной информации, хранимой в памяти 24 кадров, и прибавляет предсказательный вектор движения к остатку предсказания вектора движения, декодированному блоком 20 декодирования источника информации, чтобы рассчитать вектор движения. Затем, блок 25 компенсации движения формирует предсказательный сигнал блока, который должен декодироваться, на основании вектора движения с опорой на опорный кинокадр памяти 24 кадров.
Здесь, во время предсказания вектора движения, блок 25 компенсации движения использует не только векторы движения декодированных блоков вокруг блока, который должен декодироваться. В дополнение, блок 25 компенсации движения устанавливает предварительно определенное количество первичных возможных опорных векторов движения и рассчитывает степени надежности каждого из первичных возможных опорных векторов движения по декодированной информации. Затем, блок 25 компенсации движения сокращает первичные опорные векторы движения до небольшого количества вторичных возможных опорных векторов движения в соответствии со степенями надежности и рассчитывает предсказательный вектор движения с использованием вторичных возможных опорных векторов движения. Последовательность операций расчета предсказательного вектора движения с использованием вторичных возможных опорных векторов движения может выполняться с использованием такого же способа предсказания вектора движения, как в традиционном способе.
Фиг.4 - схема, показывающая пример подробной конфигурации блока 25 компенсации движения, проиллюстрированного на Фиг.3. Как проиллюстрировано на Фиг.4, блок 25 компенсации движения оснащен блоком 251 расчета вектора движения, блоком 252 формирования предсказательного сигнала, памятью 253 векторов движения, блоком 254 установки первичных возможных опорных векторов движения, блоком 255 расчета степени надежности, блоком 256 определения опорных векторов движения и блоком 257 предсказания вектора движения.
В компенсации движения при декодировании блок, который должен декодироваться, сначала, блок 251 расчета вектора движения прибавляет остаток предсказания вектора движения, полученный декодированием кодированного битового потока, к предсказательному вектору движения, предсказанному блоком 257 предсказания вектора движения с использованием декодированной информации, и выдает вектор движения, который должен использоваться при декодировании. Этот вектор движения сохраняется в памяти 253 векторов движения и выдается в блок 252 формирования предсказательного сигнала. Блок 252 формирования предсказательного сигнала считывает декодированный сигнал положения опорного изображения, указанного входным вектором движения, и выдает его в качестве предсказательного сигнала блока, который должен декодироваться.
Блок 254 установки первичных возможных опорных векторов движения устанавливает векторы движения, хранимые в памяти 253 векторов движения после декодирования в прошлом, или N (N - целое число, равное или большее чем 2) векторов движения, включающих в себя векторы движения, имеющие предварительно определенное значение, в качестве первичных возможных опорных векторов движения и уведомляет блок 255 расчета степени надежности о первичных возможных опорных векторах движения.
Блок 255 расчета степени надежности рассчитывает степень надежности каждого из N первичных возможных опорных векторов движения, которая количественно представляет эффективность в предсказании вектора движения блока, который должен декодироваться, с использованием информации декодированного изображения (декодированного сигнала).
Блок 256 определения опорных векторов движения сравнивает степени надежности, рассчитанные блоком 255 расчета степени надежности, с предварительно определенным пороговым значением и выбирает первичные возможные опорные векторы движения, имеющие степени надежности, которые являются большими, чем пороговое значение, в качестве вторичных возможных опорных векторов движения.
Блок 257 предсказания вектора движения рассчитывает предсказательный вектор движения блока, который должен декодироваться, с использованием вторичных возможных опорных векторов движения, выбранных блоком 256 определения опорных векторов движения. Способ расчета предсказательного вектора движения в блоке 257 предсказания вектора движения может быть таким же, как в традиционном способе, и, например, медиана вторичных возможных опорных векторов движения применяется в качестве предсказательного вектора движения. В качестве альтернативы, когда идентификатор вектора движения, который должен использоваться в предсказании, был назначен стороной кодирования, вектор движения, указанный идентификатором, применяется в качестве предсказательного вектора движения.
Затем, среди последовательностей операций, выполняемых блоком 18 компенсации движения в устройстве 1 кодирования фильма и блоком 25 компенсации движения в устройстве 2 декодирования фильма, последовательность операций предсказания вектора движения, ассоциативно связанная с настоящим изобретением, будет описана со ссылкой на с Фиг.5 по Фиг.9B. В дальнейшем, в основном, будет описана последовательность операций предсказания вектора движения стороны кодирования; однако, последовательность операций предсказания вектора движения стороны декодирования тоже является такой же.
Фиг.5 - блок-схема последовательности операций способа последовательности операций предсказания вектора движения.
[Последовательность операций этапа S1]
В начале, блок 183 (или 254) установки первичных возможных опорных векторов движения устанавливает N первичных возможных опорных векторов движения. В качестве способа установки N первичных возможных опорных векторов движения, например, можно использовать следующий способ.
[Первый пример установки первичного возможного опорного вектора движения]
Как проиллюстрировано на Фиг.6A, положение блока 31, который должен кодироваться, применяется в качестве опоры, и N предварительно определенных векторов Vi (i=1, 2, …, N) движения в предварительно определенном диапазоне от положения используются в качестве первичных возможных опорных векторов движения. Можно произвольным образом заблаговременно определять значения векторов Vi движения, из условия чтобы значения были идентичными на стороне кодирования и стороне декодирования. Значения этих векторов Vi движения могут быть заблаговременно сохранены в табличной форме.
Более того, если удовлетворено условие, что можно для стороны кодирования и стороны декодирования использовать общее значение без кодирования значений векторов Vi движения, можно использовать значения в качестве возможных. Таким образом, например, также можно последовательно рассчитывать статистические данные векторов движения предварительно определенного количества кадров, уже кодированных или декодированных в прошлом, и выбирать N первичных возможных опорных векторов движения с высокой вероятностью появления из статистических данных векторов движения.
[Второй пример установки первичного возможного опорного вектора движения]
Как проиллюстрировано на Фиг.6B, в изображении 3, которое должно кодироваться, векторы движения, используемые при кодировании множества (10 в этом примере) кодированных блоков с B1 по B10 вокруг блока 31, который должен кодироваться, устанавливаются в качестве первичных возможных опорных векторов движения. Даже в этом случае можно, чтобы сторона декодирования устанавливала такие же векторы движения, как первичные возможные опорные векторы движения, используемые на стороне кодирования, из декодированных векторов движения.
[Третий пример установки первичного возможного опорного вектора движения]
После того как N1 первичных возможных опорных векторов движения выбраны в вышеупомянутом первом примере установки и N2 первичных возможных опорных векторов движения выбраны во втором примере установки, всего установлено N (=N1+N2) первичных возможных опорных векторов движения.
[Четвертый пример установки первичного возможного опорного вектора движения]
В четвертом примере установки векторы движения кодированных блоков и векторы движения в предварительно определенном диапазоне относительно этих векторов движения устанавливаются в качестве первичных возможных опорных векторов движения. Например, когда предварительно определенный диапазон установлен в качестве диапазона ±1 в направлениях X и Y относительно вектора (10, 20) движения кодированного блока, векторы (9, 20), (11, 20), (10, 19), (10, 21), (9, 19), (9, 21), (11, 19) и (11, 21) движения применяются в качестве возможных в дополнение к вектору (10, 20) движения. То есть всего 9 первичных возможных опорных векторов движения применяются в качестве возможных по отношению к вектору движения одного кодированного блока. Если количество векторов движения кодированного блока, которые в начале применяются в качестве возможных, установлено в K и все векторы движения вокруг K векторов движения применяются в качестве возможных, используется (9×K) первичных возможных опорных векторов движения. Однако, если оно является общим со стороной декодирования, все векторы движения вокруг векторов движения кодированных блоков не применяются в качестве возможных, и часть векторов движения может применяться в качестве возможных.
В качестве эффекта вышеприведенной установки векторы движения вокруг векторов движения кодированных блоков также принимаются во внимание, давая в результате улучшение эффективности предсказания вектора движения.
[Последовательность операций этапа S2]
Блок 184 (или 255) расчета степени надежности рассчитывает степень надежности каждого из N установленных первичных возможных опорных векторов движения, установленных блоком 183 установки первичных возможных опорных векторов движения с использованием кодированной информации.
Здесь, степени надежности количественно представляют эффективность первичных возможных опорных векторов движения в предсказании вектора движения блока, который должен кодироваться (декодироваться). Степени надежности рассчитываются для N первичных возможных опорных векторов движения с использованием только информации, уже декодированной, когда сторона декодирования начинает декодирование блока, который должен кодироваться.
Фиг.7 - блок-схема последовательности операций способа, показывающая пример последовательности операций расчета степени надежности, а Фиг.8 - схема для пояснения, каким образом получать степени надежности с использованием сопоставления с эталоном.
В качестве примера получения степени надежности будет дано описание для способа, который применяет сопоставление с эталоном. Предполагается, что предсказательный вектор блока, который должен кодироваться, 31 должен получаться в изображении, которое должно кодироваться, 3, на Фиг.8. Эталон 32 является набором кодированных пикселей, прилегающих к блоку 31, который должен кодироваться (в этом примере, перевернутой Г-образной области, сконфигурированной группой левых и верхних пикселей блока 31, который должен кодироваться). Должно быть отмечено, что ширина (толщина) перевернутой Г-образной области, например, соответствует приблизительно двум пикселям; однако она может соответствовать одному пикселю или трем пикселям, либо большему количеству. Опорный кинокадр 4 является кодированным или декодированным кинокадром. Блок 41 соответствующего положения в опорном изображении 4 находится в таком же положении, как у блока, который должен кодироваться, 31 в изображении, которое должно кодироваться, 3.
В последовательности операций расчета степени надежности по Фиг.7, на этапе S21, получается область, получаемая смещением области (перевернутой Г-образной области, прилегающей к блоку 41 соответствующего положения) в опорном изображении 4 в пространственно таком же положении, как эталон 32, на первичный возможный опорный вектор Vi движения, степень надежности которого должна быть рассчитана, и это требуется в качестве области, которая должна сопоставляться, 42.
Впоследствии, на этапе S22, рассчитывается степень подобия между эталоном 32 блока, который должен кодироваться, 31 и области, которая должна сопоставляться, 42, в опорном изображении 4, и это устанавливается в качестве степени надежности первичного возможного опорного вектора Vi движения.
Примером показателя степени подобия является сумма абсолютных разностей (SAD). Чем меньше SAD, тем выше вероятность, что первичный возможный опорный вектор Vi движения близок к движению блока, который должен кодироваться, 31, и, таким образом, рассматривается в качестве опорного вектора движения с высокой степенью надежности. Показатель степени надежности, используемый в блоке 184 расчета степени надежности, может быть другим показателем, указывающим степень подобия между эталоном 32 и областью, которая должна сопоставляться 42. В дополнение к вышеупомянутой SAD, могут использоваться сумма квадратов разности (SSD), сумма преобразованных разностей (SATD) и тому подобное. Все из таковых являются мерами, указывающими, что их меньшее значение означает большую степень надежности.
Поскольку эталон 32 имеет высокую корреляцию с сигналом изображения блока, который должен кодироваться, 31, если используется степень подобия, основанная на нем, можно идентифицировать вторичный возможный опорный блок, эффективный для предсказания вектора движения.
[Последовательность операций этапа S3]
Затем, блок 185 (или 256) определения опорных векторов движения сокращает N первичных возможных опорных векторов движения до меньшего количества вторичных возможных опорных векторов движения на основании информации о степени надежности каждого первичного возможного опорного вектора движения.
Фиг.9A - блок-схема последовательности операций способа последовательности операций определения опорных векторов движения. На этапе S311, блок 185 определения опорных векторов движения сравнивает каждую из степеней надежности первичных возможных опорных векторов движения, которые были рассчитаны блоком 184 расчета степени надежности, с предварительно определенным пороговым значением, и если каждая из степеней надежности первичных возможных опорных векторов движения превышает пороговое значение, его последовательность операций переходит на этап S312. На этапе S312, первичные возможные опорные векторы движения, имеющие степени надежности, которые являются большими, чем предварительно определенное пороговое значение, устанавливаются в качестве вторичных возможных опорных векторов движения. Если степень надежности не является большей, чем предварительно определенное пороговое значение, первичный возможный опорный вектор движения, соответствующий степени надежности, удаляется из возможных.
Это дает возможность предохранять вторичные возможные опорные векторы движения от включения тех, которые непригодны для предсказания. Как результат, можно улучшать эффективность предсказания вектора движения по сравнению с традиционными способами и, таким образом, можно добиваться улучшения эффективности кодирования.
Фиг.9B - блок-схема последовательности операций способа еще одной последовательности операций определения опорных векторов движения иллюстрирует пример последовательности операций определения опорных векторов движения, когда количество первичных возможных опорных векторов движения ограничено предварительно определенным количеством M.
Сначала, на этапе S321, определяется, превышает или нет степень надежности первичного возможного опорного вектора движения, который должен обрабатываться, предварительно определенное пороговое значение. Если степень надежности первичного возможного опорного вектора движения превышает предварительно определенное пороговое значение, последовательность операций переходит на этап S322; иначе, последовательность операций переходит на этап S323. На этапе S322, первичный возможный опорный вектор движения, имеющий степень надежности, которая является большей, чем предварительно определенное пороговое значение, устанавливается в качестве высоконадежного опорного вектора движения. На этапе S323 определяется, были или нет последовательности операций завершены для всех первичных возможных опорных векторов движения. Если на этапе S323 есть необработанные первичные возможные опорные векторы движения, последовательность операций возвращается на этап S321, и последовательность операций выбора высоконадежного опорного вектора движения продолжается подобным образом.
Если последовательности операций были завершены для всех первичных возможных опорных векторов движения, последовательность операций переходит на этап S324. На этапе S324, верхние M (M - предварительно определенное целое число) высоконадежных опорных векторов движения в показателях степени надежности из числа высоконадежных опорных векторов движения устанавливаются в качестве вторичных возможных опорных векторов движения.
Посредством ограничения количества вторичных возможных опорных векторов движения предварительно определенным количеством M, можно уменьшать битовую скорость передачи данных вектора движения по сравнению со случаем, в котором вектор движения кодируется в соответствии с традиционным способом b, можно добиваться улучшения эффективности кодирования.
Фиг.10 - блок-схема последовательности операций способа у еще одной другой последовательности операций определения опорных векторов движения. Фиг.10 иллюстрирует пример последовательности операций определения опорных векторов движения, когда есть только M' первичных возможных опорных векторов движения, имеющих степени надежности, которые превышают предварительно определенное пороговое значение, M' является меньшим, чем предварительно определенное количество M.
Сначала, на этапе S331, определяется, превышает или нет степень надежности первичных возможных опорных векторов движения, которые должны обрабатываться, предварительно определенное пороговое значение. Если степень надежности первичного возможного опорного вектора движения превышает предварительно определенное пороговое значение, последовательность операций переходит на этап S332; иначе, последовательность операций переходит на этап S333. На этапе S332, первичный возможный опорный вектор движения, имеющий степень надежности, которая является большей, чем предварительно определенное пороговое значение, устанавливается в качестве высоконадежного опорного вектора движения. На этапе S333 определяется, были или нет последовательности операций завершены для всех первичных возможных опорных векторов движения. Если на этапе S333 есть необработанные первичные возможные опорные векторы движения, последовательность операций возвращается на этап S331, и последовательность операций выбора высоконадежного опорного вектора движения продолжается подобным образом.
Если последовательности операций были завершены для всех первичных возможных опорных векторов движения, последовательность операций переходит на этап S334. На этапе S334, определяется, является или нет количество M' высоконадежных опорных векторов движения большим, чем предварительно определенное количество M. Если M' является большим, чем предварительно определенное количество M, последовательность операций переходит на этап S335. На этапе S335, верхние M высоконадежных опорных векторов движения в показателях степени надежности из числа высоконадежных опорных векторов движения устанавливаются в качестве вторичных возможных опорных векторов движения.
В противоположность, если M' не является большим, чем предварительно определенное количество M, последовательность операций переходит на этап S336. На этапе S336, все M' высоконадежных опорных векторов движения устанавливаются в качестве вторичных возможных опорных векторов движения.
Поступая таким образом, поскольку можно изменять количество вторичных возможных опорных векторов движения в зависимости от состояния блоков, которые должны кодироваться, можно добиваться дополнительного улучшения эффективности предсказания вектора движения и эффективности кодирования.
[Последовательность операций этапа S4]
Блок 186 (или 257) предсказания вектора движения формирует предсказательный вектор движения блока, который должен кодироваться, с использованием вторичных возможных опорных векторов движения, выбранных блоком 185 определения опорных векторов движения. Ключевой момент настоящего варианта осуществления состоит в том, что большое количество первичных возможных опорных векторов движения сокращается в соответствии со степенями надежности, тем самым получая предсказательный вектор движения для расчета остатка предсказания вектора движения с использованием вторичных возможных опорных векторов движения с высокими степенями надежности. Таким образом, последовательность операций получения предсказательного вектора движения из вторичных возможных опорных векторов движения может быть такой же, как последовательность операций блока 103 (или 204) предсказания вектора движения традиционного способа, описанного со ссылкой на Фиг.11 или Фиг.12.
Однако последовательность операций не обязательно является такой же, как в традиционном способе, и предсказательный вектор движения может получаться с использованием другой последовательности операций, тем самым воплощая настоящее изобретение.
Описанные выше последовательности операций предсказания вектора движения и последовательность операций декодирования с предсказанием вектора движения также могут успешно выполняться компьютером и программно реализованной программой. Более того, программа может быть записана на машинно-читаемом носителе записи и может поставляться через сеть.
Несмотря на то что варианты осуществления настоящего изобретения были описаны со ссылкой на чертежи, подробные конфигурации не ограничены этими вариантами осуществления, и настоящее изобретение охватывает проектирование или тому подобное (добавление, исключение, замещение и другие модификации конфигурации) в диапазоне, не выходящем из сущности настоящего изобретения. Настоящее изобретение не должно рассматриваться в качестве являющегося ограниченным вышеизложенным описанием, а ограничивается только объемом прилагаемой формулы изобретения.
ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ
Настоящее изобретение применимо при кодировании видео, при котором кодирование с предсказанием выполняется для вектора движения, и технологии декодирования видео. Согласно настоящему изобретению можно улучшать эффективность предсказания вектора движения, давая в результате улучшение эффективности кодирования видео.
ОПИСАНИЕ НОМЕРОВ ССЫЛОК
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 блок формирования предсказательного сигнала