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

ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее изобретение относится к технологии кодирования фильма для выполнения кодирования с предсказанием вектора движения. Более конкретно, настоящее изобретение относится к способу кодирования с предсказанием вектора движения, способу декодирования с предсказанием вектора движения, устройству кодирования фильма, устройству декодирования фильма и их программам, которые улучшают эффективность предсказания вектора движения и улучшают эффективность кодирования фильма.
Испрашивается приоритет по японской заявке на патент № 2010-026129, поданной 9 февраля 2010 года, содержимое которой включено в настоящий документ посредством ссылки.
УРОВЕНЬ ТЕХНИКИ
[0002] В схеме кодирования фильма, использующей компенсацию движения, как представлено посредством стандарта H.264, кодирование с предсказанием вектора движения выполняется для того, чтобы эффективно кодировать вектор движения.
[0003] На фиг.10 проиллюстрирован пример конфигурации блока компенсации движения в традиционном устройстве кодирования фильма. Блок 100 компенсации движения в традиционном устройстве кодирования фильма снабжен блоком 101 поиска движения, памятью 102 для вектора движения, блоком 103 предсказания вектора движения и блоком 104 вычисления остатка предсказания.
[0004] Если вводится видеосигнал блока, подлежащего кодированию, блок 101 поиска движения выполняет поиск движения посредством его сличения с декодированным сигналом кодированной опорной картинки, вычисляет вектор движения и сохраняет его в памяти 102 для вектора движения. Блок 103 предсказания вектора движения считывает векторы движения, которые были использованы при кодировании кодированных блоков вокруг блока, подлежащего кодированию, из памяти 102 для вектора движения и вычисляет предсказательный вектор движения, используя их в качестве опорных векторов движения. Блок 104 вычисления остатка предсказания вычисляет остаток между вектором движения, вычисленным блоком 101 поиска движения, и предсказательным вектором движения, вычисленным блоком 103 предсказания вектора движения, и выводит остаток предсказания вектора движения. Этот остаток предсказания вектора движения кодируется и выводится в качестве кодированной информации вектора движения.
[0005] На фиг.11 проиллюстрирован пример конфигурации блока компенсации движения в традиционном устройстве декодирования фильма. Блок 200 компенсации движения в традиционном устройстве декодирования фильма снабжен блоком 201 вычисления вектора движения, блоком 202 создания предсказательного сигнала, памятью 203 для вектора движения и блоком 204 предсказания вектора движения.
[0006] Блок 201 вычисления вектора движения генерирует вектор движения посредством прибавления остатка предсказания вектора движения, декодированного из кодированного потока, к предсказательному вектору движения, предсказанному блоком 204 предсказания вектора движения, хранит этот вектор движения в памяти 203 для вектора движения и выводит его в блок 202 создания предсказательного сигнала. Блок 202 создания предсказательного сигнала считывает декодированный сигнал из декодированной опорной картинки в соответствии с вектором движения и выводит его в качестве сигнала предсказания блока, подлежащего декодированию. Блок 204 предсказания вектора движения считывает векторы движения, которые были использованы при декодировании декодированных блоков вокруг блока, подлежащего декодированию, из памяти 203 для вектора движения и вычисляет предсказательный вектор движения, используя их в качестве опорных векторов движения.
[0007] Технология, относящаяся к вышеупомянутому кодированию с предсказанием вектора движения, включает в себя следующую традиционную технологию.
(a) Кодирование с предсказанием среднего (H.264 и тому подобное) [в дальнейшем в этом документе называемое традиционной технологией a];
(b) Кодирование с предсказанием на основе назначения опорного вектора движения [в дальнейшем в этом документе называемое традиционной технологией b].
На фиг.12 показано графическое представление для разъяснения примера традиционной схемы кодирования с предсказанием вектора движения. В традиционной технологии a и традиционной технологии b, при кодировании вектора движения (декодирование является таким же), предсказание выполняется, используя векторы движения кодированных блоков (кодированных векторов движения) вокруг блока, подлежащего кодированию, как проиллюстрировано на фиг.12, в качестве опорных векторов движения, и кодируется вектор движения.
[0008] Конкретно, в традиционной технологии a средний из опорных векторов движения используется в качестве предсказательного вектора движения, и кодируется (ссылка на непатентный документ 1) ошибка (называемая как остаток предсказания вектора движения) между вектором движения блока, подлежащего кодированию, и предсказательным вектором движения.
[0009] Более того, в традиционной технологии b устройство кодирования (кодер) выбирает вектор движения, подлежащий использованию в предсказании, из опорных векторов движения и кодирует идентификатор опорного вектора движения, подлежащего использованию в предсказании, вместе с остатком предсказания вектора движения (ссылка на непатентный документ 2).
[0010] Кроме того, традиционно, в качестве технологии для предсказания самого вектора движения блока, подлежащего кодированию, вместо получения остатка предсказания вектора движения и кодирования вектора движения существует технология для предсказания вектора движения на основе сопоставления с шаблоном (в дальнейшем в этом документе называемая как традиционная технология c). Эта традиционная технология c является способом предсказания вектора движения для выполнения компенсации движения без кодирования вектора движения на кодирующей стороне (ссылка на непатентный документ 3).
[0011] На фиг.13 показано графическое представление для разъяснения традиционного предсказания вектора движения на основе сопоставления с шаблоном. В традиционной технологии c и в случае предсказания вектора движения блока, подлежащего кодированию, посредством использования набора (это названо шаблоном) кодированных пикселей вокруг блока, подлежащего кодированию, как проиллюстрировано перевернутой L-образной областью на фиг.13, поиск движения выполняется в предварительно определенном диапазоне поиска на опорной картинке (этот процесс называется сопоставлением с шаблоном). Конкретно поиск выполняется для каждого вектора движения в предварительно определенном диапазоне поиска посредством вычисления степени сходства, такой как сумма абсолютных разностей (SAD), между шаблоном и областью (называемой областью сопоставления), полученной посредством сдвига области опорной картинки в то же положение, что и шаблон посредством вектора движения. Компенсация движения выполняется, используя результирующий вектор движения. Так как также возможно для декодирующей стороны выполнять тот же процесс с шаблоном, который является набором декодированных пикселей, это выгодно в том, что компенсация движения возможна без кодирования вектора движения.
Документы предшествующего уровня техники
Непатентные документы
[0012] Непатентный документ 1: Kadono, Kikuchi и Suzuki, "3rd revised edition. H.264/AVC textbook", изданный Impress R&D, 2009, стр. 123-125.
ое
Непатентный документ 2: T. Yamamoto, "A new scheme for motion vector predictor encoding", ITU-T SG16/Q6, 32 заседание VCEG, Сан-Хосе, апрель 2007 г.
Непатентный документ 3: Kobayashi, Suzuki, Boon и Horikoshi, "Reduction of Predictive Information Amount with Motion Prediction Method Using Template Matching", Известия Симпозиума по кодированию изображений, Япония, 2005 г., стр. 17-18.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Задачи, которые решаются посредством данного изобретения
[0013] В вышеупомянутых традиционных методах a и b, когда не существует опорных векторов движения, эффективных для предсказания в смежных блоках, эффективность предсказания вектора движения снижена. Также возможно, что в дополнение к окрестности блока, подлежащего кодированию, опорные векторы движения большого числа блоков, включенных в более широкий диапазон, используются в предсказании. Однако, когда это выполняется, используя традиционные методы, эффективность предсказания и/или эффективность кодирования может быть ухудшена.
[0014] На фиг.14 показано графическое представление для разъяснения проблем традиционных методов. Как проиллюстрировано на фиг.14, когда смежные блоки блока, подлежащего кодированию, расположены на границе с объектом Obj, когда существует заграждение (когда точки соответствия смежных блоков в опорной картинке скрыты определенным объектом) и/или когда объект не является твердым телом, опорные векторы движения смежных блоков могут быть неподходящими для предсказания вектора движения блока, подлежащего кодированию, или сами опорные векторы движения могут не существовать из-за выполнения внутреннего кодирования. В таком случае как в традиционном методе a, так и в традиционном методе b эффективность предсказания может быть ухудшена.
[0015] В отличие от этого, как проиллюстрировано блоками, указанными пунктирными линиями на фиг.14, может быть случай, в котором вектор движения блока, не включенного в возможные, является более эффективным для предсказания. Для того чтобы использовать вектор движения в предсказании, возможно легко сделать выводы, что вместо использования только наиболее смежного блока в качестве возможного, число блоков, подлежащих использованию в качестве возможных, увеличивается. Однако в случае увеличения числа блоков, подлежащих использованию в качестве возможных, при традиционном методе a, не подходящий опорный вектор движения может быть включен в возможные, и существует риск, что эффективность предсказания является ухудшенной. Кроме того, при традиционном методе b, так как битовая скорость для идентификатора опорного вектора движения, подлежащего использованию в предсказании, увеличена, существует риск, что эффективность кодирования является ухудшенной.
[0016] С другой стороны, традиционный метод c является способом предсказания вектора движения для выполнения компенсации движения без кодирования вектора движения на кодирующей стороне. Таким образом, позвольте нам считать, что это применяется к вышеупомянутым проблемам традиционных методов. То есть позвольте нам считать, что предсказательный вектор движения создан, используя сопоставление с шаблоном традиционного метода c, остаток предсказания вектора движения получен из предсказательного вектора движения и вектора движения блока, подлежащего кодированию, полученного посредством обычного поиска движения, и выполняется кодирование. В этом случае может произойти следующая проблема.
[0017] В отличие от традиционного метода a и традиционного метода b, в предсказании вектора движения в соответствии с традиционны методом c возможно выполнить поиск без использования кодированных векторов движения смежных блоков блока, подлежащего кодированию. По этой причине, даже когда кодированные векторы движения являются не эффективными для предсказания, эффективный предсказательный вектор движения может быть создан. Однако, так как предсказательный вектор движения определен только из шаблона, вектор движения, назначающий область, несоответствующую блоку, подлежащему кодированию, может быть использован в качестве предсказательного вектора движения, что приводит к ухудшению эффективности предсказания.
[0018] Настоящее изобретение нацелено на решение вышеописанных проблем, и его задачей является улучшение эффективности предсказания вектора движения и улучшение эффективности кодирования фильма. Здесь эффективность предсказания вектора движения представляет степень сходства между вектором движения, который нужно предсказать, и предсказанным вектором движения. Конкретно, когда длина вектора разности этих двух векторов является короткой, предполагают, что эффективность предсказания является высокой.
Средства решения задач
[0019] Обзор настоящего изобретения выглядит следующим образом. Настоящее изобретение выполняет предсказание вектора движения для соответствующих блоков кодирующей стороны и декодирующей стороны посредством следующего способа:
(1) используют большое число из (N) первичных возможных опорных векторов движения;
(2) используют только уже декодированную информацию, когда декодирующая сторона начинает декодирование блока, подлежащего кодированию (декодированию), получено значение оценки (в дальнейшем в этом документе называемое как степень надежности), указывающее степень, для которой каждый первичный возможный опорный вектор движения является подходящим для предсказания;
(3) первичные возможные опорные векторы движения сводятся к M (<N) вторичных возможных опорных векторов движения в соответствии со степенями надежности; и
(4) предсказательный вектор движения создается, используя M вторичных возможных опорных векторов движения.
[0020] Подробно, в варианте осуществления настоящего изобретения в качестве предварительных процессов кодирования предсказания вектора движения (следующий процесс 4), которые являются такими же, как в традиционном методе, выполняются следующие процессы 1-3:
[0021] [Процесс 1] Сначала, в качестве первичных возможных опорных векторов движения, извлекаются N (N является целым числом, равным или большим чем 2) векторов движения, включающих в себя по меньшей мере один из векторов движения, используемых в кодировании уже кодированных блоков, смежных с блоком, подлежащим кодированию, и векторов движения, имеющих предварительно определенное значение;
[0022] [Процесс 2] Далее, степень надежности каждого из N первичных возможных опорных векторов движения, которая количественно представляет эффективность предсказания вектора движения блока, подлежащего кодированию, вычисляется, используя информацию о кодированной или декодированной картинке;
[0023] [Процесс 3] Верхние M (M является целым числом, равным или большим чем 1 и меньшим чем N) первичных возможных опорных векторов движения с более высокими степенями надежности выбраны из N первичных возможных опорных векторов движения в качестве вторичных возможных опорных векторов движения; и
[0024] [Процесс 4] Предсказательный вектор движения блока, подлежащего кодированию, вычисляется, используя вторичные возможные опорные векторы движения, и остаток между вектором движения, полученного посредством поиска движения блока, подлежащего кодированию, и предсказательным вектором движения кодируется как кодированная информация вектора движения. В качестве процесса вычисления предсказательного вектора движения блока, подлежащего кодированию, используя вторичные возможные опорные векторы движения, например, возможно использовать традиционный способ выбора среднего из M вторичных возможных опорных векторов движения или выбора вторичного возможного опорного вектора движения, производящего минимальный остаток предсказания среди вторичных возможных опорных векторов движения, и кодирования идентификатора вектора движения вместе с остатком предсказания.
[0025] Как описано выше, в настоящем изобретении первичные возможные опорные векторы движения определены из большого числа векторов движения внутри предварительно определенного диапазона, равно как и векторы движения блоков, смежных с блоком, подлежащим кодированию. Затем степень надежности каждого из первичных возможных опорных векторов движения вычисляется, используя кодированную информацию или декодированную информацию. Первичные возможные опорные векторы движения сводятся в соответствии со степенями надежности, и сведенный результат используется в качестве вторичных возможных опорных векторов движения. В качестве последующих процессов, используя вторичные возможные опорные векторы движения в качестве входных данных, например, предсказательный вектор движения получается, используя тот же способ, как и в традиционном кодировании предсказания вектора движения, и остаток предсказания между предсказательным вектором движения и вектором движения кодируется.
[0026] Даже в случае декодирования предсказания вектора движения в соответствии с настоящим изобретением, большое число векторов движения внутри диапазона, равно как и векторы движения блоков, смежных с блоком, подлежащим декодированию, используются в качестве первичных возможных опорных векторов движения. Затем степень надежности каждого из первичных возможных опорных векторов движения вычисляется, используя декодированную информацию. Первичные возможные опорные векторы движения сводятся в соответствии со степенями надежности, и сведенный результат используется в качестве вторичных возможных опорных векторов движения. В качестве последующих процессов, используя вторичные возможные опорные векторы движения в качестве входных данных, предсказательный вектор движения получают, используя тот же способ, как и в традиционном декодировании предсказания вектора движения, и предсказательный вектор движения прибавляется к декодированному остатку предсказания для вычисления вектора движения.
Положительные эффекты данного изобретения
[0027] В настоящем изобретении процессы 1-3 выполняются так, что опорные векторы движения являются сведенными. Это сведение может быть также достигнуто на декодирующей стороне без дополнительной информации от кодирующей стороны, и вектор движения, эффективный для предсказания, включен во вторичные возможные опорные векторы движения. Таким образом, эффективность предсказания улучшена по сравнению с вышеупомянутыми традиционными методами a, b и c.
[0028] К тому же, в общем, если эффективность предсказания вектора движения улучшена, энтропия остатка предсказания вектора движения является сниженной, так что битовая скорость вектора движения становится небольшой. Так как кодированные данные фильма включают в себя битовую скорость вектора движения, эффективность кодирования фильма улучшена по сравнению со схемой, использующей традиционные методы a, b и c.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0029] На фиг.1 показана блок-схема, показывающая устройство кодирования фильма согласно варианту осуществления настоящего изобретения.
На фиг.2 показана блок-схема, показывающая блок компенсации движения, показанный на фиг.1.
На фиг.3 показана блок-схема, показывающая устройство декодирования фильма согласно варианту осуществления настоящего изобретения.
На фиг.4 показана блок-схема, показывающая блок компенсации движения, показанный на фиг.3.
На фиг.5 показана функциональная схема, показывающая процесс предсказания вектора движения согласно варианту осуществления настоящего изобретения.
На фиг.6A показано графическое представление, иллюстрирующее первый пример задания первичных возможных опорных векторов движения согласно варианту осуществления настоящего изобретения.
На фиг.6B показано графическое представление, иллюстрирующее второй пример задания первичных возможных опорных векторов движения согласно варианту осуществления настоящего изобретения.
На фиг.7 показана функциональная схема, показывающая пример процесса вычисления надежности согласно варианту осуществления настоящего изобретения.
На фиг.8 показано графическое представление способа вычисления степени надежности, используя сопоставление с шаблоном согласно варианту осуществления настоящего изобретения.
На фиг.9A показана функциональная схема, показывающая пример процесса определения опорного вектора движения согласно варианту осуществления настоящего изобретения.
На фиг.9B показана функциональная схема, показывающая еще один пример процесса определения опорного вектора движения согласно варианту осуществления настоящего изобретения.
На фиг.10 показана блок-схема, показывающая блок компенсации движения в традиционном устройстве кодирования фильма.
На фиг.11 показана блок-схема, показывающая блок компенсации движения в традиционном устройстве декодирования фильма.
На фиг.12 показано графическое представление, иллюстрирующее пример традиционной схемы кодирования предсказания вектора движения.
На фиг.13 показано графическое представление, иллюстрирующее предсказания вектора движения на основе традиционного сопоставления с шаблоном.
На фиг.14 показано графическое представление, иллюстрирующее проблемы традиционных методов.
ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ ДЛЯ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
[0030] В дальнейшем в этом документе вариант осуществления настоящего изобретения будет описан подробно со ссылкой на чертежи.
[0031] На фиг.1 показан пример конфигурации устройства кодирования фильма в соответствии с вариантом осуществления настоящего изобретения. В устройстве 1 кодирования фильма настоящего варианта осуществления, в частности, блок 18 компенсации движения является частью, которая отличается от стандартных методов, и другие части являются такими же, как общее устройство кодирования фильма в традиционном методе, который используется в качестве кодера в H.264 и тому подобном.
[0032] Устройство 1 кодирования фильма принимает видеосигнал, подлежащий кодированию, разделяет кадр принятого видеосигнала на блоки, кодирует каждый блок и выводит их кодированные данные как поток битов.
[0033] Для этого кодирования блок 10 вычисления остаточного сигнала предсказания получает разницу между принятым видеосигналом и предсказательным сигналом, который является выходом блока 18 компенсации движения, и выводит ее как остаточный сигнал предсказания. Блок 11 ортогонального преобразования выполняет ортогональное преобразование, такое как дискретное косинусное преобразование (DCT) остаточного сигнала предсказания, и выводит коэффициент преобразования. Блок 12 квантования осуществляет квантование коэффициента преобразования и выводит квантованный коэффициент преобразования. Блок 13 кодирования информационного источника осуществляет энтропийное кодирование квантованного коэффициента преобразования и выводит кодированный коэффициент как поток битов.
[0034] С другой стороны, квантованный коэффициент преобразования также вводится в блок 14 обратного квантования и обратно квантуется в нем. Блок 15 обратного ортогонального преобразования выполняет обратное ортогональное преобразование коэффициента преобразования, который выводится из блока 14 обратного квантования, и выводит декодированный остаточный сигнал предсказания. Блок 16 вычисления декодированного сигнала прибавляет декодированный остаточный сигнал предсказания, который является выходом блока 18 компенсации движения, и генерирует декодированный сигнал кодированного блока, подлежащего кодированию. Этот декодированный сигнал хранится в памяти кадров для того, чтобы быть использованным в качестве опорной картинки компенсации движения в блоке 18 компенсации движения.
[0035] Блок 18 компенсации движения выполняет поиск движения для видеосигнала блока, подлежащего кодированию, со ссылкой на опорную картинку, хранящуюся в памяти 17 кадров, и выводит предсказательный сигнал блока, подлежащего кодированию. К тому же, блок 18 компенсации движения выполняет предсказание вектора движения, используя кодированную информацию для того, чтобы выполнить кодирование с предсказанием для вектора движения, который является результатом поиска движения, вычисляет разницу между вектором движения, который является результатом поиска движения, и предсказательным вектором движения и выводит результат в блок 13 кодирования информационного источника как остаток предсказания вектора движения.
[0036] Здесь во время предсказания вектора движения блок 18 компенсации движения использует не только векторы движения кодированных блоков вокруг блока, подлежащего кодированию. К тому же, блок 18 компенсации движения задает некоторые первичные возможные опорные векторы движения и вычисляет степени надежности первичных возможных опорных векторов движения на основе кодированной информации. Далее, блок 18 компенсации движения сводит первичные возможные опорные векторы движения к небольшому числу вторичных возможных опорных векторов движения в соответствии со степенями надежности и вычисляет предсказательный вектор движения, используя вторичные возможные опорные векторы движения. Процесс вычисления предсказательного вектора движения, используя вторичные возможные опорные векторы движения, может быть выполнен, используя тот же способ предсказания вектора движения, как и в традиционном методе.
[0037] На фиг.2 показана блок-схема, показывающая подробную конфигурацию примера блока 18 компенсации движения, проиллюстрированного на фиг.1. Как проиллюстрировано на фиг.2, блок 18 компенсации движения снабжен блоком 181 поиска движения, памятью 182 для вектора движения, блоком 183 задания первичного возможного опорного вектора движения, блоком 184 вычисления степени надежности, блоком 185 определения опорного вектора движения, блоком 186 предсказания вектора движения и блоком 187 вычисления остатка предсказания вектора движения.
[0038] При компенсации движения при кодировании блока, подлежащего кодированию, сначала блок 181 поиска движения выполняет поиск движения сличения блока, подлежащего кодированию, принятого видеосигнала с декодированным сигналом опорной картинки, которая уже была закодирована, генерирует и выводит предсказательный сигнал, и выводит вектор движения, указывающий совпадающее положение. Этот вектор движения хранится в памяти 182 для вектора движения и выводится в блок 187 вычисления остатка предсказания вектора движения.
[0039] Блок 183 задания первичного возможного опорного вектора движения задает векторы движения, хранящиеся в памяти 182 для вектора движения, после кодирования в прошлом или N (N является целым числом, равным или большим чем 2) векторов движения, включающих в себя векторы движения, имеющие предварительно определенное значение как первичные возможные опорные векторы движения, и уведомляет блок 184 вычисления степени надежности о первичных возможных опорных векторах движения.
[0040] Блок 184 вычисления степени надежности вычисляет степень надежности каждого из N первичных возможных опорных векторов движения, которая количественно представляет эффективность предсказания вектора движения блока, подлежащего кодированию, используя информацию о кодированной картинке (декодированном сигнале).
[0041] Блок 185 определения опорного вектора движения выбирает верхние M (M является целым числом, равным или большим чем 1 и меньшим чем N) первичных возможных опорных векторов движения, имеющих более высокие степени надежности, вычисленные блоком 184 вычисления степени надежности, в качестве вторичных возможных опорных векторов движения.
[0042] Блок 186 предсказания вектора движения вычисляет предсказательный вектор движения блока, подлежащего кодированию, используя вторичные возможные опорные векторы движения, выбранные блоком 185 определения опорного вектора движения. Способ вычисления предсказательного вектора движения в блоке 186 предсказания вектора движения может быть таким же, как в традиционном методе, и, например, средний из вторичных возможных опорных векторов движения используется в качестве предсказательного вектора движения. К тому же, среди вторичных возможных опорных векторов движения вторичный возможный опорный вектор движения, имеющий значение, ближайшее к вектору движения, полученному блоком 181 поиска движения, может быть использован в качестве предсказательного вектора движения, идентификатор, указывающий вектор движения, может быть включен в субъекты, подлежащие кодированию, и субъекты, подлежащие кодированию, могут осуществлять связь с декодирующей стороной.
Блок 187 вычисления остатка предсказания вектора движения вычисляет остаток между вектором движения, вычисленным блоком 181 поиска движения, и предсказательным вектором движения, вычисленным блоком 186 предсказания вектора движения, и выводит вычисленный остаток как остаток предсказания вектора движения.
[0043] На фиг.3 показано графическое представление, показывающее пример конфигурации устройства декодирования фильма в соответствии с вариантом осуществления настоящего изобретения. В устройстве 2 декодирования фильма настоящего варианта осуществления, в частности, блок 25 компенсации движения является частью, которая отличается от стандартного метода, и другие части являются такими же, как общее устройство декодирования фильма в традиционном методе, который используется в качестве декодера в H.264 и тому подобном.
[0044] Устройство 2 декодирования фильма принимает и декодирует поток битов, кодированный устройством 1 кодирования фильма, проиллюстрированным на фиг.1, и выводит декодированный сигнал декодированной картинки.
[0045] Для этого декодирования, основанного на принятом потоке битов, блок 20 декодирования информационного источника осуществляет энтропийное декодирование квантованного коэффициента преобразования блока, подлежащего декодированию, и декодирует остаток предсказания вектора движения. Блок 21 обратного квантования принимает и осуществляет обратное квантование квантованного коэффициента преобразования, и выводит декодированный коэффициент преобразования. Блок 22 обратного ортогонального преобразования выполняет обратное ортогональное преобразование декодированного коэффициента преобразования и выводит декодированный остаточный сигнал предсказания. Блок 23 вычисления декодированного сигнала прибавляет предсказательный сигнал, декодированный блоком 25 компенсации движения, к декодированному остаточному сигналу предсказания и генерирует декодированный сигнал блока, подлежащего кодированию. Этот декодированный сигнал выводится на внешнее устройство, такое как устройство отображения, и хранится в памяти 24 кадров для того, чтобы быть использованным в качестве опорной картинки компенсации движения в блоке 25 компенсации движения.
[0046] Блок 25 компенсации движения предсказывает вектор движения, используя декодированную информацию, хранящуюся в памяти 24 кадров, и прибавляет предсказательный вектор движения к остатку предсказания вектора движения, декодированному блоком 20 декодирования информационного источника, для вычисления вектора движения. Далее, блок 25 компенсации движения генерирует предсказательный сигнал блока, подлежащего декодированию, на основе вектора движения со ссылкой на опорную картинку памяти 24 кадров.
[0047] Здесь во время предсказания вектора движения блок 25 компенсации движения использует не только векторы движения декодированных блоков вокруг блока, подлежащего декодированию. К тому же, блок 25 компенсации движения задает предварительно определенное число первичных возможных опорных векторов движения и вычисляет степени надежности каждого из первичных возможных опорных векторов движения исходя из декодированной информации. Затем блок 25 компенсации движения сводит первичные опорные векторы движения к небольшому числу вторичных возможных опорных векторов движения в соответствии со степенями надежности и вычисляет предсказательный вектор движения, используя вторичные возможные опорные векторы движения. Процесс вычисления предсказательного вектора движения, используя вторичные возможные опорные векторы движения, может быть выполнен, используя тот же способ предсказания вектора движения, как и в традиционном методе.
[0048] На фиг.4 показана блок-схема, показывающая подробную конфигурацию примера блока 25 компенсации движения, проиллюстрированного на фиг.3. Как проиллюстрировано на фиг.4, блок 25 компенсации движения снабжен блоком 251 вычисления вектора движения, блоком 252 создания предсказательного сигнала, памятью 253 для вектора движения, блоком 254 задания первичного возможного опорного вектора движения, блоком 255 вычисления степени надежности, блоком 256 определения опорного вектора движения и блоком 257 предсказания вектора движения.
[0049] При компенсации движения при декодировании блока, подлежащего декодированию, сначала блок 251 вычисления вектора движения прибавляет остаток предсказания вектора движения, полученный посредством декодирования кодированного потока битов, к предсказательному вектору движения, предсказанному блоком 257 предсказания вектора движения, используя декодированную информацию, и выводит вектор движения, подлежащий использованию при декодировании. Это вектор движения хранится в памяти 253 для вектора движения и выводится в блок 252 создания предсказательного сигнала. Блок 252 создания предсказательного сигнала считывает декодированный сигнал положения опорной картинки, указанный входным вектором движения, и выводит его в качестве предсказательного сигнала блока, подлежащего декодированию.
[0050] Блок 254 задания первичного возможного опорного вектора движения задает векторы движения, хранящиеся в памяти 253 для вектора движения, после декодирования в прошлом или N (N является целым числом, равным или большим чем 2) векторов движения, включающих в себя векторы движения, имеющие предварительно определенное значение как первичные возможные опорные векторы движения, и уведомляет блок 255 вычисления степени надежности о первичных возможных опорных векторах движения.
[0051] Блок 255 вычисления степени надежности вычисляет степень надежности каждого из N первичных возможных опорных векторов движения, которая количественно представляет эффективность предсказания вектора движения блока, подлежащего декодированию, используя информацию о декодированной картинке (декодированном сигнале).
[0052] Блок 256 определения опорного вектора движения выбирает верхние M (M является целым числом, равным или большим чем 1 и меньшим чем N) первичных возможных опорных векторов движения, имеющих более высокие степени надежности, вычисленные блоком 255 вычисления степени надежности, в качестве вторичных возможных опорных векторов движения.
[0053] Блок 257 предсказания вектора движения вычисляет предсказательный вектор движения блока, подлежащего декодированию, используя вторичные возможные опорные векторы движения, выбранные блоком 256 определения опорного вектора движения. Способ вычисления предсказательного вектора движения в блоке 257 предсказания вектора движения может быть таким же, как в традиционном методе, и, например, средний из вторичных возможных опорных векторов движения используется в качестве предсказательного вектора движения. В качестве альтернативы, когда идентификатор вектора движения, подлежащего использованию в предсказании, был назначен кодирующей стороной, вектор движения, указанный идентификатором, используется в качестве предсказательного вектора движения.
[0054] Далее, среди процессов, выполненных блоком 18 компенсации движения в устройстве 1 кодирования фильма и блоком 25 компенсации движения в устройстве 2 декодирования фильма, процесс предсказания вектора движения, ассоциированный с настоящим изобретением, будет описан со ссылкой на фиг.5-9B. В дальнейшем в этом документе главным образом будет описан процесс предсказания вектора движения кодирующей стороны; однако процесс предсказания вектора движения декодирующей стороны также является таким же.
[0055] На фиг.5 показана функциональная схема процесса предсказания вектора движения.
[0056] [Процесс этапа S1]
Первоначально, блок 183 (или 254) задания первичного возможного опорного вектора движения задает N первичных возможных опорных векторов движения. В качестве способа задания N первичных возможных опорных векторов движения, например, возможно использовать следующий способ.
[0057] [Первый пример задания первичного возможного опорного вектора движения]
Как проиллюстрировано на фиг.6A, положение блока 31, подлежащего кодированию, используется в качестве опорного, и N предварительно определенных векторов Vi движения (i=1, 2,..., N) в предварительно определенном диапазоне из данного положения используются в качестве первичных возможных опорных векторов движения. Возможно произвольно определять значения векторов Vi движения заранее так, чтобы значения были одинаковыми на кодирующей стороне и декодирующей стороне. Значения этих векторов Vi движения могут быть заранее сохранены в виде таблицы.
[0058] Кроме того, если удовлетворяется условие, что возможно для кодирующей стороны и декодирующей стороны использовать общее значение без кодирования значений векторов Vi движения, то возможно использовать значения в качестве возможных. Таким образом, например, также возможно последовательно вычислить статистические показатели векторов движения предварительно определенного числа кадров, уже кодированных или декодированных в прошлом, и выбрать N первичных возможных опорных векторов движения с высокой вероятностью появления из статистических показателей векторов движения.
[0059] [Второй пример задания первичного возможного опорного вектора движения]
Как проиллюстрировано на фиг.6B, в картинке 3, подлежащей кодированию, векторы движения, использованные в кодировании множества (10 в этом примере) кодированных блоков B1-B10 вокруг блока 31, подлежащего кодированию, заданы в качестве первичных возможных опорных векторов движения. Даже в этом случае возможно для декодирующей стороны задавать те же векторы движения в качестве первичных возможных опорных векторов движения, использованных на кодирующей стороне, из декодированных векторов движения.
[0060] [Третий пример задания первичного возможного опорного вектора движения]
После того как N1 первичных возможных опорных векторов движения выбраны в вышеупомянутом первом примере задания и N2 первичных возможных опорных векторов движения выбраны во втором примере задания, задается общее количество N (=N1+N2) первичных возможных опорных векторов движения.
[0061] [Четвертый пример задания первичного возможного опорного вектора движения]
В четвертом примере задания векторы движения кодированных блоков и векторы движения в предварительно определенном диапазоне по отношению к этим векторам движения заданы в качестве первичных возможных опорных векторов движения. Например, когда предварительно определенный диапазон задан как диапазон ±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) первичных возможных опорных векторов движения. Однако если это является общим с декодирующей стороной, все векторы движения вокруг векторов движения кодированных блоков не используются в качестве возможных и часть векторов движения может быть использована в качестве возможных.
[0062] Как эффект вышеуказанного задания, векторы движения вокруг векторов движения кодированных блоков также учитываются, приводя к улучшению эффективности предсказания вектора движения.
[0063] [Процесс этапа S2]
Блок 184 (или 255) вычисления степени надежности вычисляет степень надежности каждого из N заданных первичных возможных опорных векторов движения, заданных блоком 183 задания первичного возможного опорного вектора движения, используя кодированную информацию. Здесь степени надежности количественно представляют эффективность первичных возможных опорных векторов движения в предсказании вектора движения блока, подлежащего кодированию (декодированию). Степени надежности вычисляются для N первичных возможных опорных векторов движения, используя только уже декодированную информацию, когда декодирующая сторона начинает декодирование блока, подлежащего кодированию.
[0064] На фиг.7 показана функциональная схема, показывающая пример процесса вычисления степени надежности, и на фиг.8 показано графическое представление для разъяснения того, как получить степень надежности, используя сопоставление с шаблоном.
[0065] В качестве примера получения степени надежности будет предоставлено описание способа, который применяет сопоставление с шаблоном. Предполагается, что предсказательный вектор движения блока, подлежащего кодированию 31, необходимо получить в картинке, подлежащей кодированию 3 на фиг.8. Шаблон 32 является набором кодированных пикселей, смежных с блоком 31, подлежащим кодированию (в этом примере, перевернутая L-образная область, выполненная посредством группы левых и правых пикселей блока 31, подлежащего кодированию). Следует обратить внимание, что ширина (толщина) перевернутой L-образной области соответствует, например, приблизительно двум пикселям; однако она может соответствовать одному пикселю или трем пикселям, или больше. Опорная картинка 4 является кодированной или декодированной картинкой. Блок 41 соответствующего положения в опорной картинке 4 находится в том же положении, что и положение блока, подлежащего кодированию 31, в картинке, подлежащей кодированию 3.
[0066] В процессе вычисления степени надежности с фиг.7 на этапе S21 получена область, полученная посредством сдвига области (перевернутой L-образной области, смежной с блоком 41 соответствующего положения) на опорной картинке 4 в пространственно то же положение в качестве шаблона 32 посредством первичного возможного опорного вектора Vi движения, степень надежности которого необходимо вычислить, и она приобретена в качестве области для сопоставления.
[0067] Впоследствии, на этапе S22 вычисляется степень сходства между шаблоном 32 блока, подлежащего кодированию 31, и областью для сопоставления 42 в опорной картинке 4, и она задается в качестве степени надежности первичного возможного опорного вектора Vi движения.
[0068] Примером индекса степени сходства является сумма абсолютных разностей (SAD). Чем меньше SAD, тем выше вероятность, что первичный возможный опорный вектор Vi движения находится близко к вектору движения блока, подлежащего кодированию 31, и, таким образом, он рассматривается в качестве опорного вектора движения с высокой степенью надежности. Индекс степени надежности, использованный в блоке 184 вычисления степени надежности, может быть еще одним индексом, указывающим степень сходства между шаблоном 32 и областью для сопоставления 42. В дополнение к вышеупомянутой SAD могут быть использованы сумма квадратов разностей (SSD), сумма абсолютных преобразованных разностей (SATD) и тому подобные. Все они являются мерами, указывающими, что меньшее их значение означает большую степень надежности.
[0069] Так как шаблон 32 имеет высокую корреляцию с сигналом картинки блока, подлежащего кодированию 31, если используется степень сходства, основанная на нем, возможно идентифицировать вторичный возможный опорный блок, эффективный для предсказания вектора движения.
[0070] [Процесс этапа S3]
Далее, блок 185 (или 256) определения опорного вектора движения сводит N первичных возможных опорных векторов движения к небольшому числу вторичных возможных опорных векторов движения на основе информации о степени надежности каждого первичного возможного опорного вектора движения.
[0071] На фиг.9A показана функциональная схема процесса определения опорного вектора движения. На этапе S31 блок 185 определения опорного вектора движения упорядочивает степени надежности первичных возможных опорных векторов движения, которые были вычислены блоком 184 вычисления степени надежности, в порядке убывания и задает верхние M первичных возможных опорных векторов движения с более высокими степенями надежности в качестве вторичных возможных опорных векторов движения.
[0072] На фиг.9B показана функциональная схема еще одного процесса определения опорного вектора движения и проиллюстрирован пример процесса определения опорного вектора движения, когда рассматривают случай, в котором число первичных возможных опорных векторов движения не достигает M.
[0073] Например, может быть случай, в котором число первичных возможных опорных векторов движения не достигает предварительно определенного числа М, как, например, когда большое число внутренних блоков включено в первичные возможные опорные векторы движения. В этом случае вторичные возможные опорные векторы движения определяются как опорные векторы движения как следует.
[0074] Сначала, на этапе S32 определяют, является или нет число N первичных возможных опорных векторов движения больше M. Если N больше чем M, процесс переходит на этап S33 и верхние M первичные возможные опорные векторы движения с бόльшими степенями надежности задаются в качестве вторичных возможных опорных векторов движения для вышеописанного этапа S31. Если число N первичных возможных опорных векторов движения, в действительности доступных, не больше чем M, процесс переходит на этап S34 и N первичных возможных опорных векторов движения задаются в качестве вторичных возможных опорных векторов движения.
[0075] [Процесс этапа S4]
Блок 186 (или 257) предсказания вектора движения создает предсказательный вектор движения блока, подлежащего кодированию, используя вторичные возможные опорные векторы движения, выбранные блоком 185 определения опорного вектора движения. Ключевым пунктом настоящего варианта осуществления является то, что большое число первичных возможных опорных векторов движения сводится в соответствии со степенями надежности, тем самым получая предсказательный вектор движения для вычисления остатка предсказания вектора движения, используя вторичные возможные опорные векторы движения с высокими степенями надежности. Таким образом, процесс получения предсказательного вектора движения из вторичных возможных опорных векторов движения может быть таким же, как и процесс блока 103 (или 204) предсказания вектора движения традиционного метода, описанного со ссылкой на фиг.10 или фиг.11. Однако процесс является не обязательно таким же, как в традиционном методе, и предсказательный вектор движения может быть получен, используя еще один процесс, тем самым осуществляя настоящее изобретение.
[0076] Вышеописанные процесс кодирования предсказания вектора движения и процесс декодирования предсказания вектора движения могут быть также достигнуты посредством компьютера и реализованной программными средствами программы. К тому же, программа может быть записана на считываемый компьютером записывающий носитель, и она может быть предоставлена через сеть.
[0077] Тогда как варианты осуществления настоящего изобретения были описаны со ссылкой на чертежи, подробные конфигурации не ограничены этими вариантами осуществления, и настоящее изобретение включает в себя исполнение или тому подобное (добавление, исключение и замена, и другие модификации конфигурации) в диапазоне, не отступая от сущности настоящего изобретения. Настоящее изобретение не следует рассматривать как ограниченное упомянутым выше описанием, и оно является ограниченным только объемом прилагающихся пунктов формулы изобретения.
ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ
[0078] Настоящее изобретение применимо при кодировании видео, в котором кодирование с предсказанием выполняется для вектора движения, и в технологии декодирования видео. Согласно настоящему изобретению возможно улучшить эффективность предсказания вектора движения, приводя к улучшению эффективности кодирования видео.
Описание ссылочных номеров
[0079] 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 блок создания предсказательного сигнала