Устройство декодирования движущегося изображения и способ декодирования движущегося изображения
MOVING PICTURE DECODING DEVICE AND MOVING PICTURE DECODING METHOD

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к технологии кодирования и декодирования движущихся изображений с использованием предсказания с компенсацией движения и, в частности, к устройству кодирования движущегося изображения, способу кодирования движущегося изображения и программе кодирования движущегося изображения, а также к устройству декодирования движущегося изображения, способу декодирования движущегося изображения и программе декодирования движущегося изображения, которые обеспечивают кодирование и декодирование информации о движении, используемой при предсказании с компенсацией движения.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
При обычном кодировании движущегося изображения со сжатием используется предсказание с компенсацией движения. Предсказание с компенсацией движения является технологией разделения целевого изображения на блоки небольшого размера и генерирования в качестве сигнала предсказания сигнала в положении, перемещенном из целевого блока целевого изображения в опорный блок опорного изображения, на основе величины перемещения, указываемой вектором движения, где опорное изображение является декодированным изображением. Предсказание с компенсацией движения включает в себя однонаправленное предсказание, выполняемое с использованием одного вектора движения, и двунаправленное предсказание, выполняемое с использованием двух векторов движения.
Что касается векторов движения, то вектор движения кодированного блока, смежного с целевым блоком, задается в качестве предсказываемого вектора движения (который также именуется просто как "предсказываемый вектор"), вычисляется разность между вектором движения целевого блока и предсказываемым вектора, полученная разность передается в качестве вектора кодирования, таким образом, обеспечивается возможность повышения эффективности сжатия.
За счет малого размера и разнообразия размеров блока, используемого для компенсации движения кодирование движущегося изображения со сжатием, такое как MPEG-4AVC/H. 264 (ниже именуемое как MPEG-4AVC), обеспечивает высокую точность предсказания с компенсацией движения. В то же время в результате уменьшения размера блока возникает проблема увеличения размера кода вектора кодирования.
Таким образом, при MPEG-4AVC предметом внимания является непрерывность движения в направлении времени и используется предсказание с компенсацией движения в прямом режиме времени, при котором компенсация движения реализуется без передачи векторов кодирования, в результате масштабирования вектора движения блока на опорном изображении, располагающемся в положении, совпадающем с положением целевого блока, в соответствии с расстоянием между кадрами и использования масштабированного вектора движения в качестве вектора движения целевого блока, где опорное изображение является обработанным изображением, неидентичным целевому изображению, на котором располагается целевой блок. В результате уменьшается размер кода вектора движения и обеспечивается возможность повышения эффективности кодирования.
Кроме того, в патентном документе 1 предметом внимания является непрерывность движения в направлении пространства и раскрывается способ реализации предсказания с компенсацией движения без передачи вектора кодирования в результате использования вектора движения обработанного блока, смежного с целевым блоком, в качестве вектора движения обработанного блока.
СПИСОК МАТЕРИАЛОВ, ИСПОЛЬЗОВАННЫХ ПРИ ЭКСПЕРТИЗЕ ЗАЯВКИ
Патентные документы Патентный документ 1: JP 10-276439
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Извлечение вектора движения в прямом режиме времени, как определено в вышеуказанном MPEG-4AV, требует масштабирования во время извлечения и приводит к возникновению необходимости сложных вычислительных операций. В способе, описанном в Патентном документе 1, в качестве вектора движения целевого блока используется вектор движения обработанного блока, смежного с целевым блоком предсказания, и при одновременном выполнении предсказания с компенсацией движения на множестве смежных блоков предсказания выполнение параллельной обработки данных предсказания движения является невозможным.
Поэтому целью настоящего изобретения является создание технологии кодирования движущегося изображения и декодирования движущегося изображения, позволяющей обеспечивать высокую эффективность параллельной обработки данных предсказания с компенсацией движения при одновременном выполнении предсказания с компенсацией движения на множестве смежных блоков предсказания за счет использования вектора движения обработанного блока, смежного с целевым блоком предсказания, при генерировании блока движения целевого блока предсказания.
Устройство кодирования движущегося изображения согласно одному варианту осуществления настоящего изобретения является устройством кодирования движущегося изображения, адаптированным к кодированию блока кодирования, состоящего из не менее чем одного блока предсказания, которое включает в себя: блок (140) генерирования кандидатов с информацией о движении со слиянием, выполненный с возможностью извлечения множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке кодирования, осуществляемого в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования, является информацией, указывающей на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования; блок (141) выбора информации о движении со слиянием, выполненный с возможностью выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием и использования выбранного кандидата с информацией о движении со слиянием в блоке предсказания, являющемся объектом кодирования; и блок (104) кодирования, выполненный с возможностью кодирования индекса для определения выбранного кандидата с информацией о движении со слиянием в качестве индекса определения кандидата.
Другой вариант осуществления настоящего изобретения также относится к устройству кодирования движущегося изображения. Это устройство является устройством кодирования движущегося изображения, адаптированным к разделению блока кодирования на множество блоков предсказания на основе типа разделения и выполнения компенсации движения, которое включает в себя: блок (140) генерирования кандидатов с информацией о движении со слиянием, выполненный с возможностью генерирования кандидата с информацией о движении со слиянием; блок (141) выбора информации о движении со слиянием, выполненный с возможностью выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием и задания выбранного кандидата с информацией о движении со слиянием в качестве информации о движении блока предсказания, являющегося объектом кодирования; и блок (104) кодирования, выполненный с возможностью кодирования индекса для определения выбранного кандидата с информацией о движении со слиянием в качестве индекса определения кандидата.
Еще один другой вариант осуществления настоящего изобретения относится к способу кодирования движущегося изображения. Этот способ является способом кодирования движущегося изображения для кодирования блока кодирования, состоящего из не менее чем одного блока предсказания, который включает в себя этапы: извлечения множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке кодирования, осуществляемого в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования, является информацией, указывающей на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования; выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием и использования выбранного кандидата с информацией о движении со слиянием в блоке предсказания, являющемся объектом кодирования; и кодирования индекса для определения выбранного кандидата с информацией о движении со слиянием в качестве индекса определения кандидата.
Устройство декодирования движущегося изображения согласно одному варианту осуществления настоящего изобретения является устройством декодирования движущегося изображения, адаптированным к декодированию блока декодирования, состоящего из не менее чем одного блока предсказания, которое включает в себя: блок (201) декодирования, выполненный с возможностью декодирования индекса определения кандидата из битового потока, в котором индекс для определения кандидата с информацией о движении со слиянием, используемого в блоке предсказания, являющемся объектом декодирования, кодирован в качестве индекса определения кандидата; блок (230) генерирования кандидатов с информацией о движении со слиянием, выполненный с возможностью извлечения множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке декодирования, осуществляемого в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования, является информацией, указывающей на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования; и блок (231) выбора информации о движении со слиянием, выполненный с возможностью выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием и использования выбранного кандидата с информацией о движении со слиянием в блоке предсказания, являющемся объектом декодирования.
Другой вариант осуществления настоящего изобретения также относится к устройству декодирования движущегося изображения. Это устройство является устройством декодирования движущегося изображения, адаптированным к разделению блока декодирования на множество блоков предсказания на основе типа разделения и выполнения компенсации движения, которое включает в себя: блок (201) декодирования, выполненный с возможностью декодирования индекса определения кандидата из битового потока, в котором индекс для определения кандидата с информацией о движении со слиянием, используемого в блоке предсказания, являющемся объектом декодирования, кодирован в качестве индекса определения кандидата; блок (230) генерирования кандидатов с информацией о движении со слиянием, выполненный с возможностью генерирования множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке кодирования; и блок (231) выбора информации о движении со слиянием, выполненный с возможностью выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием на основе типа разделения и задания выбранного кандидата с информацией о движении со слиянием в качестве информации о движении блока предсказания, являющегося объектом декодирования.
Еще один другой вариант осуществления настоящего изобретения относится к способу декодирования движущегося изображения. Этот способ является способом декодирования движущегося изображения для декодирования блока декодирования, состоящего из не менее чем одного блока предсказания, который включает в себя этапы: декодирования индекса определения кандидата из битового потока, в котором индекс для определения кандидата с информацией о движении со слиянием, используемого в блоке предсказания, являющемся объектом декодирования, кодирован в качестве индекса определения кандидата; извлечения множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке декодирования, осуществляемого в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования, является информацией, указывающей на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования; и выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием на основе на основе индекса определения кандидата и использования выбранного кандидата с информацией о движении со слиянием в блоке предсказания, являющемся объектом декодирования.
В качестве дополнительных вариантов осуществления настоящего изобретения действительны также произвольные комбинации составляющих элементов, описанных выше, и модификации настоящего изобретения, связанные со способом, устройством, системой, носителем записи, компьютерной программой и т.п.
Настоящее изобретение позволяет обеспечивать высокую эффективность параллельной обработки данных предсказания с компенсацией движения при одновременном выполнении предсказания с компенсацией движения на множестве смежных блоков предсказания за счет использования вектора движения обработанного блока, смежного с целевым блоком предсказания, при генерировании блока движения целевого блока предсказания.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1А и 1В - схематические иллюстрации блоков кодирования;
Фиг. 2A-2D - схематические иллюстрации типов размеров блоков предсказания;
Фиг. 3 - таблица типов размеров блоков предсказания;
Фиг. 4 - таблица режимов кодирования с предсказанием;
Фиг. 5 - таблица соотношений между индексами слияния и битовыми потоками;
Фиг. 6 - схематическая иллюстрация примера синтаксиса блока предсказания;
Фиг. 7 - блок-схема, иллюстрирующая конфигурацию устройства кодирования движущегося изображения согласно первому варианту осуществления;
Фиг. 8 - блок-схема, иллюстрирующая конфигурацию блока генерирования информации о движении, показанного на фиг. 7;
Фиг. 9 - блок-схема, иллюстрирующая конфигурацию блока определения режима слияния, показанного на фиг. 8;
Фиг. 10 - блок-схема, иллюстрирующая конфигурацию блока создания списка кандидатов с информацией о движении со слиянием, показанного на фиг. 9;
Фиг. 11 - блок-схема, иллюстрирующая процесс работы блока создания списка кандидатов с информацией о движении со слиянием, показанного на фиг. 9;
Фиг. 12 - схематическая иллюстрация группы блоков-кандидатов блока предсказания, имеющего 2Ν×2Ν-тип размера блока предсказания;
Фиг. 13А-13Н - схематическая иллюстрация группы блоков-кандидатов в случае применения взаимного расположения блоков, идентичного случаю с блоком предсказания блока кодирования, имеющего 2Ν×2Ν-тип размера блока предсказания, к блоку предсказания в блоке кодирования, имеющего не-2Ν×2Ν-тип размера блока предсказания;
Фиг. 14А-14Н - схематическая иллюстрация примера взаимного расположения блока предсказания, имеющего не-2Ν×2Ν-тип размера блока предсказания, и группы блоков-кандидатов в пространстве в первом варианте осуществления;
Фиг. 15 - блок-схема, иллюстрирующая последовательность операций в процессе работы блока генерирования кандидатов с информацией о движении со слиянием в пространстве, показанного на фиг. 10;
Фиг. 16 - блок-схема, иллюстрирующая последовательность операций в процессе работы блока генерирования кандидатов с информацией о движении со слиянием во времени, показанного на фиг. 10;
Фиг. 17 - блок-схема, иллюстрирующая последовательность операций в процессе работы первого блока добавления кандидатов с информацией о движении со слиянием, показанного на фиг. 10;
Фиг. 18 - таблица соотношений между числом проверок комбинации, кандидатом M с информацией о движении со слиянием и кандидатом N с информацией о движении со слиянием;
Фиг. 19 - блок-схема, иллюстрирующая последовательность операций в процессе работы второго блока добавления кандидатов с информацией о движении со слиянием, показанного на фиг. 10;
Фиг. 20 - блок-схема, иллюстрирующая конфигурацию устройства декодирования движущегося изображения согласно первому варианту осуществления;
Фиг. 21 - блок-схема, иллюстрирующая конфигурацию блока воспроизведения информации о движении, показанного на фиг. 20;
Фиг. 22 - блок-схема, иллюстрирующая конфигурацию блока воспроизведения информации о движении со слиянием, показанного на фиг. 21;
Фиг. 23А-23Н - схематическая иллюстрация взаимного расположения блока предсказания, имеющего не-2N×2N-тип размера блока предсказания, и группы блоков-кандидатов в пространстве во втором варианте осуществления;
Фиг. 24А-24Н - схематическая иллюстрация взаимного расположения блока предсказания, имеющего не-2Ν×2Ν-тип размера блока предсказания, и группы блоков-кандидатов в пространстве в примере совместного использования блока-кандидата блока предсказания в блоке кодирования, независимо от типа размера блока предсказания;
Фиг. 25А-25Н - схематическая иллюстрация взаимного расположения блока предсказания, имеющего не-2N×2N-тип размера блока предсказания, и группы блоков-кандидатов в пространстве в третьем варианте осуществления;
Фиг. 26 - блок-схема, иллюстрирующая последовательность операций в процессе работы блока создания списка кандидатов с информацией о движении со слиянием согласно третьему варианту осуществления;
Фиг. 27 - схематическая иллюстрация нижней границы максимального блока кодирования и группы блоков-кандидатов во времени;
Фиг. 28А-28Н - схематическая иллюстрация взаимного расположения блока предсказания, имеющего не-2Ν×2Ν-тип размера блока предсказания, и группы блоков-кандидатов в пространстве в четвертом варианте осуществления;
Фиг. 29 - блок-схема, иллюстрирующая конфигурацию блока создания списка кандидатов с информацией о движении со слиянием согласно четвертому варианту осуществления;
Фиг. 30 - блок-схема, иллюстрирующая последовательность операций в процессе работы блока создания списка кандидатов с информацией о движении со слиянием согласно четвертому варианту осуществления;
Фиг. 31 - блок-схема, иллюстрирующая конфигурацию блока создания списка кандидатов с информацией о движении со слиянием согласно пятому варианту осуществления;
Фиг. 32 - блок-схема, иллюстрирующая последовательность операций в процессе работы блока создания списка кандидатов с информацией о движении со слиянием согласно пятому варианту осуществления;
Фиг. 33 - блок-схема, иллюстрирующая конфигурацию блока обнаружения режима с предсказываемым вектором;
Фиг. 34 - блок-схема, иллюстрирующая конфигурацию блока создания списка кандидатов на предсказываемый вектор;
Фиг. 35 - блок-схема, иллюстрирующая последовательность операций в процессе работы блока создания списка кандидатов на предсказываемый вектор; и
Фиг. 36 - блок-схема, иллюстрирующая конфигурацию блока воспроизведения вектора движения.
ЛУЧШИЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Прежде всего рассмотрим технологию, на которой основаны варианты осуществления настоящего изобретения.
В настоящее время широкое распространение получили устройства и системы, совместимые с системой кодирования, такой как MPEG (разработанной Экспертной группой по движущимся изображениям) или т.п. В такой системе кодирования в качестве информации по цифровым сигналам обрабатывается множество изображений, являющихся непрерывными по оси времени. В этом случае с целью обеспечения высокой эффективности трансляции, передачи, накопления и т.п. информации кодирование со сжатием выполняется с использованием предсказания с компенсацией движения, при котором изображение разделяется на множество блоков и используется избыточность в направлении времени, и ортогонального преобразования, такого как дискретное косинусное преобразование с использованием избыточности в направлении пространства.
В 2003 г. в результате совместной работы Объединенного технического комитета (ISO/IEC) Международной организации по стандартизации (ISO) и Международной электротехнической комиссии (IEC) с Сектором стандартизации телекоммуникаций Международного союза электросвязи (ITU-T) в качестве глобального стандарта была принята система кодирования под названием MPEG-4 AVC/H. 264 (которой со стороны ISO/IEC было присвоено название стандарта номер 14496-10, а со стороны ITU-I - стандарта номер Н. 264, и которая ниже именуется как MPEG-4AVC). В MPEG-4AVC среднее значение соответствующих векторов движения множества смежных блоков целевого блока в основном задается равным предсказываемому вектору. Если блок предсказания не имеет форму квадрата, то в случае идентичности опорного индекса определенного смежного блока целевого блока и опорного индекса целевого блока вектор движения определенного смежного блока задается равным предсказываемому вектору.
В настоящее время в результате совместной работы Объединенного технического комитета (ISO/IEC) Международной организации по стандартизации (ISO) и Международной электротехнической комиссии (IEC) с Сектором стандартизации телекоммуникаций Международного союза электросвязи (ITU-T) рассматривается стандартизация системы кодирования под названием HEVC.
В стандартизации HEVC рассматривается режим слияния, при котором из группы блоков-кандидатов, образованной блоками-кандидатами, которые являются множеством смежных блоков и блоков декодированного неидентичного изображения, выбирается один блок-кандидат, и информация о выбранном блоке-кандидате подвергается кодированию и декодированию.
Первый вариант осуществления
Блок кодирования
В рассматриваемом варианте осуществления поступающий на вход сигнал изображения делится на единицы максимальных блоков кодирования, и разделенные максимальные блоки кодирования подвергаются обработке в растровом порядке сканирования. Блок кодирования имеет иерархическую структуру, и в результате последовательного разделения блока кодирования на четыре блока с учетом эффективности кодирования и т.п. могут быть получены блоки кодирования меньшего размера. Разделенные на четыре блока блоки кодирования кодируются в зигзагообразном порядке сканирования. Блоки кодирования, дальнейшее уменьшение размеров которых не представляется возможным, именуются минимальными блоками кодирования. Блоки кодирования являются единицами кодирования, и максимальный блок кодирования в случае, когда число событий разделения составляет 0, также является блоком кодирования. В рассматриваемом варианте осуществления максимальный блок кодирования имеет размер 64 пиксела × 64 пиксела, а минимальный блок кодирования - размер 8 пикселов × 8 пикселов.
На фиг. 1А и 1В представлены схематические иллюстрации блоков кодирования. В примере, иллюстрируемом на фиг. 1А, блок кодирования разделен на десять блоков. CU0, CU1 и CU9 являются блоками кодирования размером 32 пиксела × 32 пиксела, CU2, CU3 и CU8 - блоками кодирования размером 16 пикселов × 16 пикселов, a CU4, CU5, CU6 и CU7 - блоками кодирования размером 8 пикселов × 8 пикселов. В примере, иллюстрируемом на фиг. 1В, блок кодирования разделен на один блок.
Блок предсказания
В рассматриваемом варианте осуществления блок кодирования дополнительно разделяется на блоки предсказания (также именуемые как разделы). Блок кодирования разделяется не менее чем на один блок предсказания в зависимости от типа размера блока предсказания (также именуемого как "тип разделения" или тип раздела). На фиг. 2A-2D представлены схематические иллюстрации типов размеров блоков предсказания. Фиг. 2А является иллюстрацией блока 2N×2N-типа, при котором блок кодирования не разделяется. Фиг. 2B является иллюстрацией блока 2N×N-типа, при котором блок кодирования разделяется на два блока в горизонтальном направлении. Фиг. 2С является иллюстрацией блока N×2N-типа, при котором блок кодирования разделяется на два блока в вертикальном направлении. Фиг. 2D является иллюстрацией блока Ν×Ν-типа, при котором блок кодирования разделяется на четыре блока в горизонтальном и вертикальном направлениях. Блок 2N×2N-типа состоит из единственного блока 0 предсказания. Как блок 2N×N-типа, так и блок N×2N-типа состоит из двух блоков предсказания: блок 0 предсказания и блок 1 предсказания. Блок Ν×Ν-типа состоит из четырех блоков предсказания: блок 0 предсказания, блок 1 предсказания, блок 2 предсказания и блок 3 предсказания. При этом кодирование выполняется в указанном порядке: блок 0 предсказания, блок 1 предсказания, блок 2 предсказания и блок 3 предсказания.
На фиг. 3 представлена таблица размеров блока предсказания в зависимости от числа событий разделения блока кодирования и типов размеров блоков предсказания. Для размеров блока предсказания в рассматриваемом варианте осуществления существует 13 размеров блоков предсказания: от блока размером 64 пиксела × 64 пиксела, у которого число событий разделения на CU блоков составляет 0 и который имеет 2Ν×2Ν-тип размера блока предсказания, до блока размером 4 пиксела × 4 пиксела, у которого число событий разделения на CU блоков составляет 3 и который имеет Ν×Ν-тип блока предсказания. Например, возможно также асимметричное разделение блока кодирования на два блока в горизонтальном или вертикальном направлении.
В рассматриваемом варианте осуществления максимальный блок кодирования является блоком размером 64 пиксела × 64 пиксела, а минимальный блок кодирования - блок размером 8 пикселов × 8 пикселов. Однако максимальный блок кодирования и минимальный блок кодирования не ограничиваются только этой комбинацией. Кроме того, шаблоны разделения блока предсказания не ограничиваются только шаблонами разделения, представленными на фиг. 2A-2D, при условии, что эти шаблоны разделения являются комбинацией шаблонов с разделением блока предсказания на не менее чем один блок.
Режим кодирования с предсказанием
В рассматриваемом варианте осуществления предсказание с компенсацией движения и число векторов кодирования может меняться для каждого блока предсказания. Рассмотрим далее со ссылками на фиг. 4 пример режима кодирования с предсказанием в связи с предсказанием с компенсацией движения и числом векторов кодирования. На фиг. 4 представлена таблица режимов кодирования с предсказанием.
Режимы кодирования с предсказанием, показанные на фиг. 4, включают в себя PredL0, в котором направление предсказания при предсказании с компенсацией движения является однонаправленным предсказанием (L0-предсказанием), а число векторов кодирования составляет 1, PredL1, в котором направление предсказания при предсказании с компенсацией движения является однонаправленным предсказанием (L1-предсказанием), а число векторов кодирования составляет также 1, PredBI, в котором направление предсказания при предсказании с компенсацией движения является двунаправленным предсказанием (BI-предсказанием), а число векторов кодирования составляет 2, и режим слияния (MERGE), в котором направление предсказания при предсказании с компенсацией движения является однонаправленным предсказанием (L0-предсказанием/Ll-предсказанием) или двунаправленным предсказанием (BI-предсказанием), а число векторов кодирования составляет 0. Существует также внутрикадровый режим (Intra), являющийся режимом кодирования с предсказанием, в котором предсказание с компенсацией движения не выполняется. В этих режимах PredL0, PredL1 и PredBI являются режимами с предсказываемым вектором.
В режиме слияния направление предсказания может представлять собой любое из предсказаний - L0-предсказание, L1-предсказание или BI-предсказание. Это объясняется тем, что в режиме слияния передача направления предсказания блока-кандидата, выбранного из группы блоков-кандидатов, осуществляется без какого-либо изменения, или направление предсказания в режиме слияния извлекается из декодированной информации. Кроме того, в режиме слияния вектор кодирования не подвергается кодированию. Это объясняется тем, что передача вектора движения блока-кандидата, выбранного из группы блоков-кандидатов, осуществляется без какого-либо изменения, или вектор кодирования в режиме слияния извлекается по заданному правилу.
Опорный индекс
Для повышения точности предсказания с компенсацией движения рассматриваемый вариант осуществления допускает возможность выбора оптимального опорного изображения из множества опорных изображений при предсказании с компенсацией движения. Поэтому опорное изображение, используемое при предсказании с компенсацией движения, подвергается кодированию в качестве индекса опорного изображения вместе с вектором кодирования. Численное значение индекса опорного изображения, используемого при предсказании с компенсацией движения, составляет не менее чем 0. Если предсказание с компенсацией движения представляет собой однонаправленное предсказание, то используется один опорный индекс. Если же предсказание с компенсацией движения представляет собой двунаправленное предсказание, то используются два опорных индекса (фиг. 4).
В режиме слияния опорный индекс не подвергается кодированию. Это объясняется тем, что передача опорного индекса блока-кандидата, выбранного из группы блоков-кандидатов, осуществляется без какого-либо изменения, или опорный индекс в режиме слияния извлекается по заданному правилу.
Список опорных индексов
В рассматриваемом варианте осуществления не менее чем одно опорное изображение, которое может быть использовано при предсказании с компенсацией движения, добавляется в список опорных индексов предварительно, и указание на опорное изображение, добавленное в список опорных индексов, с помощью опорного индекса позволяет определять и использовать опорное изображение при предсказании с компенсацией движения. Типы списков опорных индексов включают в себя список L0 опорных индексов (также называемый в качестве список опорного индекса L0-предсказания) и список L1 опорного индекса (также именуемый как список опорных индексов L1-предсказания). Если предсказание с компенсацией движения представляет собой однонаправленное предсказание, то используется или L0-предсказание, при котором используется опорное изображение из списка L0 опорных индексов, или L1-предсказание, при котором используется опорное изображение из списка L1 опорных индексов. Если предсказание с компенсацией движения представляет собой двунаправленное предсказание, то используется BI-предсказание, при котором используется как список L0 опорных индексов, так и список L1 опорных индексов. Максимальное число опорных изображений, которые могут быть добавлены в каждый список опорных индексов, составляет 16.
Индекс слияния
В рассматриваемом варианте осуществления в случае режима слияния из группы блоков-кандидатов, состоящей из множества смежных блоков в целевом изображении и блоков в и вокруг блока предсказания, положение которого совпадает с положением целевого блока предсказания в другом кодированном изображении, выбирается блок-кандидат, имеющий оптимальные режим кодирования с предсказанием, вектор движения и опорный индекс, и осуществляется кодирование и декодирование индекса слияния для указания на выбранного блока-кандидата. Один индекс слияния используется только во время режима слияния (фиг. 4). Максимальное число индексов слияния (также именуемое как максимальное число кандидатов на слияние) составляет 5, а сам индекс слияния является целым числом в интервале от 0 до 4. В этом случае максимальное число индексов слияния составляет 5. Однако максимальное число индексов слияния не ограничивается только этим числом при условии, что максимальное число индексов слияния составляет не менее 2.
Ниже информация о движении блока-кандидата, указываемого индексом слияния, именуется кандидатом с информацией о движении со слиянием, а набор кандидатов с информацией о движении со слиянием именуется списком кандидатов с информацией о движении со слиянием. Ниже информация о движении включает в себя направление предсказания, вектор движения и опорный индекс.
Рассмотрим далее соотношения между индексами слияния и битовыми потоками. На фиг. 5 представлена таблица соотношений между индексами слияния и битовыми потоками. Если индекс слияния равен 0, то битовый поток представляет собой "0". Если индекс слияния равен 1, то битовый поток представляет собой "10". Если индекс слияния равен 2, то битовый поток представляет собой "110". Если индекс слияния равен 3, то битовый поток представляет собой "1110". Если индекс слияния равен 4, то битовый поток представляет собой "1111". Таким образом, при увеличении индексов слияния битовые потоки становятся более длинными. Поэтому в результате назначения небольшого индекса слияния блоку-кандидату с высокой избирательностью обеспечивается возможность повышения эффективности кодирования.
Рассмотрим далее соотношения между списком кандидатов с информацией о движении со слиянием и индексами слияния. Индекс слияния, равный 0, указывает на самый первый (0-й) кандидат с информацией о движении со слиянием в списке кандидатов с информацией о движении со слиянием. Ниже индекс слияния, равный m, указывает на m-й кандидат с информацией о движении со слиянием в списке кандидатов с информацией о движении со слиянием, где m является целым числом в интервале от 0 до [(максимальное число кандидатов на слияние) - 1].
Индекс предсказываемого вектора
В рассматриваемом варианте осуществления для повышения точности вектора предсказания из группы блоков-кандидатов, состоящей из множества смежных блоков в целевом изображении и блоков в и вокруг блока предсказания, положение которого совпадает с положением целевого блока предсказания в другом кодированном изображении, выбирается блок-кандидат, имеющий оптимальный вектор движения в качестве предсказываемого вектора, и осуществляется кодирование и декодирование индекса предсказываемого вектора для указания на выбранного блока-кандидата. Если предсказание с компенсацией движения представляет собой однонаправленное предсказание, то используется один индекс предсказываемого вектора. Если предсказание с компенсацией движения представляет собой двунаправленное предсказание, то используются два индекса предсказываемого вектора (фиг. 4). Максимальное число индексов предсказываемого вектора (также именуемое как максимальное число кандидатов на предсказываемый вектор) составляет 2, а сам индекс предсказываемого вектора является целым числом в интервале от 0 или 1. В этом случае максимальное число индексов максимальное число индексов предсказываемого вектора составляет 2. Однако при условии, что максимальное число индексов предсказываемого вектора составляет не менее 2, максимальное число индексов предсказываемого вектора не ограничивается только этим числом.
Рассмотрим далее соотношения между индексами предсказываемого вектора и битовыми потоками. В случае, когда индекс предсказываемого вектора равен 0, битовый поток индекса предсказываемого вектора представляет собой "0", а в случае, когда индекс предсказываемого вектора равен 1, битовый поток индекса предсказываемого вектора представляет собой "1". Если максимальное число кандидатов на предсказываемый вектор составляет не менее 3, то назначение битовых потоков может осуществляться по правилу, подобному правилу для индекса слияния (при увеличении индекса битовый поток становится более длинным).
Ниже вектор движения блока-кандидата, указываемого индексом предсказываемого вектора, именуется кандидатом на предсказываемый вектор, а набор кандидатов на предсказываемый вектор именуется списком кандидатов на предсказываемый вектор.
Синтаксис
Рассмотрим пример синтаксиса блока предсказания согласно рассматриваемому варианту осуществления. На фиг. 6 представлена схематическая иллюстрация синтаксиса согласно рассматриваемому варианту осуществления. Фиг. 6 иллюстрирует пример структуры синтаксиса, состоящей из дерева кодирования (Coding Tree), блока кодирования (Coding Unit) и блока предсказания (Prediction Unit). В дереве кодирования осуществляется управление информацией о разделении блока кодирования. В дереве кодирования задается split_coding_unit_flag. Если split_coding_unit_flag равен 1, то дерево кодирования разделяется на четыре дерева кодирования. Если split_coding_unit_flag равен 0, то дерево кодирования представляет блок кодирования (Coding Unit). В блоке кодирования задаются флаг режима пропуска (skip_flag), режим предсказания (pred_mode) и тип размера блока предсказания (part_mode). В соответствии с флагом режима пропуска и типом размера блока предсказания блок кодирования разделяется на один, два или четыре блока предсказания. Режим предсказания указывает на блок кодирования, на котором выполняется внутрикадровое предсказание, или на блок кодирования, на котором выполняется межкадровое предсказание (предсказание с компенсацией движения). Если флаг режима пропуска равен 1, то реализуется режим пропуска. При режиме пропуска существует один блок предсказания. Число событий разделения блока кодирования также именуется как глубина блока кодирования (дерева кодирования).
В блоке предсказания задаются флаг слияния (merge_flag), индекс слияния (merge_idx), тип межкадрового предсказания (inter_pred_type), опорный индекс для L0-предсказания (ref_idx_10), разность векторов для L0-предсказания (mvd_10 [0], mvd_10 [1]), индекс предсказываемого вектора для L0-предсказания (mvp_idx_10), опорный индекс для L1-предсказания (ref_idx_11), разность векторов для L1-предсказания (mvd_11 [0], mvd_11 [1]) и индекс предсказываемого вектора для L1-предсказания (mvp_idx_11). В разности векторов [0] представляет горизонтальный компонент, а [1] представляет вертикальный компонент.
В этом случае inter_pred_type указывает на направление предсказания при предсказании с компенсацией движения (также именуемое как тип межкадрового предсказания) и включает в себя три типа: Pred_L0 (однонаправленное предсказание при L0-предсказании); Pred_L1 (однонаправленное предсказание при L1-предсказании); и Pred_BI (двунаправленное предсказание при BI-предсказании). В случае inter_pred_type -Pred_L0 или Pred_BI задается информация, связанная с L0-предсказанием. В случае inter_pred_type - Pred_L1 или Pred_BI задается информация, связанная с L1-предсказанием. В Р-кадре (в Р-слайсе) inter_pred_type однозначно представляет Pred_L0. Поэтому inter_pred_type не приводится.
В случае режима пропуска блок предсказания является блоком кодирования, на котором выполняется межкадровое предсказание, а режим слияния, используется в качестве режима кодирования с предсказанием. Поэтому в случае режима пропуска задается индекс слияния.
Синтаксис согласно рассматриваемому варианту осуществления задается в виде синтаксиса, показанного на фиг. 6. Однако при условии, что блоки кодирования и блоки предсказания имеют множество размеров блоков, и возможности использования режима слияния и режима с предсказываемым вектором вид синтаксиса не ограничивается только этим видом.
Рассмотрим ниже в деталях устройство кодирования движущегося изображения, способ кодирования движущегося изображения и программу кодирования движущегося изображения, а также устройство декодирования движущегося изображения, способ декодирования движущегося изображения и программу декодирования движущегося изображения согласно предпочтительному варианту осуществления настоящего изобретения со ссылками на фигуры. Одни и те же элементы на фигурах обозначаются одними и теми же номерами позиций, и повторное описание этих элементов не приводится.
Конфигурация устройства 100 кодирования движущегося изображения
На фиг. 7 представлена конфигурация устройства 100 кодирования движущегося изображения согласно первому варианту осуществления. Устройство 100 кодирования движущегося изображения является устройством, которое кодирует сигнал движущегося изображения в единицах блоков предсказания для выполнения предсказания с компенсацией движения. Предположим, что операции разделения блока кодирования, определения режима пропуска, определения типа размера блока предсказания, определения размера блока предсказания и положения блока предсказания в блоке кодирования (которое также именуется как информация о положении или номер блока предсказания), и определения режима кодирования с предсказанием как внутрикадрового или невнутрикадрового осуществляются блоком управления кодированием высокого порядка (непоказанным). В первом варианте осуществления рассмотрим случай, в котором режим кодирования с предсказанием является невнутрикадровым. Рассмотрим в первом варианте осуществления В-кадр (В-слайс), который соответствует двунаправленному предсказанию. Для Р-кадра (Р-слайса), который не соответствует двунаправленному предсказанию, L1-предсказание можно не рассматривать.
Устройство 100 кодирования движущегося изображения реализуется аппаратными средствами, такими как устройство обработки информации или т.п., снабженное CPU (центральным процессором), памятью кадров, жестким диском и т.п. В процессе работы вышеупомянутых составляющих элементов устройство 100 кодирования движущегося изображения реализует функциональные составляющие элементы, описание которых приводится ниже. Предполагаемое совместное использование информации о положении, размера блока предсказания и направления предсказания при предсказании с компенсацией движения для целевого блока в устройстве 100 кодирования движущегося изображения позволяет не показывать эти функциональные элементы.
Устройство 100 кодирования движущегося изображения согласно первому варианту осуществления включает в себя блок 101 получения изображения блока предсказания, блок 102 вычитания, блок 103 кодирования ошибки предсказания, блок 104 генерирования битового потока, блок 105 декодирования ошибки предсказания, блок 106 компенсации движения, блок 107 суммирования, блок 108 обнаружения вектора движения, блок 109 генерирования информации о движении, память 110 кадров и память 111 для информации о движении.
Функции устройства 100 кодирования движущегося изображения в процессе работы
Рассмотрим ниже функции каждого компонента в процессе работы. Блок 101 получения изображения блока предсказания получает сигнал изображения целевого блока предсказания из сигнала изображения, подаваемого с контакта 10, на основе информации о положении и размера блока предсказания и подает сигнал изображения блока предсказания в блок 102 вычитания, в блок 108 обнаружения вектора движения и в блок 109 генерирования информации о движении.
Блок 108 обнаружения вектора движения обнаруживает векторы движения и опорные индексы, указывающие на опорные изображения для L0-предсказания и L1-предсказания, в сигнале изображения, подаваемом блоком 101 получения изображения блока предсказания, и в сигналах изображения, соответствующих множеству опорных изображений, хранимых в самом блоке 108. При этом блок 108 обнаружения вектора движения подает векторы движения для L0-предсказания и L1-предсказания и опорные индексы для L0-предсказания и L1-предсказания в блок 109 генерирования информации о движении. В этом случае, несмотря на то, что, как было указано, блок 108 обнаружения вектора движения использует сигналы изображения, соответствующие множеству опорных изображений, хранимых в самом блоке 108 в качестве опорных изображений, блок 108 обнаружения вектора движения может также использовать и опорные изображения, хранимые в памяти 110 кадров.
При обычном способе обнаружения вектора движения вычисляется оценочное значение ошибки между сигналом изображения целевого изображения и сигналом предсказания опорного изображения, перемещенного из идентичного положения на заданную величину перемещения, и величина перемещения с наименьшим оценочным значением ошибки задается в качестве вектора движения. В случае множества опорных кадров обнаруживается вектор движения для каждого из опорных изображений и выбирается опорное изображение с наименьшим оценочным значением ошибки. В качестве оценочного значения ошибки могут быть использованы SAD (сумма абсолютных разностей), указывающая на сумму абсолютных разностей, MSE (среднеквадратическая ошибка), указывающая на среднеквадратическую ошибку, или т.п. Для осуществления оценки возможно также суммирование количества кода вектора движения с оценочным значением ошибки.
Блок 109 генерирования информации о движении определяет способ кодирования с предсказанием на основе соответствующих векторов движения для L0-предсказания и L1-предсказания и соответствующих опорных индексов для L0-предсказания и L1-предсказания, подаваемых из блока 108 обнаружения вектора движения, группы блоков-кандидатов, подаваемых с помощью памяти 111 для информации о движении, опорных изображений, хранимых в памяти 110 кадров, обозначаемых соответствующими опорными индексами, и сигнала изображения, подаваемого из блока 101 получения изображения блока предсказания.
На основе способа кодирования с предсказанием, который был определен, блок 109 генерирования информации о движении подает в соответствии с необходимостью флаг слияния, индекс слияния, направление предсказания для предсказания с компенсацией движения, опорные индексы для L0-предсказания и L1-предсказания, разности векторов для L0-предсказания и L1-предсказания и индексы предсказываемых векторов для L0-предсказания и L1-предсказания в блок 104 генерирования битового потока. При этом блок 109 генерирования информации о движении подает направление предсказания для предсказания с компенсацией движения, опорные индексы для L0-предсказания и L1-предсказания и векторы движения для L0-предсказания и L1-предсказания в блок 106 компенсации движения и память 111 для информации о движении. Детальную конфигурацию блока 109 генерирования информации о движении рассмотрим ниже.
Если направление предсказания при предсказании с компенсацией движения, подаваемое блоком 109 генерирования информации о движении, является LN-предсказанием, то блок 106 компенсации движения выполняет компенсацию движения на опорном изображении в памяти 110 кадров, обозначаемым опорным индексом для LN-предсказания, подаваемым из блока 109 генерирования информации о движении, на основе вектора движения для LN-предсказания, подаваемого из блока 109 генерирования информации о движении, и генерирует сигнал предсказания для LN-предсказания, где N=0 или 1. Если же направление предсказания при предсказании с компенсацией движения является двунаправленным предсказанием, то в качестве сигнала предсказания задается среднее значение сигналов предсказания для L0-предсказания и L1-предсказания. При этом возможно и взвешивание сигналов предсказания для L0-предсказания и L1-предсказания. Блок 106 компенсации движения подает эти сигналы предсказание в блок 102 вычитания.
В результате вычитания сигнала изображения, подаваемого блоком 101 получения изображения блока предсказания, и сигналов предсказания, подаваемых блоком 106 компенсации движения, блок 102 вычитания вычисляет сигнал ошибки предсказания, и подает этот сигнал ошибки предсказания в блок 103 кодирования ошибки предсказания.
В результате выполнения процесса обработки, такого как ортогональное преобразование, квантование или т.п. на сигнале ошибки предсказания, подаваемом из блока 102 вычитания, блок 103 кодирования ошибки предсказания генерирует данные кодирования ошибки предсказания и подает эти данные кодирования ошибки предсказания в блок 104 генерирования битового потока и блок 105 декодирования ошибки предсказания.
Блок 104 генерирования битового потока подвергает данные кодирования ошибки предсказания, подаваемые блоком 103 кодирования ошибки предсказания, а также флаг слияния, индекс слияния, направление предсказания (тип межкадрового предсказания) при предсказании с компенсацией движения, опорные индексы для L0-предсказания и L1-предсказания, разности векторов для L0-предсказания и L1-предсказания и индексы предсказываемого вектора для L0-предсказания и L1-предсказания, подаваемые блоком 109 генерирования информации о движении, энтропийному кодированию в соответствии правилами синтаксиса, показанного на фиг. 6, в результате которого генерируется битовый поток, и подает этот битовый поток в терминал 11 в качестве битового потока. При этом энтропийное кодирование выполняется по способу, включающему в себя кодирование с переменной длиной слова, такое как арифметическое кодирование, кодирование Хаффмана или т.п.
Блок 104 генерирования битового потока мультиплексирует информацию о разделении для блока кодирования, тип размера блока предсказания и режим кодирования с предсказанием, используемые в устройстве 100 кодирования движущегося изображения, в битовом потоке вместе с SPS(набором параметров последовательности), определяющим группу параметров для определения свойств битового потока, PPS(набором параметров кадра), определяющим группу параметров для определения свойств кадра, заголовком слайса, определяющим группу параметров для определения свойств слайса, и т.п.
В результате выполнения процесса обработки, такого как обратное квантование, обратное ортогональное преобразование или т.п., на данных кодирования ошибки предсказания, подаваемых блоком 103 кодирования ошибки предсказания, блок 105 декодирования ошибки предсказания генерирует сигнал ошибки предсказания и подает этот сигнал ошибки предсказания в блок 107 суммирования. Блок 107 суммирования осуществляет суммирование сигнала ошибки предсказания, подаваемого из блока 105 декодирования ошибки предсказания, и сигналов предсказания, подаваемых из блока 106 компенсации движения, в результате которого генерируется сигнал декодированного изображения, и подает этот сигнал декодированного изображения в память 110 кадров.
Память кадров 110 хранит сигнал декодированного изображения, подаваемый блоком 107 суммирования. Для декодированного изображения с завершенным декодированием всего изображения память 110 кадров хранит заданное число не менее чем одного изображения в качестве опорного изображения. Память 110 кадров подает хранимый сигнал опорного изображения в блок 106 компенсации движения и блок 109 генерирования информации о движении. Управление участком хранения, который хранит опорные изображения, осуществляется по методу FIFO (первым пришел - первым обслужен).
Память 111 для информации о движении хранит информацию о движении, подаваемую блоком 109 генерирования информации о движении, для заданного числа изображений в единицах размеров минимальных блоков предсказания. И задает информацию о движении смежного блока целевого блока предсказания в качестве группы блоков-кандидатов в пространстве.
Кроме того, память 111 для информации о движении задает информацию о движении для блока в блоке предсказания, положение которого совпадает с положением целевого блока предсказания, на ColPic и блока вокруг блока предсказания, положение которого совпадает с положением целевого блока предсказания, в качестве группы блоков-кандидатов во времени. Группу блоков кандидатов в пространстве и группу блоков-кандидатов во времени память 111 для информации о движении подает в блок 109 генерирования информации о движении в качестве группы блоков-кандидатов. Управление памятью 111 для информации о движении, которая синхронизирована с памятью 110 кадров, осуществляется также по методу FIFO (первым пришел - первым обслужен).
ColPic является декодированным изображением, неидентичным изображению с целевым блоком предсказания и хранимым в памяти 110 кадров в качестве опорного изображения. В первом варианте осуществления ColPic является опорным изображением, декодированным непосредственно перед целевым изображением. При этом, несмотря на то, что в первом варианте осуществления ColPic является опорным изображением, декодированным непосредственно перед целевым изображением, при условии, что ColPic является декодированным изображением, ColPic может быть и опорным изображением, следующим непосредственно перед или непосредственно после целевого изображения в порядке отображения, и может присутствовать и в битовом потоке.
Рассмотрим далее способ управления информацией о движении в памяти 111 для информации о движении. Информация о движении хранится в единицах минимальных блоков предсказания в каждой области памяти. Каждая область памяти хранит, по меньшей мере, направление предсказания, вектор движения для L0-предсказания, опорный индекс для L0-предсказания, вектор движения для L1-предсказания и опорный индекс для L1-предсказания.
В случае, когда режим кодирования с предсказанием представляет собой внутрикадровый режим, в качестве векторов движения для L0-предсказания и L1-предсказания хранится (0,0), а в качестве опорных индексов для L0-предсказания и L1-предсказания хранится "-1". В дальнейшем в (H, V) вектора движения H представляет горизонтальный компонент, а V представляет вертикальный компонент. При условии возможности принятия решения об использовании режима с невыполнением предсказания с компенсацией движения опорный индекс "-1" может принимать любое значение.
В дальнейшем, кроме случаев, оговоренных особо, простой термин "блок" означает единицу минимального блока предсказания. Кроме того, и в случае блоков за границами участка, как и при внутрикадровом режиме, в качестве векторов движения для L0-предсказания и L1-предсказания хранится (0, 0), а в качестве опорных индексов для L0-предсказания и L1-предсказания хранится "-1". Действительность LX-направления (X=0 или 1) означает, что значение опорного индекса в LX-направлении составляет не менее 0. Недействительность LX-направления означает, что значение опорного индекса в LX-направлении составляет "-1".
Конфигурация блока 109 генерирования информации о движении
Рассмотрим далее детальную конфигурацию блока 109 генерирования информации о движении. На фиг. 8 представлена конфигурация блока 109 генерирования информации о движении. Блок 109 генерирования информации о движении включает в себя блок 120 определения режима с предсказываемым вектором, блок 121 определения режима слияния и блок 122 обнаружения режима кодирования с предсказанием. Контакт 12, контакт 13, контакт 14, контакт 15, контакт 16, контакт 50 и контакт 51 подключены соответственно к памяти 111 для информации о движении, блоку 108 обнаружения вектора движения, памяти 110 кадров, блоку 101 получения изображения блока предсказания, блоку 104 генерирования битового потока, блоку 106 компенсации движения и памяти 111 для информации о движении.
Функции блока 109 генерирования информации о движении в процессе работы
Рассмотрим далее функции каждого компонента в процессе работы. Блок 120 определения режима с предсказываемым вектором определяет тип межкадрового предсказания на основе группы блоков-кандидатов, подаваемой с контакта 12, векторов движения для L0-предсказания и L1-предсказания и опорных индексов для L0-предсказания и L1-предсказания, подаваемых с контакта 13, опорного изображения, указываемого опорным индексом, подаваемым с контакта 14, и сигнала изображения, подаваемого с контакта 15. На основе типа межкадрового предсказания блок 120 определения режима с предсказываемым вектором выбирает индексы предсказываемого вектора для L0-предсказания и L1-предсказания и вычисляет разности векторов для L0-предсказания и L1-предсказания, ошибку предсказания, а также оценочное значение отношения сигнал/шум. При этом блок 120 определения режима с предсказываемым вектором подает информацию о движении, разности векторов, индексы предсказываемого вектора и оценочное значение отношения сигнал/шум на основе типа межкадрового предсказания в блок 122 обнаружения режима кодирования с предсказанием.
Из группы блоков-кандидатов, подаваемой с контакта 12, опорного изображения, подаваемого с контакта 14, и сигнала изображения, подаваемого с контакта 15, блок 121 определения режима слияния создает список кандидатов с информацией о движении со слиянием, выбирает одного кандидата с информацией о движении со слиянием из списка кандидатов с информацией о движении со слиянием, определяет индекс слияния и вычисляет оценочное значение отношения сигнал/шум. При этом блок 121 определения режима слияния подает информацию о движении кандидата с информацией о движении со слиянием, индекс слияния и оценочное значение отношения сигнал/шум в блок 122 обнаружения режима кодирования с предсказанием. Детальную конфигурацию блока 121 определения режима слияния рассмотрим ниже.
В результате сравнения оценочного значения отношения сигнал/шум, подаваемого блоком 120 определения режима с предсказываемым вектором, и оценочного значения отношения сигнал/шум, подаваемого блоком 121 определения режима слияния, блок 122 обнаружения режима кодирования с предсказанием определяет флаг слияния.
Если оценочное значение отношения сигнал/шум для режима с предсказываемым вектором ниже, чем оценочное значение отношения сигнал/шум для режима слияния, блок 122 обнаружения режима кодирования с предсказанием устанавливает флаг слияния на "0". При этом блок 122 обнаружения режима кодирования с предсказанием подает флаг слияния, а также тип межкадрового предсказания, опорные индексы, разности векторов и индекс предсказываемого вектора, подаваемые из блока 120 определения режима с предсказываемым вектором, на контакт 16, а информацию о движении, подаваемую из блока 120 определения режима с предсказываемым вектором, - на контакты 50 и 51.
Если оценочное значение отношения сигнал/шум для режима слияния не превышает оценочного значения отношения сигнал/шум для режима с предсказываемым вектором, то блок 122 обнаружения режима кодирования с предсказанием устанавливает флаг слияния на "1". При этом блок 122 обнаружения режима кодирования с предсказанием подает флаг слияния и индекс слияния, подаваемый из блока 121 определения режима слияния, на контакт 16, а информацию о движении, подаваемую из блока 121 определения режима слияния, - на контакты 50 и 51. Поскольку конкретный способ вычисления оценочного значения отношения сигнал/шум основным не является основным аспектом настоящего изобретения, то подробное описание этого способа не приводится. Вычисление величины ошибки на количество кода осуществляется по ошибке предсказания и количеству кода. Оценочное значение отношения сигнал/шум характеризуется тем, что со снижением оценочного значения отношения сигнал/шум эффективность кодирования повышается. Поэтому выбор режима кодирования с предсказанием с низким оценочным значением отношения сигнал/шум обеспечивает возможность повышения эффективности кодирования.
Конфигурация блока 121 определения режима слияния
Рассмотрим далее детальную конфигурацию блока 121 определения режима слияния. На фиг. 9 представлена блок-схема, иллюстрирующая конфигурацию блока 121 определения режима слияния. Блок 121 определения режима слияния включает в себя блок 140 создания списка кандидатов с информацией о движении со слиянием и блок 141 выбора информации о движении со слиянием. Блок 140 создания списка кандидатов с информацией о движении со слиянием установлен также и в устройстве 200 декодирования движущегося изображения, которое декодирует битовый поток, генерированный с помощью устройства 100 кодирования движущегося изображения согласно первому варианту осуществления, и создает идентичный список информации о движении со слиянием как в устройстве 100 кодирования движущегося изображения, так и в устройстве 200 декодирования движущегося изображения.
Функции блока 121 определения режима слияния в процессе работы
Рассмотрим далее функции каждого компонента в процессе работы. Блок 140 создания списка кандидатов с информацией о движении со слиянием создает список кандидатов с информацией о движении со слиянием, включающий в себя кандидатов с информацией о движении со слиянием для максимального числа кандидатов на слияние из группы блоков-кандидатов, подаваемой с контакта 12, и подает этот список кандидатов с информацией о движении со слиянием в блок 141 выбора информации о движении со слиянием. Детальную конфигурацию блока 140 создания списка кандидатов с информацией о движении со слиянием рассмотрим ниже.
Блок 141 выбора информации о движении со слиянием выбирает оптимального кандидата с информацией о движении со слиянием из списка кандидатов с информацией о движении со слиянием, подаваемого из блока 140 создания списка кандидатов с информацией о движении со слиянием, определяет индекс слияния, используемый в качестве информации, указывающей на выбранного кандидата с информацией о движении со слиянием, и подает этот индекс слияния на контакт 17.
Рассмотрим далее способ выбора оптимального кандидата с информацией о движении со слиянием. По опорному изображению, получаемому в результате выполнения предсказания с компенсацией движения на основе направления предсказания, вектора движения и опорного индекса кандидата с информацией о движении со слиянием, и подаваемому с контакта 14, и сигналу изображения, подаваемому с контакта 15, вычисляется величина ошибки предсказания. По количеству кода для индекса слияния и величине ошибки предсказания вычисляется оценочное значение отношения сигнал/шум, и кандидат с информацией о движении со слиянием с наименьшим оценочным значением отношения сигнал/шум выбирается в качестве оптимального кандидата с информацией о движении со слиянием.
Конфигурация блока 140 создания списка кандидатов с информацией о движении со слиянием
Рассмотрим далее детальную конфигурацию блока 140 создания списка кандидатов с информацией о движении со слиянием. На фиг. 10 представлена блок-схема, иллюстрирующая конфигурацию блока 140 создания списка кандидатов с информацией о движении со слиянием. Контакт 19 подключен к блоку 141 выбора информации о движении со слиянием. Блок 140 создания списка кандидатов с информацией о движении со слиянием включает в себя блок 160 генерирования кандидатов с информацией о движении со слиянием в пространстве, блок 161 генерирования кандидатов с информацией о движении со слиянием во времени, блок 162 удаления избыточных кандидатов с информацией о движении со слиянием, блок 163 добавления первых кандидатов с информацией о движении со слиянием и блок 164 добавления вторых кандидатов с информацией о движении со слиянием. Ниже используется термин "генерирование" кандидата с информацией о движении со слиянием. Однако этот термин "генерирование" можно заменить на термин "извлечение".
Функции блока 140 создания списка кандидатов с информацией о движении со слиянием в процессе работы
Рассмотрим далее функции каждого компонента в процессе работы. Рассмотрим далее функции каждого компонента в процессе работы. На фиг. 11 представлена блок-схема, иллюстрирующая последовательность операций в процессе работы блока 140 создания списка кандидатов с информацией о движении со слиянием. Прежде всего блок 140 создания списка кандидатов с информацией о движении со слиянием инициализирует список кандидатов с информацией о движении со слиянием (S100). В инициализированном списке кандидатов с информацией о движении со слиянием никаких кандидатов с информацией о движении со слиянием не существует.
Затем блок 160 генерирования кандидатов с информацией о движении со слиянием в пространстве генерирует кандидатов с информацией о движении со слиянием в пространстве, число которых составляет от нуля до максимального числа кандидатов с информацией о движении со слиянием в пространстве, из группы блоков-кандидатов, подаваемой с контакта 12, добавляет генерированных кандидатов с информацией о движении со слиянием в пространстве в список кандидатов с информацией о движении со слиянием (S101) и подает этот список кандидатов с информацией о движении со слиянием и группу блоков-кандидатов в блок 161 генерирования кандидатов с информацией о движении со слиянием во времени. Подробное описание процесса работы блока 160 генерирования кандидатов с информацией о движении со слиянием в пространстве приведем ниже. Ниже коснемся и максимального числа кандидатов с информацией о движении со слиянием в пространстве.
Затем блок 161 генерирования кандидатов с информацией о движении со слиянием во времени генерирует кандидатов с информацией о движении со слиянием во времени, число которых составляет от нуля до максимального числа кандидатов с информацией о движении со слиянием во времени, из группы блоков-кандидатов, подаваемой из блока 160 генерирования кандидатов с информацией о движении со слиянием в пространстве, добавляет генерированных кандидатов с информацией о движении со слиянием во времени в список кандидатов с информацией о движении со слиянием, подаваемых из блока 160 генерирования кандидатов с информацией о движении со слиянием в пространстве (S102), и подает этот список кандидатов с информацией о движении со слиянием в блок 162 удаления избыточных кандидатов с информацией о движении со слиянием. Подробное описание процесса работы блока 161 генерирования кандидатов с информацией о движении со слиянием во времени приведем ниже. Ниже коснемся и максимального числа кандидатов с информацией о движении со слиянием во времени.
Затем блок 162 удаления избыточных кандидатов с информацией о движении со слиянием осуществляет проверку кандидатов с информацией о движении со слиянием, добавленных в список кандидатов с информацией о движении со слиянием, подаваемый из блока 161 генерирования кандидатов с информацией о движении со слиянием во времени, сохраняет в случае существования множества кандидатов с информацией о движении со слиянием, имеющих идентичную информацию о движении, одного из множества кандидатов с информацией о движении со слиянием при удалении остальных кандидатов с информацией о движении со слиянием (S103) и подает этот список кандидатов с информацией о движении со слиянием в блок 163 добавления первых кандидатов с информацией о движении со слиянием. При этом все кандидаты с информацией о движении со слиянием, добавленные в список кандидатов с информацией о движении со слиянием, представляют собой неидентичные кандидаты с информацией о движении со слиянием.
Затем блок 163 добавления первых кандидатов с информацией о движении со слиянием генерирует первых дополнительных кандидатов с информацией о движении со слиянием, число которых составляет от нуля до двух, из кандидатов с информацией о движении со слиянием, добавленных в список кандидатов с информацией о движении со слиянием, подаваемый из блока 162 удаления избыточных кандидатов с информацией о движении со слиянием, добавляет первых дополнительных кандидатов с информацией о движении со слиянием в список кандидатов с информацией о движении со слиянием (S104) и подает этот список кандидатов с информацией о движении со слиянием в блок 164 добавления вторых кандидатов с информацией о движении со слиянием. Подробное описание процесса работы блока 163 добавления первых кандидатов с информацией о движении со слиянием приведем ниже.
Затем блок 164 добавления вторых кандидатов с информацией о движении со слиянием осуществляет генерирование вторых дополнительных кандидатов с информацией о движении со слиянием до достижения числа кандидатов с информацией о движении со слиянием, добавленных в список кандидатов с информацией о движении со слиянием, подаваемый из блока 163 добавления первых кандидатов с информацией о движении со слиянием, равного максимальному числу кандидатов на слияние, добавляет вторых дополнительных кандидатов с информацией о движении со слиянием в список кандидатов с информацией о движении со слиянием (S105) и подает этот список кандидатов с информацией о движении со слиянием на контакт 19. Подробное описание процесса работы блока 164 добавления вторых кандидатов с информацией о движении со слиянием приведем ниже.
В этом случае блок 160 генерирования кандидатов с информацией о движении со слиянием в пространстве и блок 161 генерирования кандидатов с информацией о движении со слиянием во времени генерируют соответственно кандидата с информацией о движении со слиянием в пространстве и кандидата с информацией о движении со слиянием во времени и добавляют этих кандидата с информацией о движении со слиянием в пространстве и кандидата с информацией о движении со слиянием во времени в список кандидатов с информацией о движении со слиянием. Или блок 160 генерирования кандидатов с информацией о движении со слиянием в пространстве и блок 161 генерирования кандидатов с информацией о движении со слиянием во времени могут только генерировать соответственно кандидата с информацией о движении со слиянием в пространстве и кандидата с информацией о движении со слиянием во времени, соответственно, а список кандидатов с информацией о движении со слиянием может создаваться из кандидатов, генерированных непосредственно перед блоком 162 удаления избыточных кандидатов с информацией о движении со слиянием.
2N×2N-группа блоков-кандидатов
Рассмотрим далее группу блоков-кандидатов блока предсказания. Прежде всего рассмотрим блок предсказания, имеющий 2Ν×2Ν-тип размера блока предсказания. На фиг. 12 представлена схематическая иллюстрация группы блоков-кандидатов блока предсказания, имеющего 2Ν×2Ν-тип размера блока предсказания. Фиг. 12 иллюстрирует пример, в котором размер блока предсказания составляет 16 пикселов × 16 пикселов. При этом блоки-кандидаты Η и I во времени, рассматриваемые ниже, располагаются в декодированном кадре, неидентичном кадру, в котором располагаются блоки-кандидаты А-Е в пространстве, также рассматриваемые ниже. Однако для простоты понимания и описания на фиг. 12 блоки-кандидаты Η и I во времени показаны вместе с блоками-кандидатами A-Ε в пространстве.
Группа блоков-кандидатов в пространстве включает в себя блок А, располагающийся с левой стороны нижнего левого пиксела блока предсказания, блок В, располагающийся с верхней стороны верхнего правого пиксела блока предсказания, блок С, располагающийся по диагонали с верхней правой стороны верхнего правого пиксела блока предсказания, блок Е, располагающийся по диагонали с нижней левой стороны нижнего левого пиксела блока предсказания, и блок D, располагающийся по диагонали с верхней левой стороны верхнего левого пиксела блока предсказания. Таким образом, группа блоков-кандидатов в пространстве определяется на основе положения и размера блока предсказания. Группа же блоков-кандидатов во времени включает в себя два блока: блок H и блок I, являющиеся типичными блоками на заданном участке ColPic. Если считать, что верхний левый пиксел целевого блока предсказания имеет положение (х, у), а ширина и высота целевого блока предсказания составляют соответственно PUW и PUH, то блок-кандидат во времени H задается как блок на ColPic с верхним левым пикселом в положении ((((х+PUW)>>4) <<4), (((y+PUH)>>4) <<4)), где ">>" представляет собой битовый сдвиг в направлении вправо, а "<<" - битовый сдвиг в направлении влево.
Точно так же блок-кандидат во времени I задается как блок на ColPic с верхним левым пикселом в положении (x+(PUW>>1), y+(PUH>>1)). То есть и группа блоков-кандидатов во времени определяется на основе положения и размера блока предсказания. Таким образом, задание блока-кандидата во времени в качестве типичного блока на заданном участке ColPic (в этом случае размером 16 пикселов × 16 пикселов) позволяет уменьшить число векторов движения и опорных индексов, подлежащих хранению с помощью ColPic. В свою очередь, уменьшение числа векторов движения и опорных индексов, хранимых в одном изображении, обеспечивает возможность использовать в качестве ColPic множество декодированных изображений и, таким образом, повысить эффективность предсказания.
Блок кодирования, имеющий 2Ν×2Ν-тип размера блока предсказания, состоит из одного блока предсказания. Поэтому положение блока-кандидата относительно блока предсказания, имеющего 2Ν×2Ν-тип размера блока предсказания, равноценно положению блока-кандидата относительно блока кодирования, и блок-кандидат располагается за границами блоком кодирования.
В этом случае на фигуре блок А располагается с нижней левой стороны блока предсказания. Однако при условии, что блок А контактирует с левой стороной блока предсказания, положение блока А не ограничивается только этим положением. Блок В располагается с верхней правой стороны блока предсказания. Однако при условии, что блок В контактирует с верхней стороной блока предсказания, положение блока В не ограничивается только этим положением. Кроме того, в состав группы блоков-кандидатов во времени входят два блока: блок Η и блок I. Однако группа блоков-кандидатов во времени не ограничивается этим составом блоков.
Пример применения взаимного расположения блоков, идентичного случаю с 2N×2N-группой блоков-кандидатов, к не-2N×2N-группе блоков-кандидатов
Рассмотрим далее пример, в котором взаимное расположение блоков, идентичное случаю с блоком предсказания блока кодирования, имеющего 2Ν×2Ν-тип размера блока предсказания, применяется к блоку предсказания в блоке кодирования, имеющем не-2Ν×2Ν-тип размера блока предсказания. На фиг. 13 представлена схематическая иллюстрация группы блоков-кандидатов в случае применения взаимного расположения, идентичного с блоком предсказания блока кодирования, имеющего 2Ν×2Ν-тип размера блока предсказания, к блоку предсказания в блоке кодирования, имеющего не-2Ν×2Ν-тип размера блока предсказания. На фиг. 13, как и в случае фиг. 12, блоки-кандидаты Η и I во времени располагаются в декодированном кадре, неидентичном кадру, в котором располагаются блоки-кандидаты A-Ε в пространстве. Однако для простоты понимания и описания на фиг. 13 блоки-кандидаты Η и I во времени показаны вместе с блоками-кандидатами A-Ε в пространстве. На фиг. 13А-13Н показаны группы блоков-кандидатов соответственно для блока 0 предсказания, имеющего Ν×2Ν-тип размера блока предсказания, блока 1 предсказания, имеющего Ν×2Ν-тип размера блока предсказания, блока 0 предсказания, имеющего 2Ν×Ν-тип размера блока предсказания, блока 1 предсказания, имеющего 2Ν×Ν-тип размера блока предсказания, блока 0 предсказания, имеющего Ν×Ν-тип размера блока предсказания, блока 1 предсказания, имеющего Ν×Ν-тип размера блока предсказания, блока 2 предсказания, имеющего Ν×Ν-тип размера блока предсказания, и блока 3 предсказания, имеющего Ν×Ν-тип размера блока предсказания. Фиг. 13 иллюстрирует пример блока предсказания размером 16 пикселов × 16 пикселов. Извлечение группы блоков-кандидатов во времени осуществляется точно так же, как и в случае 2N×2N-типа размера блока предсказания, и положение блока Η показано на фиг. 13. Таким образом, в блоке предсказания в составе блока кодирования, имеющего 2Ν×2Ν-тип размера блока предсказания, группа блоков-кандидатов определяется для каждого блока предсказания на основе положения и размера блока предсказания.
В случае блока 1 предсказания с Ν×2Ν-типом размера блока предсказания (фиг. 13В) блок А располагается внутри блока 0 предсказания идентичного блока кодирования, и для получения информации о движении блока А перед обработкой блока 1 предсказания необходимо определить информацию о движении блока 0 предсказания. Поэтому в случае использования блока А в качестве блока-кандидата блока 1 предсказания выполнение одновременной обработки блока 0 предсказания и блока 1 предсказания не представляется возможным. Кроме того, обработка максимального блок кодирования осуществляется в растровом порядке сканирования, а блок кодирования обрабатывается в зигзагообразном порядке сканирования. Поэтому блок Ε всегда остается необработанным блоком. Точно так же и в случае блока 1 предсказания с 2Ν×Ν-типом размера блока предсказания (фиг. 13D) блок В располагается внутри блока 0 предсказания идентичного блока кодирования, и блок С всегда остается необработанным блоком. Для случаев блока 1 предсказания (фиг. 13F), блока 2 предсказания (фиг. 13G) и блока 3 3 предсказания (фиг. 13Н), каждый из которых имеет Ν×Ν-тип размера блока предсказания, на соответствующих фигурах 13 также показаны блоки предсказания, располагающиеся в соответствующих идентичных блоках, и блоки, которые всегда остаются необработанными.
В блоке 1 предсказания, имеющем Ν×2Ν-тип размера блока предсказания, блоке 1 предсказания, имеющем 2Ν×Ν-тип размера блока предсказания, блоке 1 предсказания, имеющем Ν×Ν-тип размера блока предсказания, и блоке 2 предсказания, имеющем Ν×Ν-тип размера блока предсказания, число блоков-кандидатов, которые не располагаются внутри идентичного блока кодирования и не остаются необработанными, составляет 3. В блоке 3 предсказания, имеющем Ν×Ν-тип размера блок предсказания, число блоков-кандидатов, которые не располагаются внутри идентичного блока кодирования и не остаются необработанными, составляет 0. Уменьшение числа блоков-кандидатов приводит к снижению эффективности предсказания.
Взаимное расположение блоков-кандидатов
На фиг. 14 представлена схематическая иллюстрация примера взаимного расположения блока предсказания, имеющего не-2Ν×2Ν-тип размера блока предсказания, и группы блоков-кандидатов в пространстве в первом варианте осуществления. Группа блоков-кандидатов во времени располагается точно так же, как и на фиг. 13. На фиг. 14A-14H показаны группы блоков-кандидатов в пространстве соответственно для блока 0 предсказания, имеющего Ν×2Ν-тип размера блока предсказания, блока 1 предсказания, имеющего Ν×2Ν-тип размера блока предсказания, блока 0 предсказания, имеющего 2Ν×Ν-тип размера блока предсказания, блока 1 предсказания, имеющего 2Ν×Ν-тип размера блока предсказания, блока 0 предсказания, имеющего Ν×Ν-тип размера блока предсказания, блока 1 предсказания, имеющего Ν×Ν-тип размера блока предсказания, блока 2 предсказания, имеющего Ν×Ν-тип размера блока предсказания, и блока 3 предсказания, имеющего Ν×Ν-тип размера блока предсказания. Фиг. 14 иллюстрирует пример блока предсказания размером 16 пикселов × 16 пикселов.
В этом случае блок, располагающийся внутри неидентичного блока предсказания идентичного блока кодирования, заменяется блоком-кандидатом блока предсказания, имеющего 2Ν×2Ν-тип размера блока предсказания. Другими словами, в случае блока 1 предсказания имеющего Ν×2Ν-тип размера блока предсказания (фиг. 14В), блок А заменяется на блок А блока-кандидата блока предсказания, имеющего 2Ν×2Ν-тип размера блока предсказания. В случае блока 1 предсказания с 2Ν×Ν-типом размера блока предсказания (фиг. 14D) блок В заменяется на блок В блока-кандидата блока предсказания, имеющего 2Ν×2Ν-тип размера блока предсказания. В случае блока 1 предсказания с Ν×Ν-типом размера блока предсказания (фиг. 14F) блок А и блок Ε заменяются соответственно на блок А и блок Ε блоков-кандидатов блока предсказания, имеющего 2Ν×2Ν-тип размера блока предсказания. В случае блока 2 предсказания с Ν×Ν-типом размера блока предсказания (фиг. 14 G) блок В и блок С заменяются соответственно на блок В и блок С, которые являются блоками-кандидатами блока предсказания имеющего 2Ν×2Ν-тип размера блока предсказания. В случае блока 3 предсказания с Ν×Ν-типом размера блока предсказания (фиг. 14Н) блок А, блок В и блок D заменяются соответственно на блок А, блок В и блок D, которые являются блоками-кандидатами блока предсказания, имеющего 2Ν×2Ν-тип размера блока предсказания.
Число действительных блоков-кандидатов для блока 1 предсказания, имеющего Ν×2Ν-тип размера блока предсказания, блока 1 предсказания, имеющего 2Ν×Ν-тип блока предсказания, блока 1 предсказания, имеющего Ν×Ν-тип размера блока предсказания, блока 2 предсказания, имеющего Ν×Ν-тип блока предсказания, и блока 3 предсказания, имеющего Ν×Ν-тип блока предсказания, составляет 5.
Как указано выше, за счет обеспечения замены блока-кандидата в составе неидентичного блока предсказания идентичного блока кодирования блоком-кандидатом блока предсказания, имеющего 2Ν×2Ν-тип размера блока предсказания, в результате которой размер блока предсказания становится максимальным среди размеров блоков предсказания, имеющих блок кодирования, исчезает зависимость информации о движении между блоками предсказания в составе блока кодирования и появляется возможность выполнения одновременной обработки множества блоков предсказания в составе блока кодирования.
Подробное описание процесса работы блока 160 генерирования кандидатов с информацией о движении со слиянием в пространстве
Рассмотрим далее процесс работы блока 160 генерирования кандидатов с информацией о движении со слиянием в пространстве в деталях. На фиг. 15 представлена блок-схема, иллюстрирующая последовательность операций в процессе работы блока 160 генерирования кандидатов с информацией о движении со слиянием в пространстве. Блок 160 генерирования кандидатов с информацией о движении со слиянием в пространстве осуществляет описываемые ниже процессы обработки с последовательным повторением применительно к блоку А, блоку В, блоку С, блоку Ε и блоку D, которые являются блоками-кандидатами, включенными в группу блоков-кандидатов в пространстве группы блоков-кандидатов (S110-S114).
Прежде всего блок 160 генерирования кандидатов с информацией о движении со слиянием в пространстве проверяет действительность или недействительность блока-кандидата (S111). Действительность блока-кандидата означает, что значение, по меньшей мере, одного из опорных индексов для L0-предсказания и L1-предсказания блока-кандидата составляет не менее 0. В случае действительности блока-кандидата (ДА на этапе S111) блок 160 генерирования кандидатов с информацией о движении со слиянием в пространстве добавляет информацию о движении блока-кандидата в список кандидатов с информацией о движении со слиянием в качестве кандидата с информацией о движении со слиянием в пространстве (S112). В случае недействительности блока-кандидата (НЕТ на этапе S111) блок 160 генерирования кандидатов с информацией о движении со слиянием в пространстве осуществляет проверку следующего блока-кандидата (S114). Вслед за этапом S112 блок 160 генерирования кандидатов с информацией о движении со слиянием в пространстве проверяет, является ли число кандидатов с информацией о движении со слиянием в пространстве, добавленных в список кандидатов с информацией о движении со слиянием, максимальным числом кандидатов с информацией о движении со слиянием в пространстве или нет (S113). В этом случае максимальное число кандидатов с информацией о движении со слиянием в пространстве составляет 4. Если число кандидатов с информацией о движении со слиянием в пространстве, добавленных в список кандидатов с информацией о движении со слиянием не является максимальным числом кандидатов с информацией о движении со слиянием в пространстве (НЕТ на этапе S113), то блок 160 генерирования кандидатов с информацией о движении со слиянием в пространстве осуществляет проверку следующего блока-кандидата (S114). Если число кандидатов с информацией о движении со слиянием в пространстве, добавленных в список кандидатов с информацией о движении со слиянием, является максимальным числом кандидатов с информацией о движении со слиянием в пространстве (ДА на этапе S113), то блок 160 генерирования кандидатов с информацией о движении со слиянием в пространстве завершает процесс обработки.
В этом случае для добавления в список кандидатов с информацией о движении со слиянием с приоритетом информации о движении блока А и блока В, которые имеют длинную линию контакта с целевым блоком и, как правило, характеризуются высокой корреляцией с целевым блоком, задается следующий порядок процессов обработки: блок А, блок В, блок С, блок Ε и блок D. Однако при условии, что добавление кандидатов с информацией о движении со слиянием в список кандидатов с информацией о движении со слиянием осуществляется в порядке убывания корреляции с целевым блоком или в порядке убывания вероятности выбора в качестве блока-кандидата, порядок процессов обработки не ограничивается только этим порядком. Например, в случае блока 1 предсказания, имеющего Ν×2Ν-тип размера блока предсказания, возможен следующий порядок: блок В, блок С, блок Е, блок D и блок А. В случае блока 1 предсказания, имеющего 2Ν×Ν-тип блока предсказания, порядок может быть следующим: блок А, блок С, блок Е, блок D и блок В. В случае блока 1 предсказания, имеющего Ν×Ν-тип размера блока предсказания, возможен порядок: блок В, блок С, блок D, блок А и блок Е. В случае блока 2 предсказания, имеющего Ν×Ν-тип блока предсказания, возможен порядок: блок А, блок Е, блок D, блок В и блок С. В случае блока 3 предсказания, имеющего Ν×Ν-тип блока предсказания, возможен порядок: блок С, блок Е, блок А, блок В и блок D. Таким образом, добавление кандидатов с информацией о движении со слиянием в список кандидатов с информацией о движении со слиянием в порядке близости к целевому блоку предсказания позволяет предотвратить назначение большого индекса слияния блоку, располагающемуся близко к целевому блоку предсказания, и обеспечивает возможность повышения эффективности кодирования. Кроме того, максимальное число кандидатов с информацией о движении со слиянием в пространстве составляет 4. Однако при условии, что число кандидатов с информацией о движении со слиянием в пространстве составляет не менее 1, но не превышает максимального числа кандидатов на слияние, максимальное число не ограничивается только этим числом.
Подробное описание процесса работы блока 161 генерирования кандидатов с информацией о движении со слиянием во времени
Рассмотрим далее процесс работы блока 161 генерирования кандидатов с информацией о движении со слиянием во времени в деталях. На фиг. 16 представлена блок-схема, иллюстрирующая последовательность операций в процессе работы блока 161 генерирования кандидатов с информацией о движении со слиянием во времени. Блок 161 генерирования кандидатов с информацией о движении со слиянием во времени осуществляет описываемые ниже процессы с повторением для каждого направления LX предсказания: для L0-предсказания и L1-предсказания (S120-S127), где X=0 или 1. Кроме того, блок 161 генерирования кандидатов с информацией о движении со слиянием во времени осуществляет описываемые ниже процессы с последовательным повторением применительно к блоку H и блоку I, которые являются блоками-кандидатами, включенными в группу блоков-кандидатов во времени группы блоков-кандидатов (S121-S126).
Блок 161 генерирования кандидатов с информацией о движении со слиянием во времени проверяет действительность или недействительность LN-предсказания блока-кандидата (S122), где N=0 или 1. В этом случае предполагается, что N является идентичным X. Действительность LN-предсказания блока-кандидата означает, что опорный индекс блока-кандидата для LN-предсказания составляет не менее 0. В случае действительности LN-предсказания блока-кандидата (ДА на этапе S122) вектор движения блока-кандидата для LN-предсказания задается в качестве базисного вектора движения (S123). В случае же недействительности LN-предсказания блока-кандидата (НЕТ на этапе S122) этапы 123-126 пропускаются, и осуществляется проверка следующего блока-кандидата (S126).
После этапа S123 блок 161 генерирования кандидатов с информацией о движении со слиянием во времени определяет опорное изображение для LX-предсказания кандидата с информацией о движении со слиянием во времени (S124). В этом случае опорное изображение для LX-предсказания кандидата с информацией о движении со слиянием во времени задается в качестве опорного изображения с опорным индексом 0. При этом, несмотря на то, что опорное изображение для LX-предсказания кандидата с информацией о движении со слиянием во времени задается в качестве опорного изображения с опорным индексом 0, при условии независимости опорного изображения от значения для неидентичного блока предсказания в блоке кодирования опорное изображение не ограничивается только этим изображением. Затем в результате масштабирования базисного вектора движения в соответствии с расстоянием между целевым изображением и опорным изображением для LX-предсказания кандидата с информацией о движении со слиянием во времени блок 161 генерирования кандидатов с информацией о движении со слиянием во времени вычисляет вектор движения для LX-предсказания кандидата с информацией о движении со слиянием во времени (S125) и выполняет обработку для следующего направления предсказания (S127). Конкретный способ вычисления вектора движения для LX-предсказания кандидата с информацией о движении со слиянием во времени рассмотрим ниже. После этапа S127, на котором завершаются процессы обработки для L0-предсказания и L1-предсказания, блок 161 генерирования кандидатов с информацией о движении со слиянием во времени проверяет действительность или недействительность, по меньшей мере, одного из L0- и L1-предсказаний кандидата с информацией о движении со слиянием во времени (S128). В случае действительности, по меньшей мере, одного из L0- и L1-предсказаний кандидата с информацией о движении со слиянием во времени (ДА на этапе S128) блок 161 генерирования кандидатов с информацией о движении со слиянием во времени определяет тип межкадрового предсказания кандидата с информацией о движении со слиянием во времени и добавляет этого кандидата с информацией о движении со слиянием во времени в список кандидатов с информацией о движении со слиянием (S129). При этом в случае действительности только L0-предсказания тип межкадрового предсказания кандидата с информацией о движении со слиянием во времени определяется как Pred_L0, в случае действительности только L1-предсказания тип межкадрового предсказания кандидата с информацией о движении со слиянием во времени определяется как Pred_L1, а в случае действительности как L0-предсказания, так и L1-предсказания тип межкадрового предсказания кандидата с информацией о движении со слиянием во времени определяется как Pred_BI.
Рассмотрим далее способ вычисления вектора движения для LX-предсказания кандидата с информацией о движении со слиянием во времени. Если расстояние между изображениями, представляющими собой ColPic с блоком-кандидатом во времени и ColRefLXPic, являющееся опорным кадром для блока-кандидата во времени при предсказании с компенсацией движения для LX-предсказания, расстояние между изображениями, представляющими собой опорное изображение RefLXPic для LX-предсказания кандидата с информацией о движении со слиянием во времени, и целевое изображение CurPic, и базисный вектор движения для LX-предсказания обозначить соответственно через td, tb и mvLX, то вектор mvLXCol движения для LX-предсказания кандидата с информацией о движении со слиянием во времени вычисляется по уравнению 1. Из уравнения 1 следует, что при вычислении вектора движения для LX-предсказания кандидата с информацией о движении со слиянием во времени для вычисления tb и td необходимы операции вычитания, деления и умножения.
В случае использования целочисленной арифметики для упрощения арифметики с плавающей запятой уравнение 1 может использоваться, например, после расширения до уравнений 2-4. Abs (v) является функцией для вычисления абсолютного значение значения v. Сlip3 (uv, lv, v) является функцией, ограничивающей значение v в диапазоне от нижнего предела lv до верхнего предела uv. Sign (v) является функцией возврата значения v до 1, если значение v составляет не менее 0, и до -1, если значение v составляет менее 0.
В этом случае максимальное число кандидатов с информацией о движении со слиянием во времени, являющееся максимальным числом кандидатов с информацией о движении со слиянием во времени, которые можно добавить в список кандидатов с информацией о движении со слиянием, составляет 1. Поэтому, несмотря на отсутствие процесса обработки, соответствующего этапу S115 на фиг. 15, на которой представлена блок-схема, иллюстрирующая последовательность операций в процессе работы блока 160 генерирования кандидатов с информацией о движении со слиянием в пространстве, на фиг. 16, при условии, что максимальное число кандидатов с информацией о движении со слиянием во времени составляет не менее 2, после этапа S129 может следовать процесс обработки, соответствующий этапу S115.
В этом случае N задается равным X. Однако N может отличаться от X и не ограничивается только этим значением.
Подробное описание процесса работы блока 163 добавления первых кандидатов с информацией о движении со слиянием
Рассмотрим далее процесс работы блока 163 добавления первых кандидатов с информацией о движении со слиянием в деталях. На фиг. 17 представлена блок-схема, иллюстрирующая последовательность операций в процессе работы блока 163 добавления первых кандидатов с информацией о движении со слиянием. Прежде всего с по уравнению 5 из числа кандидатов с информацией о движении со слиянием (NumCandList) и максимального числа кандидатов на слияние (MaxNumMergeCand), добавленных в список кандидатов с информацией о движении со слиянием, подаваемых из блока 163 добавления первых кандидатов с информацией о движении со слиянием, блок 163 добавления первых кандидатов с информацией о движении со слиянием вычисляет MaxNumGenCand, представляющее собой максимальное число генерируемых первых дополнительных кандидатов с информацией о движении со слиянием (S170).
Затем блок 163 добавления первых кандидатов с информацией о движении со слиянием проверяет, превышает ли MaxNumGenCand значение 0 или нет (S171). Если MaxNumGenCand не превышает значения 0 (НЕТ на этапе S171), то блок 163 добавления первых кандидатов с информацией о движении со слиянием завершает процесс обработки. Если же MaxNumGenCand превышает значение 0 (ДА на этапе S171), то блок 163 добавления первых кандидатов с информацией о движении со слиянием выполняют описываемые ниже процессы обработки. Прежде всего блок 163 добавления первых кандидатов с информацией о движении со слиянием определяет loopTimes, представляющее собой число проверок комбинации. Число loopTimes определяется выражением NumCandList×NumCandList. Если loopTimes превышает 8, то loopTimes ограничивается значением 8 (S172). В этом случае loopTimes представляет собой целое число в диапазоне от 0 до 7. Рассматриваемые ниже процессы обработки осуществляются с повторением loopTimes раз (S172-S180). Блок 163 добавления первых кандидатов с информацией о движении со слиянием определяет комбинацию кандидата M с информацией о движении со слиянием и кандидата N с информацией о движении со слиянием (S173). Рассмотрим соотношения между числом проверок комбинации, кандидатом M с информацией о движении со слиянием и кандидатом N с информацией о движении со слиянием. На фиг. 18 представлена таблица соотношений между числом проверок комбинации, кандидатом M с информацией о движении со слиянием и кандидатом N с информацией о движении со слиянием. Как показано на фиг. 18, M и N имеют неидентичные значения и задаются в порядке возрастания общего значения M и N. Блок 163 добавления первых кандидатов с информацией о движении со слиянием проверяет действительность или недействительность L0-предсказания кандидата M с информацией о движении со слиянием и действительность или недействительность L1-предсказания кандидата N с информацией о движении со слиянием (S174). Если L0-предсказание кандидата M с информацией о движении со слиянием является действительным и L1-предсказание кандидата N с информацией о движении со слиянием является действительным (ДА на этапе S174), то блок 163 добавления первых кандидатов с информацией о движении со слиянием проверяет неидентичность или идентичность опорного изображения и вектора движения для L0-предсказания кандидата M с информацией о движении со слиянием и опорного изображения и вектора движения для L1-предсказания кандидата N с информацией о движении со слиянием (S175). В случае действительности L0-предсказания кандидата M с информацией о движении со слиянием и недействительности L1-предсказания кандидата N с информацией о движении со слиянием (НЕТ на этапе S174) блок 163 добавления первых кандидатов с информацией о движении со слиянием выполняет процесс обработки следующей комбинации. Если опорное изображение для L0-предсказания кандидата M с информацией о движении со слиянием является неидентичным опорному изображению L1-предсказания кандидата N с информацией о движении со слиянием (ДА на этапе S175), то блок 163 добавления первых кандидатов с информацией о движении со слиянием генерирует кандидата с информацией о двунаправленном движении со слиянием, типом межкадрового предсказания которого является Pred_BI, в результате комбинирования вектора движения и опорного изображение для L0-предсказания кандидата M с информацией о движении со слиянием с вектором движения и опорным изображением для L1-предсказания кандидата N с информацией о движении со слиянием (S176). В этом случае блок 163 добавления первых кандидатов с информацией о движении со слиянием генерирует в качестве первого дополнительного кандидата с информацией о движении со слиянием информацию о двунаправленном движении со слиянием, полученную в результате комбинации информации о движении для L0-предсказания кандидата с информацией о движении со слиянием с информацией о движении для L1-предсказания кандидата с информацией о движении со слиянием, являющегося неидентичным вышеуказанному кандидату. В случае идентичности опорного изображения для L0-предсказания кандидата M с информацией о движении со слиянием и опорного изображения для L1-предсказания кандидата N с информацией о движении со слиянием (НЕТ на этапе S175) блок 163 добавления первых кандидатов с информацией о движении со слиянием выполняет процесс обработки следующей комбинации. После этапа S176 блок 163 добавления первых кандидатов с информацией о движении со слиянием добавляет кандидата с информацией о двунаправленном движении со слиянием в список кандидатов с информацией о движении со слиянием (S178). После этапа S178 блок 163 добавления первых кандидатов с информацией о движении со слиянием проверяет, достигает ли число порций генерированной информации о двунаправленном движении со слиянием MaxNumGenCand или нет (S179). Если число порций генерированной информации о двунаправленном движении со слиянием достигает MaxNumGenCand (ДА на этапе S179), то блок 163 добавления первых кандидатов с информацией о движении со слиянием завершает процесс обработки. Если число порций генерированной информации о двунаправленном движении со слиянием не достигает MaxNumGenCand (НЕТ на этапе S179), то блок 163 добавления первых кандидатов с информацией о движении со слиянием выполняет процесс обработки следующей комбинации.
В этом случае первый дополнительный кандидат с информацией о движении со слиянием задается в качестве кандидата с информацией о двунаправленном движении со слиянием, у которого направление предсказания с компенсацией движения является двунаправленным, в результате комбинирования вектора движения и опорного изображения для L0-предсказания кандидата с информацией о движении со слиянием, добавленного в список кандидатов с информацией о движении со слиянием, с вектором движения и опорным изображением для L1-предсказания неидентичного кандидата с информацией о движении со слиянием. Однако первый дополнительный кандидат с информацией о движении со слиянием не ограничивается только этим кандидатом. Например, первый дополнительный кандидат с информацией о движении со слиянием может представлять собой кандидата с информацией о движении со слиянием, у которого направление предсказания с компенсацией движения является двунаправленным, полученным в результате суммирования вектора движения для L0-предсказания и вектора движения для L1-предсказания кандидата с информацией о движении со слиянием, добавленного в список кандидатов с информацией о движении со слиянием, с величиной смещения, имеющей значение +1 или т.п., или кандидата с информацией о движении со слиянием, в который направление предсказания с компенсацией движения является однонаправленным, полученным в результате суммирования вектора движения для L0-предсказания или вектора движения для L1-предсказания кандидата с информацией о движении со слиянием, добавленного в список кандидатов с информацией о движении со слиянием, с величиной смещения, имеющей значение +1 или т.п. В другом примере первого дополнительного кандидата с информацией о движении со слиянием возможно также генерирование нового кандидата с информацией о движении со слиянием, у которого направление предсказания с компенсацией движения является двунаправленным, в результате получения вектора движения для L1-предсказания за счет масштабирования с использованием в качестве базисного вектора движения для L0-предсказания кандидата с информацией о движении со слиянием, добавленного в список кандидатов с информацией о движении со слиянием и последующего комбинирования этих векторов движения. Кроме того, возможно и произвольное комбинирование этих векторов.
В этом случае при незначительном различии между информацией о движении кандидата с информацией о движении со слиянием, добавленного в список кандидатов с информацией о движении со слиянием, и движением целевого кандидата с информацией о движении первый дополнительный кандидат с информацией о движении со слиянием позволяет повысить эффективность кодирования за счет генерирования нового кандидата с информацией о движении со слиянием, который становится действительным в результате коррекции информации о движении кандидата с информацией о движении со слиянием, добавленного в список кандидатов с информацией о движении со слиянием.
Подробное описание процесс работы блока 164 добавления вторых кандидатов с информацией о движении со слиянием
Рассмотрим далее процесс работы блока 164 добавления вторых кандидатов с информацией о движении со слиянием в деталях. На фиг. 19 представлена блок-схема, иллюстрирующая последовательность операций в процессе работы блока 164 добавления вторых кандидатов с информацией о движении со слиянием. Прежде всего по уравнению 6 блок 164 добавления вторых кандидатов с информацией о движении со слиянием вычисляет MaxNumGenCand, представляющее собой максимальное число для генерируемых первых дополнительных кандидатов с информацией о движении со слиянием, из числа кандидатов с информацией о движении со слиянием (NumCandList) и максимального числа кандидатов на слияние (MaxNumMergeCand), добавленных в список кандидатов с информацией о движении со слиянием, подаваемый из блока 163 добавления первых кандидатов с информацией о движении со слиянием (S190).
Затем блок 164 добавления вторых кандидатов с информацией о движении со слиянием осуществляет рассматриваемые ниже процессы обработки с повторением MaxNumGenCand раз для i (S191-S195), где i является целым числом в диапазоне от 0 до (MaxNumGenCand - 1). Блок 164 добавления вторых кандидатов с информацией о движении со слиянием генерирует второго дополнительного кандидата с информацией о движении со слиянием, который имеет вектор движения (0,0) и опорный индекс i для L0-предсказания и вектор движения (0,0) и опорный индекс i для L1-предсказания и типом межкадрового предсказания которого является Pred_BI (S192). Блок 164 добавления вторых кандидатов с информацией о движении со слиянием добавляет второго дополнительного кандидата с информацией о движении со слиянием в список кандидатов с информацией о движении со слиянием (S194). Затем блок 164 добавления вторых кандидатов с информацией о движении со слиянием осуществляет процесс обработки для следующего i (S195).
В этом случае второй дополнительный кандидат с информацией о движении со слиянием задается в качестве кандидата с информацией о движении со слиянием, который имеет вектор движения (0,0) и опорный индекс i для L0-предсказания и вектор движения (0,0) и опорный индекс i для L1-предсказания и типом межкадрового предсказания которого является Pred_BI. Это объясняется тем, что в обычном движущемся изображении частота генерирования кандидатов с информацией о движении со слиянием с вектором движения (0,0) для L0-предсказания и L1-предсказания является статистически высокой. При условии, что второй дополнительный кандидат с информацией о движении со слиянием задается в качестве кандидата с информацией о движении со слиянием, который не зависит от информации о движении кандидата с информацией о движении со слиянием, добавленного в список кандидатов с информацией о движении со слиянием, и имеет статистически высокую частоту использования, второй дополнительный кандидат с информацией о движении со слиянием не ограничивается только этим кандидатом. Например, как вектор движения для L0-предсказания, так и вектор движения для L1-предсказания может принимать значение вектора, отличное от (0,0), а опорные индексы для L0-предсказания и L1-предсказания могут задаваться различными. Кроме того, второй дополнительный кандидат с информацией о движении со слиянием может задаваться в качестве информации о движении, имеющей высокую частоту повторяемости, и подвергаться кодированию в битовый поток с последующей передачей. В этом случае рассматривался В-кадр. В случае же Р-кадра генерируется второй дополнительный кандидат с информацией о движении со слиянием, который имеет вектор движения (0,0) для L0-предсказания и типом межкадрового предсказания которого является Pred_L0.
Задание кандидата с информацией о движении со слиянием, который не зависит от кандидата с информацией о движении со слиянием, добавленного в список кандидатов с информацией о движении со слиянием в качестве дополнительного кандидата с информацией о движении со слиянием, позволяет использовать режим слияния и обеспечивает возможность повышения эффективности кодирования в случае, когда число кандидатов с информацией о движении со слиянием, добавленных в список кандидатов с информацией о движении со слиянием, составляет 0. Кроме того, в случае неидентичности между информацией о движении кандидата с информацией о движении со слиянием, добавленным в список кандидатов с информацией о движении со слиянием, и движением целевого кандидата с информацией о движении возможность повышения эффективности кодирования может быть обеспечена в результате расширения возможностей выбора за счет генерирования нового кандидата с информацией о движении со слиянием.
Конфигурация устройства 200 декодирования движущегося изображения
Рассмотрим ниже устройство декодирования движущегося изображения согласно первому варианту осуществления. На фиг. 20 представлена блок-схема, иллюстрирующая конфигурацию устройства 200 декодирования движущегося изображения согласно первому варианту осуществления. Устройство 200 декодирования движущегося изображения является устройством, генерирующим воспроизведенное изображение в результате декодирования битового потока, кодированного с помощью устройство 100 кодирования движущегося изображения.
Устройство 200 декодирования движущегося изображения реализуется аппаратными средствами, такими как устройство обработки информации или т.п., снабженное CPU (центральным процессором), памятью кадров, жестким диском и т.п. В процессе работы вышеупомянутых составляющих элементов устройство 200 декодирования движущегося изображения реализует функциональные составляющие элементы, описание которых приводится ниже. Предположим, что операции разделения блока кодирования, определения режима пропуска, определения типа размера блока предсказания, определения размера блока предсказания и положения блока предсказания в блоке кодирования (которое также именуется как информация о положении или номер блока предсказания), и определения режима кодирования с предсказанием как внутрикадрового или невнутрикадрового осуществляются блоком управления кодированием высокого порядка (непоказанным). Предполагаемое совместное использование информации о положении и размера блока предсказания для блока предсказания, являющегося объектом декодирования, в устройстве 200 декодирования движущегося изображения позволяет не показывать эти функциональные элементы.
Устройство 200 декодирования движущегося изображения согласно первому варианту осуществления включает в себя блок 201 анализа битового потока, блок 202 декодирования ошибки предсказания, блок 203 суммирования, блок 204 воспроизведения информации о движении, блок 205 компенсации движения, память 206 кадров и память 207 для информации о движении.
Процесс работы устройства 200 декодирования движущегося изображения
Рассмотрим далее функции каждого компонента в процессе работы. Блок 201 анализа битового потока анализирует битовый поток, подаваемый с контакта 30, и подвергает данные кодирования ошибки предсказания, флаг слияния, индекс слияния, направление предсказания (тип межкадрового предсказания) при предсказании с компенсацией движения, опорный индекс, разность векторов и индекс предсказываемого вектора энтропийному декодированию в соответствии с синтаксисом. Энтропийное декодирование выполняется по методу, включающему в себя кодирование с переменной длиной слова, такое как арифметическое кодирование, кодирование Хаффмана или т.п. Блок 201 анализа битового потока подает данные кодирования ошибки предсказания в блок 202 декодирования ошибки предсказания, а флаг слияния, индекс слияния, тип межкадрового предсказания, опорный индекс, разность векторов и индекс предсказываемого вектора - в блок 204 воспроизведения информации о движении.
Блок 201 анализа битового потока декодирует информацию о разделении для блока кодирования, тип размера блока предсказания и режим кодирования с предсказанием, которые используются в устройстве 200 декодирования движущегося изображения, из битового потока вместе с SPS(набором параметров последовательности), определяющим группу параметров для определения свойств битового потока, PPS(набором параметров кадра), определяющим группу параметров для определения свойств кадра, заголовком слайса, определяющим группу параметров для определения свойства слайса и т.п.
Блок 204 воспроизведения информации о движении воспроизводит информацию о движении из флага слияния, индекса слияния, типа межкадрового предсказания, опорного индекса, разности векторов и индекса предсказываемого вектора, подаваемых из блока 201 анализа битового потока, и группы блоков-кандидатов, подаваемых с помощью памяти 207 для информации о движении, и подает эту информацию о движении в блок 205 компенсации движения и память 207 для информации о движении. Детальную конфигурацию блока 204 воспроизведения информации о движении рассмотрим ниже.
Блок 205 компенсации движения выполняет компенсацию движения на опорном изображении в памяти 206 кадров, указываемом опорным индексом, на основе информации о движении, подаваемой блоком 204 воспроизведения информации о движении, и генерирует сигнал предсказания. Если направление предсказания является двунаправленным предсказанием, то блок 205 компенсации движения генерирует в качестве сигнала предсказания среднее значение сигналов предсказания для L0-предсказания и L1-предсказания и подает этот сигнал предсказания в блок 203 суммирования.
В результате выполнения процесса обработки, такого как обратное квантование, обратное ортогональное преобразование или т.п. на данных кодирования ошибки предсказания блок 202 декодирования ошибки предсказания генерирует сигнал ошибки предсказания, подаваемый из блока 201 анализа битового потока, и подает этот сигнал ошибки предсказания в блок 203 суммирования.
Блок 203 суммирования в результате суммирования сигнала ошибки предсказания, подаваемого из блока 202 декодирования ошибки предсказания, и сигнала предсказания, подаваемого из блока 205 компенсации движения, генерирует сигнал декодированного изображения и подает этот сигнал декодированного изображения в память 206 кадров и на контакт 31.
Память 206 кадров и память 207 для информации о движении имеют функции, идентичные функциям соответственно памяти 110 кадров и памяти 111 для информации о движении в составе устройства 100 кодирования движущегося изображения. Память 206 кадров хранит сигнал декодированного изображения, подаваемый из блока 203 суммирования. Память 207 для информации о движении хранит информацию о движении, подаваемую из блока 204 воспроизведения информации о движении, в единицах минимальных размеров блока предсказания.
Подробное описание конфигурации блока 204 воспроизведения информации о движении
Рассмотрим далее детальную конфигурацию блока 204 воспроизведения информации о движении. На фиг. 21 представлена конфигурация блока 204 воспроизведения информации о движении. Блок 204 воспроизведения информации о движении включает в себя блок 210 принятия решения о режиме кодирования, блок 211 воспроизведения вектора движения и блок 212 воспроизведения информации о движении со слиянием. Контакт 32, контакт 33, контакт 34 и контакт 36 подключены соответственно к блоку 201 анализа битового потока, памяти 207 для информации о движении, блоку 205 компенсации движения и памяти 207 для информации о движении.
Подробное описание процесса работы блока 204 воспроизведения информации о движении
Рассмотрим далее функции каждого компонента в процессе работы. Блок 210 принятия решения о режиме кодирования определяет равенство флага слияния, подаваемого из блока 201 анализа битового потока, "0" или "1". Если флаг слияния равен "0", то блок 210 принятия решения о режиме кодирования подает тип межкадрового предсказания, опорный индекс, разность векторов и индекс предсказываемого вектора, подаваемые из блока 201 анализа битового потока, в блок 211 воспроизведения вектора движения. Если флаг слияния равен "1", то блок 210 принятия решения о режиме кодирования подает индекс слияния, подаваемый из блока 201 анализа битового потока, в блок 212 воспроизведения информации о движении со слиянием.
Блок 211 воспроизведения вектора движения воспроизводит вектор движения из типа межкадрового предсказания, опорного индекса, разности векторов и индекса предсказываемого вектора, подаваемых из блока 210 принятия решения о режиме кодирования, и группы блоков-кандидатов, подаваемых с контакта 22, генерирует информацию о движении и подает эту информацию о движении на контакт 34 и контакт 36.
Блок 212 воспроизведения информации о движении со слиянием создает список кандидатов с информацией о движении со слиянием из группы блоков-кандидатов, подаваемой с контакта 33, выбирает информацию о движении кандидата с информацией о движении со слиянием, указываемого индексом слияния, подаваемым из блока 210 принятия решения о режиме кодирования, из списка кандидатов с информацией о движении со слиянием, и подает эту информацию о движении на контакт 34 и контакт 36.
Детальная конфигурация блока 212 воспроизведения информации о движении со слиянием
Рассмотрим далее детальную конфигурацию блока 212 воспроизведения информации о движении со слиянием. На фиг. 22 представлена конфигурация блока 212 воспроизведения информации о движении со слиянием. Блок 212 воспроизведения информации о движении со слиянием включает в себя блок 230 создания списка кандидатов с информацией о движении со слиянием и блок 231 выбора информации о движении со слиянием. Контакт 35 подключен к блоку 210 принятия решения о режиме кодирования.
Подробное описание процесса работы блока 212 воспроизведения информации о движении со слиянием
Рассмотрим далее функции каждого компонента в процессе работы. Блок 230 создания списка кандидатов с информацией о движении со слиянием имеет функции, идентичные функциям блока 140 создания списка кандидатов с информацией о движении со слиянием в составе устройства 100 кодирования движущегося изображения, создает список кандидатов с информацией о движении со слиянием в результате проведения операций, идентичных операциям блока 140 создания списка кандидатов с информацией о движении со слиянием в составе устройства 100 кодирования движущегося изображения, и подает этот список кандидатов с информацией о движении со слиянием в блок 231 выбора информации о движении со слиянием.
Блок 231 выбора информации о движении со слиянием выбирает кандидата с информацией о движении со слиянием, указываемого индексом слияния, подаваемым с контакта 35, из списка кандидатов с информацией о движении со слиянием, подаваемого из блока 230 создания списка кандидатов с информацией о движении со слиянием, определяет информация о движении со слиянием и подает эту информацию о движении со слиянием на контакты 34 и 36.
Как указано выше, устройство 200 декодирования движущегося изображения в результате декодирования битового потока, закодированного с помощью устройства 100 кодирования движущегося изображения, может генерировать воспроизведенное изображение.
Второй вариант осуществления
Рассмотрим далее второй вариант осуществления. Группа блоков-кандидатов в пространстве, используемая в блоке 160 генерирования кандидатов с информацией о движении со слиянием в пространстве, для блока предсказания, имеющего не-2N×2N-тип размера блока предсказания, является неидентичной этой группе блоков-кандидатов в первом варианте осуществления. Рассмотрим далее группу блоков-кандидатов в пространстве для блока предсказания, имеющего не-2Ν×2Ν-тип размера блока предсказания, во втором варианте осуществления.
На фиг. 23 представлена схематическая иллюстрация взаимного расположения блока предсказания, имеющего не-2Ν×2Ν-тип размера блока предсказания, и группы блоков-кандидатов в пространстве во втором варианте осуществления. На фиг. 23А-23Н показаны группы блоков-кандидатов в пространстве соответственно для блока 0 предсказания, имеющего Ν×2Ν-тип размера блока предсказания, блока 1 предсказания, имеющего Ν×2Ν-тип размера блока предсказания, блока 0 предсказания, имеющего 2Ν×Ν-тип размера блока предсказания, блока 1 предсказания, имеющего 2Ν×Ν-тип размера блока предсказания, блока 0 предсказания, имеющего Ν×Ν-тип размера блока предсказания, блока 1 предсказания, имеющего Ν×Ν-тип размера блока предсказания, блока 2 предсказания, имеющего Ν×Ν-тип размера блока предсказания, и блока 3 предсказания, имеющего Ν×Ν-тип размера блока предсказания. Фиг. 23 иллюстрирует пример блока предсказания размером 16 пикселов × 16 пикселов. Таким образом, в блоке предсказания в составе блока кодирования, имеющего 2Ν×2Ν-тип размера блока предсказания, группа блоков-кандидатов определяется для каждого блока предсказания на основе положения и размера блока предсказания.
В этом случае в дополнение к первому примеру блок, который всегда остается необработанным, заменяется блоком-кандидатом блока предсказания, имеющего 2Ν×2Ν-тип размера блока предсказания. Другими словами, в случае блока 1 предсказания имеющего Ν×2Ν-тип размера блока предсказания (фиг. 23В), блок Ε заменяется на блок Ε блока-кандидата блока предсказания, имеющего 2Ν×2Ν-тип размера блока предсказания. В случае блока 1 предсказания, имеющего 2Ν×Ν-тип размера блока предсказания (фиг. 23D), блок С заменяется на блок С блока-кандидата блока предсказания, имеющего 2Ν×2Ν-тип размера блока предсказания. В случае блока 1 предсказания, имеющего Ν×Ν-тип размера блока предсказания (фиг. 23Н), блок С и блок Ε заменяются соответственно на блок С и блок Ε блоков-кандидатов блока предсказания, имеющего 2Ν×2Ν-тип размера блока предсказания.
Как указано выше, за счет обеспечения замены блока-кандидата, который всегда остается необработанным, блоком-кандидатом блока предсказания, имеющего 2Ν×2Ν-тип размера блока предсказания, блок-кандидат, который всегда остается необработанным, может быть заменен блоком-кандидатом, имеющим возможность стать действительным. Расширение возможностей выбора режимов слияния повышает избирательность режимов слияния и, таким образом, обеспечивает возможность повышения эффективности кодирования. Возможность повышения эффективности кодирования может быть обеспечена в результате добавления первого дополнительного кандидат с информацией о движении со слиянием, имеющего относительно более высокую избирательность, чем второй дополнительный кандидат с информацией о движении со слиянием, в список кандидатов с информацией о движении со слиянием, за счет генерирования новой информации о движении в результате комбинирования информации о движении замененного блока-кандидата с информацией о движении неидентичного кандидата с информацией о движении со слиянием или за счет коррекции информации о движении кандидата с информацией о движении со слиянием замененного блока-кандидата. В частности, так как в случае использования кандидата с информацией о двунаправленном движении со слиянием требуются, по меньшей мере, два кандидата с информацией о движении со слиянием, то в случае добавления в список кандидатов с информацией о движении со слиянием только одного кандидата с информацией о движении со слиянием, не считая замененного блока-кандидата в списке кандидатов с информацией о движении со слиянием, информация о движении замененного блока-кандидата оказывает эффективное воздействие.
В процессе работы блока 160 генерирования кандидатов с информацией о движении со слиянием в пространстве задавался следующий порядок добавления в список кандидатов с информацией о движении со слиянием: блок А, блок В, блок С, блок Ε и блок D. Однако этот порядок может быть изменен следующим образом.
В случае блока 1 предсказания, имеющего Ν×2Ν-тип размера блока предсказания, возможен следующий порядок: блок В, блок С, блок D, блок А и блок Е. В случае блока 1 предсказания, имеющего 2Ν×Ν-тип блока предсказания, порядок может быть следующим: блок А, блок Е, блок D, блок В и блок С. В случае блока 1 предсказания, имеющего Ν×Ν-тип размера блока предсказания, возможен порядок: блок В, блок С, блок D, блок А и блок Е. В случае блока 2 предсказания, имеющего Ν×Ν-тип блока предсказания, возможен порядок: блок А, блок Е, блок D, блок В и блок С. Таким образом, добавление кандидатов с информацией о движении со слиянием в список кандидатов с информацией о движении со слиянием в порядке близости к целевому блоку предсказания позволяет предотвратить назначение большого индекса слияния блоку, располагающемуся близко к целевому блоку предсказания, и обеспечивает возможность повышения эффективности кодирования.
Третий вариант осуществления
Прежде всего рассмотрим пример совместного использования блока-кандидата блока предсказания в блоке кодирования, независимо от типа размера блока предсказания. Блок предсказания, имеющий не-2N×2N-тип размера блока предсказания, группа блоков-кандидатов в пространстве и группа блоков-кандидатов во времени являются неидентичными соответственно этому блоку предсказания и этим группам блоков-кандидатов в первом варианте осуществления. Рассмотрим далее блок предсказания, имеющий не-2Ν×2Ν-тип размера блока предсказания, группу блоков-кандидатов в пространстве и группу блоков-кандидатов во времени в примере совместного использования блока-кандидата блока предсказания в блоке кодирования, независимо от типа размера блока предсказания. В этом примере, независимо от типа размера блока предсказания, блока предсказания блока предсказания в блоке кодирования используется в качестве блока-кандидата блока предсказания, имеющего 2Ν×2Ν-тип размера блока предсказания.
На фиг. 24 представлена схематическая иллюстрация взаимного расположения блока предсказания, имеющего не-2N×2N-тип размера блока предсказания, и группы блоков-кандидатов в пространстве в примере совместного использования блока-кандидата блока предсказания в блоке кодирования, независимо от типа размера блока предсказания. На фиг. 24 блоки-кандидаты Η и I во времени располагаются в декодированном кадре, неидентичном кадру, в котором располагаются блоки-кандидаты A-Ε в пространстве. Однако для простоты понимания и описания на фиг. 24 блоки-кандидаты Η и I во времени показаны вместе с блоками-кандидатами A-Ε в пространстве. На фиг. 24А-24Н показаны группы блоков-кандидатов в пространстве соответственно для блока 0 предсказания, имеющего Ν×2Ν-тип размера блока предсказания, блока 1 предсказания, имеющего Ν×2Ν-тип размера блока предсказания, блока 0 предсказания, имеющего 2Ν×Ν-тип размера блока предсказания, блока 1 предсказания, имеющего 2Ν×Ν-тип размера блока предсказания, блока 0 предсказания, имеющего Ν×Ν-тип размера блока предсказания, блока 1 предсказания, имеющего Ν×Ν-тип размера блока предсказания, блока 2 предсказания, имеющего Ν×Ν-тип размера блока предсказания, и блока 3 предсказания, имеющего Ν×Ν-тип размера блока предсказания. Фиг. 24 иллюстрирует пример блока предсказания размером 16 пикселов × 16 пикселов. В качестве группы блоков-кандидатов во времени блока предсказания, имеющего не-2Ν×2Ν-тип размера блока предсказания, используется, как показано на фиг. 24, группа блоков-кандидатов во времени, извлеченная в качестве блока предсказания с 2Ν×2Ν-типом размера блока предсказания.
Как указано выше, блок-кандидат не зависит от типа размера блока предсказания и задается в качестве блока-кандидата блока предсказания, имеющего 2Ν×2Ν-тип размера блока предсказания. Другими словами, независимо от типа размера блока предсказания блок-кандидат с 2Ν×2Ν-типом размера блока предсказания совместно используется во всех блоках предсказания блока кодирования. То есть, так как при использовании идентичного блока-кандидата блоки 140 и 230 создания списка кандидатов с информацией о движении со слиянием создают идентичный список кандидатов с информацией о движении со слиянием, то независимо от типа размера блока предсказания во всех блоках предсказания блока кодирования может совместно использоваться список кандидатов с информацией о движении со слиянием, извлекаемый в случае 2N×2N-типа размера блока предсказания. Таким образом, перед определением типа размера блока предсказания можно определить блока-кандидата и можно определить список кандидатов с информацией о движении со слиянием. Так как в случае разделения блока кодирования на множество блоков предсказания необходимости в извлечении блока-кандидата для каждого блока предсказания не возникает, то число операций в процессе создания списка кандидатов с информацией о движении со слиянием, показанном на фиг. 11, сокращается вдвое (в случае разделения на два блока предсказания) или вчетверо (в случае разделения на четыре блока предсказания). Кроме того, возможна параллельная обработка блоков предсказания блока кодирования.
Рассмотрим далее другой пример третьего варианта осуществления. Группа блоков-кандидатов в пространстве и группа блоков-кандидатов во времени, используемые в блоке 160 генерирования кандидатов с информацией о движении со слиянием в пространстве, и процесс работы блока 140 создания списка кандидатов с информацией о движении со слиянием для блока предсказания, имеющего не-2Ν×2Ν-тип размера блока предсказания, является неидентичными соответственно этим группам блоков-кандидатов и этому процессу работы в первом варианте осуществления. Рассмотрим далее группу блоков-кандидатов в пространстве и группу блоков-кандидатов блока предсказания во времени для блока предсказания, имеющего не-2N×2N-тип размера блока предсказания, в третьем варианте осуществления.
В этом случае при разделении блока предсказания на множество блоков в качестве блока-кандидата всех блоков предсказания в блоке кодирования используется блок О предсказания.
На фиг. 25 представлена схематическая иллюстрация взаимного расположения блока предсказания, имеющего не-2N×2N-тип размера блока предсказания, и группы блоков-кандидатов в пространстве в третьем варианте осуществления. На фиг. 25 блоки-кандидаты Η и I во времени располагаются в декодированном кадре, неидентичном кадру, в котором располагаются блоки-кандидаты A-Ε в пространстве. Однако для простоты понимания и описания на фиг. 25 блоки-кандидаты Η и I во времени показаны вместе с блоками-кандидатами A-Ε в пространстве. На фиг. 25А-25Н показаны группы блоков-кандидатов в пространстве и группы блоков-кандидатов во времени соответственно для блока 0 предсказания, имеющего Ν×2Ν-тип размера блока предсказания, блока 1 предсказания, имеющего Ν×2Ν-тип размера блока предсказания, блока 0 предсказания, имеющего 2Ν×Ν-тип размера блока предсказания, блока 1 предсказания, имеющего 2Ν×Ν-тип размера блока предсказания, блока 0 предсказания, имеющего Ν×Ν-тип размера блока предсказания, блока 1 предсказания, имеющего Ν×Ν-тип размера блока предсказания, блока 2 предсказания, имеющего Ν×Ν-тип размера блока предсказания, и блока 3 предсказания, имеющего Ν×Ν-тип размера блока предсказания. Фиг. 25 иллюстрирует пример блока предсказания размером 16 пикселов × 16 пикселов. В качестве группа блоков-кандидатов во времени блока предсказания, имеющего не-2Ν×2Ν-тип размера блока предсказания, используется, как показано на фиг. 25, группа блоков-кандидатов во времени, извлеченная в качестве блока 0 предсказания.
Рассмотрим далее процесс работы блока 140 создания списка кандидатов с информацией о движении со слиянием. На фиг. 26 представлена блок-схема, иллюстрирующая последовательность операций в процессе работы блока 140 кандидатов с информацией о движении со слиянием согласно третьему варианту осуществления. Отличие от фиг. 11, иллюстрирующей последовательность операций в процессе работы блока 140 создания списка кандидатов с информацией о движении со слиянием согласно первому варианту осуществления, состоит в добавлении этапа S106 и этапа S107. Рассмотрим этап S106 и этап S107, в добавлении которых состоит отличие от первого варианта осуществления. Блок 140 создания списка кандидатов с информацией о движении со слиянием проверяет, является ли целевой блок предсказания блоком 0 предсказания или нет (S106). Если целевой блок предсказания является блоком 0 предсказания (ДА на этапе S106), то блок 140 создания списка кандидатов с информацией о движении со слиянием выполняет операции на этапах S100-S105 и завершает процесс обработки. Если целевой блок предсказания не является блоком 0 предсказания (НЕТ на этапе S106), то блок 140 создания списка кандидатов с информацией о движении со слиянием использует список кандидатов с информацией о движении со слиянием блока 0 предсказания 0 в качестве списка кандидатов с информацией о движении со слиянием целевого блока предсказания (S107) и завершает процесс обработки.
Как указано выше, за счет использования блока-кандидата блока 0 предсказания в качестве блока-кандидата всех блоков предсказания в блоке кодирования в случае разделения блока кодирования на множество блоков предсказания, необходимости в создании списка кандидатов с информацией о движении со слиянием блока предсказания, неидентичного блоку 0 предсказания, не возникает. Таким образом, число операций в процессе создания списка кандидатов с информацией о движении со слиянием, показанном на фиг. 11, сокращается вдвое (в случае разделения на два блока предсказания) или вчетверо (в случае разделения на четыре блока предсказания). Другими словами, список кандидатов с информацией о движении со слиянием, извлекаемый в блоке 0 предсказания, можно совместно использовать в любом из блоков предсказания блока кодирования. Кроме того, так как в случае определения типа размера блока предсказания список кандидатов с информацией о движении со слиянием может быть создан до определения положения блока предсказания, то обеспечивается гибкость проектирования схем и программного обеспечения и появляется возможность уменьшения размеров схем программного обеспечения. Кроме того, возможна параллельная обработка блоков предсказания блока кодирования.
Кроме того, задание положения блока-кандидата блока предсказания, имеющего не-2Ν×2Ν-тип размера блока предсказания, в качестве положения блока-кандидата, неидентичного блоку-кандидату блока предсказания, имеющего 2Ν×2Ν-тип размера блока предсказания, позволяет повысить вероятность выбора блока предсказания, имеющего не-2Ν×2Ν-тип размера блока предсказания, и обеспечивает возможность повышения эффективности кодирования по сравнению с примером совместного использования блока-кандидата блока предсказания в блоке кодирования, независимо от типа размера блока предсказания. Кроме того, так как блок 0 предсказания не включает в себя блока-кандидата в составе неидентичного блока идентичного блока кодирования или блока-кандидата, который всегда остается необработанным, то в результате повышения вероятности действительности кандидата с информацией о движении со слиянием обеспечивается возможность повышения эффективность предсказания. При этом на режиме пропуска, при котором эффективность кодирования является самой высокой, ввиду эквивалентности 2Ν×2Ν-типу размера блока предсказания эффект от рассматриваемого вариант осуществления никак не отражается.
В третьем варианте осуществления в качестве типичного блока предсказания блока кодирования используется блок 0 предсказания, являющийся первым блоком предсказания в блоке кодирования. Однако типичный блок предсказания не ограничивается только этим блоком. Например, возможно также использование блока предсказания, который первым использует режим слияния в блоке кодирования. В этом случае на этапах S106 и S107 будут выполняться следующие операции. Выполняется проверка создание или несоздания списка кандидатов с информацией о движении со слиянием в блоке кодирования (S106). В случае несоздания списка кандидатов с информацией о движении со слиянием в блоке кодирования до этапа S106 (ДА на этапе S106) выполняются операции на этапах S100-S105, и процесс обработки завершается. В случае создания списка кандидатов с информацией о движении со слиянием в блоке кодирования до этапа S106 (НЕТ на этапе S106) используется созданный список кандидатов с информацией о движении со слиянием в блоке кодирования (S107), и процесс обработки завершается.
Как указано выше, за счет использования списка кандидатов с информацией о движении со слиянием блока предсказания, который первым использует режим слияния в блоке кодирования, также и в неидентичном блоке предсказания в блоке кодирования обеспечивается возможность повышения эффективности кодирования, по меньшей мере, блока предсказания, который первым использует режим слияния. Кроме того, в качестве типичного блока предсказания блока кодирования может также использоваться последний блок предсказания (блок 1 предсказания в случае разделения на два блока предсказания и блок 3 предсказания в случае разделения на четыре блока) в блоке кодирования. В этом случае задание положения группы блоков-кандидатов во времени в качестве положения блока-кандидата, неидентичного блоку-кандидату блока предсказания, имеющего 2Ν×2Ν-тип размера блока предсказания, позволяет повысить вероятность выбора блока предсказания, имеющего не-2N×2N-тип размера блока предсказания, и обеспечивает возможность повышения эффективности предсказания.
Кроме того, как и во втором варианте осуществления, добавление кандидатов в список кандидатов с информацией о движении со слиянием может осуществляться в порядке близости к целевому блоку предсказания.
Первый видоизмененный пример третьего варианта осуществления
Рассмотрим далее первый видоизмененный пример третьего варианта осуществления. Отличие от третьего варианта осуществления состоит в ограничении группы блоков-кандидатов во времени нижней границей максимального блока кодирования. Рассмотрим ограничение группы блоков-кандидатов во времени нижней границей максимального блока кодирования. На фиг. 27 представлена схематическая иллюстрация нижней границы максимального блока кодирования и группы блоков-кандидатов во времени. Как показано на фиг. 27, нижней границей максимального блока кодирования является линия, ограничивающая область, включающую в себя пикселы самого нижнего участка максимального блок кодирования. Такое ограничение, обеспечивающее неиспользование блока, располагающегося ниже нижней границей максимального блока кодирования, позволяет уменьшить объем участка кратковременной памяти для группы блоков-кандидатов во времени в устройстве 100 кодирования движущегося изображения и устройстве 200 декодирования движущегося изображения.
В случае применения взаимного расположения блоков, идентичного случаю с блоком предсказания блока кодирования, имеющего 2Ν×2Ν-тип размера блока предсказания, к блоку предсказания в блоке кодирования, имеющего не-2Ν×2Ν-тип размера блока предсказания, при задании нижней границы максимального блока кодирования использовать положение блока-кандидата во времени (H1) блока 1 предсказания, имеющего 2Ν×Ν-тип блока предсказания, располагающегося в контакте с нижней границей максимального блока кодирования, показанной на 27, становится невозможным.
Однако в третьем варианте осуществления в случае разделения блока предсказания на множество блоков за счет использования блока-кандидата блока 0 предсказания в качестве блока-кандидата всех блоков предсказания в блоке кодирования блок-кандидат во времени (Н0) используется в качестве группа блоков-кандидатов во времени. Таким образом, появляется возможность обеспечения действительности блока-кандидата во времени и обеспечивается возможность повышения эффективности предсказания. Это также относится и к блоку 2 предсказания и блоку 3 предсказания, имеющих Ν×Ν-тип блока предсказания.
Четвертый вариант осуществления
Рассмотрим далее четвертый вариант осуществления. От первого варианта осуществления рассматриваемый вариант отличается с точки зрения группы блоков-кандидатов в пространстве и группе блоков-кандидатов во времени блока предсказания, имеющего не-2Ν×2Ν-тип размера блока предсказания, а также конфигурации и функций блока 140 создания списка кандидатов с информацией о движении со слиянием в процессе работы. Рассмотрим далее блок предсказания, имеющий не-2Ν×2Ν-тип размера блока предсказания, группу блоков-кандидатов в пространстве и группу блоков-кандидатов во времени в четвертом варианте осуществления.
В этом случае предположим, что взаимное расположение блоков, идентичное случаю с блоком предсказания блока кодирования, имеющего 2Ν×2Ν-тип размера блока предсказания, применяется к группе блоков-кандидатов в пространстве. В качестве группы блоков-кандидатов во времени используется группа блоков-кандидатов во времени, извлеченная в качестве блока 0 предсказания.
На фиг. 28 представлена схематическая иллюстрация взаимного расположения блока предсказания, имеющего не-2Ν×2Ν-тип размера блока предсказания, и группы блоков-кандидатов в пространстве в четвертом варианте осуществления.
На фиг. 28 блоки-кандидаты Η и I во времени располагаются в декодированном кадре, неидентичном кадру, в котором располагаются блоки-кандидаты A-Ε в пространстве. Однако для простоты понимания и описания на фиг. 28 блоки-кандидаты Η и I во времени показаны вместе с блоками-кандидатами A-Ε в пространстве. На фиг. 28А-28Н показаны группы блоков-кандидатов в пространстве соответственно для блока 0 предсказания, имеющего Ν×2Ν-тип размера блока предсказания, блока 1 предсказания, имеющего Ν×2Ν-тип размера блока предсказания, блока 0 предсказания, имеющего 2Ν×Ν-тип размера блока предсказания, блока 1 предсказания, имеющего 2Ν×Ν-тип размера блока предсказания, блока 0 предсказания, имеющего Ν×Ν-тип размера блока предсказания, блока 1 предсказания, имеющего Ν×Ν-тип размера блока предсказания, блока 2 предсказания, имеющего Ν×Ν-тип размера блока предсказания, и блока 3 предсказания, имеющего Ν×Ν-тип размера блока предсказания. Фиг. 28 иллюстрирует пример блока предсказания размером 16 пикселов × 16 пикселов. В качестве группы блоков-кандидатов во времени блока предсказания, имеющего не-2Ν×2Ν-тип размера блока предсказания, используется, как показано на фиг. 28, группа блоков-кандидатов во времени, извлеченная в качестве блока О предсказания. Разумеется, в качестве группы блоков-кандидатов во времени блока предсказания, имеющего не-2Ν×2Ν-тип размера блока предсказания, может также использоваться группа блоков-кандидатов во времени, извлеченная в качестве блока предсказания, имеющего 2Ν×2Ν-тип размера блока предсказания.
Рассмотрим далее конфигурацию и функции блока 140 создания списка кандидатов с информацией о движении со слиянием. На фиг. 29 представлена блок-схема, иллюстрирующая конфигурацию блока 140 создания списка кандидатов с информацией о движении со слиянием согласно четвертому варианту осуществления. Отличие от первого варианта осуществления состоит в том, что блок 161 генерирования кандидатов с информацией о движении со слиянием во времени занимает положение после блока 163 добавления первых кандидатов с информацией о движении со слиянием. На фиг. 30 представлена блок-схема, иллюстрирующая последовательность операций в процессе работы блока 140 создания списка кандидатов с информацией о движении со слиянием согласно четвертому варианту осуществления. Отличие от фиг. 11, иллюстрирующей последовательность операций в процессе работы блока 140 создания списка кандидатов с информацией о движении со слиянием согласно первому варианту осуществления, состоит в добавлении этапа S106 и этапа S108 и положении этапа S102. Рассмотрим отличие от первого варианта осуществления.
Блок 160 генерирования кандидатов с информацией о движении со слиянием в пространстве генерирует кандидатов с информацией о движении со слиянием в пространстве, число которых составляет от нуля до максимального числа кандидатов с информацией о движении со слиянием в пространстве, из группы блоков-кандидатов, подаваемой с контакта 12, добавляет генерированных кандидатов с информацией о движении со слиянием в пространстве в список кандидатов с информацией о движении со слиянием (S101) и подает этот список кандидатов с информацией о движении со слиянием и группу блоков-кандидатов в блок 162 удаления избыточных кандидатов с информацией о движении со слиянием.
Затем блок 162 удаления избыточных кандидатов с информацией о движении со слиянием осуществляет проверку кандидатов с информацией о движении со слиянием, добавленных в список кандидатов с информацией о движении со слиянием, подаваемый из блока 160 генерирования кандидатов с информацией о движении со слиянием в пространстве, сохраняет в случае существования множества кандидатов с информацией о движении со слиянием, имеющих идентичную информацию о движении, одного из множества кандидатов с информацией о движении со слиянием при удалении остальных кандидатов с информацией о движении со слиянием (S103) и подает этот список кандидатов с информацией о движении со слиянием в блок 163 добавления первых кандидатов с информацией о движении со слиянием.
Затем блок 163 добавления первых кандидатов с информацией о движении со слиянием генерирует первых дополнительных кандидатов с информацией о движении со слиянием, число которых составляет от нуля до двух, из кандидатов с информацией о движении со слиянием, добавленных в список кандидатов с информацией о движении со слиянием, подаваемый из блока 162 удаления избыточных кандидатов с информацией о движении со слиянием, добавляет первых дополнительных кандидаты с информацией о движении со слиянием в список кандидатов с информацией о движении со слиянием (S104) и подает этот список кандидатов с информацией о движении со слиянием и группу блоков-кандидатов в блок 161 генерирования кандидатов с информацией о движении со слиянием во времени.
Затем блок 161 генерирования кандидатов с информацией о движении со слиянием во времени проверяет, является ли целевой блок предсказания блоком 0 предсказания или нет (S106). Если целевой блок предсказания является блоком 0 предсказания (ДА на этапе S106), то блок 161 генерирования кандидатов с информацией о движении со слиянием во времени генерирует кандидатов с информацией о движении со слиянием во времени, число которых составляет от нуля до максимального числа кандидатов с информацией о движении со слиянием во времени, из группы блоков-кандидатов, подаваемой из блока 162 удаления избыточных кандидатов с информацией о движении со слиянием, добавляет генерированных кандидатов с информацией о движении со слиянием во времени в список кандидатов с информацией о движении со слиянием, подаваемый из блока 162 удаления избыточных кандидатов с информацией о движении со слиянием, (S102) и подает этот список кандидатов с информацией о движении со слиянием в блок 164 добавления вторых кандидатов с информацией о движении со слиянием. Если целевой блок предсказания не является блоком 0 предсказания (НЕТ на этапе S106), то блок 161 генерирования кандидатов с информацией о движении со слиянием во времени добавляет кандидата с информацией о движении со слиянием во времени блока 0 предсказания в список кандидатов с информацией о движении со слиянием (S108) и подает этот список кандидатов с информацией о движении со слиянием в блок 164 добавления вторых кандидатов с информацией о движении со слиянием.
Затем блок 164 добавления вторых кандидатов с информацией о движении со слиянием осуществляет генерирование вторых дополнительных кандидатов с информацией о движении со слиянием до достижения числа кандидатов с информацией о движении со слиянием, добавленных в список кандидатов с информацией о движении со слиянием, подаваемый из блока 161 генерирования кандидатов с информацией о движении со слиянием во времени, равного максимальному числу кандидатов на слияние, добавляет вторых дополнительных кандидатов с информацией о движении со слиянием в список кандидатов с информацией о движении со слиянием (S105) и подает этот список кандидатов с информацией о движении со слиянием на контакт 19.
Как указано выше, в результате задания группы блоков-кандидатов в пространстве блока предсказания, имеющего не-2N×2N-тип размера блока предсказания, в качестве группы с применением взаимного расположения блоков, идентичного случаю с блоком предсказания блока кодирования, имеющего 2Ν×2Ν-тип размера блока предсказания, и задания группы блоков-кандидатов во времени в качестве группы блоков-кандидатов во времени блока 0 предсказания обеспечивается возможность определения группы блоков-кандидатов во времени после определения типа размера блока предсказания. Другими словами, обеспечивается возможность совместного использования кандидата с информацией о движении со слиянием во времени, извлеченного в блоке 0 предсказания, в любом из блоков предсказания блока кодирования. В то же время для каждого блока предсказания группа блоков-кандидатов в пространстве определяется на основе положения и размера блока предсказания. Непосредственное использование информации о движении блока-кандидата для извлечения кандидата с информацией о движении со слиянием в пространстве делает вычислительные операции ненужными и позволяет сократить продолжительность обработки. Однако необходимость выполнения процесса вычисления вектора, такого как по уравнению 1 или по уравнениям 2-4, при извлечении кандидата с информацией о движении со слиянием во времени и процесс определения межкадрового предсказания приводят к удлинению продолжительности обработки.
В этом случае однократное выполнение операции извлечения кандидата с информацией о движении со слиянием во времени, требующего самой длительной продолжительности обработки в процессе создания списка кандидатов с информацией о движении со слиянием, в блоке кодирования, позволяет сократить продолжительность обработки в случае разделения блока предсказания на множество блоков.
Кроме того, использование блока, смежного с целевым блоком предсказания, в качестве кандидата с информацией о движении со слиянием в пространстве позволяет повысить вероятность выбора блока предсказания, имеющего не-2N×2N-тип размера блока предсказания, и обеспечивает возможность повышения эффективности кодирования по сравнению с примером совместного использования блока-кандидата блока предсказания в блоке кодирования, независимо от типа размера блока предсказания. Кроме того, так как в качестве группы блоков-кандидатов во времени используются типичные блоки на заданном участке ColPic, то точность группы блоков-кандидатов во времени становится относительно низкой по сравнению с группой блоков-кандидатов в пространстве, и снижение эффективности предсказания может быть предотвращено даже в случае снижения точности группы блоков-кандидатов во времени.
В этом случае происходит достаточное удлинение продолжительности времени, затрачиваемого на извлечение кандидата с информацией о движении со слиянием во времени, по сравнению с продолжительностью времени, затрачиваемого на извлечение кандидата с информацией о движении со слиянием в пространстве, и работы блока 162 удаления избыточных кандидатов с информацией о движении со слиянием и блока 163 добавления первых кандидатов с информацией о движении со слиянием, а последовательность операций в процессе работы блока 140 создания списка кандидатов с информацией о движении со слиянием приобретает вид, показанный на фиг. 30. Например, при приоритете эффективности предсказания этапы S106, S102 и S108 могут быть перемещены в положение за этапом S101 или S103, а при приоритете эффективности обработки этапы S106, S102 и S108 могут быть размещены в положении за этапом S105. В случае размещения этапов S106, S102 и S108 в положении за этапом S105 число кандидатов с информацией о движении со слиянием, добавленных в список кандидатов с информацией о движении со слиянием, на выходе блока 164 добавления вторых кандидатов с информацией о движении со слиянием, составляет число, равное максимальному числу кандидатов на слияние минус один.
В этом случае при приоритете эффективности предсказания в группе блоков-кандидатов в пространстве применяется взаимное расположение блоков, идентичное случаю с блоком предсказания блока кодирования, имеющего 2Ν×2Ν-тип размера блока. Однако для реализации параллельной обработки блока предсказания в блоке кодирования блок-кандидат в составе неидентичного блока предсказания идентичного блока кодирования не используется в качестве блока-кандидата. Или в результате комбинирования группы блоков-кандидатов в пространстве с группой блоков-кандидатов в случае других вариантов осуществления в качестве группы блоков-кандидатов во времени может использоваться группа блоков-кандидатов во времени, извлеченная в качестве блока 0 предсказания.
Кроме того, в этом случае, группа блоков-кандидатов блока предсказания во времени, имеющего не-2N×2N-тип размера блока предсказания, задается в качестве группы блоков-кандидатов во времени, извлеченной в блоке 0 предсказания, являющемся первым блоком предсказания в блоке кодирования. Однако группа блоков-кандидатов во времени не ограничивается только этой группой. Например, группа блоков-кандидатов во времени может задаваться в качестве группы блоков-кандидатов во времени блока предсказания в случае 2N×2N-типа размера блока предсказания или в качестве группы блоков-кандидатов во времени последнего блока предсказания (блока 1 предсказания в случае разделения на два блока и блока 3 предсказания в случае разделения на четыре блока) в блоке кодирования.
Если группа блоков-кандидатов во времени задается в качестве группы блоков-кандидатов во времени блока предсказания в случае 2N×2N-типа размера блока предсказания, то генерирование группы блоков-кандидатов во времени может осуществляться до определения типа размера блока предсказания и положения блока предсказания. Поэтому обеспечивается гибкость проектирования схем и программного обеспечения и появляется возможность уменьшения размеров схем программного обеспечения.
Пятый вариант осуществления
Рассмотрим далее пятый вариант осуществления. От первого варианта осуществления рассматриваемый вариант отличается с точки зрения конфигурации и процесса работы блока 140 создания списка кандидатов с информацией о движении со слиянием, а также процесса блока 104 генерирования битового потока и процесса работы блока 201 анализа битового потока.
Прежде всего рассмотрим конфигурацию блока 140 создания списка кандидатов с информацией о движении со слиянием. На фиг. 31 представлена блок-схема, иллюстрирующая конфигурацию блока 140 создания списка кандидатов с информацией о движении со слиянием согласно пятому варианту осуществления.
Отличие рассматриваемого блока от блока 140 создания списка кандидатов с информацией о движении со слиянием согласно первому варианту осуществления, показанного на фиг. 10, состоит в добавлении блока 165 задания блоков-кандидатов в положение перед блоком 160 генерирования кандидатов с информацией о движении со слиянием в пространстве. В этом случае переключение использования размещения блоков-кандидатов с приоритетом эффективности предсказания и использования размещения блоков-кандидатов с приоритетом эффективности обработки, такого как параллельная обработка или сокращение продолжительности обработки, выполняется с помощью флага и т.п.
Рассмотрим далее процесс работы блока 140 создания списка кандидатов с информацией о движении со слиянием. На фиг. 32 представлена блок-схема, иллюстрирующая последовательность операций в процессе работы блока 140 создания списка кандидатов с информацией о движении со слиянием согласно пятому варианту осуществления. Отличие от блок-схемы, иллюстрирующей последовательность операций в процессе работы блока 140 создания списка кандидатов с информацией о движении со слиянием согласно первому варианту осуществления состоит в добавлении этапов S106-S108, предшествующих этапу S100. Рассмотрим этапы S106-S108. Прежде всего блок 140 создания списка кандидатов с информацией о движении со слиянием определяет, имеет ли cu_dependent_flag значение 1 или нет (S106). Если cu_dependent_flag имеет значение 1 (ДА на этапе S106), то блок 140 создания списка кандидатов с информацией о движении со слиянием использует размещение блоков с приоритетом эффективности предсказания (S107). Размещение блоков с приоритетом эффективности предсказания является, например, размещением блоков, состоящих только из блоков-кандидатов, смежных с целевым блоком предсказания, таким как размещение, показанное на фиг. 12, на которой взаимное расположение, идентичное случаю с блоком предсказания, имеющим 2Ν×2Ν-тип размера блока предсказания, применяется к группе блоков-кандидатов блока предсказания, имеющего не-2N×2N-тип размера блока предсказания. Если cu_dependent_flag имеет значение 0 (НЕТ на этапе S106), то блок 140 создания списка кандидатов с информацией о движении со слиянием использует размещение блоков с приоритетом эффективности обработки (S108). Размещение блоков с приоритетом эффективности обработки является, например, размещением блоков, включающих в себя блок-кандидаты, не смежные с целевым блоком предсказания, таким как размещения, показанные на фиг. 14, фиг. 23, фиг. 24, фиг. 25 и фиг. 28. После этапа S107 или этапа S108 выполняется процесс обработки на этапе S100 и этапах, следующих за этим этапом S100. В этом случае в рассматриваемом варианте осуществления, например, на основе размещения блоков с приоритетом эффективности предсказания, такого как размещение, показанное на фиг. 12, определение группы блоков-кандидатов и создание списка кандидатов с информацией о движении со слиянием выполняются для каждого блока предсказания блока кодирования на основе положения и размера блока предсказания. Или, например, на основе размещения блоков с приоритетом эффективности обработки, такого как размещение, показанное на фиг. 25, выполняется переключение создания или несоздания списка кандидатов с информацией о движении со слиянием из блока-кандидата, совместно используемого во всех блоках предсказания блока кодирования.
В устройстве 100 кодирования движущегося изображения задание значения enable_cu_parallel_flag, равного 0 или 1, осуществляется на более высоком уровне, чем устройство 100 кодирования движущегося изображения. В этом случае, операции, показанные на фиг. 32, реализуются блоком 140 создания списка кандидатов с информацией о движении со слиянием. Однако реализация этих операций возможна и на более высоком уровне, чем устройство 100 кодирования движущегося изображения.
Блок 104 генерирования битового потока мультиплексирует cu_dependent_flag в положении, не совпадающем с положением блока кодирования, таком как положение SPS, PPS, заголовка слайса или т.п. Блок 201 анализа битового потока декодирует cu_dependent_flag, мультиплексированный в положении, не совпадающем с положением блока кодирования, таком как положение SPS, PPS, заголовка слайса или т.п., и подает этот декодированный cu_dependent_flag в блок 204 воспроизведения информации о движении.
Мультиплексирование cu_dependent_flag в битовом потоке позволяет беспрепятственно определять, является ли битовый поток битовым потоком с приоритетом эффективности предсказания или нет. Кроме того, декодирование битового потока, обусловленного размещением блоков с приоритетом эффективности предсказания, и декодирование битового потока, обусловленного размещением блоков с приоритетом эффективности обработки, может осуществляться в общем устройстве декодирования. Для устройства декодирования, которое декодирует только значение cu_dependent_flag, равное 0 или 1, правильное декодирование битового потока может быть осуществлено в результате, например, генерирования битового потока, при фиксации значения cu_dependent_flag, равного 0 или 1, правилами применения, профильным файлом с описанием инструментов кодирования, таких как MPEG-4AVC, или т.п. и игнорирования cu_dependent_flag или задания cu_dependent_flag по умолчанию. Кроме того, мультиплексирование cu_dependent_flag с заголовком блока кодирования более высокого уровня обеспечивает возможность сокращения операций, показанных на фиг. 32.
В этом случае переключение размещения блоков с приоритетом эффективности предсказания и размещения блоков с приоритетом эффективности обработки выполняется с помощью cu_dependent_flag. Однако возможны также, например, следующие условия. Размещение блоков с приоритетом эффективности обработки используется в случае, когда число событий разделения достигает не менее заданного числа раз. Размещение блоков с приоритетом эффективности предсказания используется в случае, когда блок кодирования не превышает заданного порогового размера. Размещение блоков с приоритетом эффективности обработки используется в случае, когда блок кодирования не превышает заданного порогового размера. Размещение блоков с приоритетом эффективности предсказания используется в случае, когда блок кодирования достигает не менее заданного порогового размера. Кроме того, задание заданного порогового размера 8x8, являющегося минимальным размером блока кодирования, позволяет использовать этот размер только в случае наибольшего повышения скорости обработки информации и обеспечивает, таким образом, оптимизацию баланса между скоростью обработки информации и эффективностью предсказания. В этом случае на этапе S108 определяется, имеет ли блок кодирования заданный размер или нет. Использование размещения блоков с приоритетом эффективности обработки в случае, когда число событий разделения в блоке кодирования достигает не менее заданного числа раз (или не превышает заданного порогового размера), и использование размещения блоков с приоритетом эффективности предсказания в случае, когда число событий разделения в блоке кодирования не превышает заданного числа раз (или достигает не менее заданного порогового размера), обеспечивает возможность беспрепятственного регулирования эффективности предсказания и скорости обработки информации. При этом мультиплексирование заданного порогового размера и заданного числа раз может осуществляться может также осуществляться в положении, не совпадающем с положением блока кодирования, таком как положение SPS, PPS, заголовка слайса или т.п. Кроме того, за счет использования enable_cu_parallel_flag, который в случае, когда enable_cu_parallel_flag равен 1, означает определение заданного порогового размера или заданного числа раз, а в случае, когда enable_cu_parallel_flag равен 0, означает неопределение заданного порогового размера или заданного числа раз, и мультиплексирования в битовом потоке обеспечивается возможность более гибкого регулирования скорости обработки информации и эффективности предсказания. Другими словами, задание enable_cu_parallel_flag, равного 0, обеспечивает постоянное размещение блоков с приоритетом эффективности предсказания, независимо от заданного порогового размера или заданного числа раз, а задание enable_cu_parallel_flag, равного 1, обеспечивает переключение скорости обработки информации и эффективности кодирования и, таким образом, возможность оптимизации баланса между скоростью обработки информации и эффективностью кодирования.
Шестой вариант осуществления
Рассмотрим далее шестой вариант осуществления. Рассмотрим детальную конфигурацию блока 120 определения режима с предсказываемым вектором и процесс работы блока 211 воспроизведения вектора движения в составе устройства 100 кодирования движущегося изображения согласно третьему варианту осуществления. Рассмотрим далее детальную конфигурации блока 120 определения режима с предсказываемым вектором.
Конфигурация блока 120 определения режима с предсказываемым вектором
Рассмотрим далее детальную конфигурацию блока 120 определения режима с предсказываемым вектором. На фиг. 33 представлена конфигурацию блока 120 определения режима с предсказываемым вектором. Блок 120 определения режима с предсказываемым вектором включает в себя блок 130 создания списка кандидатов на предсказываемый вектор и блок 131 определения предсказываемого вектора. Контакта 17 подключен к блоку 122 обнаружения режима кодирования с предсказанием.
Блок 130 создания списка кандидатов на предсказываемый вектор установлен также и в блоке 211 воспроизведения вектора движения в составе устройства 200 декодирования движущегося изображения, которое декодирует битовый поток, генерируемый с помощью устройства 100 кодирования движущегося изображения согласно шестому варианту осуществления, и создает идентичный список информации о движении со слиянием как в устройстве 100 кодирования движущегося изображения, так и в устройстве 200 декодирования движущегося изображения.
Процесс работы блока 120 определения режима с предсказываемым вектором
Рассмотрим далее процесс работы блока 120 определения режима с предсказываемым вектором.
Прежде всего рассмотрим процесс обработки для L0-предсказания. Ниже, X=0.
Блок 130 создания списка кандидатов на предсказываемый вектор извлекает опорный индекс для LX-предсказания, подаваемый с контакта 13. Блок 130 создания списка кандидатов на предсказываемый вектор создает список кандидатов на предсказываемый вектор для LX-предсказания, включающий в себя кандидатов на предсказываемый вектор для максимального числа кандидатов на предсказываемый вектор, из группы блоков-кандидатов, подаваемой с контакта 12, и опорного индекса для LX-предсказания. Блок 130 создания списка кандидатов на предсказываемый вектор подает этот список кандидатов на предсказываемый вектор для LX-предсказания в блок 131 определения предсказываемого вектора.
Блок 131 определения предсказываемого вектора выбирает одного кандидата на предсказываемый вектор из списка кандидатов на предсказываемый вектор для LX-предсказания, подаваемого из блока 130 создания списка кандидатов на предсказываемый вектор, и задает индекс предсказываемого вектора для LX-предсказания.
В результате вычитания предсказываемого вектора для LX-предсказания из вектора движения для LX-предсказания, подаваемого с контакта 13, блок 131 определения предсказываемого вектора вычисляет разность векторов для LX-предсказания, и вырабатывает на выходе разность векторов для LX-предсказания и индекс предсказываемого вектора для LX-предсказания.
Из сигнала изображения, подаваемого с контакта 15, и сигнала предсказания для LX-предсказания, полученного в результате выполнения предсказания с компенсацией движения на опорном изображении, подаваемом с контакта 14, на основе вектора движения для LX-предсказания и опорного индекса для LX-предсказания, подаваемого с контакта 13, блок 131 определения предсказываемого вектора вычисляет величину ошибки предсказания и из этой ошибки предсказания и величины кода разности векторов для LX-предсказания, опорного индекса для LX-предсказания и индекса предсказываемого вектора для LX-предсказания вычисляет оценочное значение отношения сигнал/шум Pred_LX.
Затем процесс обработки, аналогичный процессу обработки для L0-предсказания, выполняется для L1-предсказания, для которого X=1.
Из сигнала изображения, подаваемого с контакта 15, и сигнала предсказания для В I-предсказания, полученного в результате усреднения сигнала предсказания для L0-предсказания и сигнала предсказания для L1-предсказания, блок 131 определения предсказываемого вектора вычисляет величину ошибки предсказания и из этой ошибки предсказания и величины кода разностей векторов для L0-предсказания и L1-предсказания, опорных индексов для L0-предсказания и L1-предсказания и индексов предсказываемого вектора для L0-предсказания и L1-предсказания вычисляет оценочное значение отношения сигнал/шум Pred_BI.
Блок 131 определения предсказываемого вектора сравнивает оценочное значение отношения сигнал/шум Pred_L0, оценочное значение отношения сигнал/шум Pred_L1 и оценочное значение отношения сигнал/шум Pred_BI и выбирает один режим кодирования с предсказанием, имеющим наименьшее оценочное значение отношения сигнал/шум. Затем блок 131 определения предсказываемого вектора подает информацию о движении, разности векторов, индексы предсказываемого вектора и оценочное значение отношения сигнал/шум на основе режима кодирования с предсказанием в блок 122 обнаружения режима кодирования с предсказанием. При этом в случае режима кодирования с предсказанием Pred_L0 вектором движения для L1-предсказания становится (0,0), а опорным индексом для L1-предсказания становится "-1". В случае режима кодирования с предсказанием Pred_L1 вектором движения для L0-предсказания становится (0,0), а опорным индексом для L0-предсказания становится "-1".
Конфигурация блока 130 создания списка кандидатов на предсказываемый вектор
Рассмотрим далее детальную конфигурацию блока 130 создания списка кандидатов на предсказываемый вектор. На фиг. 34 представлена схематическая иллюстрация конфигурации блока 130 создания списка кандидатов на предсказываемый вектор. Контакт 18 подключен к блоку 131 определения предсказываемого вектора. Блок 130 создания списка кандидатов на предсказываемый вектор включает в себя блок 150 генерирования кандидатов на предсказываемый вектор в пространстве, блок 151 генерирования кандидатов на предсказываемый вектор во времени, 152 удаления избыточных кандидатов на предсказываемый вектор и блок 153 добавления кандидатов на предсказываемый вектор.
Процесс работы блока 130 создания списка кандидатов на предсказываемый вектор
Рассмотрим далее функции каждого компонента в процессе работы. В соответствии с необходимостью блок 130 создания списка кандидатов на предсказываемый вектор создает список кандидатов на предсказываемый вектор для L0-предсказания и список кандидатов на предсказываемый вектор для L1-предсказания. Рассмотрим далее LX-предсказание. X=0 или 1. На фиг. 35 представлена блок-схема, иллюстрирующая последовательность операций в процессе работы блока 130 создания списка кандидатов на предсказываемый вектор.
Прежде всего блок 130 создания списка кандидатов на предсказываемый вектор инициализирует список кандидатов на предсказываемый вектор для LX-предсказания (S200). В инициализированном списке кандидатов на предсказываемый вектор для LX-предсказания никаких кандидатов на предсказываемый вектор не существует.
Блок 130 создания списка кандидатов на предсказываемый вектор осуществляет разделение блоков-кандидатов, включенных в группу блоков-кандидатов в пространстве, подаваемую с контакта 12, на две группы: первую группу, образованную блоком Ε и блоком А; и вторую группу, образованную блоком С, блоком В и блоком D, и осуществляет рассматриваемые ниже процессы обработки с повторением в указанном порядке: первая группа и вторая группа (S201-S203).
В этом случае, что касается группы блоков-кандидатов, подаваемая с контакта 12, то для 2N×2N-группы блоков-кандидатов используется группа, идентичная случаю с режимом слияния, а для не-2N×2N-группы блоков-кандидатов используется группа блоков-кандидатов, в которой применяется взаимное расположение блоков, идентичное случаю с 2Ν×2Ν-блоком. Рассмотрение будем вести при условии совместного использования опорного индекса для LX-предсказания, подаваемого с контакта 13, группы блоков-кандидатов, подаваемой с контакта 12, и списка кандидатов на предсказываемый вектор для LX-предсказания в блоке 130 создания списка кандидатов на предсказываемый вектор.
Блок 150 генерирования кандидатов на предсказываемый вектор в пространстве генерирует кандидатов на предсказываемый вектор в пространстве для LX-предсказания, число которых составляет нуль или один, из группы блоков-кандидатов i-й группы (i=1 или 2), добавляет этого кандидата на предсказываемый вектор в пространстве для LX-предсказания в список кандидатов на предсказываемый вектор для LX-предсказания (S202) и подает этот список кандидатов на предсказываемый вектор для LX-предсказания и группу блоков-кандидатов во времени в блок 151 генерирования кандидатов на предсказываемый вектор.
Рассмотрим далее конкретный способ извлечения кандидатов на предсказываемый вектор в пространстве. Рассматриваемые ниже процессы обработки осуществляются с повторением для первой группы и второй группы. В указанном порядке блок 150 генерирования кандидатов на предсказываемый вектор в пространстве осуществляет проверку блока Ε и блока А в качестве блоков-кандидатов в первой группе и блока С, блока В и блока D в качестве блоков-кандидатов во второй группе.
Рассматриваемые ниже процессы обработки выполняются для каждого блока-кандидата в указанном порядке: L0-предсказание и L1-предсказание. Рассмотрим ниже L0-предсказание и L1 -предсказание в качестве LN-предсказания.
Блок 150 генерирования кандидатов на предсказываемый вектор в пространстве проверяет идентичность или неидентичность опорного изображения, указываемого опорным индексом блока-кандидата для LN-предсказания, опорному изображению, указываемому опорным индексом для LX-предсказания, подаваемым с контакта 13.
Если опорное изображение, указываемое опорным индексом блока-кандидата для LN-предсказания является идентичным опорному изображению, указываемому опорным индексом для LX-предсказания, подаваемым с контакта 13, то блок 150 генерирования кандидатов на предсказываемый вектор в пространстве завершает процесс обработки в отношении вектора движения блока-кандидата для LN-предсказания в качестве кандидата на предсказываемый вектор пространстве.
Если опорное изображение, указываемое опорным индексом блока-кандидата для LN-предсказания является неидентичным опорному изображению, указываемому опорным индексом для LX-предсказания, подаваемым с контакта 13, то блок 150 генерирования кандидатов на предсказываемый вектор в пространстве осуществляет проверку следующего LN-предсказания или следующего блока-кандидата.
По окончании проверки для всех блоков-кандидатов блок 150 генерирования кандидатов на предсказываемый вектор в пространстве завершает процесс обработки.
Как указано выше, из каждой группы извлекаются кандидаты на предсказываемый вектор в пространстве, число которых составляет нуль или один, и для LX-предсказания извлекаются кандидаты на предсказываемый вектор в пространстве, число которых составляет от нуля до двух.
Затем блок 151 генерирования кандидатов на предсказываемый вектор во времени генерирует кандидатов на предсказываемый вектор во времени для LX-предсказания, число которых составляет нуль или один, из группы блоков-кандидатов, добавляет этих кандидатов на предсказываемый вектор во времени для LX-предсказания в список кандидатов на предсказываемый вектор для LX-предсказания (S204) и подает этот список кандидатов на предсказываемый вектор для LX-предсказания и группу блоков-кандидатов в блок 153 добавления кандидатов на предсказываемый вектор.
Рассмотрим далее конкретный способ извлечения кандидатов на предсказываемый вектор во времени. В указанном порядке блок 151 генерирования кандидатов на предсказываемый вектор во времени осуществляет проверку блока H и блока I в качестве блоков-кандидатов во времени в группе блоков-кандидатов во времени. Рассматриваемые ниже процессы обработки выполняются для каждого блока-кандидата в указанном порядке: L0-предсказание и L1-предсказание. Рассмотрим ниже L0-предсказание и L1-предсказание в качестве LN-предсказания. Блок 151 генерирования кандидатов на предсказываемый вектор во времени проверяет действительность или недействительность LN-предсказания блока-кандидата. Действительность LN-предсказания блока-кандидата означает, что опорный индекс блока-кандидата для LN-предсказания составляет не менее 0. В случае действительности LN-предсказания блока-кандидата блок 151 генерирования кандидатов на предсказываемый вектор во времени извлекает кандидата на предсказываемый вектор во времени с использованием вектора движения блока-кандидата для LN-предсказания в качестве базисного вектора движения и завершает процесс обработки. Описание способа извлечения во времени кандидатов на предсказываемый вектор рассмотрим ниже. В случае же недействительности LN-предсказания блока-кандидата блок 151 генерирования кандидатов на предсказываемый вектор во времени осуществляет проверку следующего блока-кандидата. По окончании проверки для всех блоков-кандидатов блок 150 генерирования кандидатов на предсказываемый вектор в пространстве завершает процесс обработки.
Рассмотрим далее способ извлечения кандидатов на предсказываемый вектор во времени. Если расстояние между изображениями, представляющими собой ColPic с блоком-кандидатом во времени и ColRefLXPic, являющееся опорным кадром для блока-кандидата во времени при предсказании с компенсацией движения для LN-предсказания, расстояние между изображениями, представляющими собой опорное изображение RefLXPic, указываемое опорным индексом для LX-предсказания, и целевое изображение CurPic, и базисный вектор движения для LX-предсказания обозначить соответственно через td, tb и mvLX, то предсказываемый вектор mvLXCol во времени вычисляется по уравнению 1.
Блок 152 удаления избыточных кандидатов на предсказываемый вектор осуществляет проверку кандидатов на предсказываемый вектор, добавленных в список кандидатов на предсказываемый вектор для LX-предсказания, подаваемый из блока 151 генерирования кандидатов на предсказываемый вектор во времени, сохраняет в случае существования множества кандидатов на предсказываемый вектор, имеющих идентичный вектор, одного кандидата на предсказываемый вектор при удалении остальных кандидатов на предсказываемый вектор, удаляет в случае, когда число кандидатов на предсказываемый вектор, добавленных в список кандидатов на предсказываемый вектор для LX-предсказания, превышает максимальное число кандидатов на предсказываемый вектор, кандидатов на предсказываемый вектор из последней части списка кандидатов на предсказываемый вектор для LX-предсказания при сохранении кандидатов на предсказываемый вектор, добавленных в список кандидатов на предсказываемый вектор для LX-предсказания,, число которых не превышает максимального числа кандидатов на предсказываемый вектор (S205), и подает этот список кандидатов на предсказываемый вектор для LX-предсказания в блок 153 добавления кандидатов на предсказываемый вектор. В этом случае все кандидаты с информацией о движении со слиянием, добавленные в список кандидатов на предсказываемый вектор для LX-предсказания, являются неидентичными кандидатами с информацией о движении со слиянием.
Блок 153 добавления кандидатов на предсказываемый вектор генерирует дополнительных кандидатов на предсказываемый вектора, добавляет этих дополнительных кандидатов на предсказываемый вектор в список кандидатов на предсказываемый вектор для LX-предсказания до достижения максимального числа кандидатов на предсказываемый вектор, добавленных в список кандидатов на предсказываемый вектор для LX-предсказания, подаваемый из блока 152 удаления избыточных кандидатов на предсказываемый вектор (S206), и подает этих дополнительных кандидатов на предсказываемый вектор на контакт 18. Предположим, что дополнительные кандидаты на предсказываемый вектора имеют вектор движения (0,0). В этом случае дополнительные кандидаты на предсказываемый вектор задаются в качестве кандидатов с вектором движения (0,0). Однако дополнительные кандидаты на предсказываемый вектора могут иметь заданное значение вектора движения, такое как (1,1), или иметь вектор движения с горизонтальным компонентом или вертикальным компонентом кандидата на предсказываемый вектор в пространстве, составляющими +1 или -1.
В этом случае блоки-кандидаты в составе группы блоков-кандидатов в пространстве, подаваемой с контакта 12, разделяются на две группы, и из каждой из групп может быть выбран один кандидат на предсказываемый вектор движения в пространстве. Однако блоки-кандидаты могут входить и в одну группу, из которой могут быть выбраны два кандидата на предсказываемый вектор движения в пространстве.
Рассмотрим далее детальную конфигурацию блока 211 воспроизведения вектора движения.
Детальная конфигурация блока 211 воспроизведения вектора движения
Рассмотрим далее детальную конфигурацию блока 211 воспроизведения вектора движения. На фиг. 36 представлена блок-схема, иллюстрирующая конфигурацию блока 211 воспроизведения вектора движения. Блок 211 воспроизведения вектора движения включает в себя блок 220 создания списка кандидатов на предсказываемый вектор, блок 221 выбора предсказываемого вектора и блок 222 суммирования. Контакт 35 подключен к блоку 210 принятия решения о режиме кодирования.
Подробное описание процесса работы блока 211 воспроизведения вектора движения
Рассмотрим далее функции каждого компонента в процессе работы. Если тип межкадрового предсказания, подаваемого с контакта 35, является L0-предсказанием, то блок 211 воспроизведения вектора движения вычисляет вектор движения для L0-предсказания, если тип межкадрового предсказания является L1-предсказанием, то выполняется вычисление вектора движения для L1-предсказания, а если тип межкадрового предсказания является BI-предсказанием, то выполняется вычисление вектора движения для L0-предсказания и L1-предсказания. Вычисление вектора движения для каждого LX-предсказания выполняется следующим образом.
Блок 211 воспроизведения вектора движения создает список кандидатов на предсказываемый вектор для LX-предсказания из опорного индекса для LX-предсказания, подаваемого с контакта 35, и группы блоков-кандидатов, подаваемой с контакта 33. Из этого списка кандидатов на предсказываемый вектор для LX-предсказания блок 211 воспроизведения вектора движения выбирает в качестве предсказываемого вектора для LX-предсказания кандидата на предсказываемый вектор, указываемый индексом предсказываемого вектора для LX-предсказания, в результате суммирования предсказываемого вектора для LX-предсказания и разности векторов для LX-предсказания.
Информация о движении, генерированная в результате комбинирования этого вектора движения для LX-предсказания и типа межкадрового предсказания, подается на контакт 34 и 36.
Как указано выше, в режиме слияния, при котором максимальное число кандидатов на слияние составляет 5 и число кандидатов является относительно большим, за счет использования блока-кандидата блока 0 предсказания в качестве блока-кандидата всех блоков предсказания в блоке кодирования применительно к не-2N×2N-группе блоков-кандидатов список кандидатов с информацией о движении со слиянием становится совместно используемым в блоке кодирования и обеспечивается возможность выполнения параллельной обработки. В режиме же с предсказываемым вектором, при котором максимальное число кандидатов на предсказываемый вектор составляет 2 и число кандидатов является относительно малым, за счет использования блока-кандидата с применением взаимного расположения блоков, идентичного случаю с 2N×2N-группой блоков-кандидатов, применительно к не-2N×2N-группе блоков-кандидатов и оптимизации эффективности предсказания обеспечивается возможность достижения предпочтительной эффективности обработки и предпочтительной эффективности предсказания.
Битовый поток движущихся изображений, выводимый устройством кодирования движущегося изображения согласно любому из вариантов осуществления, описанных выше, имеет специфический формат данных, обеспечивающий возможность декодирования в соответствии со способом кодирования, используемым в вариантах осуществления, и, следовательно, устройство декодирования движущегося изображения, соответствующее устройству кодирования движущегося изображения, может декодировать битовый поток в этом специфическом формате данных.
Для обмена битовыми потоками между устройством кодирования движущегося изображения и устройством декодирования движущегося изображения в случае использования проводной или беспроводной сети передача битового потока может осуществляться с преобразованием в формат данных, соответствующий форме передачи в канале связи. В этом случае устанавливаются устройство передачи движущегося изображения, которое преобразует выводимые битовые потоки с помощью устройства кодирования движущегося изображения в данные кодирования с форматом данных, соответствующим форме передачи в канале связи, и передает битовые потоки по сети, а также устройство приема движущегося изображения, которое обеспечивает прием данных кодирования из сети, восстановление битовых потоков из данных кодирования и подачу восстановленных битовых потоков в устройство декодирования движущегося изображения.
Устройство передачи движущегося изображения включает в себя: память, которая осуществляет буферизацию кодированных битовых потоков, выводимых устройством кодирования движущегося изображения; блок пакетной обработки, осуществляющий пакетирование битовых потоков; и блок передачи, обеспечивающий передачу пакетированных данных кодирования по сети. Устройство приема движущегося изображения включает в себя: блок приема, обеспечивающий прием пакетированных данных кодирования по сети; память, которая осуществляет буферизацию принимаемых данных кодирования; и блок пакетной обработки, генерирующий битовые потоки в результате выполнения процесса пакетной обработки данных кодирования, и подает генерированные битовые потоки в устройство декодирования движущегося изображения.
Процессы обработки, относящейся к кодированию и декодированию, описанные выше, могут быть реализованы не только в виде устройства передача/хранения/приема, использующего аппаратные средства, но и с помощью встроенного программного обеспечения, хранимого в постоянной памяти (ROM), во флэш-памяти или т.п., или с помощью программного обеспечения компьютера или т.п. Поставка встроенного программного обеспечения или программы системы программного обеспечения, может осуществляться в виде записи на носителе записи, считываемом компьютером, или т.п., с сервера через проводную или беспроводную сеть или с использованием широковещательной передачи данных по спутниковым каналам цифрового вещания.
Выше было приведено описание настоящего изобретения на основе вариантов осуществления. Однако такие варианты осуществления следует рассматривать исключительно в качестве примеров, и специалисту в данной области техники должна быть очевидна возможность существования различных модификаций в комбинации каждого из составляющих элементов или каждого из процессов обработки этих вариантов, и включения таких модифицированных примеров в объем настоящего изобретения.
Пункт 1.
Устройство кодирования движущегося изображения, адаптированное к кодированию блока кодирования, состоящего из не менее чем одного блока предсказания, содержащее:
блок генерирования кандидатов с информацией о движении со слиянием, выполненный с возможностью извлечения множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке кодирования, осуществляемого в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования, является информацией, указывающей на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования;
блок выбора информации о движении со слиянием, выполненный с возможностью выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием и использования выбранного кандидата с информацией о движении со слиянием в блоке предсказания, являющемся объектом кодирования; и
блок кодирования, выполненный с возможностью кодирования индекса для определения выбранного кандидата с информацией о движении со слиянием в качестве индекса определения кандидата.
Пункт 2.
Устройство кодирования движущегося изображения по пункту 1, отличающееся тем, что блок генерирования кандидатов с информацией о движении со слиянием извлекает множество кандидатов с информацией о движении со слиянием на основе размера и положения блока предсказания, являющегося объектом кодирования, в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования, является информацией, указывающей на неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования.
Пункт 3.
Устройство кодирования движущегося изображения по пункту 1 или 2, отличающееся тем, что информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования, указывает на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования, в случае, когда размер блока кодирования не превышает заданного размера.
Пункт 4.
Устройство кодирования движущегося изображения по пункту 1 или 2, отличающееся тем, что информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования, указывает на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования, в случае, когда размер блока кодирования является заданным размером.
Пункт 5.
Устройство кодирования движущегося изображения по любому из пунктов 1-4, отличающееся тем, что блок кодирования кодирует информацию, указывающую на достоверность или недостоверность информации, указывающей на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования.
Пункт 6.
Устройство кодирования движущегося изображения по любому из пунктов 1-5, отличающееся тем, что кандидат с информацией о движении со слиянием, совместно используемый для всех блоков предсказания, являющихся объектами кодирования в блоке кодирования, является кандидатом с информацией о движении со слиянием, извлеченным в блоке предсказания, извлеченном в блоке кодирования первым.
Пункт 7.
Устройство кодирования движущегося изображения по любому из пунктов 1-6, отличающееся тем, что блок генерирования кандидатов с информацией о движении со слиянием извлекает кандидата с информацией о движении со слиянием с использованием блока кодирования в качестве блока предсказания, являющегося объектом кодирования.
Пункт 8.
Устройство кодирования движущегося изображения по любому из пунктов 1-7, отличающееся тем, что множество кандидатов с информацией о движении со слиянием включает в себя информацию о движении блока, смежного с блоком предсказания, являющимся объектом кодирования.
Пункт 9.
Устройство кодирования движущегося изображения по пункту 8, отличающееся тем, что множество кандидатов с информацией о движении со слиянием включает в себя информацию о движении, извлеченную из блока предсказания кодированного кадра, неидентичного кадру, в котором имеется блок предсказания, являющийся объектом кодирования.
Пункт 10.
Устройство кодирования движущегося изображения, адаптированное к разделению блока кодирования на множество блоков предсказания на основе типа разделения и выполнения компенсации движения, содержит:
блок генерирования кандидатов с информацией о движении со слиянием, выполненный с возможностью генерирования кандидата с информацией о движении со слиянием;
блок выбора информации о движении со слиянием, выполненный с возможностью выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием и задания выбранного кандидата с информацией о движении со слиянием в качестве информации о движении блока предсказания, являющегося объектом кодирования; и
блок кодирования, выполненный с возможностью кодирования индекса для определения выбранного кандидата с информацией о движении со слиянием в качестве индекса определения кандидата.
Пункт 11.
Способ кодирования движущегося изображения для кодирования блока кодирования, состоящего из не менее чем одного блока предсказания, содержащий этапы:
извлечения множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке кодирования, осуществляемого в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования, является информацией, указывающей на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования;
выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием и использования выбранного кандидата с информацией о движении со слиянием в блоке предсказания, являющемся объектом кодирования; и
кодирования индекса для определения выбранного кандидата с информацией о движении со слиянием в качестве индекса определения кандидата.
Пункт 12.
Программа кодирования движущегося изображения, записанная на долговременном считаемом компьютером носителе записи и адаптированный к кодированию блок кодирования, состоящий из не менее чем одного блока предсказания, содержащий:
модуль генерирования кандидатов с информацией о движении со слиянием, выполненный с возможностью извлечения множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке кодирования, осуществляемого в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования, является информацией, указывающей на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования;
модуль выбора информации о движении со слиянием, выполненный с возможностью выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием и использования выбранного кандидата с информацией о движении со слиянием в блоке предсказания, являющегося объектом кодирования; и
модуль кодирования, выполненный с возможностью кодирования индекса для определения выбранного кандидата с информацией о движении со слиянием в качестве индекса определения кандидата.
Пункт 13.
Устройство декодирования движущегося изображения, адаптированное к декодированию блока декодирования, состоящего из не менее чем одного блока предсказания, содержащее:
блок декодирования, выполненный с возможностью декодирования индекса определения кандидата из битового потока, в котором индекс для определения кандидата с информацией о движении со слиянием, используемого в блоке предсказания, являющемся объектом декодирования, кодирован в качестве индекса определения кандидата;
блок генерирования кандидатов с информацией о движении со слиянием, выполненный с возможностью извлечения множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке декодирования, осуществляемого в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования, является информацией, указывающей на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования; и
блок выбора информации о движении со слиянием, выполненный с возможностью выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием и использования выбранного кандидата с информацией о движении со слиянием в блоке предсказания, являющемся объектом декодирования.
Пункт 14.
Устройство декодирования движущегося изображения по пункту 13, отличающееся тем, что блок генерирования кандидатов с информацией о движении со слиянием извлекает множество кандидатов с информацией о движении со слиянием на основе размера и положения блока предсказания, являющегося объектом декодирования, в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования, является информацией, указывающей на неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования.
Пункт 15.
Устройство декодирования движущегося изображения по пункту 13 или 14, отличающееся тем, что информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блокеде кодирования, указывает на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования, в случае, когда размер блока декодирования не превышает заданного размера.
Пункт 16.
Устройство декодирования движущегося изображения по пункту 13 или 14, отличающееся тем, что информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования, указывает на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования, в случае, когда размер блокаде кодирования является заданным размером.
Пункт 17.
Устройство декодирования движущегося изображения по любому из пунктов 13-16, отличающееся тем, что блок декодирования декодирует информацию, указывающую на достоверность или недостоверность информации, указывающей на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования.
Пункт 18.
Устройство декодирования движущегося изображения по любому из пунктов 13-17, отличающееся тем, что кандидат с информацией о движении со слиянием, совместно используемый для всех блоков предсказания, являющихся объектами декодирования в блоке декодирования, является кандидатом с информацией о движении со слиянием, извлеченным в блоке предсказания, извлеченном в блоке декодирования первым.
Пункт 19.
Устройство декодирования движущегося изображения по любому из пунктов 13-18, отличающееся тем, что блок генерирования кандидатов с информацией о движении со слиянием извлекает кандидата с информацией о движении со слиянием с использованием блока декодирования в качестве блока предсказания, являющегося объектом декодирования.
Пункт 20.
Устройство декодирования движущегося изображения по любому из пунктов 13-19, отличающееся тем, что множество кандидатов с информацией о движении со слиянием включает в себя информацию о движении блока, смежного с блоком предсказания, являющимся объектом декодирования.
Пункт 21.
Устройство декодирования движущегося изображения по пункту 20, отличающееся тем, что множество кандидатов с информацией о движении со слиянием включает в себя информацию о движении, извлеченную из блока предсказания декодированного кадра, неидентичного кадру, в котором имеется блок предсказания, являющийся объектом декодирования.
Пункт 22.
Устройство декодирования движущегося изображения, адаптированное к разделению блока декодирования на множество блоков предсказания на основе типа разделения и выполнения компенсации движения, содержит:
блок декодирования, выполненный с возможностью декодирования индекса определения кандидата из битового потока, в котором индекс для определения кандидата с информацией о движении со слиянием, используемого в блоке предсказания, являющемся объектом декодирования, кодирован в качестве индекса определения кандидата;
блок генерирования кандидатов с информацией о движении со слиянием, выполненный с возможностью генерирования множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке кодирования; и
блок выбора информации о движении со слиянием, выполненный с возможностью выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием на основе типа разделения и задания выбранного кандидата с информацией о движении со слиянием в качестве информации о движении блока предсказания, являющегося объектом декодирования.
Пункт 23.
Способ декодирования движущегося изображения для декодирования блока декодирования, состоящего из не менее чем одного блока предсказания, содержащий этапы:
декодирования индекса определения кандидата из битового потока, в котором индекс для определения кандидата с информацией о движении со слиянием, используемого в блоке предсказания, являющемся объектом декодирования, кодирован в качестве индекса определения кандидата;
извлечения множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке декодирования, осуществляемого в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования, является информацией, указывающей на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования; и
выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием на основе на основе индекса определения кандидата и использования выбранного кандидата с информацией о движении со слиянием в блоке предсказания, являющемся объектом декодирования.
Пункт 24.
Программа декодирования движущегося изображения, записанная на долговременном считываемом компьютером носителе записи и адаптированная к декодированию блока декодирования, состоящего из не менее чем одного блока предсказания, содержащая:
модуль декодирования, выполненный с возможностью декодирования индекса определения кандидата из битового потока, в котором индекс для определения кандидата с информацией о движении со слиянием, используемого в блоке предсказания, являющемся объектом декодирования, кодирован в качестве индекса определения кандидата;
модуль генерирования кандидатов с информацией о движении со слиянием, выполненный с возможностью извлечения множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке декодирования, осуществляемого в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования, является информацией, указывающей на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования; и
модуль выбора информации о движении со слиянием, выполненный с возможностью выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием на основе индекса определения кандидата и использования выбранного кандидата с информацией о движении со слиянием в блоке предсказания, являющемся объектом декодирования.
Устройство кодирования движущегося изображения, адаптированное к кодированию блока кодирования, состоящего из не менее, чем одного блока предсказания, содержащее:
блок генерирования кандидатов с информацией о движении со слиянием, выполненный с возможностью извлечения множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке кодирования, осуществляемого в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования, является информацией, указывающей на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования;
блок выбора информации о движении со слиянием, выполненный с возможностью выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием и использования выбранного кандидата с информацией о движении со слиянием в блоке предсказания, являющемся объектом кодирования; и
блок кодирования, выполненный с возможностью кодирования индекса для определения выбранного кандидата с информацией о движении со слиянием в качестве индекса определения кандидата.
Устройство декодирования движущегося изображения, адаптированное к декодированию блока декодирования, состоящего из не менее, чем одного блока предсказания, содержащее:
блок декодирования, выполненный с возможностью декодирования индекса определения кандидата из битового потока, в котором индекс для определения кандидата с информацией о движении со слиянием, используемого в блоке предсказания, являющемся объектом декодирования, кодирован в качестве индекса определения кандидата;
блок генерирования кандидатов с информацией о движении со слиянием, выполненный с возможностью извлечения множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке декодирования, осуществляемого в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования, является информацией, указывающей на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования; и
блок выбора информации о движении со слиянием, выполненный с возможностью выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием и использования выбранного кандидата с информацией о движении со слиянием в блоке предсказания, являющемся объектом декодирования.
Способ декодирования движущегося изображения для декодирования блока декодирования, состоящего из не менее, чем одного блока предсказания, содержащий этапы:
декодирования индекса определения кандидата из битового потока, в котором индекс для определения кандидата с информацией о движении со слиянием, используемого в блоке предсказания, являющемся объектом декодирования, кодирован в качестве индекса определения кандидата;
извлечения множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке декодирования, осуществляемого в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования, является информацией, указывающей на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования; и
выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием на основе на основе индекса определения кандидата и использования выбранного кандидата с информацией о движении со слиянием в блоке предсказания, являющемся объектом декодирования.
Устройство передачи, содержащее:
блок пакетной обработки, выполненный с возможностью пакетирования битового потока, кодированного способом кодирования движущегося изображения, адаптированным к кодированию блока кодирования, состоящего из не менее, чем одного блока предсказания, и получения данных кодирования; и
блок передачи, выполненный с возможностью передачи данных кодирования, подвергнутых пакетированию,
где способ кодирования движущегося изображения включает в себя этапы:
извлечения множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке кодирования, осуществляемого в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования, является информацией, указывающей на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования;
выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием и использования выбранного кандидата с информацией о движении со слиянием в блоке предсказания, являющемся объектом кодирования; и
кодирование индекса для определения выбранного кандидата с информацией о движении со слиянием в качестве индекса определения кандидата.
Способ передачи, содержащий этапы:
пакетирования битового потока, кодированного способом кодирования движущегося изображения, адаптированным к кодированию блока кодирования, состоящего из не менее, чем одного блока предсказания, и получения данных кодирования; и
передачи данных кодирования, подвергнутых пакетированию, где способ кодирования движущегося изображения включает в себя этапы: извлечения множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке кодирования, осуществляемого в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования, является информацией, указывающей на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке кодирования;
выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием и использования выбранного кандидата с информацией о движении со слиянием в качестве информации о движении блока предсказания, являющегося объектом кодирования; и
кодирования индекса для определения выбранного кандидата с информацией о движении со слиянием в качестве индекса определения кандидата.
Устройство приема,
адаптированное к декодированию блока декодирования, состоящего из не менее, чем одного блока предсказания из битового потока, содержащее:
блок приема, выполненный с возможностью приема данных кодирования с кодированным изображением;
блок пакетной обработки, выполненный с возможностью депакетирования данных кодирования и генерирования битового потока;
блок декодирования, выполненный с возможностью декодирования индекса определения кандидата из битового потока, в котором индекс для определения кандидата с информацией о движении со слиянием, используемый в блоке предсказания, являющемся объектом декодирования в битовом потоке, в котором осуществляется декодирование блока декодирования, кодирован в качестве индекса определения кандидата;
блок генерирования кандидатов на информации о движении при слиянии, выполненный с возможностью извлечения множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке декодирования, осуществляемого в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования, является информацией, указывающей на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования; и
блок выбора информации о движении со слиянием, выполненный с возможностью выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием на основе индекса определения кандидата и использования выбранного кандидата с информацией о движении со слиянием в качестве информации о движении блока предсказания, являющегося объектом декодирования.
Устройство декодирования движущегося изображения, адаптированное к декодированию блока декодирования, состоящего из не менее чем одного блока предсказания, содержащее:
блок декодирования, выполненный с возможностью декодирования индекса определения кандидата из битового потока, в котором индекс для определения кандидата с информацией о движении со слиянием, используемого в блоке предсказания, являющемся объектом декодирования, кодирован в качестве индекса определения кандидата;
блок генерирования кандидатов с информацией о движении со слиянием, выполненный с возможностью извлечения множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке декодирования, осуществляемого в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования, является информацией, указывающей на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования; и
блок выбора информации о движении со слиянием, выполненный с возможностью выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием и использования выбранного кандидата с информацией о движении со слиянием в блоке предсказания, являющемся объектом декодирования,
причем блок генерирования кандидатов с информацией о движении со слиянием извлекает множество кандидатов с информацией о движении со слиянием на основе размера и положения блока предсказания, являющегося объектом декодирования, в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования, является информацией, указывающей на неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования.
Способ декодирования движущегося изображения для декодирования блока декодирования, состоящего из не менее чем одного блока предсказания, содержащий этапы:
декодирования индекса определения кандидата из битового потока, в котором индекс для определения кандидата с информацией о движении со слиянием, используемого в блоке предсказания, являющемся объектом декодирования, кодирован в качестве индекса определения кандидата;
извлечения множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке декодирования, осуществляемого в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования, является информацией, указывающей на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования; и
выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием на основе на основе индекса определения кандидата и использования выбранного кандидата с информацией о движении со слиянием в блоке предсказания, являющемся объектом декодирования,
причем на указанном этапе извлечения извлекают множество кандидатов с информацией о движении со слиянием на основе размера и положения блока предсказания, являющегося объектом декодирования, в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования, является информацией, указывающей на неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования.
Считываемый компьютером носитель записи с программой декодирования движущегося изображения для декодирования блока декодирования, состоящего из не менее чем одного блока предсказания, где программа декодирования движущегося изображения обеспечивает выполнение компьютером этапов:
декодирования индекса определения кандидата из битового потока, в котором индекс для определения кандидата с информацией о движении со слиянием, используемого в блоке предсказания, являющемся объектом декодирования, кодирован в качестве индекса определения кандидата;
извлечения множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке декодирования, осуществляемого в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования, является информацией, указывающей на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования; и
выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием на основе на основе индекса определения кандидата и использования выбранного кандидата с информацией о движении со слиянием в блоке предсказания, являющемся объектом декодирования,
причем на указанном этапе извлечения компьютер извлекает множество кандидатов с информацией о движении со слиянием на основе размера и положения блока предсказания, являющегося объектом декодирования, в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования, является информацией, указывающей на неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования.
Устройство декодирования движущегося изображения, адаптированное к декодированию блока декодирования, состоящего из не менее чем одного блока предсказания, содержащее:
блок декодирования, выполненный с возможностью декодирования индекса определения кандидата из битового потока, в котором индекс для определения кандидата с информацией о движении со слиянием, используемого в блоке предсказания, являющемся объектом декодирования, кодирован в качестве индекса определения кандидата;
блок генерирования кандидатов с информацией о движении со слиянием, выполненный с возможностью извлечения множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке декодирования, осуществляемого в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования, является информацией, указывающей на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования; и
блок выбора информации о движении со слиянием, выполненный с возможностью выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием на основе индекса определения кандидата и использования выбранного кандидата с информацией о движении со слиянием в блоке предсказания, являющемся объектом декодирования,
причем блок декодирования декодирует из битового потока информацию, указывающую на достоверность или недостоверность информации, указывающей на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования.
Способ декодирования движущегося изображения для декодирования блока декодирования, состоящего из не менее чем одного блока предсказания, содержащий этапы:
декодирования индекса определения кандидата из битового потока, в котором индекс для определения кандидата с информацией о движении со слиянием, используемого в блоке предсказания, являющемся объектом декодирования, кодирован в качестве индекса определения кандидата;
извлечения множества кандидатов с информацией о движении со слиянием, совместно используемых для всех блоков предсказания в блоке декодирования, осуществляемого в случае, когда информация, указывающая на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования, является информацией, указывающей на извлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования; и
выбора одного кандидата с информацией о движении со слиянием из множества кандидатов с информацией о движении со слиянием на основе на основе индекса определения кандидата и использования выбранного кандидата с информацией о движении со слиянием в блоке предсказания, являющемся объектом декодирования,
причем на указанном этапе декодирования декодируют из битового потока информацию, указывающую на достоверность или недостоверность информации, указывающей на извлечение или неизвлечение кандидата с информацией о движении со слиянием, совместно используемого для всех блоков предсказания в блоке декодирования.
ОПИСАНИЕ НОМЕРОВ ПОЗИЦИЙ
100 - устройство кодирования движущегося изображения, 101 - блок получения изображения блока предсказания, 102 - блока вычитания, 103 - блок кодирования ошибки предсказания, 104 - блок генерирования битового потока, 105 - блоков декодирования ошибки предсказания, 106 - блок компенсации движения, 107 - блок суммирования, 108 - блок обнаружения вектора движения, 109 - блок генерирования информации о движении, 110 - память кадров, 111 - память для информации о движении, 120 - блок определения режима с предсказываемым вектором, 121 - блок определения режима слияния, 122 - блок определения режима кодирования с предсказанием, 130 - блок создания списка кандидатов на предсказываемый вектор, 131 - блок определения предсказываемого вектора, 140 - блок создания списка кандидатов с информацией о движении со слиянием, 141 - блок выбора информации о движении со слиянием, 150 - блок генерирования кандидатов на предсказываемый вектор в пространстве, 151 - блок генерирования кандидатов на предсказываемый вектор во времени, 152 - блок удаления избыточных кандидатов на предсказываемый вектор, 153 - блок добавления кандидатов на предсказываемый вектор, 160 - блок генерирования кандидатов с информацией о движении со слиянием в пространстве, 161 - блок генерирования кандидатов с информацией о движении со слиянием во времени, 162 - блок удаления избыточных кандидатов с информацией о движении со слиянием, 163 - блок добавления первых кандидатов с информацией о движении со слиянием, 164 - блок добавления вторых кандидатов с информацией о движении со слиянием, 165 - блок задания блоков-кандидатов, 166 - блок добавления заменяющих кандидатов с информацией о движении со слиянием, 200 - устройство декодирования движущегося изображения, 201 - блок анализа битового потока, 202 - блок декодирования ошибки предсказания, 203 - блок суммирования, 204 - блок воспроизведения информации о движении, 205 - блок компенсации движения, 206 - память кадров, 207 - память для информации о движении, 210 - блок принятия решения о режиме кодирования, 211 - блок воспроизведения вектора движения, 212 - блок воспроизведения информации о движении со слиянием, 230 - блок создания списка кандидатов с информацией о движении со слиянием, 231 - блок выбора информации о движении со слиянием
ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ
Настоящее изобретение может быть использовано в технологии кодирования и декодирования движущегося изображения с использованием компенсации движения.