Способ кодирования видео, устройство кодирования видео, способ декодирования видео, устройство декодирования видео и устройство кодирования/декодирования видео

Иллюстрации

Показать все

Изобретение относится к вычислительной технике. Технический результат заключается в повышении устойчивости к ошибкам. Способ кодирования движущихся картинок для вычисления предиктора вектора движения, включающий получение каждого из одного или более первых кандидатов предиктора вектора движения, на основании вектора движения, используемого для кодирования блока, пространственно или временно смежного с текущим блоком; получение одного или более вторых кандидатов предиктора вектора движения, причем каждый имеет заранее определенный вектор в качестве вектора движения; выбор, из числа одного или более первых кандидатов предиктора вектора движения и одного или более вторых кандидатов предиктора вектора движения, предиктора вектора движения, который должен использоваться для кодирования вектора движения текущего блока; добавление индекса для идентификации предиктора вектора движения к потоку битов; определение максимального количества кандидатов предиктора вектора движения; причем при добавлении индекса этот индекс кодируют посредством использования определенного максимального количества и закодированный индекс добавляют к потоку битов. 12 н. и 29 з.п. ф-лы, 68 ил.

Реферат

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

[0001] Настоящее изобретение относится к способу кодирования движущихся картинок и способу декодирования движущихся картинок.

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

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

[СПИСОК ЦИТАТ]

[НЕПАТЕНТНАЯ ЛИТЕРАТУРА]

[0003] [NPL 1] ITU-T Recommendation H.264, “Advanced video coding for generic audiovisual services”, March, 2010

[NPL 2] JCT-VC, “WD3: Working Draft 3 of High-Efficiency Video Coding”, JCTVC-E603, March 2011

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

[ТЕХНИЧЕСКАЯ ПРОБЛЕМА]

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

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

[РЕШЕНИЕ ПРОБЛЕМЫ]

[0006] Способ кодирования движущейся картинки согласно аспекту настоящего изобретения является способом кодирования движущейся картинки для вычисления предиктора (предсказателя) вектора движения, который должен использоваться при кодировании вектора движения текущего блока, который должен быть закодирован, и кодирования текущего блока для генерирования потока битов, причем способ включает в себя: получение каждого из одного или более первых кандидатов предиктора вектора движения на основании вектора движения, используемого для кодирования блока, пространственно или временно смежного с текущим блоком; получение одного или более вторых кандидатов предиктора вектора движения, каждый имеющий заранее определенный вектор в качестве вектора движения; выбор из числа одного или более первых кандидатов предиктора вектора движения и одного или более вторых кандидатов предиктора вектора движения предиктора вектора движения, который должен использоваться для кодирования вектора движения текущего блока; и добавление индекса для идентификации предиктора вектора движения к потоку битов.

[0007] Нужно отметить, что эти общие и конкретные аспекты могут быть реализованы посредством использования системы, способа, интегральной схемы, компьютерной программы, считываемого компьютером носителя записи, такого как память только для считывания на компакт-диске (CD-ROM), или любой комбинации систем, способов, интегральных схем, компьютерных программ или носителей записи.

[ВЫГОДНЫЕ РЕЗУЛЬТАТЫ ИЗОБРЕТЕНИЯ]

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

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

[0009] [Фиг. 1A] Фиг. 1A является диаграммой для описания примера списка опорных картинок для B-картинки.

[Фиг. 1B] Фиг. 1B показывает пример списка опорных картинок для направления 0 предсказания для B-картинки.

[Фиг. 1C] Фиг. 1C показывает пример списка опорных картинок для направления 1 предсказания для B-картинки.

[Фиг. 2] Фиг. 2 является диаграммой для описания векторов движения в режиме временного предсказания вектора движения.

[Фиг. 3] Фиг. 3 показывает примеры векторов движения смежных блоков, используемых в режиме обозначения предиктора вектора движения.

[Фиг. 4] Фиг. 4 является диаграммой для описания примера списка кандидатов предиктора вектора движения для направления 0 предсказания.

[Фиг. 5] Фиг. 5 является диаграммой для описания примера списка кандидатов предиктора вектора движения для направления 1 предсказания.

