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

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0001] Настоящее изобретение относится к способу кодирования движущихся изображений и способу декодирования движущихся изображений.
УРОВЕНЬ ТЕХНИКИ
[0002] При обработке кодирования движущихся изображений, в общем, объем информации сокращается посредством использования избыточности в пространственном направлении и временном направлении, которую имеют движущиеся изображения. Здесь, в общем, преобразование в частотную область используется в качестве способа использования избыточности в пространственном направлении. Дополнительно, обработка кодирования с межкадровым прогнозированием (в дальнейшем в этом документе, называемым "внешним (inter-) прогнозированием") используется в качестве способа использования избыточности во временном направлении. При обработке кодирования с внешним прогнозированием, когда кодируется изображение, кодированное изображение, которое появляется до или после текущего изображения, которое должно быть кодировано, в порядке времени отображения, используется в качестве опорного изображения. Вектор движения извлекается посредством выполнения обнаружения движения для текущего изображения относительно опорного изображения. Затем, избыточность во временном направлении исключается посредством вычисления разности между данными изображений текущего изображения и данными прогнозированных изображений, полученными посредством выполнения компенсации движения на основе извлеченного вектора движения (например, см. непатентный документ (NPL) 1). Здесь, при обнаружении движения вычисляется значение разности между текущим блоком в текущем изображении, которое должно быть кодировано, и блоком в опорном изображении, и блок в опорном изображении, при котором получается наименьшее значение разности, определяется в качестве опорного блока. Затем, вектор движения обнаруживается с использованием текущего блока и опорного блока.
СПИСОК БИБЛИОГРАФИЧЕСКИХ ССЫЛОК
НЕПАТЕНТНЫЕ ДОКУМЕНТЫ
[0003] NPL 1. ITU-T Recommendation H.264 "Advanced video coding for generic audiovisual services", март 2010 года.
NPL 2. JCT-VC "WD3: Working Draft 3 of High-Efficiency Video Coding", JCTVC-E603, март 2011 года.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
ТЕХНИЧЕСКАЯ ЗАДАЧА
[0004] Тем не менее, в вышеописанной традиционной технологии имеется потребность достигать повышения устойчивости к ошибкам при кодировании и декодировании движущегося изображения с использованием внешнего прогнозирования.
[0005] С учетом этого, цель настоящего изобретения заключается в том, чтобы предоставлять способ кодирования движущихся изображений и способ декодирования движущихся изображений, которые повышают устойчивость к ошибкам при кодировании и декодировании движущегося изображения с использованием внешнего прогнозирования.
РЕШЕНИЕ ЗАДАЧИ
[0006] Способ кодирования движущихся изображений согласно аспекту настоящего изобретения представляет собой способ кодирования движущихся изображений для вычисления предиктора вектора движения, который должен быть использован при кодировании вектора движения текущего блока, который должен быть кодирован, и кодирования текущего блока, чтобы генерировать поток битов, причем способ включает в себя: определение максимального числа кандидатов-предикторов вектора движения, каждый из которых представляет собой кандидата для предиктора вектора движения; извлечение одного или более первых кандидатов-предикторов вектора движения; определение того, меньше или нет общее число одного или более первых кандидатов-предикторов вектора движения максимального числа; извлечение одного или более вторых кандидатов-предикторов вектора движения, когда определяется то, что общее число одного или более первых кандидатов-предикторов вектора движения меньше максимального числа; выбор, из числа упомянутого одного или более первых кандидатов-предикторов вектора движения и одного или более вторых кандидатов-предикторов вектора движения, предиктора вектора движения, который должен быть использован для кодирования вектора движения текущего блока; и кодирование, с использованием определенного максимального числа, индекса для идентификации выбранного предиктора вектора движения и добавление кодированного индекса в поток битов.
[0007] Следует отметить, что эти общие и конкретные аспекты могут быть реализованы с использованием системы, способа, интегральной схемы, компьютерной программы, считываемого компьютером носителя записи, такого как постоянное запоминающее устройство на компакт-дисках (CD-ROM), либо любой комбинации систем, способов, интегральных схем, компьютерных программ или носителей записи.
ПРЕИМУЩЕСТВА ИЗОБРЕТЕНИЯ
[0008] Согласно аспекту настоящего изобретения, можно повышать устойчивость к ошибкам при кодировании и декодировании движущегося изображения с использованием внешнего прогнозирования.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0009] Фиг. 1A является схемой для описания примера списка опорных изображений для B-изображения.
Фиг. 1B показывает пример списка опорных изображений для направления 0 прогнозирования для B-изображения.
Фиг. 1C показывает пример списка опорных изображений для направления 1 прогнозирования для B-изображения.
Фиг. 2 является схемой для описания векторов движения в режиме временного прогнозирования векторов движения.
Фиг. 3 показывает примеры векторов движения смежных блоков, используемых в режиме обозначения предикторов вектора движения.
Фиг. 4 является схемой для описания примера списка кандидатов-предикторов вектора движения для направления 0 прогнозирования.
Фиг. 5 является схемой для описания примера списка кандидатов-предикторов вектора движения для направления 1 прогнозирования.
Фиг. 6 показывает примеры назначения битовых строк индексам предикторов вектора движения.
Фиг. 7 является блок-схемой последовательности операций способа, показывающей пример обработки кодирования, выполняемой, когда используется режим обозначения предикторов вектора движения.
Фиг. 8A показывает пример вычисления предиктора вектора движения.
Фиг. 8B показывает пример вычисления предиктора вектора движения.
Фиг. 9 является блок-схемой, показывающей пример конфигурации устройства кодирования движущихся изображений, которое кодирует движущееся изображение с использованием режима обозначения предикторов вектора движения.
Фиг. 10 является блок-схемой последовательности операций способа, показывающей пример обработки декодирования, выполняемой, когда используется режим обозначения предикторов вектора движения.
Фиг. 11 является блок-схемой, показывающей пример конфигурации устройства декодирования движущихся изображений, которое декодирует движущееся изображение, кодированное с использованием режима обозначения предикторов вектора движения.
Фиг. 12 показывает синтаксис, используемый, когда индекс предиктора вектора движения добавляется в поток битов.
Фиг. 13 является блок-схемой, показывающей конфигурацию устройства кодирования движущихся изображений согласно варианту 1 осуществления.
Фиг. 14 является блок-схемой последовательности операций способа, показывающей операцию обработки устройства кодирования движущихся изображений согласно варианту 1 осуществления.
Фиг. 15 показывает пример списка кандидатов-предикторов вектора движения для направления 0 прогнозирования в варианте 1 осуществления.
Фиг. 16 показывает пример списка кандидатов-предикторов вектора движения для направления 1 прогнозирования в варианте 1 осуществления.
Фиг. 17 является блок-схемой последовательности операций способа, показывающей обработку для вычисления кандидата-предиктора вектора движения и размера списка кандидатов-предикторов вектора движения в варианте 1 осуществления.
Фиг. 18 является блок-схемой последовательности операций способа, показывающей обработку для обновления числа доступных кандидатов-предикторов в варианте 1 осуществления.
Фиг. 19 является блок-схемой последовательности операций способа, показывающей обработку для добавления нового кандидата в варианте 1 осуществления.
Фиг. 20 является блок-схемой последовательности операций способа, показывающей обработку касательно выбора кандидата-предиктора вектора движения в варианте 1 осуществления.
Фиг. 21 является блок-схемой, показывающей конфигурацию устройства кодирования движущихся изображений согласно варианту 2 осуществления.
Фиг. 22 является блок-схемой последовательности операций способа, показывающей операцию обработки устройства кодирования движущихся изображений согласно варианту 2 осуществления.
Фиг. 23 является блок-схемой, показывающей конфигурацию устройства декодирования движущихся изображений согласно варианту 3 осуществления.
Фиг. 24 является блок-схемой последовательности операций способа, показывающей операцию обработки устройства декодирования движущихся изображений согласно варианту 3 осуществления.
Фиг. 25 является блок-схемой последовательности операций способа, показывающей обработку для вычисления числа доступных кандидатов-предикторов в варианте 3 осуществления.
Фиг. 26 является блок-схемой последовательности операций способа, показывающей обработку для вычисления кандидата-предиктора вектора движения в варианте 3 осуществления.
Фиг. 27 показывает пример синтаксиса, используемого, когда индекс предиктора вектора движения добавляется в поток битов.
Фиг. 28 показывает пример синтаксиса, используемого, когда размер списка кандидатов-предикторов вектора движения устанавливается равным максимальному значению числа кандидатов-предикторов вектора движения.
Фиг. 29 является блок-схемой, показывающей конфигурацию устройства декодирования движущихся изображений согласно варианту 4 осуществления.
Фиг. 30 является блок-схемой последовательности операций способа, показывающей операцию обработки устройства декодирования движущихся изображений согласно варианту 4 осуществления.
Фиг. 31 показывает общую конфигурацию системы предоставления контента для реализации услуг распространения контента.
Фиг. 32 показывает общую конфигурацию цифровой широковещательной системы.
Фиг. 33 показывает блок-схему, иллюстрирующую пример конфигурации телевизионного приемника.
Фиг. 34 показывает блок-схему, иллюстрирующую пример конфигурации модуля воспроизведения/записи информации, который считывает и записывает информацию с и на носитель записи, который является оптическим диском.
Фиг. 35 показывает пример конфигурации носителя записи, который является оптическим диском.
Фиг. 36A показывает пример сотового телефона.
Фиг. 36B является блок-схемой, показывающей пример конфигурации сотового телефона.
Фиг. 37 иллюстрирует структуру мультиплексированных данных.
Фиг. 38 схематично показывает то, как каждый поток мультиплексируется в мультиплексированных данных.
Фиг. 39 показывает то, как видеопоток сохраняется в потоке PES-пакетов.
Фиг. 40 показывает структуру TS-пакетов и исходных пакетов в мультиплексированных данных.
Фиг. 41 показывает структуру данных PMT.
Фиг. 42 показывает внутреннюю структуру информации мультиплексированных данных.
Фиг. 43 показывает внутреннюю структуру информации атрибутов потока.
Фиг. 44 показывает этапы для идентификации видеоданных.
Фиг. 45 показывает пример конфигурации интегральной схемы для реализации способа кодирования движущихся изображений и способа декодирования движущихся изображений согласно каждому из вариантов осуществления.
Фиг. 46 показывает конфигурацию для переключения между частотами возбуждения.
Фиг. 47 показывает этапы для идентификации видеоданных и переключения между частотами возбуждения.
Фиг. 48 показывает пример таблицы поиска, в которой стандарты видеоданных ассоциированы с частотами возбуждения.
Фиг. 49A является схемой, показывающей пример конфигурации для совместного использования модуля процессора сигналов.
Фиг. 49B является схемой, показывающей другой пример конфигурации для совместного использования модуля процессора сигналов.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[0010] БАЗОВАЯ ОСНОВА ФОРМИРОВАНИЯ ЗНАНИЙ НАСТОЯЩЕГО ИЗОБРЕТЕНИЯ
В схеме кодирования движущихся изображений, называемой H.264, которая уже стандартизирована, три типа изображений, а именно, I-изображение, P-изображение и B-изображение, используются для того, чтобы сжимать количество информации.
[0011] I-изображение не кодируется посредством обработки кодирования с внешним прогнозированием. В частности, I-изображение кодируется посредством обработки кодирования с внутренним (-intra) прогнозированием (в дальнейшем в этом документе, называемым "внутренним прогнозированием"). 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 показывает случай, когда блок a в изображении B2 должен быть кодирован в режиме временного прогнозирования векторов движения.
[0019] Здесь, используется вектор vb движения, который используется, когда кодируется блок b (в дальнейшем в этом документе, называемый "совместно размещенным блоком") в позиции в изображении P3, идентичной позиции блока a, причем изображение P3 является опорным изображением, которое появляется после изображения B2. Вектор vb движения является вектором движения, используемым, когда блок b кодируется посредством обращения к изображению P1.
[0020] Два опорных блока для блока a получаются из изображения P1, которое является прямым опорным изображением, и изображения P3, которое является обратным опорным изображением, с использованием векторов движения, параллельных вектору vb движения. Затем, блок a кодируется посредством выполнения двунаправленного прогнозирования на основе двух полученных опорных блоков. В частности, векторы движения, используемые, когда кодируется блок a, являются вектором 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] Например, при извлечении одного или более первых кандидатов-предикторов вектора движения, вектор движения, используемый для кодирования блока, может извлекаться в качестве первого кандидата-предиктора вектора движения, причем блок является пространственно смежным с текущим блоком и не является (i) блоком, кодированным посредством внутреннего прогнозирования, (ii) блоком, расположенным за пределами границы среза или изображения, которое включает в себя текущий блок, или (iii) блоком, который еще не кодирован.
[0057] Согласно этому первый кандидат-предиктор вектора движения может извлекаться на основе блока, подходящего для получения кандидата-предиктора вектора движения.
[0058] Например, при извлечении одного или более вторых кандидатов-предикторов вектора движения, кандидат-предиктор вектора движения, имеющий вектор движения, отличающийся от вектора движения любого из упомянутого одного или более первых кандидатов-предикторов вектора движения, может извлекаться в качестве второго кандидата-предиктора вектора движения.
[0059] Согласно этому кандидат-предиктор вектора движения, имеющий вектор движения, отличающийся от вектора движения любого первого кандидата-предиктора вектора движения, может извлекаться в качестве второго кандидата-предиктора вектора движения. Таким образом, число кандидатов-предикторов вектора движения, имеющих различные векторы движения, может быть увеличено, что дает возможность дополнительного повышения эффективности кодирования.
[0060] Например, при добавлении кодированного индекса, информация, указывающая определенное максимальное число, дополнительно может добавляться в поток битов.
[0061] Согласно этому информация, указывающая определенное максимальное число, может добавляться в поток битов. Следовательно, максимальное число может быть изменено в надлежащих единицах, что дает возможность повышения эффективности кодирования.
[0062] Например, способ кодирования движущихся изображений дополнительно может включать в себя: переключение между первой обработкой кодирования, соответствующей первому стандарту, и второй обработкой кодирования, соответствующей второму стандарту; и добавление, в поток битов, идентификационной информации, указывающей первый стандарт или второй стандарт, которому соответствует соответствующая одна из первой обработки кодирования и второй обработки кодирования после переключения, при этом, когда осуществляется переключение на первую обработку кодирования, определение максимального числа, извлечение одного или более первых кандидатов-предикторов вектора движения, определение того, меньше или нет общее число одного или более первых кандидатов-предикторов вектора движения, извлечение одного или более вторых кандидатов-предикторов вектора движения, выбор предиктора вектора движения, кодирование индекса и добавление кодированного индекса может быть выполнено в качестве первой обработки кодирования.
[0063] Согласно этому можно переключаться между первой обработкой кодирования, соответствующей первому стандарту, и второй обработкой кодирования, соответствующей второму стандарту.
[0064] Способ декодирования движущихся изображений согласно аспекту настоящего изобретения представляет собой способ декодирования движущихся изображений для вычисления предиктора вектора движения, который должен быть использован при декодировании вектора движения текущего блока, который должен быть декодирован, который включается в поток битов, и декодирования текущего блока, причем способ включает в себя: определение максимального числа кандидатов-предикторов вектора движения, каждый из которых представляет собой кандидата для предиктора вектора движения; извлечение одного или более первых кандидатов-предикторов вектора движения; определение того, меньше или нет общее число одного или более первых кандидатов-предикторов вектора движения максимального числа; извлечение одного или более вторых кандидатов-предикторов вектора движения, когда определяется то, что общее число одного или более первых кандидатов-предикторов вектора движения меньше максимального числа; декодирование, с использованием определенного максимального числа, кодированного индекса, добавляемого в поток битов и используемого для идентификации предиктора вектора движения; и выбор, на основе декодированного индекса, предиктора вектора движения, который должен быть использован для декодирования текущего блока, из числа упомянутого одного или более первых кандидатов-предикторов вектора движения и упомянутого одного или более вторых кандидатов-предикторов вектора движения.
[0065] Согласно этому индекс для идентификации кандидата-предиктора вектора движения может быть декодирован с использованием определенного максимального числа. В частности, индекс может быть декодирован без зависимости от числа фактически извлеченных кандидатов-предикторов вектора движения. Следовательно, индекс может быть декодирован, даже если информация, необходимая для извлечения кандидата-предиктора вектора движения (например, информация совместно размещенного блока и т.п.), потеряна, что обеспечивает возможность повышения устойчивости к ошибкам. Кроме того, можно декодировать индекс без ожидания извлечения кандидата-предиктора вектора движения, а также извлекать кандидат-предиктор вектора движения и декодировать индекс параллельно.
[0066] Кроме того, согласно этому, если определено то, что число первых кандидатов-предикторов вектора движения меньше максимального числа, могут извлекаться один или более вторых кандидатов-предикторов вектора движения. Следовательно, число кандидатов-предикторов вектора движения может быть увеличено в диапазоне, который не превышает максимальное число, и за счет этого может быть декодировано кодированное изображение, для которого повышена эффективность кодирования.
[0067] Например, при извлечении первых кандидатов-предикторов вектора движения, кандидат-предиктор вектора движения может извлекаться в качестве первого кандидата-предиктора вектора движения, причем кандидат-предиктор вектора движения имеет вектор движения, отличающийся от вектора движения любого из упомянутого одного или более первых кандидатов-предикторов вектора движения, которые уже извлечены.
[0068] Согласно этому может быть удален избыточный первый кандидат-предиктор вектора движения. Как результат, число вторых кандидатов-предикторов вектора движения может быть увеличено, и типы выбираемых векторов движения могут быть увеличены. Следовательно, можно декодировать кодированное изображение, для которого дополнительно повышена эффективность кодирования.
[0069] Например, при извлечении одного или более первых кандидатов-предикторов вектора движения, один или более первых кандидатов-предикторов вектора движения могут извлекаться на основе вектора движения, используемого для декодирования блока, смежного во времени или пространственно с текущим блоком.
[0070] Согласно этому первый кандидат-предиктор вектора движения может извлекаться на основе вектора движения, используемого для декодирования блока, смежного во времени или пространственно с текущим блоком.
[0071] Например, при извлечении одного или более первых кандидатов-предикторов вектора движения, вектор движения, используемый для декодирования блока, может извлекаться в качестве первого кандидата-предиктора вектора движения, причем блок является кандидатом-блоком, пространственно смежным с текущим блоком, и не является (i) блоком, декодированным посредством внутреннего прогнозирования, (ii) блоком, расположенным за пределами границы среза или изображения, которое включает в себя текущий блок, или (iii) блоком, который еще не декодирован.
[0072] Согласно этому первый кандидат-предиктор вектора движения может извлекаться из блока, подходящего для получения кандидата-предиктора вектора движения.
[0073] Например, при извлечении одного или более вторых кандидатов-предикторов вектора движения, кандидат-предиктор вектора движения, имеющий вектор движения, отличающийся от вектора движения любого из упомянутого одного или более первых кандидатов-предикторов вектора движения, может извлекаться в качестве второго кандидата-предиктора вектора движения.
[0074] Согласно этому кандидат-предиктор вектора движения, имеющий вектор движения, отличающийся от вектора движения любого первого кандидата-предиктора вектора движения, может извлекаться в качестве второго кандидата-предиктора вектора движения. Таким образом, число кандидатов-предикторов вектора движения, имеющих различные векторы движения, может быть увеличено, и может быть декодировано кодированное изображение, для которого дополнительно повышена эффективность кодирования.
[0075] Например, при определении максимального числа, максимальное число может быть определено на основе информации, указывающей максимальное число, и добавлено в поток битов.
[0076] Согласно этому максимальное число может быть определено на основе информации, добавляемой в поток битов. Таким образом, можно декодировать изображение, кодированное посредством изменения максимального числа в надлежащих единицах.
[0077] Например, способ декодирования движущихся изображений дополнительно может включать в себя переключение между первой обработкой декодирования, соответствующей первому стандарту, и второй обработкой декодирования, соответствующей второму стандарту, согласно идентификационной информации, указывающей первый стандарт или второй стандарт и добавляемой в поток битов, при этом, когда осуществляется переключение на первую обработку декодирования, определение максимального числа, извлечение одного или более первых кандидатов-предикторов вектора движения, определение того, меньше или нет общее число одного или более первых кандидатов-предикторов вектора движения, извлечение одного или более вторых кандидатов-предикторов вектора движения, декодирование кодированного индекса и выбор предиктора вектора движения могут выполняться в качестве первой обработки декодирования.
[0078] Согласно этому можно переключаться между первой обработкой декодирования, соответствующей первому стандарту, и второй обработкой декодирования, соответствующей второму стандарту.
[0079] Следует отметить, что общие и конкретные аспекты, описанные выше, могут быть реализованы с использованием системы, способа, интегральной схемы, компьютерной программы или считываемого компьютером носителя записи, такого как CD-ROM, либо любой комбинации систем, способов, интегральных схем, компьютерных программ или машиночитаемых носителей записи.
[0080] Ниже приводится конкретное описание устройства кодирования движущихся изображений и устройства декодирования движущихся изображений согласно аспекту настоящего изобретения, со ссылкой на чертежи.
[0081] Каждый из примерных вариантов осуществления, описанных ниже, показывает общий или конкретный пример. Числовые значения, формы, материалы, составляющие элементы, компоновка и соединение составляющих элементов, этапы, порядок обработки этапов, и т.п., описанные в нижеприведенных вариантах осуществления, являются просто примерами и в силу этого не ограничивают объем прилагаемой формулы изобретения и ее эквивалентов. Следовательно, из составляющих элементов в нижеприведенных примерных вариантах осуществления, составляющие элементы, не изложенные ни в одном из независимых пунктов формулы изобретения, описываются как произвольные составляющие элементы.
[0082] ВАРИАНТ 1 ОСУЩЕСТВЛЕНИЯ
Фиг. 13 является блок-схемой, показывающей конфигурацию устройства 100 кодирования движущихся изображений согласно варианту 1 осуществления.
[0083] Как показано на фиг. 13, устройство 100 кодирования движущихся изображений включает в себя модуль 101 вычитания, модуль 102 ортогонального преобразования, модуль 103 квантования, модуль 104 обратного квантования, модуль 105 обратного ортогонального преобразования, модуль 106 суммирования, память 107 блоков, память 108 кадров, модуль 109 внутреннего прогнозирования, модуль 110 внешнего прогнозирования, модуль 111 управления внешним прогнозированием, модуль 112 определения типов изображений, переключатель 113, модуль 114 вычисления кандидатов-предикторов вектора движения, память 115 colPic и модуль 116 кодирования с переменной длиной слова.
[0084] Модуль 101 вычитания генерирует данные ошибок прогнозирования посредством вычитания, для каждого блока, данных прогнозированных изображений из входных данных изображений, включенных во входную последовательность изображений. Модуль 102 ортогонального преобразования преобразует сгенерированные данные ошибок прогнозирования из области изображений в частотную область. Модуль 103 квантования выполняет обработку квантования для данных ошибок прогнозирования, которые преобразованы в частотную область.
[0085] Модуль 104 обратного квантования выполняет обработку обратного квантования для данных ошибок прогнозирования, для которых выполнена обработка квантования посредством модуля 103 квантования. Модуль 105 обратного ортогонального преобразования преобразует данные ошибок прогнозирования, для которых выполнена обработка обратного квантования, из частотной области в область изображений.
[0086] Модуль 106 суммирования генерирует данные восстановленных изображений посредством суммирования, для каждого блока, который должен быть кодирован, данных прогнозированных изображений и данных ошибок прогнозирования, для которых выполнена обработка обратного квантования посредством модуля 105 обратного ортогонального преобразования. Память 107 блоков сохраняет данные восстановленных изображений на поблочной основе. Память 108 кадров сохраняет данные восстановленных изображений на покадровой основе.
[0087] Модуль 112 определения типов изображений определяет то, в качестве каких из типов изображений, а именно, I-изображения, B-изображения и P-изображения, должны быть кодированы входные данные изображений. Затем, модуль 112 определения типов изображений генерирует информацию типов изображений. Модуль 109 внутреннего прогнозирования генерирует данные внутренне прогнозированных изображений текущего блока, который должен быть кодирован, посредством выполнения внутреннего прогнозирования с использованием данных восстановленных изображений в единицах блоков, сохраненных в памяти 107 блоков. Модуль 110 внешнего прогнозирования генерирует данные внешне прогнозированных изображений текущего блока, который должен быть кодирован, посредством выполнения внешнего прогнозирования с использованием данных восстановленных изображений в единицах кадров, сохраненных в памяти 108 кадров, и вектора движения, извлеченного посредством обнаружения движения и т.п.
[0088] Переключатель 113 выводит данные внутренне прогнозированных изображений, сгенерированные посредством модуля 109 внутреннего прогнозирования, в модуль 101 вычитания и модуль 106 суммирования в качестве данных прогнозированных изображений текущего блока, если кодирование с внутренним прогнозированием выполняется для текущего блока. С другой стороны, переключатель 113 выводит данные внешне прогнозированных изображений, сгенерированные посредством модуля 110 внешнего прогнозирования, в модуль 101 вычитания и модуль 106 суммирования в качестве данных прогнозированных изображений текущего блока, если кодирование с внешним прогнозированием выполняется для текущего блока.
[0089] Модуль 114 вычисления кандидатов-предикторов вектора движения извлекает кандидатов-предикторов вектора движения в режиме обозначения предикторов вектора движения с использованием векторов движения блоков, смежных с текущим блоком и т.п., и информации colPic, такой как информация вектора движения совместно размещенного блока, сохраненная в памяти 115 colPic. Затем, модуль 114 вычисления кандидатов-предикторов вектора движения вычисляет число доступных кандидатов-предикторов с использованием способа, описанного ниже. Дополнительно, модуль 114 вычисления кандидатов-предикторов вектора движения назначает значения индекса предиктора вектора движения извлеченным кандидатам-предикторам вектора движения. Затем, модуль 114 вычисления кандидатов-предикторов вектора движения отправляет кандидаты-предикторы вектора движения и индексы предикторов вектора движения в модуль 111 управления внешним прогнозированием. Модуль 114 вычисления кандидатов-предикторов вектора движения передает число вычисленных доступных кандидатов-предикторов в модуль 116 кодирования с переменной длиной слова.
[0090] Модуль 111 управления внешним прогнозированием управляет модулем 110 внешнего прогнозирования таким образом, чтобы инструктировать модулю 110 внешнего прогнозирования выполнять взаимное прогнозирующее кодирование с использованием взаимно прогнозированного изображения, сгенерированного с использованием вектора движения, извлеченного посредством обнаружения движения. Дополнительно, модуль 111 управления внешним прогнозированием выбирает, с использованием способа, описанного ниже, кандидата-предиктора вектора движения, наиболее подходящего для кодирования вектора движения, используемого для кодирования с внешним прогнозированием. Затем, модуль 111 управления внешним прогнозированием отправляет индекс предиктора вектора движения, соответствующий выбранному кандидату-предиктору вектора движения, и информацию ошибки прогнозирования (разность векторов движения), в модуль 116 кодирования с переменной длиной слова. Кроме того, модуль 111 управления внешним прогнозированием передает информацию colPic, включающую в себя информацию вектора движения текущего блока и т.п., в память 115 colPic.
[0091] Модуль 116 кодирования с переменной длиной слова выполняет обработку кодирования с переменной длиной слова для данных ошибок прогнозирования, для которых выполнена обработка квантования, флага направления прогнозирования, информации типов изображений и разности векторов движения, за счет этого генерируя поток битов. Дополнительно, модуль 116 кодирования с переменной длиной слова задает размер списка кандидатов-предикторов вектора движения равным числу доступных кандидатов-предикторов. Затем, модуль 116 кодирования с переменной длиной слова кодирует с переменной длиной слова индекс предиктора вектора движения, используемый для кодирования вектора движения, посредством назначения ему битовой строки согласно размеру списка кандидатов-предикторов вектора движения.
[0092] Фиг. 14 является блок-схемой последовательности операций способа, показывающей операцию обработки устройства 100 кодирования движущихся изображений согласно варианту 1 осуществления.
[0093] На этапе S101, модуль 111 управления внешним прогнозированием определяет направление прогнозирования, индекс опорного изображения и вектор движения текущего блока, который должен быть кодирован, посредством обнаружения движения. Здесь, при обнаружении движения вычисляется значение разности, указывающее разность между текущим блоком, который должен быть кодирован в изображении, которое должно быть кодировано, и блоком в опорном изображении, и блок в опорном изображении, при котором значение разности является наименьшим, определяется в качестве опорного блока. Затем, вектор движения получается на основе позиции текущего блока, который должен быть кодирован, и позиции опорного блока, например, с использованием способа для получения вектора движения. Дополнительно, модуль 111 управления внешним прогнозированием выполняет обнаружение движения для каждого из опорных изображений в направлениях 0 и 1 прогнозирования и определяет то, следует выбирать направление 0 прогнозирования, направление 1 прогнозирования или двунаправленное прогнозирование, с использованием, например, следующего выражения для модели R-D-оптимизации и т.п.
[0094] Cost=D+λ×R (выражение 3)
[0095] В выражении 3 D обозначает искажение при кодировании, и, например, для него используется сумма абсолютных разностей, каждая из которых представляет собой абсолютную разность между пиксельным значением, полученным посредством кодирования и декодирования текущего блока с использованием прогнозированного изображения, сгенерированного с использованием некоторого вектора движения, и исходным пиксельным значением текущего блока. R обозначает объем сгенерированного кода, и объем кода, необходимый для того, чтобы кодировать вектор движения, используемый для генерирования прогнозированного изображения, используется для этого. Дополнительно, λ обозначает неопределенный множитель Лагранжа.
[0096] На этапе S102, модуль 114 вычисления кандидатов-предикторов вектора движения извлекает кандидатов-предикторов вектора движения из блоков, смежных с текущим блоком и его совместно размещенным блоком. Дополнительно, модуль 114 вычисления кандидатов-предикторов вектора движения вычисляет размер списка кандидатов-предикторов вектора движения согласно способу, описанному ниже.
[0097] Например, в случае, показанном на фиг. 3, модуль 114 вычисления кандидатов-предикторов вектора движения выбирает векторы движения, которые имеют смежные блоки A, B, C и D, в качестве кандидатов-предикторов вектора движения текущего блока. Кроме того, модуль 114 вычисления кандидатов-предикторов вектора движения вычисляет вектор движения, например, который вычисляется с использованием режима временного прогнозирования из вектора движения совместно размещенного блока, в качестве кандидата-предиктора вектора движения.
[0098] Модуль 114 вычисления кандидатов-предикторов вектора движения назначает индексы предикторов вектора движения кандидатам-предикторам вектора движения в направлениях 0 и 1 прогнозирования, как показано в (a) на фиг. 15 и (a) на фиг. 16. Затем, модуль 114 вычисления кандидатов-предикторов вектора движения вычисляет списки кандидатов-предикторов вектора движения, как показано в (b) на фиг. 15 и (b) на фиг. 16, и размеры списков кандидатов-предикторов вектора движения посредством удаления недоступного кандидата-предиктора и избыточного кандидата и добавления нового кандидата, с использованием способа, описанного ниже.
[0099] Чем меньше значение индекса предиктора вектора движения, тем более короткий код назначается индексу предиктора вектора движения. В частности, если значение индекса предиктора вектора движения является небольшим, объем информации, необходимый для индекса предиктора вектора движения, является небольшим. С другой стороны, если значение индекса предиктора вектора движения является большим, объем информации, необходимый для индекса предиктора вектора движения, является большим. Таким образом, эффективность кодирования повышается посредством назначения индекса предиктора вектора движения, имеющего небольшое значение, кандидату-предиктору вектора движения, имеющему высокую вероятность становления предиктором вектора движения с высокой точностью.
[0100] С учетом этого, модуль 114 вычисления кандидатов-предикторов вектора движения может измерять для каждого кандидата-предиктора вектора движения число раз, когда кандидат-предиктор вектора движения выбран в качестве предиктора вектора движения, и назначает, например, индекс предиктора вектора движения, имеющий небольшое значение, кандидату-предиктору вектора движения, для которого число раз, когда выбран кандидата, является большим. В частности, можно рассматривать идентификацию предиктора вектора движения, выбранного в смежном блоке, и при кодировании текущего блока, назначение индекса предиктора вектора движения, имеющего небольшое значение, идентифицированному кандидату-предиктору вектора движения.
[0101] Следует отметить, что, если смежный блок не имеет информации вектора движения и т.п. (если смежный блок кодирован посредством внутреннего прогнозирования, если смежный блок находится, например, за пределами границы изображения или среза, если смежный блок еще не кодирован, и т.п.), смежный блок не может быть использован в качестве кандидата-предиктора вектора движения.
[0102] В настоящем варианте осуществления, кандидат, который не может быть использован в качестве кандидата-предиктора вектора движения, упоминается как недоступный кандидат-предиктор. Кандидат, который может быть использован в качестве кандидата-предиктора вектора движения, упоминается как доступный кандидат-предиктор. Дополнительно, из множества кандидатов-предикторов вектора движения, кандидат, значение которого является идентичным любому из других предикторов вектора движения, упоминается как избыточный кандидат.
[0103] В случае фиг. 3, смежный блок C является блоком, кодированным посредством внутреннего прогнозирования, и в силу этого предположительно представляет собой недоступный кандидат-предиктор. Дополнительно, предиктор sMvL0_D вектора движения в направлении 0 прогнозирования, сгенерированный из смежного блока D, имеет значение, идентичное значению предиктора MvL0_A вектора движения в направлении 0 прогнозирования, сгенерированного из смежного блока A, и в силу этого предположительно представляет собой избыточный кандидат.
[0104] На этапе S103, модуль 111 управления внешним прогнозированием определяет значение индекса предиктора вектора движения, который должен быть использован для кодирования вектора движения в направлении X прогнозирования, посредством использования способа, описанного ниже.
[0105] На этапе S104, модуль 116 кодирования с переменной длиной слова кодирует с переменной длиной слова индексы предикторов вектора движения для кандидатов-предикторов вектора движения, которые должны быть использованы для кодирования векторов движения в направлении X прогнозирования, посредством назначения им битовых строк согласно размеру списка кандидатов-предикторов вектора движения, как показано на фиг. 6.
[0106] В настоящем варианте осуществления, как показано в (a) на фиг. 15 и (a) на фиг. 16, "0" назначается в качестве значения индекса предиктора вектора движения, соответствующего смежному блоку A. "1" назначается в качестве значения индекса предиктора вектора движения, соответствующего смежному блоку B. "2" назначается в качестве значения индекса предиктора вектора движения, соответствующего совместно размещенному блоку. "3" назначается в качестве значения индекса предиктора вектора движения, соответствующего смежному блоку C. "4" назначается в качестве значения индекса предиктора вектора движения, соответствующего смежному блоку D.
[0107] Следует отметить, что способ назначать индексы предикторов вектора движения не обязательно ограничен этим примером. Например, если новый кандидат добавляется с использованием способа, описанного ниже, модуль 116 кодирования с переменной длиной слова может назначать небольшое значение кандидату-предиктору вектора движения, который не является вновь добавленным, а большое значение - новому кандидату. В частности, модуль 116 кодирования с переменной длиной слова может предпочтительно назначать индекс предиктора вектора движения, имеющий небольшое значение, кандидату-предиктору вектора движения, который не является вновь добавленным.
[0108] Дополнительно, кандидаты-предикторы вектора движения не обязательно ограничены позициями смежных блоков A, B, C и D. Например, смежный блок, расположенный в левом нижнем смежном блоке D, к примеру, может быть использован для того, чтобы получать кандидата-предиктора вектора движения. Дополнительно, все смежные блоки не обязательно должны быть использованы для того, чтобы получать кандидатов-предикторов вектора движения. Например, только смежные блоки A и B могут быть использованы для того, чтобы получать кандидатов-предикторов вектора движения. Альтернативно, смежные блоки могут быть последовательно сканированы посредством использования, например, смежного блока A, если смежный блок D является недоступным кандидатом-предиктором.
[0109] Дополнительно, в настоящем варианте осуществления, хотя модуль 116 кодирования с переменной длиной слова добавляет индекс предиктора вектора движения в поток битов на этапе S104 на фиг. 14, индекс предиктора вектора движения не обязательно должен добавляться в поток битов. Например, если размер списка кандидатов-предикторов вектора движения равен 1, модуль 116 кодирования с переменной длиной слова может не добавлять индекс предиктора вектора движения в поток битов. Соответственно, объем информации может быть сокращен на объем информации для индекса предиктора вектора движения.
[0110] Фиг. 17 является блок-схемой последовательности операций способа, показывающей подробную обработку этапа S102 на фиг. 14. В частности, фиг. 17 показывает способ для вычисления кандидатов-предикторов вектора движения и размера списка кандидатов-предикторов вектора движения. Ниже приводится описание фиг. 17.
[0111] На этапе S111, модуль 114 вычисления кандидатов-предикторов вектора движения определяет, с использованием способа, описанного ниже, то, является либо нет кандидат-блок прогнозирования [N] доступным кандидатом-предиктором. Затем, модуль 114 вычисления кандидатов-предикторов вектора движения обновляет число доступных кандидатов-предикторов в соответствии с результатом определения.
[0112] Здесь, N является значением индекса для обозначения каждого кандидата-блока прогнозирования. В настоящем варианте осуществления, N является одним из значений от 0 до 4. В частности, смежный блок A на фиг. 3 назначается кандидату-блоку прогнозирования [0]. Смежный блок B на фиг. 3 назначается кандидату-блоку прогнозирования [1]. Совместно размещенный блок назначается кандидату-блоку прогнозирования [2]. Смежный блок C на фиг. 3 назначается кандидату-блоку прогнозирования [3]. Смежный блок D на фиг. 3 назначается кандидату-блоку прогнозирования [4].
[0113] На этапе S112, модуль 114 вычисления кандидатов-предикторов вектора движения извлекает кандидата-предиктора вектора движения в направлении X прогнозирования из кандидата-блока прогнозирования [N] с использованием вышеприведенных выражений 1 и 2 и добавляет извлеченного кандидата в соответствующий один из списков кандидатов-предикторов вектора движения.
[0114] На этапе S113, модуль 114 вычисления кандидатов-предикторов вектора движения выполняет поиск и удаляет недоступного кандидата-предиктора и избыточного кандидата из списков кандидатов-предикторов вектора движения, как показано на фиг. 15 и 16.
[0115] На этапе S114, модуль 114 вычисления кандидатов-предикторов вектора движения добавляет нового кандидата в соответствующий один из списков кандидатов-предикторов вектора движения посредством использования способа, описанного ниже. Здесь, когда добавляется новый кандидат, модуль 114 вычисления кандидатов-предикторов вектора движения может переназначать значения индексов предикторов вектора движения таким образом, чтобы предпочтительно назначать небольшой индекс предиктора вектора движения кандидату-предиктору вектора движения, который не является вновь добавленным. В частности, модуль 114 вычисления кандидатов-предикторов вектора движения может переназначать значения индексов предикторов вектора движения таким образом, чтобы назначать индекс предиктора вектора движения, имеющий большое значение, новому кандидату. Соответственно, объем индексов предиктора кодирования вектора движения может быть уменьшен.
[0116] На этапе S115, модуль 114 вычисления кандидатов-предикторов вектора движения задает размер списка кандидатов-предикторов вектора движения равным числу доступных кандидатов-предикторов, вычисленному на этапе S111. В примерах фиг. 15 и 16, посредством использования способа, описанного ниже, "4" вычисляется как число доступных кандидатов-предикторов в направлении 0 прогнозирования, и размер списка кандидатов-предикторов вектора движения для направления 0 прогнозирования задается равным "4". Дополнительно, "4" вычисляется как число доступных кандидатов-предикторов в направлении 1 прогнозирования, и размер списка кандидатов-предикторов вектора движения для направления 1 прогнозирования задается равным "4".
[0117] Следует отметить, что новый кандидат на этапе S114 является кандидатом, вновь добавленным в кандидаты-предикторы вектора движения с использованием способа, описанного ниже, если число кандидатов-предикторов вектора движения не достигает числа доступных кандидатов-предикторов. Например, новый кандидат может быть предиктором вектора движения, сгенерированным из смежного блока, расположенного в левом нижнем смежном блоке D на фиг. 3. Новый кандидат может быть, например, предиктором вектора движения, сгенерированным из блоков, соответствующих блокам A, B, C и D, смежных с совместно размещенным блоком. Дополнительно, новый кандидат может быть, например, предиктором вектора движения, вычисленным из суммы векторов движения во всей плоскости изображения или в некоторой области опорного изображения. Таким образом, эффективность кодирования может быть повышена посредством добавления посредством модуля 114 вычисления кандидатов-предикторов вектора движения нового предиктора вектора движения в качестве нового кандидата, если число кандидатов-предикторов вектора движения не достигает числа доступных кандидатов-предикторов.
[0118] Фиг. 18 является блок-схемой последовательности операций способа, показывающей подробную обработку этапа S111 на фиг. 17. В частности, фиг. 18 показывает способ для определения того, является или нет кандидат-блок прогнозирования [N] доступным кандидатом-предиктором, и обновления числа доступных кандидатов-предикторов. Ниже приводится описание фиг. 18.
[0119] На этапе S121, модуль 114 вычисления кандидатов-предикторов вектора движения определяет то, является ли кандидат-блок прогнозирования [N] (1) внутренне прогнозированным, (2) размещенным за пределами границы среза или изображения, которое включает в себя текущий блок, который должен быть кодирован, или (3) еще не кодированным.
[0120] Если результат определения на этапе S121 представляет собой истину здесь ("Да" на S121), модуль 114 вычисления кандидатов-предикторов вектора движения задает кандидата-блока прогнозирования [N] в качестве недоступного кандидата-предиктора на этапе S122. С другой стороны, если результат определения на этапе S121 представляет собой ложь ("Нет" на S121), модуль 114 вычисления кандидатов-предикторов вектора движения задает кандидата-блока прогнозирования [N] в качестве доступного кандидата-предиктора на этапе S123.
[0121] На этапе S124, модуль 114 вычисления кандидатов-предикторов вектора движения определяет то, является либо нет кандидат-блок прогнозирования [N] доступным кандидатом-предиктором или кандидатом-совместно размещенным блоком. Здесь, если результат определения на этапе S124 представляет собой истину ("Да" на S124), модуль 114 вычисления кандидатов-предикторов вектора движения прибавляет 1 к числу доступных кандидатов-предикторов и обновляет число кандидатов-предикторов вектора движения на этапе S5. С другой стороны, если результат определения на этапе S124 представляет собой ложь ("Нет" на S124), модуль 114 вычисления кандидатов-предикторов вектора движения не обновляет число доступных кандидатов-предикторов.
[0122] Как описано выше, если кандидат-блок прогнозирования является совместно размещенным блоком, модуль 114 вычисления кандидатов-предикторов вектора движения прибавляет 1 к числу доступных кандидатов-предикторов независимо от того, является совместно размещенный блок доступным кандидатом-предиктором или недоступным кандидатом-предиктором. Соответственно, даже если информация совместно размещенного блока потеряна вследствие потерь пакетов и т.п., нет разности по числу доступных кандидатов-предикторов между устройством кодирования движущихся изображений и устройством декодирования движущихся изображений.
[0123] Размер списка кандидатов-предикторов вектора движения задается равным числу доступных кандидатов-предикторов на этапе S115 на фиг. 17. Кроме того, на S104 на фиг. 14, размер списка кандидатов-предикторов вектора движения используется для кодирования с переменной длиной слова индексов предикторов вектора движения. Соответственно, даже если информация опорного изображения, включающая в себя информацию совместно размещенного блока и т.п., потеряна, устройство 100 кодирования движущихся изображений может генерировать поток битов, из которого может быть успешно декодирован индекс предиктора вектора движения.
[0124] Фиг. 19 является блок-схемой последовательности операций способа, показывающей подробную обработку этапа S114 на фиг. 17. В частности, фиг. 19 показывает способ для добавления нового кандидата. Ниже приводится описание фиг. 19.
[0125] На этапе S131, модуль 114 вычисления кандидатов-предикторов вектора движения определяет то, меньше или нет число кандидатов-предикторов вектора движения числа доступных кандидатов-предикторов. В частности, модуль 114 вычисления кандидатов-предикторов вектора движения определяет то, достигает или нет число кандидатов-предикторов вектора движения числа доступных кандидатов-предикторов.
[0126] Здесь, если результат определения на этапе S131 представляет собой истину ("Да" на S131), модуль 114 вычисления кандидатов-предикторов вектора движения определяет на этапе S132 то, имеется или нет новый кандидат, который может добавляться в соответствующий один из списков кандидатов-предикторов вектора движения в качестве кандидата-предиктора вектора движения. Здесь, если результат определения на этапе S132 представляет собой истину ("Да" на S132), модуль 114 вычисления кандидатов-предикторов вектора движения назначает значение индекса предиктора вектора движения новому кандидату и добавляет нового кандидата в соответствующий один из списков кандидатов-предикторов вектора движения на этапе S133. Кроме того, на этапе S134, модуль 114 вычисления кандидатов-предикторов вектора движения прибавляет 1 к числу кандидатов-предикторов вектора движения.
[0127] С другой стороны, если результат определения на этапе S131 или этапе S132 представляет собой ложь ("Нет" на S131 или S132), обработка добавления новых кандидатов завершается. В частности, если число кандидатов-предикторов вектора движения достигает числа доступных кандидатов-предикторов, либо если нет нового кандидата, обработка добавления новых кандидатов завершается.
[0128] Фиг. 20 является блок-схемой последовательности операций способа, показывающей подробную обработку этапа S103 на фиг. 14. В частности, фиг. 20 показывает обработку касательно выбора кандидата-предиктора вектора движения. Ниже приводится описание фиг. 20.
[0129] На этапе S141, в качестве инициализации, модуль 111 управления внешним прогнозированием задает индекс mvp_idx кандидата-предиктора вектора движения равным 0 и задает наименьшую разность векторов движения равной максимальному значению.
[0130] На этапе S142, модуль 111 управления внешним прогнозированием определяет то, меньше или нет значение индекса mvp_idx кандидата-предиктора вектора движения числа кандидатов-предикторов вектора движения. В частности, модуль 111 управления внешним прогнозированием определяет то, вычислены или нет разности векторов движения всех кандидатов-предикторов вектора движения.
[0131] Здесь, если все еще остается кандидат-предиктор вектора движения, для которого не выполнено вычисление ("Да" на S142), модуль 111 управления внешним прогнозированием вычисляет разность векторов движения посредством вычитания кандидата-предиктора вектора движения из вектора, полученного в качестве результата обнаружения движения (результирующего вектора обнаружения движения), на этапе S143.
[0132] На этапе S144, модуль 111 управления внешним прогнозированием определяет то, имеет или нет разность векторов движения, полученная на этапе S143, значение, меньшее наименьшей разности векторов движения.
[0133] Здесь, если результат определения на этапе S144 представляет собой истину ("Да" на S144), модуль 111 управления внешним прогнозированием обновляет наименьшую разность векторов движения и значение индекса предиктора вектора движения на этапе S145. С другой стороны, если результат определения на этапе S144 представляет собой ложь ("Нет" на S144), модуль 111 управления внешним прогнозированием не обновляет наименьшую разность векторов движения и значение индекса предиктора вектора движения.
[0134] На этапе S146, модуль 111 управления внешним прогнозированием обновляет индекс кандидата-предиктора вектора движения посредством увеличения на +1, и возвращаясь обратно к этапу S142, модуль 111 управления внешним прогнозированием определяет то, присутствует или нет следующий кандидат-предиктор вектора движения.
[0135] С другой стороны, если на этапе S2 определено то, что разность векторов движения вычислена для всех кандидатов-предикторов вектора движения ("Нет" на S142), модуль 111 управления внешним прогнозированием, устанавливает, на этапе S147, наименьшую разность векторов движения и индекс предиктора вектора движения, которые в конечном счете задаются.
[0136] Таким образом, согласно устройству 100 кодирования движущихся изображений согласно настоящему варианту осуществления, размер списка кандидатов-предикторов вектора движения, который должен быть использован, когда кодируется или декодируется индекс предиктора вектора движения, может быть вычислен с использованием способа, независимого от информации опорного изображения, включающей в себя информацию совместно размещенного блока, и т.п. Соответственно, устройство 100 кодирования движущихся изображений может повышать устойчивость к ошибкам.
[0137] Более конкретно, устройство 100 кодирования движущихся изображений согласно настоящему варианту осуществления прибавляет 1 к числу доступных кандидатов-предикторов, если кандидат-блок прогнозирования является совместно размещенным блоком, независимо от того, является или нет совместно размещенный блок доступным кандидатом-предиктором. Затем, устройство 100 кодирования движущихся изображений определяет битовую строку, которая должна назначаться индексу предиктора вектора движения, с использованием числа доступных кандидатов-предикторов, вычисленного таким образом. Соответственно, устройство 100 кодирования движущихся изображений может генерировать поток битов, из которого может быть успешно декодирован индекс предиктора вектора движения, даже если информация опорного изображения, включающая в себя информацию совместно размещенного блока, потеряна.
[0138] Дополнительно, устройство 100 кодирования движущихся изображений согласно настоящему варианту осуществления может повышать эффективность кодирования посредством добавления нового кандидата, имеющего новый предиктор вектора движения, в качестве кандидата-предиктора вектора движения, если число кандидатов-предикторов вектора движения не достигает числа доступных кандидатов-предикторов.
[0139] Следует отметить, что хотя в настоящем варианте осуществления, устройство 100 кодирования движущихся изображений добавляет кандидата, имеющего новый предиктор вектора движения, в качестве кандидата-предиктора вектора движения, если число кандидатов-предикторов вектора движения не достигает числа доступных кандидатов-предикторов, настоящий вариант осуществления не ограничен этим. Например, устройство 100 кодирования движущихся изображений может задавать нового кандидата, имеющего новый предиктор вектора движения, в качестве начального значения всех кандидатов-предикторов вектора движения для списков кандидатов-предикторов вектора движения, когда списки кандидатов-предикторов вектора движения создаются. В этом случае, устройство 100 кодирования движущихся изображений вычисляет кандидата-предиктора вектора движения и перезаписывает новый кандидат, который является начальным значением, когда вычисленный кандидат-предиктор вектора движения добавляется в соответствующий один из списков кандидатов-предикторов вектора движения. Затем, устройство 100 кодирования движущихся изображений определяет то, является или нет вычисленный кандидат-предиктор вектора движения недоступным кандидатом-предиктором или избыточным кандидатом, до того, как вычисленный кандидат-предиктор вектора движения добавляется в соответствующий список кандидатов-предикторов вектора движения. Соответственно, если существует недоступный кандидат-предиктор или избыточный кандидат, новый кандидат, который является начальным значением, остается в соответствующем списке кандидатов-предикторов вектора движения. Также можно добавлять нового кандидата в качестве кандидата-предиктора вектора движения посредством использования этого способа.
[0140] Хотя настоящий вариант осуществления описывает пример, в котором используется режим обозначения предикторов вектора движения, в котором кандидаты-предикторы вектора движения генерируются из блоков, смежных с текущим блоком, который должен быть кодирован, и кодируется вектор движения текущего блока, настоящий вариант осуществления не обязательно ограничен этим. Например, может быть использован прямой режим или режим пропуска. В прямом режиме или режиме пропуска, разность векторов движения может не добавляться в поток битов посредством выбора предиктора вектора движения из числа кандидатов-предикторов вектора движения, созданных так, как показано в (b) на фиг. 15 и (b) на фиг. 16, и непосредственного генерирования прогнозированного изображения с использованием выбранного предиктора вектора движения в качестве вектора движения.
[0141] ВАРИАНТ 2 ОСУЩЕСТВЛЕНИЯ
В вышеприведенном варианте 1 осуществления, устройство кодирования движущихся изображений определяет битовую строку, которая должна назначаться индексу предиктора вектора движения, с использованием числа доступных кандидатов-предикторов, вычисленного посредством прибавления всегда 1, если кандидат-блок прогнозирования является совместно размещенным блоком, независимо от того, является или нет совместно размещенный блок доступным кандидатом-предиктором, настоящее изобретение не ограничено этим. Например, устройство кодирования движущихся изображений может определять битовую строку, которая должна назначаться индексу предиктора вектора движения, с использованием числа доступных кандидатов-предикторов, вычисленного посредством прибавления всегда 1 также в случае кандидата-блока прогнозирования, отличного от совместно размещенного блока, на этапе S124 на фиг. 18. В частности, устройство кодирования движущихся изображений может назначать битовую строку индексу предиктора вектора движения с использованием размера списка кандидатов-предикторов вектора движения, устанавливаемого равным максимальному значению N числа кандидатов-предикторов вектора движения. Другими словами, устройство кодирования движущихся изображений может допускать, что все кандидаты-блоки прогнозирования являются доступными кандидатами-предикторами, устанавливать размер списка кандидатов-предикторов вектора движения равным максимальному значению N числа кандидатов-предикторов вектора движения и кодировать индексы предикторов вектора движения.
[0142] Например, в вышеприведенном варианте 1 осуществления, максимальное значение N числа кандидатов-предикторов вектора движения равняется 5 (смежный блок A, смежный блок B, совместно размещенный блок, смежный блок C, смежный блок D), и тем самым устройство кодирования движущихся изображений может всегда задавать размер списка кандидатов-предикторов вектора движения равным 5 и кодировать индексы предикторов вектора движения. Дополнительно, например, если максимальное значение N числа кандидатов-предикторов вектора движения равняется 4 (смежный блок A, смежный блок B, смежный блок C, смежный блок D), устройство кодирования движущихся изображений может всегда задавать размер списка кандидатов-предикторов вектора движения равным 4 и кодировать индексы предикторов вектора движения.
[0143] Таким образом, устройство кодирования движущихся изображений может определять размер списка кандидатов-предикторов вектора движения согласно максимальному значению числа кандидатов-предикторов вектора движения. Соответственно, можно генерировать поток битов, из которого модуль декодирования с переменной длиной слова устройства декодирования движущихся изображений может декодировать индекс предиктора вектора движения в потоке битов без обращения к информации смежных блоков или совместно размещенного блока, что приводит к уменьшению объема обработки, которая должна быть выполнена посредством модуля декодирования с переменной длиной слова.
[0144] Ниже приводится конкретное описание отличающей конфигурации такого устройства кодирования движущихся изображений в качестве устройства кодирования движущихся изображений согласно варианту 2 осуществления.
[0145] Фиг. 21 является блок-схемой, показывающей конфигурацию устройства 200 кодирования движущихся изображений согласно варианту 2 осуществления. Устройство 200 кодирования движущихся изображений генерирует поток битов посредством кодирования изображения на поблочной основе. Устройство 200 кодирования движущихся изображений включает в себя модуль 210 извлечения кандидатов-предикторов вектора движения, модуль 220 управления прогнозированием и модуль 230 кодирования.
[0146] Модуль 210 извлечения кандидатов-предикторов вектора движения соответствует модулю 114 вычисления кандидатов-предикторов вектора движения в вышеприведенном варианте 1 осуществления. Модуль 210 извлечения кандидатов-предикторов вектора движения извлекает кандидатов-предикторов вектора движения. Затем, модуль 210 извлечения кандидатов-предикторов вектора движения генерирует списки кандидатов-предикторов вектора движения, в которых, например, каждый из извлеченных кандидатов-предикторов вектора движения ассоциирован с индексом (в дальнейшем в этом документе называемым "индексом предиктора вектора движения") для идентификации кандидата-предиктора вектора движения.
[0147] Кандидат-предиктор вектора движения является вектором движения, который является кандидатом для предиктора вектора движения, который должен быть использован для кодирования текущего блока, который должен быть кодирован.
[0148] Как показано на фиг. 21, модуль 210 извлечения кандидатов-предикторов вектора движения включает в себя модуль 211 определения максимального числа, первый модуль 212 извлечения, идентификационный модуль 213, модуль 214 определения и второй модуль 215 извлечения.
[0149] Модуль 211 определения максимального числа определяет максимальное число кандидатов-предикторов вектора движения. В частности, модуль 211 определения максимального числа определяет максимальное значение N числа кандидатов-блоков прогнозирования.
[0150] Например, модуль 211 определения максимального числа определяет максимальное число кандидатов-предикторов вектора движения на основе признаков входной последовательности изображений (последовательности, изображений, срезов или блоков). Дополнительно, например, модуль 211 определения максимального числа может определять предварительно определенное число в качестве максимального числа кандидатов-предикторов вектора движения.
[0151] Первый модуль 212 извлечения извлекает один или более первых кандидатов-предикторов вектора движения. В частности, первый модуль 212 извлечения извлекает один или более первых кандидатов-предикторов вектора движения, так что число первых кандидатов-предикторов вектора движения не превышает максимальное число. Более конкретно, первый модуль 212 извлечения извлекает каждого первого кандидата-предиктора вектора движения, например, на основе вектора движения, используемого для кодирования блока, смежного во времени или пространственно с текущим блоком, который должен быть кодирован. Затем, например, первый модуль 212 извлечения регистрирует, в списках кандидатов-предикторов вектора движения, один или более первых кандидатов-предикторов вектора движения, извлеченных таким образом, каждый из них в ассоциации с индексом предиктора вектора движения.
[0152] Пространственно смежный блок является блоком в изображении, которое включает в себя текущий блок, который должен быть кодирован, и является блоком, смежным с текущим блоком. В частности, примерами пространственно смежных блоков являются смежные блоки A-D, показанные на фиг. 3.
[0153] Смежный во времени блок является блоком, включенным в изображение, отличающееся от изображения, которое включает в себя текущий блок, который должен быть кодирован, и является блоком, соответствующим текущему блоку. В частности, примером смежного во времени блока является совместно размещенный блок.
[0154] Следует отметить, что смежный во времени блок не обязательно должен быть блоком в позиции, идентичной позиции текущего блока, который должен быть кодирован (совместно размещенным блоком). Например, смежный во времени блок может быть блоком, смежным с совместно размещенным блоком.
[0155] Следует отметить, что, например, первый модуль 212 извлечения может извлекать, в качестве первого кандидата-предиктора вектора движения, вектор движения, используемый для кодирования блока, который является блоком, пространственно смежным с текущим блоком, который должен быть кодирован, и не является блоком, который является недоступным кандидатом-предиктором. Блок, который является недоступным кандидатом-предиктором, является блоком, кодированным посредством внутреннего прогнозирования, блоком, расположенным за пределами границы среза или изображения, которое включает в себя текущий блок, который должен быть кодирован, или блоком, который еще не кодирован. Соответственно, первый кандидат-предиктор вектора движения может извлекаться из блока, подходящего для получения кандидата-предиктора вектора движения.
[0156] Идентификационный модуль 213 идентифицирует первого кандидата-предиктора вектора движения (избыточного кандидата), имеющего вектор движения, идентичный вектору движения любого другого первого кандидата-предиктора вектора движения, если извлекается множество первых кандидатов-предикторов вектора движения. Затем, идентификационный модуль 213 удаляет идентифицированного избыточного кандидата из соответствующего одного из списков кандидатов-предикторов вектора движения.
[0157] Модуль 214 определения определяет то, меньше или нет число первых кандидатов-предикторов вектора движения определенного максимального числа. Здесь, модуль 214 определения определяет то, меньше или нет число первых кандидатов-предикторов вектора движения за исключением идентифицированного избыточного первого кандидата-предиктора вектора движения, определенного максимального числа.
[0158] Второй модуль 215 извлечения извлекает один или более вторых кандидатов-предикторов вектора движения, если определено то, что число первых кандидатов-предикторов вектора движения меньше определенного максимального числа. В частности, второй модуль 215 извлечения извлекает один или более вторых кандидатов-предикторов вектора движения, так что сумма числа первых кандидатов-предикторов вектора движения и числа вторых кандидатов-предикторов вектора движения не превышает максимальное число. Здесь, второй модуль 215 извлечения извлекает один или более вторых кандидатов-предикторов вектора движения, так что сумма числа первых кандидатов-предикторов вектора движения за исключением избыточного кандидата, и числа вторых кандидатов-предикторов вектора движения не превышает максимальное число.
[0159] Один или более вторых кандидатов-предикторов вектора движения соответствуют новому кандидату в варианте 1 осуществления. Следовательно, второй модуль 215 извлечения может извлекать каждого второго кандидата-предиктора вектора движения, например, на основе вектора движения, который используется для кодирования смежного блока и отличается от первого кандидата-предиктора вектора движения.
[0160] Кроме того, например, второй модуль 215 извлечения может извлекать, в качестве второго кандидата-предиктора вектора движения, кандидата-предиктора вектора движения, имеющего вектор движения, отличающийся от вектора движения любого первого кандидата-предиктора вектора движения. Соответственно, число кандидатов-предикторов вектора движения, имеющих различные векторы движения, может быть увеличено, и за счет этого эффективность кодирования может быть дополнительно повышена.
[0161] Следует отметить, что второй модуль 215 извлечения не обязательно должен извлекать кандидата-предиктора вектора движения, отличающегося от первого кандидата-предиктора вектора движения, в качестве второго кандидата-предиктора вектора движения. В частности, второй модуль 215 извлечения может, как следствие, извлекать кандидата-предиктора вектора движения, который является идентичным первому кандидату-предиктору вектора движения, в качестве второго кандидата-предиктора вектора движения.
[0162] Затем, второй модуль 215 извлечения регистрирует, в списках кандидатов-предикторов вектора движения, например, один или более вторых кандидатов-предикторов вектора движения, извлеченных таким образом, каждый из них в ассоциации с индексом предиктора вектора движения. В это время, второй модуль 215 извлечения может регистрировать каждого второго кандидата-предиктора вектора движения в соответствующем одном из списков кандидатов-предикторов вектора движения, так что индекс предиктора вектора движения, имеющий значение, меньшее значения для вторых кандидатов-предикторов вектора движения, назначается каждому первому кандидату-предиктору вектора движения, аналогично варианту 1 осуществления. Соответственно, если имеется высокая вероятность того, что первый кандидат-предиктор вектора движения должен быть выбран в качестве кандидата-предиктора вектора движения, который должен быть использован для кодирования, вместо второго кандидата-предиктора вектора движения, устройство 200 кодирования движущихся изображений может уменьшать объем кода и повышать эффективность кодирования.
[0163] Следует отметить, что второй модуль 215 извлечения не обязательно должен извлекать один или более вторых кандидатов-предикторов вектора движения, так что сумма числа первых кандидатов-предикторов вектора движения и числа вторых кандидатов-предикторов вектора движения должна быть идентичной определенному максимальному числу. Если сумма числа первых кандидатов-предикторов вектора движения и числа вторых кандидатов-предикторов вектора движения меньше определенного максимального числа, может быть предусмотрено, например, значение индекса предиктора вектора движения, который не ассоциирован с кандидатом-предиктором вектора движения.
[0164] Модуль 220 управления прогнозированием выбирает предиктор вектора движения, который должен быть использован для кодирования текущего блока, который должен быть кодирован, из числа упомянутого одного или более первых кандидатов-предикторов вектора движения и одного или более вторых кандидатов-предикторов вектора движения. В частности, модуль 220 управления прогнозированием выбирает, из списков кандидатов-предикторов вектора движения, предиктор вектора движения, который должен быть использован для кодирования текущего блока.
[0165] Модуль 230 кодирования кодирует индекс (индекс предиктора вектора движения) для идентификации кандидата-выбранного предиктора вектора движения с использованием определенного максимального числа. В частности, модуль 230 кодирования кодирует с переменной длиной слова битовую строку, назначаемую значению индекса выбранного кандидата-предиктора вектора движения, как показано на фиг. 6. Кроме того, модуль 230 кодирования добавляет кодированный индекс в поток битов.
[0166] Здесь, модуль 230 кодирования дополнительно может добавлять информацию, указывающую максимальное число, определенное посредством модуля 211 определения максимального числа, в поток битов. В частности, модуль 230 кодирования также может записывать информацию, указывающую максимальное число, например, в заголовок среза и т.п. Соответственно, максимальное число может быть изменено в надлежащих единицах, что позволяет повышать эффективность кодирования.
[0167] Следует отметить, что модуль 230 кодирования не обязательно должен добавлять информацию, указывающую максимальное число, в поток битов. Например, если максимальное число ранее определяется согласно стандарту, или если максимальное число является идентичным значению по умолчанию, модуль 230 кодирования не должен добавлять информацию, указывающую максимальное число, в поток битов.
[0168] Далее приводится описание различных операций устройства 200 кодирования движущихся изображений с вышеописанной структурой.
[0169] Фиг. 22 является блок-схемой последовательности операций способа, показывающей операцию обработки устройства 200 кодирования движущихся изображений согласно варианту 2 осуществления.
[0170] Во-первых, модуль 211 определения максимального числа определяет максимальное число кандидатов-предикторов вектора движения (S201). Первый модуль 212 извлечения извлекает один или более первых кандидатов-предикторов вектора движения (S202). Идентификационный модуль 213 идентифицирует первого кандидата-предиктора вектора движения, имеющего вектор движения, который является идентичным вектору движения любых других первых кандидатов-предикторов вектора движения, если извлекается множество первых кандидатов-предикторов вектора движения (S203).
[0171] Модуль 214 определения определяет то, меньше или нет число первых кандидатов-предикторов вектора движения за исключением избыточного кандидата определенного максимального числа (S204). Здесь, если определено то, что число первых кандидатов-предикторов вектора движения за исключением избыточного кандидата меньше определенного максимального числа ("Да" на S204), второй модуль 215 извлечения извлекает один или более вторых кандидатов-предикторов вектора движения (S205). С другой стороны, если не определяется то, что число первых кандидатов-предикторов вектора движения за исключением избыточного кандидата меньше определенного максимального числа ("Нет" на S204), второй модуль 215 извлечения не извлекает второго кандидата-предиктора вектора движения. Эти этапы S204 и S205 соответствуют этапу S114 в варианте 1 осуществления.
[0172] Модуль 220 управления прогнозированием выбирает предиктор вектора движения, который должен быть использован для кодирования текущего блока, который должен быть кодирован, из числа упомянутого одного или более первых кандидатов-предикторов вектора движения и одного или более вторых кандидатов-предикторов вектора движения (S206). Например, модуль 220 управления прогнозированием выбирает предиктор вектора движения, при котором разность векторов движения является наименьшей, из списков кандидатов-предикторов вектора движения, аналогично варианту 1 осуществления.
[0173] Модуль 230 кодирования кодирует индекс для идентификации кандидата выбранного предиктора вектора движения с использованием определенного максимального числа (S207). Кроме того, модуль 230 кодирования добавляет кодированный индекс в поток битов.
[0174] Как описано выше, согласно устройству 200 кодирования движущихся изображений согласно настоящему варианту осуществления, индекс для идентификации кандидата-предиктора вектора движения может быть кодирован с использованием определенного максимального числа. В частности, индекс может быть кодирован без зависимости от числа фактически извлеченных кандидатов-предикторов вектора движения. Следовательно, даже если информация (например, информация совместно размещенного блока и т.п.), необходимая для извлечения кандидата-предиктора вектора движения, потеряна, устройство декодирования может декодировать индекс, и за счет этого устойчивость к ошибкам может быть повышена. Дополнительно, устройство декодирования может декодировать индекс без зависимости от числа фактически извлеченных кандидатов-предикторов вектора движения. В частности, устройство декодирования может декодировать индекс без ожидания извлечения кандидата-предиктора вектора движения. В частности, можно генерировать поток битов, для которого извлечение кандидата-предиктора вектора движения и декодирование индекса могут выполняться параллельно.
[0175] Кроме того, согласно устройству 200 кодирования движущихся изображений согласно настоящему варианту осуществления, один или более вторых кандидатов-предикторов вектора движения может извлекаться, если определено то, что число первых кандидатов-предикторов вектора движения меньше максимального числа. Следовательно, можно увеличивать число кандидатов-предикторов вектора движения в диапазоне, который не превышает максимальное число, и повышать эффективность кодирования.
[0176] Помимо этого, согласно устройству 200 кодирования движущихся изображений согласно настоящему варианту осуществления, один или более вторых кандидатов-предикторов вектора движения может извлекаться согласно числу первых кандидатов-предикторов вектора движения за исключением избыточного первого кандидата-предиктора вектора движения. Как результат, число вторых кандидатов-предикторов вектора движения может быть увеличено, и типы выбираемых векторов движения могут быть увеличены. Следовательно, можно дополнительно повышать эффективность кодирования.
[0177] Следует отметить, что в настоящем варианте осуществления, хотя устройство 200 кодирования движущихся изображений включает в себя идентификационный модуль 213, устройство 200 кодирования движущихся изображений должно не обязательно включать в себя идентификационный модуль 213. В частности, этап S203 не обязательно должен быть включен в блок-схему последовательности операций способа, показанную на фиг. 22. Даже в таком случае, устройство 200 кодирования движущихся изображений может кодировать индекс для идентификации кандидата-предиктора вектора движения с использованием определенного максимального числа, и за счет этого устойчивость к ошибкам может быть повышена.
[0178] Дополнительно, как показано на фиг. 22, в настоящем варианте осуществления, первый модуль 212 извлечения извлекает один или более первых кандидатов-предикторов вектора движения, и после того идентификационный модуль 213 идентифицирует избыточного кандидата. Тем не менее, обработка не обязательно должна выполняться последовательно таким образом. Например, в процессе извлечения первых кандидатов-предикторов вектора движения, первый модуль 212 извлечения может идентифицировать избыточного кандидата и извлекать первых кандидатов-предикторов вектора движения, так что идентифицированный избыточный кандидат не включается в первые кандидаты-предикторы вектора движения. В частности, первый модуль 212 извлечения может извлекать кандидата-предиктора вектора движения, который не является идентичным какому-либо первому кандидату-предиктору вектора движения, вектор движения которого уже извлечен, в качестве первого кандидата-предиктора вектора движения. Более конкретно, например, когда кандидат-предиктор вектора движения на основе смежного слева блока уже извлечен в качестве первого кандидата-предиктора вектора движения, если кандидат-предиктор вектора движения на основе смежного сверху блока не является идентичным кандидату-предиктору вектора движения на основе смежного слева блока, первый модуль 212 извлечения может извлекать кандидата-предиктора вектора движения на основе смежного сверху блока в качестве первого кандидата-предиктора вектора движения.
[0179] ВАРИАНТ 3 ОСУЩЕСТВЛЕНИЯ
Фиг. 23 является блок-схемой, показывающей конфигурацию устройства 300 декодирования движущихся изображений согласно варианту 3 осуществления.
[0180] Как показано на фиг. 23, устройство 300 декодирования движущихся изображений включает в себя модуль 301 декодирования с переменной длиной слова, модуль 302 обратного квантования, модуль 303 обратного ортогонального преобразования, модуль 304 суммирования, память 305 блоков, память 306 кадров, модуль 307 внутреннего прогнозирования, модуль 308 внешнего прогнозирования, модуль 309 управления внешним прогнозированием, переключатель 310, модуль 311 вычисления кандидатов-предикторов вектора движения и память 312 colPic.
[0181] Модуль 301 декодирования с переменной длиной слова выполняет обработку декодирования с переменной длиной слова для входного потока битов и генерирует информацию типов изображений, флаг направления прогнозирования, коэффициент квантования и разность векторов движения. Дополнительно, модуль 301 декодирования с переменной длиной слова выполняет обработку декодирования с переменной длиной слова для индексов предикторов вектора движения с использованием числа доступных кандидатов-предикторов, описанных ниже.
[0182] Модуль 302 обратного квантования выполняет обработку обратного квантования для коэффициента квантования, полученного посредством обработки декодирования с переменной длиной слова. Модуль 303 обратного ортогонального преобразования преобразует коэффициент ортогонального преобразования, полученный посредством обработки обратного квантования из частотной области в область изображений, чтобы генерировать данные ошибок прогнозирования. Память 305 блоков сохраняет декодированные данные изображений, сгенерированные посредством суммирования данных ошибок прогнозирования и данных прогнозированных изображений, на поблочной основе. Запоминающее устройство 306 кадров сохраняет декодированные данные изображений на покадровой основе.
[0183] Модуль 307 внутреннего прогнозирования генерирует данные прогнозированных изображений текущего блока, который должен быть декодирован, посредством выполнения внутреннего прогнозирования с использованием декодированных данных изображений в единицах блоков, сохраненных в памяти 305 блоков. Модуль 308 внешнего прогнозирования генерирует данные прогнозированных изображений текущего блока, который должен быть декодирован, посредством выполнения внешнего прогнозирования с использованием декодированных данных изображений в единицах кадров, сохраненных в памяти 306 кадров.
[0184] Если декодирование с внутренним прогнозированием выполняется для текущего блока, переключатель 310 выводит данные внутренне прогнозированных изображений, сгенерированные посредством модуля 307 внутреннего прогнозирования, в модуль 304 суммирования в качестве данных прогнозированных изображений текущего блока. Напротив, если декодирование с внешним прогнозированием выполняется для текущего блока, переключатель 310 выводит данные внешне прогнозированных изображений, сгенерированные посредством модуля 308 внешнего прогнозирования, в модуль 304 суммирования в качестве данных прогнозированных изображений текущего блока.
[0185] С использованием, например, векторов движения блоков, смежных с текущим блоком, который должен быть декодирован, и информации colPic, такой как информация вектора движения совместно размещенного блока, сохраненная в памяти 312 colPic, модуль 311 вычисления кандидатов-предикторов вектора движения извлекает кандидатов-предикторов вектора движения в режиме обозначения предикторов вектора движения посредством использования способа, описанного ниже. Дополнительно, модуль 311 вычисления кандидатов-предикторов вектора движения назначает значение индекса предиктора вектора движения каждому извлеченному кандидату-предиктору вектора движения. Затем, модуль 311 вычисления кандидатов-предикторов вектора движения отправляет кандидаты-предикторы вектора движения и индексы предикторов вектора движения в модуль 309 управления внешним прогнозированием.
[0186] Модуль 309 управления внешним прогнозированием выбирает, из числа кандидатов-предикторов вектора движения, предиктор вектора движения, который должен быть использован для внешнего прогнозирования, на основе декодированного индекса предиктора вектора движения. Затем, модуль 309 управления внешним прогнозированием вычисляет вектор движения текущего блока на основе предиктора вектора движения и разности векторов движения. Затем, модуль 309 управления внешним прогнозированием инструктирует модулю 308 внешнего прогнозирования генерировать внешне прогнозированное изображение с использованием вычисленного вектора движения. Дополнительно, модуль 309 управления внешним прогнозированием передает информацию colPic, включающую в себя информацию вектора движения текущего блока и т.п., в память 312 colPic.
[0187] В завершение, модуль 304 суммирования генерирует декодированные данные изображений посредством суммирования данных прогнозированных изображений и данных ошибок прогнозирования.
[0188] Фиг. 24 является блок-схемой последовательности операций способа, показывающей операцию обработки устройства 300 декодирования движущихся изображений согласно варианту 3 осуществления.
[0189] На этапе S301, модуль 301 декодирования с переменной длиной слова декодирует флаг направления прогнозирования и индекс опорного изображения. Затем, значение направления X прогнозирования определяется согласно декодированному флагу направления прогнозирования, и выполняется обработка следующих этапов S302-S305.
[0190] На этапе S302, модуль 311 вычисления кандидатов-предикторов вектора движения вычисляет число доступных кандидатов-предикторов с использованием способа, описанного ниже. Затем, модуль 311 вычисления кандидатов-предикторов вектора движения задает размер списка кандидатов-предикторов вектора движения равным вычисленному числу доступных кандидатов-предикторов.
[0191] На этапе S303, модуль 301 декодирования с переменной длиной слова декодирует с переменной длиной слова индекс предиктора вектора движения в потоке битов с использованием вычисленного размера списка кандидатов-предикторов вектора движения. На этапе S304, модуль 311 вычисления кандидатов-предикторов вектора движения генерирует кандидаты-предикторы вектора движения из блоков, смежных с текущим блоком и совместно размещенным блоком, с использованием способа, описанного ниже. На этапе S305, модуль 309 управления внешним прогнозированием суммирует декодированную разность векторов движения с кандидатом-предиктором вектора движения, указываемым посредством декодированного индекса предиктора вектора движения, чтобы вычислять вектор движения. Затем, модуль 309 управления внешним прогнозированием инструктирует модулю 308 внешнего прогнозирования генерировать внешне прогнозированное изображение с использованием вычисленного вектора движения.
[0192] Следует отметить, что, если размер списка кандидатов-предикторов вектора движения, вычисленный на этапе S302, равен "1", можно оценивать, что индекс предиктора вектора движения равен 0, без декодирования.
[0193] Фиг. 25 является блок-схемой последовательности операций способа, показывающей подробную обработку этапа S302 на фиг. 24. В частности, фиг. 25 показывает способ для определения того, является или нет кандидат-блок прогнозирования [N] доступным кандидатом-предиктором, и вычисления числа доступных кандидатов-предикторов. Ниже приводится описание фиг. 25.
[0194] На этапе S311, модуль 311 вычисления кандидатов-предикторов вектора движения определяет то, является ли кандидат-блок прогнозирования [N] (1) декодированным посредством внутреннего прогнозирования, (2) размещенным за пределами границы среза или изображения, которое включает в себя текущий блок, который должен быть декодирован, или (3) еще не декодированным.
[0195] Здесь, если результат определения на этапе S311 представляет собой истину ("Да" на S311), модуль 311 вычисления кандидатов-предикторов вектора движения задает кандидата [N] прогнозного блока в качестве недоступного кандидата-предиктора на этапе S312. С другой стороны, если результат определения на этапе S311 представляет собой ложь ("Нет" на S311), модуль 311 вычисления кандидатов-предикторов вектора движения задает кандидата-блока прогнозирования [N] в качестве доступного кандидата-предиктора на этапе S313.
[0196] На этапе S314, модуль 311 вычисления кандидатов-предикторов вектора движения определяет то, является или нет кандидат-блок прогнозирования [N] доступным кандидатом-предиктором или кандидатом-совместно размещенным блоком. Здесь, если результат определения на этапе S314 представляет собой истину ("Да" на S314), модуль 311 вычисления кандидатов-предикторов вектора движения прибавляет 1 к числу доступных кандидатов-предикторов и обновляет значение на этапе S5. С другой стороны, если результат определения на этапе S314 представляет собой ложь ("Нет" на S314), модуль 311 вычисления кандидатов-предикторов вектора движения не обновляет число доступных кандидатов-предикторов.
[0197] Как описано выше, если кандидат-блок прогнозирования является совместно размещенным блоком, модуль 311 вычисления кандидатов-предикторов вектора движения прибавляет 1 к числу доступных кандидатов-предикторов независимо от того, является совместно размещенный блок доступным кандидатом-предиктором или недоступным кандидатом-предиктором. Соответственно, даже если информация совместно размещенного блока потеряна вследствие потерь пакетов и т.п., нет разности по числу доступных кандидатов-предикторов между устройством кодирования движущихся изображений и устройством декодирования движущихся изображений.
[0198] Размер списка кандидатов-предикторов вектора движения задается равным числу доступных кандидатов-предикторов на этапе S302 на фиг. 24. Кроме того, на S303 на фиг. 24, размер списка кандидатов-предикторов вектора движения используется для декодирования с переменной длиной слова индексов предикторов вектора движения. Соответственно, даже если информация опорного изображения, включающая в себя информацию совместно размещенного блока и т.п., потеряна, устройство 300 декодирования движущихся изображений может успешно декодировать индексы предикторов вектора движения.
[0199] Фиг. 26 является блок-схемой последовательности операций способа, показывающей подробную обработку этапа S304 на фиг. 24. В частности, фиг. 26 показывает способ для вычисления кандидатов-предикторов вектора движения. Ниже приводится описание фиг. 26.
[0200] На этапе S321, модуль 311 вычисления кандидатов-предикторов вектора движения вычисляет, из кандидата-блока прогнозирования [N], кандидата-предиктора вектора движения в направлении X прогнозирования с использованием вышеприведенных выражений 1 и 2 и добавляет вычисленного кандидата в соответствующий один из списков кандидатов-предикторов вектора движения.
[0201] На этапе S322, модуль 311 вычисления кандидатов-предикторов вектора движения выполняет поиск и удаляет недоступного кандидата-предиктора и избыточного кандидата из списков кандидатов-предикторов вектора движения, как показано на фиг. 15 и 16.
[0202] На этапе S323, модуль 311 вычисления кандидатов-предикторов вектора движения добавляет нового кандидата в соответствующий один из списков кандидатов-предикторов вектора движения с использованием способа, идентичного способу на фиг. 19.
[0203] Фиг. 27 показывает пример синтаксиса, используемого, когда индекс предиктора вектора движения добавляется в поток битов. На фиг. 27, inter_pred_flag указывает флаг направления прогнозирования, и mvp_idx указывает индекс предиктора вектора движения. NumMVPCand указывает размер списка кандидатов-предикторов вектора движения, и размер задается равным числу доступных кандидатов-предикторов, вычисленных в последовательности операций обработки на фиг. 25 в настоящем варианте осуществления.
[0204] Как описано выше, согласно устройству 300 декодирования движущихся изображений согласно настоящему варианту осуществления, размер списка кандидатов-предикторов вектора движения, который должен быть использован, когда кодируется или декодируется индекс предиктора вектора движения, может быть вычислен посредством использования способа, независимого от информации опорного изображения, включающей в себя информацию совместно размещенного блока, и т.п. Соответственно, устройство 300 декодирования движущихся изображений может надлежащим образом декодировать поток битов, имеющий повышенную устойчивость к ошибкам.
[0205] Более конкретно, устройство 300 декодирования движущихся изображений согласно настоящему варианту осуществления всегда прибавляет 1 к числу доступных кандидатов-предикторов, если кандидат-блок прогнозирования является совместно размещенным блоком, независимо от того, является или нет совместно размещенный блок доступным кандидатом-предиктором. Затем, устройство 300 декодирования движущихся изображений определяет битовые строки, которые должны назначаться индексам предикторов вектора движения, с использованием числа доступных кандидатов-предикторов, вычисленных таким образом. Соответственно, даже если информация опорного изображения, включающая в себя информацию совместно размещенного блока, потеряна, устройство 300 декодирования движущихся изображений может успешно декодировать индекс предиктора вектора движения.
[0206] Дополнительно, если число кандидатов-предикторов вектора движения не достигает числа доступных кандидатов-предикторов, устройство 300 декодирования движущихся изображений согласно настоящему варианту осуществления может надлежащим образом декодировать поток битов, для которого эффективность кодирования повышена посредством добавления нового кандидата, имеющего новый предиктор вектора движения, в качестве кандидата-предиктора вектора движения.
[0207] Следует отметить, что в настоящем варианте осуществления, хотя устройство 300 декодирования движущихся изображений добавляет нового кандидата, имеющего новый предиктор вектора движения, в качестве кандидата-предиктора вектора движения, если число кандидатов-предикторов вектора движения не достигает числа доступных кандидатов-предикторов, настоящее изобретение не ограничено этим. Например, аналогично варианту 1 осуществления, описанному выше, при создании списков кандидатов-предикторов вектора движения, устройство 300 декодирования движущихся изображений может задавать нового кандидата, имеющего новый предиктор вектора движения, в качестве начального значения всех кандидатов-предикторов вектора движения для списков кандидатов-предикторов вектора движения.
[0208] ВАРИАНТ 4 ОСУЩЕСТВЛЕНИЯ
В вышеприведенном варианте 3 осуществления, хотя устройство декодирования движущихся изображений определяет битовые строки, которые должны назначаться индексам предикторов вектора движения, с использованием числа доступных кандидатов-предикторов, вычисленных посредством прибавления всегда 1, когда кандидат прогнозного блока является совместно размещенным блоком, независимо от того, является или нет совместно размещенный блок доступным кандидатом-предиктором, настоящее изобретение не ограничено этим. Например, устройство декодирования движущихся изображений может определять битовые строки, которые должны назначаться индексам предикторов вектора движения, с использованием числа доступных кандидатов-предикторов, вычисленных также посредством всегда прибавления 1 в случае кандидата-блока прогнозирования, отличного от совместно размещенного блока, на этапе S314 на фиг. 25. В частности, устройство декодирования движущихся изображений может назначать битовую строку индексу предиктора вектора движения с использованием размера списка кандидатов-предикторов вектора движения, устанавливаемого равным максимальному значению N числа кандидатов-предикторов вектора движения. Другими словами, при условии, что все кандидаты-блоки прогнозирования являются доступными кандидатами-предикторами, устройство декодирования движущихся изображений может устанавливать размер списка кандидатов-предикторов вектора движения равным максимальному значению N числа кандидатов-предикторов вектора движения и декодировать индексы предикторов вектора движения.
[0209] Например, в вышеприведенном варианте 3 осуществления, поскольку максимальное значение N числа кандидатов-предикторов вектора движения равно 5 (смежный блок A, смежный блок B, совместно размещенный блок, смежный блок C, смежный блок D), устройство декодирования движущихся изображений может всегда задавать размер списка кандидатов-предикторов вектора движения равным 5 и декодировать индексы предикторов вектора движения. Соответственно, модуль декодирования с переменной длиной слова устройства декодирования движущихся изображений может декодировать индекс предиктора вектора движения в потоке битов без обращения к информации смежных блоков или совместно размещенного блока. Как результат, например, обработка этапов S314 и S315 на фиг. 25, например, может пропускаться, и за счет этого может быть уменьшен объем обработки, которая должна быть выполнена посредством модуля декодирования с переменной длиной слова.
[0210] Фиг. 28 показывает пример синтаксиса, используемого, когда размер списка кандидатов-предикторов вектора движения устанавливается равным максимальному значению числа кандидатов-предикторов вектора движения. Как показано на фиг. 28, NumMVPCand может быть удален из синтаксиса, если размер списка кандидатов-предикторов вектора движения устанавливается равным максимальному значению числа кандидатов-предикторов вектора движения.
[0211] Ниже приводится конкретное описание отличающей конфигурации такого устройства декодирования движущихся изображений в качестве устройства декодирования движущихся изображений согласно варианту 4 осуществления.
[0212] Фиг. 29 является блок-схемой, показывающей конфигурацию устройства 400 декодирования движущихся изображений согласно варианту 4 осуществления. Устройство 400 декодирования движущихся изображений декодирует кодированное изображение, включенное в поток битов, на поблочной основе. В частности, устройство 400 декодирования движущихся изображений декодирует, на поблочной основе, например, кодированное изображение, включенное в поток битов, сгенерированный посредством устройства 200 кодирования движущихся изображений согласно варианту 2 осуществления. Устройство 400 декодирования движущихся изображений включает в себя модуль 410 извлечения кандидатов-предикторов вектора движения, модуль 420 декодирования и модуль 430 управления прогнозированием.
[0213] Модуль 410 извлечения кандидатов-предикторов вектора движения соответствует модулю 311 вычисления кандидатов-предикторов вектора движения в вышеприведенном варианте 3 осуществления. Модуль 410 извлечения кандидатов-предикторов вектора движения извлекает кандидатов-предикторов вектора движения. Затем, модуль 410 извлечения кандидатов-предикторов вектора движения генерирует списки кандидатов-предикторов вектора движения, в которых каждый извлеченный кандидат-предиктор вектора движения ассоциирован, например, с индексом для идентификации кандидата-предиктора вектора движения (индексом предиктора вектора движения).
[0214] Как показано на фиг. 29, модуль 410 извлечения кандидатов-предикторов вектора движения включает в себя модуль 411 определения максимального числа, первый модуль 412 извлечения, идентификационный модуль 413, модуль 414 определения и второй модуль 415 извлечения.
[0215] Модуль 411 определения максимального числа определяет максимальное число кандидатов-предикторов вектора движения. В частности, модуль 211 определения максимального числа определяет максимальное значение N числа кандидатов-блоков прогнозирования.
[0216] Например, модуль 411 определения максимального числа определяет максимальное число кандидатов-предикторов вектора движения с использованием способа, идентичного способу, используемому посредством модуля 211 определения максимального числа в варианте 2 осуществления. Дополнительно, например, модуль 411 определения максимального числа может определять максимальное число, на основе информации, указывающей максимальное число, добавляемой в поток битов.
[0217] Следует отметить, что здесь, хотя модуль 411 определения максимального числа включается в модуль 410 извлечения кандидатов-предикторов вектора движения, модуль 411 определения максимального числа может быть включен в модуль 420 декодирования.
[0218] Первый модуль 412 извлечения извлекает один или более первых кандидатов-предикторов вектора движения. В частности, первый модуль 412 извлечения извлекает один или более первых кандидатов-предикторов вектора движения, аналогично первому модулю 212 извлечения в варианте 2 осуществления. Например, первый модуль 412 извлечения извлекает первые кандидаты-предикторы вектора движения, так что число первых кандидатов-предикторов вектора движения не превышает максимальное число. Более конкретно, первый модуль 412 извлечения извлекает каждого первого кандидата-предиктора вектора движения, например, на основе вектора движения, используемого для декодирования блока, смежного во времени или пространственно с текущим блоком, который должен быть декодирован. Затем, первый модуль 412 извлечения регистрирует, в списках кандидатов-предикторов вектора движения, например, одного или более первых кандидатов-предикторов вектора движения, извлеченных таким образом, каждый из них в ассоциации с индексом предиктора вектора движения.
[0219] Следует отметить, что первый модуль 412 извлечения может извлекать, в качестве первого кандидата-предиктора вектора движения, например, вектор движения, используемый для декодирования блока, который является пространственно смежным с текущим блоком, который должен быть декодирован, и не является недоступным кандидатом-предиктором. Соответственно, первый кандидат-предиктор вектора движения может извлекаться из блока, подходящего для получения кандидата-предиктора вектора движения.
[0220] Если извлекается множество первых кандидатов-предикторов вектора движения, идентификационный модуль 413 идентифицирует первого кандидата-предиктора вектора движения (избыточного кандидата), имеющего вектор движения, идентичный вектору движения любых других первых кандидатов-предикторов вектора движения. Затем, идентификационный модуль 413 удаляет идентифицированного избыточного кандидата из соответствующего одного из списков кандидатов-предикторов вектора движения.
[0221] Модуль 414 определения определяет то, меньше или нет число первых кандидатов-предикторов вектора движения определенного максимального числа. Здесь, модуль 414 определения определяет то, меньше или нет число первых кандидатов-предикторов вектора движения за исключением идентифицированного избыточного первого кандидата-предиктора вектора движения, определенного максимального числа.
[0222] Если определено то, что число первых кандидатов-предикторов вектора движения меньше определенного максимального числа, второй модуль 415 извлечения извлекает один или более вторых кандидатов-предикторов вектора движения. В частности, второй модуль 415 извлечения извлекает один или более вторых кандидатов-предикторов вектора движения аналогично второму модулю 215 извлечения в варианте 2 осуществления.
[0223] Например, второй модуль 415 извлечения может извлекать кандидата-предиктора вектора движения, имеющего вектор движения, отличающийся от вектора движения любого первого кандидата-предиктора вектора движения, в качестве второго кандидата-предиктора вектора движения. Соответственно, число кандидатов-предикторов вектора движения, имеющих различные векторы движения, может быть увеличено, что дает возможность декодирования кодированного изображения, для которого дополнительно повышена эффективность кодирования.
[0224] Затем, второй модуль 415 извлечения регистрирует, в списках кандидатов-предикторов вектора движения, например, одного или более вторых кандидатов-предикторов вектора движения, извлеченных таким образом, каждый из них в ассоциации с индексом предиктора вектора движения, аналогично второму модулю 215 извлечения в варианте 2 осуществления.
[0225] Декодирования модуля 420 декодирует, с использованием определенного максимального числа, кодированный индекс, добавляемый в поток битов и используемый для идентификации кандидата-предиктора вектора движения.
[0226] Модуль 430 управления прогнозированием выбирает предиктора вектора движения, который должен быть использован для декодирования текущего блока, который должен быть декодирован, из числа упомянутого одного или более первых кандидатов-предикторов вектора движения и одного или более вторых кандидатов-предикторов вектора движения на основе декодированного индекса. В частности, модуль 430 управления прогнозированием выбирает, из списков кандидатов-предикторов вектора движения, предиктор вектора движения, который должен быть использован для декодирования текущего блока, который должен быть декодирован.
[0227] Далее приводится описание различных операций устройства 400 декодирования движущихся изображений с вышеописанной структурой.
[0228] Фиг. 30 является блок-схемой последовательности операций способа, показывающей операцию обработки устройства 400 декодирования движущихся изображений согласно варианту 4 осуществления.
[0229] Во-первых, модуль 411 определения максимального числа определяет максимальное число кандидатов-предикторов вектора движения (S401). Первый модуль 412 извлечения извлекает одного или более первых кандидатов-предикторов вектора движения (S402). Если извлекается множество первых кандидатов-предикторов вектора движения, идентификационный модуль 413 идентифицирует первого кандидата-предиктора вектора движения, имеющего вектор движения, идентичный вектору движения любого другого первого кандидата-предиктора вектора движения (S403).
[0230] Модуль 414 определения определяет то, меньше или нет число первых кандидатов-предикторов вектора движения за исключением избыточного кандидата определенного максимального числа (S404). Здесь, если определено то, что число первых кандидатов-предикторов вектора движения за исключением избыточного кандидата меньше определенного максимального числа ("Да" на S404), второй модуль 415 извлечения извлекает один или более вторых кандидатов-предикторов вектора движения (S405). С другой стороны, если не определяется то, что число первых кандидатов-предикторов вектора движения за исключением избыточного кандидата меньше определенного максимального числа ("Нет" на S404), второй модуль 415 извлечения не извлекает второго кандидата-предиктора вектора движения.
[0231] Модуль 420 декодирования декодирует кодированный индекс, добавляемый в поток битов и используемый для идентификации кандидата-предиктора вектора движения, с использованием определенного максимального числа (S406).
[0232] Модуль 430 управления прогнозированием выбирает, из числа упомянутого одного или более первых кандидатов-предикторов вектора движения и одного или более вторых кандидатов-предикторов вектора движения, предиктор вектора движения, который должен быть использован для декодирования текущего блока, который должен быть декодирован, на основе декодированного индекса (S407).
[0233] Следует отметить, что здесь, хотя индекс декодируется (S406) после того, как извлекается кандидат-предиктор вектора движения, обработка не обязательно должна выполняться в таком порядке. Например, обработка для извлечения кандидата-предиктора вектора движения (S402-S405) может быть выполнена после декодирования индекса (S406). Дополнительно, декодирование индекса (S406) и извлечение кандидата-предиктора вектора движения (S402-S405) могут выполняться параллельно. Соответственно, скорость обработки декодирования может быть увеличена.
[0234] Как описано выше, согласно устройству 400 декодирования движущихся изображений согласно настоящему варианту осуществления, индекс для идентификации кандидата-предиктора вектора движения может быть декодирован с использованием определенного максимального числа. В частности, индекс может быть декодирован без зависимости от числа фактически извлеченных кандидатов-предикторов вектора движения. Следовательно, даже если информация, необходимая для извлечения кандидата-предиктора вектора движения (например, информация совместно размещенного блока и т.п.), потеряна, индекс может быть декодирован, и устойчивость к ошибкам может быть повышена. Кроме того, индекс может быть декодирован без ожидания извлечения кандидата-предиктора вектора движения, и тем самым извлечение кандидата-предиктора вектора движения и декодирование индекса также могут выполняться параллельно.
[0235] Кроме того, согласно устройству 400 декодирования движущихся изображений согласно настоящему варианту осуществления, если определено то, что число первых кандидатов-предикторов вектора движения меньше максимального числа, могут извлекаться один или более вторых кандидатов-предикторов вектора движения. Следовательно, число кандидатов-предикторов вектора движения может быть увеличено в диапазоне, который не превышает максимальное число, и за счет этого может быть декодировано кодированное изображение, для которого повышена эффективность кодирования.
[0236] Дополнительно, согласно устройству 400 декодирования движущихся изображений согласно настоящему варианту осуществления, один или более вторых кандидатов-предикторов вектора движения может извлекаться согласно числу первых кандидатов-предикторов вектора движения за исключением избыточного первого кандидата-предиктора вектора движения. Как результат, число вторых кандидатов-предикторов вектора движения может быть увеличено, и типы выбираемых комбинаций направления прогнозирования, вектора движения и индекса опорного изображения могут быть увеличены. Следовательно, можно декодировать кодированное изображение, для которого дополнительно повышена эффективность кодирования.
[0237] Следует отметить, что в настоящем варианте осуществления, хотя устройство 400 декодирования движущихся изображений включает в себя идентификационный модуль 413, устройство 400 декодирования движущихся изображений должно не обязательно включать в себя идентификационный модуль 413, аналогично варианту 2 осуществления. Другими словами, этап S403 не обязательно должен быть включен в блок-схему последовательности операций способа, показанную на фиг. 30. Даже в таком случае, устройство 400 декодирования движущихся изображений может декодировать индекс для идентификации кандидата-предиктора вектора движения с использованием определенного максимального числа и за счет этого может повышать устойчивость к ошибкам.
[0238] Дополнительно, хотя в настоящем варианте осуществления, первый модуль 412 извлечения извлекает первые кандидаты-предикторы вектора движения, и после того идентификационный модуль 413 идентифицирует избыточного кандидата, как показано на фиг. 30, обработка не обязательно должна выполняться последовательно таким образом. Например, первый модуль 412 извлечения может извлекать кандидата-предиктора вектора движения, имеющего вектор движения, который не является идентичным вектору движения какого-либо первого кандидата-предиктора вектора движения, уже извлеченного, в качестве первого кандидата-предиктора вектора движения.
[0239] Хотя выше приведено описание устройства кодирования движущихся изображений и устройства декодирования движущихся изображений согласно одному или более аспектов настоящего изобретения на основе вариантов осуществления, настоящее изобретение не ограничено вышеописанными вариантами осуществления. Раскрытый в данном документе предмет изобретения должен считаться только описательным и иллюстративным, и прилагаемая формула изобретения имеет объем, имеющий намерение покрывать и охватывать не только конкретные раскрытые варианты осуществления, но также и эквивалентные структуры, способы и/или варианты использования.
[0240] Каждый из составляющих элементов в вышеописанных вариантах осуществления может быть сконфигурирован в форме полностью аппаратного продукта или может быть реализован посредством выполнения программы, подходящей для составляющего элемента. Каждый из составляющих элементов может быть реализован таким образом, что модуль выполнения программ, такой как CPU и процессор, считывает и выполняет программу, записанную на носителе записи, таком как жесткий диск или полупроводниковое запоминающее устройство. Здесь, программа для реализации устройства кодирования движущихся изображений или устройства декодирования движущихся изображений согласно вышеописанным вариантам осуществления является программой, описанной ниже.
[0241] В частности, программа инструктирует компьютеру осуществлять способ кодирования движущихся изображений для вычисления предиктора вектора движения, который должен быть использован при кодировании вектора движения текущего блока, который должен быть кодирован, и кодирования текущего блока, что генерировать поток битов, причем способ включает в себя: определение максимального числа кандидатов-предикторов вектора движения, каждый из которых представляет собой кандидата для предиктора вектора движения; извлечение одного или более первых кандидатов-предикторов вектора движения; определение того, меньше или нет общее число одного или более первых кандидатов-предикторов вектора движения максимального числа; извлечение одного или более вторых кандидатов-предикторов вектора движения, когда определяется то, что общее число одного или более первых кандидатов-предикторов вектора движения меньше максимального числа; выбор, из числа упомянутого одного или более первых кандидатов-предикторов вектора движения и одного или более вторых кандидатов-предикторов вектора движения, предиктора вектора движения, который должен быть использован для кодирования вектора движения текущего блока; и кодирование, с использованием определенного максимального числа, индекса для идентификации выбранного предиктора вектора движения и добавление кодированного индекса в поток битов.
[0242] Альтернативно, программа инструктирует компьютеру осуществлять способ декодирования движущихся изображений для вычисления предиктора вектора движения, который должен быть использован при декодировании вектора движения текущего блока, который должен быть декодирован, который включается в поток битов, и декодирования текущего блока, причем способ включает в себя: определение максимального числа кандидатов-предикторов вектора движения, каждый из которых представляет собой кандидата для предиктора вектора движения; извлечение одного или более первых кандидатов-предикторов вектора движения; определение того, меньше или нет общее число одного или более первых кандидатов-предикторов вектора движения максимального числа; извлечение одного или более вторых кандидатов-предикторов вектора движения, когда определяется то, что общее число одного или более первых кандидатов-предикторов вектора движения меньше максимального числа; декодирование, с использованием определенного максимального числа, кодированного индекса, добавляемого в поток битов и используемого для идентификации предиктора вектора движения; и выбор, на основе декодированного индекса, предиктора вектора движения, который должен быть использован для декодирования текущего блока, из числа упомянутого одного или более первых кандидатов-предикторов вектора движения и одного или более вторых кандидатов-предикторов вектора движения.
[0243] ВАРИАНТ 5 ОСУЩЕСТВЛЕНИЯ
Обработка, описанная в каждом из вариантов осуществления, может быть реализована просто в независимой компьютерной системе, посредством записи, на носителе записи, программы для реализации конфигураций способа кодирования движущихся изображений (способа кодирования изображений) и способа декодирования движущихся изображений (способа декодирования изображений), описанных в каждом из вариантов осуществления. Носители записи могут быть любыми носителями записи при условии, что программа может записываться, такими как магнитный диск, оптический диск, магнитооптический диск, IC-карта и полупроводниковое запоминающее устройство.
[0244] В дальнейшем в этом документе описываются варианты применения к способу кодирования движущихся изображений (способу кодирования изображений) и способу декодирования движущихся изображений (способу декодирования изображений), описанных в каждом из вариантов осуществления, и к системам с их использованием. Система имеет признак наличия устройства кодирования и декодирования изображений, которое включает в себя устройство кодирования изображений с использованием способа кодирования изображений и устройство декодирования изображений с использованием способа декодирования изображений. Другие конфигурации в системе могут быть изменены надлежащим образом в зависимости от случаев применения.
[0245] Фиг. 31 иллюстрирует общую конфигурацию системы ex100 предоставления контента для реализации услуг распространения контента. Область для предоставления услуг связи разделяется на соты требуемого размера, и базовые станции ex106, ex107, ex108, ex109 и ex110, которые являются стационарными беспроводными станциями, размещаются в каждой из сот.
[0246] Система ex100 предоставления контента подключается к таким устройствам, как компьютер ex111, персональное цифровое устройство (PDA) ex112, камера ex113, сотовый телефон ex114 и игровая машина ex115, через Интернет ex101, поставщика ex102 Интернет-услуг, телефонную сеть ex104, а также базовые станции ex106-ex110, соответственно.
[0247] Тем не менее, конфигурация системы ex100 предоставления контента не ограничена конфигурацией, показанной на фиг. 31, и комбинация, в которой подключаются любые из элементов, является допустимой. Помимо этого, каждое устройство может подключаться к телефонной сети ex104 непосредственно, а не через базовые станции ex106-ex110, которые являются стационарными беспроводными станциями. Кроме того, устройства могут быть подключены друг к другу через беспроводную связь ближнего действия и т.п.
[0248] Камера ex113, такая как цифровая видеокамера, допускает захват видео. Камера ex116, такая как цифровая камера, допускает захват как неподвижных изображений, так и видео. Кроме того, сотовый телефон ex114 может быть телефоном, который удовлетворяет любому из таких стандартов, как глобальная система мобильной связи (GSM) (зарегистрированная торговая марка), множественный доступ с кодовым разделением каналов (CDMA), широкополосный множественный доступ с кодовым разделением каналов (W-CDMA), стандарт долгосрочного развития (LTE) и высокоскоростной пакетный доступ (HSPA). Альтернативно, сотовый телефон ex114 может соответствовать стандарту системы персональных мобильных телефонов (PHS).
[0249] В системе ex100 предоставления контента сервер ex103 потоковой передачи подключается к камере ex113 и т.п. через телефонную сеть ex104 и базовую станцию ex109, которая предоставляет распространение изображений трансляции в прямом эфире и т.п. При таком распределении контент (например, видео музыкального концерта в прямом эфире), захватываемый пользователем с использованием камеры ex113, кодируется так, как описано выше в каждом из вариантов осуществления (т.е. камера выступает в качестве устройства кодирования изображений согласно аспекту настоящего изобретения), и кодированный контент передается на сервер ex103 потоковой передачи. С другой стороны, сервер ex103 потоковой передачи выполняет потоковое распространение передаваемых данных контента в клиенты при запросах. Клиенты включают в себя компьютер ex111, PDA ex112, камеру ex113, сотовый телефон ex114 и игровую машину ex115, которые допускают декодирование вышеуказанных кодированных данных. Каждое из устройств, которое принимает распределенные данные, декодирует и воспроизводит кодированные данные (т.е. выступает в качестве устройства декодирования изображений согласно аспекту настоящего изобретения).
[0250] Захватываемые данные могут кодироваться посредством камеры ex113 или сервера ex103 потоковой передачи, который передает данные, или процессы кодирования могут быть совместно использованы камерой ex113 и сервером ex103 потоковой передачи. Аналогично, распространенные данные могут быть декодированы посредством клиентов или сервера ex103 потоковой передачи, или процессы декодирования могут быть совместно использованы клиентами и сервером ex103 потоковой передачи. Кроме того, данные неподвижных изображений и видео, захватываемых не только посредством камеры ex113, но также и камеры ex116, могут быть переданы на сервер ex103 потоковой передачи через компьютер ex111. Процессы кодирования могут выполняться посредством камеры ex116, компьютера ex111 или сервера ex103 потоковой передачи или совместно использоваться ими.
[0251] Кроме того, процессы кодирования и декодирования могут выполняться посредством LSI ex500, в общем, включенной в каждый из компьютера ex111 и устройств. LSI ex500 может быть сконфигурирована из одного кристалла или множества кристаллов. Программное обеспечение для кодирования и декодирования видео может быть интегрировано в определенный тип носителя записи (такой как CD-ROM, гибкий диск и жесткий диск), который является читаемым посредством компьютера ex111 и т.п., и процессы кодирования и декодирования могут выполняться с использованием программного обеспечения. Кроме того, когда сотовый телефон ex114 содержит камеру, могут передаваться видеоданные, полученные посредством камеры. Видеоданные - это данные, кодированные посредством LSI ex500, включенной в сотовый телефон ex114.
[0252] Кроме того, сервер ex103 потоковой передачи может состоять из серверов и компьютеров и может децентрализовать данные и обрабатывать децентрализованные данные, записывать или распространять данные.
[0253] Как описано выше, клиенты могут принимать и воспроизводить кодированные данные в системе ex100 предоставления контента. Другими словами, клиенты могут принимать и декодировать информацию, передаваемую пользователем, и воспроизводить декодированные данные в режиме реального времени в системе ex100 предоставления контента, так что пользователь, который не имеет конкретных прав и оборудования, может реализовывать персональную широковещательную передачу.
[0254] Помимо примера системы ex100 предоставления контента, по меньшей мере, одно из устройства кодирования движущихся изображений (устройства кодирования изображений) и устройства декодирования движущихся изображений (устройства декодирования изображений), описанных в каждом из вариантов осуществления, может быть реализовано в цифровой широковещательной системе ex200, проиллюстрированной на фиг. 32. Более конкретно, широковещательная станция ex201 сообщает или передает по радиоволнам в широковещательный спутник ex202 мультиплексированные данные, полученные посредством мультиплексирования аудиоданных и т.п. в видеоданные. Видеоданные являются данными, кодированными посредством способа кодирования движущихся изображений, описанного в каждом из вариантов осуществления (т.е. данными, кодированными посредством устройства кодирования изображений согласно аспекту настоящего изобретения). При приеме мультиплексированных видеоданных широковещательный спутник ex202 передает радиоволны для широковещательной передачи. Затем, антенна ex204 для домашнего применения с функцией приема спутниковой широковещательной передачи принимает радиоволны. Далее такое устройство, как телевизионный приемник (приемное устройство) ex300 и абонентская приставка (STB) ex217, декодирует принятые мультиплексированные данные и воспроизводит декодированные данные (т.е. выступает в качестве устройства декодирования изображений согласно аспекту настоящего изобретения).
[0255] Кроме того, модуль ex218 считывания/записи (i) считывает и декодирует мультиплексированные данные, записанные на носителе ex215 записи, таком как DVD и BD, или (i) кодирует видеосигналы на носителе ex215 записи, и в некоторых случаях записывает данные, полученные посредством мультиплексирования аудиосигнала, в кодированные данные. Модуль ex218 считывания/записи может включать в себя устройство декодирования движущихся изображений или устройство кодирования движущихся изображений, как показано в каждом из вариантов осуществления. В этом случае, воспроизведенные видеосигналы отображаются на мониторе ex219 и могут быть воспроизведены посредством другого устройства или системы с использованием носителя ex215 записи, на котором записываются мультиплексированные данные. Также можно реализовывать устройство декодирования движущихся изображений в абонентской приставке ex217, подключенной к кабелю ex203 для кабельного телевидения или к антенне ex204 для спутниковой и/или наземной широковещательной передачи, с тем чтобы отображать видеосигналы на мониторе ex219 телевизионного приемника ex300. Устройство декодирования движущихся изображений может быть реализовано не в абонентской приставке, а в телевизионном приемнике ex300.
[0256] Фиг. 33 иллюстрирует телевизионный приемник (приемное устройство) ex300, который использует способ кодирования движущихся изображений и способ декодирования движущихся изображений, описанные в каждом из вариантов осуществления. Телевизионный приемник ex300 включает в себя: тюнер ex301, который получает или предоставляет мультиплексированные данные, полученные посредством мультиплексирования аудиоданных в видеоданные, через антенну ex204 или кабель ex203 и т.д., который принимает широковещательную передачу; модуль ex302 модуляции/демодуляции, который демодулирует принятые мультиплексированные данные или модулирует данные в мультиплексированные данные, которые должны подаваться наружу; и модуль ex303 мультиплексирования/демультиплексирования, который демультиплексирует модулированные мультиплексированные данные в видеоданные и аудиоданные или мультиплексирует видеоданные и аудиоданные, кодированные посредством процессора ex306 сигналов, в данные.
[0257] Телевизионный приемник 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 подключены друг к другу через синхронную шину.
[0258] Во-первых, описывается конфигурация, в которой телевизионный приемник ex300 декодирует мультиплексированные данные, полученные снаружи через антенну ex204 и т.п., и воспроизводит декодированные данные. В телевизионном приемнике ex300, при пользовательской операции через удаленный контроллер ex220 и т.п., модуль ex303 мультиплексирования/демультиплексирования демультиплексирует мультиплексированные данные, демодулированные посредством модуля ex302 модуляции/демодуляции, под управлением модуля ex310 управления, включающего в себя CPU. Кроме того, процессор 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 мультиплексирования/демультиплексирования.
[0259] Кроме того, телевизионный приемник ex300 может включать в себя конфигурацию для приема AV-ввода из микрофона или камеры, отличную от конфигурации для получения аудио- и видеоданных из широковещательной передачи или носителя записи, и может кодировать полученные данные. Хотя телевизионный приемник ex300 может кодировать, мультиплексировать и предоставлять наружу данные в описании, он может допускать только прием, декодирование и предоставление наружу данных, а не кодирование, мультиплексирование и предоставление наружу данных.
[0260] Кроме того, когда модуль ex218 считывания/записи считывает или записывает мультиплексированные данные с или на носитель записи, один из телевизионного приемника ex300 и модуля ex218 считывания/записи может декодировать или кодировать мультиплексированные данные, и телевизионный приемник ex300 и модуль ex218 считывания/записи могут совместно использовать декодирование или кодирование.
[0261] В качестве примера, фиг. 34 иллюстрирует конфигурацию модуля 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 управления системой включает в себя, например, микропроцессор и выполняет обработку посредством инструктирования компьютеру выполнять программу для считывания и записи.
[0262] Хотя в описании оптическая головка ex401 испускает лазерное пятно, она может выполнять запись с высокой плотностью с использованием света в поле в ближней зоне.
[0263] Фиг. 35 иллюстрирует носитель ex215 записи, который является оптическим диском. На поверхности для записи носителя ex215 записи, направляющие канавки генерируются по спирали, и информационная дорожка ex230 записывает, заранее, информацию адреса, указывающую абсолютную позицию на диске, согласно изменению в форме направляющих канавок. Информация адреса включает в себя информацию для определения позиций блоков ex231 записи, которые являются единицей для записи данных. Воспроизведение информационной дорожки ex230 и считывание информации адреса в устройстве, которое записывает и воспроизводит данные, может приводить к определению позиций блоков записи. Кроме того, носитель ex215 записи включает в себя зону ex233 записи данных, зону ex232 внутренней окружности и зону ex234 внешней окружности. Зона ex233 записи данных является зоной для использования при записи пользовательских данных. Зона ex232 внутренней окружности и зона ex234 внешней окружности, которые находятся внутри и снаружи зоны ex233 записи данных, соответственно, предназначены для конкретного применения за исключением записи пользовательских данных. Модуль 400 воспроизведения/записи информации считывает и записывает кодированное аудио, кодированные видеоданные или мультиплексированные данные, полученные посредством мультиплексирования кодированного аудио и кодированных видеоданных, из и в зону ex233 записи данных носителя ex215 записи.
[0264] Хотя оптический диск, имеющий слой, такой как DVD и BD, описывается в качестве примера в описании, оптический диск не ограничен таким образом и может быть оптическим диском, имеющим многослойную структуру и допускающим запись на часть, отличную от поверхности. Кроме того, оптический диск может иметь структуру для многомерной записи/воспроизведения, к примеру, записи информации с использованием света цветов с различными длинами волн в одной части оптического диска и для записи информации, имеющей различные слои, с различных углов.
[0265] Кроме того, автомобиль ex210, имеющий антенну ex205, может принимать данные из спутника ex202 и т.п. и воспроизводить видео на устройстве отображения, таком как автомобильная навигационная система ex211, установленная в автомобиле ex210, в цифровой широковещательной системе ex200. Здесь, конфигурация автомобильной навигационной системы ex211 является конфигурацией, например, включающей в себя приемный GPS-модуль, из конфигурации, проиллюстрированной на фиг. 33. То же применимо для конфигурации компьютера ex111, сотового телефона ex114 и т.п.
[0266] Фиг. 36A иллюстрирует сотовый телефон ex114, который использует способ кодирования движущихся изображений и способ декодирования движущихся изображений, описанные в вариантах осуществления. Сотовый телефон ex114 включает в себя: антенну ex350 для передачи и приема радиоволн через базовую станцию ex110; модуль ex365 камеры, допускающий захват движущихся и неподвижных изображений; и модуль ex358 отображения, к примеру, жидкокристаллический дисплей для отображения данных, таких как декодированное видео, захватываемое посредством модуля ex365 камеры или принимаемое посредством антенны ex350. Сотовый телефон ex114 дополнительно включает в себя: модуль основного корпуса, включающий в себя модуль ex366 функциональных клавиш; модуль ex357 аудиовывода, к примеру, динамик для вывода аудио; модуль ex356 аудиоввода, к примеру, микрофон для ввода аудио; запоминающее устройство ex367 для сохранения захваченного видео или неподвижных изображений, записанного аудио, кодированных или декодированных данных принимаемого видео, неподвижных изображений, почтовых сообщений и т.п.; и модуль ex364 гнезда, который является интерфейсным модулем для носителя записи, который сохраняет данные таким же образом, как запоминающее устройство ex367.
[0267] Далее описывается пример конфигурации сотового телефона ex114 со ссылкой на фиг. 36B. В сотовом телефоне ex114 главный модуль ex360 управления, спроектированный с возможностью полностью управлять каждым модулем основного корпуса, включающим в себя модуль ex358 отображения, а также модуль ex366 функциональных клавиш, взаимно соединяется, через синхронную шину ex370, с модулем ex361 схемы электропитания, модулем ex362 управления функциональным вводом, процессором ex355 видеосигналов, модулем ex363 интерфейса камеры, модулем ex359 управления жидкокристаллическим дисплеем (ЖК-дисплеем), модулем ex352 модуляции/демодуляции, модулем ex353 мультиплексирования/демультиплексирования, процессором ex354 аудиосигналов, модулем ex364 гнезда и запоминающим устройством ex367.
[0268] Когда клавиша завершения вызова или клавиша включения питания включается посредством пользовательской операции, модуль ex361 схемы электропитания предоставляет в соответствующие модули питание из аккумуляторной батареи с тем, чтобы активировать сотовый телефон ex114.
[0269] В сотовом телефоне ex114 процессор ex354 аудиосигналов преобразует аудиосигналы, собираемые посредством модуля ex356 аудиоввода в режиме речевой связи, в цифровые аудиосигналы под управлением главного модуля ex360 управления, включающего в себя CPU, ROM и RAM. Затем, модуль ex352 модуляции/демодуляции выполняет обработку с расширенным спектром для цифровых аудиосигналов, и приемо-передающий модуль ex351 выполняет цифро-аналоговое преобразование и преобразование частоты для данных, с тем чтобы передавать результирующие данные через антенну ex350. Так же, в сотовом телефоне ex114, приемо-передающий модуль ex351 усиливает данные, принимаемые посредством антенны ex350 в режиме речевой связи, и выполняет преобразование частоты и аналого-цифровое преобразование для данных. Затем, модуль ex352 модуляции/демодуляции выполняет обработку с обратным расширенным спектром для данных, и процессор ex354 аудиосигналов преобразует их в аналоговые аудиосигналы, с тем чтобы выводить их через модуль ex357 аудиовывода.
[0270] Кроме того, когда передается электронная почта в режиме передачи данных, текстовые данные электронной почты, введенные посредством операций с модулем ex366 функциональных клавиш и т.п. основного корпуса, отправляются в главный модуль ex360 управления через модуль ex362 управления функциональным вводом. Главный модуль ex360 управления инструктирует модулю ex352 модуляции/демодуляции выполнять обработку с расширенным спектром для текстовых данных, и приемо-передающий модуль ex351 выполняет цифро-аналоговое преобразование и преобразование частоты для результирующих данных, чтобы передавать данные в базовую станцию ex110 через антенну ex350. Когда принимается почтовое сообщение, обработка, которая является приблизительно обратной относительно обработки для передачи почтового сообщения, выполняется для принимаемых данных, и результирующие данные предоставляются в модуль ex358 отображения.
[0271] Когда передается видео, неподвижные изображения либо видео и аудио в режиме передачи данных, процессор ex355 видеосигналов сжимает и кодирует видеосигналы, предоставляемые из модуля ex365 камеры, с использованием способа кодирования движущихся изображений, показанного в каждом из вариантов осуществления (т.е. выступает в качестве устройства кодирования изображений согласно аспекту настоящего изобретения), и передает кодированные видеоданные в модуль ex353 мультиплексирования/демультиплексирования. Напротив, в течение времени, когда модуль ex365 камеры захватывает видео, неподвижные изображения и т.п., процессор ex354 аудиосигналов кодирует аудиосигналы, собранные посредством модуля ex356 аудиоввода, и передает кодированные аудиоданные в модуль ex353 мультиплексирования/демультиплексирования.
[0272] Модуль ex353 мультиплексирования/демультиплексирования мультиплексирует кодированные видеоданные, подаваемые из процессора ex355 видеосигналов, и кодированные аудиоданные, подаваемые из процессора ex354 аудиосигналов, с использованием предварительно определенного способа. Затем, модуль ex352 модуляции/демодуляции (модуль схемы модуляции/демодуляции) выполняет обработку с расширенным спектром для мультиплексированных данных, и приемо-передающий модуль ex351 выполняет цифро-аналоговое преобразование и преобразование частоты для данных, с тем чтобы передавать результирующие данные через антенну ex350.
[0273] При приеме данных видеофайла, который связывается с веб-страницей и т.п., в режиме передачи данных или при приеме почтового сообщения с присоединенным видео и/или аудио, чтобы декодировать мультиплексированные данные, принятые через антенну ex350, модуль ex353 мультиплексирования/демультиплексирования демультиплексирует мультиплексированные данные в поток битов видеоданных и поток битов аудиоданных и предоставляет в процессор ex355 видеосигналов кодированные видеоданные, а в процессор ex354 аудиосигналов кодированные аудиоданные через синхронную шину ex370. Процессор ex355 видеосигналов декодирует видеосигнал с использованием способа декодирования движущихся изображений, соответствующего способу кодирования движущихся изображений, показанному в каждом из вариантов осуществления (т.е. выступает в качестве устройства декодирования изображений согласно аспекту настоящего изобретения), и затем модуль ex358 отображения отображает, например, видеоизображения и неподвижные изображения, включенные в видеофайл, связанный с веб-страницей, через модуль ex359 управления ЖК-дисплеем. Кроме того, процессор ex354 аудиосигналов декодирует аудиосигнал, и модуль ex357 аудиовывода предоставляет аудио.
[0274] Кроме того, аналогично телевизионному приемнику ex300, терминал, такой как сотовый телефон ex114, вероятно, имеет 3 типа реализованных конфигураций, включающих в себя не только (i) приемо-передающий терминал, включающий в себя как устройство кодирования, так и устройство декодирования, но также и (ii) передающий терминал, включающий в себя только устройство кодирования, и (iii) приемный терминал, включающий в себя только устройство декодирования. Хотя в описании цифровая широковещательная система ex200 принимает и передает мультиплексированные данные, полученные посредством мультиплексирования аудиоданных в видеоданные в описании, мультиплексированные данные могут быть данными, полученными посредством мультиплексирования не аудиоданных, а символьных данных, связанных с видео, в видеоданные, и могут быть не мультиплексированными данными, а самими видеоданными.
[0275] По сути, способ кодирования движущихся изображений и способ декодирования движущихся изображений в каждом из вариантов осуществления могут использоваться в любых из описанных устройств и систем. Таким образом, могут быть получены преимущества, описанные в каждом из вариантов осуществления.
[0276] Кроме того, настоящее изобретение не ограничено вариантами осуществления, и различные модификации и изменения возможны без отступления от объема настоящего изобретения.
[0277] ВАРИАНТ 6 ОСУЩЕСТВЛЕНИЯ
Видеоданные могут быть сгенерированы посредством переключения, по мере необходимости, между (i) способом кодирования движущихся изображений или устройством кодирования движущихся изображений, показанными в каждом из вариантов осуществления, и (ii) способом кодирования движущихся изображений или устройством кодирования движущихся изображений в соответствии с другим стандартом, таким как MPEG-2, MPEG-4 AVC и VC-1.
[0278] Здесь, когда множество видеоданных, которые соответствуют различным стандартам, генерируются, а затем декодируются, способы декодирования должны быть выбраны таким образом, что они соответствуют различным стандартам. Тем не менее, поскольку не может быть обнаружено то, какому стандарту соответствуют каждые из множества из видеоданных, которые должны быть декодированы, имеется проблема в том, что не может быть выбран надлежащий способ декодирования.
[0279] Чтобы разрешать проблему, мультиплексированные данные, полученные посредством мультиплексирования аудиоданных и т.п. в видеоданные, имеют структуру, включающую в себя идентификационную информацию, указывающую то, какому стандарту соответствуют видеоданные. Далее описывается конкретная структура мультиплексированных данных, включающих в себя видеоданные, сформированные в способе кодирования движущихся изображений и посредством устройства кодирования движущихся изображений, показанных в каждом из вариантов осуществления. Мультиплексированные данные являются цифровым потоком в формате транспортных потоков MPEG-2.
[0280] Фиг. 37 иллюстрирует структуру мультиплексированных данных. Как проиллюстрировано на фиг. 37, мультиплексированные данные могут быть получены посредством мультиплексирования, по меньшей мере, одного из видеопотока, аудиопотока, потока презентационной графики (PG) и потока интерактивной графики. Видеопоток представляет первичное видео и вторичное видео фильма, аудиопоток (IG) представляет часть первичного аудио и часть вторичного аудио, которая должна смешиваться с частью первичного аудио, а поток презентационной графики представляет субтитры фильма. Здесь, первичное видео является обычным видео, которое должно отображаться на экране, а вторичное видео является видео, которое должно отображаться в меньшем окне в первичном видео. Кроме того, поток интерактивной графики представляет интерактивный экран, который должен быть сгенерирован посредством размещения GUI-компонентов на экране. Видеопоток кодируется в способе кодирования движущихся изображений или посредством устройства кодирования движущихся изображений, показанных в каждом из вариантов осуществления, либо в способе кодирования движущихся изображений или посредством устройства кодирования движущихся изображений в соответствии с традиционным стандартом, таким как MPEG-2, MPEG-4 AVC и VC-1. Аудиопоток кодируется в соответствии с таким стандартом, как AC-3 Dolby, Dolby Digital Plus, MLP, DTS, DTS-HD и линейная PCM.
[0281] Каждый поток, включенный в мультиплексированные данные, идентифицируется посредством PID. Например, 0x1011 выделяется видеопотоку, который должен быть использован для видео фильма, 0x1100-0x111F выделяются аудиопотокам, 0x1200-0x121F выделяются потокам презентационной графики, 0x1400-0x141F выделяются потокам интерактивной графики, 0x1B00-0x1B1F выделяются видеопотокам, которые должны быть использованы для вторичного видео фильма, и 0x1A00-0x1A1F выделяются аудиопотокам, которые должны быть использованы для вторичного аудио, которое должно смешиваться с первичным аудио.
[0282] Фиг. 38 схематично иллюстрирует то, как мультиплексируются данные. Во-первых, видеопоток ex235, состоящий из видеокадров, и аудиопоток ex238, состоящий из аудиокадров, преобразуются в поток PES-пакетов ex236 и поток PES-пакетов ex239 и дополнительно в TS-пакеты ex237 и TS-пакеты ex240, соответственно. Аналогично, данные потока ex241 презентационной графики и данные потока ex244 интерактивной графики преобразуются в поток PES-пакетов ex242 и поток PES-пакетов ex245 и дополнительно в TS-пакеты ex243 и TS-пакеты ex246, соответственно. Эти TS-пакеты мультиплексируются в поток, чтобы получать мультиплексированные данные ex247.
[0283] Фиг. 39 иллюстрирует то, как видеопоток сохраняется в потоке PES-пакетов. Первая панель на фиг. 39 показывает поток видеокадров в видеопотоке. Вторая панель показывает поток PES-пакетов. Как указано посредством стрелок, обозначенных как yy1, yy2, yy3 и yy4 на фиг. 39, видеопоток разделяется на изображения, такие как I-изображения, B-изображения и P-изображения, каждое из которых является единицей видеопредставления, и изображения сохраняются в рабочих данных каждого из PES-пакетов. Каждый из PES-пакетов имеет PES-заголовок, и PES-заголовок сохраняет временную метку представления (PTS), указывающую время отображения изображения, и временную метку декодирования (DTS), указывающую время декодирования изображения.
[0284] Фиг. 40 иллюстрирует формат 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-фильтр. Исходные пакеты размещаются в мультиплексированных данных, как показано в нижней части фиг. 40. Номера, увеличивающиеся с заголовка мультиплексированных данных, называются номерами исходных пакетов (SPN).
[0285] Каждый из TS-пакетов, включенных в мультиплексированные данные, включает в себя не только потоки аудио, видео, субтитров и т.п., но также и таблицу ассоциаций программ (PAT), таблицу структуры программ (PMT) и временную отметку программ (PCR). PAT показывает то, что указывает PID в PMT, используемой в мультиплексированных данных, и PID самого PAT регистрируется как нуль. PMT сохраняет PID потоков видео, аудио, субтитров и т.п., включенных в мультиплексированные данные, и информацию атрибутов потоков, соответствующих PID. PMT также имеет различные дескрипторы, связанные с мультиплексированными данными. Дескрипторы имеют такую информацию, как информация управления копированием, показывающая то, разрешено или нет копирование мультиплексированных данных. PCR сохраняет информацию STC-времени, соответствующую ATS, показывающей, когда PCR-пакет передается в декодер, чтобы достигать синхронизации между таймером поступления (ATC), т.е. временной осью ATS, и системным таймером (STC), т.е. временной осью PTS и DTS.
[0286] Фиг. 41 подробно поясняет структуру данных PMT. PMT-заголовок располагается в верхней части PMT. PMT-заголовок описывает длину данных, включенных в PMT, и т.п. Множество дескрипторов, связанных с мультиплексированными данными, располагается после PMT-заголовка. Информация, такая как информация управления копированием, описывается в дескрипторах. После дескрипторов располагается множество фрагментов информации потока, связанных с потоками, включенными в мультиплексированные данные. Каждый фрагмент информации потока включает в себя дескрипторы потоков, каждый из которых описывает такую информацию, как тип потока для идентификации кодека сжатия потока, PID потока и информация атрибутов потока (такая как частота кадров или соотношение сторон). Дескрипторы потоков по числу равны числу потоков в мультиплексированных данных.
[0287] Когда мультиплексированные данные записываются на носителе записи и т.д., они записываются вместе с файлами информации мультиплексированных данных.
[0288] Каждый из файлов информации мультиплексированных данных является управляющей информацией мультиплексированных данных, как показано на фиг. 42. Файлы информации мультиплексированных данных находятся в соответствии "один-к-одному" с мультиплексированными данными, и каждый из файлов включает в себя информацию мультиплексированных данных, информацию атрибутов потока и карту вхождений.
[0289] Как проиллюстрировано на фиг. 42, информация мультиплексированных данных включает в себя системную скорость, время начала воспроизведения и время завершения воспроизведения. Системная скорость указывает максимальную скорость передачи, на которой декодер системных целевых объектов, который должен быть описан ниже, передает мультиплексированные данные в PID-фильтр. Интервалы ATS, включенных в мультиплексированные данные, задаются не больше системной скорости. Время начала воспроизведения указывает PTS в видеокадре в заголовке мультиплексированных данных. Интервал одного кадра добавляется к PTS в видеокадре в конце мультиплексированных данных, и PTS задается равным времени завершения воспроизведения.
[0290] Как показано на фиг. 43, фрагмент информации атрибутов регистрируется в информации атрибутов потока для каждого PID каждого потока, включенного в мультиплексированные данные. Каждый фрагмент информации атрибутов имеет различную информацию в зависимости от того, является соответствующий поток видеопотоком, аудиопотоком, потоком презентационной графики или потоком интерактивной графики. Каждый фрагмент информации атрибутов видеопотока переносит информацию, включающую в себя то, какой кодек сжатия используется для сжатия видеопотока, а также разрешение, соотношение сторон и частоту кадров фрагментов данных изображений, которые включаются в видеопоток. Каждый фрагмент информации атрибутов аудиопотока переносит информацию, включающую в себя то, какой кодек сжатия используется для сжатия аудиопотока, сколько каналов включается в аудиопоток, какой язык поддерживает аудиопотока, и насколько высокой является частота дискретизации. Информация атрибутов видеопотока и информация атрибутов аудиопотока используются для инициализации декодера до того, как проигрыватель воспроизводит информацию.
[0291] В настоящем варианте осуществления мультиплексированные данные, которые должны быть использованы, имеют тип потока, включенный в PMT. Кроме того, когда мультиплексированные данные записываются на носителе записи, используется информация атрибутов видеопотока, включенная в информацию мультиплексированных данных. Более конкретно, способ кодирования движущихся изображений или устройство кодирования движущихся изображений, описанные в каждом из вариантов осуществления, включают в себя этап или модуль для выделения уникальных видеоданных, указывающих информацию, сформированную посредством способа кодирования движущихся изображений или устройства кодирования движущихся изображений в каждом из вариантов осуществления, для типа потока, включенного в PMT, или информации атрибутов видеопотока. При этой конфигурации, видеоданные, сформированные посредством способа кодирования движущихся изображений или устройства кодирования движущихся изображений, описанных в каждом из вариантов осуществления, могут отличаться от видеоданных, которые соответствуют другому стандарту.
[0292] Кроме того, фиг. 44 иллюстрирует этапы способа декодирования движущихся изображений согласно настоящему варианту осуществления. На этапе exS100, тип потока, включенный в PMT или информацию атрибутов видеопотока, включенную в информацию мультиплексированных данных, получается из мультиплексированных данных. Затем, на этапе exS101, определяется то, указывает или нет тип потока либо информация атрибутов видеопотока то, что мультиплексированные данные генерируются посредством способа кодирования видео или устройства кодирования видео в каждом из вариантов осуществления. Когда определяется то, что тип потока или информация атрибутов видеопотока указывают то, что мультиплексированные данные генерируются посредством способа кодирования движущихся изображений или устройства кодирования движущихся изображений в каждом из вариантов осуществления, на этапе exS102, декодирование выполняется посредством способа декодирования движущихся изображений в каждом из вариантов осуществления. Кроме того, когда тип потока или информация атрибутов видеопотока указывает соответствие традиционным стандартам, таким как MPEG-2, MPEG-4 AVC и VC-1, на этапе exS103, декодирование выполняется посредством способа декодирования движущихся изображений в соответствии с традиционными стандартами.
[0293] Так же, выделение нового уникального значения для типа потока или информации атрибутов видеопотока обеспечивает определение того, могут или нет выполнять декодирование способ декодирования движущихся изображений или устройство декодирования движущихся изображений, которые описываются в каждом из вариантов осуществления. Даже когда вводятся мультиплексированные данные, которые соответствуют другому стандарту, может быть выбран надлежащий способ или устройство декодирования. Таким образом, появляется возможность декодировать информацию без ошибок. Кроме того, способ или устройство кодирования движущихся изображений либо способ или устройство декодирования движущихся изображений в настоящем варианте осуществления могут быть использованы в устройствах и системах, описанных выше.
[0294] ВАРИАНТ 7 ОСУЩЕСТВЛЕНИЯ
Каждый из способа кодирования движущихся изображений, устройства кодирования движущихся изображений, способа декодирования движущихся изображений и устройства декодирования движущихся изображений в каждом из вариантов осуществления типично осуществляется в форме интегральной схемы или большой интегральной (LSI) схемы. В качестве примера LSI, фиг. 45 иллюстрирует конфигурацию LSI ex500, которая состоит из одного кристалла. LSI ex500 включает в себя элементы ex501, ex502, ex503, ex504, ex505, ex506, ex507, ex508 и ex509, которые должны быть описаны ниже, и элементы соединяются друг с другом через шину ex510. Модуль ex505 схемы электропитания активируется посредством предоставления в каждый из элементов питания, когда модуль ex505 схемы электропитания включается.
[0295] Например, когда выполняется кодирование, LSI ex500 принимает AV-сигнал из микрофона ex117, камеры ex113 и т.п. через AV-ввод/вывод ex509 под управлением модуля ex501 управления, включающего в себя CPU ex502, контроллер ex503 запоминающего устройства, потоковый контроллер ex504 и модуль ex512 управления частотой возбуждения. Принимаемый AV-сигнал временно сохраняется во внешнем запоминающем устройстве ex511, к примеру, SDRAM. Под управлением модуля ex501 управления, сохраненные данные сегментируются на части данных согласно объему и скорости обработки так, что они передаются в процессор ex507 сигналов. Затем, процессор ex507 сигналов кодирует аудиосигнал и/или видеосигнал. Здесь, кодирование видеосигнала является кодированием, описанным в каждом из вариантов осуществления. Кроме того, процессор ex507 сигналов иногда мультиплексирует кодированные аудиоданные и кодированные видеоданные, и потоковый ввод-вывод ex506 предоставляет мультиплексированные данные наружу. Предоставляемый поток битов передается в базовую станцию ex107 или записывается на носителе ex215 записи. Когда наборы данных мультиплексируются, данные должны временно сохраняться в буфере ex508 так, что наборы данных являются синхронизированными друг с другом.
[0296] Хотя запоминающее устройство ex511 является элементом за пределами LSI ex500, оно может быть включено в LSI ex500. Буфер ex508 не ограничен одним буфером, а может состоять из буферов. Кроме того, LSI ex500 может состоять из одного кристалла или множества кристаллов.
[0297] Кроме того, хотя модуль ex501 управления включает в себя CPU ex502, контроллер ex503 запоминающего устройства, потоковый контроллер ex504, модуль ex512 управления частотой возбуждения, конфигурация модуля ex501 управления не ограничена этой. Например, процессор ex507 сигналов дополнительно может включать в себя CPU. Включение другого CPU в процессор ex507 сигналов может повышать скорость обработки. Кроме того, в качестве другого примера, CPU ex502 может выступать в качестве или быть частью процессора ex507 сигналов и, например, может включать в себя процессор аудиосигналов. В таком случае, модуль ex501 управления включает в себя процессор ex507 сигналов или CPU ex502, включающий в себя часть процессора ex507 сигналов.
[0298] Используемым здесь названием является LSI, но она также может называться IC, системной LSI, супер-LSI или ультра-LSI в зависимости от степени интеграции.
[0299] Кроме того, способы достигать интеграции не ограничены LSI, и специальная схема или процессор общего назначения и т.д. также позволяет достигать интеграции. Программируемая пользователем вентильная матрица (FPGA), которая может программироваться после изготовления LSI, или реконфигурируемый процессор, который дает возможность переконфигурирования подключения или конфигурации LSI, может использоваться для аналогичной цели.
[0300] В будущем, с развитием полупроводниковых технологий совершенно новая технология может заменять LSI. Функциональные блоки могут быть интегрированы с использованием этой технологии. Имеется возможность того, что настоящее изобретение применимо к биотехнологии.
[0301] ВАРИАНТ 8 ОСУЩЕСТВЛЕНИЯ
Когда декодируются видеоданные, сформированные в способе кодирования движущихся изображений или посредством устройства кодирования движущихся изображений, описанных в каждом из вариантов осуществления, по сравнению с тем, когда декодируются видеоданные, которые соответствуют традиционному стандарту, такому как MPEG-2, MPEG-4 AVC и VC-1, объем обработки, вероятно, возрастает. Таким образом, LSI ex500 должна задаваться на частоте возбуждения, превышающей частоту CPU ex502, которая должна быть использована, когда видеоданные декодируются в соответствии с традиционным стандартом. Тем не менее, когда частота возбуждения задается большей, имеется проблема в том, что возрастает энергопотребление.
[0302] Чтобы разрешать проблему, устройство декодирования движущихся изображений, такое как телевизионный приемник ex300 и LSI ex500, выполнено с возможностью определять то, какому стандарту соответствуют видеоданные, и переключаться между частотами возбуждения согласно определенному стандарту. Фиг. 46 иллюстрирует конфигурацию ex800 в настоящем варианте осуществления. Модуль ex803 переключения частоты возбуждения задает частоту возбуждения равной высокой частоте возбуждения, когда видеоданные генерируются посредством способа кодирования движущихся изображений или устройства кодирования движущихся изображений, описанных в каждом из вариантов осуществления. Затем, модуль ex803 переключения частоты возбуждения инструктирует процессору ex801 декодирования, который осуществляет способ декодирования движущихся изображений, описанный в каждом из вариантов осуществления, декодировать видеоданные. Когда видеоданные соответствуют традиционному стандарту, модуль ex803 переключения частоты возбуждения задает частоту возбуждения равной меньшей частоте возбуждения, чем частота возбуждения видеоданных, сгенерированных посредством способа кодирования движущихся изображений или устройства кодирования движущихся изображений, описанных в каждом из вариантов осуществления. Затем, модуль ex803 переключения частоты возбуждения инструктирует процессору ex802 декодирования, который соответствует традиционному стандарту, декодировать видеоданные.
[0303] Более конкретно, модуль ex803 переключения частоты возбуждения включает в себя CPU ex502 и модуль ex512 управления частотой возбуждения на фиг. 45. Здесь, каждый из процессора ex801 декодирования, который осуществляет способ декодирования движущихся изображений, описанный в каждом из вариантов осуществления, и процессора ex802 декодирования, который соответствует традиционному стандарту, соответствует процессору ex507 сигналов на фиг. 45. CPU ex502 определяет то, какому стандарту соответствуют видеоданные. Затем, модуль ex512 управления частотой возбуждения определяет частоту возбуждения на основе сигнала из CPU ex502. Кроме того, процессор ex507 сигналов декодирует видеоданные на основе сигнала из CPU ex502. Например, идентификационная информация, описанная в варианте 6 осуществления, вероятно, используется для идентификации видеоданных. Идентификационная информация не ограничена идентификационной информацией, описанной в варианте 6 осуществления, а может быть любой информацией при условии, что информация указывает то, какому стандарту соответствуют видеоданные. Например, когда то, какому стандарту соответствуют стандартные видеоданные, может быть определено на основе внешнего сигнала для определения того, что видеоданные используются для телевизионного приемника или диска и т.д., определение может выполняться на основе такого внешнего сигнала. Кроме того, CPU ex502 выбирает частоту возбуждения на основе, например, таблицы поиска, в которой стандарты видеоданных ассоциированы с частотами возбуждения, как показано на фиг. 48. Частота возбуждения может быть выбрана посредством сохранения таблицы поиска в буфере ex508 и внутреннем запоминающем устройстве LSI и при обращении к таблице поиска посредством CPU ex502.
[0304] Фиг. 47 иллюстрирует этапы для осуществления способа в настоящем варианте осуществления. Во-первых, на этапе exS200, процессор ex507 сигналов получает идентификационную информацию из мультиплексированных данных. Затем, на этапе exS201, CPU ex502 определяет на основе идентификационной информации то, генерируются или нет видеоданные посредством способа кодирования и устройства кодирования, описанных в каждом из вариантов осуществления. Когда видеоданные генерируются посредством способа кодирования движущихся изображений и устройства кодирования движущихся изображений, описанных в каждом из вариантов осуществления, на этапе exS202, CPU ex502 передает сигнал для задания частоты возбуждения равной большей частоте возбуждения в модуль ex512 управления частотой возбуждения. Затем, модуль ex512 управления частотой возбуждения задает частоту возбуждения равной большей частоте возбуждения. С другой стороны, когда идентификационная информация указывает то, что видеоданные соответствуют традиционному стандарту, такому как MPEG-2, MPEG-4 AVC и VC-1, на этапе exS203, CPU ex502 передает сигнал для задания частоты возбуждения равной меньшей частоте возбуждения в модуль ex512 управления частотой возбуждения. Затем, модуль ex512 управления частотой возбуждения задает частоту возбуждения равной меньшей частоте возбуждения, чем частота возбуждения в случае, если видеоданные генерируются посредством способа кодирования движущихся изображений и устройства кодирования движущихся изображений, описанных в каждом из вариантов осуществления.
[0305] Кроме того, наряду с переключением частот возбуждения, энергосберегающий эффект может быть повышен посредством изменения напряжения, которое должно прикладываться к LSI ex500 или к устройству, включающему в себя LSI ex500. Например, когда частота возбуждения задается меньшей, напряжение, которое должно прикладываться к LSI ex500 или к устройству, включающему в себя LSI ex500, вероятно, задается равным напряжению, меньшему напряжения в случае, если частота возбуждения задается большей.
[0306] Кроме того, когда объем обработки для декодирования больше, частота возбуждения может задаваться большей, а когда объем обработки для декодирования меньше, частота возбуждения может задаваться меньшей в качестве способа для задания частоты возбуждения. Таким образом, способ задания не ограничен способами, описанными выше. Например, когда объем обработки для декодирования видеоданных в соответствии с MPEG-4 AVC превышает объем обработки для декодирования видеоданных, сгенерированных посредством способа кодирования движущихся изображений и устройства кодирования движущихся изображений, описанных в каждом из вариантов осуществления, частота возбуждения, вероятно, задается в обратном порядке относительно задания, описанного выше.
[0307] Кроме того, способ для задания частоты возбуждения не ограничен способом для задания частоты возбуждения меньшей. Например, когда идентификационная информация указывает то, что видеоданные генерируются посредством способа кодирования движущихся изображений и устройства кодирования движущихся изображений, описанных в каждом из вариантов осуществления, напряжение, которое должно прикладываться к LSI ex500 или к устройству, включающему в себя LSI ex500, вероятно, задается большим. Когда идентификационная информация указывает то, что видеоданные соответствуют традиционному стандарту, такому как MPEG-2, MPEG-4 AVC и VC-1, напряжение, которое должно прикладываться к LSI ex500 или к устройству, включающему в себя LSI ex500, вероятно, задается меньшим. В качестве другого примера, когда идентификационная информация указывает то, что видеоданные генерируются посредством способа кодирования движущихся изображений и устройства кодирования движущихся изображений, описанных в каждом из вариантов осуществления, возбуждение CPU ex502, вероятно, не должно приостанавливаться. Когда идентификационная информация указывает то, что видеоданные соответствуют традиционному стандарту, такому как MPEG-2, MPEG-4 AVC и VC-1, возбуждение CPU ex502, вероятно, приостанавливается в данное время, поскольку CPU ex502 имеет дополнительную производительность обработки. Даже когда идентификационная информация указывает то, что видеоданные генерируются посредством способа кодирования движущихся изображений и устройства кодирования движущихся изображений, описанных в каждом из вариантов осуществления, в случае, если CPU ex502 имеет дополнительную производительность обработки, возбуждение CPU ex502, вероятно, приостанавливается в данное время. В таком случае, время приостановки, вероятно, задается меньшим времени приостановки в случае, когда идентификационная информация указывает то, что видеоданные соответствуют традиционному стандарту, такому как MPEG-2, MPEG-4 AVC и VC-1.
[0308] Соответственно, энергосберегающий эффект может быть повышен посредством переключения между частотами возбуждения согласно стандарту, которому соответствуют видеоданные. Кроме того, когда LSI ex500 или устройство, включающее в себя LSI ex500, возбуждается с использованием аккумулятора, время работы от аккумулятора может быть продлено за счет энергосберегающего эффекта.
[0309] ВАРИАНТ 9 ОСУЩЕСТВЛЕНИЯ
Возникают случаи, когда множество видеоданных, которые соответствуют различным стандартам, предоставляются в устройства и системы, такие как телевизионный приемник и сотовый телефон. Чтобы обеспечивать декодирование множества видеоданных, которые соответствуют различным стандартам, процессор ex507 сигналов LSI ex500 должен соответствовать различным стандартам. Тем не менее, проблемы увеличения масштаба схемы LSI ex500 и роста затрат возникают при отдельном использовании процессоров ex507 сигналов, которые соответствуют соответствующим стандартам.
[0310] Чтобы разрешать проблему, задумана конфигурация, в которой частично совместно используются процессор декодирования для реализации способа декодирования движущихся изображений, описанного в каждом из вариантов осуществления, и процессор декодирования, который соответствует традиционному стандарту, такому как MPEG-2, MPEG-4 AVC и VC-1. Ex900 на фиг. 49A показывает пример конфигурации. Например, способ декодирования движущихся изображений, описанный в каждом из вариантов осуществления, и способ декодирования движущихся изображений, который соответствует MPEG-4 AVC, имеют, частично совместно, сведения по обработке, такой как энтропийное кодирование, обратное квантование, фильтрация для удаления блочности и прогнозирование с компенсацией движения. Сведения по обработке, которая должна совместно использоваться, вероятно, включают в себя использование процессора ex902 декодирования, который соответствует MPEG-4 AVC. Напротив, выделенный процессор ex901 декодирования, вероятно, используется для другой обработки, уникальной для аспекта настоящего изобретения. Поскольку аспект настоящего изобретения конкретно отличается посредством компенсации движения, например, выделенный процессор ex901 декодирования используется для компенсации движения. В противном случае, процессор декодирования, вероятно, совместно используется для одного из энтропийного декодирования, фильтрации для удаления блочности и обратного квантования либо для всей обработки. Процессор декодирования для реализации способа декодирования движущихся изображений, описанного в каждом из вариантов осуществления, может быть совместно использован для обработки, которая должна совместно использоваться, и выделенный процессор декодирования может использоваться для обработки, уникальной для MPEG-4 AVC.
[0311] Кроме того, ex1000 на фиг. 49B показывает другой пример, в котором обработка совместно используется частично. Этот пример использует конфигурацию, включающую в себя выделенный процессор ex1001 декодирования, который поддерживает обработку, уникальную для аспекта настоящего изобретения, выделенный процессор ex1002 декодирования, который поддерживает обработку, уникальную для другого традиционного стандарта, и процессор ex1003 декодирования, который поддерживает обработку, которая должна совместно использоваться способом декодирования движущихся изображений согласно аспекту настоящего изобретения и традиционным способом декодирования движущихся изображений. Здесь, выделенные процессоры ex1001 и ex1002 декодирования не обязательно являются специализированными для обработки согласно аспекту настоящего изобретения и обработки по традиционному стандарту, соответственно, и могут быть процессорами, допускающими реализацию общей обработки. Кроме того, конфигурация настоящего варианта осуществления может быть реализована посредством LSI ex500.
[0312] Так же, уменьшение масштаба схемы LSI и сокращение затрат возможно за счет совместного использования процессора декодирования для обработки, которая должна совместно использоваться способом декодирования движущихся изображений согласно аспекту настоящего изобретения и способом декодирования движущихся изображений в соответствии с традиционным стандартом.
ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ
[0313] Способ кодирования движущихся изображений и способ декодирования движущихся изображений согласно настоящему изобретению являются применимыми к любым мультимедийным данным, могут повышать устойчивость к ошибкам кодирования и декодирования движущегося изображения и являются полезными, например, в качестве способа кодирования движущихся изображений и способа декодирования движущихся изображений при хранении, передаче, связи и т.п. с использованием сотовых телефонов, DVD-устройств и персональных компьютеров.
СПИСОК НОМЕРОВ ССЫЛОК
[0314] 100, 200 - устройство кодирования движущихся изображений
101 - модуль вычитания
102 - модуль ортогонального преобразования
103 - модуль квантования
104, 302 - модуль обратного квантования
105, 303 - модуль обратного ортогонального преобразования
106, 304 - модуль суммирования
107, 305 - память блоков
108, 306 - память кадров
109, 307 - модуль внутреннего прогнозирования
110, 308 - модуль внешнего прогнозирования
111, 309 - модуль управления внешним прогнозированием
112 - модуль определения типов изображений
113, 310 - переключатель
114, 311 - модуль вычисления кандидатов-предикторов вектора движения
115, 312 - память colPic
116 - модуль кодирования с переменной длиной слова
210, 410 - модуль извлечения кандидатов-предикторов вектора движения
211, 411 - модуль определения
212, 412 - первый модуль извлечения
213, 413 - идентификационный модуль
214, 414 - модуль определения
215, 415 - второй модуль извлечения
220, 430 - модуль управления прогнозированием
230 - модуль кодирования
300, 400 - устройство декодирования движущихся изображений
301 - модуль декодирования с переменной длиной слова
420 - модуль декодирования