СПОСОБ КОДИРОВАНИЯ ВИДЕО, УСТРОЙСТВО КОДИРОВАНИЯ ВИДЕО, СПОСОБ ДЕКОДИРОВАНИЯ ВИДЕО, УСТРОЙСТВО ДЕКОДИРОВАНИЯ ВИДЕО И УСТРОЙСТВО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ВИДЕО
VIDEO ENCODING METHOD, VIDEO ENCODING DEVICE, VIDEO DECODING METHOD, VIDEO DECODING DEVICE AND APPARATUS FOR ENCODING/DECODING VIDEO

[ОБЛАСТЬ ТЕХНИКИ]
[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] Однако, в вышеупомянутом режиме обозначения предиктора вектора движения кандидат на предиктора вектора движения, который должен использоваться при кодировании вектора движения текущего блока, который должен быть закодированным, вычисляется из вектора движения, используемого для блока, смежного с текущим блоком, например. Таким образом, например, если смежный блок является областью движущегося объекта, и текущий блок, который должен быть закодирован, является статической областью, на кандидата предиктора вектора движения текущего блока оказывает влияние область движущегося объекта. Поэтому предиктор вектора движения для эффективного кодирования вектора движения текущего блока, который имеет сравнительно малое значение, может не быть включен в кандидаты предиктора вектора движения, и таким образом эффективность кодирования может снизиться.
[0048] Ввиду этого задача настоящего изобретения состоит в том, чтобы обеспечить способ кодирования движущейся картинки, который улучшает эффективность кодирования, посредством добавления предиктора вектора движения для статической области к спискам кандидатов предиктора вектора движения.
[0049] Ввиду этого способ кодирования движущейся картинки согласно аспекту настоящего изобретения является способом кодирования движущейся картинки для вычисления предиктора вектора движения, который должен использоваться при кодировании вектора движения текущего блока, который должен быть закодирован, и кодировании текущего блока, для генерирования потока битов, причем способ включает в себя: получение каждого из одного или более первых кандидатов предиктора вектора движения на основании вектора движения, используемого для кодирования блока, пространственно или временно смежного с текущим блоком; получение одного или более вторых кандидатов предиктора вектора движения, каждый имеющий заранее определенный вектор в качестве вектора движения; выбор, из числа одного или более первых кандидатов предиктора вектора движения и одного или более вторых кандидатов предиктора вектора движения, предиктора вектора движения, который должен использоваться для кодирования вектора движения текущего блока; и добавление индекса для идентификации предиктора вектора движения к потоку битов.
[0050] Согласно этому, кандидат предиктора вектора движения, который имеет заранее определенный вектор в качестве вектора движения, может быть получен как второй кандидат предиктора вектора движения. Таким образом, кандидат предиктора вектора движения, который имеет вектор движения статической области, например, может быть получен как второй кандидат предиктора вектора движения. Следовательно, текущий блок, который должен быть закодирован, который имеет заранее определенное движение, может быть закодирован эффективно, что улучшает эффективность кодирования.
[0051] Например, заранее определенный вектор может быть нулевым вектором.
[0052] Согласно этому, так как заранее определенный вектор является нулевым вектором, кандидат предиктора вектора движения, имеющий вектор движения статической области, может быть получен. Поэтому если текущий блок является статической областью, возможно улучшить эффективность кодирования.
[0053] Например, способ кодирования движущейся картинки может также включать в себя: определение максимального количества кандидатов предиктора вектора движения; и определение, меньше ли общее количество из одного или более первых кандидатов предиктора вектора движения, которые были получены, чем максимальное количество, при этом при получении одного или более вторых кандидатов предиктора вектора движения, упомянутые один или более вторых кандидатов предиктора вектора движения могут быть получены, когда определено, что общее количество из одного или более первых кандидатов предиктора вектора движения меньше, чем максимальное количество.
[0054] Согласно этому, может быть получен второй кандидат предиктора вектора движения, если определено, что количество первых кандидатов предиктора вектора движения меньше, чем максимальное количество. Таким образом, возможно увеличить число кандидатов предиктора вектора движения в диапазоне, который не превышает максимальное количество, и улучшить эффективность кодирования.
[0055] Например, при добавлении индекса этот индекс может быть кодирован посредством использования определенного максимального количества, и закодированный индекс может быть добавлен к потоку битов.
[0056] Согласно этому, индекс для идентификации кандидата предиктора вектора движения может быть закодирован посредством использования определенного максимального количества. В частности, индекс может быть закодирован без зависимости от количества кандидатов предиктора вектора движения, фактически полученных. Таким образом, даже если информация, необходимая для получения кандидата предиктора вектора движения (например, информация совместно расположенного блока и т.п.), потеряна, устройство декодирования может декодировать индекс, и устойчивость к ошибкам может быть улучшена. Далее, устройство декодирования может декодировать индекс, без зависимости от количества кандидатов предиктора вектора движения, фактически полученных. В частности, устройство декодирования может декодировать индекс, не ожидая получения (выведения) кандидата предиктора вектора движения. Другими словами, возможно генерировать поток битов, для которого получение кандидата предиктора вектора движения и декодирование индекса может быть выполняют параллельно.
[0057] Например, при добавлении индекса информация, указывающая определенное максимальное количество, может быть дополнительно добавлена к потоку битов.
[0058] Согласно этому, информация, указывающая определенное максимальное количество, может быть добавлена к потоку битов. Поэтому максимальное количество может быть изменено в подходящем блоке, что позволяет улучшить эффективность кодирования.
[0059] Например, при получении одного или более первых кандидатов предиктора вектора движения, вектор движения, используемый для кодирования блока, может быть получен как первый кандидат предиктора вектора движения, этот блок является пространственно смежным с текущим блоком, и не является (i) блоком, закодированным внутренним предсказанием, (ii) блоком, расположенным вне границы вырезки или картинки, которая включает в себя текущий блок, или (iii) блоком, который еще не закодирован.
[0060] Согласно этому, первый кандидат предиктора вектора движения может быть получен на основании блока, подходящего для получения кандидата предиктора вектора движения.
[0061] Например, при получении первых кандидатов предиктора вектора движения кандидат предиктора вектора движения может быть получен как первый кандидат предиктора вектора движения, упомянутый кандидат предиктора вектора движения имеет вектор движения, отличающийся от вектора движения любого из одного или более первых кандидатов предиктора вектора движения, которые были уже получены.
[0062] Согласно этому, кандидат предиктора вектора движения, имеющий тот же самый вектор движения, как вектор движения любого из первых кандидатов предиктора вектора движения, которые были уже получены, может быть исключен из первых кандидатов предиктора вектора движения. В результате число вторых кандидатов предиктора вектора движения может быть увеличено, и типы векторов движения, выбираемых в качестве кандидатов предиктора вектора движения, могут быть увеличены. Таким образом, возможно далее улучшить эффективность кодирования.
[0063] Например, способ кодирования движущейся картинки может также включать в себя: переключение между первой обработкой кодирования, соответствующей первому стандарту, и второй обработке кодирования, соответствующей второму стандарту; и добавление к потоку битов идентификационной информации, указывающей первый стандарт или второй стандарт, которому соответствует соответствующая одна из первой обработки кодирования и второй обработки кодирования после переключения, при этом, когда переключение к первой обработке кодирования сделано, получение одного или более первых кандидатов предиктора вектора движения, получение одного или более вторых кандидатов предиктора вектора движения, выбор предиктора вектора движения, и добавление индекса, могут быть выполнены в качестве первой обработки кодирования.
[0064] Согласно этому, возможно переключиться между первой обработкой кодирования, соответствующей первому стандарту, и второй обработкой кодирования, соответствующей второму стандарту.
[0065] Способ декодирования движущихся картинок согласно аспекту настоящего изобретения является способом декодирования движущихся картинок для вычисления предиктора вектора движения, который должен использоваться, при декодировании вектора движения текущего блока, который должен быть декодирован, который включен в поток битов, и декодирование текущего блока, причем способ включает в себя: получение каждого из одного или более первых кандидатов предиктора вектора движения, на основании вектора движения, используемого для декодирования блока, пространственно или временно смежного с текущим блоком; получение одного или более вторых кандидатов предиктора вектора движения, каждый имеющий заранее определенный вектор в качестве вектора движения; получение индекса для идентификации одного из одного или более кандидатов предиктора вектора движения из потока битов; и выбор, на основании полученного индекса, предиктора вектора движения, который должен использоваться при декодировании текущего блока из числа одного или более первых кандидатов предиктора вектора движения и одного или более вторых кандидатов предиктора вектора движения.
[0066] Согласно этому, кандидат предиктора вектора движения, имеющий заранее определенный вектор в качестве вектора движения, может быть получен как второй кандидат предиктора вектора движения. Таким образом, например, кандидат предиктора вектора движения, имеющий вектор движения статической области, например, может быть получен как второй кандидат предиктора вектора движения. Следовательно, поток битов, в котором блок, имеющий заранее определенное движение, кодируется эффективно, может быть декодирован подходящим образом, и таким образом возможно подходящим образом декодировать поток битов, для которого было улучшена эффективность кодирования.
[0067] Например, заранее определенный вектор может быть нулевым вектором.
[0068] Согласно этому, так как заранее определенный вектор является нулевым вектором, возможно получить кандидата предиктора вектора движения, имеющего вектор движения статической области. Поэтому возможно подходящим образом декодировать поток битов, для которого была улучшена эффективность кодирования.
[0069] Например, способ декодирования движущихся картинок может также включать в себя: определение максимального количества кандидатов предиктора вектора движения; и определение, меньше ли общее количество из одного или более первых кандидатов предиктора вектора движения, которые были получены, чем максимальное количество, при этом при получении одного или более вторых кандидатов предиктора вектора движения эти один или более вторых кандидатов предиктора вектора движения могут быть получены, когда определено, что общее количество из одного или более первых кандидатов предиктора вектора движения меньше, чем максимальное количество.
[0070] Согласно этому, может быть получен второй кандидат предиктора вектора движения, если определено, что количество первых кандидатов предиктора вектора движения меньше, чем максимальное количество. Поэтому число кандидатов предиктора вектора движения может быть увеличено в диапазоне, который не превышает максимальное количество, и таким образом возможно подходящим образом декодировать поток битов, для которого была улучшена эффективность кодирования.
[0071] Например, при получении индекса этот индекс может быть получен посредством декодирования посредством использования этого определенного максимального количества, этот индекс кодируется и добавляется к потоку битов.
[0072] Согласно этому, индекс для идентификации кандидата предиктора вектора движения может быть декодирован посредством использования этого определенного максимального количества. В частности, индекс может быть декодирован без зависимости от количества кандидатов предиктора вектора движения, фактически полученных. Поэтому индекс может быть декодирован, даже если информация, необходимая для получения кандидата предиктора вектора движения (например, информация совместно расположенного блока и т.п.), потеряна, что позволяет улучшить устойчивость к ошибкам. Кроме того, возможно декодировать индекс, не ожидая получения (выведения) кандидата предиктора вектора движения, и также получить кандидата предиктора вектора движения и декодировать индекс параллельно.
[0073] Например, при определении максимального количества, это максимальное количество может быть определено на основании информации, указывающей максимальное количество, и добавлено к потоку битов.
[0074] Согласно этому, максимальное количество может быть определено на основании информации, добавленной к потоку битов. Таким образом, возможно декодировать изображение, закодированное посредством изменения максимального количества в подходящем блоке.
[0075] Например, при получении одного или более первых кандидатов предиктора вектора движения, вектор движения, используемый для декодирования блока, может быть получен как первый кандидат предиктора вектора движения, причем этот блок является пространственно смежным с текущим блоком, и не являющийся (i) блоком, декодированным внутренним предсказанием, (ii) блоком, расположенным вне границы вырезки или картинки, которая включает в себя текущий блок, или (iii) блоком, который еще не декодирован.
[0076] Согласно этому, первый кандидат предиктора вектора движения может быть получен на основании блока, подходящего для получения кандидата предиктора вектора движения.
[0077] Например, при получении первых кандидатов предиктора вектора движения кандидат предиктора вектора движения может быть получен как первый кандидат предиктора вектора движения, этот кандидат предиктора вектора движения имеет вектор движения, отличающийся от вектора движения любого из одного или более первых кандидатов предиктора вектора движения, которые были уже получены.
[0078] Согласно этому, кандидат предиктора вектора движения, имеющий тот же самый вектор движения как вектор движения любого из первых кандидатов предиктора вектора движения, которые были уже получены, может быть исключен из первых кандидатов предиктора вектора движения. В результате число вторых кандидатов предиктора вектора движения может быть увеличено, и типы комбинаций направления предсказания, вектора движения и индекса опорной картинки, которые являются выбираемыми в качестве кандидатов предиктора вектора движения, могут быть увеличены. Поэтому возможно подходящим образом декодировать поток битов, для которого была дополнительно улучшена эффективность кодирования.
[0079] Например, способ декодирования движущихся картинок может также включать в себя переключение между первой обработкой декодирования, соответствующей первому стандарту, и второй обработкой декодирования, соответствующей второму стандарту, согласно идентификационной информации, указывающей первый стандарт или второй стандарт, и добавленной к потоку битов, в котором, когда переключение к первой обработке декодирования выполнено, получение одного или более первых кандидатов предиктора вектора движения, получение одного или более вторых кандидатов предиктора вектора движения, получение индекса, и выбор предиктора вектора движения может быть выполнено в качестве первой обработки декодирования.
[0080] Согласно этому, возможно переключиться между первой обработкой декодирования, соответствующей первому стандарту, и второй обработкой декодирования, соответствующей второму стандарту.
[0081] Нужно отметить, что эти общие и конкретные аспекты могут быть реализованы посредством использования системы, способа, интегральной схемы, компьютерной программы, считываемого компьютером носителя записи, такого как CD-ROM, или любой комбинации систем, способов, интегральных схем, компьютерных программ или носителей записи.
[0082] Нижеследующее является конкретным описанием устройства кодирования движущихся картинок и устройства декодирования движущихся картинок согласно аспекту настоящего изобретения, со ссылками на чертежи.
[0083] Каждый из примерных вариантов осуществления, описанных ниже, показывает общий или конкретный пример. Числовые значения, формы, материалы, составляющие элементы, компоновка и соединение составляющих элементов, этапов, порядок обработки этапов и т.п., описанных в нижеследующих вариантах осуществления, являются простыми примерами, и таким образом не ограничивают объем приложенной формулы изобретения и ее эквивалентов. Поэтому среди составляющих элементов в нижеследующих примерных вариантах осуществления, составляющие элементы, не указанные в любом из независимых пунктах формулы изобретения, описаны как произвольные составляющие элементы.
[0084] [ВАРИАНТ ОСУЩЕСТВЛЕНИЯ 1]
Фиг. 13 является блок-схемой, показывающей конфигурацию устройства 100 кодирования движущихся картинок согласно варианту осуществления 1.
[0085] Как показано на фиг. 13, устройство 100 кодирования движущихся картинок включает в себя модуль 101 вычитания, модуль 102 ортогонального преобразования, модуль 103 квантования, модуль 104 обратного квантования, модуль 105 обратного ортогонального преобразования, модуль 106 суммирования, память 107 блоков, память 108 кадров, модуль 109 внутреннего предсказания, модуль 110 внешнего предсказания, модуль 111 управления внешним предсказанием, модуль 112 определения типа картинки, коммутатор 113, модуль 114 вычисления кандидата предиктора вектора движения, память 115 colPic, и модуль 116 кодирования с переменной длиной кода.
[0086] Модуль 101 вычитания генерирует данные ошибки предсказания посредством вычитания, для каждого блока, предсказанных данных изображения из данных изображения ввода, включенных во входную последовательность изображения. Модуль 102 ортогонального преобразования преобразовывает генерируемые данные ошибки предсказания из области изображения в частотную область. Модуль 103 квантования выполняет обработку квантования в отношении данных ошибки предсказания, которые были преобразованы в частотную область.
[0087] Модуль 104 обратного квантования выполняет обработку обратного квантования в отношении данных ошибки предсказания, в отношении которых обработка квантования была выполнена модулем 103 квантования. Модуль 105 обратного ортогонального преобразования преобразовывает данные ошибки предсказания, в отношении которых обработка обратного квантования была выполнена, из частотной области в область изображения.
[0088] Модуль 106 суммирования генерирует восстановленные данные изображения, суммируя, для каждого блока, который должен быть закодирован, предсказанные данные изображения и данные ошибки предсказания, в отношении которых обработка обратного квантования была выполнена модулем 105 обратного ортогонального преобразования. Память 107 блоков хранит восстановленные данные изображения на основе блок-за-блоком. Память 108 кадров хранит восстановленные данные изображения на основе кадр-за-кадром.
[0089] Модуль 112 определения типа картинки определяет, в качестве какой из типов картинки, а именно, I-картинки, B-картинки, и P-картинки, должны быть закодированы данные изображения ввода. Затем модуль 112 определения типа картинки генерирует информацию типа картинки. Блок 109 внутреннего предсказания генерирует внутренне предсказанные данные изображения текущего блока, который должен быть закодирован, выполняя внутреннее предсказание посредством использования восстановленных данных изображения в единицах блоков, сохраненных в памяти 107 блоков. Модуль 110 внешнего предсказания генерирует внешне предсказанные данные изображения текущего блока, который должен быть закодирован, выполняя внешнее предсказание посредством использования восстановленных данных изображения в единицах кадров, сохраненных в памяти 108 кадров, и вектор движения, полученный посредством обнаружения движения и т.п.
[0090] Коммутатор 113 выводит внутренне предсказанные данные изображения, генерируемые модулем 109 внутреннего предсказания, к модулю 101 вычитания и модулю 106 суммирования в качестве предсказанных данных изображения текущего блока, если кодирование с внутренним предсказанием выполняют в отношении текущего блока. С другой стороны, коммутатор 113 выводит внешне предсказанные данные изображения, генерируемые модулем 110 внешнего предсказания, к модулю 101 вычитания и модулю 106 суммирования в качестве предсказанных данных изображения текущего блока, если кодирование с внешним предсказанием выполняют в отношении текущего блока.
[0091] Модуль 114 вычисления кандидата предиктора вектора движения получает кандидатов предиктора вектора движения в режиме обозначения предиктора вектора движения посредством использования вектора движения блоков, смежных с текущим блоком и т.п. и информации colPic, такой как информация вектора движения совместно расположенного блока, сохраненного в памяти 115 colPic. Затем модуль 114 вычисления кандидата предиктора вектора движения вычисляет количество кандидатов предиктора вектора движения, используя способ, описанный ниже. Далее модуль 114 вычисления кандидата предиктора вектора движения назначает значения индекса предиктора вектора движения полученным кандидатам предиктора вектора движения. Затем модуль 114 вычисления кандидата предиктора вектора движения посылает кандидатов предиктора вектора движения и индексы предиктора вектора движения к модулю 111 управления внешним предсказанием. Далее, модуль 114 вычисления кандидата предиктора вектора движения посылает количество вычисленных кандидатов предиктора вектора движения к модулю 116 кодирования с переменной длиной кода.
[0092] Модуль 111 управления внешним предсказанием управляет модулем 110 внешнего предсказания, чтобы вынудить модуль 110 внешнего предсказания выполнить кодирование с внешним предсказанием посредством использования внешне предсказанного изображения, сгенерированного с использованием вектора движения, полученного посредством обнаружения движения. Далее модуль 111 управления внешним предсказанием выбирает посредством использования способа, описанного ниже, кандидата предиктора вектора движения, наиболее подходящего для кодирования вектора движения, используемого для кодирования с внешним предсказанием. Затем модуль 111 управления внешним предсказанием посылает индекс предиктора вектора движения, соответствующий выбранному кандидату предиктора вектора движения, и информацию ошибки предсказания (разность векторов движения) к модулю 116 кодирования с переменной длиной кода. Кроме того, модуль 111 управления внешним предсказанием передает информацию colPic, включающую информацию вектора движения текущего блока и т.п. к памяти 115 colPic.
[0093] Модуль 116 кодирования с переменной длиной кода выполняет обработку кодирования с переменной длиной кода в отношении данных ошибки предсказания, в отношении которых обработка квантования была выполнена, флага направления предсказания, информации типа картинки и разности векторов движения, таким образом генерируя поток битов. Кроме того, модуль 116 кодирования с переменной длиной кода устанавливает размер списка кандидатов предиктора вектора движения равным количеству кандидатов предиктора вектора движения. Затем модуль 116 кодирования с переменной длиной кода кодирует с переменной длиной кода индекс предиктора вектора движения, используемый для кодирования вектора движения, назначая ему битовую последовательность согласно размеру списка кандидатов предиктора вектора движения.
[0094] Фиг. 14 является последовательностью операций, показывающей обрабатывающую операцию устройства 100 кодирования движущихся картинок согласно варианту осуществления 1.
[0095] На этапе S101 модуль 111 управления внешним предсказанием определяет направление предсказания, индекс опорной картинки и вектор движения текущего блока, который должен быть закодирован посредством обнаружения движения. Здесь, при обнаружении движения вычисляют значение разности, указывающее разность между текущим блоком, который должен быть закодирован в картинке, которая должна быть закодирована, и блоком в опорной картинке, и блок в опорной картинке, с которым значение разности является наименьшим, определяется как опорный блок. Затем вектор движения получают на основании позиции текущего блока, который должен быть закодирован, и позиция позиции опорного блока посредством использования способа для получения вектора движения, например. Далее, модуль 111 управления внешним предсказанием выполняет обнаружение движения в отношении каждой из опорных картинок в направлениях 0 и 1 предсказания, и определяет, выбрать ли направление 0 предсказания, направление 1 предсказания или двунаправленное предсказания, используя, например, следующее выражение для модели оптимизации R-D, или подобное.
[0096] Стоимость=D+λ×R (Выражение 3)
[0097] В выражении 3 D обозначает искажение кодирования, и например, сумма абсолютных разностей используются для этого, причем каждая из которых является абсолютной разностью между пиксельным значением, полученным посредством кодирования и декодирования текущего блока посредством использования предсказанного изображения, сгенерированного с использованием некоторого вектора движения, и первоначального пиксельного значения текущего блока. R обозначает генерируемый объем кода, и объем кода, необходимый, чтобы закодировать вектор движения, используемый для генерирования предсказанного изображения, используется для этого. Далее, λ обозначает неопределенный множитель Лагранжа.
[0098] На этапе S102 модуль 114 вычисления кандидата предиктора вектора движения получает кандидатов предиктора вектора движения из блоков, смежных с текущим блоком, и совместно расположенного блока его. Далее, модуль 114 вычисления кандидата предиктора вектора движения вычисляет размер списка кандидатов предиктора вектора движения согласно способу, описанному ниже.
[0099] Например, в случае, как показано на фиг. 3, модуль 114 вычисления кандидата предиктора вектора движения выбирает векторы движения, которые имеют смежные блоки A, B, C, и D, в качестве кандидатов предиктора вектора движения текущего блока. Кроме того, модуль 114 вычисления кандидата предиктора вектора движения вычисляет вектор движения, например, который вычисляется посредством использования режима временного предсказания из вектора движения совместно расположенного блока, в качестве кандидата предиктора вектора движения.
[0100] Модуль 114 вычисления кандидата предиктора вектора движения назначает индексы предиктора вектора движения кандидатам предиктора вектора движения в направлениях 0 и 1 предсказания, как показано в (a) на фиг. 15 и (a) на фиг. 16. Затем модуль 114 вычисления кандидата предиктора вектора движения вычисляет списки кандидатов предиктора вектора движения как показано в (b) на фиг. 15 и (b) на фиг. 16, и размеры списков кандидатов предиктора вектора движения, посредством удаления недоступного кандидата предиктора и избыточного кандидата и добавления нулевого кандидата посредством использования способа, описанного ниже.
[0101] Чем меньше значение индекса предиктора вектора движения, тем более короткий код назначают на индекс предиктора вектора движения. В частности, если значение индекса предиктора вектора движения является малым, объем информации, необходимой для индекса предиктора вектора движения, является малым. С другой стороны, если значение индекса предиктора вектора движения является большим, объем информации, необходимой для индекса предиктора вектора движения, является большим. Таким образом, эффективность кодирования увеличивается при назначении индекса предиктора вектора движения, имеющего малое значение кандидата предиктора вектора движения, имеющему высокую вероятность стать предиктором вектора движения с высокой точностью.
[0102] Ввиду этого модуль 114 вычисления кандидата предиктора вектора движения может измерять, для каждого кандидата предиктора вектора движения, количество раз, сколько кандидат предиктора вектора движения был выбран в качестве предиктора вектора движения, и назначать индекс предиктора вектора движения, имеющий малое значение, кандидату предиктора вектора движения, чье количество раз, сколько был выбран кандидатом, является большим, например. В частности, возможно рассматривать идентификацию предиктора вектора движения, выбранного в смежном блоке, и при кодировании текущего блока назначать индекс предиктора вектора движения, имеющий малое значение, идентифицированному кандидату предиктора вектора движения.
[0103] Нужно отметить, что, если смежный блок не имеет информации вектора движения и т.п. (если смежный блок закодирован внутренним предсказанием, если смежный блок расположен, например, вне границы картинки или вырезки, если смежный блок еще не закодирован, или подобное), смежный блок не может быть использован в качестве кандидата предиктора вектора движения.
[0104] В настоящем варианте осуществления кандидат, который не может быть использован в качестве кандидата предиктора вектора движения, упоминается как недоступный кандидат предиктора. Кандидат, который может быть использован в качестве кандидата предиктора вектора движения, упоминается как доступный кандидат предиктора. Далее, среди множества кандидатов предиктора вектора движения, кандидат, значение которого является таким же как любого из других предикторов вектора движения, упоминается как избыточный кандидат.
[0105] В случае Фиг. 3 смежный блок C является блоком, закодированным внутренним предсказанием, и таким образом, как предполагается, является недоступным кандидатом предиктора. Далее, предиктор sMvL0_D вектора движения в направлении 0 предсказания, генерируемый из смежного блока D, имеет то же значение как значение предиктора MvL0_A вектора движения в направлении 0 предсказания, генерируемого из смежного блока A, и таким образом, как предполагается, является избыточным кандидатом.
[0106] На этапе S103 модуль 111 управления внешним предсказанием определяет значение индекса предиктора вектора движения, который должен использоваться для кодирования вектора движения в направлении X предсказания при использовании способа, описанного ниже.
[0107] На этапе S104 модуль 116 кодирования с переменной длиной кода кодирует с переменной длиной кода индексы предиктора вектора движения кандидатов предиктора вектора движения, которые должны использоваться для кодирования векторов движения в направлении X предсказания, назначая им битовые последовательности согласно размеру списка кандидатов предиктора вектора движения, как показано на фиг. 6.
[0108] В настоящем варианте осуществления, как показано в (a) на фиг. 15 и (a) на фиг. 16, “0” назначен как значение индекса предиктора вектора движения, соответствующего смежному блоку A. "1" назначено как значение индекса предиктора вектора движения, соответствующего смежному блоку B. "2" назначено как значение индекса предиктора вектора движения, соответствующего совместно расположенному блоку. “3” назначено как значение индекса предиктора вектора движения, соответствующего смежному блоку C. "4" назначено как значение индекса предиктора вектора движения, соответствующего смежному блоку D.
[0109] Нужно отметить, что способ назначения индексов предиктора вектора движения не обязательно ограничен этим примером. Например, если нулевой кандидат добавляется посредством использования способа, описанного ниже, модуль 116 кодирования с переменной длиной кода может назначить малое значение кандидату предиктора вектора движения, который не является добавленным вектором, и большое значение нулевому кандидату. В частности, модуль 116 кодирования с переменной длиной кода может предпочтительно назначить индекс блока предиктора вектора движения, имеющий малое значение, кандидату предиктора вектора движения, который не является добавленным вектором.
[0110] Далее, кандидаты предиктора вектора движения не обязательно ограничены, чтобы находиться в позициях смежных блоков A, B, C, и D. Например, смежный блок, расположенный в левом нижнем смежном блоке D, например, может использоваться, чтобы получить кандидата предиктора вектора движения. Далее, все смежные блоки не обязательно должны использоваться, чтобы получить кандидатов предиктора вектора движения. Например, только смежные блоки A и B могут использоваться, чтобы получить кандидатов предиктора вектора движения. Альтернативно, смежные блоки могут быть последовательно сканированы посредством использования, например, смежного блока А, если смежный блок D является недоступным кандидатом предиктора.
[0111] Далее в настоящем варианте осуществления, хотя модуль 116 кодирования с переменной длиной кода добавляет индекс предиктора вектора движения к потоку битов на этапе S104 на фиг. 14, индекс предиктора вектора движения не обязательно должен быть добавлен к потоку битов. Например, если размер списка кандидатов предиктора вектора движения равен 1, модуль 116 кодирования с переменной длиной кода может не добавлять индекс предиктора вектора движения к потоку битов. Соответственно, объем информации может быть уменьшен на этот индекс предиктора вектора движения.
[0112] Фиг. 17 является последовательностью операций, показывающей детально обработку на этапе S102 на фиг. 14. В частности, Фиг. 17 показывает способ для вычисления кандидатов предиктора вектора движения и размера списка кандидатов предиктора вектора движения. Нижеследующее представляет описание Фиг. 17.
[0113] На этапе S111 модуль 114 вычисления кандидата предиктора вектора движения определяет, посредством использования способа, описанного ниже, является ли кандидат [N] блока предсказания доступным кандидатом предиктора.
[0114] Здесь, N является значением индекса для обозначения каждого кандидата блока предсказания. В настоящем варианте осуществления N является одним из значений от 0 до 4. В частности, смежный блок А на фиг. 3 назначен на кандидата [0] блока предсказания. Смежный блок B на фиг. 3 назначен на кандидата [1] блока предсказания. Совместно расположенный блок А назначен на кандидата [2] блока предсказания. Смежный блок C на фиг. 3 назначен на кандидата [3] блока предсказания. Смежный блок D на фиг. 3 назначен на кандидата [4] блока предсказания.
[0115] На этапе S112 модуль 114 вычисления кандидата предиктора вектора движения получает кандидата предиктора вектора движения в направлении X предсказания из кандидата [N] блока предсказания, используя выражения 1 и 2 выше, и добавляет полученного кандидата к соответствующему одному из списков кандидатов предиктора вектора движения.
[0116] На этапе S113 модуль 114 вычисления кандидата предиктора вектора движения ищет и удаляет недоступный кандидат предиктора и избыточный кандидат из списков кандидатов предиктора вектора движения, как показано на фиг. 15 и 16.
[0117] На этапе S114 модуль 114 вычисления кандидата предиктора вектора движения добавляет нулевого кандидата к соответствующему одному из списков кандидатов предиктора вектора движения посредством использования способа, описанного ниже. Здесь, когда нулевой кандидат добавлен, модуль 114 вычисления кандидата предиктора вектора движения может повторно назначать значения индексов предиктора вектора движения, так чтобы предпочтительно назначить малый индекс предиктора вектора движения на кандидата предиктора вектора движения, который не является добавленным вектором. В частности, модуль 114 вычисления кандидата предиктора вектора движения может повторно назначить значения индексов предиктора вектора движения так, чтобы назначить индекс предиктора вектора движения, имеющий большое значение, нулевому кандидату. Соответственно, объем кодирования индексов предиктора вектора движения может быть уменьшен.
[0118] На этапе S115 модуль 114 вычисления кандидата предиктора вектора движения устанавливает размер списка кандидатов предиктора вектора движения равным количеству кандидатов предиктора вектора движения после того, как нулевой кандидат добавляется на этапе S114. В примерах согласно Фиг. 15 и 16, посредством использования способа, описанного ниже, “4” вычисляется как количество кандидатов предиктора вектора движения в направлении 0 предсказания, и размер списка кандидатов предиктора вектора движения для направления 0 предсказания устанавливается равным “4”. Далее, “3” вычисляется как количество кандидатов предиктора вектора движения в направлении 1 предсказания, и размер списка кандидатов предиктора вектора движения для направления 1 предсказания устанавливается равным “3”.
[0119] Таким образом, если количество кандидатов предиктора вектора движения не достигло максимального количества кандидатов предиктора вектора движения, модуль 114 вычисления кандидата предиктора вектора движения может улучшить эффективность кодирования, добавляя нулевого кандидата.
[0120] Фиг. 18 является последовательностью операций показывающей детализированную обработку этапа S111 на фиг. 17. В частности, Фиг. 18 показывает способ для определения, является ли предсказанный кандидат [N] блока доступным кандидатом предиктора. Нижеследующее представляет собой описание Фиг. 18.
[0121] На этапе S121 модуль 114 вычисления кандидата предиктора вектора движения определяет, является ли кандидат [N] блока предсказания: (1) внутренне предсказанным, (2) расположенным вне границы вырезки или картинки, которая включает в себя текущий блок, который должен быть закодирован, или (3), еще не кодированным.
[0122] Если результат определения на этапе S121 - «истина» (Да на S121), модуль 114 вычисления кандидата предиктора вектора движения устанавливает кандидата [N] блока предсказания как недоступный кандидат предиктора на этапе S122. С другой стороны, если результат определения на этапе S121 - «ложь» (Нет на S121), модуль 114 вычисления кандидата предиктора вектора движения устанавливает кандидата [N] блока предсказания как доступный кандидат предиктора на этапе S123.
[0123] Фиг. 19 является последовательностью операций, показывающей детально обработку на этапе S114 на фиг. 17. В частности, Фиг. 19 показывает способ для добавления нулевого кандидата. Нижеследующее представляет собой описание Фиг. 19.
[0124] На этапе S131 модуль 114 вычисления кандидата предиктора вектора движения определяет, меньше ли количество кандидатов предиктора вектора движения, чем максимальное количество кандидатов предиктора вектора движения. В частности, модуль 114 вычисления кандидата предиктора вектора движения определяет, не достигло ли количество кандидатов предиктора вектора движения максимального количества кандидатов предиктора вектора движения.
[0125] Здесь, если результатом определения на этапе S131 является «истина» (Да на S131), модуль 114 вычисления кандидата предиктора вектора движения определяет на этапе S132, является ли нулевой кандидат, имеющий вектор движения, значение которого равно “0”, избыточным кандидатом. Здесь, если результатом определения на этапе S132 является «истина» (Нет на S132), модуль 114 вычисления кандидата предиктора вектора движения назначает значение индекса предиктора вектора движения нулевому кандидату, и добавляет нулевого кандидата к соответствующему одному из списков кандидатов предиктора вектора движения на этапе S133. Кроме того, на этапе S134 модуль 114 вычисления кандидата предиктора вектора движения добавляет 1 к количеству кандидатов предиктора вектора движения.
[0126] С другой стороны, если результатом определения на этапе S131 или этапе S132 является «ложь» (Нет на S131 или Да на S132), обработка добавления нулевого кандидата завершается. В частности, если количество кандидатов предиктора вектора движения достигло максимального количества кандидатов предиктора вектора движения, или если нулевой кандидат является избыточным кандидатом, обработка добавления нулевого кандидата завершается.
[0127] Фиг. 20 является последовательностью операций, показывающей детально обработку на этапе S103 на фиг. 14. В частности, Фиг. 20 показывает обработку относительно выбора кандидата предиктора вектора движения. Нижеследующее представляет собой описание Фиг. 20.
[0128] На этапе S141, в качестве инициализации, модуль 111 управления внешним предсказанием устанавливает индекс mvp_idx кандидата предиктора вектора движения в 0, и устанавливает наименьшую разность векторов движения равным максимальному значению.
[0129] На этапе S142 модуль 111 управления внешним предсказанием определяет, меньше ли значение индекса mvp_idx кандидата предиктора вектора движения, чем количество кандидатов предиктора вектора движения. В частности, модуль 111 управления внешним предсказанием определяет, были ли вычислены разности вектора движения всех кандидатов предиктора вектора движения.
[0130] Здесь, если все еще остается кандидат предиктора вектора движения, для которого не было выполнено вычисление (Да на S142), модуль 111 управления внешним предсказанием вычисляет разность векторов движения, вычитая кандидата предиктора вектора движения из вектора, полученного в результате обнаружения движения (результирующего вектора обнаружения движения) на этапе S143.
[0131] На этапе S144 модуль 111 управления внешним предсказанием определяет, имеет ли разность векторов движения, полученного на этапе S143, значение, меньшее чем наименьшая разность векторов движения.
[0132] Здесь, если результатом определения на этапе S144 является «истина» (Да на S144), модуль 111 управления внешним предсказанием обновляет наименьшую разность векторов движения и значение индекса предиктора вектора движения на этапе S145. С другой стороны, если результатом определения на этапе S144 является «ложь» (Нет на этапе S144), модуль 111 управления внешним предсказанием не обновляет наименьшую разность векторов движения и значение индекса предиктора вектора движения.
[0133] На этапе S146 модуль 111 управления внешним предсказанием обновляет индекс кандидата предиктора вектора движения посредством увеличения на +1, и возвращаясь назад на этап S142, модуль 111 управления внешним предсказанием определяет, присутствует ли следующий кандидат предиктора вектора движения.
[0134] С другой стороны, если определено на этапе S2, что разность векторов движения была вычислена для всех кандидатов предиктора вектора движения (Нет на S142), модуль 111 управления внешним предсказанием фиксирует на этапе S147 наименьшую разность векторов движения и индекс предиктора вектора движения, которые установлены последними.
[0135] Таким образом, согласно устройству 100 кодирования движущихся картинок согласно настоящему варианту осуществления, возможно улучшить эффективность кодирования, добавляя предиктора вектора движения статической области к соответствующему одному из списков кандидатов предиктора вектора движения. Более конкретно, если количество кандидатов предиктора вектора движения не достигло максимального количества кандидатов предиктора вектора движения, устройство 100 кодирования движущихся картинок может улучшить эффективность кодирования, добавляя нулевого кандидата, имеющего вектор движения, значение которого равно “0”, в качестве кандидата предиктора вектора движения.
[0136] Нужно отметить, что, хотя настоящий вариант осуществления показывает пример, в котором устройство 100 кодирования движущихся картинок добавляет нулевого кандидата, имеющего вектор движения, значение которого равно “0”, в качестве вектора движения статической области к кандидатам предиктора вектора движения, настоящее изобретение не обязательно ограничено этим.
[0137] Например, устройство 100 кодирования движущихся картинок может добавить к кандидатам предиктора вектора движения вектор движения, который немного больше или меньше, чем вектор движения (0, 0), чье значение равно “0”, такой как вектор движения (0, 1), для рассмотрений небольшой тряски камеры во время видео съемки.
[0138] Далее, устройство 100 кодирования движущихся картинок может добавить параметр (OffsetX, OffsetY) смещения к заголовку последовательности, картинки, или вырезки, например, и добавить вектор (OffsetX, OffsetY) движения к кандидатам предиктора вектора движения.
[0139] Далее, при создании списков кандидатов предиктора вектора движения, например, устройство 100 кодирования движущихся картинок может установить вектор движения (0, 0), чье значение равно “0”, в качестве начального значения всех кандидатов предиктора вектора движения в отношении списков кандидатов предиктора вектора движения, как показано в (a) на фиг. 21. В этом случае, когда устройство 100 кодирования движущихся картинок вычисляет кандидата предиктора вектора движения и добавляет этого кандидата к соответствующему одному из списков кандидатов предиктора вектора движения, вектор движения (0, 0), который является начальным значением, будет перезаписан. Затем устройство 100 кодирования движущихся картинок определяет, является ли вычисленный кандидат предиктора вектора движения недоступным кандидатом предиктора или избыточным кандидатом, прежде чем вычисленный кандидат предиктора вектора движения будет добавлен к соответствующему списку кандидатов предиктора вектора движения. Соответственно, если имеется недоступный кандидат предиктора или избыточный кандидат, вектор движения (0, 0), который является начальным значением, остается в списке кандидатов предиктора вектора движения, как показано на фиг. 21 (b), например. Также возможно добавить нулевого кандидата в качестве кандидата предиктора вектора движения посредством использования такого способа.
[0140] Хотя настоящий вариант осуществления описывает пример, в котором используется режим обозначения предиктора вектора движения, в котором кандидаты предиктора вектора движения генерируются из блоков, смежных с текущим блоком, который должен быть закодирован, и вектор движения текущего блока кодируется, настоящий вариант осуществления не обязательно ограничен этим. Например, прямой режим или режим пропуска могут использоваться. В прямом режиме или режиме пропуска разность векторов движения может не быть добавлена к потоку битов посредством выбора предиктора вектора движения из числа кандидатов предиктора вектора движения, созданных как показано в (b) на фиг. 15 и (b) на фиг. 16, и непосредственно генерируя предсказанное изображение посредством использования выбранного предиктора вектора движения в качестве вектора движения.
[0141] [ВАРИАНТ ОСУЩЕСТВЛЕНИЯ 2]
Настоящий вариант осуществления является модификацией устройства кодирования движущихся картинок согласно варианту осуществления 1 выше. Нижеследующее является подробным описанием устройства кодирования движущихся картинок согласно варианту осуществления 2.
[0142] Фиг. 22 является блок-схемой, показывающей конфигурацию устройства 200 кодирования движущихся картинок согласно варианту осуществления 2. Устройство 200 кодирования движущихся картинок генерирует поток битов, кодируя изображение на основе блок-за-блоком. Устройство 200 кодирования движущихся картинок включает в себя модуль 210 получения кандидата предиктора вектора движения, модуль 220 управления предсказанием, и модуль 230 кодирования.
[0143] Модуль 210 получения кандидата предиктора вектора движения соответствует модулю 114 вычисления кандидата предиктора вектора движения в варианте осуществления 1 выше. Модуль 210 получения кандидата предиктора вектора движения получает кандидатов предиктора вектора движения. Затем модуль 210 получения кандидата предиктора вектора движения генерирует списки кандидатов предиктора вектора движения, в которых, например, каждый из полученных кандидатов предиктора вектора движения ассоциирован с индексом (далее по тексту называемый “индекс предиктора вектора движения”) для идентификации кандидата предиктора вектора движения.
[0144] Кандидат предиктора вектора движения является кандидатом на вектор движения, который должен использоваться для кодирования текущего блока, который должен быть закодирован.
[0145] Как показано на фиг. 22, модуль 210 получения кандидата предиктора вектора движения включает в себя первый модуль 211 получения и второй модуль 212 получения.
[0146] Более конкретно, первый модуль 211 получения получает один или более первых кандидатов предиктора вектора движения, каждый на основании вектора движения, используемого для кодирования блока, пространственно или временно смежного с текущим блоком, который должен быть закодирован, например. Затем, например, первый модуль 211 получения регистрирует, в списке кандидатов предиктора вектора движения, один или более первых кандидатов предиктора вектора движения, полученных таким образом, причем каждый в ассоциации с индексом предиктора вектора движения.
[0147] Пространственно смежный блок является блоком в картинке, которая включает в себя текущий блок, который должен быть закодирован, и является блоком, смежным с текущим блоком. В частности, примерами пространственно смежных блоков являются смежные блоки А-D, показанные на фиг. 3.
[0148] Временно смежный блок является блоком, включенным в картинку, отличающуюся от картинки, которая включает в себя текущий блок, который должен быть закодирован, и является блоком, соответствующим текущему блоку. В частности, примером временно смежного блока является совместно расположенный блок.
[0149] Нужно отметить, что временно смежный блок не обязательно должен быть блоком в той же самой позиции как таковая текущего блока, который должен быть закодирован (совместно расположенный блок). Например, временно смежный блок может быть блоком, смежным с совместно расположенным блоком.
[0150] Нужно отметить, что, например, первый модуль 211 получения может получать, в качестве первого кандидата предиктора вектора движения, вектор движения, используемый для кодирования блока, который является блоком, пространственно смежным с текущим блоком, который должен быть закодирован, и не является блоком, который является недоступным кандидатом предиктора. Блок, который является недоступным кандидатом предиктора, является блоком, закодированным внутренним предсказанием, блоком, расположенным вне границы вырезки или картинки, которая включает в себя текущий блок, который должен быть закодирован, или блоком, который еще не закодирован. Соответственно, первый модуль 211 получения может получить первый кандидат предиктора вектора движения из блока, подходящего для получения кандидата предиктора вектора движения.
[0151] Второй модуль 212 получения получает один или более вторых кандидатов предиктора вектора движения, каждый имеющий заранее определенный вектор в качестве вектора движения. Заранее определенный вектор может быть нулевым вектором, как в варианте осуществления 1, например. Соответственно, второй модуль 212 получения может получить кандидата предиктора вектора движения, имеющего вектор движения статической области. Поэтому устройство 200 кодирования движущихся картинок может улучшить эффективность кодирования, если текущий блок, который должен быть закодирован, является статической областью. Нужно отметить, что заранее определенный вектор не обязательно должен быть нулевым вектором.
[0152] Кроме того, второй модуль 212 получения регистрирует, в списке кандидатов предиктора вектора движения, один или более вторых кандидатов предиктора вектора движения, полученных таким образом, каждый в ассоциации с индексом предиктора вектора движения, например. В это время второй модуль 212 получения может зарегистрировать каждого второго кандидата предиктора вектора движения в соответствующем списке кандидатов предиктора вектора движения таким образом, что индекс предиктора вектора движения, имеющий значение, меньшее чем таковое для вторых кандидатов предиктора вектора движения, назначенных каждому первому кандидату предиктора вектора движения, как в варианте осуществления 1. Соответственно, если имеется высокая вероятность, что первый кандидат предиктора вектора движения будет выбран в качестве кандидата предиктора вектора движения, который должен использоваться для кодирования, вместо вторых кандидатов предиктора вектора движения, устройство 200 кодирования движущихся картинок может уменьшить объем кода и улучшить эффективность кодирования.
[0153] Модуль 220 управления предсказанием выбирает кандидата предиктора вектора движения, который должен использоваться для кодирования текущего блока, который должен быть закодирован, из числа одного или более первых кандидатов предиктора вектора движения и одного или более вторых кандидатов предиктора вектора движения, которые были получены. В частности, модуль 220 управления предсказанием выбирает, из списков кандидатов предиктора вектора движения, кандидата предиктора вектора движения, который должен использоваться для кодирования текущего блока.
[0154] Модуль 230 кодирования добавляет индекс (индекс предиктора вектора движения) для идентификации выбранного кандидата предиктора вектора движения к потоку битов. Например, модуль 230 кодирования кодирует индекс предиктора вектора движения, используя сумму количества полученных первых кандидатов предиктора вектора движения и количества полученных вторых кандидатов предиктора вектора движения (количество кандидатов предиктора вектора движения), и добавляет закодированный индекс предиктора вектора движения к потоку битов.
[0155] Ниже приведено описание различных операций устройства 200 кодирования движущихся картинок, составленного так, как описано выше.
[0156] Фиг. 23 является последовательностью операций, показывающей обрабатывающую операцию устройства 200 кодирования движущихся картинок согласно варианту осуществления 2.
[0157] Сначала первый модуль 211 получения получает один или более первых кандидатов предиктора вектора движения (S201). Затем второй модуль 212 получения получает один или более вторых кандидатов предиктора вектора движения (S202).
[0158] Затем модуль 220 управления предсказанием выбирает предиктора вектора движения, который должен использоваться для кодирования текущего блока, который должен быть закодирован, из числа одного или более первых кандидатов предиктора вектора движения и одного или более вторых кандидатов предиктора вектора движения (S203). Например, модуль 220 управления предсказанием выбирает предиктора вектора движения, с которым разность векторов движения является наименьшей, из списков кандидатов предиктора вектора движения, как в варианте осуществления 1.
[0159] Наконец, модуль 230 кодирования добавляет индекс для идентификации выбранного кандидата предиктора вектора движения к потоку битов (S204).
[0160] Как описано выше, согласно устройству 200 кодирования движущихся картинок согласно настоящему варианту осуществления второй кандидат предиктора вектора движения, имеющий заранее определенный вектор в качестве вектора движения, может быть получен. Поэтому устройство 200 кодирования движущихся картинок может получить второго кандидата предиктора вектора движения, имеющего вектор движения статической области или подобное, например. В частности, устройство 200 кодирования движущихся картинок может эффективно кодировать текущий блок, который должен быть закодирован, который имеет заранее определенное движение, и таким образом может улучшить эффективность кодирования.
[0161] Нужно отметить, что при создании списков кандидатов предиктора вектора движения устройство 200 кодирования движущихся картинок может установить второго кандидата предиктора вектора движения в качестве начального значения всех кандидатов предиктора вектора движения в отношении списков кандидатов предиктора вектора движения, как в варианте осуществления 1 выше. В этом случае модуль 210 получения кандидата предиктора вектора движения получает второго кандидата предиктора вектора движения перед первым кандидатом предиктора вектора движения. Также возможно установить второго кандидата предиктора вектора движения в качестве кандидата предиктора вектора движения посредством использования такого способа.
[0162] [ВАРИАНТ ОСУЩЕСТВЛЕНИЯ 3]
Фиг. 24 является блок-схемой, показывающей конфигурацию устройства 300 декодирования движущихся картинок согласно варианту осуществления 3.
[0163] Как показано на фиг. 24, устройство 300 декодирования движущихся картинок включает в себя модуль 301 декодирования с переменной длиной кода, модуль 302 обратного квантования, модуль 303 обратного ортогонального преобразования, модуль 304 суммирования, модуль 305 памяти, память 306 кадров, модуль 307 внутреннего предсказания, модуль 308 внешнего предсказания, модуль 309 управления внешним предсказанием, коммутатор 310, модуль 311 вычисления кандидата предиктора вектора движения, и память 312 colPic.
[0164] Модуль 301 декодирования с переменной длиной кода выполняет обработку декодирования с переменной длиной кода в отношении потока битов ввода, и генерирует информацию типа картинки, флаг направления предсказания, коэффициент квантования и разность векторов движения. Далее, модуль 301 декодирования с переменной длиной кода выполняет обработку декодирования с переменной длиной кода в отношении индекса предиктора вектора движения, используя количество кандидатов предиктора вектора движения, полученных из модуля 311 вычисления кандидата предиктора вектора движения.
[0165] Модуль 302 обратного квантования выполняет обработку обратного квантования в отношении коэффициента квантования, полученного обработкой декодирования с переменной длиной кода. Модуль 303 обратного ортогонального преобразования преобразовывает ортогонально преобразованный коэффициент, полученный обработкой обратного квантования из частотной области в область изображения, чтобы генерировать данные ошибки предсказания. Модуль 305 памяти сохраняет данные изображения, генерируемые посредством суммирования данных ошибки предсказания и предсказанных данных изображения на основе блок-за-блоком. Память 306 кадров сохраняет данные изображения на основе кадр-за-кадром.
[0166] Модуль 307 внутреннего предсказания генерирует предсказанные данные изображения текущего блока, который должен быть декодирован, выполняя внутреннее предсказание посредством использования данных изображения в единицах блоков, сохраненных в памяти 305 блоков. Модуль 308 внешнего предсказания генерирует предсказанные данные изображения текущего блока, который должен быть декодирован, выполняя внешнее предсказание посредством использования данных изображения в единицах кадров, сохраненных в памяти 306 кадров.
[0167] Если декодирование с внутренним предсказанием выполняют в отношении текущего блока, коммутатор 310 выводит внутренне предсказанные данные изображения, генерируемые модулем 307 внутреннего предсказания, к модулю 304 суммирования в качестве предсказанных данных изображения текущего блока. Напротив, если декодирование с внешним предсказанием выполняют в отношении текущего блока, коммутатор 310 выводит внешне предсказанные данные изображения, генерируемые модулем 308 внешнего предсказания, к модулю 304 суммирования в качестве предсказанных данных изображения текущего блока.
[0168] Модуль 311 вычисления кандидата предиктора вектора движения выводит, посредством использования вектора движения блоков, смежных с текущим блоком, например, и информации colPic, такой как информация вектора движения совместно расположенного блока, сохраненного в памяти 312 colPic, например, кандидаты предиктора вектора движения в режиме обозначения предиктора вектора движения и количество кандидатов предиктора вектора движения посредством использования способа, описанного ниже. Далее, модуль 311 вычисления кандидата предиктора вектора движения назначает значение индекса предиктора вектора движения каждому полученному кандидату предиктора вектора движения. Затем модуль 311 вычисления кандидата предиктора вектора движения посылает кандидатов предиктора вектора движения и индексы предиктора вектора движения к модулю 309 управления внешним предсказанием. Далее, модуль 311 вычисления кандидата предиктора вектора движения посылает количество вычисленных кандидатов предиктора вектора движения к модулю 301 декодирования с переменной длиной кода.
[0169] Модуль 309 управления внешним предсказанием выбирает, из числа кандидатов предиктора вектора движения, предиктор вектора движения, который должен использоваться для внешнего предсказания, на основании декодированного индекса предиктора вектора движения. Затем модуль 309 управления внешним предсказанием вычисляет вектор движения текущего блока на основании предиктора вектора движения и разности векторов движения. Затем модуль 309 управления внешним предсказанием вынуждает модуль 308 внешнего предсказания генерировать внешне предсказанное изображение посредством использования вычисленного вектора движения. Далее модуль 309 управления внешним предсказанием передает информацию colPic, включающую в себя информацию вектора движения текущего блока и т.п., к памяти 312 colPic.
[0170] Наконец, модуль 304 суммирования генерирует декодированные данные изображения, суммируя предсказанные данные изображения и данные ошибки предсказания.
[0171] Фиг. 25 является последовательностью операций, показывающей обрабатывающую операцию устройства декодирования движущихся картинок согласно варианту осуществления 2.
[0172] На этапе S301 модуль 301 декодирования с переменной длиной кода декодирует флаг направления предсказания и индекс опорной картинки. Затем значение направления X предсказания определяют согласно декодированному флагу направления предсказания, и выполняют обработку следующих этапов S302 - S305.
[0173] На этапе S302 модуль 311 вычисления кандидата предиктора вектора движения получает кандидатов предиктора вектора движения из блоков, смежных с текущим блоком, и совместно расположенного блока посредством использования того же способа, как на этапе S102 на фиг. 14. Далее 311 модуль вычисления кандидата предиктора вектора движения добавляет нулевого кандидата и вычисляет размер списка кандидатов предиктора вектора движения.
[0174] На этапе S303 модуль 301 декодирования с переменной длиной кода декодирует с переменной длиной кода индекс предиктора вектора движения в потоке битов посредством использования вычисленного размера списка кандидатов предиктора вектора движения. На этапе S304 модуль 309 управления внешним предсказанием добавляет декодированную разность векторов движения к кандидату предиктора вектора движения, обозначенному декодированным индексом предиктора вектора движения, чтобы вычислить вектор движения. Затем модуль 309 управления внешним предсказанием вынуждает модуль 308 внешнего предсказания генерировать внешне предсказанное изображение посредством использования вычисленного вектора движения.
[0175] Нужно отметить, что, если размер списка кандидатов предиктора вектора движения, вычисленный на этапе S302, равен “1”, можно оценить, что индекс предиктора вектора движения равен 0, без декодирования.
[0176] Таким образом, согласно устройству 300 декодирования движущихся картинок согласно настоящему варианту осуществления, поток битов, для которого была улучшена эффективность кодирования, может быть подходящим образом декодирован, посредством добавления предиктора вектора движения статической области к соответствующему одному из списков кандидатов предиктора вектора движения. Более конкретно, если количество кандидатов предиктора вектора движения не достигло максимального количества кандидатов предиктора вектора движения, устройство 300 декодирования движущихся картинок может подходящим образом декодировать поток битов, для которого эффективность кодирования была улучшена, добавляя нулевого кандидата, имеющего вектор движения, значение которого равно “0”, в качестве кандидата предиктора вектора движения.
[0177] Нужно отметить, что в настоящем варианте осуществления, хотя устройство 300 декодирования движущихся картинок добавляет нового кандидата, имеющего нового предиктора вектора движения, в качестве кандидата предиктора вектора движения, если количество кандидатов предиктора вектора движения не достигло количества доступных кандидатов предиктора, настоящее изобретение не ограничено этим. Например, как в варианте осуществления 1 выше, при создании списков кандидатов предиктора вектора движения, устройство 300 декодирования движущихся картинок может установить вектор движения (0, 0), чье значение равно “0”, в качестве начального значения всех кандидатов предиктора вектора движения в отношении списков кандидатов предиктора вектора движения, как показано в (a) на фиг. 21.
[0178] [ВАРИАНТ ОСУЩЕСТВЛЕНИЯ 4]
Настоящий вариант осуществления является модификацией устройства декодирования движущихся картинок согласно варианту осуществления 3 выше. Нижеследующее представляет собой конкретное описание устройства декодирования движущихся картинок согласно варианту осуществления 4.
[0179] Фиг. 26 является блок-схемой, показывающей конфигурацию устройства 400 декодирования движущихся картинок согласно варианту осуществления 4. Устройство 400 декодирования движущихся картинок декодирует на основе блок-за-блоком кодированное изображение, включенное в поток битов, генерируемый устройством 200 кодирования движущихся картинок согласно варианту осуществления 2, например.
[0180] Как показано на фиг. 26, устройство 400 декодирования движущихся картинок включает в себя модуль 410 получения кандидата предиктора вектора движения, модуль 420 декодирования и модуль 430 управления предсказанием.
[0181] Модуль 410 получения кандидата предиктора вектора движения соответствует модулю 311 вычисления кандидата предиктора вектора движения в варианте осуществления 3 выше. Модуль 410 получения кандидата предиктора вектора движения получает кандидатов предиктора вектора движения. Затем модуль 410 получения кандидата предиктора вектора движения генерирует списки кандидатов предиктора вектора движения, в которых каждый полученный кандидат предиктора вектора движения ассоциирован с индексом для идентификации кандидата предиктора вектора движения (индексом предиктора вектора движения), например.
[0182] Как показано на фиг. 26, модуль 410 получения кандидата предиктора вектора движения включает в себя первый модуль 411 получения и второй модуль 412 получения.
[0183] Первый модуль 411 получения получает один или более первых кандидатов предиктора вектора движения, как с первым модулем 211 получения в варианте осуществления 2. В частности, первый модуль 411 получения получает каждый первый кандидат предиктора вектора движения на основании вектора движения, используемого для декодирования блока, пространственно или временно смежного с текущим блоком, который должен быть декодирован, например. Затем например, первый модуль 411 получения регистрирует в списках кандидатов предиктора вектора движения один или более первых кандидатов предиктора вектора движения, полученных таким образом, каждый в ассоциации с индексом предиктора вектора движения.
[0184] Второй модуль 412 получения получает один или более вторых кандидатов предиктора вектора движения, причем каждый имеет заранее определенный вектор в качестве вектора движения. В частности, второй модуль 412 получения получает один или более вторых кандидатов предиктора вектора движения тем же способом, как таковой из второго модуля 212 получения в варианте осуществления 2. Затем второй модуль 212 получения регистрирует в списках кандидатов предиктора вектора движения один или более вторых кандидатов предиктора вектора движения, полученных таким образом, каждый в ассоциации с индексом предиктора вектора движения, например.
[0185] Заранее определенный вектор может быть, например, нулевым вектором, как в варианте осуществления 1 выше. Это позволяет второму модулю 412 получения получить кандидата предиктора вектора движения, имеющего вектор движения статической области. Следовательно, устройство 400 декодирования движущихся картинок может подходящим образом декодировать поток битов, для которого была улучшена эффективность кодирования.
[0186] Модуль 420 декодирования получает индекс для идентификации кандидата предиктора вектора движения из потока битов. Модуль 420 декодирования получает индекс предиктора вектора движения, декодируя закодированный индекс предиктора вектора движения, добавленный к потоку битов, посредством использования суммы количества полученных первых кандидатов предиктора вектора движения и количества полученных вторых кандидатов предиктора вектора движения (количества кандидатов предиктора вектора движения), например.
[0187] Модуль 430 управления предсказанием выбирает предиктор вектора движения, который должен использоваться для декодирования текущего блока, который должен быть декодирован, из числа одного или более первых кандидатов предиктора вектора движения и одного или более вторых кандидатов предиктора вектора движения, на основании полученного индекса. В частности, модуль 430 управления предсказанием выбирает из списков кандидатов предиктора вектора движения предиктор вектора движения, который должен использоваться для декодирования текущего блока, который должен быть декодирован.
[0188] Ниже представлено описание различных операций устройства 400 декодирования движущихся картинок, составленного так, как описано выше.
[0189] Фиг. 27 является последовательностью операций, показывающей обрабатывающую операцию устройства 400 декодирования движущихся картинок согласно варианту осуществления 4.
[0190] Сначала первый модуль 411 получения получает один или более первых кандидатов предиктора вектора движения (S401). Затем второй модуль 412 получения получает один или более вторых кандидатов предиктора вектора движения (S402). Затем модуль 420 декодирования получает индекс предиктора вектора движения из потока битов (S403).
[0191] Наконец, модуль 220 управления предсказанием выбирает, из числа одного или более первых кандидатов предиктора вектора движения и одного или более вторых кандидатов предиктора вектора движения, предиктор вектора движения, который должен использоваться для декодирования текущего блока, который должен быть декодирован, на основании полученного индекса (S404).
[0192] Как описано выше, согласно устройству 400 декодирования движущихся картинок согласно настоящему варианту осуществления, один или более вторых кандидатов предиктора вектора движения, каждый имеющий заранее определенный вектор в качестве вектора движения, могут быть получены. Таким образом, устройство 400 декодирования движущихся картинок может получить один или более вторых кандидатов предиктора вектора движения, каждый имеющий вектор движения статической области или подобное, например. В частности, устройство 400 декодирования движущихся картинок может подходящим образом декодировать изображение, в котором блок, имеющий заранее определенное движение, эффективно закодирован, и таким образом может подходящим образом декодировать поток битов, для которого была улучшена эффективность кодирования.
[0193] Нужно отметить, что устройство 400 кодирования движущихся картинок может установить второго кандидата предиктора вектора движения в качестве начального значения всех кандидатов предиктора вектора движения в отношении списков кандидатов предиктора вектора движения, как в варианте осуществления 2 выше. В этом случае модуль 410 получения кандидата предиктора вектора движения получает второго кандидата предиктора вектора движения перед первым кандидатом предиктора вектора движения. Также возможно установить второго кандидата предиктора вектора движения в качестве кандидата предиктора вектора движения посредством использования такого способа.
[0194] [ВАРИАНТ ОСУЩЕСТВЛЕНИЯ 5]
Настоящий вариант осуществления описывает подробно способ для получения размера списка кандидатов предиктора вектора движения, который отличается от способа в варианте осуществления 1.
[0195] В вышеупомянутом режиме обозначения предиктора вектора движения размер списка кандидатов предиктора вектора движения, который должен использоваться, когда индекс предиктора вектора движения кодируется или декодируется, устанавливается равным количеству кандидатов предиктора вектора движения. Это количество кандидатов предиктора вектора движения получают после удаления недоступного кандидата предиктора или избыточного кандидата, используя информацию опорной картинки, включая информацию совместно расположенного блока и т.п. Таким образом, если, например, имеется разность в количестве кандидатов предиктора вектора движения между устройством кодирования движущихся картинок и устройством декодирования движущихся картинок, различные битовые последовательности назначают на индексы предиктора вектора движения в устройстве кодирования движущихся картинок и устройстве декодирования движущихся картинок. В результате устройство декодирования движущихся картинок может не быть в состоянии декодировать поток битов подходящим образом.
[0196] Например, если информация опорной картинки, на которую ссылаются как на совместно расположенный блок, потеряна из-за потери пакета или подобного, которое произошло в канале передачи или подобном, то вектор движения или индекс опорной картинки совместно расположенного блока будут потеряны. Таким образом, информация относительно кандидата предиктора вектора движения, который должен генерироваться из совместно расположенного блока, не может быть получена. В таком случае недоступный кандидат предиктора и избыточный кандидат не могут быть подходящим образом удалены из кандидатов предиктора вектора движения во время декодирования. В результате устройство декодирования движущихся картинок не будет в состоянии подходящим образом получить размер списка кандидатов предиктора вектора движения, и не будет в состоянии успешно декодировать индекс предиктора вектора движения.
[0197] Напротив, согласно способу для получения (выведения) размера списка кандидатов предиктора вектора движения, описанному в настоящем варианте осуществления, размер списка кандидатов предиктора вектора движения, который должен использоваться, когда индекс предиктора вектора движения кодируется или декодируется, может быть вычислен посредством использования способа, независимого от информации опорной картинки, включающей в себя информацию совместно расположенного блока и т.п. Соответственно, устройство кодирования движущихся картинок может улучшить устойчивость к ошибкам потока битов.
[0198] Фиг. 28 является блок-схемой, показывающей конфигурацию устройства 500 кодирования движущихся картинок согласно в варианте осуществления 3.
[0199] Как показано на фиг. 28, устройство 500 кодирования движущихся картинок включает в себя модуль 501 вычитания, модуль 502 ортогонального преобразования, модуль 503 квантования, модуль 504 обратного квантования, модуль 505 обратного ортогонального преобразования, модуль 506 суммирования, модуль 507 памяти, память 508 кадров, модуль 509 внутреннего предсказания, модуль 510 внешнего предсказания, модуль 511 управления внешним предсказанием, модуль 512 определения типа картинки, коммутатор 513, модуль 514 вычисления кандидата предиктора вектора движения, память 515 colPic, и модуль 516 кодирования с переменной длиной кода.
[0200] Модуль 501 вычитания генерирует данные ошибки предсказания, вычитая, для каждого блока, предсказанные данные изображения из данных изображения ввода, включенных во входную последовательность изображения. Модуль 502 ортогонального преобразования преобразовывает сгенерированные данные ошибки предсказания из области изображения в частотную область. Модуль 503 квантования выполняет обработку квантования в отношении данных ошибки предсказания, которые были преобразованы в частотную область.
[0201] Модуль 504 обратного квантования выполняет обработку обратного квантования в отношении данных ошибки предсказания, в отношении которых обработка квантования была выполнена модулем 503 квантования. Модуль 505 обратного ортогонального преобразования преобразовывает данные ошибки предсказания, в отношении которых обработка обратного квантования была выполнена, из частотной области в область изображения.
[0202] Модуль 506 суммирования генерирует восстановленные данные изображения, суммируя для каждого блока, который должен быть закодирован, предсказанные данные изображения и данные ошибки предсказания, в отношении которых обработка обратного квантования была выполнена модулем 505 обратного ортогонального преобразования. Модуль 507 памяти сохраняет восстановленные данные изображения на основе блок-за-блоком. Память 508 кадров сохраняет восстановленные данные изображения на основе кадр-за-кадром.
[0203] Модуль 512 определения типа картинки определяет, в качестве какого из типов картинки, а именно, I-картинки, B-картинки, и P-картинки, данные изображения ввода должны быть закодированы. Затем модуль 512 определения типа картинки генерирует информацию типа картинки. Блок 509 внутреннего предсказания генерирует внутренне предсказанные данные изображения текущего блока, который должен быть закодирован, выполняя внутреннее предсказание посредством использования восстановленных данных изображения в единицах блоков, сохраненных в памяти 507 блоков. Модуль 510 внешнего предсказания генерирует внешне предсказанные данные изображения текущего блока, который должен быть закодирован, выполняя внешнее предсказание посредством использования восстановленных данных изображения в единицах кадров, сохраненных в памяти 508 кадров, и вектора движения, полученного посредством обнаружения движения и т.п.
[0204] Коммутатор 513 выводит внутренне предсказанные данные изображения, сгенерированные модулем 509 внутреннего предсказания, к модулю 501 вычитания и модулю 506 суммирования в качестве предсказанных данных изображения текущего блока, если кодирование с внутренним предсказанием выполняют в отношении текущего блока. С другой стороны, коммутатор 513 выводит внешне предсказанные данные изображения, сгенерированные модулем 510 внешнего предсказания, к модулю 501 вычитания и модулю 506 суммирования в качестве предсказанных данных изображения текущего блока, если кодирование с внешним предсказанием выполняют в отношении текущего блока.
[0205] Модуль 514 вычисления кандидата предиктора вектора движения получает (выводит) кандидатов предиктора вектора движения в режиме обозначения предиктора вектора движения посредством использования вектора движения блоков, смежных с текущим блоком и т.п., и информации colPic, такой как информация вектора движения совместно расположенного блока, сохраненного в памяти 515 colPic. Затем модуль 514 вычисления кандидата предиктора вектора движения вычисляет количество доступных кандидатов предиктора, используя способ, описанный ниже. Далее, модуль 514 вычисления кандидата предиктора вектора движения назначает значения индекса предиктора вектора движения полученным кандидатам предиктора вектора движения. Затем модуль 514 вычисления кандидата предиктора вектора движения посылает кандидатов предиктора вектора движения и индексы предиктора вектора движения к модулю 511 управления внешним предсказанием. Модуль 514 вычисления кандидата предиктора вектора движения передает количество вычисленных доступных кандидатов предиктора к модулю 516 кодирования с переменной длиной кода.
[0206] Модуль 511 управления внешним предсказанием управляет модулем 510 внешнего предсказания, чтобы вынудить модуль 110 внешнего предсказания выполнить кодирование с внешним предсказанием посредством использования внешне предсказанного изображения, сгенерированного с использованием вектора движения, полученного посредством обнаружения движения. Далее, модуль 511 управления внешним предсказанием выбирает посредством использования способа, описанного ниже, кандидата предиктора вектора движения, наиболее подходящего для кодирования вектора движения, используемого для кодирования с внешним предсказанием. Затем модуль 511 управления внешним предсказанием посылает индекс предиктора вектора движения, соответствующий выбранному кандидату предиктора вектора движения, и информацию ошибки предсказания (разность векторов движения) к модулю 516 кодирования с переменной длиной кода. Кроме того, модуль 511 управления внешним предсказанием передает информацию colPic, включающую в себя информацию вектора движения текущего блока и т.п. к памяти 515 colPic.
[0207] Модуль 516 кодирования с переменной длиной кода выполняет обработку кодирования с переменной длиной кода в отношении данных ошибки предсказания, в отношении которых обработка квантования была выполнена, флага направления предсказания, информации типа картинки, и разности векторов движения, таким образом генерируя поток битов. Далее, модуль 516 кодирования с переменной длиной кода устанавливает размер списка кандидатов предиктора вектора движения равным количеству доступных кандидатов предиктора. Затем модуль 516 кодирования с переменной длиной кода кодирует с переменной длиной кода индекс предиктора вектора движения, используемый для кодирования вектора движения, назначая ему битовую последовательность согласно размеру списка кандидатов предиктора вектора движения.
[0208] Фиг. 29 является последовательностью операций, показывающей обрабатывающую операцию устройства кодирования движущихся картинок согласно варианту осуществления 1.
[0209] На этапе S501 модуль 511 управления внешним предсказанием определяет направление предсказания, индекс опорной картинки и вектор движения текущего блока, который должен быть закодирован, посредством обнаружения движения. Здесь, при обнаружении движения вычисляют значение разности, указывающее разность между текущим блоком, который должен быть закодирован в картинке, которая должна быть закодирована, и блоком на опорной картинке, и блок в опорной картинке, с которой значение разности является наименьшим, определяется как опорный блок. Затем вектор движения получают на основании позиции текущего блока, который должен быть закодирован, и позиция позиции опорного блока посредством использования способа для получения вектора движения, например. Далее, модуль 511 управления внешним предсказанием выполняет обнаружение движения в отношении каждой из опорных картинок в направлениях 0 и 1 предсказания, и определяет, выбрать ли направление 0 предсказания, направление 1 предсказания или двунаправленное предсказания, с использованием, например, следующего выражения для модели оптимизации R-D, или подобного.
[0210] Стоимость=D+λ×R (Выражение 3)
[0211] В выражении 3 D обозначает искажение кодирования, и например, сумма абсолютных разностей используются для этого, каждая из которых является абсолютной разностью между пиксельным значением, полученным посредством кодирования и декодирования текущего блока, используя предсказанное изображение, сгенерированное с использованием некоторого вектора движения и первоначального пиксельного значения текущего блока. R обозначает сгенерированный объем кода, и объем кода, необходимый для кодирования вектора движения, используемого для генерирования предсказанного изображения, используется для этого. Далее, λ обозначает неопределенный множитель Лагранжа.
[0212] На этапе S502 модуль 514 вычисления кандидата предиктора вектора движения получает (выводит) кандидатов предиктора вектора движения из блоков, смежных с текущим блоком и его совместно расположенного блока. Далее, модуль 514 вычисления кандидата предиктора вектора движения вычисляет размера списка кандидатов предиктора вектора движения согласно способу, описанному ниже.
[0213] Например, в случае как показано на фиг. 3, модуль 514 вычисления кандидата предиктора вектора движения выбирает векторы движения, которые имеют смежные блоки A, B, C, и D, в качестве кандидатов предиктора вектора движения текущего блока. Кроме того, модуль 514 вычисления кандидата предиктора вектора движения вычисляет вектор движения, например, который вычисляется посредством использования режима временного предсказания из вектора движения совместно расположенного блока, в качестве кандидата предиктора вектора движения.
[0214] Модуль 514 вычисления кандидата предиктора вектора движения назначает индексы предиктора вектора движения кандидатам предиктора вектора движения в направлениях 0 и 1 предсказания, как показано в (a) на фиг. 30 и (a) на фиг. 31. Затем модуль 514 вычисления кандидата предиктора вектора движения вычисляет списки кандидатов предиктора вектора движения, как показано в (b) на фиг. 30 и (b) на фиг. 31, и размеры списков кандидатов предиктора вектора движения посредством удаления недоступного кандидата предиктора и избыточного кандидата и добавляя новое дополнение кандидата посредством использования способа, описанного ниже.
[0215] Чем меньше значение индекса предиктора вектора движения, тем более короткий код назначают на индекс предиктора вектора движения. В частности, если значение индекса предиктора вектора движения является малым, объем информации, необходимой для индекса предиктора вектора движения, является малым. С другой стороны, если значение индекса предиктора вектора движения является большим, объем информации, необходимой для индекса предиктора вектора движения, является большим. Таким образом, эффективность кодирования увеличивается посредством назначения индекса предиктора вектора движения, имеющего малое значение, кандидату предиктора вектора движения, имеющему высокую вероятность стать предиктором вектора движения с высокой точностью.
[0216] Ввиду этого, модуль 514 вычисления кандидата предиктора вектора движения может измерять для каждого кандидата предиктора вектора движения количество раз, сколько кандидат предиктора вектора движения был выбран в качестве предиктора вектора движения, и назначать индекс предиктора вектора движения, имеющий малое значение, блоку, из которого получен кандидат предиктора вектора движения, чье количество раз, сколько этот кандидат был выбран, является большим, например. В частности, возможно рассматривать идентификацию предиктора вектора движения, выбранного в смежном блоке, и при кодировании текущего блока, назначая индекс предиктора вектора движения, имеющий малое значение, этому идентифицированному кандидату предиктора вектора движения.
[0217] Нужно отметить, что, если кандидат предиктора вектора движения не имеет информации вектора движения и т.п. (если кандидат является блоком, кодированным внутренним предсказанием, если кандидат является блоком, расположенным, например, вне границы картинки или вырезки, если кандидат является блоком, который еще не кодирован, или подобное), этот кандидат не может быть использован для кодирования.
[0218] В настоящем варианте осуществления кандидат, который не может быть использован в качестве кандидата предиктора вектора движения, упоминается как недоступный кандидат предиктора. Кандидат, который может быть использован в качестве кандидата предиктора вектора движения, упоминается как доступный кандидат предиктора. Далее, среди множества кандидатов предиктора вектора движения, кандидат, значение которого является таким же как у любого из других предикторов вектора движения, упоминается как избыточный кандидат.
[0219] В случае на Фиг. 3, смежный блок C является блоком, закодированным внутренним предсказанием, и таким образом, как предполагается, является недоступным кандидатом предиктора. Далее, предиктор sMvL0_D вектора движения в направлении 0 предсказания, сгенерированном из смежного блока D, имеет то же самое значение, как значение предиктора MvL0_A вектора движения в направлении 0 предсказания, сгенерированном из смежного блока A, и таким образом, как предполагается, является избыточным кандидатом.
[0220] На этапе S503 модуль 511 управления внешним предсказанием определяет значение индекса предиктора вектора движения, который должен использоваться для кодирования вектора движения в направлении X предсказания, посредством использования способа, описанного ниже.
[0221] На этапе S504 модуль 516 кодирования с переменной длиной кода кодирует с переменной длиной кода индексы предиктора вектора движения кандидатов предиктора вектора движения, которые должны использоваться для кодирования векторов движения в направлении X предсказания, назначая им битовые последовательности согласно размеру списка кандидатов предиктора вектора движения, как показано на фиг. 6.
[0222] В настоящем варианте осуществления, как показано в (a) на фиг. 30 и (a) на фиг. 31, “0” назначают в качестве значения индекса предиктора вектора движения, соответствующего смежному блоку A. "1" назначают в качестве значения индекса предиктора вектора движения, соответствующего смежному блоку B. "2" назначают в качестве значения индекса предиктора вектора движения, соответствующего совместно расположенному блоку. “3” назначают в качестве значения индекса предиктора вектора движения, соответствующего смежному блоку C. "4" назначают в качестве значения индекса предиктора вектора движения, соответствующего смежному блоку D.
[0223] Нужно отметить, что способ назначения индексов предиктора вектора движения не обязательно ограничен этим примером. Например, если новый кандидат добавляется посредством использования способа, описанного в варианте осуществления 1, или способа, описанного ниже, модуль 516 кодирования с переменной длиной кода может назначить малое значение кандидату предиктора вектора движения, который не был недавно добавлен, и большое значение - новому кандидату. В частности, модуль 516 кодирования с переменной длиной кода может предпочтительно назначить индекс предиктора вектора движения, имеющий малое значение, кандидату предиктора вектора движения, который не был недавно добавлен.
[0224] Далее, кандидаты предиктора вектора движения не обязательно ограничены, чтобы быть в позициях смежных блоков A, B, C, и D. Например, вектор смежного блока, расположенного на левом нижнем смежном блоке D, например, может использоваться в качестве кандидата предиктора вектора движения. Далее, векторы всех смежных блоков не обязательно должны использоваться в качестве кандидатов предиктора вектора движения. Например, векторы только смежных блоков A и B могут использоваться в качестве кандидатов предиктора вектора движения. Альтернативно, смежные блоки могут быть последовательно сканированы посредством использования, например, смежного блока А, если смежный блок D является недоступным кандидатом предиктора.
[0225] Далее в настоящем варианте осуществления, хотя модуль 516 кодирования с переменной длиной кода добавляет индекс предиктора вектора движения к потоку битов на этапе S504 на фиг. 29, индекс предиктора вектора движения не обязательно должен быть добавлен к потоку битов. Например, если размер списка кандидатов предиктора вектора движения равен 1, модуль 516 кодирования с переменной длиной кода может не добавлять индекс предиктора вектора движения к потоку битов. Соответственно, объем информации может быть уменьшен на этот индекс предиктора вектора движения.
[0226] Фиг. 32 является последовательностью операций, показывающей детально обработку на этапе S502 на фиг. 29. В частности, Фиг. 32 показывает способ для вычисления кандидатов предиктора вектора движения и размера списка кандидатов предиктора вектора движения. Нижеследующее представляет собой описание Фиг. 32.
[0227] На этапе S511 модуль 514 вычисления кандидата предиктора вектора движения определяет посредством использования способа, описанного ниже, является ли кандидат [N] блока предсказания доступным кандидатом предиктора. Затем модуль 514 вычисления кандидата предиктора вектора движения обновляет количество доступных кандидатов предиктора в соответствии с результатом определения.
[0228] Здесь N является значением индекса для обозначения каждого кандидата блока предсказания. В настоящем варианте осуществления N является одним из значений от 0 до 4. В частности, смежный блок А на фиг. 3 назначен на кандидата [0] блока предсказания. Смежный блок B на фиг. 3 назначен на кандидата [1] блока предсказания. Совместно расположенный блок назначен на кандидата [2] блока предсказания. Смежный блок C на фиг. 3 назначен на кандидата [3] блока предсказания. Смежный блок D на фиг. 3 назначен на кандидата [4] блока предсказания.
[0229] На этапе S512 модуль 514 вычисления кандидата предиктора вектора движения получает кандидата предиктора вектора движения в направлении X предсказания из кандидата [N] блока предсказания с использованием выражений 1 и 2 выше, и добавляет полученного кандидата к соответствующему одному из списков кандидатов предиктора вектора движения.
[0230] На этапе S513 модуль 514 вычисления кандидата предиктора вектора движения ищет и удаляет недоступного кандидата предиктора и избыточного кандидата из списков кандидатов предиктора вектора движения, как показано на фиг. 30 и 31.
[0231] На этапе S514 модуль 514 вычисления кандидата предиктора вектора движения добавляет нового кандидата к соответствующему одному из списков кандидатов предиктора вектора движения посредством использования способа, описанного в варианте осуществления 1, или способа, описанного ниже. Здесь, когда новый кандидат добавляется, модуль 514 вычисления кандидата предиктора вектора движения может повторно назначить значения индексов предиктора вектора движения так, чтобы предпочтительно назначить малый индекс предиктора вектора движения на кандидата предиктора вектора движения, который не был недавно добавлен. В частности, модуль 514 вычисления кандидата предиктора вектора движения может повторно назначить значения индексов предиктора вектора движения так, чтобы назначить индекс предиктора вектора движения, имеющий большое значение, новому кандидату. Соответственно, объем кодирования индексов предиктора вектора движения может быть уменьшен.
[0232] На этапе S515 модуль 514 вычисления кандидата предиктора вектора движения устанавливает размер списка кандидатов предиктора вектора движения равным количеству доступных кандидатов предиктора, вычисленному на этапе S511. В примерах на Фиг. 30 и 31, посредством использования способа, описанного ниже, “4”, вычисляется как количество доступных кандидатов предиктора в направлении 0 предсказания, и размер списка кандидатов предиктора вектора движения для направления 0 предсказания устанавливается равным “4”. Далее, “4” вычисляется как количество доступных кандидатов предиктора в направлении 1 предсказания, и размер списка кандидатов предиктора вектора движения для направления 1 предсказания устанавливается равным “4”.
[0233] Нужно отметить, что новый кандидат на этапе S514 является нулевым кандидатом, добавленным с использованием способа, описанного в варианте осуществления 1, или кандидатом, недавно добавленным к кандидатам предиктора вектора движения, используя способ, описанный ниже, если количество кандидатов предиктора вектора движения не достигло количества доступных кандидатов предиктора. Например, новый кандидат может быть предиктором вектора движения, сгенерированным из смежного блока, расположенного на левом нижнем смежном блоке D на фиг. 3. Новый кандидат может быть предиктором вектора движения, сгенерированным из блоков, соответствующих блокам A, B, C, и D смежным с совместно расположенным блоком, например. Далее, новый кандидат может быть предиктором вектора движения, вычисленным от в общей сложности векторов движения во всей плоскости картинки или некоторой области опорной картинки, например. Таким образом, эффективность кодирования может быть улучшена модулем 514 вычисления кандидата предиктора вектора движения, добавляющим нового предиктора вектора движения в качестве нового кандидата, если количество кандидатов предиктора вектора движения не достигло количества доступных кандидатов предиктора.
[0234] Фиг. 33 является последовательностью операций, показывающей детально обработку на этапе S511 на фиг. 32. В частности, Фиг. 33 показывает способ для определения, является ли кандидат [N] блока предсказания доступным кандидатом предиктора, и обновления количества доступных кандидатов предиктора. Нижеследующее представляет собой описание Фиг. 33.
[0235] На этапе S521 модуль 514 вычисления кандидата предиктора вектора движения определяет, является ли кандидат [N] блока предсказания (1) внутренне предсказанным, (2) расположенным вне границы вырезки или картинки, которая включает в себя текущий блок, который должен быть закодирован, или (3), еще не кодированным.
[0236] Здесь, если результатом определения на этапе S521 является «истина» (Да на S521), модуль 514 вычисления кандидата предиктора вектора движения устанавливает кандидата [N] блока предсказания в качестве недоступного кандидата предиктора на этапе S522. С другой стороны, если результатом определения на этапе S521 является «ложь» (Нет на S521), модуль 514 вычисления кандидата предиктора вектора движения устанавливает кандидата [N] блока предсказания в качестве доступного кандидата предиктора на этапе S523.
[0237] На этапе S524 модуль 514 вычисления кандидата предиктора вектора движения определяет, является ли кандидат [N] блока предсказания доступным кандидатом предиктора или совместно расположенным кандидатом блока. Здесь, если результатом определения на этапе S524 является «истина» (Да на S524), модуль 514 вычисления кандидата предиктора вектора движения добавляет 1 к количеству доступных кандидатов предиктора, и обновляет количество кандидатов предиктора вектора движения на этапе S525. С другой стороны, если результатом определения на этапе S524 является «ложь» (Нет на S524), модуль 514 вычисления кандидата предиктора вектора движения не обновляет количество доступных кандидатов предиктора.
[0238] Как описано выше, если кандидатом блока предсказания является совместно расположенный блок, модуль 514 вычисления кандидата предиктора вектора движения добавляет 1 к количеству доступных кандидатов предиктора, независимо от того, является ли совместно расположенный блок доступным кандидатом предиктора или недоступным кандидатом предиктора. Соответственно, даже если информация совместно расположенного блока потеряна из-за потери пакета или подобного, нет различия в количестве доступных кандидатов предиктора между устройством кодирования движущихся картинок и устройством декодирования движущихся картинок.
[0239] Размер списка кандидатов предиктора вектора движения устанавливается равным количество доступных кандидатов предиктора на этапе S515 на фиг. 32. Кроме того, на S504 на фиг. 29 размер списка кандидатов предиктора вектора движения используется для кодирования с переменной длиной кода индексов предиктора вектора движения. Соответственно, даже если информация опорной картинки, включающая в себя информацию совместно расположенного блока и т.п., потеряна, устройство 500 кодирования движущихся картинок может генерировать поток битов, из которого может быть успешно декодирован индекс предиктора вектора движения.
[0240] Фиг. 34 является последовательностью операций, показывающей детально обработку на этапе S514 на фиг. 32. В частности, Фиг. 34 показывает способ для добавления нового кандидата. Нижеследующее представляет собой описание Фиг. 34.
[0241] На этапе S531 модуль 514 вычисления кандидата предиктора вектора движения определяет, меньше ли количество кандидатов предиктора вектора движения, чем количество доступных кандидатов предиктора. В частности, модуль 514 вычисления кандидата предиктора вектора движения определяет, не достигло ли количество кандидатов предиктора вектора движения количества доступных кандидатов предиктора.
[0242] Здесь, если результатом определения на этапе S531 является «истина» (Да на S531), модуль 514 вычисления кандидата предиктора вектора движения определяет на этапе S532, имеется ли новый кандидат, который может быть добавлен к соответствующему одному из списков кандидатов предиктора вектора движения в качестве кандидата предиктора вектора движения. Здесь, если результатом определения на этапе S532 является «истина» (Да на S532), модуль 514 вычисления кандидата предиктора вектора движения назначает значение индекса предиктора вектора движения новому кандидату, и добавляет нового кандидата к соответствующему одному из списков кандидатов предиктора вектора движения на этапе S533. Кроме того, на этапе S534 модуль 514 вычисления кандидата предиктора вектора движения добавляет 1 к количеству кандидатов предиктора вектора движения.
[0243] С другой стороны, если результатом определения на этапе S531 или этапе S532 является «ложь» (Нет на S531 или S532), обработка добавления нового кандидата завершается. В частности, если количество кандидатов предиктора вектора движения достигло количества доступных кандидатов предиктора, или если нет никакого кандидата, обработка добавления нового кандидата завершается.
[0244] Фиг. 35 является последовательностью операций, показывающей детально обработку на этапе S503 на фиг. 29. В частности, Фиг. 35 показывает обработку относительно выбора кандидата предиктора вектора движения. Нижеследующее представляет собой описание Фиг. 35.
[0245] На этапе S541, в качестве инициализации, модуль 511 управления внешним предсказанием устанавливает индекс mvp_idx кандидата предиктора вектора движения в 0, и устанавливает наименьшую разность векторов движения равной максимальному значению.
[0246] На этапе S542 модуль 511 управления внешним предсказанием определяет, меньше ли значение индекса mvp_idx кандидата предиктора вектора движения, чем количество кандидатов предиктора вектора движения. В частности, модуль 511 управления внешним предсказанием определяет, были ли вычислены разности векторов движения всех кандидатов предиктора вектора движения.
[0247] Здесь, если еще остается кандидат предиктора вектора движения, для которого не было выполнено вычисление (Да на S542), модуль 511 управления внешним предсказанием вычисляет разность векторов движения, вычитая кандидата предиктора вектора движения из вектора, полученного в результате обнаружения движения (вектора результанта обнаружения движения) на этапе S543.
[0248] На этапе S544 модуль 511 управления внешним предсказанием определяет, имеет ли разность векторов движения, полученная на этапе S543, значение, меньшее, чем наименьшая разность векторов движения.
[0249] Здесь, если результатом определения на этапе S544 является «истина» (Да на S544), модуль 511 управления внешним предсказанием обновляет наименьшую разность векторов движения и значение индекса предиктора вектора движения на этапе S545. С другой стороны, если результатом определения на этапе S544 является «ложь» (Нет на S544), модуль 511 управления внешним предсказанием не обновляет наименьшую разность векторов движения и значение индекса предиктора вектора движения.
[0250] На этапе S546 модуль 511 управления внешним предсказанием обновляет индекс кандидата предиктора вектора движения, увеличивая его на +1, и возвращаясь назад на этап S542, модуль 511 управления внешним предсказанием определяет, присутствует ли следующий кандидат предиктора вектора движения.
[0251] С другой стороны, если определено на этапе S542, что разность векторов движения было вычислено для всех кандидатов предиктора вектора движения (Нет на S542), модуль 511 управления внешним предсказанием фиксирует на этапе S547 наименьшую разность векторов движения и индекс предиктора вектора движения, которые установлены последними.
[0252] Таким образом, согласно устройству 500 кодирования движущихся картинок согласно настоящему варианту осуществления размер списка кандидатов предиктора вектора движения, который должен использоваться, когда индекс предиктора вектора движения кодируется или декодируется, может быть вычислен посредством использования способа, независимого от информации опорной картинки, включающей в себя информацию совместно расположенного блока и т.п. Соответственно, устройство 500 кодирования движущихся картинок может улучшить устойчивость к ошибкам.
[0253] Более конкретно, устройство 500 кодирования движущихся картинок согласно настоящему варианту осуществления добавляет 1 к количеству доступных кандидатов предиктора, если кандидатом блока предсказания является совместно расположенный блок, независимо от того, является ли этот совместно расположенный блок доступным кандидатом предиктора. Затем устройство 500 кодирования движущихся картинок определяет битовую последовательность, которая должна быть назначена на индекс предиктора вектора движения, посредством использования количества доступных кандидатов предиктора, вычисленных таким образом. Соответственно, устройство 500 кодирования движущихся картинок может генерировать поток битов, из которого может быть успешно декодирован индекс предиктора вектора движения, даже если информация опорной картинки, включая информацию совместно расположенного блока, потеряна.
[0254] Далее, устройство 500 кодирования движущихся картинок согласно настоящему варианту осуществления может улучшить эффективность кодирования, добавляя нового кандидата, имеющего новый предиктор вектора движения в качестве кандидата предиктора вектора движения, если количество кандидатов предиктора вектора движения не достигло количества доступных кандидатов предиктора.
[0255] Нужно отметить, что в настоящем варианте осуществления устройство 500 кодирования движущихся картинок определяет битовую последовательность, которая должна быть назначена на индекс предиктора вектора движения, посредством использования количества доступных кандидатов предиктора, вычисляемых, всегда добавляя 1, если кандидатом блока предсказания является совместно расположенный блок, независимо от того, является ли этот совместно расположенный блок доступным кандидатом предиктора, настоящее изобретение не ограничено этим. Например, устройство 500 кодирования движущихся картинок может определить битовую последовательность, которая должна быть назначена на индекс предиктора вектора движения, посредством использования количество доступных кандидатов предиктора, вычисляемых, всегда добавляя 1 также в случае кандидата блока предсказания, отличного от совместно расположенного блока, на этапе S524 на фиг. 33. В частности, устройство 500 кодирования движущихся картинок может назначить битовую последовательность на индекс предиктора вектора движения посредством использования размера списка кандидатов предиктора вектора движения, установленного равным максимальному значению N количества кандидатов предиктора вектора движения. Другими словами, устройство кодирования движущихся картинок может предположить, что все кандидаты блока предсказания являются доступными кандидатами предиктора, фиксировать размер списка кандидатов предиктора вектора движения равным максимальному значению N количества кандидатов предиктора вектора движения, и кодировать индексы предиктора вектора движения.
[0256] Например, в настоящем варианте осуществления максимальное значение N количества кандидатов предиктора вектора движения равно 5 (смежный блок A, смежный блок B, совместно расположенный блок, смежный блок C, смежный блок D), и таким образом устройство 500 кодирования движущихся картинок может всегда установить размер списка кандидатов предиктора вектора движения равным 5, и кодировать индексы предиктора вектора движения. Далее, например, если максимальное значение N количества кандидатов предиктора вектора движения равно 4 (смежный блок A, смежный блок B, смежный блок C, смежный блок D), устройство 500 кодирования движущихся картинок может всегда установить размер списка кандидатов предиктора вектора движения равным 4, и кодировать индексы предиктора вектора движения.
[0257] Таким образом, устройство 500 кодирования движущихся картинок может определить размер списка кандидатов предиктора вектора движения согласно максимальному значению количества кандидатов предиктора вектора движения. Соответственно, возможно генерировать поток битов, из которого модуль 516 декодирования с переменной длиной кода устройства 500 декодирования движущихся картинок может декодировать индекс предиктора вектора движения в потоке битов, не обращаясь к информации смежных блоков или совместно расположенного блока, что приводит к сокращению объема обработки, которая должна быть выполнена модулем 516 декодирования с переменной длиной кода.
[0258] Хотя настоящий вариант осуществления описывает пример, в котором используется режим обозначения предиктора вектора движения, в котором кандидаты предиктора вектора движения генерируются из блоков, смежных с текущим блоком, который должен быть закодирован, и вектор движения текущего блока кодируется, настоящий вариант осуществления не обязательно ограничен этим. Например, прямой режим или режим пропуска могут использоваться. В прямом режиме или режиме пропуска разность векторов движения может не быть добавлена к потоку битов посредством выбора предиктора вектора движения из числа кандидатов предиктора вектора движения, созданных как показано в (b) на фиг. 30 и (b) на фиг. 31, и непосредственно генерируя предсказанное изображение посредством использования выбранного предиктора вектора движения в качестве вектора движения.
[0259] [ВАРИАНТ ОСУЩЕСТВЛЕНИЯ 6]
Настоящий вариант осуществления является модификацией устройства кодирования движущихся картинок согласно варианту осуществления 5 выше. Нижеследующее является подробным описанием устройства кодирования движущихся картинок согласно варианту осуществления 6.
[0260] Фиг. 36 является блок-схемой, показывающей конфигурацию устройства 600 кодирования движущихся картинок согласно варианту осуществления 6. Устройство 600 кодирования движущихся картинок генерирует поток битов, кодируя изображение на основе блок-за-блоком. Устройство 600 кодирования движущихся картинок включает в себя модуль 610 получения кандидата предиктора вектора движения, модуль 620 управления предсказанием, и модуль 630 кодирования.
[0261] Модуль 610 получения кандидата предиктора вектора движения соответствует модулю 514 вычисления кандидата предиктора вектора движения в варианте осуществления 5 выше. Модуль 610 получения кандидата предиктора вектора движения получает (выводит) кандидатов предиктора вектора движения. Затем модуль 610 получения кандидата предиктора вектора движения генерирует списки кандидатов предиктора вектора движения, в которых каждый полученный (выведенный) кандидат предиктора вектора движения ассоциирован с индексом для идентификации кандидата предиктора вектора движения, например.
[0262] Как показано на фиг. 36, модуль 610 получения кандидата предиктора вектора движения включает в себя модуль 611 определения максимального количества, первый модуль 612 получения, модуль 613 идентификации, модуль 614 определения и второй модуль 615 получения.
[0263] Модуль 611 определения максимального количества определяет максимальное количество кандидатов предиктора вектора движения. В частности, модуль 611 определения максимального количества определяет максимальное значение N количества кандидатов блоков предсказания.
[0264] Например, модуль 611 определения максимального количества определяет максимальное количество кандидатов предиктора вектора движения на основании признаков входной последовательности изображения (последовательность, картинки, вырезки или блоки). Далее, например, модуль 611 определения максимального количества может определить заранее определенное количество как максимальное количество кандидатов предиктора вектора движения.
[0265] Первый модуль 612 получения получает (выводит) каждого первого кандидата предиктора вектора движения на основании вектора движения, используемого для кодирования блока, пространственно или временно смежного с текущим блоком, который должен быть закодирован. Здесь, первый модуль 612 получения получает один или более первых кандидатов предиктора вектора движения таким образом, что количество первых кандидатов предиктора вектора движения не превышает максимальное количество. Затем например, первый модуль 612 получения регистрирует, в списках кандидатов предиктора вектора движения одного или более первых кандидатов предиктора вектора движения, полученных таким образом, каждый в ассоциации с индексом предиктора вектора движения.
[0266] Нужно отметить, что, например, первый модуль 612 получения может получать, в качестве первого кандидата предиктора вектора движения, вектор движения, используемый для кодирования блока, который является блоком, пространственно смежным с текущим блоком, который должен быть закодирован, и не является блоком, который является недоступным кандидатом предиктора. Блок, который является недоступным кандидатом предиктора, является блоком, закодированным внутренним предсказанием, блоком, расположенным вне границы вырезки или картинки, которая включает в себя текущий блок, который должен быть закодирован, или блоком, который еще не кодирован. Соответственно, первый кандидат предиктора вектора движения может быть получен из блока, подходящего для получения кандидата предиктора вектора движения.
[0267] Модуль 613 идентификации идентифицирует первого кандидата предиктора вектора движения (избыточный кандидат), имеющего тот же самый вектор движения как таковой из любого другого первого кандидата предиктора вектора движения, если множество первых кандидатов предиктора вектора движения получено. Затем модуль 613 идентификации удаляет идентифицированного избыточного кандидата из соответствующего одного из списков кандидатов предиктора вектора движения.
[0268] Модуль 614 определения определяет, меньше ли количество первых кандидатов предиктора вектора движения, чем определенное максимальное количество. Здесь, модуль 614 определения определяет, меньше ли количество первых кандидатов предиктора вектора движения, исключая идентифицированного избыточного первого кандидата предиктора вектора движения, чем это определенное максимальное количество.
[0269] Если определено, что количество первых кандидатов предиктора вектора движения меньше, чем определенное максимальное количество, второй модуль 615 получения получает один или более вторых кандидатов предиктора вектора движения, каждый имеющий заранее определенный вектор в качестве вектора движения. В частности, второй модуль 615 получения получает вторых кандидатов предиктора вектора движения таким образом, что сумма количества первых кандидатов предиктора вектора движения и количества вторых кандидатов предиктора вектора движения не превышает максимальное количество. Здесь, второй модуль 615 получения получает вторых кандидатов предиктора вектора движения таким образом, что сумма количества первых кандидатов предиктора вектора движения, исключая избыточного кандидата, и количество вторых кандидатов предиктора вектора движения не превышает максимальное количество.
[0270] Заранее определенный вектор может быть нулевым вектором, как в вышеупомянутом варианте осуществления 1 выше, например. Нужно отметить, что заранее определенный вектор не обязательно должен быть нулевым вектором.
[0271] Затем второй модуль 615 получения регистрирует, в списках кандидатов предиктора вектора движения, один или более вторых кандидатов предиктора вектора движения, полученных таким образом, каждый в ассоциации с индексом предиктора вектора движения, например. В это время второй модуль 615 получения может зарегистрировать вторых кандидатов предиктора вектора движения в соответствующем одном из списков кандидатов предиктора вектора движения таким образом, что индекс предиктора вектора движения, имеющий значение, меньшее чем таковой для вторых кандидатов предиктора вектора движения, назначается на каждого первого кандидата предиктора вектора движения. Соответственно, если имеется высокая вероятность, что первый кандидат предиктора вектора движения будет выбран в качестве кандидата предиктора вектора движения, который должен использоваться для кодирования, а не вторые кандидаты предиктора вектора движения, устройство 600 кодирования движущихся картинок может уменьшить объем кода и улучшить эффективность кодирования.
[0272] Нужно отметить, что второй модуль 615 получения не обязательно должен получить один или более вторых кандидатов предиктора вектора движения таким образом, что сумма количества первых кандидатов предиктора вектора движения и количества вторых кандидатов предиктора вектора движения будет такой же как определенное максимальное количество. Если сумма количества первых кандидатов предиктора вектора движения и количества вторых кандидатов предиктора вектора движения меньше, чем определенное максимальное количество, может быть значение индекса предиктора вектора движения, которое не ассоциировано с кандидатом предиктора вектора движения, например.
[0273] Модуль 620 управления предсказанием выбирает предиктора вектора движения, который должен использоваться для кодирования текущего блока, который должен быть закодирован, из числа одного или более первых кандидатов предиктора вектора движения и одного или более вторых кандидатов предиктора вектора движения. В частности, модуль 620 управления предсказанием выбирает из списков кандидатов предиктора вектора движения предиктор вектора движения, который должен использоваться для кодирования текущего блока.
[0274] Модуль 630 кодирования кодирует индекс (индекс предиктора вектора движения) для идентификации выбранного кандидата предиктора вектора движения, посредством использования определенного максимального количества. В частности, модуль 630 кодирования кодирует с переменной длиной кода битовую последовательность, назначенную на значение индекса выбранного кандидата предиктора вектора движения, как показано на фиг. 6. Кроме того, модуль 630 кодирования добавляет закодированный индекс к потоку битов.
[0275] Здесь, модуль 630 кодирования может дополнительно добавить информацию, указывающую максимальное количество, определенное модулем 611 определения максимального количества к потоку битов. В частности, модуль 630 кодирования может также записать информацию, указывающую максимальное количество, например, в заголовок вырезки или подобное. Соответственно, максимальное количество может быть изменено в подходящем блоке, что может улучшить эффективность кодирования.
[0276] Нужно отметить, что модуль 630 кодирования не обязательно должен добавить информацию, указывающую максимальное количество, к потоку битов. Например, если максимальное количество ранее определено согласно стандарту, или если максимальное количество является таким как значение по умолчанию, модуль 630 кодирования не должен добавлять информацию, указывающую максимальное количество, к потоку битов.
[0277] Ниже приводится описание различных операций устройства 600 кодирования движущихся картинок, составленного как описано выше.
[0278] Фиг. 37 является последовательностью операций, показывающей обрабатывающую операцию устройства 600 кодирования движущихся картинок согласно варианту осуществления 6.
[0279] Сначала модуль 611 определения максимального количества определяет максимальное количество кандидатов предиктора вектора движения (S601). Первый модуль 612 получения получает один или более первых кандидатов предиктора вектора движения (S602). Модуль 613 идентификации идентифицирует первого кандидата предиктора вектора движения (избыточный кандидат), имеющего тот же вектор движения как таковой любого другого первого кандидата предиктора вектора движения, если множество первых кандидатов предиктора вектора движения получено (S603).
[0280] Модуль 614 определения определяет, меньше ли количество первых кандидатов предиктора вектора движения, исключая избыточного кандидата, чем определенное максимальное количество (S604). Здесь, если определено, что количество первых кандидатов предиктора вектора движения, исключая избыточного кандидата, меньше, чем определенное максимальное количество (Да на S604), второй модуль 615 получения получает одного или более вторых кандидатов предиктора вектора движения, каждый имеющий заранее определенный вектор в качестве вектора движения (S605). С другой стороны, если не определено, что количество первых кандидатов предиктора вектора движения, исключая избыточного кандидата, меньше, чем определенное максимальное количество (Нет на S604), второй модуль 615 получения не получает второго кандидата предиктора вектора движения. Эти этапы S604 и S605 соответствуют этапу S514 в варианте осуществления 5.
[0281] Модуль 620 управления предсказанием выбирает предиктора вектора движения, который должен использоваться для кодирования текущего блока, который должен быть закодирован, из числа одного или более первых кандидатов предиктора вектора движения и одного или более второго кандидата предиктора вектора движения (S606). Например, модуль 620 управления предсказанием выбирает предиктора вектора движения, с которым разность векторов движения является наименьшей, из списков кандидатов предиктора вектора движения, как в варианте осуществления 1.
[0282] Модуль 630 кодирования кодирует индекс для идентификации выбранного кандидата предиктора вектора движения, используя определенное максимальное количество (S607). Кроме того, модуль 630 кодирования добавляет закодированный индекс к потоку битов.
[0283] Как описано выше, согласно устройству 600 кодирования движущихся картинок согласно настоящему варианту осуществления, один или более вторых кандидатов предиктора вектора движения, каждый имеющий заранее определенный вектор в качестве вектора движения, может быть получен. Таким образом, устройство 600 кодирования движущихся картинок может получить кандидата предиктора вектора движения, который имеет, например, вектор движения статической области или подобное, в качестве второго кандидата предиктора вектора движения. В частности, устройство 600 кодирования движущихся картинок может эффективно кодировать текущий блок, который должен быть закодирован, который имеет заранее определенное движение, и может улучшить эффективность кодирования.
[0284] Кроме того, согласно устройству 600 кодирования движущихся картинок согласно настоящему варианту осуществления, индекс для идентификации кандидата предиктора вектора движения может быть закодирован посредством использования определенного максимального количества. В частности, индекс может быть закодирован без зависимости от количества кандидатов предиктора вектора движения, фактически полученных. Таким образом, даже если информация, необходимая для получения кандидата предиктора вектора движения (например, информация совместно расположенного блока и т.п.), потеряна, устройство декодирования может декодировать индекс, и устойчивость к ошибкам может быть улучшена. Далее, устройство декодирования может декодировать индекс без зависимости от количества кандидатов предиктора вектора движения, фактически полученных. В частности, устройство декодирования может декодировать индекс, не ожидая получения (выведения) кандидата предиктора вектора движения. Другими словами, возможно генерировать поток битов, для которого получение кандидата предиктора вектора движения и декодирование индекса могут быть выполнены параллельно.
[0285] Кроме того, согласно устройству 600 кодирования движущихся картинок согласно настоящему варианту осуществления, один или более вторых кандидатов предиктора вектора движения могут быть получены, если определено, что количество первых кандидатов предиктора вектора движения меньше, чем максимальное количество. Таким образом, возможно увеличить число кандидатов предиктора вектора движения в диапазоне, который не превышает максимальное количество, и улучшить эффективность кодирования.
[0286] Кроме того, согласно устройству 600 кодирования движущихся картинок согласно настоящему варианту осуществления один или более вторых кандидатов предиктора вектора движения могут быть получены согласно количеству первых кандидатов предиктора вектора движения, исключая избыточного первого кандидата предиктора вектора движения. В результате число вторых кандидатов предиктора вектора движения может быть увеличено, и типы выбираемых векторов движения в качестве кандидатов предиктора вектора движения могут быть увеличены. Таким образом, возможно дополнительно улучшить эффективность кодирования.
[0287] Нужно отметить, что в настоящем варианте осуществления, хотя устройство 600 кодирования движущихся картинок включает в себя модуль 613 идентификации, устройство 600 кодирования движущихся картинок не обязательно должно включать в себя модуль 613 идентификации. В частности, этап S603 не обязательно должен быть включен в последовательность операций, показанную на фиг. 37. Даже в таком случае, устройство 600 кодирования движущихся картинок может закодировать индекс для идентификации кандидата предиктора вектора движения, используя определенное максимальное количество, и таким образом устойчивость к ошибкам может быть улучшена.
[0288] Далее, хотя в настоящем варианте осуществления первый модуль 612 получения получает первых кандидатов предиктора вектора движения, и после этого модуль 613 идентификации идентифицирует избыточного кандидата, как показано на фиг. 37, обработка не обязательно должна быть выполнена последовательно таким образом. Например, в процессе получения первых кандидатов предиктора вектора движения первый модуль 612 получения может идентифицировать избыточного кандидата и получить первых кандидатов предиктора вектора движения таким образом, что идентифицированный избыточный кандидат не включается в первые кандидаты предиктора вектора движения. В частности, первый модуль 612 получения может получить кандидата предиктора вектора движения, который не является таким же как вектор движения любого первого кандидата предиктора вектора движения, который был уже получен, в качестве первого кандидата предиктора вектора движения. Более конкретно, например, когда кандидат предиктора вектора движения, основанный на левом смежном блоке, уже получен в качестве первого кандидата предиктора вектора движения, если кандидат предиктора вектора движения, основанный на верхнем смежном блоке, не является таким же как кандидат предиктора вектора движения, основанный на левом смежном блоке, первый модуль 612 получения может получить кандидата предиктора вектора движения на основании верхнего смежного блока в качестве первого кандидата предиктора вектора движения. Это позволяет первому модулю 612 получения исключить из первых кандидатов предиктора вектора движения кандидата предиктора вектора движения, имеющего такой же вектор движения как вектор движения любого из первых кандидатов предиктора вектора движения, которые были уже получены. В результате устройство 600 кодирования движущихся картинок может увеличить число вторых кандидатов предиктора вектора движения, и увеличить тип векторов движения, выбираемых в качестве кандидатов предиктора вектора движения. Таким образом, возможно далее улучшить эффективность кодирования.
[0289] [ВАРИАНТ ОСУЩЕСТВЛЕНИЯ 7]
Настоящий вариант осуществления описывает подробно способ для получения размера списка кандидатов предиктора вектора движения, отличающийся от способа в варианте осуществления 2.
[0290] Фиг. 38 является блок-схемой, показывающей конфигурацию устройства 700 декодирования движущихся картинок согласно варианту осуществления 4.
[0291] Как показано на фиг. 38, устройство 700 декодирования движущихся картинок включает в себя модуль 701 декодирования с переменной длиной кода, модуль 702 обратного квантования, модуль 703 обратного ортогонального преобразования, модуль 704 суммирования, модуль 705 памяти, память 706 кадров, модуль 707 внутреннего предсказания, модуль 708 внешнего предсказания, модуль 709 управления внешним предсказанием, коммутатор 710, модуль 711 вычисления кандидата предиктора вектора движения, и память 712 colPic.
[0292] Модуль 701 декодирования с переменной длиной кода выполняет обработку декодирования с переменной длиной кода в отношении потока битов ввода, и генерирует информацию типа картинки, флаг направления предсказания, коэффициент квантования, и разность векторов движения. Далее, модуль 701 декодирования с переменной длиной кода выполняет обработку декодирования с переменной длиной кода в отношении индексов предиктора вектора движения посредством использования количества доступных кандидатов предиктора, описанных ниже.
[0293] Модуль 702 обратного квантования выполняет обработку обратного квантования в отношении коэффициента квантования, полученного обработкой декодирования с переменной длиной кода. Модуль 703 обратного ортогонального преобразования преобразовывает ортогональный коэффициент преобразования, полученный обработкой обратного квантования, из частотной области в область изображения, чтобы генерировать данные ошибки предсказания. Модуль 705 памяти сохраняет декодированные данные изображения, сгенерированные посредством суммирования данных ошибки предсказания и предсказанных данных изображения на основе блок-за-блоком. Память 706 кадров сохраняет данные изображения на основе кадр-за-кадром.
[0294] Блок 707 внутреннего предсказания генерирует предсказанные данные изображения текущего блока, который должен быть декодирован, выполняя внутреннее предсказание посредством использования данных изображения в единицах блоков, сохраненных в памяти 705 блоков. Модуль 708 внешнего предсказания генерирует предсказанные данные изображения текущего блока, который должен быть декодирован, выполняя внешнее предсказание посредством использования данных изображения в единицах кадров, сохраненных в памяти 706 кадров.
[0295] Если декодирование с внутренним предсказанием выполняют в отношении текущего блока, коммутатор 710 выводит внутренне предсказанные данные изображения, сгенерированные модулем 707 внутреннего предсказания, к модулю 704 суммирования в качестве предсказанных данных изображения текущего блока. Напротив, если декодирование с внешним предсказанием выполняют в отношении текущего блока, коммутатор 710 выводит внешне предсказанные данные изображения, сгенерированные модулем 708 внешнего предсказания, к модулю 704 суммирования в качестве предсказанных данных изображения текущего блока.
[0296] Используя, например, векторы движения блоков, смежных с текущим блоком, который должен быть декодирован, и информацию colPic, такую как информация вектора движения совместно расположенного блока, сохраненного в памяти 712 colPic, модуль 711 вычисления кандидата предиктора вектора движения получает кандидатов предиктора вектора движения в режиме обозначения предиктора вектора движения посредством использования способа, описанного ниже. Далее, модуль 711 вычисления кандидата предиктора вектора движения назначает значение индекса предиктора вектора движения каждому полученному кандидату предиктора вектора движения. Затем модуль 711 вычисления кандидата предиктора вектора движения посылает кандидатов предиктора вектора движения и индексы предиктора вектора движения к модулю 709 управления внешним предсказанием.
[0297] Модуль 709 управления внешним предсказанием выбирает, из числа кандидатов предиктора вектора движения, предиктора вектора движения, который должен использоваться для внешнего предсказания, на основании декодированного индекса предиктора вектора движения. Затем модуль 709 управления внешним предсказанием вычисляет вектор движения текущего блока, на основании предиктора вектора движения и разности векторов движения. Затем модуль 709 управления внешним предсказанием вынуждает модуль 708 внешнего предсказания генерировать внешне предсказанное изображение посредством использования вычисленного вектора движения. Далее, модуль 709 управления внешним предсказанием передает информацию colPic, включая информацию вектора движения текущего блока и т.п., к памяти 712 colPic.
[0298] Наконец, модуль 704 суммирования генерирует декодированные данные изображения, суммируя предсказанные данные изображения и данные ошибки предсказания.
[0299] Фиг. 39 является последовательностью операций, показывающей обрабатывающую операцию устройства декодирования движущихся картинок согласно варианту осуществления 2.
[0300] На этапе S701 модуль 701 декодирования с переменной длиной кода декодирует флаг направления предсказания и индекс опорной картинки. Затем значение направления X предсказания определяется согласно декодированному флагу направления предсказания, и выполняется обработка следующих этапов S702-S705.
[0301] На этапе S702 модуль 711 вычисления кандидата предиктора вектора движения вычисляет количество доступных кандидатов предиктора посредством использования способов, описанных в вариантах осуществления 1 и 2, или способа, описанного ниже. Затем модуль 711 вычисления кандидата предиктора вектора движения устанавливает размер списка кандидатов предиктора вектора движения равным вычисленному количеству доступных кандидатов предиктора.
[0302] На этапе S703 модуль 701 декодирования с переменной длиной кода декодирует с переменной длиной кода индекс предиктора вектора движения в потоке битов посредством использования вычисленного размера списка кандидатов предиктора вектора движения. На этапе S704 модуль 711 вычисления кандидата предиктора вектора движения генерирует кандидатов предиктора вектора движения из блоков, смежных с текущим блоком и совместно расположенного блока, посредством использования способа, описанного ниже. На этапе S705 модуль 709 управления внешним предсказанием добавляет декодированную разность векторов движения к кандидату предиктора вектора движения, обозначенного декодированным индексом предиктора вектора движения, чтобы вычислить вектор движения. Затем модуль 709 управления внешним предсказанием вынуждает модуль 708 внешнего предсказания генерировать внешне предсказанное изображение посредством использования вычисленного вектора движения.
[0303] Нужно отметить, что, если размер списка кандидатов предиктора вектора движения, вычисленный на этапе S702, равен “1”, можно считать, что индекс предиктора вектора движения равен 0, без декодирования.
[0304] Фиг. 40 является последовательностью операций, показывающей детально обработку на этапе S702 на фиг. 39. В частности, Фиг. 40 показывает способ для определения, является ли кандидат [N] блока предсказания доступным кандидатом предиктора, и вычисления количества доступных кандидатов предиктора. Нижеследующее представляет собой описание Фиг. 40.
[0305] На этапе S711 модуль 711 вычисления кандидата предиктора вектора движения определяет, является ли кандидат [N] блока предсказания: (1) декодированным внутренним предсказанием, (2) расположенным вне границы вырезки или картинки, которая включает в себя текущий блок, который должен быть декодирован, или (3) еще не декодированным.
[0306] Здесь, если результатом определения на этапе S711 является «истина» (Да на S711), модуль 711 вычисления кандидата предиктора вектора движения устанавливает кандидат [N] блока предсказания в качестве недоступного кандидата предиктора на этапе S712. С другой стороны, если результатом определения на этапе S711 является «ложь» (Нет на S711), модуль 711 вычисления кандидата предиктора вектора движения устанавливает кандидат [N] блока предсказания в качестве доступного кандидата предиктора на этапе S713.
[0307] На этапе S714 модуль 711 вычисления кандидата предиктора вектора движения определяет, является ли кандидат [N] блока предсказания доступным кандидатом предиктора или кандидатом совместно расположенного блока. Здесь, если результатом определения на этапе S714 является «истина» (Да на S714), модуль 711 вычисления кандидата предиктора вектора движения добавляет 1 к количеству доступных кандидатов предиктора, и обновляет значение на этапе S715. С другой стороны, если результатом определения на этапе S714 является «ложь» (Нет на S714), модуль 711 вычисления кандидата предиктора вектора движения не обновляет количество доступных кандидатов предиктора.
[0308] Как описано выше, если кандидат блока предсказания является совместно расположенный блок, модуль 711 вычисления кандидата предиктора вектора движения добавляет 1 к количеству доступных кандидатов предиктора, независимо от того, является ли совместно расположенный блок доступным кандидатом предиктора или недоступным кандидатом предиктора. Соответственно, даже если информация совместно расположенного блока потеряна из-за потери пакета или подобного, нет различия в количестве доступных кандидатов предиктора между устройством кодирования движущихся картинок и устройством декодирования движущихся картинок.
[0309] Размер списка кандидатов предиктора вектора движения устанавливается равным количеству доступных кандидатов предиктора на этапе S702 на фиг. 39. Кроме того, на этапе S703 на фиг. 39 размер списка кандидатов предиктора вектора движения используется для декодирования с переменной длиной кода индексов предиктора вектора движения. Соответственно, даже если информация опорной картинки, включая информацию совместно расположенного блока или подобное, потеряна, устройство 700 декодирования движущихся картинок может успешно декодировать индексы предиктора вектора движения.
[0310] Фиг. 41 является последовательностью операций, показывающей детально обработку на этапе S704 на фиг. 39. В частности, Фиг. 41 показывает способ для вычисления кандидатов предиктора вектора движения. Нижеследующее представляет собой описание Фиг. 41.
[0311] На этапе S721 модуль 711 вычисления кандидата предиктора вектора движения получает кандидата предиктора вектора движения в направлении X предсказания из кандидата [N] блока предсказания, используя выражения 1 и 2 выше, и добавляет полученного кандидата к соответствующему одному из списков кандидатов предиктора вектора движения.
[0312] На этапе S722 модуль 711 вычисления кандидата предиктора вектора движения ищет и удаляет недоступного кандидата предиктора и избыточного кандидата из списков кандидатов предиктора вектора движения, как показано на фиг. 30 и 31.
[0313] На этапе S723 модуль 711 вычисления кандидата предиктора вектора движения добавляет нового кандидата к соответствующему одному из списков кандидатов предиктора вектора движения, используя тот же самый способ, как на фиг. 34.
[0314] Фиг. 42 показывает пример синтаксиса, используемого, когда индекс предиктора вектора движения добавляется к потоку битов. На фиг. 42 inter_pred_flag указывает флаг направления предсказания, и mvp_idx указывает индекс предиктора вектора движения. NumMVPCand указывает размер списка кандидатов предиктора вектора движения, и этот размер устанавливается равным количеству доступных кандидатов предиктора, вычисленных в потоке обработки на фиг. 40 в настоящем варианте осуществления.
[0315] Как описано выше, согласно устройству 700 декодирования движущихся картинок согласно настоящему варианту осуществления, размер списка кандидатов предиктора вектора движения, который должен использоваться, когда индекс предиктора вектора движения кодируется или декодируется, может быть вычислен посредством использования способа, независимого от информации опорной картинки, включая информацию совместно расположенного блока и т.п. Соответственно, устройство 700 декодирования движущихся картинок может подходящим образом декодировать поток битов, улучшая устойчивость к ошибкам.
[0316] Более конкретно, устройство 700 декодирования движущихся картинок согласно настоящему варианту осуществления всегда добавляет 1 к количеству доступных кандидатов предиктора, если кандидатом блока предсказания является совместно расположенный блок, независимо от того, является ли этот совместно расположенный блок доступным кандидатом предиктора. Затем устройство 700 декодирования движущихся картинок определяет битовые последовательности, которые должны быть назначены на индексы предиктора вектора движения посредством использования количества доступных кандидатов предиктора, вычисленных таким образом. Соответственно, даже если информация опорной картинки, включая информацию совместно расположенного блока, потеряна, устройство 700 декодирования движущихся картинок может успешно декодировать индекс предиктора вектора движения.
[0317] Далее, если количество кандидатов предиктора вектора движения не достигло количества доступных кандидатов предиктора, устройство 700 декодирования движущихся картинок согласно настоящему варианту осуществления может подходящим образом декодировать поток битов, для которого эффективность кодирования была улучшена посредством добавления нового кандидата, имеющего нового предиктора вектора движения в качестве кандидата предиктора вектора движения.
[0318] Нужно отметить, что В настоящем варианте осуществления, хотя устройство 700 декодирования движущихся картинок определяет битовые последовательности, которые должны быть назначены на индексы предиктора вектора движения посредством использования количества доступных кандидатов предиктора, вычисленных посредством добавления всегда 1, когда кандидатом блока предсказания является совместно расположенный блок, независимо от того, является ли совместно расположенный блок доступным кандидатом предиктора, настоящее изобретение не ограничено этим. Например, устройство 700 декодирования движущихся картинок может определить битовые последовательности, которые должны быть назначены на индексы предиктора вектора движения, посредством использования количества доступных кандидатов предиктора, вычисленных, также всегда добавляя 1 в случае кандидата блока предсказания, отличного от совместно расположенного блока на этапе S714 на фиг. 40. В частности, устройство 700 декодирования движущихся картинок может назначить битовую последовательность на индекс предиктора вектора движения посредством использования размера списка кандидатов предиктора вектора движения, установленного равным максимальному значению N количества кандидатов предиктора вектора движения. Другими словами, предполагая, что все кандидаты блока предсказания являются доступными кандидатами предиктора, устройство декодирования движущихся картинок может установить размер списка кандидатов предиктора вектора движения равным максимальному значению N количества кандидатов предиктора вектора движения, и декодировать индексы предиктора вектора движения.
[0319] Например, в настоящем варианте осуществления, так как максимальное значение N количества кандидатов предиктора вектора движения равно 5 (смежный блок A, смежный блок B, совместно расположенный блок, смежный блок C, смежный блок D), устройство 700 декодирования движущихся картинок может всегда устанавливать размер списка кандидатов предиктора вектора движения равным 5, и декодировать индексы предиктора вектора движения. Соответственно, модуль 701 декодирования с переменной длиной кода устройства 700 декодирования движущихся картинок может декодировать индекс предиктора вектора движения в потоке битов, не обращаясь к информации смежных блоков или совместно расположенного блока. В результате, например, обработка этапов S714 и S715 на фиг. 40, например, может быть пропущена, и таким образом объем обработки, которая должна быть выполнена модулем 701 декодирования с переменной длиной кода, может быть уменьшена.
[0320] Фиг. 43 показывает пример синтаксиса, используемого, когда размер списка кандидатов предиктора вектора движения установлен равным максимальному значению количества кандидатов предиктора вектора движения. Как показано на фиг. 43, NumMVPCand может быть удален из синтаксиса, если размер списка кандидатов предиктора вектора движения установлен равным максимальному значению количества кандидатов предиктора вектора движения.
[0321] [ВАРИАНТ ОСУЩЕСТВЛЕНИЯ 8]
Настоящий вариант осуществления является модификацией устройства декодирования движущихся картинок согласно варианту осуществления 7 выше. Нижеследующее является конкретным описанием устройства декодирования движущихся картинок согласно варианту осуществления 8.
[0322] Фиг. 44 является блок-схемой, показывающей конфигурацию устройства 800 декодирования движущихся картинок согласно варианту осуществления 8. Устройство 800 декодирования движущихся картинок декодирует закодированное изображение, включенное в поток битов, на основе блок-за-блоком. В частности, устройство 800 декодирования движущихся картинок декодирует на основе блок-за-блоком закодированное изображение, включенное в поток битов, сгенерированный устройством 600 кодирования движущихся картинок согласно варианту осуществления 6, например. Устройство 800 декодирования движущихся картинок включает в себя модуль 810 получения кандидата предиктора вектора движения, модуль 820 декодирования и модуль 830 управления предсказанием.
[0323] Модуль 810 получения кандидата предиктора вектора движения соответствует модулю 711 вычисления кандидата предиктора вектора движения в варианте осуществления 7 выше. Модуль 810 получения кандидата предиктора вектора движения получает (выводит) кандидатов предиктора вектора движения. Затем модуль 810 получения кандидата предиктора вектора движения генерирует списки кандидатов предиктора вектора движения, в которых каждый полученный кандидат предиктора вектора движения ассоциирован с индексом для идентификации кандидата предиктора вектора движения (индекс предиктора вектора движения), например.
[0324] Как показано на фиг. 44, модуль 810 получения кандидата предиктора вектора движения включает в себя модуль 811 определения максимального количества, первый модуль 812 получения, модуль 813 идентификации, модуль 814 определения, и второй модуль 815 получения.
[0325] Модуль 811 определения максимального количества определяет максимальное количество кандидатов предиктора вектора движения. В частности, модуль 811 определения максимального количества определяет максимальное значение N количества кандидатов блоков предсказания.
[0326] Например, модуль 811 определения максимального количества может определить максимальное количество кандидатов предиктора вектора движения посредством использования того же способа, который используется модулем 611 определения максимального количества в варианте осуществления 6. Далее, например, модуль 811 определения максимального количества может определить максимальное количество на основании информации, указывающей максимальное количество, добавленное к потоку битов. Соответственно, устройство 800 декодирования движущихся картинок может декодировать изображение, закодированное посредством изменения максимального количества в подходящем модуле.
[0327] Нужно отметить, что здесь, хотя модуль 811 определения максимального количества включен в модуль 810 получения кандидата предиктора вектора движения, модуль 811 определения максимального количества может быть включен в модуль 820 декодирования.
[0328] Первый модуль 812 получения получает один или более первых кандидатов предиктора вектора движения, как с первым блоком 612 получения в варианте осуществления 6. В частности, первый модуль 812 получения получает каждые первые кандидаты предиктора вектора движения на основании вектора движения, используемого для декодирования блока, пространственно или временно смежного с текущим блоком, который должен быть декодирован. Затем например, первый модуль 812 получения регистрирует, в списках кандидатов предиктора вектора движения, один или более первых кандидатов предиктора вектора движения, полученных таким образом, каждый в ассоциации с индексом предиктора вектора движения.
[0329] Нужно отметить, что первый модуль 812 получения может получать, в качестве первого кандидата предиктора вектора движения, вектор движения, используемый для декодирования блока, который пространственно смежен с текущим блоком, который должен быть декодирован, и не является недоступным кандидатом предиктора, например. Соответственно, первый кандидат предиктора вектора движения может быть получен из блока, подходящего для получения кандидата предиктора вектора движения.
[0330] Модуль 813 идентификации идентифицирует первого кандидата предиктора вектора движения (избыточный кандидат), имеющего тот же вектор движения, как таковой любого другого первого кандидата предиктора вектора движения, если множество первых кандидатов предиктора вектора движения получены. Затем модуль 813 идентификации удаляет идентифицированного избыточного кандидата из соответствующего одного из списков кандидатов предиктора вектора движения.
[0331] Модуль 814 определения определяет, меньше ли количество первых кандидатов предиктора вектора движения, чем определенное максимальное количество. Здесь, модуль 814 определения определяет, меньше ли количество первых кандидатов предиктора вектора движения, исключая идентифицированного избыточного первого кандидата предиктора вектора движения, чем определенное максимальное количество.
[0332] Если определено, что количество первых кандидатов предиктора вектора движения меньше, чем определенное максимальное количество, второй модуль 815 получения получает один или более вторых кандидатов предиктора вектора движения, причем каждый имеет заранее определенный вектор в качестве вектора движения. В частности, второй модуль 815 получения получает вторых кандидатов предиктора вектора движения таким образом, что сумма количества первых кандидатов предиктора вектора движения и количества вторых кандидатов предиктора вектора движения не превышает максимальное количество. Здесь, второй модуль 815 получения получает вторых кандидатов предиктора вектора движения таким образом, что сумма количества первых кандидатов предиктора вектора движения, исключая избыточного кандидата, и количества вторых кандидатов предиктора вектора движения не превышает максимальное количество.
[0333] Заранее определенный вектор может быть нулевым вектором, как в варианте осуществления 3 выше, например. Соответственно, второй модуль 815 получения может получить кандидата предиктора вектора движения, имеющего вектор движения статической области. Следовательно, устройство 800 декодирования движущихся картинок может подходящим образом декодировать поток битов, для которого была улучшена эффективность кодирования. Нужно отметить, что заранее определенный вектор не обязательно должен быть нулевым вектором.
[0334] Затем второй модуль 815 получения регистрирует, в списках кандидатов предиктора вектора движения, один или более вторых кандидатов предиктора вектора движения, полученных таким образом, каждый в ассоциации с индексом предиктора вектора движения, например. В это время второй модуль 815 получения может зарегистрировать каждого второго кандидата предиктора вектора движения в соответствующем одном из списков кандидатов предиктора вектора движения таким образом, что индекс предиктора вектора движения, имеющий значение, меньшее чем таковое для вторых кандидатов предиктора вектора движения, назначается на каждого первого кандидата предиктора вектора движения. Следовательно, устройство 800 декодирования движущихся картинок может подходящим образом декодировать поток битов, для которого была улучшена эффективность кодирования.
[0335] Нужно отметить, что второй модуль 815 получения не обязательно должен получить один или более вторых кандидатов предиктора вектора движения таким образом, что сумма количества первых кандидатов предиктора вектора движения и количества вторых кандидатов предиктора вектора движения будет такой же как определенное максимальное количество. Если сумма количества первых кандидатов предиктора вектора движения и количества вторых кандидатов предиктора вектора движения меньше, чем определенное максимальное количество, может существовать значение индекса предиктора вектора движения, которое не ассоциировано с кандидатом предиктора вектора движения, например.
[0336] Модуль 820 декодирования декодирует посредством использования определенного максимального количества закодированный индекс, добавленный к потоку битов и используемый для идентификации кандидата предиктора вектора движения.
[0337] Модуль 830 управления предсказанием выбирает предиктора вектора движения, который должен использоваться для декодирования текущего блока, который должен быть декодирован, из числа одного или более первых кандидатов предиктора вектора движения и одного или более вторых кандидатов предиктора вектора движения, на основании декодированного индекса. В частности, модуль 830 управления предсказанием выбирает, из списков кандидатов предиктора вектора движения, предиктор вектора движения, который должен использоваться для декодирования текущего блока, который должен быть декодирован.
[0338] Ниже приведено описание различных операций устройства 800 декодирования движущихся картинок, составленного так, как описано выше.
[0339] Фиг. 45 является последовательностью операций, показывающей обрабатывающую операцию устройства 800 декодирования движущихся картинок согласно варианту осуществления 8.
[0340] Сначала модуль 811 определения максимального количества определяет максимальное количество кандидатов предиктора вектора движения (S801). Первый модуль 812 получения получает один или более первых кандидатов предиктора вектора движения (S802). Модуль 813 идентификации идентифицирует первого кандидата предиктора вектора движения (избыточный кандидат), имеющего тот же вектор движения, как таковой любого другого первого кандидата предиктора вектора движения, если множество первых кандидатов предиктора вектора движения получено (S803).
[0341] Модуль 814 определения определяет, меньше ли количество первых кандидатов предиктора вектора движения, исключая избыточного кандидата, чем определенное максимальное количество (S804). Здесь, если определено, что количество первых кандидатов предиктора вектора движения, исключая избыточного кандидата, меньше, чем определенное максимальное количество (Да на S804), второй модуль 815 получения получает (выводит) одного или более вторых кандидатов предиктора вектора движения (S805). С другой стороны, если не определено, что количество первых кандидатов предиктора вектора движения, исключая избыточного кандидата, меньше, чем определенное максимальное количество (Нет на S804), второй модуль 815 получения не получает второго кандидата предиктора вектора движения.
[0342] Модуль 820 декодирования декодирует закодированный индекс, добавленный к потоку битов и используемый для идентификации кандидата предиктора вектора движения, посредством использования определенного максимального количества (S806).
[0343] Модуль 830 управления предсказанием выбирает, из числа одного или более первых кандидатов предиктора вектора движения и одного или более вторых кандидатов предиктора вектора движения, предиктор вектора движения, который должен использоваться для декодирования текущего блока, который должен быть декодирован, на основании декодированного индекса (S807).
[0344] Нужно отметить, что здесь, хотя индекс декодирован (S806) после того, как кандидат предиктора вектора движения получен, обработка не обязательно должна быть выполнена в таком порядке. Например, обработка для получения кандидата предиктора вектора движения (S802 к S805) может быть выполнена после декодирования индекса (S806). Далее, декодирование индекса (S806) и получение кандидата предиктора вектора движения (S802 к S805) может быть выполнены параллельно. Соответственно, скорость обработки декодирования может быть увеличена.
[0345] Как описано выше, согласно устройству 800 декодирования движущихся картинок согласно настоящему варианту осуществления, один или более вторых кандидатов предиктора вектора движения, причем каждый имеет заранее определенный вектор в качестве вектора движения, могут быть получены. Поэтому устройство 800 декодирования движущихся картинок может получить, например, кандидата предиктора вектора движения, имеющего вектор движения статической области или подобное, в качестве второго кандидат предиктора вектора движения. В частности, устройство 800 декодирования движущихся картинок может подходящим образом декодировать поток битов, в котором блок, имеющий заранее определенное движение, эффективно закодирован, и подходящим образом декодировать поток битов, для которого была улучшена эффективность кодирования.
[0346] Кроме того, согласно устройству 800 декодирования движущихся картинок согласно настоящему варианту осуществления индекс для идентификации кандидата предиктора вектора движения может быть декодирован посредством использования определенного максимального количества. В частности, индекс может быть декодирован без зависимости от количества кандидатов предиктора вектора движения, фактически полученных. Поэтому даже если информация (например, информация совместно расположенного блока и т.п.), необходимая для получения кандидата предиктора вектора движения, потеряна, устройство 800 декодирования движущихся картинок может декодировать индекс, и таким образом устойчивость к ошибкам может быть улучшена. Кроме того, устройство 800 декодирования движущихся картинок может декодировать индекс, не ожидая получения (выведения) кандидата предиктора вектора движения, и таким образом может также выполнить параллельно получение кандидата предиктора вектора движения и декодирование индекса.
[0347] Кроме того, согласно устройству 800 декодирования движущихся картинок согласно настоящему варианту осуществления, если определено, что количество первых кандидатов предиктора вектора движения меньше, чем максимальное количество, один или более вторых кандидатов предиктора вектора движения могут быть получены. Поэтому устройство 800 декодирования движущихся картинок может увеличить число кандидатов предиктора вектора движения в диапазоне, который не превышает максимальное количество, и соответственно декодировать поток битов, для которого была улучшена эффективность кодирования.
[0348] Далее, согласно устройству 800 декодирования движущихся картинок согласно настоящему варианту осуществления, один или более вторых кандидатов предиктора вектора движения могут быть получены согласно количеству первых кандидатов предиктора вектора движения, исключая избыточного первого кандидата предиктора вектора движения. В результате устройство 800 декодирования движущихся картинок может увеличить число вторых кандидатов предиктора вектора движения, и увеличить типы векторов движения, выбираемых в качестве кандидатов предиктора вектора движения. Следовательно, устройство 800 декодирования движущихся картинок может подходящим образом декодировать поток битов, для которого была дополнительно улучшена эффективность кодирования.
[0349] Нужно отметить, что в настоящем варианте осуществления, хотя устройство 800 декодирования движущихся картинок включает в себя модуль 813 идентификации, устройство 800 декодирования движущихся картинок, не обязательно должна включать в себя модуль 813 идентификации, как в варианте осуществления 6. В частности, этап S803 не обязательно должен быть включен в последовательность операций, показанную на фиг. 45. Даже в таком случае устройство 800 декодирования движущихся картинок может декодировать индекс для идентификации кандидата предиктора вектора движения, используя определенное максимальное количество, и таким образом может улучшить устойчивость к ошибкам.
[0350] Далее, хотя в настоящем варианте осуществления первый модуль 812 получения получает первых кандидатов предиктора вектора движения, и после этого модуль 813 идентификации идентифицирует избыточного кандидата, как показано на фиг. 45, обработка не обязательно должна быть выполнена последовательно таким образом. Например, первый модуль 812 получения может получить кандидата предиктора вектора движения, имеющего вектор движения, который не является тем же самым как таковой любого первого кандидата предиктора вектора движения, уже полученного, в качестве первого кандидата предиктора вектора движения. Это позволяет первому модулю 812 получения исключать из первых кандидатов предиктора вектора движения кандидата предиктора вектора движения, имеющего тот же самый вектор движения как вектор движения любого из первых кандидатов предиктора вектора движения, которые были уже получены. В результате устройство 800 декодирования движущихся картинок может увеличить число вторых кандидатов предиктора вектора движения, и увеличить типы векторов движения, выбираемых в качестве кандидатов предиктора вектора движения. Следовательно, устройство 800 декодирования движущихся картинок может подходящим образом декодировать поток битов, для которого была дополнительно улучшена эффективность кодирования.
[0351] Хотя вышеупомянутое является описанием устройства кодирования движущихся картинок и устройства декодирования движущихся картинок согласно одному или более аспектам настоящего изобретения, на основании вариантов осуществления, настоящее изобретение не ограничено вышеупомянутыми вариантами осуществления. Здесь раскрытый предмет нужно считать описательным и иллюстративным только, и приложенная формула изобретения имеет объем, предназначенный, чтобы охватить и обозначить не только конкретные варианты осуществления раскрытые, но также и эквивалентные структуры, способы и/или использования.
[0352] Каждый из составляющих элементов в вышеописанных вариантах осуществления может конфигурироваться в форме исключительного продукта аппаратного обеспечения, или может реализоваться, выполняя программу, подходящую для этого структурного элемента. Каждый из составляющих элементов может реализоваться средством, которое блок выполнения программ, такой как центральный процессор и процессор, считывает и выполняет программу, записанную на носителе записи, таком как твердый диск или полупроводниковая память. Здесь, программа для реализации устройства кодирования движущихся картинок или устройства декодирования движущихся картинок согласно вышеупомянутым вариантам осуществления, является программой, описанной ниже.
[0353] В частности, эта программа заставляет компьютер выполнять способ кодирования движущихся картинок для вычисления предиктора вектора движения, который должен использоваться при кодировании вектора движения текущего блока, который должен быть закодирован, и кодирования текущего блока для генерирования потока битов, причем способ включает в себя: получение каждого из одного или более первых кандидатов предиктора вектора движения, на основании вектора движения, используемого для кодирования блока, пространственно или временно смежного с текущим блоком; получение одного или более вторых кандидатов предиктора вектора движения, причем каждый имеет заранее определенный вектор в качестве вектора движения; выбор, из числа одного или более первых кандидатов предиктора вектора движения и одного или более вторых кандидатов предиктора вектора движения, предиктора вектора движения, который должен использоваться для кодирования вектора движения текущего блока; и добавление индекса для идентификации предиктора вектора движения к потоку битов.
[0354] Альтернативно, эта программа заставляет компьютер выполнять способ декодирования движущихся картинок для вычисления предиктора вектора движения, который должен использоваться при декодировании вектора движения текущего блока, который должен быть декодирован, который включен в поток битов, и декодирования текущего блока, причем способ включает в себя: получение каждого из одного или более первых кандидатов предиктора вектора движения на основании вектора движения, используемого для декодирования блока, пространственно или временно смежного с текущим блоком; получение одного или более вторых кандидатов предиктора вектора движения, причем каждый имеет заранее определенный вектор в качестве вектора движения; получение индекса для идентификации одного из одного или более кандидатов предиктора вектора движения из потока битов; и выбор, на основании полученного индекса, предиктора вектора движения, который должен использоваться при декодировании текущего блока, из числа одного или более первых кандидатов предиктора вектора движения и одного или более вторых кандидатов предиктора вектора движения.
[0355] [ВАРИАНТ ОСУЩЕСТВЛЕНИЯ 9]
Обработка, описанная в каждом из вариантов осуществления, может быть просто реализована в независимой компьютерной системе, посредством записи на носителе записи программы для реализации конфигурации способа кодирования движущихся картинок (способа кодирования изображения) и способа декодирования движущихся картинок (способ декодирования изображения), описанных в каждом из вариантов осуществления. Носители записи могут быть любыми носителями записи, пока программа может быть записана, такие как магнитный диск, оптический диск, магнитный оптический диск, IC карта, и полупроводниковая память.
[0356] В дальнейшем, приложения к способу кодирования движущихся картинок (способу кодирования изображения) и способу декодирования движущихся картинок (способу декодирования изображения), описанных в каждом из вариантов осуществления и систем, использующих их, будут описаны. Система имеет признак наличия устройства кодирования и декодирования изображения, которое включает в себя устройство кодирования изображения посредством использования способа кодирования изображения и устройство декодирования изображения посредством использования способа декодирования изображения. Другие конфигурации в системе могут быть изменены подходящим образом в зависимости от случаев.
[0357] Фиг. 46 иллюстрирует полную конфигурацию системы ex100 обеспечения контента для реализации услуг распределения контента. Область для предоставления услуг связи разделена на ячейки требуемого размера, и базовые станции ex106, ex107, ex108, ex109, и ex110, которые являются стационарными беспроводными станциями, размещены в каждой из ячеек.
[0358] Система ex100 обеспечения контента связана с устройствами, такими как компьютер ex111, персональный цифровой помощник (PDA) ex112, камера ex113, сотовый телефон ex114 и игровая машина ex115, через Интернет ex101, Провайдер ex102 интернет-услуг, телефонная сеть ex104, а также базовые станции ex106 - ex110, соответственно.
[0359] Однако, конфигурация системы ex100 обеспечения контента не ограничена конфигурацией, показанной на фиг. 46, и комбинация, в которой любые из элементов соединены, является приемлемой. Кроме того, каждое устройство может быть непосредственно соединены с телефонной сетью ex104, а не через базовые станции ex106 - ex110, которые являются стационарными беспроводными станциями. Кроме того, устройства могут быть подсоединены друг к другу через беспроводную связь на коротком расстоянии и другое.
[0360] Камера ex113, такая как цифровая видео камера, способна захватывать видео. Камера ex116, такая как цифровая камера, способна захватывать и неподвижные изображения и видео. Кроме того, сотовый телефон ex114 может быть тем, который удовлетворяет любому из стандартов, таких как глобальная система для мобильной связи (GSM) (зарегистрированный товарный знак), множественный доступ с кодовым разделением каналов (CDMA), широкополосный множественный доступ с кодовым разделением каналов (W-CDMA), проект долгосрочного развития (LTE), и высокоскоростной пакетный доступ (HSPA). Альтернативно, сотовый телефон ex114 может быть системой персональных мобильных телефонов (PHS).
[0361] В системе ex100 обеспечения контента сервер ex103 потоковой передачи соединен с камерой ex113 и другими через телефонную сеть ex104 и базовую станцию ex109, которая обеспечивает распределение изображений в реальном времени и другое. При таком распределении контент (например, показ видео музыки в реальном времени), захваченный пользователем, использующим камеру ex113, кодируется, как описано выше в каждом из вариантов осуществления (то есть, камера функционирует как устройство кодирования изображения согласно аспекту настоящего изобретения), и закодированный контент передается к серверу ex103 потоковой передачи. С другой стороны, сервер ex103 потоковой передачи выполняет распределение потока переданных данных контента клиентам после их запросов. Клиенты включают в себя компьютер ex111, PDA ex112, камеру ex113, сотовый телефон ex114, и игровую машину ex115, которые способны декодировать вышеупомянутые кодированные данные. Каждое из устройств, которые приняли распределенные данные, декодирует и воспроизводит кодированные данные (то есть, функционирует как устройство декодирования изображения согласно аспекту настоящего изобретения).
[0362] Захваченные данные могут быть закодированы камерой ex113 или сервером ex103 потоковой передачи, который передает данные, или процессы кодирования могут быть совместно использованы между камерой ex113 и сервером ex103 потоковой передачи. Аналогично, распределенные данные могут быть декодированы клиентами или сервером ex103 потоковой передачи, или процессы декодирования могут быть совместно использованы между клиентами и сервером ex103 потоковой передачи. Кроме того, данные неподвижного изображения и видео, захваченное не только камерой ex113 но также и камерой ex116, могут быть переданы к серверу ex103 потоковой передачи через компьютер ex111. Процессы кодирования могут быть выполнены камерой ex116, компьютером ex111 или сервером ex103 потоковой передачи, или совместно использованы между ними.
[0363] Кроме того, процессы кодирования и декодирования могут быть выполнены с помощью БИС (LSI) ex500, обычно включенной в каждый компьютер ex111 и устройства. LSI ex500 может конфигурироваться единственного элемента сигнала или множества элемент сигнала. Программное обеспечение для кодирования и декодирования видео может интегрироваться в некоторый тип носителя записи (такого как CD-ROM, гибкий диск, и жесткий диск), который считывается компьютером ex111 и другими, и процессы кодирования и декодирования могут быть выполнены посредством использования этого программного обеспечения. Кроме того, когда сотовый телефон ex114 оборудован камерой, данные видео, полученные камерой, могут быть переданы. Данные видео являются данными, кодированными посредством БИС ex500, включенной в сотовый телефон ex114.
[0364] Кроме того, сервер ex103 потоковой передачи может быть составлен из серверов и компьютеров, и может децентрализовать данные и обработать децентрализованные данные, записать или распределить данные.
[0365] Как описано выше, клиенты могут принять и воспроизвести закодированные данные в системе ex100 обеспечения контента. Другими словами, клиенты могут принять и декодировать информацию, переданную пользователем, и воспроизвести декодированные данные в режиме реального времени в системе ex100 обеспечения контента, так чтобы пользователь, который не имеет никаких конкретных прав и оборудования, мог реализовать персональное радиовещание.
[0366] Помимо примера системы ex100 обеспечения контента, по меньшей мере одно из устройства кодирования движущихся картинок (устройство кодирования изображения) и устройства декодирования движущихся картинок (устройство декодирования изображения), описанных в каждом из вариантов осуществления, может быть реализовано в цифровой радиовещательной системе ex200, иллюстрированной на фиг. 47. Более конкретно, радиостанция ex201 обменивается информацией или передает с помощью радиоволн к ретрансляционному спутнику ex202, мультиплексированные данные, полученные мультиплексированием аудио данных и других на данные видео. Данные видео являются данными, кодированными способом кодирования движущихся картинок, описанным в каждом из вариантов осуществления (то есть, данными, кодированными устройством кодирования изображения согласно аспекту настоящего изобретения). По получении мультиплексированных данных ретрансляционный спутник ex202 передает радиоволны для осуществления вещания. Затем антенна, используемая в доме, ex204 с функцией приема спутникового вещания принимает радиоволны. Затем устройство, такое как телевизор (приемник) ex300 и телевизионная приставка (STB) ex217 декодирует принятые мультиплексированные данные, и воспроизводит декодированные данные (то есть, функционирует как устройство декодирования изображения согласно аспекту настоящего изобретения).
[0367] Кроме того, считыватель/регистратор ex218 (i) считывает и декодирует мультиплексированные данные, записанные на носителе ex215 записи, таком как DVD, и BD, или (ii) кодирует видео сигналы в носителе ex215 записи, и в некоторых случаях, записывает данные, полученные мультиплексированием аудио сигнала на закодированные данные. Считыватель/регистратор ex218 может включать в себя устройство декодирования движущихся картинок или устройство кодирования движущихся картинок, как показано в каждом из вариантов осуществления. В этом случае воспроизведенные видео сигналы отображаются на мониторе ex219, и могут быть воспроизведены другим устройством или системой посредством использования носителя ex215 записи, на котором записаны мультиплексированные данные. Также возможно реализовать устройство декодирования движущихся картинок в телевизионной приставке ex217, соединенной с кабелем ex203 для кабельного телевидения или к антенне ex204 для спутникового и/или наземного вещания, чтобы отобразить видео сигналы на мониторе ex219 телевизора ex300. Устройство декодирования движущихся картинок может быть реализовано не в телевизионной приставке, а в телевизоре ex300.
[0368] Фиг. 48 иллюстрирует телевизор (приемник) ex300, который использует способ кодирования движущихся картинок и способ декодирования движущихся картинок, описанный в каждом из вариантов осуществления. Телевизор ex300 включает в себя: модуль ex301 настройки, который получает или выдает мультиплексированные данные, полученные мультиплексированием аудио данных на данные видео, через антенну ex204 или кабель ex203, и т.д., которые принимают вещание; модуль ex302 модуляции/демодуляции, который демодулирует принятые мультиплексированные данные или модулирует данные в мультиплексированные данные, которые должны подаваться вовне; и модуль ex303 мультиплексирования/демультиплексирования, который демультиплексирует модулированные мультиплексированные данные в данные видео и аудио данные, или мультиплексирует данные видео и аудио данные, кодированные блоком ex306 обработки сигнала в данные.
[0369] Телевизор ex300 также включает в себя: модуль ex306 обработки сигнала, включая модуль ex304 обработки сигнала аудио и модуль ex305 обработки сигнала видео, которые декодируют данные аудио и данные видео и кодируют данные аудио и данные видео, соответственно (которые функционируют как устройство кодирования изображения и устройство декодирования изображения согласно аспектам настоящего изобретения); и модуль ex309 вывода, включая громкоговоритель ex307, который выдает декодированный аудио сигнал, и дисплейный блок ex308, который отображает декодированный видео сигнал, такой как дисплей. Кроме того, телевизор ex300 включает в себя модуль ex317 интерфейса, включая модуль ex312 ввода операций, который принимает ввод пользовательской операции. Кроме того, телевизор ex300 включает в себя модуль ex310 управления, который управляет всем и каждым составляющим элементом телевизора ex300, и модуль ex311 схемы электропитания, который подает энергию каждому из этих элементов. Кроме модуль ex312 ввода операции, модуль ex317 интерфейса может включать в себя: мост ex313, который соединен с внешним устройством, таким как считыватель/регистратор ex218; модуль ex314 слота для обеспечения присоединение носителя записи ex216, такого как карта SD; накопитель ex315, для соединения с внешним носителем записи, таким как жесткий диск; и модем ex316, для соединения с телефонной сетью. Здесь, носитель записи ex216 может электрически записать информации посредством использования энергонезависимого/энергозависимого элемента полупроводниковой памяти для хранения. Составляющие элементы телевизора ex300 соединены друг с другом через синхронную шину.
[0370] Сначала конфигурация, в которой телевизор ex300 декодирует мультиплексированные данные, полученные извне через антенну ex204 и другое, и воспроизводит декодированные данные, будет описана. В телевизоре ex300 после пользовательской операции через удаленный контроллер ex220 и другие, блок мультиплексирования/демультиплексирования ex303 демультиплексирует мультиплексированные данные, демодулированные блоком модуляции/демодуляции ex302, под управлением модуля ex310 управления, включающего в себя центральный процессор. Кроме того, модуль ex304 обработки сигнала аудио декодирует демультиплексированные данные аудио, и модуль ex305 обработки сигнала видео декодирует демультиплексированные данные видео посредством использования способа декодирования, описанного в каждом из вариантов осуществления, в телевизоре ex300. Модуль ex309 вывода выдает декодированный сигнал видео и сигнал аудио вовне, соответственно. Когда модуль ex309 вывода выдает сигнал видео и сигнал аудио, эти сигналы могут быть временно сохранены в буферах ex318 и ex319 и других так, чтобы эти сигналы были воспроизведены в синхронизации друг с другом. Кроме того, телевизор ex300 может считать мультиплексированные данные не через вещание и другое, а с носителей ex215 и ex216 записи, таких как магнитный диск, оптический диск, и карта SD. Затем конфигурация, в которой телевизор ex300 кодирует сигнал аудио и видео сигнал и передает данные вовне или записывает данные на носитель записи, будет описана. В телевизоре ex300 после пользовательской операции через удаленный контроллер ex220 и другое, модуль ex304 обработки сигнала кодирует аудио сигнал аудио, и модуль ex305 обработки сигнала видео кодирует видео сигнал под управлением модуля ex310 управления, с использованием способа кодирования, описанного в каждом из вариантов осуществления. Модуль ex303 мультиплексирования/демультиплексирования мультиплексирует кодированный сигнал видео и сигнал аудио, и выдает получающийся сигнал вовне. Когда модуль ex303 мультиплексирования/ демультиплексирования мультиплексирует сигнал видео и сигнал аудио, эти сигналы могут быть временно сохранены в буферах ex320 и ex321 и других так, чтобы сигналы были воспроизведены в синхронизации друг с другом. Здесь, буферы ex318, ex319, ex320 и ex321 могут быть множественными, как иллюстрировано, или по меньшей мере один буфер может быть совместно использован в телевизоре ex300. Кроме того, данные могут храниться в буфере так, чтобы перегрузки и недогрузки системы можно было избежать между модулем ex302 модуляции/демодуляции и модулем ex303 мультиплексирования/демультиплексирования, например.
[0371] Кроме того, телевизор ex300 может включать в себя конфигурацию для приема ввода AV от микрофона или камеры помимо конфигурации для получения аудио и данные видео из вещания или носителя записи, и может кодировать полученные данные. Хотя телевизор ex300 может кодировать, мультиплексировать и выдавать вовне данные в настоящем описании, он может быть способен к только приему, декодированию и выдаче вовне данных, но не кодированию, мультиплексированию и выдаче вовне данных.
[0372] Кроме того, когда считыватель/регистратор ex218 считывает или записывает мультиплексированные данные с или на носитель записи, один из телевизора ex300 и считывателя/регистратора ex218 может декодировать или кодировать мультиплексированные данные, и телевизор ex300 и считыватель/регистратор ex218 могут совместно использовать декодирование или кодирование.
[0373] Как пример, Фиг. 49 иллюстрирует конфигурацию модуля ex400 воспроизведения/записи информации, когда данные считываются или записываются с или на оптический диск. Модуль ex400 воспроизведения/записи информации включает в себя составляющие элементы ex401, ex402, ex403, ex404, ex405, ex406, и ex407, которые будут описаны ниже. Оптическая головка ex401 освещает лазерное пятно в поверхности записи носителя ex215 записи, который является оптическим диском, чтобы записать информацию, и обнаруживает отраженный свет от поверхности записи носителя ex215 записи, чтобы считать информацию. Модуль ex402 записи модуляции электрически возбуждает полупроводниковый лазер, включенный в оптическую головку ex401, и модулирует лазерный свет согласно записанным данным. Модуль ex403 демодуляции воспроизведения усиливает сигнал воспроизведения, полученный посредством электрического обнаружения отраженного света от поверхности записи, используя фотодетектор, включенный в оптическую головку ex401, и демодулирует сигнал воспроизведения, отделяя компонент сигнала, записанный на носителе ex215 записи, чтобы воспроизвести необходимую информацию. Буфер ex404 временно хранит информацию, записанную на носителе ex215 записи и информации, воспроизведенную с носителя ex215 записи. Электродвигатель ex405 накопителя вращает носитель ex215 записи. Модуль ex406 управления сервомотором перемещает оптическую головку ex401 к заранее определенной информационной дорожке, в то же время управляя приводом вращения электродвигателя ex405 накопителя, чтобы следовать за лазерным пятном. Модуль ex407 управления системы управляет всем модулем ex400 воспроизведения/записи информации. Считывание и запись могут быть реализованы модулем ex407 управления системы с использованием различной информации, хранящейся в буфере ex404 и генерируя и добавляя новую информацию по мере необходимости, и модулем ex402 записи модуляции, модулем ex403 демодуляции воспроизведения и модулем ex406 управления сервомотором, который записывает и воспроизводит информацию через оптическую головку ex401, будучи управляемым скоординированным способом. Модуль ex407 управления системы включает в себя, например, микропроцессор, и выполняет обработку, заставляя компьютер выполнять программу для считывания и записи.
[0374] Хотя оптическая головка ex401 освещает лазерное пятно в описании, она может выполнить запись высокой плотности посредством использования света ближнего поля.
[0375] Фиг. 50 иллюстрирует носитель ex215 записи, который является оптическим диском. На поверхности записи носителя ex215 записи по спирали сформированы направляющие канавки, и информационная дорожка ex230 записывает заранее информацию адреса, указывающую абсолютную позицию на диске согласно изменению в форме направляющих канавок. Информация адреса включает в себя информацию для определения позиции блоков ex231 записи, которые являются единицей для записи данных. Воспроизведение информационной дорожки ex230 и считывание информации адреса в устройстве, которое записывает и воспроизводит данные, может привести к определению позиций блоков записи. Кроме того, носитель ex215 записи включает в себя область ex233 записи данных, область ex232 внутренней окружности и область ex234 внешней окружности. Область ex233 записи данных являются областью для использования при записи пользовательских данных. Область ex232 внутренней окружности и область ex234 внешней окружности, которые находятся внутри и снаружи области ex233 записи данных, соответственно, предназначены для специального использования за исключением записи пользовательских данных. Модуль 400 воспроизведения/записи информации считывает и записывает данные кодированного аудио, кодированного видео или мультиплексированные данные, полученные мультиплексированием кодированных данных аудио и видео, в и из области ex233 записи данных носителя ex215 записи.
[0376] Хотя оптический диск, имеющий слой, такой как DVD и BD, описан как пример в описании, оптический диск не ограничен таким, и может быть оптическим диском, имеющим многослойную структуру и способным нести запись на части, отличной от поверхности. Кроме того, оптический диск может иметь структуру для многомерной записи/воспроизведения, такой как запись информации посредством использования света цветов с различными длинами волны в одной и той же части оптического диска и для записи информации, имеющей различные слои с различных углов.
[0377] Кроме того, автомобиль ex210, имеющий антенну ex205, может принять данные от спутника ex202 и другого, и воспроизвести видео на устройстве отображения, таком как автомобильная система ex211 навигации, установленных в автомобиле ex210, в системе ex200 цифрового вещания. Здесь, конфигурация автомобильной системы ex211 навигации является конфигурацией, например, включающей в себя модуль приема GPS из конфигурации, иллюстрированной на фиг. 48. То же самое верно для конфигурации компьютера ex111, сотового телефона ex114 и других.
[0378] Фиг. 51A иллюстрирует сотовый телефон ex114, который использует способ кодирования движущихся картинок и способ декодирования движущихся картинок, описанные в вариантах осуществления. Сотовый телефон ex114 включает в себя: антенну ex350 для передачи и приема радиоволн через базовую станцию ex110; модуль ex365 камеры способный к захвату движущихся и неподвижных изображений; и дисплейный модуль ex358, такой как жидкокристаллический дисплей для того, чтобы отобразить данные, такие как декодированное видео, захваченное модулем ex365 камеры или принятое антенной ex350. Сотовый телефон ex114 далее включает в себя: модуль главного корпуса, включающего в себя модуль ex366 операционных клавиш; модуль ex357 вывода аудио, такой как громкоговоритель для вывода аудио; модуль ex356 ввода аудио, такой как микрофон для ввода аудио; модуль ex367 памяти для хранения захваченного видео или неподвижных картинок, записанного аудио, кодированных или декодированных данных принятого видео, неподвижных картинок, электронных писем, или другого; и модуль ex364 слота, который является модулем интерфейса для носителя записи, который сохраняет данные таким же образом, как модуль ex367 памяти.
[0379] Ниже пример конфигурации сотового телефона ex114 описан со ссылками на фиг. 51B. В сотовом телефоне ex114, главный модуль ex360 управления скомпонован, чтобы управлять в целом каждым модулем главного корпуса, включающим в себя дисплейный модуль ex358, а также модуль ex366 операционных клавиш, взаимно подсоединенные через синхронную шину ex370 к модулю ex361 схемы электропитания, модуль ex362 управления операцией ввода, модуль ex355 обработки сигнала видео, модуль ex363 интерфейса камеры, модуль ex359 управления жидкокристаллическим дисплеем (LCD), модуль ex352 модуляции/демодуляции, модуль ex353 мультиплексирования/демультиплексирования, модуль ex354 обработки сигнала аудио, модуль ex364 слота, и модуль ex367 памяти.
[0380] Когда клавиша завершения вызова или клавиша питания включены посредством операции пользователя, модуль ex361 схемы электропитания снабжает соответствующие модули мощностью от батарейного блока, чтобы активизировать сотовый телефон ex114.
[0381] В сотовом телефоне ex114 модуль ex354 обработки сигнала аудио преобразовывает сигналы аудио, собранные модулем ex356 звукового ввода в режиме голосового разговора в сигналы цифрового аудио под управлением главного модуля ex360 управления, включающим в себя центральный процессор, ROM, и RAM. Затем модуль ex352 модуляции/демодуляции выполняет обработку расширения спектра в отношении сигналов цифрового аудио, и модуль ex351 передачи и приема выполняют цифроаналоговое преобразование и преобразование частоты в отношении данных, чтобы передать получающиеся данные через антенну ex350. Кроме того, в сотовом телефоне ex114 модуль ex351 передачи и приема усиливает данные, принятые антенной ex350 в режиме голосового разговора, и выполняет преобразование частоты и аналого-цифровое преобразование в отношении данных. Затем модуль ex352 модуляции/демодуляции выполняет обратную обработку расширения по спектру в отношении данных, и модуль ex354 обработки сигнала аудио преобразовывает его в аналоговые аудио сигналы, чтобы вывести их через модуль ex357 звукового выхода.
[0382] Кроме того, когда электронная почта в режиме передачи данных передается, текстовые данные электронной почты, введенные посредством оперирования модулем ex366 операционных клавиш и другими главного корпуса посылаются в главный модуль ex360 управления через модуль ex362 управления ввода операции. Главный модуль ex360 управления заставляет модуль ex352 модуляции/демодуляции выполнять обработку расширения спектра в отношении текстовых данных, и модуль ex351 передачи и приема выполняют цифро-аналоговое преобразование и преобразование частоты в отношении полученных данных, чтобы передать данные к базовой станции ex110 через антенну ex350. Когда электронная почта принята, обработку, которая является приблизительно обратной обработке для передачи электронной почты, выполняют в отношении принятых данных, и получающиеся данные выдают в модуль ex358 отображения.
[0383] Когда видео, неподвижные изображения, или видео и аудио в режиме передачи данных переданы или передаются, модуль ex355 обработки сигнала видео сжимает и кодирует видео сигналы, выдаваемые от модуля ex365 камеры, с использованием способа кодирования движущихся картинок, показанного в каждом из вариантов осуществления (то есть, функционирует как устройство кодирования изображения согласно аспекту настоящего изобретения), и передает закодированные данные видео к модулю ex353 мультиплексирования/демультиплексирования. Напротив, когда модуль ex365 захватил камеры видео, неподвижные изображения и другое, ex354 модуль обработки сигнала аудио кодирует сигналы аудио, собранные модулем ex356 звукового ввода, и передает закодированные данные аудио к блоку ex353 мультиплексирования/демультиплексирования.
[0384] Модуль ex353 мультиплексирования/демультиплексирования мультиплексирует кодированные данные видео, поданные от модуля ex355 обработки сигнала видео и закодированные данные аудио, поданные от модуля ex354 обработки сигнала аудио посредством использования заранее определенного способа. Затем модуль ex352 модуляции/демодуляции (модуль схемы модуляции/демодуляции) выполняет обработку расширения спектра в отношении мультиплексированных данных, и модуль ex351 передачи и приема выполняют цифроаналоговое преобразование и преобразование частоты в отношении данных, чтобы передать получающиеся данные через антенну ex350.
[0385] При приеме данных видео файла, который связан с Web страницей и другими в режиме передачи данных или при приеме электронной почты с присоединенными видео и/или аудио, чтобы декодировать мультиплексированные данные, принятые через антенну ex350, модуль ex353 мультиплексирования/демультиплексирования демультиплексирует мультиплексированные данные в поток битов данных видео и поток битов данных аудио и снабжает модуль ex355 обработки сигнала видео кодированными данными видео и модуль ex354 обработки сигнала аудио закодированными данными аудио, через синхронную шину ex370. Модуль ex355 обработки сигнала видео декодирует сигнал видео посредством использования способа декодирования движущихся картинок, соответствующий способу кодирования движущихся картинок, показанному в каждом из вариантов осуществления (то есть, функционирует как устройство декодирования изображения согласно аспекту настоящего изобретения), и затем дисплейный модуль ex358 отображает, например, видео и неподвижные изображения, включенные в видео файл, соединенный с Web страницей через модуль ex359 управления LCD. Кроме того, модуль ex354 обработки сигнала аудио декодирует сигнал аудио, и модуль ex357 вывода аудио выдает аудио.
[0386] Кроме того, аналогично телевизору ex300, терминал, такой как сотовый телефон ex114 вероятно имеет 3 типа конфигураций реализации, включающие в себя не только (i) терминал передачи и приема, включающий в себя как устройство кодирования так и устройство декодирования, но также и (ii) передающий терминал, включающий в себя только устройство кодирования и (iii) терминал приема, включающий в себя только устройство декодирования. Хотя цифровая радиовещательная система ex200 принимает и передает мультиплексированные данные, полученные мультиплексированием данных аудио на данные видео в описании, мультиплексированные данные могут быть данными, полученными мультиплексированием данных не-аудио, но характерными данными, относящимися к видео, на данные видео, и могут быть не мультиплексированными данными, а видео данными непосредственно.
[0387] Также, способ кодирования движущихся картинок и способ декодирования движущихся картинок в каждом из вариантов осуществления могут использоваться в любом из устройств и описанных систем. Таким образом, преимущества, описанные в каждом из вариантов осуществления, могут быть получены.
[0388] Кроме того, настоящее изобретение не ограничено вариантами осуществления, и различные модификации и пересмотры возможны, не отступая от объема настоящего изобретения.
[0389] [ВАРИАНТ ОСУЩЕСТВЛЕНИЯ 10]
Данные видео могут генерироваться посредством переключения, по мере необходимости, между (i) способом кодирования движущихся картинок или устройством кодирования движущихся картинок, показанными в каждом из вариантов осуществления, и (ii) способом кодирования движущихся картинок или устройством кодирования движущихся картинок в соответствии с другим стандартом, таким как MPEG-2, MPEG-4 AVC и VC-1.
[0390] Здесь, когда множество данных видео, которые соответствуют различным стандартам, генерируется и затем декодируются, способы декодирования должны быть выбраны, чтобы соответствовать различным стандартам. Однако, так как, какому стандарту каждое множество данных видео, которые должны быть декодированы, соответствуют, не может быть обнаружено, имеется проблема, что соответствующий способ декодирования не может быть выбран.
[0391] Чтобы решить эту проблему мультиплексированные данные, полученные мультиплексированием данных аудио и других на данные видео имеют структуру, включающую в себя идентификационную информацию, указывающую, какому стандарту соответствуют данные видео. Конкретная структура мультиплексированных данных, включая данные видео, сгенерированные способом кодирования движущихся картинок и устройством кодирования движущихся картинок, показанные в каждом из вариантов осуществления, будет описана ниже. Мультиплексированные данные являются цифровым потоком в формате Transport Stream (транспортного потока) MPEG-2.
[0392] Фиг. 52 иллюстрирует структуру мультиплексированных данных. Как иллюстрировано на фиг. 52, мультиплексированные данные могут быть получены мультиплексированием по меньшей мере одного из потока видео, потока аудио, представляющего графику потока (PG), и интерактивного графического потока. Видео поток представляет первичное видео и вторичное видео кинофильмов, поток аудио (IG) представляет первичную часть аудио и вторичную часть аудио, которая должна быть смешана с первичной частью аудио, и представляющий графику поток представляет субтитры кинофильма. Здесь, первичное видео является нормальным видео, которое должно быть показано на экране, и вторичное видео является видео, которое должно быть показано на меньшем окне в первичном видео. Кроме того, интерактивный графический поток представляет интерактивный экран, который должен генерироваться посредством компоновки компонентов GUI на экране. Видео поток кодируется способом кодирования движущихся картинок или устройстве кодирования движущихся картинок, показанными в каждом из вариантов осуществления, или способом кодирования движущихся картинок или устройством кодирования движущихся картинок в соответствии с обычным стандартом, таких как MPEG-2, MPEG-4 AVC, и VC-1. Аудио поток кодируется в соответствии со стандартом, таким как Dolby-AC-3, Dolby Digital Plus, MLP, DTS, DTS-HD, и линейный PCM.
[0393] Каждый поток, включенный в мультиплексированные данные, идентифицирован с помощью PID. Например, 0x1011 назначается видео потоку, который должен использоваться для видео кинофильма, 0x1100-0x111F назначается аудио потокам, 0x1200-0x121F назначается представляющим графику потокам, 0x1400-0x141F назначают интерактивным графическим потокам, 0x1B00-0x1B1F назначают видео потокам, которые должны использоваться для вторичного видео кинофильма, и 0x1A00-0x1A1F назначают аудио потокам, которые должны использоваться для вторичного аудио, которое должно быть смешано с первичным аудио.
[0394] Фиг. 53 схематично иллюстрирует, как данные мультиплексированы. Сначала видео поток ex235, составленный из видео кадров, и аудио поток ex238, составленный из аудио кадров, преобразуется в поток PES-пакетов ex236 и поток PES-пакетов ex239, и далее в пакеты TS ex237 и пакеты TS ex240, соответственно. Аналогично, данные представляющего графику потока ex241 и данные интерактивного графического потока ex244 преобразуются в поток PES-пакетов ex242 и поток PES-пакетов ex245, и далее в пакеты TS ex243 и пакеты TS ex246, соответственно. Эти пакеты TS мультиплексируются в поток, чтобы получить мультиплексированные данные ex247.
[0395] Фиг. 54 иллюстрирует, как видео поток сохранен в потоке PES-пакетов, более подробно. Первый прямоугольник на фиг. 54 показывает видео поток кадра в видео потоке. Второй прямоугольник показывает поток PES-пакетов. Как указано стрелками, обозначенными как yy1, yy2, yy3, и yy4 на фиг. 54, видео поток разделяется на картинки, как I- картинки, B-картинки, и P-картинки, каждая из которых является единицей представления видео, и картинки сохраняются в полезных данных каждого из PES-пакетов. Каждый из PES-пакетов имеет заголовок PES, и этот заголовок PES сохраняет отметку времени представления (PTS), указывающую время отображения картинки, и отметку времени декодирования (DTS), указывающую время декодирования картинки.
[0396] Фиг. 55 иллюстрирует формат пакетов TS, которые должны быть в конце концов записаны на мультиплексированные данные. Каждый из TS-пакетов является пакетом фиксированной длины 188 байт, включая 4-байтовый заголовок TS, имеющий информацию, такую как PID для идентификации потока, и 184-байтовые полезные данные TS для сохранения данных. Пакеты PES разделены, и сохранены в полезных данных TS, соответственно. Когда BD ROM используется, каждому из TS-пакетов дают 4-байтовый TP_Extra_Header, таким образом приводя к 192-байтовым исходным пакетам. Исходные пакеты записывают на мультиплексированные данные. TP_Extra_Header хранит информацию, такую как Arrival_Time_Stamp (ATS). ATS показывает время начала передачи, в которое каждый из TS-пакетов должен быть передан фильтру PID. Исходные пакеты размещены в мультиплексированных данных, как показано внизу Фиг. 55. Номера, увеличивающиеся от начала мультиплексированных данных, называют номерами исходных пакетов (SPNs).
[0397] Каждый из пакетов TS, включенных в мультиплексированные данные, включает в себя не только потоки аудио, видео, субтитры и другое, но также и (PAT) Таблицу Ассоциации Программы, Таблицу Карты Программ (PMT), и эталонные программные часы (PCR). PAT показывает, какой PID в PMT, используемом в мультиплексированных данных, указывает, и PID самого PAT записан как ноль. PMT сохраняет PIDs потоков видео, аудио, субтитров и других, включенных в мультиплексированные данные, и информацию атрибутов потоков, соответствующих этим PIDs. PMT также имеет различные дескрипторы, касающиеся мультиплексированных данных. Эти дескрипторы имеют информацию, такую как информация управления копиями, показывающая, разрешено ли копирование мультиплексированных данных или нет. PCR сохраняет информацию времени STC, соответствующую ATS, показывающую, когда пакет PCR передан декодеру, чтобы достигнуть синхронизации между синхросигналами времени прибытия (ATC), которые являются осью времени ATSs, и системным таймером (STC), который является осью времени для PTSs и DTSs.
[0398] Фиг. 56 иллюстрирует структуру данных PMT подробно. Заголовок PMT расположен вверху PMT. Заголовок PMT описывает длину данных, включенных в PMT и другое. Множество дескрипторов, касающихся мультиплексированных данных, расположено после заголовка PMT. Информация, такая как информация управления копией, описана в дескрипторах. После дескрипторов расположено множество частей информации потока, касающихся потоков, включенных в мультиплексированные данные. Каждая часть информации потока включает в себя дескрипторы потока, каждый описывающий информацию, такую как тип потока для идентификации кодека сжатия потока, PID потока, и информацию атрибута потока (такую как частоту кадров или формат изображения). Дескрипторы потока равны в количестве количеству потоков в мультиплексированных данных.
[0399] Когда мультиплексированные данные записываются на носитель записи и другое, они записываются вместе с файлами информации мультиплексированных данных.
[0400] Каждый из файлов информации мультиплексированных данных является информацией управления мультиплексированными данными, как показано на фиг. 57. Файлы информации мультиплексированных данных находятся в соответствии один к одному с мультиплексированными данными, и каждый из файлов включает в себя информации мультиплексированных данных, информацию атрибутов потока, и карту записей.
[0401] Как иллюстрировано на фиг. 57, информация мультиплексированных данных включает в себя системную частоту, время начала воспроизведения и время окончания воспроизведения. Системная частота указывает максимальную скорость передачи, с которой целевой декодер системы, который описан ниже, передает мультиплексированные данные к PID. Интервалы ATSs, включенные в мультиплексированные данные, установлены так, чтобы не быть выше, чем скорость передачи системы. Время начала воспроизведения указывает PTS в видео кадре в начале мультиплексированных данных. Интервал одного кадра добавляется к PTS в видео кадре в конце мультиплексированных данных, и PTS устанавливается равным времени окончания воспроизведения.
[0402] Как показано на фиг. 58, часть информации атрибутов записана в информации атрибутов потока для каждого PID каждого потока, включенного в мультиплексированные данные. Каждая часть информации атрибутов имеет различную информацию в зависимости от того, является ли соответствующий поток видео потоком, аудио потоком, представляющим графику потоком или интерактивным графическим потоком. Каждая часть информации атрибутов потока видео несет информацию, включающую в себя какой кодек сжатия используется для сжатия видео потока, и разрешение, формат изображения и частоту кадров частей данных картинки, которые включены в видео поток. Каждая часть информации атрибутов потока аудио несет информацию, включающую в себя какой кодек сжатия используется для сжатия аудио потока, сколько каналов включено в аудио поток, какой язык поддерживает поток аудио, и как высока частота осуществления выборок. Информация атрибутов потока видео и информация атрибутов потока аудио используются для инициализации декодера прежде, чем плеер воспроизведет информацию.
[0403] В настоящем варианте осуществления мультиплексированные данные, которые должны использоваться, имеют тип потока, включенный в PMT. Кроме того, когда мультиплексированные данные записываются на носитель записи, информация атрибутов потока видео, включенная в мультиплексированную информацию данных, используется. Более конкретно, способ кодирования движущихся картинок или устройство кодирования движущихся картинок, описанные в каждом из вариантов осуществления, включают в себя этап или модуль для того, чтобы назначить уникальную информацию, указывающую данные видео, сгенерированные способом кодирования движущихся картинок или устройством кодирования движущихся картинок в каждом из вариантов осуществления, типу потока, включенному в PMT или информацию атрибутов потока видео. С такой конфигурацией данные видео, сгенерированные способом кодирования движущихся картинок или устройством кодирования движущихся картинок, описанными в каждом из вариантов осуществления, можно отличить от данных видео, которые соответствуют другому стандарту.
[0404] Кроме того, Фиг. 59 иллюстрирует этапы способа декодирования движущихся картинок согласно настоящему варианту осуществления. На этапе exS100 тип потока, включенный в PMT, или информацию атрибутов потока видео, включенную в информацию мультиплексированных данных, получают из мультиплексированных данных. Затем на этапе exS101 определяют, указывают ли тип потока или информация атрибутов потока видео, что мультиплексированные данные генерируются способом кодирования движущихся картинок или устройством кодирования движущихся картинок в каждом из вариантов осуществления. Когда определено, что тип потока или информация атрибутов потока видео указывают, что мультиплексированные данные генерируются способом кодирования движущихся картинок или устройством кодирования движущихся картинок в каждом из вариантов осуществления, на этапе exS102, декодирование выполняют способом декодирования движущихся картинок в каждом из вариантов осуществления. Кроме того, когда тип потока или информация атрибутов потока видео указывают соответствие обычным стандартам, таким как MPEG-2, MPEG-4 AVC, и VC-1, на этапе exS103, декодирование выполняют способом декодирования движущихся картинок в соответствии с обычными стандартами.
[0405] Как таковое, распределение нового уникального значения типу потока или информации атрибутов потока видео позволяет выполнить определение, могут ли способ декодирования движущихся картинок или устройство декодирования движущихся картинок, которые описаны в каждом из вариантов осуществления, выполнить декодирование. Даже когда мультиплексированные данные, которые соответствуют различному стандарту, введены, соответствующий способ декодирования или устройство могут быть выбраны. Таким образом, становится возможно декодировать информацию без какой-либо ошибки. Кроме того, способ или устройство кодирования движущихся картинок, или способ или устройство декодирования движущихся картинок в настоящем варианте осуществления могут использоваться в устройствах и системах, описанных выше.
[0406] [ВАРИАНТ ОСУЩЕСТВЛЕНИЯ 11]
Каждый способ кодирования движущихся картинок, устройство кодирования движущихся картинок, способ декодирования движущихся картинок и устройство декодирования движущихся картинок в каждом из вариантов осуществления типично достигается в форме интегральной схемы или большой интегральной схемы (БИС, LSI). В качестве примера БИС, Фиг. 60 иллюстрирует конфигурацию БИС ex500, которая объединена в один кристалл сигнала. БИС ex500 включает в себя элементы ex501, ex502, ex503, ex504, ex505, ex506, ex507, ex508, и ex509, которые описаны ниже, и эти элементы соединены друг с другом через шину ex510. Модуль ex505 схемы электропитания активизируют посредством подачи каждому из элементов мощности, когда модуль ex505 схемы электропитания включается.
[0407] Например, когда выполняют кодирование, БИС ex500 принимает сигнал AV от микрофона ex117, камеры ex113, и другого через AV IO ex509 под управлением модуля ex501 управления, включающего в себя центральный процессор ex502, контроллер ex503 памяти, контроллер ex504 потока, и модуль ex512 управления частотой возбуждения. Принятый сигнал AV временно сохраняется во внешней памяти ex511, такой как SDRAM. Под управлением модуля ex501 управления, сохраненные данные сегментируются в части данных согласно объему обработки и скорости, которая должна быть передана к блоку ex507 обработки сигнала. Затем модуль ex507 обработки сигнала кодирует сигнал аудио и/или сигнал видео. Здесь, кодирование сигнала видео является кодированием, описанным в каждом из вариантов осуществления. Кроме того, модуль ex507 обработки сигнала иногда мультиплексирует кодированные данные аудио и кодированные данные видео, и поток IO ex506 выдает мультиплексированные данные вовне. Выданные мультиплексированные данные передают к базовой станции ex107, или записывают на носитель ex215 записи. Когда наборы данных мультиплексированы, данные должны быть временно сохранены в буфере ex508 так, чтобы наборы данных были синхронизированы друг с другом.
[0408] Хотя память ex511 является элементом вне БИС ex500, она может быть включена в БИС ex500. Буфер ex508 не ограничен одним буфером, но может быть составлен из буферов. Кроме того, БИС ex500 может быть превращена в один кристалл или множество кристаллов.
[0409] Кроме того, хотя модуль ex501 управления включает в себя центральный процессор ex502, контроллер ex503 памяти, контроллер ex504 потока, модуль ex512 управления частотой возбуждения, конфигурация модуля ex501 управления не ограничена этим. Например, модуль ex507 обработки сигнала может также включать в себя центральный процессор. Включение другого центрального процессора в модуль ex507 обработки сигнала может повысить скорость обработки. Кроме того, в качестве другого примера, центральный процессор ex502 может служить или быть частью модуля ex507 обработки сигнала, и, например, может включать в себя модуль обработки сигнала аудио. В таком случае модуль ex501 управления включает в себя модуль ex507 обработки сигнала или центральный процессор ex502, включающий в себя часть модуля ex507 обработки сигнала.
[0410] Название, используемое здесь, является БИС, но оно может быть также названо ИС, системная БИС, сверх БИС, или ультра БИС в зависимости от степени интеграции.
[0411] Кроме того, способы для достижения интеграции не ограничены БИС, и специальная схема или процессор общего назначения и т.д. могут также достигнуть интеграции. Программируемая пользователем вентильная матрица (FPGA), которая может быть запрограммирована после производства БИС или реконфигурируемый процессор, который допускает реконфигурацию соединений или конфигурацию БИС, может использоваться для той же цели.
[0412] В будущем, с продвижением в технологии полупроводников, совершенно новая технология может заменить БИС. Функциональные блоки могут интегрироваться посредством использования такой технологии. Возможность состоит в том, что настоящее изобретение применено к биотехнологии.
[0413] [ВАРИАНТ ОСУЩЕСТВЛЕНИЯ 12]
Когда данные видео, сгенерированные в способе кодирования движущихся картинок или устройством кодирования движущихся картинок, описанным в каждом из вариантов осуществления, декодированы, по сравнению с тем, когда данные видео, которые соответствуют обычному стандарту, такому как MPEG-2, MPEG-4 AVC, и VC-1, декодированы, объем обработки вероятно увеличивается. Таким образом, БИС ex500 должен быть установлен на частоту возбуждения выше той, чем таковая центрального процессора ex502, который должен использоваться, когда данные видео в соответствии с обычным стандартом декодируются. Однако, когда частота возбуждения установлена выше, имеется проблема, что увеличивается потребление энергии.
[0414] Чтобы решить эту проблему, устройство декодирования движущихся картинок, такое как телевизор ex300 и БИС ex500, конфигурируется, чтобы определить, которому стандарту соответствуют данные видео, и переключается между частотами возбуждения согласно определенному стандарту. Фиг. 61 иллюстрирует конфигурацию ex800 в настоящем варианте осуществления. Модуль ex803 переключения частоты возбуждения устанавливает частоту возбуждения равной более высокой частоте возбуждения, когда данные видео генерируются способом кодирования движущихся картинок или устройством кодирования движущихся картинок, описанным в каждом из вариантов осуществления. Затем модуль ex803 переключения частоты возбуждения инструктирует модуль ex801 обработки декодирования, который выполняет способ декодирования движущихся картинок, описанный в каждом из вариантов осуществления, чтобы декодировать данные видео. Когда данные видео соответствуют обычному стандарту, модуль ex803 переключения частоты возбуждения устанавливает частоту возбуждения равной более низкой частоте возбуждения, чем таковая данных видео, генерируемых способом кодирования движущихся картинок или устройством кодирования движущихся картинок, описанным в каждом из вариантов осуществления. Затем модуль ex803 переключения частоты возбуждения инструктирует модуль ex802 обработки декодирования, который соответствует обычному стандарту, чтобы декодировать данные видео.
[0415] Более конкретно, модуль ex803 переключения частоты возбуждения включает в себя центральный процессор ex502 и модуль ex512 управления частотой возбуждения на фиг. 60. Здесь, каждый модуль ex801 обработки декодирования, который выполняет способ декодирования движущихся картинок, описанный в каждом из вариантов осуществления, и модуль ex802 обработки декодирования, который соответствует обычному стандарту, соответствует модулю ex507 обработки сигнала на фиг. 60. Центральный процессор ex502 определяет, которому стандарту соответствуют данные видео. Затем модуль ex512 управления частотой возбуждения определяет частоту возбуждения, на основании сигнала от центрального процессора ex502. Кроме того, модуль ex507 обработки сигнала декодирует данные видео, на основании сигнала от центрального процессора ex502. Например, идентификационная информация, описанная в варианте осуществления 10, вероятно используется для идентификации данных видео. Идентификационная информация не ограничена таковой, описанной в варианте осуществления 10, но может быть любой информацией, пока информация указывает, которому стандарту соответствуют данные видео. Например, когда может быть определено то, какому стандартные соответствуют данные видео, на основании внешнего сигнала для определения, что данные видео используются для телевизора или диска, и т.д., определение может быть сделано на основании такого внешнего сигнала. Кроме того, центральный процессор ex502 выбирает частоту возбуждения, на основании, например, таблицы поиска, в которой стандарты данных видео ассоциированы с частотами возбуждения, как показано на фиг. 63. Частота возбуждения может быть выбрана посредством сохранения таблицы поиска в буфере ex508 и во внутренней памяти о БИС, и со ссылкой на таблицу поиска центральным процессором ex502.
[0416] Фиг. 62 иллюстрирует этапы для выполнения способа в настоящем варианте осуществления. Сначала на этапе exS200, модуль ex507 обработки сигнала получает информацию идентификационной информации из мультиплексированных данных. Затем на этапе exS201 центральный процессор ex502 определяет, генерируются ли данные видео способом кодирования и устройством кодирования, описанным в каждом из вариантов осуществления, на основании информации идентификационной информации. Когда данные видео генерируются способом кодирования движущихся картинок и устройством кодирования движущихся картинок, описанным в каждом из вариантов осуществления, на этапе exS202, центральный процессор ex502 передает сигнал для установки частоты возбуждения равной более высокой частоте возбуждения к модулю ex512 управления частотой возбуждения. Затем модуль ex512 управления частотой возбуждения устанавливает частоту возбуждения равной более высокой частоте возбуждения. С другой стороны, когда идентификационная информация указывает, что данные видео соответствуют обычному стандарту, такому как MPEG-2, MPEG-4 AVC, и VC-1, на этапе exS203, центральный процессор ex502 передает сигнал для установки частоты возбуждения равной более низкой частоте возбуждения к модулю ex512 управления частотой возбуждения. Затем модуль ex512 управления частотой возбуждения устанавливает частоту возбуждения равной более низкой частоте возбуждения, чем в случае, когда данные видео генерируются способом кодирования движущихся картинок и устройством кодирования движущихся картинок, описанным в каждом варианте осуществления.
[0417] Кроме того, наряду с переключением частот возбуждения, эффект экономии энергии может быть улучшен посредством изменения напряжения, которое должно быть приложено к БИС ex500 или устройству, включающему в себя БИС ex500. Например, когда частота возбуждения установлена ниже, напряжение, которое должно быть приложено к БИС ex500 или устройству, включающему в себя БИС ex500, вероятно установлено равным напряжению ниже, чем в случае, когда частота возбуждения установлена выше.
[0418] Кроме того, когда объем обработки для декодирования больше, частота возбуждения может быть установлена выше, и когда объем обработки для декодирования меньше, частота возбуждения может быть установлена ниже в качестве способа для урегулирования частоты возбуждения. Таким образом, способ установки не ограничен теми, чтобы описаны выше. Например, когда объем обработки для декодирования данных видео в соответствии с MPEG-4 AVC больше, чем объем обработки для декодирования данных видео, сгенерированных способом кодирования движущихся картинок и устройством кодирования движущихся картинок, описанным в каждом из вариантов осуществления, частота возбуждения вероятно устанавливается в обратном порядке к установке, описанной выше.
[0419] Кроме того, способ для установки частоты возбуждения не ограничен способом для установки частоты возбуждения ниже. Например, когда идентификационная информация указывает, что данные видео генерируются способом кодирования движущихся картинок и устройством кодирования движущихся картинок, описанным в каждом из вариантов осуществления, напряжение, которое должно быть приложено к БИС ex500 или устройству, включающему в себя БИС ex500, вероятно устанавливается выше. Когда идентификационная информация указывает, что данные видео соответствуют обычному стандарту, такому как MPEG-2, MPEG-4 AVC, и VC-1, напряжение, которое должно быть приложено к БИС ex500 или устройству, включающему в себя БИС ex500, вероятно устанавливается ниже. В качестве другого примера, когда идентификационная информация указывает, что данные видео генерируются способом кодирования движущихся картинок и устройством кодирования движущихся картинок, описанным в каждом из вариантов осуществления, вероятно не должно быть приостановлено возбуждение центрального процессора ex502. Когда идентификационная информация указывает, что данные видео соответствуют обычному стандарту, такому как MPEG-2, MPEG-4 AVC, и VC-1, возбуждение центрального процессора ex502 вероятно приостанавливается в заданный момент, так как центральный процессор ex502 имеет дополнительную емкость обработки. Даже когда идентификационная информация указывает, что данные видео генерируются способом кодирования движущихся картинок и устройством кодирования движущихся картинок, описанным в каждом из вариантов осуществления, в случае, когда центральный процессор ex502 имеет дополнительную емкость обработки, возбуждение центрального процессора ex502 вероятно приостанавливается в заданный момент. В таком случае время приостановки вероятно устанавливается короче, чем в случае, когда идентификационная информация указывает, что данные видео соответствуют обычному стандарту, такому как MPEG-2, MPEG-4 AVC, и VC-1.
[0420] Соответственно, эффект экономии энергии может быть улучшен, переключаясь между частотами возбуждения в соответствии со стандартом, которому соответствуют данные видео. Кроме того, когда БИС ex500 или устройство, включающее в себя БИС ex500, возбуждаются посредством использования батареи, срок службы батареи может быть увеличен с эффектом экономии энергии.
[0421] [ВАРИАНТ ОСУЩЕСТВЛЕНИЯ 13]
Существуют случаи, когда множество данных видео, которые соответствуют различным стандартам, введены в устройства и системы, такие как телевизор и сотовый телефон. Чтобы разрешить декодирование множества данных видео, которые соответствуют различным стандартам, модуль ex507 обработки сигнала БИС ex500 должен соответствовать различным стандартам. Однако, проблемы увеличения масштаба схемы БИС ex500 и увеличения стоимости возникают с индивидуальным использованием модулей ex507 обработки сигнала, которые соответствуют соответствующим стандартам.
[0422] Чтобы решить эту проблему, то, что задумано, является конфигурацией, в которой модуль обработки декодирования для реализации способа декодирования движущихся картинок, описанного в каждом из вариантов осуществления, и модуль обработки декодирования, который соответствует обычному стандарту, такому как MPEG-2, MPEG-4 AVC, и VC-1, частично совместно используются. Ex900 на фиг. 64A показывает пример этой конфигурации. Например, способ декодирования движущихся картинок, описанный в каждом из вариантов осуществления, и способ декодирования движущихся картинок, который соответствует MPEG-4 AVC, имеют, частично вместе, детали обработки, такие как энтропийное кодирование, обратное квантование, фильтрование удаления блочности, и предсказание с компенсацией движения. Детали обработки, которая должна быть совместно использована, вероятно включают в себя использование модуль ex902 обработки декодирования, который соответствует MPEG-4 AVC. Напротив, специализированный модуль ex901 обработки декодирования вероятно используется для другой обработки, уникальной для аспекта настоящего изобретения. Так как аспект настоящего изобретения характеризуется компенсацией движения, в частности, например, специализированный модуль ex901 обработки декодирования используется для компенсации движения. Иначе, модуль обработки декодирования вероятно совместно используется для одного из энтропийного декодирования, фильтрования удаления блочности и обратного квантования, или все из этих обработок. Модуль обработки декодирования для реализации способа декодирования движущихся картинок, описанный в каждом из вариантов осуществления, может быть совместно использован для обработки, которая должна быть совместно использована, и специализированный модуль обработки декодирования может использоваться для обработки, уникальной для этого из MPEG-4 AVC.
[0423] Кроме того, ex1000 на фиг. 64B показывает другой пример в этой обработке частично совместно используемой. Этот пример использует конфигурацию, включающую в себя специализированный модуль ex1001 обработки декодирования, который поддерживает обработку, уникальную для аспекта настоящего изобретения, специализированный модуль ex1002 обработки декодирования, который поддерживает обработку, уникальную для другого обычного стандарта, и модуль ex1003 обработки декодирования, который поддерживает обработку, которая должна быть совместно использована между способом декодирования движущихся картинок согласно аспекту настоящего изобретения и обычным способом декодирования движущихся картинок. Здесь, специализированные модули ex1001 и ex1002 обработки декодирования не обязательно являются специализированными для обработки согласно аспекту настоящего изобретения и обработки обычного стандарта, соответственно, и могут быть способными к осуществлению обычной обработки. Кроме того, конфигурация существующего варианта осуществления может быть реализована посредством БИС ex500.
[0424] Также, сокращение размеров схемы БИС и сокращение стоимости являются возможными, совместно используя модуль обработки декодирования для обработки, которая должна быть совместно использована между способом декодирования движущихся картинок согласно аспекту настоящего изобретения и способом декодирования движущихся картинок в соответствии с обычным стандартом.
[ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ]
[0425] Способ кодирования движущихся картинок и способ декодирования движущихся картинок согласно настоящему изобретению применимы к любым мультимедийным данным, могут улучшить эффективность кодирования, и полезны в качестве способа кодирования движущихся картинок и способа декодирования движущихся картинок при хранении, передаче, связи, и т.п. используя сотовые телефоны, устройства DVD, и персональные компьютеры, например.
[СПИСОК ССЫЛОЧНЫХ ПОЗИЦИЙ]
[0426] 100, 200, 500, 600 - устройство кодирования движущихся картинок
101, 501 - модуль вычитания
102, 502 - модуль ортогонального преобразования
103, 503 - модуль квантования
104, 302, 504, 702 - модуль обратного квантования
105, 303, 505, 703 - модуль обратного ортогонального преобразования
106, 304, 506, 704 - модуль суммирования
107, 305, 507, 705 - память блоков
108, 306, 508, 706 - память кадров
109, 307, 509, 707 - модуль внутреннего предсказания
110, 308, 510, 708 - модуль внешнего предсказания
111, 309, 511, 709 - модуль управления внешним предсказанием
112, 512 - модуль определения типа картинки
113, 310, 513, 710 - коммутатор
114, 311, 514, 711 - модуль вычисления кандидатов предиктора вектора движения
115, 312, 515, 712 - память colPic
116, 516 - модуль кодирования с переменной длиной кода
210, 410, 610, 810 - модуль получения кандидатов предиктора вектора движения
211, 411, 612, 812 - первый модуль получения
212, 412, 615, 815 - второй модуль получения
220, 430, 620, 830 - модуль управления предсказанием
230, 630 - модуль кодирования
300, 400, 700, 800 - устройство декодирования движущихся картинок
301, 701 - модуль декодирования с переменной длиной кода
420, 820 - модуль декодирования
611, 811 - модуль определения максимального количества
613, 813 - модуль идентификации
614, 814 - модуль определения