[Фиг. 6] Фиг. 6 показывает примеры назначений битовых последовательностей индексам предиктора вектора движения.

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

[Фиг. 8A] Фиг. 8A показывает пример вычисления предиктора вектора движения.

[Фиг. 8B] Фиг. 8B показывает пример вычисления предиктора вектора движения.

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

[Фиг. 10] Фиг. 10 является последовательностью операций, показывающей пример обработки декодирования, выполняемой, когда используется режим обозначения предиктора вектора движения.

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

[Фиг. 12] Фиг. 12 показывает синтаксис, используемый, когда индекс предиктора вектора движения добавляется к потоку битов.

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

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

[Фиг. 15] Фиг. 15 показывает пример списка кандидатов предиктора вектора движения для направления 0 предсказания в варианте осуществления 1.

[Фиг. 16] Фиг. 16 показывает пример списка кандидатов предиктора вектора движения для направления 1 предсказания в варианте осуществления 1.

[Фиг. 17] Фиг. 17 является последовательностью операций, показывающей обработку для вычисления кандидата предиктора вектора движения и размера списка кандидатов предиктора вектора движения в варианте осуществления 1.

[Фиг. 18] Фиг. 18 является последовательностью операций, показывающей обработку для определения, является ли кандидат доступным кандидатом предиктора в варианте осуществления 1.

[Фиг. 19] Фиг. 19 является последовательностью операций, показывающей обработку для добавления нулевого кандидата в варианте осуществления 1.

[Фиг. 20] Фиг. 20 является последовательностью операций, показывающей обработку относительно выбора кандидата предиктора вектора движения в варианте осуществления 1.

[Фиг. 21] Фиг. 21 является диаграммой для описания примера списка кандидатов предиктора вектора движения для направления 0 предсказания.

[Фиг. 22] Фиг. 22 является блок-схемой, показывающей конфигурацию устройства кодирования движущихся картинок согласно варианту осуществления 2.

[Фиг. 23] Фиг. 23 является последовательностью операций, показывающей обрабатывающую операцию устройства кодирования движущихся картинок согласно варианту осуществления 2.

[Фиг. 24] Фиг. 24 является блок-схемой, показывающей конфигурацию устройства декодирования движущихся картинок согласно варианту осуществления 3.

[Фиг. 25] Фиг. 25 является последовательностью операций, показывающей обрабатывающую операцию устройства декодирования движущихся картинок согласно варианту осуществления 3.

[Фиг. 26] Фиг. 26 является блок-схемой, показывающей конфигурацию устройства декодирования движущихся картинок согласно варианту осуществления 4.

[Фиг. 27] Фиг. 27 является последовательностью операций, показывающей обрабатывающую операцию устройства декодирования движущихся картинок согласно варианту осуществления 4.

[Фиг. 28] Фиг. 28 является блок-схемой, показывающей конфигурацию устройства кодирования движущихся картинок согласно варианту осуществления 5.

[Фиг. 29] Фиг. 29 является последовательностью операций, показывающей обрабатывающую операцию устройства кодирования движущихся картинок согласно варианту осуществления 5.

[Фиг. 30] Фиг. 30 показывает пример списка кандидатов предиктора вектора движения для направления 0 предсказания в варианте осуществления 5.

[Фиг. 31] Фиг. 31 показывает пример списка кандидатов предиктора вектора движения для направления 1 предсказания в варианте осуществления 5.

[Фиг. 32] Фиг. 32 является последовательностью операций, показывающей обработку для вычисления кандидата предиктора вектора движения и размера списка кандидатов предиктора вектора движения в варианте осуществления 5.

[Фиг. 33] Фиг. 33 является последовательностью операций, показывающей обработку для обновления количества доступных кандидатов предиктора в варианте осуществления 5.

[Фиг. 34] Фиг. 34 является последовательностью операций, показывающей обработку для добавления нового кандидата в варианте осуществления 5.

[Фиг. 35] Фиг. 35 является последовательностью операций, показывающей обработку относительно выбора кандидата предиктора вектора движения в варианте осуществления 5.

[Фиг. 36] Фиг. 36 является блок-схемой, показывающей конфигурацию устройства кодирования движущихся картинок согласно варианту осуществления 6.

[Фиг. 37] Фиг. 37 является последовательностью операций, показывающей обрабатывающую операцию устройства кодирования движущихся картинок согласно варианту осуществления 6.

[Фиг. 38] Фиг. 38 является блок-схемой, показывающей конфигурацию устройства декодирования движущихся картинок согласно варианту осуществления 7.

[Фиг. 39] Фиг. 39 является последовательностью операций, показывающей обрабатывающую операцию устройства декодирования движущихся картинок согласно варианту осуществления 7.

[Фиг. 40] Фиг. 40 является последовательностью операций, показывающей обработку для вычисления количества доступных кандидатов предиктора в варианте осуществления 7.

[Фиг. 41] Фиг. 41 является последовательностью операций, показывающей обработку для вычисления кандидата предиктора вектора движения в варианте осуществления 7.

[Фиг. 42] Фиг. 42 показывает пример синтаксиса, используемого, когда индекс предиктора вектора движения добавляется к потоку битов.

[Фиг. 43] Фиг. 43 показывает пример синтаксиса, используемого, когда размер списка кандидатов предиктора вектора движения установлен равным максимальному значению количества кандидатов предиктора вектора движения.

[Фиг. 44] Фиг. 44 является блок-схемой, показывающей конфигурацию устройства декодирования движущихся картинок согласно варианту осуществления 8.

[Фиг. 45] Фиг. 45 является последовательностью операций, показывающей обрабатывающую операцию устройства декодирования движущихся картинок согласно варианту осуществления 8.

[Фиг. 46] Фиг. 46 показывает общую конфигурацию системы обеспечения контента для реализации услуг распределения контента.

[Фиг. 47] Фиг. 47 показывает общую конфигурацию цифровой радиовещательной системы.

[Фиг. 48] Фиг. 48 показывает блок-схему, иллюстрирующую пример конфигурации телевизора.

[Фиг. 49] Фиг. 49 показывает блок-схему, иллюстрирующую пример конфигурации блока воспроизведения/записи информации, который считывает и записывает информацию с и на носитель записи, который является оптическим диском.

[Фиг. 50] Фиг. 50 показывает пример конфигурации носителя записи, который является оптическим диском.

[Фиг. 51A] Фиг. 51A показывает пример сотового телефона.

[Фиг. 51B] Фиг. 51B является блок-схемой, показывающей пример конфигурации сотового телефона.

[Фиг. 52] Фиг. 52 иллюстрирует структуру мультиплексированных данных.

[Фиг. 53] Фиг. 53 схематично показывает, как каждый поток мультиплексирован в мультиплексированных данных.

[Фиг. 54] Фиг. 54 показывает, как видео поток сохранен в потоке PES-пакетов более подробно.

[Фиг. 55] Фиг. 55 показывает структуру TS-пакетов и исходных пакетов в мультиплексированных данных.

[Фиг. 56] Фиг. 56 показывает структуру данных PMT.

[Фиг. 57] Фиг. 57 показывает внутреннюю структуру информации мультиплексированных данных.

[Фиг. 58] Фиг. 58 показывает внутреннюю структуру информации атрибутов потока.

[Фиг. 59] Фиг. 59 показывает этапы для идентификации данных видео.

[Фиг. 60] Фиг. 60 показывает пример конфигурации интегральной схемы для реализации способа кодирования движущейся картинки и способа декодирования движущихся картинок согласно каждому из вариантов осуществления.

[Фиг. 61] Фиг. 61 показывает конфигурацию для переключения между частотами возбуждения.

[Фиг. 62] Фиг. 62 показывает этапы для идентификации данных видео и переключения между частотами возбуждения.

[Фиг. 63] Фиг. 63 показывает пример таблицы поиска, в которой стандарты данных видео ассоциированы с частотами возбуждения.

[Фиг. 64A] Фиг. 64A является диаграммой, показывающей пример конфигурации для совместного использования модуля блока обработки сигнала.

[Фиг. 64B] Фиг. 64B является диаграммой, показывающей другой пример конфигурации для совместного использования модуля блока обработки сигнала.

[ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ]

(ОСНОВНЫЕ СВЕДЕНИЯ, СОСТАВЛЯЮЩИЕ ОСНОВУ НАСТОЯЩЕГО ИЗОБРЕТЕНИЯ)

[0010] В схеме кодирования движущихся картинок, называемой H.264, которая была уже стандартизирована, три типа картинок, а именно, I-картинка, P-картинка, и B-картинка используются, чтобы сжать объем информации.

[0011] I-картинка не кодируется обработкой кодирования с внешним предсказанием. В частности, I-картинка кодируется в соответствии с обработкой кодирования с предсказанием внутри картинки (в дальнейшем, называемым внутренним предсказанием). P-картинка кодируется посредством кодированием с внешним предсказанием посредством обращения к одной уже кодированной картинке, которая появляется прежде или после текущей картинки, подлежащей кодированию в порядке времени отображения. B-картинка кодируется посредством кодирования с внешним предсказанием, обращаясь к двум уже кодированным картинкам, которые появляются прежде или после текущей картинки в порядке времени отображения.

[0012] При кодировании с внешним предсказанием генерируется список опорных картинок для идентификации опорной картинки. Эталонный (опорный) список является списком, в котором индексы опорных картинок назначены на кодированные опорные картинки, на которые нужно ссылаться при внешнем предсказании. Например, так как B-картинки могут быть кодированы, обращаясь к двум картинкам, генерируются два эталонных (опорных) списка (L0, L1).

[0013] Фиг. 1A является диаграммой для описания примера списка опорных картинок для B-картинки. Фиг. 1B показывает пример списка 0 опорных картинок (L0) для направления 0 предсказания в двунаправленном предсказании. Здесь, в списке 0 опорных картинок значение 0 индекса 0 опорных картинок назначено на опорную картинку 0 в порядке 2 отображения. Далее, значение 1 индекса 0 опорных картинок назначено на опорную картинку 1 при порядке 1 отображения. Далее, значение 2 индекса 0 опорных картинок назначено на опорную картинку 2 при порядке 0 отображения. В частности, индексы опорных картинок, имеющие меньшие значения, назначают на опорные картинки в порядке временной близости к текущей картинке, которая должна быть закодирована в порядке отображения.

[0014] Фиг. 1C показывает пример списка 1 опорных картинок (L1) для направления 1 предсказания в двунаправленном предсказании. Здесь, в списке 1 опорных картинок значение 0 индекса 1 опорных картинок назначено на опорную картинку 1 при порядке 1 отображения. Далее, значение 1 индекса 1 опорных картинок назначено на опорную картинку 0 при порядке 2 отображения. Далее, значение 2 индекса 2 опорных картинок назначено на опорную картинку 2 при порядке 0 отображения.

[0015] Таким образом возможно назначить индексы опорных картинок, имеющие различные значения для направлений предсказания, опорной картинке (опорным картинкам 0 и 1 на фиг. 1A), и индексы опорных картинок, имеющие одно и то же значение для направлений предсказания, опорной картинке (опорная картинка 2 на фиг. 1A).

[0016] Далее, в схеме кодирования движущихся картинок, называемой H.264 (NPL 1), режим обнаружения вектора движения используется как режим кодирования с внешним предсказанием для блоков, которые должны быть закодированы в B-картинке. В режиме обнаружения вектора движения кодируются значение разности между предсказанными данными изображения и данными изображения текущего блока, который должен быть закодирован, и вектор движения, используемый для генерирования предсказанных данных изображения. Далее, в режиме обнаружения вектора движения возможно выбрать двунаправленное предсказание или однонаправленное предсказание в качестве направления предсказания. В двунаправленном предсказании предсказанное изображение генерируется, обращаясь к двум уже закодированным картинкам, которые появляются прежде или после текущей, подлежащей кодированию. В однонаправленном предсказании предсказанное изображение генерируется, обращаясь к одной уже кодированной картинке, которая появляется прежде или после текущей картинки, подлежащей кодированию.

[0017] Далее, в схеме кодирования движущихся картинок, называемой H.264, режим кодирования, называемый режим временного предсказания вектора движения, может быть выбран, когда вектор движения получают при кодировании B-картинки. Способ кодирования с внешним предсказанием в режиме временного предсказания вектора движения описан с использованием Фиг. 2.

[0018] Фиг. 2 является диаграммой для описания векторов движения в режиме временного предсказания вектора движения. В частности, Фиг. 2 показывает случай, в котором блок в картинке B2 должен быть закодирован в режиме временного предсказания вектора движения.

[0019] Здесь, используется вектор vb движения, который используется, когда кодируется блок b (в дальнейшем, называемый “совместно расположенный блок”) в той же самой позиции в картинке P3, как таковая блока а, причем картинка P3 является опорной картинкой, которая появляется после картинки B2. Вектор vb движения является используемым вектором движения, когда блок b закодирован, обращаясь к картинке P1.

[0020] Два опорных блока для блока а получают из картинки P1, которая является упреждающей опорной картинкой, и картинки P3, которая является обратной опорной картинкой, посредством использования векторов движения, параллельных вектору движения vb. Затем, блок а кодируют, выполняя двунаправленное предсказание, основанное на двух полученных опорных блоках. В частности, вектора движения, использованные, когда блок а кодируется, являются вектором va1 движения относительно картинки P1 и вектором va2 движения относительно картинки P3.

[0021] Кроме того, режим обозначения предиктора вектора движения, рассматривается как подлежащий использованию (NPL 2) в качестве способа для кодирования векторов движения блоков, которые должны быть закодированы в B-картинке или P-картинке. В режиме обозначения предиктора вектора движения кандидаты предиктора вектора движения генерируются на основании векторов движения, используемых при кодировании блоков, смежных с текущим блоком, который должен быть закодирован. Затем, предиктор вектора движения выбирают из числа кандидатов предиктора вектора движения, и вектор движения текущего блока кодируют. В это время индекс выбранного предиктора вектора движения и т.п. добавляют к потоку битов. Следовательно, один и тот же предиктор вектора движения что и предиктор вектора движения, используемый для кодирования, может быть выбран, также когда выполняют декодирование. Конкретный пример описан со ссылками на фиг. 3.

[0022] Фиг. 3 показывает примеры векторов движения смежных блоков, которые используются в режиме обозначения предиктора вектора движения. На Фиг. 3 смежный блок A является кодированным блоком, смежным с и расположенным слева от текущего блока, который должен быть закодирован. Смежный блок B является закодированным блоком, смежным с и расположенным над текущим блоком. Смежный блок C является кодированным блоком, смежным с и расположенным сверху справа от текущего блока. Смежный блок D является закодированным блоком, смежным с и расположенным внизу слева от текущего блока.

[0023] На фиг. 3 текущий блок является блоком, который кодирован в соответствии с двунаправленным предсказанием, и имеет, в результате обнаружения движения или подобного, вектор MvL0 движения в направлении 0 предсказания в качестве вектора движения относительно опорной картинки, обозначенной индексом RefL0 опорной картинки для направления 0 предсказания, и вектор MvL1 движения в направлении 1 предсказания в качестве вектора движения относительно опорной картинки, обозначенной индексом RefL1 опорной картинки для направления 1 предсказания. Здесь, MvL0 является вектором движения, для которого обращаются к опорной картинке, идентифицированной с использованием списка 0 опорных картинок (L0). Далее, MvL1 является вектором движения, для которого обращаются к опорной картинке, идентифицированной с использованием списка 1 опорных картинок (L1).

[0024] Смежный блок A является блоком, закодированным в соответствии с однонаправленным предсказанием в направлении 0 предсказания. Смежный блок A имеет вектор движения MvL0_A в направлении 0 предсказания в качестве вектора движения относительно опорной картинки, обозначенной индексом RefL0_A опорной картинки для направления 0 предсказания. Далее, смежный блок B является блоком, закодированным в соответствии с однонаправленным предсказанием в направлении 1 предсказания. Смежный блок B имеет вектор движения MvL1_B в направлении 1 предсказания в качестве вектора движения относительно опорной картинки, обозначенной индексом RefL1_B опорной картинки для направления 1 предсказания. Смежный блок C является блоком, закодированным внутренним предсказанием. Далее, смежный блок D является блоком, закодированным в соответствии с однонаправленным предсказанием в направлении 0 предсказания. Смежный блок D имеет вектор движения MvL0_D в направлении 0 предсказания в качестве вектора движения относительно опорной картинки, обозначенной индексом RefL0_D опорной картинки в направлении 0 предсказания.

[0025] В таком случае, когда предиктор вектора движения текущего блока, который должен быть закодирован, например, предиктор вектора движения, с которым может быть наиболее эффективно закодирован вектор движения текущего блока, выбирают из числа кандидатов предиктора вектора движения, генерируемых из векторов движения смежных блоков A, B, C и D и вектора движения в режиме временного предсказания вектора движения, полученном посредством использования совместно расположенного блока. Затем, индекс предиктора вектора движения, указывающий выбранный предиктор вектора движения, добавляется к потоку битов. Например, если вектор движения MvL0_A в направлении 0 предсказания смежного блока A выбран в качестве предиктора вектора движения, когда вектор движения MvL0 в направлении 0 предсказания из текущего блока должен быть закодирован, только значение “0” индекса предиктора вектора движения, который указывает, что кандидат предиктора вектора движения, сгенерированного из смежного блока A, используется как показано на фиг. 4, добавляется к потоку битов. Соответственно, объем информации относительно вектора движения MvL0 в направлении 0 предсказания текущего блока может быть уменьшен.

[0026] Здесь Фиг. 4 показывает пример списка кандидатов предиктора вектора движения для направления 0 предсказания. Далее, как показано на фиг. 4, в режиме обозначения предиктора вектора движения, кандидат, с которым не может генерироваться предиктор вектора движения (в дальнейшем, называемый “недоступный кандидат предиктора”), и кандидат, значение которого является таким же как значение другого кандидата предиктора вектора движения (в дальнейшем, “избыточный кандидат”) удаляются из кандидатов предиктора вектора движения. Следовательно, объем кода, назначенный на индексы предиктора вектора движения, уменьшается посредством сокращения числа кандидатов предиктора вектора движения. Здесь, генерирование предиктора вектора движения, являющегося невозможным, подразумевает, что смежный блок является (1) блоком, кодированным внутренним предсказанием, (2) блоком вне границы вырезки или картинки, которая включает в себя текущий блок, который должен быть закодирован, или (3) блоком, который еще не кодирован, например.

[0027] В примере на фиг. 4 смежный блок C закодирован с внутренним предсказанием. Соответственно, кандидат предиктора, обозначенный значением “3” индекса предиктора вектора движения, является недоступным кандидатом предиктора, и таким образом удаляется из списка кандидатов предиктора вектора движения. Далее, предиктор вектора движения в направлении 0 предсказания, генерируемый из смежного блока D, имеет то же значение как значение предиктора вектора движения в направлении 0 предсказания, генерируемого из смежного блока A, и таким образом, кандидат предиктора, указанный значением “4” индекса предиктора вектора движения, удаляется из списка кандидатов предиктора вектора движения. В результате количество кандидатов предиктора вектора движения в направлении 0 предсказания в конечном счете сокращается до 3, и размер списка кандидатов предиктора вектора движения для направления 0 предсказания устанавливается равным 3.

[0028] Фиг. 5 показывает пример списка кандидатов предиктора вектора движения для направления 1 предсказания. В примере, показанном на фиг. 5, количество кандидатов предиктора вектора движения в направлении 1 предсказания в конечном счете сокращается до 2, посредством удаления недоступного кандидата предиктора и избыточных кандидатов, и размер списка кандидатов предиктора вектора движения для направления 1 предсказания устанавливается равным 2.

[0029] Как показано на фиг. 6, битовые последовательности назначают на индексы предиктора вектора движения согласно размеру списка кандидатов предиктора вектора движения, и являются кодированными с переменной длиной кода. Далее, если размер списка кандидатов предиктора вектора движения равен 1, индекс предиктора вектора движения не добавляется к потоку битов, и устройство декодирования вынуждают оценить, что индекс есть значение 0. Таким образом, в режиме обозначения предиктора вектора движения битовые последовательности, назначенные на индексы предиктора вектора движения, изменяются согласно размеру списка кандидатов предиктора вектора движения, таким образом уменьшая объем кода.

[0030] Фиг. 7 является последовательностью операций, показывающей пример обработки кодирования в случае использования режима обозначения предиктора вектора движения.

[0031] На этапе S1001 кандидаты предиктора вектора движения в направлении X предсказания вычисляются из смежных блоков и совместно расположенного блока (далее называемого “кандидаты блока предсказания”). Здесь, X является одним из значений “0” и “1”, где 0 представляет направление 0 предсказания, и 1 представляет направление 1 предсказания. Кандидат sMvLX предиктора вектора движения в направлении X предсказания вычисляется в соответствии со следующим выражением посредством использования вектора MvLX_N движения и индекса RefLX_N опорной картинки кандидата блока предсказания и индекса RefLX опорной картинки текущего блока, который должен быть закодирован.

[0032] sMvLX=MvLX_N×(POC(RefLX)−curPOC)/(POC (RefLX_N)−curPOC) (Выражение 1)

[0033] Здесь, POC (RefLX) указывает, когда этом в порядке опорная картинка, обозначенная индексом RefLX опорной картинки, отображается, POC (RefLX_N) указывает, когда в этом порядке опорная картинка, обозначенная индексом RefLX_N опорной картинки, отображается, и curPOC указывает, когда в этом порядке текущая картинка, которая должна быть закодирована, отображается. Нужно отметить, что, если кандидат блока предсказания не имеет MvLX_N вектора движения в направлении X предсказания, предиктор sMvLX вектора движения вычисляется в соответствии с Выражением 2 посредством использования вектора MvL(1−X)_N движения в направлении (1−X) предсказания и индекса RefL(1−X)_N опорной картинки.

[0034] sMvLX=MvL(1−X)_N×(POC(RefLX)−curPOC)/(POC (RefL(1−X)_N)−curPOC) (Выражение 2)

[0035] Фиг. 8A и 8B показывают примеры вычисления предикторов вектора движения, используя Выражения 1 и 2. Нужно отметить, что как показано Выражениями 1 и 2, если значения POC(RefLX) и POC(RefLX_N) являются одинаковыми, а именно, на одну и ту же картинку ссылаются, масштабирование может быть пропущено.

[0036] На этапе S1002 избыточный кандидат и недоступный кандидат предиктора удаляются из кандидатов предиктора вектора движения в направлении X предсказания. На этапе S1003 размер списка кандидатов предиктора вектора движения устанавливается равным количеству кандидатов предиктора вектора движения после обработки удаления. На этапе S1004 определяется индекс предиктора вектора движения, который должен использоваться для кодирования вектора движения в направлении X предсказания текущего блока. На этапе S1005 определенный индекс предиктора вектора движения кодируется с переменной длиной кода с использованием битовой последовательности, определенной согласно размеру списка кандидатов предиктора вектора движения.

[0037] Фиг. 9 является блок-схемой, показывающей пример конфигурации устройства 1000 кодирования движущихся картинок, которое кодирует движущуюся картинку посредством использования режима обозначения предиктора вектора движения.

[0038] Как показано на фиг. 9, устройства 1000 кодирования движущихся картинок включает в себя модуль 1001 вычитания, модуль 1002 ортогонального преобразования, модуль 1003 квантования, модуль 1004 обратного квантования, модуль 1005 обратного ортогонального преобразования, модуль 1006 суммирования, модуль 1007 памяти, память 1008 кадров, модуль 1009 внутреннего предсказания, модуль 1010 внешнего предсказания, модуль 1011 управления внешним предсказанием, модуль 1012 определения типа картинки, коммутатор 1013, модуль 1014 вычисления кандидата предиктора вектора движения, память 1015 colPic, и модуль 1016 кодирования с переменной длиной кода.

[0039] На фиг. 9 модуль 1014 вычисления кандидата предиктора вектора движения вычисляет кандидатов предиктора вектора движения. Затем, модуль 1014 вычисления кандидата предиктора вектора движения передает количество вычисленных кандидатов предиктора вектора движения к модулю 1016 кодирования с переменной длиной кода. Модуль 1016 кодирования с переменной длиной кода устанавливает размер списка кандидатов предиктора вектора движения, который является параметром кодирования, равным количеству кандидатов предиктора вектора движения. Затем модуль 1016 кодирования с переменной длиной кода кодирует с переменной длиной кода индексы предиктора вектора движения, используемые для кодирования, назначая им битовые последовательности согласно размеру списка кандидатов предиктора вектора движения.

[0040] Фиг. 10 является последовательностью операций, показывающей пример обработки декодирования в случае использования режима обозначения предиктора вектора движения.

[0041] На этапе S2001 кандидаты предиктора вектора движения в направлении X предсказания вычисляются из смежных блоков и совместно расположенного блока (кандидаты блока предсказания). На этапе S2002 избыточный кандидат и недоступный кандидат предиктора удаляются из кандидатов предиктора вектора движения. На этапе S2003 размер списка кандидатов предиктора вектора движения устанавливается равным количеству кандидатов предиктора вектора движения после обработки удаления. На этапе S2004 индекс предиктора вектора движения, который должен использоваться для декодирования текущего блока, декодируется из потока битов посредством использования размера списка кандидатов предиктора вектора движения. На этапе S2005 вектор движения вычисляют посредством суммирования разности вектора движения с кандидатом предиктора вектора движения, обозначенным декодированным индексом предиктора вектора движения, и предсказанное изображение генерируется посредством использования вычисленного вектора движения, таким образом выполняя обработку декодирования.

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

[0043] Как показано на фиг. 11, устройство 2000 декодирования движущихся картинок включает в себя модуль 2001 декодирования с переменной длиной кода, модуль 2002 обратного квантования, модуль 2003 обратного ортогонального преобразования, модуль 2004 суммирования, память 2005 блоков, память 2006 кадров, модуль 2007 внутреннего предсказания, модуль 2008 внешнего предсказания, модуль 2009 управления внешним предсказанием, коммутатор 2010, модуль 2011 вычисления кандидата предиктора вектора движения, и память 2012 colPic.

[0044] На фиг. 11, модуль вычисления кандидата предиктора вектора движения 2011 вычисляет кандидатов предиктора вектора движения. Затем модуль 2011 вычисления кандидата предиктора вектора движения передает количество вычисленных кандидатов предиктора вектора движения модулю 2001 декодирования с переменной длиной кода. Модуль 2001 декодирования с переменной длиной кода устанавливает размер списка кандидатов предиктора вектора движения, который является параметром декодирования, равным количеству кандидатов предиктора вектора движения. Затем модуль 2001 декодирования с переменной длиной кода декодирует индекс предиктора вектора движения, включенный в поток битов, посредством использования размера списка кандидатов предиктора вектора движения.

[0045] Фиг. 12 показывает синтаксис, используемый, когда индекс предиктора вектора движения добавляется к потоку битов. На фиг. 12 inter_pred_flag указывает флаг направления предсказания для внешнего предсказания, mvp_idx указывает индекс предиктора вектора движения, и NumMVPCand указывает размер списка кандидатов предиктора вектора движения. NumMVPCand устанавливается равным количеству кандидатов предиктора вектора движения после удаления недоступного кандидата предиктора и избыточного кандидата из кандидатов предиктора вектора движения.

[0046] Как описано выше, движущаяся картинка кодируется или декодируется с использованием режима обозначения предиктора вектора движения.

[0047] Однако, в вышеупомянутом режиме обозначения предиктора вектора движения кандидат на предиктора вектора движения, который должен использоваться при кодировании вектора движения текущего блока, который должен быть закодированным, вычисляется из вектора движения, используемого для блока, смежного с текущим блоком, например. Таким образом, например, если смежный блок является областью движущегося объекта, и текущий блок, который должен быть закодирован, является статической областью, на кандидата предиктора вектора движения текущего блока оказывает влияние область движущегося объекта. Поэтому предиктор вектора движения для эффективного кодирования вектора движения текущего блока, который имеет сравнительно малое значение, может не быть включен в кандидаты предиктора вектора движения, и таким образом эффективность кодирования может с